.TH "globus_ftp_control_data" 3 "Mon Dec 14 2020" "Version 9.6" "globus_ftp_control" \" -*- nroff -*- .ad l .nh .SH NAME globus_ftp_control_data \- GridFTP Data Connections .PP \- Data Connections\&. .SH SYNOPSIS .br .PP .SS "Functions" .in +1c .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_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_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_ndx)" .br .RI "Add data channels\&. " .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_remove_channels\fP (globus_ftp_control_handle_t *handle, unsigned int num_channels, unsigned int stripe_ndx)" .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_ndx)" .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_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_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_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_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_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_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_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_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_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_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_data_force_close\fP (globus_ftp_control_handle_t *control_handle, \fBglobus_ftp_control_callback_t\fP close_callback_func, void *close_arg)" .br .RI "Close data connections\&. " .in -1c .SH "Detailed Description" .PP Data Connections\&. .SH "Function Documentation" .PP .SS "globus_result_t globus_ftp_control_create_data_info (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)" .PP Create a globus_ftp_control_data_write_info_t structure\&. This function populates a globus_ftp_control_data_callback_t structure with valid information\&. This structure provides the user a way to register several data writes with a single callback\&. This is quite useful to the writer of enqueue functions\&. It allows a single call to \fBglobus_ftp_control_data_write()\fP to be broken up into many writes, potentially on different stripes, and for a single callback to be called when all are finished\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. The handle contains information about the current state of the control and data connections\&. .br \fIdata_info\fP The globus_ftp_control_data_write_info_t structure to be released\&. .br \fIbuffer\fP The pointer to the user buffer that will be passed to the callback argument when there are zero references to data_info\&. This is intended to be the start of all the data the user intends to write using \fBglobus_ftp_control_data_write_stripe()\fP, but it does not have to be\&. .br \fIlength\fP The length of the memory segment pointed to by the argument buffer\&. .br \fIoffset\fP The file offset of the data segment specified\&. .br \fIeof\fP This should be set to true if the user plans on registering eof on the data_info structure\&. .br \fIcallback\fP The user function to be called when all references to data_info are released\&. This occurs after all data registered for write from globus_ftp_control_data_write_stripe have occurred and the user calls \fBglobus_ftp_control_release_data_info()\fP\&. The callback is passed all of the arguments passed to this function with the exception of data_info\&. .br \fIcallback_arg\fP User supplied argument to the callback function .RE .PP .SS "globus_result_t globus_ftp_control_data_add_channels (globus_ftp_control_handle_t * handle, unsigned int num_channels, unsigned int stripe_ndx)" .PP Add data channels\&. Opens additional data channels (connections) to the host identified by the stripe parameter\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. This handle is used to determine the host corresponding to the stripe number and to store information about any channels added by this function\&. .br \fInum_channels\fP The number of additional channels to add\&. .br \fIstripe_ndx\fP A integer identifying the stripe to add channels too\&. In the case of non-striped transfer this parameter will be ignored\&. .RE .PP .SS "globus_result_t globus_ftp_control_data_connect_read (globus_ftp_control_handle_t * handle, globus_ftp_control_data_connect_callback_t callback, void * user_arg)" .PP Create an incoming FTP data connection\&. This function will register a globus_io_{accept, connect}\&. Further accepts/connects are done by registering a new accept/connect in the current accept/connect callback\&. A call to either \fBglobus_ftp_control_local_pasv()\fP or \fBglobus_ftp_control_local_port()\fP needs to precede this calling this function\&. This function may be followed by a globus_ftp_data_read\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle which is configured to create an incoming data connection\&. .br \fIcallback\fP This callback is called when the connection occurs\&. This parameter may be NULL\&. .br \fIuser_arg\fP The user argument passed to the connect callback\&. .RE .PP .SS "globus_result_t globus_ftp_control_data_connect_write (globus_ftp_control_handle_t * handle, globus_ftp_control_data_connect_callback_t callback, void * user_arg)" .PP Create an outgoing FTP data connection\&. This function will register a globus_io_{accept, connect}\&. Further accepts/connects are done by registering a new accept/connect in the current accept/connect callback\&. A call to either \fBglobus_ftp_control_local_pasv()\fP or \fBglobus_ftp_control_local_port()\fP needs to precede this calling this function\&. This function may be followed by a globus_ftp_data_write\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle which is configured to create an outgoing data connection\&. .br \fIcallback\fP This callback is called when the connection occurs\&. This parameter may be NULL\&. .br \fIuser_arg\fP The user argument passed to the connect callback\&. .RE .PP .SS "globus_result_t globus_ftp_control_data_force_close (globus_ftp_control_handle_t * control_handle, \fBglobus_ftp_control_callback_t\fP close_callback_func, void * close_arg)" .PP Close data connections\&. Forces an immediate close of all data connections\&. .PP \fBParameters\fP .RS 4 \fIcontrol_handle\fP The globus_ftp_control_handle that is have its data connections closed\&. .br \fIclose_callback_func\fP A user function that will be called when the data connections are closed\&. .br \fIclose_arg\fP The user argument that will be threaded through to close_callback_func\&. .RE .PP .SS "globus_result_t globus_ftp_control_data_get_total_data_channels (globus_ftp_control_handle_t * handle, unsigned int * num_channels, unsigned int stripe_ndx)" .PP Get Total Data Channels For a Stripe\&. Returns the total number of data channels used so far in the current transfer on the given stripe\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. This handle is used to determine the host corresponding to 'stripe' and number of channels corresponding to that host\&. .br \fInum_channels\fP .br \fIstripe_ndx\fP A integer identifying the stripe for which to return the number of channels\&. In the case of non-striped transfer this parameter should be zero\&. .RE .PP .SS "globus_result_t globus_ftp_control_data_query_channels (globus_ftp_control_handle_t * handle, unsigned int * num_channels, unsigned int stripe_ndx)" .PP Number of data channels\&. Returns the number of currently open channels for the host identified by the stripe parameter\&. This number may be less then the level of parallelism specified in local_parallelism, due to the possibility that some channels have not yet connected\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. This handle is used to determine the host corresponding to 'stripe' and number of channels corresponding to that host\&. .br \fInum_channels\fP .br \fIstripe_ndx\fP A integer identifying the stripe for which to return the number of channels\&. In the case of non-striped transfer this parameter should be zero\&. .RE .PP .SS "globus_result_t globus_ftp_control_data_read (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)" .PP Read data from data connections\&. Reads data from data connection(s) and put them in the supplied buffer\&. .PP This function takes the given buffer and will try to read data from the data connection(s)\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. The handle contains information about the current state of the control and data connections\&. .br \fIbuffer\fP A user supplied buffer into which data from the data connection(s) will be written .br \fImax_length\fP The maximum length of the data that can be written to the buffer .br \fIcallback\fP The function to be called once the data has been read .br \fIcallback_arg\fP User supplied argument to the callback function .RE .PP .SS "globus_result_t globus_ftp_control_data_remove_channels (globus_ftp_control_handle_t * handle, unsigned int num_channels, unsigned int stripe_ndx)" .PP Remove Data Channels\&. Removes data channels (connections) to the host identified by the stripe parameter\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. This handle is used to determine the host corresponding to the stripe number and to update information about any channels removed by this function\&. .br \fInum_channels\fP The number of channels to remove\&. .br \fIstripe_ndx\fP A integer identifying the stripe to remove channels from\&. In the case of non-striped transfer this parameter will be ignored\&. .RE .PP .SS "globus_result_t globus_ftp_control_data_send_eof (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)" .PP Send EOF\&. Sends an EOF message to each stripe along an open data connection\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. This handle contains the state for a connection\&. .br \fIcount[]\fP This array of integers should contain an integer that will be added to the current parallel data connection count on each stripe\&. The order of the integers corresponds to each stripe in the same order as what was returned from local_port()\&. .RE .PP An EOF message must be sent to all receiving hosts in a transfer\&. The message contains the total number of data connections used by each stripe\&. Many stripes may be sending to a single receiver but only one EOF message may be sent\&. The count parameter allows the user to pass in the total number of data connections used by all other hosts\&. The local values are added to the passed in values and then sent to the receiver\&. .PP \fBParameters\fP .RS 4 \fIarray_size\fP The number of elements in count[]\&. .br \fIeof_message\fP .br \fIcb\fP The function to be called when the eof message has been called\&. .br \fIuser_arg\fP A user pointer that is threaded through to the user callback\&. .RE .PP .SS "globus_result_t globus_ftp_control_data_set_interface (globus_ftp_control_handle_t * handle, const char * interface_addr)" .PP Create an outgoing FTP data connection\&. This function sets the interface that will be used to send and receive information along the data channel\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle which is configured to create an outgoing data connection\&. .br \fIinterface_addr\fP .RE .PP .SS "globus_result_t globus_ftp_control_data_write (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)" .PP Write data to data connections\&. Writes data from the supplied buffer to data connection(s) .PP This function writes contained in the buffer to the data channel(s)\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. The handle contains information about the current state of the control and data connections\&. .br \fIbuffer\fP A user supplied buffer from which data will written to the data connection(s) .br \fIlength\fP The length of the data contained in the buffer\&. .br \fIoffset\fP The offset in the file at which the data in the buffer starts .br \fIeof\fP Indicates that the buffer is that last part of a file\&. In the striped case this will cause a EOF block to be send to every data node involved in the transfer\&. .br \fIcallback\fP The function to be called once the data has been sent .br \fIcallback_arg\fP User supplied argument to the callback function .RE .PP .SS "globus_result_t globus_ftp_control_data_write_stripe (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)" .PP Write FTP data to a stripe\&. This function allows the user to write to a specified stripe\&. The stripe index relates to the order passsed into local_spor()\&. This function differs from \fBglobus_ftp_control_data_write()\fP in that no enqueue function is needed since the user specifies the stripe on which data is written\&. In order to use this function the user must have a valid pointer to a globus_ftp_control_data_write_info_t structure\&. The data_info structure can be obtained by a call to \fBglobus_ftp_control_create_data_info()\fP\&. Many calls to this function can be made, but only a single user callback occurs per creation of a globus_ftp_control_data_write_info_t structure\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. The handle contains information about the current state of the control and data connections\&. .br \fIbuffer\fP a pointer to the data the user wishes to send along the FTP data channels\&. .br \fIlength\fP the length of the data pointer to by the parameter buffer\&. .br \fIoffset\fP the offset into the file of the data\&. .br \fIeof\fP A boolean stating that this will be the last chuck of data registered on the given stripe\&. In order to properly send an eof message the user must register an eof on every stripe\&. .br \fIstripe_ndx\fP The index of the stripe on which the data will be sent\&. The index of each stripe is determined by the call to local_spas or local_spor\&. .br \fIcallback\fP The function to be called once the data has been sent .br \fIcallback_arg\fP User supplied argument to the callback function .RE .PP .SS "globus_result_t globus_ftp_control_get_pbsz (globus_ftp_control_handle_t * handle, unsigned long * bufsize)" .PP Get data channel protection buffer size\&. Query the FTP control handle for the protection buffer size information\&. .PP This function queries the handle to determine the protection buffer size which is used by this handle\&. This value is used to determine how much data will be sent in each packet during a protected data transfer\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to the FTP control handle to be updated .br \fIbufsize\fP A pointer to a parameter to store the value of the protection buffer size\&. .RE .PP .SS "globus_result_t globus_ftp_control_local_dcau (globus_ftp_control_handle_t * handle, const \fBglobus_ftp_control_dcau_t\fP * dcau, gss_cred_id_t delegated_credential_handle)" .PP Set data channel DCAU\&. Update the FTP control handle with the given data channel authentication information\&. .PP If authentication is set to GLOBUS_FTP_CONTROL_DCAU_NONE, then protection will also be disabled for this control handle\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to the FTP control handle to be updated .br \fIdcau\fP A parameter specifying the data channel authentication mode\&. Possible values are No Authentication, Self Authentication and Subject-name authentication\&. .br \fIdelegated_credential_handle\fP .RE .PP .SS "globus_result_t globus_ftp_control_local_layout (globus_ftp_control_handle_t * handle, \fBglobus_ftp_control_layout_t\fP * layout, globus_size_t data_size)" .PP Set data layout\&. Update the handle with the layout and the size of the data sent over the data channel\&. .PP This function is deprecated\&. The interface will be the changed to that of globus_X_ftp_control_local_layout() .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to the FTP control handle into which to insert the layout information\&. .br \fIlayout\fP A variable containing the layout information .br \fIdata_size\fP The size of the data that is going to be sent\&. This may be needed to interpret the layout information\&. .RE .PP .SS "globus_result_t globus_ftp_control_local_mode (globus_ftp_control_handle_t * handle, \fBglobus_ftp_control_mode_t\fP mode)" .PP Set data handle mode\&. Update the FTP control handle with the given mode information\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to the FTP control handle to be updated .br \fImode\fP Specifies the mode of the data connection\&. Possible modes are STREAM, BLOCK, EXTENDED BLOCK and COMPRESSED\&. Out of these only STREAM and EXTENDED BLOCK are supported in this implementation\&. Also, EXTENDED BLOCK is only supported in combination with the IMAGE type\&. .RE .PP .SS "globus_result_t globus_ftp_control_local_parallelism (globus_ftp_control_handle_t * handle, \fBglobus_ftp_control_parallelism_t\fP * parallelism)" .PP Set control handle parallelism\&. Set the parallelism information in a FTP control handle .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to the FTP control handle for which the parallelism information is to be updated .br \fIparallelism\fP A structure containing parallelism information .RE .PP .SS "globus_result_t globus_ftp_control_local_pasv (globus_ftp_control_handle_t * handle, globus_ftp_control_host_port_t * address)" .PP Create a passive socket\&. Create a local listening socket, bind it and return the address the socket is listening to\&. If there is a existing data connection it is closed\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. Information about the listening socket is stored in the handle\&. .br \fIaddress\fP The host IP address and port is returned through this parameter\&. .RE .PP .SS "globus_result_t globus_ftp_control_local_pbsz (globus_ftp_control_handle_t * handle, unsigned long bufsize)" .PP Set data channel protection buffer size\&. Update the FTP control handle with the given protection buffer size information\&. .PP This function sets protection buffer size to be used by this handle\&. This value is used to determine how much data will be sent in each packet during a protected data transfer\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to the FTP control handle to be updated .br \fIbufsize\fP A parameter specifying the protection buffer size value\&. .RE .PP .SS "globus_result_t globus_ftp_control_local_port (globus_ftp_control_handle_t * handle, globus_ftp_control_host_port_t * address)" .PP Set remote data address\&. Insert the host/port information returned by a PASV on the remote host into the local FTP control handle\&. (close any outstanding data con) .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to the FTP control handle into which to insert the host/port information .br \fIaddress\fP The host IP address and port .RE .PP .SS "globus_result_t globus_ftp_control_local_send_eof (globus_ftp_control_handle_t * handle, globus_bool_t send_eof)" .PP Enable or disable automatic EOF handling\&. Determines if the library will automatically send an EOF message in extended block mode, or if the user will have to explicitly do it by calling \fBglobus_ftp_control_data_send_eof()\fP\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP The ftp handle you wish to sent the send_eof attribute on\&. .br \fIsend_eof\fP A boolean representing whether or not to automatically send an EOF message\&. .RE .PP .SS "globus_result_t globus_ftp_control_local_spas (globus_ftp_control_handle_t * handle, globus_ftp_control_host_port_t addresses[], unsigned int num_addresses)" .PP Create multiple passive sockets\&. Create num_addresses local listening sockets, bind them and return the addresses the sockets are listening to\&. If there is a existing data connection it is closed\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. Information about the listening sockets is stored in the handle\&. .br \fIaddresses\fP The host IP addresses and ports are returned through this parameter\&. .br \fInum_addresses\fP The number of listening sockets to create .RE .PP .SS "globus_result_t globus_ftp_control_local_spor (globus_ftp_control_handle_t * handle, globus_ftp_control_host_port_t addresses[], unsigned int num_addresses)" .PP Set remote data addresses\&. Insert the host/port addresses returned by a SPAS on the remote host into the local FTP control handle\&. If there are any outstanding data connections at this point, they are closed\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to the FTP control handle into which to insert the host/port addresses .br \fIaddresses\fP The host IP addresses and port numbers .br \fInum_addresses\fP The number of addresses .RE .PP .SS "globus_result_t globus_ftp_control_local_stru (globus_ftp_control_handle_t * handle, \fBglobus_ftp_control_structure_t\fP structure)" .PP Set data channel structure\&. Updates the handle with information on the structure of the data being sent on the data channel\&. .PP This function updates the handle with the provided structure information\&. At this point the only structure type that is supported is the file type\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. The handle contains information about the current state of the control and data connections\&. .br \fIstructure\fP This parameter is used to pass the structure information\&. Possible values are file, record and page\&. Only the file type is supported .RE .PP .SS "globus_result_t globus_ftp_control_local_tcp_buffer (globus_ftp_control_handle_t * handle, \fBglobus_ftp_control_tcpbuffer_t\fP * tcp_buffer)" .PP Set data handle TCP buffer size\&. Update the FTP control handle with the given socket buffer information\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to the FTP control handle to be updated .br \fItcp_buffer\fP A pointer to the socket buffer\&. .RE .PP .SS "globus_result_t globus_ftp_control_local_type (globus_ftp_control_handle_t * handle, \fBglobus_ftp_control_type_t\fP type, int form_code)" .PP Set control handle TYPE value\&. Update the FTP control handle with the given type information\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to the FTP control handle to be updated .br \fItype\fP The type of the data connection\&. Possible values are: ASCII, EBCDIC, IMAGE and LOCAL\&. Currently only ASCII and IMAGE types are supported\&. .br \fIform_code\fP The logical byte size parameter for the LOCAL type\&. .RE .PP .SS "globus_result_t globus_ftp_control_release_data_info (globus_ftp_control_handle_t * handle, globus_ftp_control_data_write_info_t * data_info)" .PP Release a data_info structure\&. This function releases all memory and references created when a call to \fBglobus_ftp_control_create_data_info()\fP was made\&. For every call to \fBglobus_ftp_control_create_data_info()\fP a call to this function must be made\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. The handle contains information about the current state of the control and data connections\&. .br \fIdata_info\fP The globus_ftp_control_data_write_info_t structure to be released\&. .RE .PP .SS "globus_result_t globus_ftp_control_set_force_order (globus_ftp_control_handle_t * handle, globus_bool_t order_data, globus_off_t starting_offset)" .PP Set data handle to return read mode E data in order\&. Update the FTP control handle forced data order flag\&. Must be called before \fBglobus_ftp_control_data_connect_read()\fP\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to the FTP control handle to be updated .br \fIorder_data\fP GLOBUS_TRUE if data must be ordered, false if not\&. .br \fIstarting_offset\fP The starting offset to expect\&. May not be 0 for restarted transfers\&. .RE .PP Note that this may result in slower transfers, or, if the data arrives far out of order, failed transfers\&. .SS "globus_result_t globus_X_ftp_control_data_write_stripe (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)" .PP Write data to a stripe from an enqueue callback\&. This function allows the user to register the write of ftp data on a specific stripe\&. This function can only be called from an enqueue function callback\&. This function should be used only by the implementor of an enqueue function\&. It should be viewed as unstable and used used only by advanced users\&. This is the only function in the library that the enqueue function implementor is allowed from the enqueue callback\&. .PP \fBParameters\fP .RS 4 \fIhandle\fP A pointer to a FTP control handle\&. The handle contains information about the current state of the control and data connections\&. .br \fIbuffer\fP a pointer to the data the user wishes to send along the FTP data channels\&. .br \fIlength\fP the length of the data pointer to by the parameter buffer\&. .br \fIoffset\fP the offset into the file of the data\&. .br \fIeof\fP a boolean stating that this is the last buffer to be registered\&. When using the \fIX\fP version of this function the user does not need to register an eof on each stripe, the control library will take care of that internally\&. .br \fIstripe_ndx\fP The index of the stripe on which the data will be sent\&. The index of each stripe is determined by the call to local_spas or local_spor\&. .br \fIdata_info\fP An opaque structure that is passed into the enqueue function and contains reference count and state information\&. The same data_info pointer that is passed into the enqueue function must be used for this parameter\&. .RE .PP .SH "Author" .PP Generated automatically by Doxygen for globus_ftp_control from the source code\&.