Provided by: libglobus-ftp-client-doc_7.6-1_all bug

NAME

       FTP Operation Attributes -

   Typedefs
       typedef struct
           globus_i_ftp_client_operationattr_t * globus_ftp_client_operationattr_t"

   Functions
       globus_result_t globus_ftp_client_operationattr_init (globus_ftp_client_operationattr_t *attr)
       globus_result_t globus_ftp_client_operationattr_destroy (globus_ftp_client_operationattr_t *attr)
       globus_result_t globus_ftp_client_operationattr_set_delayed_pasv (const globus_ftp_client_operationattr_t
           *attr, globus_bool_t delayed_pasv)
       globus_result_t globus_ftp_client_operationattr_copy (globus_ftp_client_operationattr_t *dst, const
           globus_ftp_client_operationattr_t *src)

   Storage Module
       globus_result_t globus_ftp_client_operationattr_set_storage_module (globus_ftp_client_operationattr_t
           *attr, const char *module_name, const char *module_args)
       globus_result_t globus_ftp_client_operationattr_get_storage_module (const
           globus_ftp_client_operationattr_t *attr, char **module_name, char **module_args)

   Custom Data Channel Driver Stack
       globus_result_t globus_ftp_client_operationattr_set_net_stack (globus_ftp_client_operationattr_t *attr,
           const char *driver_list)
       globus_result_t globus_ftp_client_operationattr_get_net_stack (const globus_ftp_client_operationattr_t
           *attr, char **driver_list)

   Custom Server File Driver Stack
       globus_result_t globus_ftp_client_operationattr_set_disk_stack (globus_ftp_client_operationattr_t *attr,
           const char *driver_list)
       globus_result_t globus_ftp_client_operationattr_get_disk_stack (const globus_ftp_client_operationattr_t
           *attr, char **driver_list)

   Parallelism
       globus_result_t globus_ftp_client_operationattr_set_parallelism (globus_ftp_client_operationattr_t *attr,
           const globus_ftp_control_parallelism_t *parallelism)
       globus_result_t globus_ftp_client_operationattr_get_parallelism (const globus_ftp_client_operationattr_t
           *attr, globus_ftp_control_parallelism_t *parallelism)

   allocate
       globus_result_t globus_ftp_client_operationattr_set_allocate (globus_ftp_client_operationattr_t *attr,
           const globus_off_t allocated_size)
       globus_result_t globus_ftp_client_operationattr_get_allocate (const globus_ftp_client_operationattr_t
           *attr, globus_off_t *allocated_size)

   authz_assert
       globus_result_t globus_ftp_client_operationattr_set_authz_assert (globus_ftp_client_operationattr_t
           *attr, const char *authz_assert, globus_bool_t cache_authz_assert)
       globus_result_t globus_ftp_client_operationattr_get_authz_assert (const globus_ftp_client_operationattr_t
           *attr, char **authz_assert, globus_bool_t *cache_authz_assert)

   Striped Data Movement
       globus_result_t globus_ftp_client_operationattr_set_striped (globus_ftp_client_operationattr_t *attr,
           globus_bool_t striped)
       globus_result_t globus_ftp_client_operationattr_get_striped (const globus_ftp_client_operationattr_t
           *attr, globus_bool_t *striped)

   Striped File Layout
       globus_result_t globus_ftp_client_operationattr_set_layout (globus_ftp_client_operationattr_t *attr,
           const globus_ftp_control_layout_t *layout)
       globus_result_t globus_ftp_client_operationattr_get_layout (const globus_ftp_client_operationattr_t
           *attr, globus_ftp_control_layout_t *layout)

   TCP Buffer
       globus_result_t globus_ftp_client_operationattr_set_tcp_buffer (globus_ftp_client_operationattr_t *attr,
           const globus_ftp_control_tcpbuffer_t *tcp_buffer)
       globus_result_t globus_ftp_client_operationattr_get_tcp_buffer (const globus_ftp_client_operationattr_t
           *attr, globus_ftp_control_tcpbuffer_t *tcp_buffer)

   File Type
       globus_result_t globus_ftp_client_operationattr_set_type (globus_ftp_client_operationattr_t *attr,
           globus_ftp_control_type_t type)
       globus_result_t globus_ftp_client_operationattr_get_type (const globus_ftp_client_operationattr_t *attr,
           globus_ftp_control_type_t *type)

   Transfer Mode
       globus_result_t globus_ftp_client_operationattr_set_mode (globus_ftp_client_operationattr_t *attr,
           globus_ftp_control_mode_t mode)
       globus_result_t globus_ftp_client_operationattr_get_mode (const globus_ftp_client_operationattr_t *attr,
           globus_ftp_control_mode_t *mode)
       globus_result_t globus_ftp_client_operationattr_set_list_uses_data_mode (const
           globus_ftp_client_operationattr_t *attr, globus_bool_t list_uses_data_mode)
       globus_result_t globus_ftp_client_operationattr_get_list_uses_data_mode (const
           globus_ftp_client_operationattr_t *attr, globus_bool_t *list_uses_data_mode)

   Authorization
       globus_result_t globus_ftp_client_operationattr_set_authorization (globus_ftp_client_operationattr_t
           *attr, gss_cred_id_t credential, const char *user, const char *password, const char *account, const
           char *subject)
       globus_result_t globus_ftp_client_operationattr_get_authorization (const
           globus_ftp_client_operationattr_t *attr, gss_cred_id_t *credential, char **user, char **password,
           char **account, char **subject)

   Data Channel Authentication
       globus_result_t globus_ftp_client_operationattr_set_dcau (globus_ftp_client_operationattr_t *attr, const
           globus_ftp_control_dcau_t *dcau)
       globus_result_t globus_ftp_client_operationattr_get_dcau (const globus_ftp_client_operationattr_t *attr,
           globus_ftp_control_dcau_t *dcau)

   Data Channel Protection
       globus_result_t globus_ftp_client_operationattr_set_data_protection (globus_ftp_client_operationattr_t
           *attr, globus_ftp_control_protection_t protection)
       globus_result_t globus_ftp_client_operationattr_get_data_protection (const
           globus_ftp_client_operationattr_t *attr, globus_ftp_control_protection_t *protection)

   Data Channel Security Context
       globus_result_t globus_ftp_client_operationattr_set_data_security (globus_ftp_client_operationattr_t
           *attr, int type, void *credential)
       globus_result_t globus_ftp_client_operationattr_get_data_security (const
           globus_ftp_client_operationattr_t *attr, int *type, void **credential)

   Control Channel Protection
       globus_result_t globus_ftp_client_operationattr_set_control_protection (globus_ftp_client_operationattr_t
           *attr, globus_ftp_control_protection_t protection)
       globus_result_t globus_ftp_client_operationattr_get_control_protection (const
           globus_ftp_client_operationattr_t *attr, globus_ftp_control_protection_t *protection)

   Append
       globus_result_t globus_ftp_client_operationattr_set_append (globus_ftp_client_operationattr_t *attr,
           globus_bool_t append)
       globus_result_t globus_ftp_client_operationattr_get_append (const globus_ftp_client_operationattr_t
           *attr, globus_bool_t *append)

   IPv6
       globus_result_t globus_ftp_client_operationattr_set_allow_ipv6 (globus_ftp_client_operationattr_t *attr,
           globus_bool_t allow_ipv6)
       globus_result_t globus_ftp_client_operationattr_get_allow_ipv6 (const globus_ftp_client_operationattr_t
           *attr, globus_bool_t *allow_ipv6)

   Read into a Single Buffer
       globus_result_t globus_ftp_client_operationattr_set_read_all (globus_ftp_client_operationattr_t *attr,
           globus_bool_t read_all, globus_ftp_client_data_callback_t intermediate_callback, void
           *intermediate_callback_arg)
       globus_result_t globus_ftp_client_operationattr_get_read_all (const globus_ftp_client_operationattr_t
           *attr, globus_bool_t *read_all, globus_ftp_client_data_callback_t *intermediate_callback, void
           **intermediate_callback_arg)

Detailed Description

       Operation attributes are used to control the security and performance of an FTP operation.

       These features are often dependent on the capabilities of the FTP server which you are going to access.

Typedef Documentation

   typedef struct globus_i_ftp_client_operationattr_t* globus_ftp_client_operationattr_t
       Operation Attributes. FTP Client attributes are used to control the parameters needed to access an URL
       using the FTP protocol. Attributes are created and manipulated using the functions in the attributes
       section of the library.

       See Also:
           globus_ftp_client_operationattr_init(), globus_ftp_client_operationattr_destroy()

Function Documentation

   globus_result_t globus_ftp_client_operationattr_init (globus_ftp_client_operationattr_t *attr)
       Initialize an FTP client attribute set.

       Parameters:
           attr A pointer to the new attribute set.

       References globus_ftp_control_auth_info_init(), and GLOBUS_FTP_CONTROL_TCPBUFFER_DEFAULT.

   globus_result_t globus_ftp_client_operationattr_destroy (globus_ftp_client_operationattr_t *attr)
       Destroy an FTP client attribute set.

       Parameters:
           attr A pointer to the attribute to destroy.

   globus_result_t globus_ftp_client_operationattr_set_storage_module (globus_ftp_client_operationattr_t *attr,
       const char *module_name, const char *module_args)
       Set/Get the gridftp storage module (DSI). This attribute allows the user to control what backend module
       they use with the gridftp server. The module MUST be implemented by the server or the transfer/get/put
       will result in an error.

       This attribute is ignored in stream mode.

       Parameters:
           attr The attribute set to query or modify.
           module_name The backend storage module name
           module_args The backend storage module parameters

       Note:
           This is a Grid-FTP extension, and may not be supported on all FTP servers.

   globus_result_t globus_ftp_client_operationattr_set_net_stack (globus_ftp_client_operationattr_t *attr, const
       char *driver_list)
       Set/Get the gridftp xio driver stack used for the data channel. This attribute allows the user to control
       which xio drivers will be used for data transport. The driver MUST be installed and allowed by the server
       or the transfer/get/put will result in an error.

       Parameters:
           attr The attribute set to query or modify.
           driver_list driver list in the following format: driver1[:driver1opts][,driver2[:driver2opts]][...].
           The string 'default' will reset the stack list to the server default.

       Note:
           This is a GridFTP extension, and may not be supported on all FTP servers.

   globus_result_t globus_ftp_client_operationattr_set_disk_stack (globus_ftp_client_operationattr_t *attr,
       const char *driver_list)
       Set/Get the gridftp xio driver stack used for the file storage. This attribute allows the user to control
       which xio drivers will be used for file DSI only. This is an experimental feature of the gridftp server.
       Only works for third party transfers.

       Parameters:
           attr The attribute set to query or modify.
           driver_list driver list in the following format: driver1[:driver1opts][,driver2[:driver2opts]][...].
           The string 'default' will reset the stack list to the server default.

       Note:
           This is a GridFTP extension, and may not be supported on all FTP servers.

       References globus_ftp_client_operationattr_set_net_stack().

   globus_result_t globus_ftp_client_operationattr_set_parallelism (globus_ftp_client_operationattr_t *attr,
       const globus_ftp_control_parallelism_t *parallelism)
       Set/Get the parallelism attribute for an ftp client attribute set. This attribute allows the user to
       control the level of parallelism to be used on an extended block mode file transfer. Currently, only a
       'fixed' parallelism level is supported. This is interpreted by the FTP server as the number of parallel
       data connections to be allowed for each stripe of data. Currently, only the 'fixed' parallelism type is

       This attribute is ignored in stream mode.

       Parameters:
           attr The attribute set to query or modify.
           parallelism The value of parallelism attribute.

       See Also:
            globus_ftp_client_operationattr_set_layout(), globus_ftp_client_operationattr_set_mode()

       Note:
           This is a Grid-FTP extension, and may not be supported on all FTP servers.

   globus_result_t globus_ftp_client_operationattr_set_allocate (globus_ftp_client_operationattr_t *attr, const
       globus_off_tallocated_size)
       Set/Get the allocate attribute for an ftp client attribute set. This attribute lets the user set a size
       to be passed to the server before a put operation.

       This attribute is ignored for get operations.

       Parameters:
           attr The attribute set to query or modify.
           allocated_size The size to direct server to allocate.

   globus_result_t globus_ftp_client_operationattr_set_authz_assert (globus_ftp_client_operationattr_t *attr,
       const char *authz_assert, globus_bool_tcache_authz_assert)
       Set/Get the authz_assert attribute for an ftp client attribute set. This attribute lets the user set an
       AUTHORIZATION assertion to be passed to the server

       Parameters:
           attr The attribute set to query or modify.
           authz_assert The AUTHORIZATION assertion.
           cache_authz_assert Boolean that specifies whether to cache this assertion for subsequent operations

   globus_result_t globus_ftp_client_operationattr_set_striped (globus_ftp_client_operationattr_t *attr,
       globus_bool_tstriped)
       Set/Get the striped attribute for an ftp client attribute set. This attribute allows the user to force
       the client library to used the FTP commands to do a striped data transfer, even when the user has not
       requested a specific file layout via the layout attribute. This is useful when transferring files between
       servers which use the server side processing commands ERET or ESTO to transform data and send it to
       particular stripes on the destination server.

       The layout attribute is used only when the data is being stored the server (on a put or 3rd party
       transfer). This attribute is ignored for stream mode data transfers.

       Parameters:
           attr The attribute set to query or modify.
           striped The value of striped attribute.

       See Also:
           globus_ftp_client_operationattr_set_parallelism(), globus_ftp_client_operationattr_set_layout()
           globus_ftp_client_operationattr_set_mode()

       Note:
           This is a Grid-FTP extension, and may not be supported on all FTP servers.

   globus_result_t globus_ftp_client_operationattr_set_layout (globus_ftp_client_operationattr_t *attr, const
       globus_ftp_control_layout_t *layout)
       Set/Get the layout attribute for an ftp client attribute set. This attribute allows the user to control
       the layout of a file being transfered to a striped Grid-FTP server. The striping layout defines what
       regions of a file will be stored on each stripe of a multiple-striped ftp server.

       The layout attribute is used only when the data is being stored on the server (on a put or 3rd party
       transfer). This attribute is ignored for stream mode data transfers.

       Parameters:
           attr The attribute set to query or modify.
           layout The value of layout attribute.

       See Also:
            globus_ftp_client_operationattr_set_parallelism(), globus_ftp_client_operationattr_set_mode()

       Note:
           This is a Grid-FTP extension, and may not be supported on all FTP servers.

   globus_result_t globus_ftp_client_operationattr_set_tcp_buffer (globus_ftp_client_operationattr_t *attr,
       const globus_ftp_control_tcpbuffer_t *tcp_buffer)
       Set/Get the TCP buffer attribute for an ftp client attribute set. This attribute allows the user to
       control the TCP buffer size used for all data channels used in a file transfer. The size of the TCP
       buffer can make a significant impact on the performance of a file transfer. The user may set the buffer
       to either a system-dependent default value, or to a fixed value.

       The actual implementation of this attribute is designed to be as widely interoperable as possible. In
       addition to supporting the SBUF command described in the GridFTP protocol extensions document, it also
       supports other commands and site commands which are used by other servers to set TCP buffer sizes. These
       are

       • SITE RETRBUFSIZE

       • SITE RBUFSZ

       • SITE RBUFSIZ

       • SITE STORBUFIZE

       • SITE SBUFSZ

       • SITE SBUFSIZ

       • SITE BUFSIZE

       This attribute is affects any type of data transfer done with the ftp client library.

       Parameters:
           attr The attribute set to query or modify.
           tcp_buffer The value of tcp_buffer attribute.

   globus_result_t     globus_ftp_client_operationattr_set_type     (globus_ftp_client_operationattr_t    *attr,
       globus_ftp_control_type_ttype)
       Set/Get the file representation type attribute for an ftp client attribute set. This attribute allows the
       user to choose the file type used for an FTP file transfer. The file may be transferred as  either  ASCII
       or a binary image.

       When transferring an ASCII file, the data will be transformed in the following way

       • the high-order bit will be set to zero

       • end-of  line  characters  will be converted to a CRLF pair for the data transfer, and then converted to
         native format before being returned to the user's data callbacks.

       The default type for the ftp client library is binary.

       Parameters:
           attr The attribute set to query or modify.
           type The value of type attribute.

   globus_result_t    globus_ftp_client_operationattr_set_mode     (globus_ftp_client_operationattr_t     *attr,
       globus_ftp_control_mode_tmode)
       Set/Get  the file transfer mode attribute for an ftp client attribute set. This attribute allows the user
       to choose the data channel protocol used to transfer a file.  There  are  two  modes  supported  by  this
       library: stream mode and extended block mode.

       Stream  mode  is  a  file transfer mode where all data is sent over a single TCP socket, without any data
       framing. In stream mode, data will arrive in sequential order. This mode is supported by nearly  all  FTP
       servers.

       Extended block mode is a file transfer mode where data can be sent over multiple parallel connections and
       to  multiple data storage nodes to provide a high-performance data transfer. In extended block mode, data
       may arrive out-of-order. ASCII type files are not supported in extended block mode.

       Parameters:
           attr The attribute set to query or modify.
           mode The value of mode attribute

       See Also:
            globus_ftp_client_operationattr_set_parallelism(), globus_ftp_client_operationattr_set_layout()

       Note:
           Extended block mode is a Grid-FTP extension, and may not be supported on all FTP servers.

   globus_result_t                globus_ftp_client_operationattr_set_list_uses_data_mode                 (const
       globus_ftp_client_operationattr_t *attr, globus_bool_tlist_uses_data_mode)
       Set/Get whether or not list data will use the current data mode

       This attribute allows the user to allow list data to be transferred using the current data channel mode.

       Parameters:
           attr The attribute set to query or modify.
           list_uses_data_mode globus_bool_t

       Note:
           List data transfers in nonstandard modes is a Grid-FTP extension, and may not be supported on all FTP
           servers.

   globus_result_t   globus_ftp_client_operationattr_set_delayed_pasv  (const  globus_ftp_client_operationattr_t
       *attr, globus_bool_tdelayed_pasv)
       Set/Get whether or not delayed passive should be used

       This attribute allows the user to enable delayed passive so the server can provide  the  passive  address
       after it knows the filename to be transferred.

       Parameters:
           attr The attribute set to query or modify.
           delayed_pasv globus_bool_t

       Note:
           Delayed passive is a GridFTP extension, and may not be supported on all FTP servers.

   globus_result_t  globus_ftp_client_operationattr_set_authorization  (globus_ftp_client_operationattr_t *attr,
       gss_cred_id_tcredential, const char  *user,  const  char  *password,  const  char  *account,  const  char
       *subject)
       Set/Get  the  authorization  attribute for an ftp client attribute set. This attribute allows the user to
       pass authentication information to the ftp client library. This information is used to authenticate  with
       the ftp server.

       The  Globus  FTP  client  library  supports authentication using either the GSSAPI, or standard plaintext
       username and passwords. The type of authentication is determined by the URL scheme which is used for  the
       individual get, put, or 3rd party transfer calls.

       Parameters:
           attr The attribute set to query or modify.
           credential   The   credential   to  use  for  authenticating  with  a  GSIFTP  server.  This  may  be
           GSS_C_NO_CREDENTIAL to use the default credential.
           user The user name to send to the FTP server. When doing a gsiftp transfer, this may be set to  NULL,
           and the default globusmap entry for the user's GSI identity will be usd.
           password  The  password  to  send to the FTP server. When doing a gsiftp transfer, this may be set to
           NULL.
           account The account to use for the data transfer. Most FTP servers do not require this.
           subject The subject name of the FTP server. This is only used when doing a gsiftp transfer, and  then
           only when the security subject name does not match the hostname of the server (ie, when the server is
           being run by a user).

   globus_result_t   globus_ftp_client_operationattr_set_dcau  (globus_ftp_client_operationattr_t  *attr,  const
       globus_ftp_control_dcau_t *dcau)
       Set/Get the data channel  authentication  attribute  for  an  ftp  client  attribute  set.  Data  channel
       authentication  is a GridFTP extension, and may not be supported by all servers. If a server supports it,
       then the default is to delegate a credential to the server, and authenticate all data channels with  that
       delegated credential.

       Parameters:
           attr The attribute set to query or modify.
           dcau The value of data channel authentication attribute.

   globus_result_t globus_ftp_client_operationattr_set_data_protection (globus_ftp_client_operationattr_t *attr,
       globus_ftp_control_protection_tprotection)
       Set/Get the data channel protection attribute for an ftp client attribute set.

       Parameters:
           attr The attribute set to query or modify.
           protection The value of data channel protection attribute.

       Bug
           Only safe and private protection levels are supported by gsiftp.

   globus_result_t  globus_ftp_client_operationattr_set_data_security  (globus_ftp_client_operationattr_t *attr,
       inttype, void *credential)
       Set/Get the data channel security context type and credential.

       Parameters:
           attr The attribute set to query or modify.
           type The type of credential. Currently only 'P' is supported, and requires a  gss_cred_id_t  for  the
           credential.
           credential A credential appropriate for the type specified.

   globus_result_t   globus_ftp_client_operationattr_set_control_protection   (globus_ftp_client_operationattr_t
       *attr, globus_ftp_control_protection_tprotection)
       Set/Get the control channel protection attribute for an ftp client attribute  set.  The  control  channel
       protection  attribute allows the user to decide whether to encrypt or integrity check the command session
       between the client and the FTP server. This attribute is only relevant if used with a gsiftp URL.

       Parameters:
           attr The attribute set to query or modify.
           protection The value of control channel protection attribute.

       Bug
           The clear and safe protection levels are treated identically, with the client integrity checking  all
           commands.  The  confidential  and  private protection levels are treated identically, with the client
           encrypting all commands.

   globus_result_t    globus_ftp_client_operationattr_set_append    (globus_ftp_client_operationattr_t    *attr,
       globus_bool_tappend)
       Set/Get the append attribute for an ftp client attribute set. This attribute allows the user to append to
       a  file  on an FTP server, instead of replacing the existing file when doing a globus_ftp_client_put() or
       globus_ftp_client_transfer().

       This attribute is ignored on the retrieving side of a transfer, or a globus_ftp_client_get().

       Parameters:
           attr The attribute set to query or modify.
           append The value of append attribute.

   globus_result_t  globus_ftp_client_operationattr_set_allow_ipv6   (globus_ftp_client_operationattr_t   *attr,
       globus_bool_tallow_ipv6)
       Set/Get the allow ipv6 attribute for an ftp client attribute set. This attribute allows client library to
       make use of ipv6 when possible.

       Use of this is currently very experimental.

       Parameters:
           attr The attribute set to query or modify.
           allow_ipv6 GLOBUS_TRUE to allow ipv6 or GLOBUS_FALSE to disallow(default)

   globus_result_t    globus_ftp_client_operationattr_set_read_all   (globus_ftp_client_operationattr_t   *attr,
       globus_bool_tread_all,            globus_ftp_client_data_callback_tintermediate_callback,            void
       *intermediate_callback_arg)
       Set/Get the read_all attribute for an ftp client attribute set. This attribute allows the user to pass in
       a  single buffer to receive all of the data for the current transfer. This buffer must be large enough to
       hold   all   of   the   data   for   the   transfer.   Only   one   buffer   may   be   registered   with
       globus_ftp_client_register_read() when this attribute is used for a get.

       In  extended  block  mode,  this  attribute  will  cause  data to be stored directly into the buffer from
       multiple streams without any extra data copies.

       If the user sets the intermediate callback to a non-null value, this function will be called whenever  an
       intermediate sub-section of the data is received into the buffer.

       This   attribute  is  ignored  for  globus_ftp_client_put()  or  globus_ftp_client_third_party_transfer()
       operations.

       Parameters:
           attr The attribute set to query or modify.
           read_all The value of read_all attribute.
           intermediate_callback Callback to be invoked when a subsection of the data has been  retreived.  This
           callback  may  be  GLOBUS_NULL,  if  the  user  only  wants  to be notified when the data transfer is
           completed.
           intermediate_callback_arg User data to be passed to the intermediate callback function.

   globus_result_t   globus_ftp_client_operationattr_copy   (globus_ftp_client_operationattr_t    *dst,    const
       globus_ftp_client_operationattr_t *src)
       Create  a  duplicate of an attribute set. The duplicated attribute set has a deep copy of all data in the
       attribute set, so the original may be destroyed, while the copy is still valid.

       Parameters:
           dst The attribute set to be initialized to the same values as src.
           src The original attribute set to duplicate.

       References       globus_ftp_client_operationattr_destroy(),       globus_ftp_client_operationattr_init(),
       globus_ftp_client_operationattr_set_allocate(),         globus_ftp_client_operationattr_set_allow_ipv6(),
       globus_ftp_client_operationattr_set_append(),        globus_ftp_client_operationattr_set_authorization(),
       globus_ftp_client_operationattr_set_authz_assert(),
       globus_ftp_client_operationattr_set_control_protection(),
       globus_ftp_client_operationattr_set_data_protection(),
       globus_ftp_client_operationattr_set_data_security(),          globus_ftp_client_operationattr_set_dcau(),
       globus_ftp_client_operationattr_set_delayed_pasv(),     globus_ftp_client_operationattr_set_disk_stack(),
       globus_ftp_client_operationattr_set_layout(),  globus_ftp_client_operationattr_set_list_uses_data_mode(),
       globus_ftp_client_operationattr_set_mode(),              globus_ftp_client_operationattr_set_net_stack(),
       globus_ftp_client_operationattr_set_parallelism(),        globus_ftp_client_operationattr_set_read_all(),
       globus_ftp_client_operationattr_set_striped(),   globus_ftp_client_operationattr_set_tcp_buffer(),    and
       globus_ftp_client_operationattr_set_type().

   globus_result_t  globus_ftp_client_operationattr_get_storage_module  (const globus_ftp_client_operationattr_t
       *attr, char **module_name, char **module_args)
       Set/Get the gridftp storage module (DSI). This attribute allows the user to control what  backend  module
       they  use  with  the gridftp server. The module MUST be implemented by the server or the transfer/get/put
       will result in an error.

       This attribute is ignored in stream mode.

       Parameters:
           attr The attribute set to query or modify.
           module_name The backend storage module name
           module_args The backend storage module parameters

       Note:
           This is a Grid-FTP extension, and may not be supported on all FTP servers.

       References globus_ftp_client_operationattr_get_parallelism().

   globus_result_t globus_ftp_client_operationattr_get_net_stack (const globus_ftp_client_operationattr_t *attr,
       char **driver_list)
       Set/Get the gridftp xio driver stack used for the data channel. This attribute allows the user to control
       which xio drivers will be used for data transport. The driver MUST be installed and allowed by the server
       or the transfer/get/put will result in an error.

       Parameters:
           attr The attribute set to query or modify.
           driver_list driver list in the following format:  driver1[:driver1opts][,driver2[:driver2opts]][...].
           The string 'default' will reset the stack list to the server default.

       Note:
           This is a GridFTP extension, and may not be supported on all FTP servers.

   globus_result_t   globus_ftp_client_operationattr_get_disk_stack   (const   globus_ftp_client_operationattr_t
       *attr, char **driver_list)
       Set/Get the gridftp xio driver stack used for the file storage. This attribute allows the user to control
       which xio drivers will be used for file DSI only. This is an experimental feature of the gridftp  server.
       Only works for third party transfers.

       Parameters:
           attr The attribute set to query or modify.
           driver_list  driver list in the following format: driver1[:driver1opts][,driver2[:driver2opts]][...].
           The string 'default' will reset the stack list to the server default.

       Note:
           This is a GridFTP extension, and may not be supported on all FTP servers.

       References globus_ftp_client_operationattr_get_net_stack().

   globus_result_t  globus_ftp_client_operationattr_get_parallelism   (const   globus_ftp_client_operationattr_t
       *attr, globus_ftp_control_parallelism_t *parallelism)
       Set/Get  the  parallelism  attribute  for  an ftp client attribute set. This attribute allows the user to
       control the level of parallelism to be used on an extended block mode file transfer.  Currently,  only  a
       'fixed'  parallelism  level is supported. This is interpreted by the FTP server as the number of parallel
       data connections to be allowed for each stripe of data. Currently, only the 'fixed' parallelism type is

       This attribute is ignored in stream mode.

       Parameters:
           attr The attribute set to query or modify.
           parallelism The value of parallelism attribute.

       See Also:
            globus_ftp_client_operationattr_set_layout(), globus_ftp_client_operationattr_set_mode()

       Note:
           This is a Grid-FTP extension, and may not be supported on all FTP servers.

   globus_result_t globus_ftp_client_operationattr_get_allocate (const globus_ftp_client_operationattr_t  *attr,
       globus_off_t *allocated_size)
       Set/Get  the  allocate attribute for an ftp client attribute set. This attribute lets the user set a size
       to be passed to the server before a put operation.

       This attribute is ignored for get operations.

       Parameters:
           attr The attribute set to query or modify.
           allocated_size The size to direct server to allocate.

   globus_result_t  globus_ftp_client_operationattr_get_authz_assert  (const   globus_ftp_client_operationattr_t
       *attr, char **authz_assert, globus_bool_t *cache_authz_assert)
       Set/Get  the  authz_assert attribute for an ftp client attribute set. This attribute lets the user set an
       AUTHORIZATION assertion to be passed to the server

       Parameters:
           attr The attribute set to query or modify.
           authz_assert The AUTHORIZATION assertion.
           cache_authz_assert Boolean that specifies whether to cache this assertion for subsequent operations

   globus_result_t globus_ftp_client_operationattr_get_striped (const  globus_ftp_client_operationattr_t  *attr,
       globus_bool_t *striped)
       Set/Get  the  striped  attribute for an ftp client attribute set. This attribute allows the user to force
       the client library to used the FTP commands to do a striped data transfer, even when  the  user  has  not
       requested a specific file layout via the layout attribute. This is useful when transferring files between
       servers  which  use  the  server  side  processing commands ERET or ESTO to transform data and send it to
       particular stripes on the destination server.

       The layout attribute is used only when the data is being stored  the  server  (on  a  put  or  3rd  party
       transfer). This attribute is ignored for stream mode data transfers.

       Parameters:
           attr The attribute set to query or modify.
           striped The value of striped attribute.

       See Also:
           globus_ftp_client_operationattr_set_parallelism(),       globus_ftp_client_operationattr_set_layout()
           globus_ftp_client_operationattr_set_mode()

       Note:
           This is a Grid-FTP extension, and may not be supported on all FTP servers.

   globus_result_t globus_ftp_client_operationattr_get_layout  (const  globus_ftp_client_operationattr_t  *attr,
       globus_ftp_control_layout_t *layout)
       Set/Get  the  layout attribute for an ftp client attribute set. This attribute allows the user to control
       the layout of a file being transfered to a striped Grid-FTP server.  The  striping  layout  defines  what
       regions of a file will be stored on each stripe of a multiple-striped ftp server.

       The  layout  attribute  is  used  only when the data is being stored on the server (on a put or 3rd party
       transfer). This attribute is ignored for stream mode data transfers.

       Parameters:
           attr The attribute set to query or modify.
           layout The value of layout attribute.

       See Also:
            globus_ftp_client_operationattr_set_parallelism(), globus_ftp_client_operationattr_set_mode()

       Note:
           This is a Grid-FTP extension, and may not be supported on all FTP servers.

   globus_result_t   globus_ftp_client_operationattr_get_tcp_buffer   (const   globus_ftp_client_operationattr_t
       *attr, globus_ftp_control_tcpbuffer_t *tcp_buffer)
       Set/Get  the  TCP  buffer  attribute  for  an ftp client attribute set. This attribute allows the user to
       control the TCP buffer size used for all data channels used in a file  transfer.  The  size  of  the  TCP
       buffer  can  make a significant impact on the performance of a file transfer. The user may set the buffer
       to either a system-dependent default value, or to a fixed value.

       The actual implementation of this attribute is designed to be as widely  interoperable  as  possible.  In
       addition  to  supporting  the SBUF command described in the GridFTP protocol extensions document, it also
       supports other commands and site commands which are used by other servers to set TCP buffer sizes.  These
       are

       • SITE RETRBUFSIZE

       • SITE RBUFSZ

       • SITE RBUFSIZ

       • SITE STORBUFIZE

       • SITE SBUFSZ

       • SITE SBUFSIZ

       • SITE BUFSIZE

       This attribute is affects any type of data transfer done with the ftp client library.

       Parameters:
           attr The attribute set to query or modify.
           tcp_buffer The value of tcp_buffer attribute.

   globus_result_t   globus_ftp_client_operationattr_get_type  (const  globus_ftp_client_operationattr_t  *attr,
       globus_ftp_control_type_t *type)
       Set/Get the file representation type attribute for an ftp client attribute set. This attribute allows the
       user to choose the file type used for an FTP file transfer. The file may be transferred as  either  ASCII
       or a binary image.

       When transferring an ASCII file, the data will be transformed in the following way

       • the high-order bit will be set to zero

       • end-of  line  characters  will be converted to a CRLF pair for the data transfer, and then converted to
         native format before being returned to the user's data callbacks.

       The default type for the ftp client library is binary.

       Parameters:
           attr The attribute set to query or modify.
           type The value of type attribute.

   globus_result_t  globus_ftp_client_operationattr_get_mode  (const  globus_ftp_client_operationattr_t   *attr,
       globus_ftp_control_mode_t *mode)
       Set/Get  the file transfer mode attribute for an ftp client attribute set. This attribute allows the user
       to choose the data channel protocol used to transfer a file.  There  are  two  modes  supported  by  this
       library: stream mode and extended block mode.

       Stream  mode  is  a  file transfer mode where all data is sent over a single TCP socket, without any data
       framing. In stream mode, data will arrive in sequential order. This mode is supported by nearly  all  FTP
       servers.

       Extended block mode is a file transfer mode where data can be sent over multiple parallel connections and
       to  multiple data storage nodes to provide a high-performance data transfer. In extended block mode, data
       may arrive out-of-order. ASCII type files are not supported in extended block mode.

       Parameters:
           attr The attribute set to query or modify.
           mode The value of mode attribute

       See Also:
            globus_ftp_client_operationattr_set_parallelism(), globus_ftp_client_operationattr_set_layout()

       Note:
           Extended block mode is a Grid-FTP extension, and may not be supported on all FTP servers.

   globus_result_t                globus_ftp_client_operationattr_get_list_uses_data_mode                 (const
       globus_ftp_client_operationattr_t *attr, globus_bool_t *list_uses_data_mode)
       Set/Get whether or not list data will use the current data mode

       This attribute allows the user to allow list data to be transferred using the current data channel mode.

       Parameters:
           attr The attribute set to query or modify.
           list_uses_data_mode globus_bool_t

       Note:
           List data transfers in nonstandard modes is a Grid-FTP extension, and may not be supported on all FTP
           servers.

   globus_result_t  globus_ftp_client_operationattr_get_authorization  (const  globus_ftp_client_operationattr_t
       *attr, gss_cred_id_t *credential, char **user, char **password, char **account, char **subject)
       Set/Get the authorization attribute for an ftp client attribute set. This attribute allows  the  user  to
       pass  authentication information to the ftp client library. This information is used to authenticate with
       the ftp server.

       The Globus FTP client library supports authentication using either  the  GSSAPI,  or  standard  plaintext
       username  and passwords. The type of authentication is determined by the URL scheme which is used for the
       individual get, put, or 3rd party transfer calls.

       Parameters:
           attr The attribute set to query or modify.
           credential  The  credential  to  use  for  authenticating  with  a  GSIFTP  server.   This   may   be
           GSS_C_NO_CREDENTIAL to use the default credential.
           user  The user name to send to the FTP server. When doing a gsiftp transfer, this may be set to NULL,
           and the default globusmap entry for the user's GSI identity will be usd.
           password The password to send to the FTP server. When doing a gsiftp transfer, this  may  be  set  to
           NULL.
           account The account to use for the data transfer. Most FTP servers do not require this.
           subject  The subject name of the FTP server. This is only used when doing a gsiftp transfer, and then
           only when the security subject name does not match the hostname of the server (ie, when the server is
           being run by a user).

   globus_result_t  globus_ftp_client_operationattr_get_dcau  (const  globus_ftp_client_operationattr_t   *attr,
       globus_ftp_control_dcau_t *dcau)
       Set/Get  the  data  channel  authentication  attribute  for  an  ftp  client  attribute set. Data channel
       authentication is a GridFTP extension, and may not be supported by all servers. If a server supports  it,
       then  the default is to delegate a credential to the server, and authenticate all data channels with that
       delegated credential.

       Parameters:
           attr The attribute set to query or modify.
           dcau The value of data channel authentication attribute.

   globus_result_t globus_ftp_client_operationattr_get_data_protection (const  globus_ftp_client_operationattr_t
       *attr, globus_ftp_control_protection_t *protection)
       Set/Get the data channel protection attribute for an ftp client attribute set.

       Parameters:
           attr The attribute set to query or modify.
           protection The value of data channel protection attribute.

       Bug
           Only safe and private protection levels are supported by gsiftp.

   globus_result_t  globus_ftp_client_operationattr_get_data_security  (const  globus_ftp_client_operationattr_t
       *attr, int *type, void **credential)
       Set/Get the data channel security context type and credential.

       Parameters:
           attr The attribute set to query or modify.
           type The type of credential. Currently only 'P' is supported, and requires a  gss_cred_id_t  for  the
           credential.
           credential A credential appropriate for the type specified.

   globus_result_t                 globus_ftp_client_operationattr_get_control_protection                 (const
       globus_ftp_client_operationattr_t *attr, globus_ftp_control_protection_t *protection)
       Set/Get the control channel protection attribute for an ftp client attribute  set.  The  control  channel
       protection  attribute allows the user to decide whether to encrypt or integrity check the command session
       between the client and the FTP server. This attribute is only relevant if used with a gsiftp URL.

       Parameters:
           attr The attribute set to query or modify.
           protection The value of control channel protection attribute.

       Bug
           The clear and safe protection levels are treated identically, with the client integrity checking  all
           commands.  The  confidential  and  private protection levels are treated identically, with the client
           encrypting all commands.

   globus_result_t globus_ftp_client_operationattr_get_append  (const  globus_ftp_client_operationattr_t  *attr,
       globus_bool_t *append)
       Set/Get the append attribute for an ftp client attribute set. This attribute allows the user to append to
       a  file  on an FTP server, instead of replacing the existing file when doing a globus_ftp_client_put() or
       globus_ftp_client_transfer().

       This attribute is ignored on the retrieving side of a transfer, or a globus_ftp_client_get().

       Parameters:
           attr The attribute set to query or modify.
           append The value of append attribute.

   globus_result_t   globus_ftp_client_operationattr_get_allow_ipv6   (const   globus_ftp_client_operationattr_t
       *attr, globus_bool_t *allow_ipv6)
       Set/Get the allow ipv6 attribute for an ftp client attribute set. This attribute allows client library to
       make use of ipv6 when possible.

       Use of this is currently very experimental.

       Parameters:
           attr The attribute set to query or modify.
           allow_ipv6 GLOBUS_TRUE to allow ipv6 or GLOBUS_FALSE to disallow(default)

   globus_result_t  globus_ftp_client_operationattr_get_read_all (const globus_ftp_client_operationattr_t *attr,
       globus_bool_t     *read_all,     globus_ftp_client_data_callback_t      *intermediate_callback,      void
       **intermediate_callback_arg)
       Set/Get the read_all attribute for an ftp client attribute set. This attribute allows the user to pass in
       a  single buffer to receive all of the data for the current transfer. This buffer must be large enough to
       hold   all   of   the   data   for   the   transfer.   Only   one   buffer   may   be   registered   with
       globus_ftp_client_register_read() when this attribute is used for a get.

       In  extended  block  mode,  this  attribute  will  cause  data to be stored directly into the buffer from
       multiple streams without any extra data copies.

       If the user sets the intermediate callback to a non-null value, this function will be called whenever  an
       intermediate sub-section of the data is received into the buffer.

       This   attribute  is  ignored  for  globus_ftp_client_put()  or  globus_ftp_client_third_party_transfer()
       operations.

       Parameters:
           attr The attribute set to query or modify.
           read_all The value of read_all attribute.
           intermediate_callback Callback to be invoked when a subsection of the data has been  retreived.  This
           callback  may  be  GLOBUS_NULL,  if  the  user  only  wants  to be notified when the data transfer is
           completed.
           intermediate_callback_arg User data to be passed to the intermediate callback function.

Author

       Generated automatically by Doxygen for globus ftp client from the source code.

Version 7.6                                      Sun Nov 24 2013                     FTP Operation Attributes(3)