Provided by: libglobus-ftp-control-doc_4.7-1_all bug

NAME

       globus_ftp_control_server.c -

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_tcallback, 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_tcallback, 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_tcallback, 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_tauth_requirements, globus_ftp_control_auth_callback_tcallback, 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_tcallback, 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_tcallback, 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.

Version 4.7                                      Sun Nov 24 2013                  globus_ftp_control_server.c(3)