GridFTP Hacking

From SubfireWiki

Jump to: navigation, search

Where to work

Need to update when:

  1. Request completes
  2. Every RETR
  3. Connection timeouts

So we will incrementally build the logging support:

  1. Start by logging the size of bytes requested by each client

Source searching

The globus_gridftp_server_control_init function initializes the server_handle

op->server_handle->funcs.resource_cb in globus_i_gsc_resource_query supposedly accesses the file.

globus_gridftp_server_control_start in server-lib/src/globus_gridftp_server_control.c sets up the server_handle funcs.

  • its funcs are loaded from i_attr, which initialized from a globus_gridftp_server_control_attr_t parameter.

server/src/globus_i_gfs_control.c has globus_i_gfs_control_start which calls globus_gridftp_server_control_start

globus_gridftp_server_control_attr_init initalizes the init for globus_i_gfs_control_start

  • server-lib/src/globus_gridftp_server_control_attr.c contains globus_gridftp_server_control_attr_init

resource_query_cb _seems_ to be the function that implements the resource_cb function.


   typedef void
   (*globus_gridftp_server_control_resource_cb_t)(
   globus_gridftp_server_control_op_t      op,
   const char *                            path,
   globus_gridftp_server_control_resource_mask_t mask,
   void *                                  user_arg);

globus_l_gfs_blocking_dispatch_kickout in server/src/globus_i_gfs_data.c seems to call the actual file operations

globus_gfs_storage_iface_t contains all the storage access function...

Personal tools