globus_ftp_control.h(3)
๐ globus_ftp_control.h(3) โ Library Functions Manual ๐
okay bestie, welcome to the GridFTP Control Connection API โ this header runs the whole control-connection situation, and weโre doing it in parts. Part 1 starts right here. โจ
โจ NAME โจ
globus_ftp_control.h โ GridFTP Control Connection API. Thatโs the whole vibe. ๐
๐ธ SYNOPSIS ๐ธ
First, the include besties you gotta bring along:
#include 'globus_common.h'
#include 'globus_error_string.h'
#include 'globus_io.h'
#include 'globus_gss_assist.h'
#include 'globus_handle_table.h'
๐ Data Structures ๐
struct globus_ftp_control_dcau_subject_sโ Control DCAU subject authentication type. ๐ฆstruct globus_ftp_control_round_robin_sโ Control striping round robin attribute structure. โจunion globus_ftp_control_dcau_uโ Control DCAU union. ๐union globus_ftp_control_layout_uโ Control striping attribute union. ๐union globus_ftp_control_parallelism_uโ Control parallelism attribute structure. ๐ฅstruct globus_ftp_control_tcpbuffer_default_tโ Don't change the TCP buffer/window size from the system default. ๐struct globus_ftp_control_tcpbuffer_fixed_tโ Set the TCP buffer/window size to a fixed value. ๐struct globus_ftp_control_tcpbuffer_automatic_sโ Automatically set the TCP buffer/window size. โจunion globus_ftp_control_tcpbuffer_tโ Control tcpbuffer attribute structure. ๐struct globus_ftp_control_auth_info_sโ Authentication Values. ๐
๐ Macros ๐
GLOBUS_FTP_CONTROL_MODULEโ Module descriptor. ๐
#define GLOBUS_FTP_CONTROL_MODULE (&globus_i_ftp_control_module)
๐ฆ Typedefs ๐ฆ
Okay so these are the type aliases, and every single one matters, no skipping. ๐ค
globus_ftp_control_type_tโ GridFTP TYPE values.
typedef enum globus_ftp_control_type_e globus_ftp_control_type_t
globus_ftp_control_mode_tโ GridFTP MODE values.
typedef enum globus_ftp_control_mode_e globus_ftp_control_mode_t
globus_ftp_control_dcau_mode_tโ GridFTP DCAU values.
typedef enum globus_ftp_control_dcau_mode_e
globus_ftp_control_dcau_mode_t
globus_ftp_control_dcau_subject_tโ Control DCAU subject authentication type.
typedef struct globus_ftp_control_dcau_subject_s
globus_ftp_control_dcau_subject_t
globus_ftp_control_striping_mode_tโ GridFTP Striping Types.
typedef enum globus_ftp_control_striping_mode_e
globus_ftp_control_striping_mode_t
globus_ftp_control_round_robin_tโ Control striping round robin attribute structure.
typedef struct globus_ftp_control_round_robin_s
globus_ftp_control_round_robin_t
globus_ftp_control_dcau_tโ Control DCAU union.
typedef union globus_ftp_control_dcau_u globus_ftp_control_dcau_t
globus_ftp_control_layout_tโ Control striping attribute union.
typedef union globus_ftp_control_layout_u globus_ftp_control_layout_t
globus_ftp_control_structure_t
typedef enum globus_ftp_control_structure_e
globus_ftp_control_structure_t
globus_ftp_control_parallelism_mode_t
typedef enum globus_ftp_control_parallelism_mode_e
globus_ftp_control_parallelism_mode_t
globus_ftp_control_parallelism_tโ Control parallelism attribute structure.
typedef union globus_ftp_control_parallelism_u
globus_ftp_control_parallelism_t
globus_ftp_control_tcpbuffer_mode_t
typedef enum globus_ftp_control_tcpbuffer_mode_e
globus_ftp_control_tcpbuffer_mode_t
globus_ftp_control_tcpbuffer_automatic_tโ Automatically set the TCP buffer/window size.
typedef struct globus_ftp_control_tcpbuffer_automatic_s
globus_ftp_control_tcpbuffer_automatic_t
globus_ftp_control_tcpbuffer_tโ Control tcpbuffer attribute structure.
typedef union globus_ftp_control_tcpbuffer_t
globus_ftp_control_tcpbuffer_t
globus_ftp_control_auth_info_tโ Authentication Values.
typedef struct globus_ftp_control_auth_info_s
globus_ftp_control_auth_info_t
globus_ftp_control_response_callback_t
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)
globus_ftp_control_callback_t
typedef void(* globus_ftp_control_callback_t) (void *callback_arg,
struct globus_ftp_control_handle_s *handle, globus_object_t *error)
globus_ftp_control_command_callback_t
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)
globus_ftp_control_auth_callback_t
typedef void(* globus_ftp_control_auth_callback_t) (void *callback_arg,
struct globus_ftp_control_handle_s *handle, globus_object_t *error,
globus_ftp_control_auth_info_t *auth_result)
globus_ftp_control_auth_requirements_t
typedef unsigned long globus_ftp_control_auth_requirements_t
globus_ftp_control_data_callback_t
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)
globus_ftp_control_server_callback_tโ Server callback.
typedef void(* globus_ftp_control_server_callback_t) (void
*callback_arg, struct globus_ftp_control_server_s *server_handle,
globus_object_t *error)
๐ฅ Enumerations ๐ฅ
enum globus_ftp_control_type_eโ GridFTP TYPE values.
enum globus_ftp_control_type_e { GLOBUS_FTP_CONTROL_TYPE_NONE,
GLOBUS_FTP_CONTROL_TYPE_ASCII = 'A', GLOBUS_FTP_CONTROL_TYPE_EBCDIC
= 'E', GLOBUS_FTP_CONTROL_TYPE_IMAGE = 'I',
GLOBUS_FTP_CONTROL_TYPE_LOCAL = 'L' }
enum globus_ftp_control_mode_eโ GridFTP MODE values.
enum globus_ftp_control_mode_e { GLOBUS_FTP_CONTROL_MODE_NONE,
GLOBUS_FTP_CONTROL_MODE_STREAM = 'S', GLOBUS_FTP_CONTROL_MODE_BLOCK
= 'B', GLOBUS_FTP_CONTROL_MODE_EXTENDED_BLOCK = 'E',
GLOBUS_FTP_CONTROL_MODE_COMPRESSED = 'C' }
enum globus_ftp_control_dcau_mode_eโ GridFTP DCAU values.
enum globus_ftp_control_dcau_mode_e { GLOBUS_FTP_CONTROL_DCAU_NONE =
'N', GLOBUS_FTP_CONTROL_DCAU_SELF = 'A',
GLOBUS_FTP_CONTROL_DCAU_SUBJECT = 'S',
GLOBUS_FTP_CONTROL_DCAU_DEFAULT }
enum globus_ftp_control_striping_mode_eโ GridFTP Striping Types.
enum globus_ftp_control_striping_mode_e
enum globus_ftp_control_protection_tโ GridFTP Protection Types.
enum globus_ftp_control_protection_t {
GLOBUS_FTP_CONTROL_PROTECTION_CLEAR = 'C',
GLOBUS_FTP_CONTROL_PROTECTION_SAFE = 'S',
GLOBUS_FTP_CONTROL_PROTECTION_CONFIDENTIAL = 'E',
GLOBUS_FTP_CONTROL_PROTECTION_PRIVATE = 'P' }
enum globus_ftp_control_delay_passive_t
enum globus_ftp_control_delay_passive_t
enum globus_ftp_control_structure_e
enum globus_ftp_control_structure_e
enum globus_ftp_control_parallelism_mode_e
enum globus_ftp_control_parallelism_mode_e
enum globus_ftp_control_tcpbuffer_mode_e
enum globus_ftp_control_tcpbuffer_mode_e {
GLOBUS_FTP_CONTROL_TCPBUFFER_DEFAULT,
GLOBUS_FTP_CONTROL_TCPBUFFER_FIXED,
GLOBUS_FTP_CONTROL_TCPBUFFER_AUTOMATIC }
โจ FUNCTIONS โจ
Okay so bestie, this is the big one: all the functions. There are so many, but we're gonna get through them together. No cap. Each one has its signature in a cute little code block, and I'll explain the vibe. Let's go. ๐
globus_ftp_control_local_layoutโ Set data layout.
globus_result_t globus_ftp_control_local_layout
(globus_ftp_control_handle_t *handle, globus_ftp_control_layout_t
*layout, globus_size_t data_size)
This one sets the data layout. Like, it's giving "organize my data" energy. You pass a handle, a layout, and a data size. Periodt. ๐
globus_ftp_control_data_set_interfaceโ Create an outgoing FTP data connection.
globus_result_t globus_ftp_control_data_set_interface
(globus_ftp_control_handle_t *handle, const char *interface_addr)
Creates an outgoing FTP data connection. It's reaching out, bestie. โจ
globus_ftp_control_create_data_infoโ Create a globus_ftp_control_data_write_info_t structure.
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, globus_ftp_control_data_callback_t callback, void
*callback_arg)
Creates a globus_ftp_control_data_write_info_t structure. So you can write data info, periodt. ๐
globus_ftp_control_release_data_infoโ Release a data_info structure.
globus_result_t globus_ftp_control_release_data_info
(globus_ftp_control_handle_t *handle,
globus_ftp_control_data_write_info_t *data_info)
Releases a data_info structure. Like, free it, bestie. Let it go. ๐ฆ
globus_ftp_control_data_write_stripeโ Write FTP data to a stripe.
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, globus_ftp_control_data_callback_t callback, void
*callback_arg)
Writes FTP data to a stripe. Stripey data writing, iconic. ๐ธ
globus_X_ftp_control_data_write_stripeโ Write data to a stripe from an enqueue callback.
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)
Writes data to a stripe from an enqueue callback. It's the callback version, iykyk. ๐
globus_ftp_control_auth_info_initโ Initialize authentication information.
globus_result_t globus_ftp_control_auth_info_init
(globus_ftp_control_auth_info_t *auth_info, gss_cred_id_t
credential_handle, globus_bool_t encrypt, char *user, char
*password, char *account, char *subject)
Initializes authentication information. Gotta get those auth details ready. ๐ซถ
globus_ftp_control_auth_info_compareโ Compare authentication information.
int globus_ftp_control_auth_info_compare (globus_ftp_control_auth_info_t
*auth_info_1, globus_ftp_control_auth_info_t *auth_info_2)
Compares authentication information. Are they twins or not? Returns an int, so you know. ๐ญ
globus_ftp_control_handle_initโ Initialize a globus ftp handle.
globus_result_t globus_ftp_control_handle_init
(globus_ftp_control_handle_t *handle)
Initializes a globus ftp handle. Fresh handle, who dis? ๐ฅ
globus_ftp_control_handle_destroyโ Destroy a globus ftp handle.
globus_result_t globus_ftp_control_handle_destroy
(globus_ftp_control_handle_t *handle)
Destroys a globus ftp handle. Bye bestie, it's over. ๐
globus_ftp_control_server_handle_initโ Initialize a GridFTP server handle.
globus_result_t globus_ftp_control_server_handle_init
(globus_ftp_control_server_t *handle)
Initializes a GridFTP server handle. Server side, main character energy. ๐
globus_ftp_control_server_handle_destroyโ Destroy a GridFTP server handle.
globus_result_t globus_ftp_control_server_handle_destroy
(globus_ftp_control_server_t *handle)
Destroys a GridFTP server handle. Server's done, periodt. โญ
globus_ftp_control_response_destroyโ Free the memory associated with a response.
globus_result_t globus_ftp_control_response_destroy
(globus_ftp_control_response_t *response)
Frees the memory associated with a response. Memory hygiene, we love to see it. ๐
globus_ftp_control_response_copyโ Copy a response structure.
globus_result_t globus_ftp_control_response_copy
(globus_ftp_control_response_t *src, globus_ftp_control_response_t
*dest)
Copies a response structure. Dupe it, but make it legal. โจ
globus_ftp_control_connectโ Create a new control connection to an FTP server.
globus_result_t globus_ftp_control_connect (globus_ftp_control_handle_t
*handle, char *host, unsigned short port,
globus_ftp_control_response_callback_t callback, void *callback_arg)
Creates a new control connection to an FTP server. Slide into those DMs, but it's a server. ๐
globus_ftp_control_authenticateโ Authenticate the user to the FTP server.
globus_result_t globus_ftp_control_authenticate
(globus_ftp_control_handle_t *handle, globus_ftp_control_auth_info_t
*auth_info, globus_bool_t use_auth,
globus_ftp_control_response_callback_t callback, void *callback_arg)
Authenticates the user to the FTP server. Prove you belong, bestie. ๐ฆ
globus_ftp_control_authenticate_exโ Authenticate the user to the FTP server.
globus_result_t globus_ftp_control_authenticate_ex
(globus_ftp_control_handle_t *handle, globus_ftp_control_auth_info_t
*auth_info, globus_bool_t use_auth,
globus_ftp_control_response_callback_t callback, void *callback_arg)
Also authenticates the user to the FTP server. The _ex version, so you know it's extra. ๐ธ
globus_ftp_control_abortโ Send a GridFTP ABORT.
globus_result_t globus_ftp_control_abort (globus_ftp_control_handle_t
*handle, globus_ftp_control_response_callback_t callback, void
*callback_arg)
Sends a GridFTP ABORT. Stop right now, thank you very much. ๐
globus_ftp_control_quitโ Send a GridFTP QUIT.
globus_result_t globus_ftp_control_quit (globus_ftp_control_handle_t
*handle, globus_ftp_control_response_callback_t callback, void
*callback_arg)
Sends a GridFTP QUIT. Peace out, girl scout. ๐ซถ
globus_ftp_control_force_closeโ Force a control connection to close.
globus_result_t globus_ftp_control_force_close
(globus_ftp_control_handle_t *handle,
globus_ftp_control_response_callback_t callback, void *callback_arg)
Forces a control connection to close. No gentle goodbyes, just slam. ๐ญ
globus_ftp_control_send_commandโ Send an FTP protocol command.
globus_result_t globus_ftp_control_send_command
(globus_ftp_control_handle_t *handle, const char *cmdspec,
globus_ftp_control_response_callback_t callback, void
*callback_arg,...)
Sends an FTP protocol command. It's variadic, so you can add extra args. ๐ฅ
globus_ftp_control_local_pbszโ Set data channel protection buffer size.
globus_result_t globus_ftp_control_local_pbsz
(globus_ftp_control_handle_t *handle, unsigned long bufsize)
Sets data channel protection buffer size. Buffer size, but make it protected. ๐
globus_ftp_control_get_pbszโ Get data channel protection buffer size.
globus_result_t globus_ftp_control_get_pbsz (globus_ftp_control_handle_t
*handle, unsigned long *bufsize)
Gets data channel protection buffer size. Reads it back, no cap. ๐
globus_ftp_control_server_listenโ Listen on for FTP Client Connections.
globus_result_t globus_ftp_control_server_listen
(globus_ftp_control_server_t *handle, unsigned short *port,
globus_ftp_control_server_callback_t callback, void *callback_arg)
Listens for FTP Client Connections. Ears open, bestie. โญ
globus_ftp_control_server_listen_exโ Listen on for FTP Client Connections.
globus_result_t globus_ftp_control_server_listen_ex
(globus_ftp_control_server_t *handle, globus_io_attr_t *attr,
unsigned short *port, globus_ftp_control_server_callback_t callback,
void *callback_arg)
Also listens for FTP Client Connections. With globus_io_attr_t *attr, fancy. ๐
globus_ftp_control_server_stopโ Stop listening for GridFTP client connections.
globus_result_t globus_ftp_control_server_stop
(globus_ftp_control_server_t *listener,
globus_ftp_control_server_callback_t callback, void *callback_arg)
Stops listening for GridFTP client connections. Quiet mode activated. โจ
globus_ftp_control_server_acceptโ Accept a Client Connection.
globus_result_t globus_ftp_control_server_accept
(globus_ftp_control_server_t *listener, globus_ftp_control_handle_t
*handle, globus_ftp_control_callback_t callback, void *callback_arg)
Accepts a Client Connection. Come on in, the water's fine. ๐
globus_ftp_control_server_authenticateโ Authenticate a GridFTP Client Connection.
globus_result_t globus_ftp_control_server_authenticate
(globus_ftp_control_handle_t *handle,
globus_ftp_control_auth_requirements_t auth_requirements,
globus_ftp_control_auth_callback_t callback, void *callback_arg)
Authenticates a GridFTP Client Connection. Server-side auth, periodt. ๐ฆ
globus_ftp_control_read_commandsโ Read GridFTP commands.
globus_result_t globus_ftp_control_read_commands
(globus_ftp_control_handle_t *handle,
globus_ftp_control_command_callback_t callback, void *callback_arg)
Reads GridFTP commands. Reading is fundamental. ๐ธ
globus_ftp_control_send_responseโ Send a GridFTP response.
globus_result_t globus_ftp_control_send_response
(globus_ftp_control_handle_t *handle, const char *respspec,
globus_ftp_control_callback_t callback, void *callback_arg,...)
Sends a GridFTP response. Clap back, but protocol-appropriate. ๐
globus_ftp_control_command_copyโ Copy of GridFTP command.
globus_result_t globus_ftp_control_command_copy
(globus_ftp_control_command_t *dest, globus_ftp_control_command_t
*src)
Copies a GridFTP command. Duplicate it, carefully. ๐ซถ
globus_ftp_control_command_initโ Initialize a GridFTP command.
globus_result_t globus_ftp_control_command_init
(globus_ftp_control_command_t *command, char *raw_command,
globus_ftp_control_auth_info_t *auth_info)
Initializes a GridFTP command. Set it up, bestie. ๐ญ
globus_ftp_control_command_destroyโ Destroy a GridFTP command.
globus_result_t globus_ftp_control_command_destroy
(globus_ftp_control_command_t *command)
Destroys a GridFTP command. It's gone, bye. ๐ฅ
globus_ftp_control_data_force_closeโ Close data connections.
globus_result_t globus_ftp_control_data_force_close
(globus_ftp_control_handle_t *control_handle,
globus_ftp_control_callback_t destroy_callback, void
*destroy_callback_arg)
Closes data connections. Forcefully. No chill. ๐
globus_ftp_control_local_send_eofโ Enable or disable automatic EOF handling.
globus_result_t globus_ftp_control_local_send_eof
(globus_ftp_control_handle_t *handle, globus_bool_t send_eof)
Enables or disables automatic EOF handling. Toggle it, periodt. ๐
globus_ftp_control_data_send_eofโ Send EOF.
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, globus_ftp_control_callback_t cb, void
*user_arg)
Sends EOF. End of file, end of story. โญ
globus_ftp_control_data_connect_readโ Create an incoming FTP data connection.
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)
Creates an incoming FTP data connection. Come through, data. ๐
globus_ftp_control_data_connect_writeโ Create an outgoing FTP data connection.
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)
Creates an outgoing FTP data connection. Send it, bestie. โจ
globus_ftp_control_data_add_channelsโ Add data channels.
globus_result_t globus_ftp_control_data_add_channels
(globus_ftp_control_handle_t *handle, unsigned int num_channels,
unsigned int stripe)
Adds data channels. More channels, more power. ๐
globus_ftp_control_data_remove_channelsโ Remove Data Channels.
globus_result_t globus_ftp_control_data_remove_channels
(globus_ftp_control_handle_t *handle, unsigned int num_channels,
unsigned int stripe)
Removes data channels. Less is more, sometimes. ๐ฆ
globus_ftp_control_data_query_channelsโ Number of data channels.
globus_result_t globus_ftp_control_data_query_channels
(globus_ftp_control_handle_t *handle, unsigned int *num_channels,
unsigned int stripe)
Queries the number of data channels. Count them, iconically. ๐ธ
globus_ftp_control_data_get_total_data_channelsโ Get Total Data Channels For a Stripe.
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)
Gets total data channels for a stripe. Stripe-specific tea. ๐
globus_ftp_control_local_parallelismโ Set control handle parallelism.
globus_result_t globus_ftp_control_local_parallelism
(globus_ftp_control_handle_t *handle,
globus_ftp_control_parallelism_t *parallelism)
Sets control handle parallelism. Parallel vibes only. ๐ซถ
globus_ftp_control_local_pasvโ Create a passive socket.
globus_result_t globus_ftp_control_local_pasv
(globus_ftp_control_handle_t *handle, globus_ftp_control_host_port_t
*address)
Creates a passive socket. Passive, but make it FTP. ๐ญ
globus_ftp_control_local_spasโ Create multiple passive sockets.
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)
Creates multiple passive sockets. Passive aggressive? No, just many. ๐ฅ
globus_ftp_control_local_portโ Set remote data address.
globus_result_t globus_ftp_control_local_port
(globus_ftp_control_handle_t *handle, globus_ftp_control_host_port_t
*address)
Sets remote data address. Where the data goes. ๐
globus_ftp_control_local_sporโ Set remote data addresses.
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)
Sets remote data addresses. Plural. Multiple addresses, periodt. ๐
globus_ftp_control_local_typeโ Set control handle TYPE value.
globus_result_t globus_ftp_control_local_type
(globus_ftp_control_handle_t *handle, globus_ftp_control_type_t
type, int form_code)
Sets control handle TYPE value. Type it out. โญ
globus_ftp_control_local_tcp_bufferโ Set data handle TCP buffer size.
globus_result_t globus_ftp_control_local_tcp_buffer
(globus_ftp_control_handle_t *handle, globus_ftp_control_tcpbuffer_t
*tcp_buffer)
Sets data handle TCP buffer size. Buffer, but TCP. ๐
globus_ftp_control_local_modeโ Set data handle mode.
globus_result_t globus_ftp_control_local_mode
(globus_ftp_control_handle_t *handle, globus_ftp_control_mode_t
mode)
Sets data handle mode. Mode: activated. โจ
globus_ftp_control_local_dcauโ Set data channel DCAU.
globus_result_t globus_ftp_control_local_dcau
(globus_ftp_control_handle_t *handle, const
globus_ftp_control_dcau_t *dcau, gss_cred_id_t
delegated_credential_handle)
Sets data channel DCAU. DCAU is a vibe. ๐
globus_ftp_control_local_struโ Set data channel structure.
globus_result_t globus_ftp_control_local_stru
(globus_ftp_control_handle_t *handle, globus_ftp_control_structure_t
structure)
Sets data channel structure. Structure is key. ๐ฆ
globus_ftp_control_data_writeโ (signature continues...)
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,
And this one's just getting started... more in part 3! ๐
okay so we're literally mid-globus_ftp_control_data_write signature, bestie โ the rest of it goes like this:
globus_ftp_control_data_callback_t callback, void *callback_arg)
and the tea? Write data to data connections. ๐พโจ
globus_ftp_control_data_read
globus_result_t globus_ftp_control_data_read
(globus_ftp_control_handle_t *handle, globus_byte_t *buffer,
globus_size_t max_length, globus_ftp_control_data_callback_t
callback, void *callback_arg)
Read data from data connections. periodt ๐๐
globus_ftp_control_set_force_order
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)
Set data handle to return read mode E data in order. ๐
globus_ftp_control_ipv6_allow
globus_result_t globus_ftp_control_ipv6_allow
(globus_ftp_control_handle_t *handle, globus_bool_t allow)
Not documented yet. ๐ญ (the docs said โno thoughts, head emptyโ)
globus_ftp_control_client_get_connection_info_ex
globus_result_t globus_ftp_control_client_get_connection_info_ex
(globus_ftp_control_handle_t *handle, globus_ftp_control_host_port_t
*local_info, globus_ftp_control_host_port_t *remote_info)
Not documented yet. ๐
โจ Detailed Description โจ
GridFTP Control Connection API. That's the whole mood. ๐
๐ Typedef Documentation ๐
globus_ftp_control_auth_callback_t
typedef void(* globus_ftp_control_auth_callback_t) (void *callback_arg,
struct globus_ftp_control_handle_s *handle, globus_object_t *error,
globus_ftp_control_auth_info_t *auth_result)
Server authentication complete callback. ๐
A function with this signature is registered by calling globus_ftp_control_accept(). It gets 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 globus_ftp_control_send_response(), indicating to the client whether authorization was successful or not. ๐
Parameters
handleโ This structure is populated when the callback is called and represents a control connection to the client.errorโ 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 usingglobus_object_copy(), and free it withglobus_object_free().auth_resultโ Aglobus_ftp_control_auth_result_tcontaining 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 beNULL. Based on that information the user can decide if the client will be authorized for use of the server.callback_argโ The user argument passed to the callback.
globus_ftp_control_auth_info_t
typedef struct globus_ftp_control_auth_info_s globus_ftp_control_auth_info_t
Authentication Values. This structure is populated and passed back to the user via the globus_ftp_control_auth_callback_t(). It contains the information needed to decide if a client may use the server. ๐
globus_ftp_control_auth_requirements_t
typedef unsigned long globus_ftp_control_auth_requirements_t
Authentication requirements.
The value of this should be a bitwise or of:
GLOBUS_FTP_CONTROL_AUTH_NONEGLOBUS_FTP_CONTROL_AUTH_GSSAPIGLOBUS_FTP_CONTROL_AUTH_USERGLOBUS_FTP_CONTROL_AUTH_PASSGLOBUS_FTP_CONTROL_AUTH_ACCT
globus_ftp_control_callback_t
typedef void(* globus_ftp_control_callback_t) (void *callback_arg, struct
globus_ftp_control_handle_s *handle, globus_object_t *error)
Asynchronous control callback. This callback is used as a generic control operation callback. ๐
Parameters
callback_argโ User supplied argument to the callback functionhandleโ A pointer to the GridFTP control handle. Used to identify which control connection the operation was applied to.errorโ Pointer to a globus error object containing information about any errors that occurred processing the operation
globus_ftp_control_command_callback_t
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. When a command from a client is received on the control channel a user callback with this signature is called. ๐จ
Parameters
callback_argโ The user argument passed to the callback function.handleโ The control handle that the command was issued on.errorโ 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 usingglobus_object_copy(), and free it withglobus_object_free().commandโ 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 usingglobus_ftp_control_command_copy(), and free it withglobus_ftp_control_command_free().
globus_ftp_control_data_callback_t
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. This callback is called in functions that send or receive data on the data channel(s). ๐ก
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. โ๏ธ
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. ๐
Parameters
callback_argโ User supplied argument to the callback functionhandleโ A pointer to the GridFTP control handle. Used to identify which control connection the operation was applied to.errorโ Pointer to a globus error object containing information about any errors that occurred processing the operationbufferโ The user buffer passed as a parameter toglobus_ftp_control_data_read()orglobus_ftp_control_data_write().lengthโ The amount of data in the buffer. In the case of an incoming data channel, this may be less than the buffer size.offsetโ The file offset of the data which is contained in the buffer.eofโ This is set toGLOBUS_TRUEthen 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 witheofset toGLOBUS_TRUE.
globus_ftp_control_parallelism_mode_t
typedef enum globus_ftp_control_parallelism_mode_e
globus_ftp_control_parallelism_mode_t
control parallelism Types ๐งต
globus_ftp_control_response_callback_t
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. 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. ๐ฌ
Parameters
callback_argโ User supplied argument to the callback functionhandleโ A pointer to the GridFTP control handle. Used to identify which control connection the operation was applied to.errorโ Pointer to a globus error object containing information about any errors that occurred processing the operationftp_responseโ Pointer to a response structure containing the FTP response to the command.
globus_ftp_control_structure_t
typedef enum globus_ftp_control_structure_e globus_ftp_control_structure_t
control structure structure ๐๏ธ
globus_ftp_control_tcpbuffer_mode_t
typedef enum globus_ftp_control_tcpbuffer_mode_e
globus_ftp_control_tcpbuffer_mode_t
TCP Buffer Setting Modes ๐ง
๐ฎ Enumeration Type Documentation ๐ฎ
enum globus_ftp_control_delay_passive_tโ delayed passive flagsenum globus_ftp_control_parallelism_mode_eโ control parallelism Typesenum globus_ftp_control_structure_eโ control structure structureenum globus_ftp_control_tcpbuffer_mode_eโ TCP Buffer Setting Modes
Enumerator
GLOBUS_FTP_CONTROL_TCPBUFFER_DEFAULTโ Don't change the TCP buffer/window size from the system defaultGLOBUS_FTP_CONTROL_TCPBUFFER_FIXEDโ Set the TCP buffer/window size to a fixed valueGLOBUS_FTP_CONTROL_TCPBUFFER_AUTOMATICโ Automatically set the TCP buffer/window size
๐ Author ๐
Generated automatically by Doxygen for globus_ftp_control from the source code. ๐ค
and that's the whole page, bestie โ version 9.10, source globus_ftp_control, page globus_ftp_control.h(3), brought to you by the source code and Doxygen. slay ๐
โจ
๐ฆ where this page comes from
- fedora 43: globus-ftp-control-doc 9.10-9.fc43 ยท Apache-2.0
- fedora 44: globus-ftp-control-doc 9.10-10.fc44 ยท Apache-2.0
- ubuntu resolute: libglobus-ftp-control-doc 9.10-3build2 ยท Apache-2.0
- ubuntu stonking: libglobus-ftp-control-doc 9.10-4 ยท Apache-2.0
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms