Debugging Plugin(3) 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.