GridFTP Hacking
From SubfireWiki
Where to work
Need to update when:
- Request completes
- Every RETR
- Connection timeouts
So we will incrementally build the logging support:
- 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...
