NAME
Debugging Plugin -
The FTP Debugging plugin provides a way for the user to trace FTP
protocol messages which occur while the GridFTP client library
processes an FTP operation.
Defines
#define GLOBUS_FTP_CLIENT_DEBUG_PLUGIN_MODULE
(&globus_i_ftp_client_debug_plugin_module)
Functions
globus_result_t globus_ftp_client_debug_plugin_init
(globus_ftp_client_plugin_t *plugin, FILE *stream, const char
*text)
globus_result_t globus_ftp_client_debug_plugin_destroy
(globus_ftp_client_plugin_t *plugin)
Detailed Description
The FTP Debugging plugin provides a way for the user to trace FTP
protocol messages which occur while the GridFTP client library
processes an FTP operation.
This may be useful for debugging FTP configuration problems.
When this plugin is used for a GridFTP Client operation, information
will be printed to the file stream associated with the plugin when a
user begins an operation, for all data buffers which pass through while
handling a data transfer, and for all protocol messages which are sent
and received.
Example Usage:
The following example illustrates a typical use of the debug plugin. In
this case, we configure a plugin instance to output log messages
preceded by the process name and pid to a file named gridftp.log.
int main(int argc, char *argv[])
{
globus_ftp_client_plugin_t restart_plugin;
globus_ftp_client_handleattr_t handleattr;
globus_ftp_client_handle_t handle;
FILE * log;
char text[256];
/* Activate the necessary modules */
globus_module_activate(GLOBUS_FTP_CLIENT_MODULE);
globus_module_activate(GLOBUS_FTP_CLIENT_DEBUG_PLUGIN_MODULE);
/* Configure plugin to show custom text, and send plugin data to
* a custom log file
*/
log = fopen(’gridftp.log’, ’a’);
sprintf(text, ’%s:%ld’, argv[0], (long) getpid());
globus_ftp_client_debug_plugin_init(&debug_plugin, log, text);
/* Set up our client handle to use the new plugin */
globus_ftp_client_handleattr_init(&handleattr);
globus_ftp_client_handleattr_add_plugin(&handleattr, &debug_plugin);
globus_ftp_client_handle_init(&handle, &handleattr);
/* As this get is processed, data will be appended to our gridftp.log
* file
*/
globus_ftp_client_get(&handle,
’ftp://ftp.globus.org/pub/globus/README’,
GLOBUS_NULL,
GLOBUS_NULL,
callback_fn,
GLOBUS_NULL);
}
Define Documentation
#define GLOBUS_FTP_CLIENT_DEBUG_PLUGIN_MODULE
(&globus_i_ftp_client_debug_plugin_module)
Module descriptor.
Function Documentation
globus_result_t globus_ftp_client_debug_plugin_init
(globus_ftp_client_plugin_t * plugin, FILE * stream, const char * text)
Initialize an instance of the GridFTP debugging plugin
This function will initialize the debugging plugin-specific instance
data for this plugin, and will make the plugin usable for ftp client
handle attribute and handle creation. Parameters:
plugin A pointer to an uninitialized plugin. The plugin will be
configured as a debugging plugin, with the default of sending
debugging messages to stderr.
stream
text
Returns:
This function returns an error if
· plugin is null
See also:
globus_ftp_client_debug_plugin_destroy(),
globus_ftp_client_handleattr_add_plugin(),
globus_ftp_client_handleattr_remove_plugin(),
globus_ftp_client_handle_init()
globus_result_t globus_ftp_client_debug_plugin_destroy
(globus_ftp_client_plugin_t * plugin)
Destroy an instance of the GridFTP debugging plugin
This function will free all debugging plugin-specific instance data
from this plugin, and will make the plugin unusable for further ftp
handle creation. Existing FTP client handles and handle attributes will
not be affected by destroying a plugin associated with them, as a local
copy of the plugin is made upon handle initialization.
Parameters:
plugin A pointer to a GridFTP debugging plugin, previously
initialized by calling globus_ftp_client_debug_plugin_init()
Returns:
This function returns an error if
· plugin is null
· plugin is not a debugging plugin
See also:
globus_ftp_client_debug_plugin_init(),
globus_ftp_client_handleattr_add_plugin(),
globus_ftp_client_handleattr_remove_plugin(),
globus_ftp_client_handle_init()
Author
Generated automatically by Doxygen for globus ftp client from the
source code.