NAME
globus_ftp_control_server.c -
FTP Server-side Control Connection Management.
SYNOPSIS
Functions
globus_result_t globus_ftp_control_server_handle_init
(globus_ftp_control_server_t *handle)
globus_result_t globus_ftp_control_server_handle_destroy
(globus_ftp_control_server_t *handle)
globus_result_t globus_ftp_control_server_listen
(globus_ftp_control_server_t *server_handle, unsigned short *port,
globus_ftp_control_server_callback_t callback, void *callback_arg)
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)
globus_result_t globus_ftp_control_command_destroy
(globus_ftp_control_command_t *command)
globus_result_t globus_ftp_control_command_copy
(globus_ftp_control_command_t *dest, globus_ftp_control_command_t
*src)
globus_result_t globus_ftp_control_server_stop
(globus_ftp_control_server_t *listener,
globus_ftp_control_server_callback_t callback, void *callback_arg)
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)
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)
globus_result_t globus_ftp_control_read_commands
(globus_ftp_control_handle_t *handle,
globus_ftp_control_command_callback_t callback, void *callback_arg)
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,...)
Detailed Description
FTP Server-side Control Connection Management.
Function Documentation
globus_result_t globus_ftp_control_server_handle_init
(globus_ftp_control_server_t * handle)
Initialize a globus ftp server handle. This function will set up (i.e.
intialize all mutexes and variables) a globus ftp server handle. It
will also enter the handle in a list used by the module
activation/deactivation functions.
Parameters:
handle The handle to initialize.
Returns:
· GLOBUS_SUCCESS
· invalid handle
References GLOBUS_FTP_CONTROL_MODULE.
globus_result_t globus_ftp_control_server_handle_destroy
(globus_ftp_control_server_t * handle)
Destroy a globus ftp server handle. This function will free up all
dynamicly allocated memory associated with a given globus ftp server
handle. It will also remove the handle from a list used by the module
activation/deactivation functions. This function should only be called
after a call to globus_ftp_control_server_stop.
Parameters:
handle The handle to destory.
Returns:
· success
· invalid handle
· handle is still in listening state
References GLOBUS_FTP_CONTROL_MODULE.
globus_result_t globus_ftp_control_server_listen
(globus_ftp_control_server_t * server_handle, unsigned short * port,
globus_ftp_control_server_callback_t callback, void * callback_arg)
Start listening on a given port for FTP client connections. This
function starts the listening on *port for connections from ftp
clients. When a connection request is made callback is called and
passed callback_arg. Upon return from this function the server_handle
structure is initialized.
Parameters:
server_handle A pointer to a initialized server handle.
port A pointer to the port to listen on. If the initial value is
zero it will be set to the default value.
callback The callback function called when connection requests are
made.
callback_arg The user argument passed to the callback function when
connection requests are made.
Note:
I’m not providing any mechanism for making sure that this function
is only called once. Is this needed?
References GLOBUS_FTP_CONTROL_MODULE.
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)
Initialize a command structure. This function initializes a command
structure based on a null terminated string representing one line of
input from the client. The command structure is used as a convience to
determine what command the client issued. This function parses a
command string sent by a client and populates the command argument
appropriately. In the GSSAPI case it will also decode and unwrap the
command before parsing it.
Parameters:
command A pointer to the command structure to be initialized
raw_command A null terminated line of client input. Should contain
one command.
auth_info Authentication information needed for unwrapping a
command
References GLOBUS_FTP_CONTROL_MODULE.
globus_result_t globus_ftp_control_command_destroy
(globus_ftp_control_command_t * command)
Destroy a command structure. This function frees up the memory
allocated to the command argument.
Parameters:
command The command structure whose associated memory is to be
freed
References GLOBUS_FTP_CONTROL_MODULE.
globus_result_t globus_ftp_control_command_copy
(globus_ftp_control_command_t * dest, globus_ftp_control_command_t *
src)
Creates a copy of a command structure. This function should be called
when the user needs to make a copy of a command structure.
Parameters:
dest The area of memory that the command structure is copied to.
src The command structure to be copied.
References GLOBUS_FTP_CONTROL_MODULE.
globus_result_t globus_ftp_control_server_stop (globus_ftp_control_server_t
* listener, globus_ftp_control_server_callback_t callback, void *
callback_arg)
Stop the GSIFTP server from listening for client connections. This
function stops listening on the given listener object for client
connections. All existing client connections are left open.
Parameters:
listener the globus_ftp_control_server_t object that should no
longer listen for connections.
callback The user callback that will be called when the server
structure is no longer listening.
callback_arg The user argument that is passed into callback.
References GLOBUS_FTP_CONTROL_MODULE.
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)
Accept a client connection request. This function is called to accept a
connection request from a client.
When the listen callback is called (see
globus_ftp_control_server_listen) a client has requested a connection.
This function must be called to accept that user connection request.
Once the connection is established or if a error occurs, the callback
function is called.
Parameters:
listener The server object that received the connection request.
handle The control connection object. This structure will be
populated and passed to the callback when the client is authorized.
This structure represents the control connection between the server
and client. It will be used to read commands from the client and
send responses to the client.]
callback The function called when the client connection has been
accepted.
callback_arg The user argument passed to the callback.
Note:
This functions assumes the the server and control handles have been
initialized prior to calling this function.
References GLOBUS_FTP_CONTROL_MODULE.
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)
Authenticate a client connection. This function is called to
authenticate a connection from a client.
After a client connection has been accepted (using the
globus_ftp_control_server_accept call), this function should be called
to authenticate the client. The caller of this function may specify
certain authentication requirements using the auth_requirements
parameter.
Parameters:
handle The control connection object. This structure will be
populated and passed to the callback when the client is authorized.
This structure represents the control connection between the server
and client. It will be used to read commands from the client and
send responses to the client.]
auth_requirements This structure represents the authentication
requirements that the user has for a given connection. For example
GSIFTP user name, password, and account.
callback The function called when the client authentication has
been accepted or rejected.
callback_arg The user argument passed to the callback.
Note:
It is up to the user of this function to send the reply to the last
command of the authentication sequence.
This functions assumes the the server and control handles have been
initialized prior to calling this function.
References GLOBUS_FTP_CONTROL_MODULE.
globus_result_t globus_ftp_control_read_commands
(globus_ftp_control_handle_t * handle,
globus_ftp_control_command_callback_t callback, void * callback_arg)
Begin reading GSIFTP commands on a given control connection. This
function begins reading control commands on a
globus_ftp_control_handle_t. When a command is read the callback
function is called.
Parameters:
handle The control connection handle that commands will be read
from. Prior to calling this the function
globus_ftp_control_handle_t must be populated via a call to
globus_ftp_control_accept().
callback The user callback that will be called when commands are
read.
callback_arg The user argument passed to the callback.
References GLOBUS_FTP_CONTROL_MODULE.
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, ...)
Send a response to the GSIFTP client. This function sends a GSIFTP
formatted response to the client. When a command callback is received
the user calls this function to respond to the clients request.
Parameters:
handle The control connection to send the response across.
respspec A formated string representing the users response.
callback The user callback that will be called when the response
has been sent.
callback_arg The user argument passed to the callback.
References GLOBUS_FTP_CONTROL_MODULE.
Author
Generated automatically by Doxygen for globus ftp control from the
source code.