.TH "globus_ftp_control.h" 3 "Version 9.10" "globus_ftp_control" \" -*- nroff -*- .ad l .nh .SH NAME globus_ftp_control.h \- GridFTP Control Connection API\&. .SH SYNOPSIS .br .PP \fC#include 'globus_common\&.h'\fP .br \fC#include 'globus_error_string\&.h'\fP .br \fC#include 'globus_io\&.h'\fP .br \fC#include 'globus_gss_assist\&.h'\fP .br \fC#include 'globus_handle_table\&.h'\fP .br .SS "Data Structures" .in +1c .ti -1c .RI "struct \fBglobus_ftp_control_dcau_subject_s\fP" .br .RI "Control DCAU subject authentication type\&. " .ti -1c .RI "struct \fBglobus_ftp_control_round_robin_s\fP" .br .RI "Control striping round robin attribute structure\&. " .ti -1c .RI "union \fBglobus_ftp_control_dcau_u\fP" .br .RI "Control DCAU union\&. " .ti -1c .RI "union \fBglobus_ftp_control_layout_u\fP" .br .RI "Control striping attribute union\&. " .ti -1c .RI "union \fBglobus_ftp_control_parallelism_u\fP" .br .RI "Control parallelism attribute structure .br " .ti -1c .RI "struct \fBglobus_ftp_control_tcpbuffer_default_t\fP" .br .RI "Don't change the TCP buffer/window size from the system default\&. " .ti -1c .RI "struct \fBglobus_ftp_control_tcpbuffer_fixed_t\fP" .br .RI "Set the TCP buffer/window size to a fixed value\&. " .ti -1c .RI "struct \fBglobus_ftp_control_tcpbuffer_automatic_s\fP" .br .RI "Automatically set the TCP buffer/window size\&. " .ti -1c .RI "union \fBglobus_ftp_control_tcpbuffer_t\fP" .br .RI "Control tcpbuffer attribute structure\&. " .ti -1c .RI "struct \fBglobus_ftp_control_auth_info_s\fP" .br .RI "Authentication Values\&. " .in -1c .SS "Macros" .in +1c .ti -1c .RI "#define \fBGLOBUS_FTP_CONTROL_MODULE\fP (&globus_i_ftp_control_module)" .br .RI "Module descriptor\&. " .in -1c .SS "Typedefs" .in +1c .ti -1c .RI "typedef enum \fBglobus_ftp_control_type_e\fP \fBglobus_ftp_control_type_t\fP" .br .RI "GridFTP TYPE values\&. " .ti -1c .RI "typedef enum \fBglobus_ftp_control_mode_e\fP \fBglobus_ftp_control_mode_t\fP" .br .RI "GridFTP MODE values\&. " .ti -1c .RI "typedef enum \fBglobus_ftp_control_dcau_mode_e\fP \fBglobus_ftp_control_dcau_mode_t\fP" .br .RI "GridFTP DCAU values\&. " .ti -1c .RI "typedef struct \fBglobus_ftp_control_dcau_subject_s\fP \fBglobus_ftp_control_dcau_subject_t\fP" .br .RI "Control DCAU subject authentication type\&. " .ti -1c .RI "typedef enum \fBglobus_ftp_control_striping_mode_e\fP \fBglobus_ftp_control_striping_mode_t\fP" .br .RI "GridFTP Striping Types\&. " .ti -1c .RI "typedef struct \fBglobus_ftp_control_round_robin_s\fP \fBglobus_ftp_control_round_robin_t\fP" .br .RI "Control striping round robin attribute structure\&. " .ti -1c .RI "typedef union \fBglobus_ftp_control_dcau_u\fP \fBglobus_ftp_control_dcau_t\fP" .br .RI "Control DCAU union\&. " .ti -1c .RI "typedef union \fBglobus_ftp_control_layout_u\fP \fBglobus_ftp_control_layout_t\fP" .br .RI "Control striping attribute union\&. " .ti -1c .RI "typedef enum \fBglobus_ftp_control_structure_e\fP \fBglobus_ftp_control_structure_t\fP" .br .ti -1c .RI "typedef enum \fBglobus_ftp_control_parallelism_mode_e\fP \fBglobus_ftp_control_parallelism_mode_t\fP" .br .ti -1c .RI "typedef union \fBglobus_ftp_control_parallelism_u\fP \fBglobus_ftp_control_parallelism_t\fP" .br .RI "Control parallelism attribute structure .br " .ti -1c .RI "typedef enum \fBglobus_ftp_control_tcpbuffer_mode_e\fP \fBglobus_ftp_control_tcpbuffer_mode_t\fP" .br .ti -1c .RI "typedef struct \fBglobus_ftp_control_tcpbuffer_automatic_s\fP \fBglobus_ftp_control_tcpbuffer_automatic_t\fP" .br .RI "Automatically set the TCP buffer/window size\&. " .ti -1c .RI "typedef union \fBglobus_ftp_control_tcpbuffer_t\fP \fBglobus_ftp_control_tcpbuffer_t\fP" .br .RI "Control tcpbuffer attribute structure\&. " .ti -1c .RI "typedef struct \fBglobus_ftp_control_auth_info_s\fP \fBglobus_ftp_control_auth_info_t\fP" .br .RI "Authentication Values\&. " .ti -1c .RI "typedef void(* \fBglobus_ftp_control_response_callback_t\fP) (void *callback_arg, struct globus_ftp_control_handle_s *handle, globus_object_t *error, globus_ftp_control_response_t *ftp_response)" .br .ti -1c .RI "typedef void(* \fBglobus_ftp_control_callback_t\fP) (void *callback_arg, struct globus_ftp_control_handle_s *handle, globus_object_t *error)" .br .ti -1c .RI "typedef void(* \fBglobus_ftp_control_command_callback_t\fP) (void *callback_arg, struct globus_ftp_control_handle_s *handle, globus_object_t *error, union globus_ftp_control_command_u *command)" .br .ti -1c .RI "typedef void(* \fBglobus_ftp_control_auth_callback_t\fP) (void *callback_arg, struct globus_ftp_control_handle_s *handle, globus_object_t *error, \fBglobus_ftp_control_auth_info_t\fP *auth_result)" .br .ti -1c .RI "typedef unsigned long \fBglobus_ftp_control_auth_requirements_t\fP" .br .ti -1c .RI "typedef void(* \fBglobus_ftp_control_data_callback_t\fP) (void *callback_arg, globus_ftp_control_handle_t *handle, globus_object_t *error, globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof)" .br .ti -1c .RI "typedef void(* \fBglobus_ftp_control_server_callback_t\fP) (void *callback_arg, struct globus_ftp_control_server_s *server_handle, globus_object_t *error)" .br .RI "Server callback\&. " .in -1c .SS "Enumerations" .in +1c .ti -1c .RI "enum \fBglobus_ftp_control_type_e\fP { \fBGLOBUS_FTP_CONTROL_TYPE_NONE\fP, \fBGLOBUS_FTP_CONTROL_TYPE_ASCII\fP = 'A', \fBGLOBUS_FTP_CONTROL_TYPE_EBCDIC\fP = 'E', \fBGLOBUS_FTP_CONTROL_TYPE_IMAGE\fP = 'I', \fBGLOBUS_FTP_CONTROL_TYPE_LOCAL\fP = 'L' }" .br .RI "GridFTP TYPE values\&. " .ti -1c .RI "enum \fBglobus_ftp_control_mode_e\fP { \fBGLOBUS_FTP_CONTROL_MODE_NONE\fP, \fBGLOBUS_FTP_CONTROL_MODE_STREAM\fP = 'S', \fBGLOBUS_FTP_CONTROL_MODE_BLOCK\fP = 'B', \fBGLOBUS_FTP_CONTROL_MODE_EXTENDED_BLOCK\fP = 'E', \fBGLOBUS_FTP_CONTROL_MODE_COMPRESSED\fP = 'C' }" .br .RI "GridFTP MODE values\&. " .ti -1c .RI "enum \fBglobus_ftp_control_dcau_mode_e\fP { \fBGLOBUS_FTP_CONTROL_DCAU_NONE\fP = 'N', \fBGLOBUS_FTP_CONTROL_DCAU_SELF\fP = 'A', \fBGLOBUS_FTP_CONTROL_DCAU_SUBJECT\fP = 'S', \fBGLOBUS_FTP_CONTROL_DCAU_DEFAULT\fP }" .br .RI "GridFTP DCAU values\&. " .ti -1c .RI "enum \fBglobus_ftp_control_striping_mode_e\fP " .br .RI "GridFTP Striping Types\&. " .ti -1c .RI "enum \fBglobus_ftp_control_protection_t\fP { \fBGLOBUS_FTP_CONTROL_PROTECTION_CLEAR\fP = 'C', \fBGLOBUS_FTP_CONTROL_PROTECTION_SAFE\fP = 'S', \fBGLOBUS_FTP_CONTROL_PROTECTION_CONFIDENTIAL\fP = 'E', \fBGLOBUS_FTP_CONTROL_PROTECTION_PRIVATE\fP = 'P' }" .br .RI "GridFTP Protection Types\&. " .ti -1c .RI "enum \fBglobus_ftp_control_delay_passive_t\fP " .br .ti -1c .RI "enum \fBglobus_ftp_control_structure_e\fP " .br .ti -1c .RI "enum \fBglobus_ftp_control_parallelism_mode_e\fP " .br .ti -1c .RI "enum \fBglobus_ftp_control_tcpbuffer_mode_e\fP { \fBGLOBUS_FTP_CONTROL_TCPBUFFER_DEFAULT\fP, \fBGLOBUS_FTP_CONTROL_TCPBUFFER_FIXED\fP, \fBGLOBUS_FTP_CONTROL_TCPBUFFER_AUTOMATIC\fP }" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "globus_result_t \fBglobus_ftp_control_local_layout\fP (globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_layout_t\fP *layout, globus_size_t data_size)" .br .RI "Set data layout\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_data_set_interface\fP (globus_ftp_control_handle_t *handle, const char *interface_addr)" .br .RI "Create an outgoing FTP data connection\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_create_data_info\fP (globus_ftp_control_handle_t *handle, globus_ftp_control_data_write_info_t *data_info, globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof, \fBglobus_ftp_control_data_callback_t\fP callback, void *callback_arg)" .br .RI "Create a globus_ftp_control_data_write_info_t structure\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_release_data_info\fP (globus_ftp_control_handle_t *handle, globus_ftp_control_data_write_info_t *data_info)" .br .RI "Release a data_info structure\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_data_write_stripe\fP (globus_ftp_control_handle_t *handle, globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof, int stripe_ndx, \fBglobus_ftp_control_data_callback_t\fP callback, void *callback_arg)" .br .RI "Write FTP data to a stripe\&. " .ti -1c .RI "globus_result_t \fBglobus_X_ftp_control_data_write_stripe\fP (globus_ftp_control_handle_t *handle, globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof, int stripe_ndx, globus_ftp_control_data_write_info_t *data_info)" .br .RI "Write data to a stripe from an enqueue callback\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_auth_info_init\fP (\fBglobus_ftp_control_auth_info_t\fP *auth_info, gss_cred_id_t credential_handle, globus_bool_t encrypt, char *user, char *password, char *account, char *subject)" .br .RI "Initialize authentication information\&. " .ti -1c .RI "int \fBglobus_ftp_control_auth_info_compare\fP (\fBglobus_ftp_control_auth_info_t\fP *auth_info_1, \fBglobus_ftp_control_auth_info_t\fP *auth_info_2)" .br .RI "Compare authentication information\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_handle_init\fP (globus_ftp_control_handle_t *handle)" .br .RI "Initialize a globus ftp handle\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_handle_destroy\fP (globus_ftp_control_handle_t *handle)" .br .RI "Destroy a globus ftp handle\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_server_handle_init\fP (globus_ftp_control_server_t *handle)" .br .RI "Initialize a GridFTP server handle\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_server_handle_destroy\fP (globus_ftp_control_server_t *handle)" .br .RI "Destroy a GridFTP server handle\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_response_destroy\fP (globus_ftp_control_response_t *response)" .br .RI "Free the memory associated with a response\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_response_copy\fP (globus_ftp_control_response_t *src, globus_ftp_control_response_t *dest)" .br .RI "Copy a response structure\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_connect\fP (globus_ftp_control_handle_t *handle, char *host, unsigned short port, \fBglobus_ftp_control_response_callback_t\fP callback, void *callback_arg)" .br .RI "Create a new control connection to an FTP server\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_authenticate\fP (globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_auth_info_t\fP *auth_info, globus_bool_t use_auth, \fBglobus_ftp_control_response_callback_t\fP callback, void *callback_arg)" .br .RI "Authenticate the user to the FTP server\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_authenticate_ex\fP (globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_auth_info_t\fP *auth_info, globus_bool_t use_auth, \fBglobus_ftp_control_response_callback_t\fP callback, void *callback_arg)" .br .RI "Authenticate the user to the FTP server\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_abort\fP (globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_response_callback_t\fP callback, void *callback_arg)" .br .RI "Send a GridFTP ABORT\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_quit\fP (globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_response_callback_t\fP callback, void *callback_arg)" .br .RI "Send a GridFTP QUIT\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_force_close\fP (globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_response_callback_t\fP callback, void *callback_arg)" .br .RI "Force a control connection to close\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_send_command\fP (globus_ftp_control_handle_t *handle, const char *cmdspec, \fBglobus_ftp_control_response_callback_t\fP callback, void *callback_arg,\&.\&.\&.)" .br .RI "Send an FTP protocol command\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_local_pbsz\fP (globus_ftp_control_handle_t *handle, unsigned long bufsize)" .br .RI "Set data channel protection buffer size\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_get_pbsz\fP (globus_ftp_control_handle_t *handle, unsigned long *bufsize)" .br .RI "Get data channel protection buffer size\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_server_listen\fP (globus_ftp_control_server_t *handle, unsigned short *port, \fBglobus_ftp_control_server_callback_t\fP callback, void *callback_arg)" .br .RI "Listen on for FTP Client Connections\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_server_listen_ex\fP (globus_ftp_control_server_t *handle, globus_io_attr_t *attr, unsigned short *port, \fBglobus_ftp_control_server_callback_t\fP callback, void *callback_arg)" .br .RI "Listen on for FTP Client Connections\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_server_stop\fP (globus_ftp_control_server_t *listener, \fBglobus_ftp_control_server_callback_t\fP callback, void *callback_arg)" .br .RI "Stop listening for GridFTP client connections\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_server_accept\fP (globus_ftp_control_server_t *listener, globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_callback_t\fP callback, void *callback_arg)" .br .RI "Accept a Client Connection\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_server_authenticate\fP (globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_auth_requirements_t\fP auth_requirements, \fBglobus_ftp_control_auth_callback_t\fP callback, void *callback_arg)" .br .RI "Authenticate a GridFTP Client Connection\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_read_commands\fP (globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_command_callback_t\fP callback, void *callback_arg)" .br .RI "Read GridFTP commands\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_send_response\fP (globus_ftp_control_handle_t *handle, const char *respspec, \fBglobus_ftp_control_callback_t\fP callback, void *callback_arg,\&.\&.\&.)" .br .RI "Send a GridFTP response\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_command_copy\fP (globus_ftp_control_command_t *dest, globus_ftp_control_command_t *src)" .br .RI "Copy of GridFTP command\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_command_init\fP (globus_ftp_control_command_t *command, char *raw_command, \fBglobus_ftp_control_auth_info_t\fP *auth_info)" .br .RI "Initialize a GridFTP command\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_command_destroy\fP (globus_ftp_control_command_t *command)" .br .RI "Destroy a GridFTP command\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_data_force_close\fP (globus_ftp_control_handle_t *control_handle, \fBglobus_ftp_control_callback_t\fP destroy_callback, void *destroy_callback_arg)" .br .RI "Close data connections\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_local_send_eof\fP (globus_ftp_control_handle_t *handle, globus_bool_t send_eof)" .br .RI "Enable or disable automatic EOF handling\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_data_send_eof\fP (globus_ftp_control_handle_t *handle, int count[], int array_size, globus_bool_t eof_message, \fBglobus_ftp_control_callback_t\fP cb, void *user_arg)" .br .RI "Send EOF\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_data_connect_read\fP (globus_ftp_control_handle_t *handle, globus_ftp_control_data_connect_callback_t callback, void *user_arg)" .br .RI "Create an incoming FTP data connection\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_data_connect_write\fP (globus_ftp_control_handle_t *handle, globus_ftp_control_data_connect_callback_t callback, void *user_arg)" .br .RI "Create an outgoing FTP data connection\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_data_add_channels\fP (globus_ftp_control_handle_t *handle, unsigned int num_channels, unsigned int stripe)" .br .RI "Add data channels\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_data_remove_channels\fP (globus_ftp_control_handle_t *handle, unsigned int num_channels, unsigned int stripe)" .br .RI "Remove Data Channels\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_data_query_channels\fP (globus_ftp_control_handle_t *handle, unsigned int *num_channels, unsigned int stripe)" .br .RI "Number of data channels\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_data_get_total_data_channels\fP (globus_ftp_control_handle_t *handle, unsigned int *num_channels, unsigned int stripe_ndx)" .br .RI "Get Total Data Channels For a Stripe\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_local_parallelism\fP (globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_parallelism_t\fP *parallelism)" .br .RI "Set control handle parallelism\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_local_pasv\fP (globus_ftp_control_handle_t *handle, globus_ftp_control_host_port_t *address)" .br .RI "Create a passive socket\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_local_spas\fP (globus_ftp_control_handle_t *handle, globus_ftp_control_host_port_t addresses[], unsigned int num_addresses)" .br .RI "Create multiple passive sockets\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_local_port\fP (globus_ftp_control_handle_t *handle, globus_ftp_control_host_port_t *address)" .br .RI "Set remote data address\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_local_spor\fP (globus_ftp_control_handle_t *handle, globus_ftp_control_host_port_t addresses[], unsigned int num_addresses)" .br .RI "Set remote data addresses\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_local_type\fP (globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_type_t\fP type, int form_code)" .br .RI "Set control handle TYPE value\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_local_tcp_buffer\fP (globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_tcpbuffer_t\fP *tcp_buffer)" .br .RI "Set data handle TCP buffer size\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_local_mode\fP (globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_mode_t\fP mode)" .br .RI "Set data handle mode\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_local_dcau\fP (globus_ftp_control_handle_t *handle, const \fBglobus_ftp_control_dcau_t\fP *dcau, gss_cred_id_t delegated_credential_handle)" .br .RI "Set data channel DCAU\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_local_stru\fP (globus_ftp_control_handle_t *handle, \fBglobus_ftp_control_structure_t\fP structure)" .br .RI "Set data channel structure\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_data_write\fP (globus_ftp_control_handle_t *handle, globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof, \fBglobus_ftp_control_data_callback_t\fP callback, void *callback_arg)" .br .RI "Write data to data connections\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_data_read\fP (globus_ftp_control_handle_t *handle, globus_byte_t *buffer, globus_size_t max_length, \fBglobus_ftp_control_data_callback_t\fP callback, void *callback_arg)" .br .RI "Read data from data connections\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_set_force_order\fP (globus_ftp_control_handle_t *handle, globus_bool_t order_data, globus_off_t starting_offset)" .br .RI "Set data handle to return read mode E data in order\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_ipv6_allow\fP (globus_ftp_control_handle_t *handle, globus_bool_t allow)" .br .RI "Not documented yet\&. " .ti -1c .RI "globus_result_t \fBglobus_ftp_control_client_get_connection_info_ex\fP (globus_ftp_control_handle_t *handle, globus_ftp_control_host_port_t *local_info, globus_ftp_control_host_port_t *remote_info)" .br .RI "Not documented yet\&. " .in -1c .SH "Detailed Description" .PP GridFTP Control Connection API\&. .SH "Typedef Documentation" .PP .SS "typedef void(* globus_ftp_control_auth_callback_t) (void *callback_arg, struct globus_ftp_control_handle_s *handle, globus_object_t *error, \fBglobus_ftp_control_auth_info_t\fP *auth_result)" Server authentication complete callback\&. .PP A function with this signature is registered by calling globus_ftp_control_accept()\&. It is called when the authentication protocol has completed\&. Based on the auth_result, the server implementor should determine authorization and then send the appropriate response using \fBglobus_ftp_control_send_response()\fP, indicating to the client whether authorization was successful or not\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP This structure is populated when the callback is called and represents a control connection to the client\&. .br \fIerror\fP Indicates if a command was successfully read or or if a failure occurred\&. This object will be freed once this callback returns\&. If the user wishes to have a copy of the error that persists past the life of this callback, they must make a copy using globus_object_copy(), and free it with globus_object_free()\&. .br \fIauth_result\fP A globus_ftp_control_auth_result_t containing the values the client sent for gss authentication, user name, password and account\&. If any of the values were not sent by the client they will be NULL\&. Based on that information the user can decide if the client will be authorized for use of the server\&. .br .br \fIcallback_arg\fP The user argument passed to the callback\&. .RE .PP .SS "typedef struct \fBglobus_ftp_control_auth_info_s\fP \fBglobus_ftp_control_auth_info_t\fP" .PP Authentication Values\&. This structure is populated and passed back to the user via the \fBglobus_ftp_control_auth_callback_t()\fP\&. It contains the information needed to decide if a client may use the server\&. .SS "typedef unsigned long \fBglobus_ftp_control_auth_requirements_t\fP" Authentication requirements\&. .PP The value of this should be a bitwise or of .IP "\(bu" 2 GLOBUS_FTP_CONTROL_AUTH_NONE .IP "\(bu" 2 GLOBUS_FTP_CONTROL_AUTH_GSSAPI .IP "\(bu" 2 GLOBUS_FTP_CONTROL_AUTH_USER .IP "\(bu" 2 GLOBUS_FTP_CONTROL_AUTH_PASS .IP "\(bu" 2 GLOBUS_FTP_CONTROL_AUTH_ACCT .PP .SS "typedef void(* globus_ftp_control_callback_t) (void *callback_arg, struct globus_ftp_control_handle_s *handle, globus_object_t *error)" Asynchronous control callback\&. .PP This callback is used as a generic control operation callback\&. .PP \fBParameters\fP .RS 4 \fIcallback_arg\fP User supplied argument to the callback function .br \fIhandle\fP A pointer to the GridFTP control handle\&. Used to identify which control connection the operation was applied to\&. .br \fIerror\fP Pointer to a globus error object containing information about any errors that occurred processing the operation .RE .PP .SS "typedef void(* globus_ftp_control_command_callback_t) (void *callback_arg, struct globus_ftp_control_handle_s *handle, globus_object_t *error, union globus_ftp_control_command_u *command)" Server command callback\&. .PP When a command from a client is received on the control channel a user callback with this signature is called\&. .PP \fBParameters\fP .RS 4 \fIcallback_arg\fP The user argument passed to the callback function\&. .br \fIhandle\fP The control handle that the command was issued on\&. .br \fIerror\fP Indicates if a command was successfully read or or if a failure occurred\&. This object will be freed once this callback returns\&. If the user wishes to have a copy of the error that persists past the life of this callback, they must make a copy using globus_object_copy(), and free it with globus_object_free()\&. .br \fIcommand\fP The command structure indicates what type of command the client issued\&. Based on the 'type' further information can be extracted\&. This command structure will be freed once this callback returns\&. If the user wishes to have a copy of the error that persists past the life of this callback, they must make a copy using \fBglobus_ftp_control_command_copy()\fP, and free it with globus_ftp_control_command_free()\&. .RE .PP .SS "typedef void(* globus_ftp_control_data_callback_t) (void *callback_arg, globus_ftp_control_handle_t *handle, globus_object_t *error, globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof)" Asynchronous data transmission operation callback\&. .PP This callback is called in functions that send or receive data on the data channel(s)\&. .PP In the case of a write, this function is invoked when the entire data buffer is sent\&. Depending on the data transfer properties set by the globus_ftp_control_local_*() functions, the data may actually be split into multiple buffers and sent to multiple data nodes\&. .PP In the case of a read, this function will return a single extent of the data\&. The order of the data returned is not defined in an extended block mode data transfer, unless the ordered_data flag is set\&. It is up to the user of the API to re-construct the file order\&. .PP \fBParameters\fP .RS 4 \fIcallback_arg\fP User supplied argument to the callback function .br \fIhandle\fP A pointer to the GridFTP control handle\&. Used to identify which control connection the operation was applied to\&. .br \fIerror\fP Pointer to a globus error object containing information about any errors that occurred processing the operation .br \fIbuffer\fP The user buffer passed as a parameter to \fBglobus_ftp_control_data_read()\fP or \fBglobus_ftp_control_data_write()\fP\&. .br \fIlength\fP The amount of data in the buffer\&. In the case of an incoming data channel, this may be less than the buffer size\&. .br \fIoffset\fP The file offset of the data which is contained in the buffer\&. .br \fIeof\fP This is set to GLOBUS_TRUE then all of the data associated with the transfer has arrived on the data connections associated with this handle\&. If multiple data callbacks are registered with this handle, there is no guaranteed order of the EOF callback with respect to other data callbacks\&. If multiple callbacks are registered when EOF is reached on the data connections, at least one callback function will be called with eof set to GLOBUS_TRUE\&. .RE .PP .SS "typedef enum \fBglobus_ftp_control_parallelism_mode_e\fP \fBglobus_ftp_control_parallelism_mode_t\fP" control parallelism Types .SS "typedef void(* globus_ftp_control_response_callback_t) (void *callback_arg, struct globus_ftp_control_handle_s *handle, globus_object_t *error, globus_ftp_control_response_t *ftp_response)" Asynchronous operation completion callback\&. .PP This callback is called whenever a reply to command is received on the FTP control channel\&. It allows the user to handle the received reply or alternatively handle any errors that occurred during the interaction with the FTP server\&. This function will be called multiple times in the case when intermediate responses (1yz) are received\&. .PP \fBParameters\fP .RS 4 \fIcallback_arg\fP User supplied argument to the callback function .br \fIhandle\fP A pointer to the GridFTP control handle\&. Used to identify which control connection the operation was applied to\&. .br \fIerror\fP Pointer to a globus error object containing information about any errors that occurred processing the operation .br \fIftp_response\fP Pointer to a response structure containing the FTP response to the command\&. .RE .PP .SS "typedef enum \fBglobus_ftp_control_structure_e\fP \fBglobus_ftp_control_structure_t\fP" control structure structure .SS "typedef enum \fBglobus_ftp_control_tcpbuffer_mode_e\fP \fBglobus_ftp_control_tcpbuffer_mode_t\fP" TCP Buffer Setting Modes .SH "Enumeration Type Documentation" .PP .SS "enum \fBglobus_ftp_control_delay_passive_t\fP" delayed passive flags .SS "enum \fBglobus_ftp_control_parallelism_mode_e\fP" control parallelism Types .SS "enum \fBglobus_ftp_control_structure_e\fP" control structure structure .SS "enum \fBglobus_ftp_control_tcpbuffer_mode_e\fP" TCP Buffer Setting Modes .PP \fBEnumerator\fP .in +1c .TP \fB\fIGLOBUS_FTP_CONTROL_TCPBUFFER_DEFAULT \fP\fP Don't change the TCP buffer/window size from the system default .TP \fB\fIGLOBUS_FTP_CONTROL_TCPBUFFER_FIXED \fP\fP Set the TCP buffer/window size to a fixed value .TP \fB\fIGLOBUS_FTP_CONTROL_TCPBUFFER_AUTOMATIC \fP\fP Automatically set the TCP buffer/window size .SH "Author" .PP Generated automatically by Doxygen for globus_ftp_control from the source code\&.