00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00022 #ifndef GLOBUS_INCLUDE_FTP_CONTROL_H
00023 #define GLOBUS_INCLUDE_FTP_CONTROL_H 1
00024
00025 #include "globus_common.h"
00026 #include "globus_error_string.h"
00027 #include "globus_io.h"
00028 #include "globus_gss_assist.h"
00029 #include "globus_handle_table.h"
00030
00031 #ifdef __cplusplus
00032 extern "C" {
00033 #endif
00034
00035 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
00036
00040 #endif
00041
00079 typedef enum globus_ftp_control_type_e
00080 {
00082 GLOBUS_FTP_CONTROL_TYPE_NONE,
00084 GLOBUS_FTP_CONTROL_TYPE_ASCII = 'A',
00086 GLOBUS_FTP_CONTROL_TYPE_EBCDIC = 'E',
00088 GLOBUS_FTP_CONTROL_TYPE_IMAGE = 'I',
00090 GLOBUS_FTP_CONTROL_TYPE_LOCAL = 'L'
00091 } globus_ftp_control_type_t;
00092
00099 typedef enum globus_ftp_control_mode_e
00100 {
00102 GLOBUS_FTP_CONTROL_MODE_NONE,
00104 GLOBUS_FTP_CONTROL_MODE_STREAM = 'S',
00106 GLOBUS_FTP_CONTROL_MODE_BLOCK = 'B',
00108 GLOBUS_FTP_CONTROL_MODE_EXTENDED_BLOCK = 'E',
00110 GLOBUS_FTP_CONTROL_MODE_COMPRESSED = 'C'
00111 } globus_ftp_control_mode_t;
00112
00119 typedef enum globus_ftp_control_dcau_mode_e
00120 {
00122 GLOBUS_FTP_CONTROL_DCAU_NONE = 'N',
00124 GLOBUS_FTP_CONTROL_DCAU_SELF = 'A',
00126 GLOBUS_FTP_CONTROL_DCAU_SUBJECT = 'S',
00128 GLOBUS_FTP_CONTROL_DCAU_DEFAULT
00129 } globus_ftp_control_dcau_mode_t;
00130
00134 typedef struct globus_ftp_control_dcau_subject_s
00135 {
00136 globus_ftp_control_dcau_mode_t mode;
00137 char * subject;
00138 } globus_ftp_control_dcau_subject_t;
00139
00147 typedef enum globus_ftp_control_striping_mode_e
00148 {
00149 GLOBUS_FTP_CONTROL_STRIPING_NONE,
00150 GLOBUS_FTP_CONTROL_STRIPING_PARTITIONED,
00151 GLOBUS_FTP_CONTROL_STRIPING_BLOCKED_ROUND_ROBIN
00152 } globus_ftp_control_striping_mode_t;
00153
00157 typedef struct globus_ftp_control_round_robin_s
00158 {
00159 globus_ftp_control_striping_mode_t mode;
00160 globus_size_t block_size;
00161 } globus_ftp_control_round_robin_t;
00162
00163 typedef struct globus_ftp_control_partitioned_s
00164 {
00165 globus_ftp_control_striping_mode_t mode;
00166 globus_size_t size;
00167 } globus_ftp_control_partitioned_t;
00168
00172 typedef union globus_ftp_control_dcau_u
00173 {
00174 globus_ftp_control_dcau_mode_t mode;
00175 globus_ftp_control_dcau_subject_t subject;
00176 } globus_ftp_control_dcau_t;
00177
00185 typedef enum
00186 {
00188 GLOBUS_FTP_CONTROL_PROTECTION_CLEAR = 'C',
00190 GLOBUS_FTP_CONTROL_PROTECTION_SAFE = 'S',
00192 GLOBUS_FTP_CONTROL_PROTECTION_CONFIDENTIAL = 'E',
00194 GLOBUS_FTP_CONTROL_PROTECTION_PRIVATE = 'P'
00195 } globus_ftp_control_protection_t;
00196
00200 typedef enum
00201 {
00202 GLOBUS_FTP_CONTROL_DELAYED_SINGLE_PASSIVE = 'S',
00203 GLOBUS_FTP_CONTROL_DELAYED_STRIPED_PASSIVE = 'M',
00204 GLOBUS_FTP_CONTROL_NORMAL_PASSIVE = 'N'
00205 } globus_ftp_control_delay_passive_t;
00206
00210 typedef union globus_ftp_control_layout_u
00211 {
00212 globus_ftp_control_striping_mode_t mode;
00213 globus_ftp_control_round_robin_t round_robin;
00214 globus_ftp_control_partitioned_t partitioned;
00215
00216
00217
00218
00219
00220 } globus_ftp_control_layout_t;
00221
00225 typedef enum globus_ftp_control_structure_e
00226 {
00227 GLOBUS_FTP_CONTROL_STRUCTURE_NONE,
00228 GLOBUS_FTP_CONTROL_STRUCTURE_FILE,
00229 GLOBUS_FTP_CONTROL_STRUCTURE_PAGE,
00230 GLOBUS_FTP_CONTROL_STRUCTURE_RECORD
00231 } globus_ftp_control_structure_t;
00232
00236 typedef enum globus_ftp_control_parallelism_mode_e
00237 {
00238 GLOBUS_FTP_CONTROL_PARALLELISM_NONE,
00239 GLOBUS_FTP_CONTROL_PARALLELISM_FIXED
00240 } globus_ftp_control_parallelism_mode_t;
00241
00242
00243
00244
00245
00246 typedef struct globus_i_ftp_parallelism_base_s
00247 {
00248 globus_ftp_control_parallelism_mode_t mode;
00249 globus_size_t size;
00250 } globus_i_ftp_parallelism_base_t;
00251
00252 typedef struct globus_ftp_parallelism_fixed_s
00253 {
00254 globus_ftp_control_parallelism_mode_t mode;
00255 globus_size_t size;
00256 } globus_ftp_parallelism_fixed_t;
00257
00261 typedef union globus_ftp_control_parallelism_u
00262 {
00263 globus_ftp_control_parallelism_mode_t mode;
00264 globus_i_ftp_parallelism_base_t base;
00265 globus_ftp_parallelism_fixed_t fixed;
00266 } globus_ftp_control_parallelism_t;
00267
00268 typedef struct globus_ftp_control_host_port_s
00269 {
00270 int host[16];
00271 unsigned short port;
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281 int hostlen;
00282 } globus_ftp_control_host_port_t;
00283
00309 #define GLOBUS_FTP_CONTROL_MODULE (&globus_i_ftp_control_module)
00310
00311 extern globus_module_descriptor_t globus_i_ftp_control_module;
00312
00313 #define _FCSL(s) globus_common_i18n_get_string(GLOBUS_FTP_CONTROL_MODULE,s)
00314
00315
00316
00317 typedef enum globus_ftp_control_response_class_e
00318 {
00319 GLOBUS_FTP_UNKNOWN_REPLY,
00320 GLOBUS_FTP_POSITIVE_PRELIMINARY_REPLY,
00321 GLOBUS_FTP_POSITIVE_COMPLETION_REPLY,
00322 GLOBUS_FTP_POSITIVE_INTERMEDIATE_REPLY,
00323 GLOBUS_FTP_TRANSIENT_NEGATIVE_COMPLETION_REPLY,
00324 GLOBUS_FTP_PERMANENT_NEGATIVE_COMPLETION_REPLY
00325 } globus_ftp_control_response_class_t;
00326
00327
00328 typedef struct globus_ftp_control_response_s
00329 {
00330 int code;
00331 globus_ftp_control_response_class_t response_class;
00332 globus_byte_t * response_buffer;
00333 globus_size_t response_length;
00334 globus_size_t response_buffer_size;
00335 } globus_ftp_control_response_t;
00336
00338 typedef enum globus_ftp_control_tcpbuffer_mode_e
00339 {
00341 GLOBUS_FTP_CONTROL_TCPBUFFER_DEFAULT,
00342
00344 GLOBUS_FTP_CONTROL_TCPBUFFER_FIXED,
00345
00347 GLOBUS_FTP_CONTROL_TCPBUFFER_AUTOMATIC
00348 } globus_ftp_control_tcpbuffer_mode_t;
00349
00353 typedef struct
00354 {
00355 globus_ftp_control_tcpbuffer_mode_t mode;
00356 }
00357 globus_ftp_control_tcpbuffer_default_t;
00358
00362 typedef struct
00363 {
00364 globus_ftp_control_tcpbuffer_mode_t mode;
00365 int size;
00366 }
00367 globus_ftp_control_tcpbuffer_fixed_t;
00368
00372 typedef struct globus_ftp_control_tcpbuffer_automatic_s
00373 {
00374 globus_ftp_control_tcpbuffer_mode_t mode;
00375 unsigned int initial_size;
00376 unsigned int minimum_size;
00377 unsigned int maximum_size;
00378 } globus_ftp_control_tcpbuffer_automatic_t;
00379
00383 typedef union globus_ftp_control_tcpbuffer_t
00384 {
00385 globus_ftp_control_tcpbuffer_mode_t mode;
00386 globus_ftp_control_tcpbuffer_default_t default_tcpbuffer;
00387 globus_ftp_control_tcpbuffer_fixed_t fixed;
00388 globus_ftp_control_tcpbuffer_automatic_t automatic;
00389 } globus_ftp_control_tcpbuffer_t;
00390
00391
00392
00393
00394
00395
00396 typedef enum globus_ftp_data_connection_state_e
00397 {
00398 GLOBUS_FTP_DATA_STATE_NONE,
00399 GLOBUS_FTP_DATA_STATE_PASV,
00400 GLOBUS_FTP_DATA_STATE_PORT,
00401 GLOBUS_FTP_DATA_STATE_SPOR,
00402 GLOBUS_FTP_DATA_STATE_CONNECT_READ,
00403 GLOBUS_FTP_DATA_STATE_CONNECT_WRITE,
00404 GLOBUS_FTP_DATA_STATE_CLOSING,
00405 GLOBUS_FTP_DATA_STATE_EOF,
00406 GLOBUS_FTP_DATA_STATE_SEND_EOF
00407 } globus_ftp_data_connection_state_t;
00408
00409 #define GLOBUS_FTP_CONTROL_READ_BUFFER_SIZE 1000
00410 #define GLOBUS_FTP_CONTROL_HOSTENT_BUFFER_SIZE 8192
00411
00412 typedef enum
00413 {
00414 GLOBUS_FTP_CONTROL_UNCONNECTED,
00415 GLOBUS_FTP_CONTROL_CONNECTING,
00416 GLOBUS_FTP_CONTROL_CONNECTED,
00417 GLOBUS_FTP_CONTROL_CLOSING
00418 }
00419 globus_ftp_cc_state_t;
00420
00421 struct globus_ftp_control_handle_s;
00422 struct globus_i_ftp_dc_transfer_handle_t;
00423
00424 union globus_ftp_control_command_u;
00425
00426 typedef enum globus_ftp_control_command_code_e
00427 {
00428 GLOBUS_FTP_CONTROL_COMMAND_OPTS,
00429 GLOBUS_FTP_CONTROL_COMMAND_AUTH,
00430 GLOBUS_FTP_CONTROL_COMMAND_ADAT,
00431 GLOBUS_FTP_CONTROL_COMMAND_SPAS,
00432 GLOBUS_FTP_CONTROL_COMMAND_SPOR,
00433 GLOBUS_FTP_CONTROL_COMMAND_PORT,
00434 GLOBUS_FTP_CONTROL_COMMAND_PASV,
00435 GLOBUS_FTP_CONTROL_COMMAND_SITE,
00436 GLOBUS_FTP_CONTROL_COMMAND_TYPE,
00437 GLOBUS_FTP_CONTROL_COMMAND_DELE,
00438 GLOBUS_FTP_CONTROL_COMMAND_FEAT,
00439 GLOBUS_FTP_CONTROL_COMMAND_ERET,
00440 GLOBUS_FTP_CONTROL_COMMAND_ESTO,
00441 GLOBUS_FTP_CONTROL_COMMAND_RMD,
00442 GLOBUS_FTP_CONTROL_COMMAND_MKD,
00443 GLOBUS_FTP_CONTROL_COMMAND_PWD,
00444 GLOBUS_FTP_CONTROL_COMMAND_CWD,
00445 GLOBUS_FTP_CONTROL_COMMAND_CDUP,
00446 GLOBUS_FTP_CONTROL_COMMAND_NLST,
00447 GLOBUS_FTP_CONTROL_COMMAND_HELP,
00448 GLOBUS_FTP_CONTROL_COMMAND_STAT,
00449 GLOBUS_FTP_CONTROL_COMMAND_NOOP,
00450 GLOBUS_FTP_CONTROL_COMMAND_SYST,
00451 GLOBUS_FTP_CONTROL_COMMAND_STOU,
00452 GLOBUS_FTP_CONTROL_COMMAND_QUIT,
00453 GLOBUS_FTP_CONTROL_COMMAND_REIN,
00454 GLOBUS_FTP_CONTROL_COMMAND_ABOR,
00455 GLOBUS_FTP_CONTROL_COMMAND_ALLO,
00456 GLOBUS_FTP_CONTROL_COMMAND_MODE,
00457 GLOBUS_FTP_CONTROL_COMMAND_STRU,
00458 GLOBUS_FTP_CONTROL_COMMAND_ACCT,
00459 GLOBUS_FTP_CONTROL_COMMAND_PASS,
00460 GLOBUS_FTP_CONTROL_COMMAND_USER,
00461 GLOBUS_FTP_CONTROL_COMMAND_SMNT,
00462 GLOBUS_FTP_CONTROL_COMMAND_LIST,
00463 GLOBUS_FTP_CONTROL_COMMAND_RETR,
00464 GLOBUS_FTP_CONTROL_COMMAND_REST,
00465 GLOBUS_FTP_CONTROL_COMMAND_SBUF,
00466 GLOBUS_FTP_CONTROL_COMMAND_SIZE,
00467 GLOBUS_FTP_CONTROL_COMMAND_STOR,
00468 GLOBUS_FTP_CONTROL_COMMAND_APPE,
00469 GLOBUS_FTP_CONTROL_COMMAND_RNFR,
00470 GLOBUS_FTP_CONTROL_COMMAND_RNTO,
00471 GLOBUS_FTP_CONTROL_COMMAND_LANG,
00472 GLOBUS_FTP_CONTROL_COMMAND_UNKNOWN
00473 } globus_ftp_control_command_code_t;
00474
00483 typedef struct globus_ftp_control_auth_info_s
00484 {
00485 globus_bool_t authenticated;
00486 globus_ftp_control_command_code_t prev_cmd;
00487 char * auth_gssapi_subject;
00488 gss_ctx_id_t auth_gssapi_context;
00489 gss_cred_id_t credential_handle;
00490 globus_bool_t locally_acquired_credential;
00491 gss_name_t target_name;
00492 OM_uint32 req_flags;
00493 char * user;
00494 char * password;
00495 char * account;
00496 gss_cred_id_t delegated_credential_handle;
00497 globus_bool_t encrypt;
00498 }
00499 globus_ftp_control_auth_info_t;
00500
00501
00502
00526 typedef void (*globus_ftp_control_response_callback_t)(
00527 void * callback_arg,
00528 struct globus_ftp_control_handle_s * handle,
00529 globus_object_t * error,
00530 globus_ftp_control_response_t * ftp_response);
00531
00546 typedef void (*globus_ftp_control_callback_t)(
00547 void * callback_arg,
00548 struct globus_ftp_control_handle_s * handle,
00549 globus_object_t * error);
00550
00551
00552 typedef void
00553 (*globus_ftp_control_data_connect_callback_t)(
00554 void * callback_arg,
00555 struct globus_ftp_control_handle_s * handle,
00556 unsigned int stripe_ndx,
00557 globus_bool_t reused,
00558 globus_object_t * error);
00559
00587 typedef void (*globus_ftp_control_command_callback_t)(
00588 void * callback_arg,
00589 struct globus_ftp_control_handle_s * handle,
00590 globus_object_t * error,
00591 union globus_ftp_control_command_u * command);
00592
00616 typedef void
00617 (*globus_ftp_control_auth_callback_t)(
00618 void * callback_arg,
00619 struct globus_ftp_control_handle_s * handle,
00620 globus_object_t * error,
00621 globus_ftp_control_auth_info_t * auth_result);
00622
00633 typedef unsigned long globus_ftp_control_auth_requirements_t;
00634
00635 #define GLOBUS_FTP_CONTROL_AUTH_REQ_NONE 1
00636 #define GLOBUS_FTP_CONTROL_AUTH_REQ_GSSAPI 2
00637 #define GLOBUS_FTP_CONTROL_AUTH_REQ_USER 4
00638 #define GLOBUS_FTP_CONTROL_AUTH_REQ_PASS 8
00639 #define GLOBUS_FTP_CONTROL_AUTH_REQ_ACCT 16
00640 #define GLOBUS_FTP_CONTROL_AUTH_REQ_TLS 32
00641
00642 typedef struct globus_ftp_control_rw_queue_element_s
00643 {
00644 globus_ftp_control_response_callback_t callback;
00645 globus_ftp_control_callback_t send_response_cb;
00646 void * arg;
00647 globus_byte_t * write_buf;
00648 int write_flags;
00649 globus_io_write_callback_t write_callback;
00650 globus_io_read_callback_t read_callback;
00651 globus_bool_t expect_response;
00652 }
00653 globus_ftp_control_rw_queue_element_t;
00654
00655 typedef struct globus_ftp_cc_handle_s
00656 {
00657 globus_io_attr_t io_attr;
00658 globus_netlogger_handle_t nl_handle;
00659 globus_bool_t nl_handle_set;
00660
00661 globus_fifo_t readers;
00662 globus_fifo_t writers;
00663 globus_ftp_control_command_callback_t command_cb;
00664 void * command_cb_arg;
00665
00666
00667 globus_ftp_control_callback_t accept_cb;
00668 void * accept_cb_arg;
00669
00670 globus_ftp_control_auth_callback_t auth_cb;
00671 void * auth_cb_arg;
00672 globus_ftp_control_auth_requirements_t auth_requirements;
00673 globus_ftp_control_response_t response;
00674 globus_byte_t * read_buffer;
00675 globus_size_t read_buffer_size;
00676 globus_size_t bytes_read;
00677 globus_ftp_control_auth_info_t auth_info;
00678 globus_bool_t use_auth;
00679 globus_io_handle_t io_handle;
00680 globus_ftp_cc_state_t cc_state;
00681 char serverhost[MAXHOSTNAMELEN];
00682 struct hostent server;
00683 char server_buffer[
00684 GLOBUS_FTP_CONTROL_HOSTENT_BUFFER_SIZE];
00685 globus_list_t * list_elem;
00686
00687 globus_mutex_t mutex;
00688 globus_bool_t do_close;
00689 int cb_count;
00690 globus_ftp_control_response_callback_t close_cb;
00691 void * close_cb_arg;
00692 globus_object_t * close_result;
00693 globus_ftp_control_response_t quit_response;
00694 globus_bool_t signal_deactivate;
00695 }
00696 globus_ftp_cc_handle_t;
00697
00698 struct globus_ftp_control_data_write_info_s;
00699
00700 typedef globus_result_t (*globus_ftp_control_layout_func_t)(
00701 struct globus_ftp_control_handle_s * handle,
00702 struct globus_ftp_control_data_write_info_s * data_info,
00703 globus_byte_t * buffer,
00704 globus_size_t length,
00705 globus_off_t offset,
00706 globus_bool_t eof,
00707 int stripe_count,
00708 char * enqueue_str,
00709 void * user_arg);
00710
00711 typedef globus_result_t (*globus_ftp_control_layout_verify_func_t)(
00712 char * enqueue_str);
00713
00714 typedef struct globus_i_ftp_dc_handle_s
00715 {
00716 char magic[32];
00717
00718 globus_ftp_control_dcau_t dcau;
00719 unsigned long pbsz;
00720 globus_ftp_control_protection_t protection;
00721
00722 globus_ftp_data_connection_state_t state;
00723
00724 globus_ftp_control_mode_t mode;
00725 globus_ftp_control_type_t type;
00726 globus_ftp_control_structure_t structure;
00727 int tcp_buffer_size;
00728 int form_code;
00729 globus_ftp_control_parallelism_t parallel;
00730
00731 globus_io_attr_t io_attr;
00732 char * interface_addr;
00733
00734 struct globus_i_ftp_dc_transfer_handle_s * transfer_handle;
00735 globus_list_t * transfer_list;
00736 globus_bool_t send_eof;
00737
00738 globus_ftp_control_layout_func_t layout_func;
00739 globus_ftp_control_layout_t layout;
00740 char * layout_str;
00741 void * layout_user_arg;
00742
00743 globus_bool_t initialized;
00744 globus_mutex_t mutex;
00745
00746 globus_ftp_control_callback_t close_callback;
00747 void * close_callback_arg;
00748
00749 globus_netlogger_handle_t nl_io_handle;
00750 globus_bool_t nl_io_handle_set;
00751
00752 globus_netlogger_handle_t nl_ftp_handle;
00753 globus_bool_t nl_ftp_handle_set;
00754
00755 globus_object_t * connect_error;
00756 struct globus_ftp_control_handle_s * whos_my_daddy;
00757 } globus_i_ftp_dc_handle_t;
00758
00759 typedef struct globus_ftp_control_handle_s
00760 {
00761 struct globus_i_ftp_dc_handle_s dc_handle;
00762 struct globus_ftp_cc_handle_s cc_handle;
00763 } globus_ftp_control_handle_t;
00764
00765
00811 typedef void (*globus_ftp_control_data_callback_t)(
00812 void * callback_arg,
00813 globus_ftp_control_handle_t * handle,
00814 globus_object_t * error,
00815 globus_byte_t * buffer,
00816 globus_size_t length,
00817 globus_off_t offset,
00818 globus_bool_t eof);
00819
00820 typedef struct globus_ftp_control_data_write_info_s
00821 {
00822 globus_ftp_control_data_callback_t cb;
00823 void * cb_arg;
00824 globus_handle_t callback_table_handle;
00825 } globus_ftp_control_data_write_info_t;
00826
00827 globus_result_t
00828 globus_ftp_control_layout_register_func(
00829 char * name,
00830 globus_ftp_control_layout_func_t enqueue_func,
00831 globus_ftp_control_layout_verify_func_t verify_func);
00832
00833 globus_result_t
00834 globus_X_ftp_control_local_layout(
00835 globus_ftp_control_handle_t * handle,
00836 char * enqueue_str,
00837 void * user_arg);
00838
00839 globus_result_t
00840 globus_ftp_control_local_layout(
00841 globus_ftp_control_handle_t * handle,
00842 globus_ftp_control_layout_t * layout,
00843 globus_size_t data_size);
00844
00845
00846
00847
00848 globus_result_t
00849 globus_ftp_control_set_netlogger(
00850 globus_ftp_control_handle_t * handle,
00851 globus_netlogger_handle_t * nl_handle,
00852 globus_bool_t nl_ftp_control,
00853 globus_bool_t nl_globus_io);
00854
00855 globus_result_t
00856 globus_ftp_control_data_set_interface(
00857 globus_ftp_control_handle_t * handle,
00858 const char * interface_addr);
00859
00860 globus_result_t
00861 globus_i_ftp_control_data_set_stack(
00862 globus_ftp_control_handle_t * handle,
00863 globus_xio_stack_t stack);
00864
00865 globus_result_t
00866 globus_i_ftp_control_data_get_attr(
00867 globus_ftp_control_handle_t * handle,
00868 globus_xio_attr_t * attr);
00869
00870 globus_result_t
00871 globus_i_ftp_control_client_get_attr(
00872 globus_ftp_control_handle_t * handle,
00873 globus_xio_attr_t * attr);
00874
00875 globus_result_t
00876 globus_i_ftp_control_client_set_stack(
00877 globus_ftp_control_handle_t * handle,
00878 globus_xio_stack_t stack);
00879
00880 globus_result_t
00881 globus_i_ftp_control_load_xio_drivers(
00882 char * driver_string,
00883 globus_list_t ** driver_list);
00884
00885 void
00886 globus_i_ftp_control_unload_xio_drivers(
00887 globus_list_t * driver_list);
00888
00889 globus_result_t
00890 globus_i_ftp_control_create_stack(
00891 globus_ftp_control_handle_t * handle,
00892 globus_list_t * driver_list,
00893 globus_xio_stack_t * stack);
00894
00895
00896
00897
00898
00899
00900
00901
00902
00903 globus_result_t
00904 globus_ftp_control_layout_blocked_verify(
00905 char * layout_str);
00906
00907 void *
00908 globus_ftp_control_layout_blocked_user_arg_create();
00909
00910 void
00911 globus_ftp_control_layout_blocked_user_arg_destroy(
00912 void * user_arg);
00913
00914 globus_result_t
00915 globus_ftp_control_layout_blocked(
00916 globus_ftp_control_handle_t * handle,
00917 globus_ftp_control_data_write_info_t * data_info,
00918 globus_byte_t * buffer,
00919 globus_size_t length,
00920 globus_off_t in_offset,
00921 globus_bool_t eof,
00922 int stripe_count,
00923 char * enqueue_str,
00924 void * user_arg);
00925
00926
00927
00928
00929 globus_result_t
00930 globus_ftp_control_layout_partitioned_verify(
00931 char * layout_str);
00932
00933 void *
00934 globus_ftp_control_layout_partitioned_user_arg_create(
00935 globus_size_t file_size);
00936
00937 void
00938 globus_ftp_control_layout_partitioned_user_arg_destroy(
00939 void * user_arg);
00940
00941 globus_result_t
00942 globus_ftp_control_layout_partitioned(
00943 globus_ftp_control_handle_t * handle,
00944 globus_ftp_control_data_write_info_t * data_info,
00945 globus_byte_t * buffer,
00946 globus_size_t length,
00947 globus_off_t in_offset,
00948 globus_bool_t eof,
00949 int stripe_count,
00950 char * enqueue_str,
00951 void * user_arg);
00952
00953
00954
00955
00956 globus_result_t
00957 globus_ftp_control_create_data_info(
00958 globus_ftp_control_handle_t * handle,
00959 globus_ftp_control_data_write_info_t * data_info,
00960 globus_byte_t * buffer,
00961 globus_size_t length,
00962 globus_off_t offset,
00963 globus_bool_t eof,
00964 globus_ftp_control_data_callback_t callback,
00965 void * callback_arg);
00966
00967 globus_result_t
00968 globus_ftp_control_release_data_info(
00969 globus_ftp_control_handle_t * handle,
00970 globus_ftp_control_data_write_info_t * data_info);
00971
00972 globus_result_t
00973 globus_ftp_control_data_write_stripe(
00974 globus_ftp_control_handle_t * handle,
00975 globus_byte_t * buffer,
00976 globus_size_t length,
00977 globus_off_t offset,
00978 globus_bool_t eof,
00979 int stripe_ndx,
00980 globus_ftp_control_data_callback_t callback,
00981 void * callback_arg);
00982
00983 globus_result_t
00984 globus_X_ftp_control_data_write_stripe(
00985 globus_ftp_control_handle_t * handle,
00986 globus_byte_t * buffer,
00987 globus_size_t length,
00988 globus_off_t offset,
00989 globus_bool_t eof,
00990 int stripe_ndx,
00991 globus_ftp_control_data_write_info_t * data_info);
00992
00993
00994
00995
00996
00997
00998
01004 struct globus_ftp_control_server_s;
01005
01021 typedef void (*globus_ftp_control_server_callback_t)(
01022 void * callback_arg,
01023 struct globus_ftp_control_server_s * server_handle,
01024 globus_object_t * error);
01025
01026
01027 typedef enum globus_ftp_control_server_state_n
01028 {
01029 GLOBUS_FTP_CONTROL_SERVER_LISTENING,
01030 GLOBUS_FTP_CONTROL_SERVER_DEAF
01031 }
01032 globus_ftp_control_server_state_t;
01033
01034 typedef struct globus_ftp_control_server_s
01035 {
01036 globus_io_handle_t io_handle;
01037 globus_ftp_control_server_state_t state;
01038 globus_ftp_control_server_callback_t callback;
01039 void * callback_arg;
01040 globus_list_t * list_elem;
01041 globus_mutex_t mutex;
01042 } globus_ftp_control_server_t;
01043
01044
01045
01046 typedef struct globus_ftp_control_command_str_s
01047 {
01048 globus_ftp_control_command_code_t code;
01049 char * raw_command;
01050 char * string_arg;
01051 } globus_ftp_control_command_str_t;
01052
01053
01054
01055
01056
01057 typedef struct globus_ftp_control_command_stru_s
01058 {
01059 globus_ftp_control_command_code_t code;
01060 char * raw_command;
01061 globus_ftp_control_structure_t structure;
01062 } globus_ftp_control_command_stru_t;
01063
01064 typedef struct globus_ftp_control_command_port_s
01065 {
01066 globus_ftp_control_command_code_t code;
01067 char * raw_command;
01068 globus_ftp_control_host_port_t host_port;
01069 } globus_ftp_control_command_port_t;
01070
01071 typedef struct globus_ftp_control_command_spor_s
01072 {
01073 globus_ftp_control_command_code_t code;
01074 char * raw_command;
01075 int num_args;
01076 globus_ftp_control_host_port_t * host_port;
01077 } globus_ftp_control_command_spor_t;
01078
01079 typedef struct globus_ftp_control_command_mode_s
01080 {
01081 globus_ftp_control_command_code_t code;
01082 char * raw_command;
01083 globus_ftp_control_mode_t mode;
01084 } globus_ftp_control_command_mode_t;
01085
01086 typedef struct globus_ftp_control_command_allo_s
01087 {
01088 globus_ftp_control_command_code_t code;
01089 char * raw_command;
01090 int size;
01091 int record_size;
01092 } globus_ftp_control_command_allo_t;
01093
01094 typedef struct globus_ftp_control_command_sbuf_s
01095 {
01096 globus_ftp_control_command_code_t code;
01097 char * raw_command;
01098 int buffer_size;
01099 } globus_ftp_control_command_sbuf_t;
01100
01101
01102
01103
01104
01105
01106
01107
01108
01109
01110 typedef enum globus_ftp_control_type_option_e
01111 {
01112 GLOBUS_FTP_CONTROL_TYPE_NO_OPTION,
01113 GLOBUS_FTP_CONTROL_TYPE_OPTION_N,
01114 GLOBUS_FTP_CONTROL_TYPE_OPTION_T,
01115 GLOBUS_FTP_CONTROL_TYPE_OPTION_C
01116 } globus_ftp_control_type_option_t;
01117
01118 typedef struct globus_ftp_control_command_type_s
01119 {
01120 globus_ftp_control_command_code_t code;
01121 char * raw_command;
01122 globus_ftp_control_type_t type;
01123 globus_ftp_control_type_option_t option;
01124 unsigned int bytesize;
01125 } globus_ftp_control_command_type_t;
01126
01127 typedef enum globus_ftp_control_auth_type_e
01128 {
01129 GLOBUS_FTP_CONTROL_AUTH_GSSAPI,
01130 GLOBUS_FTP_CONTROL_AUTH_UNKNOWN
01131 } globus_ftp_control_auth_type_t;
01132
01133 typedef struct globus_ftp_control_command_auth_s
01134 {
01135 globus_ftp_control_command_code_t code;
01136 char * raw_command;
01137 globus_ftp_control_auth_type_t type;
01138 } globus_ftp_control_command_auth_t;
01139
01140 typedef struct globus_ftp_control_command_opts_s
01141 {
01142 globus_ftp_control_command_code_t code;
01143 char * raw_command;
01144 char * cmd_name;
01145 char * cmd_opts;
01146 } globus_ftp_control_command_opts_t;
01147
01148
01149
01150
01151
01152 typedef globus_ftp_control_command_str_t
01153 globus_ftp_control_command_site_t;
01154
01155 typedef globus_ftp_control_command_str_t
01156 globus_ftp_control_command_acct_t;
01157
01158 typedef globus_ftp_control_command_str_t
01159 globus_ftp_control_command_cwd_t;
01160
01161 typedef globus_ftp_control_command_str_t
01162 globus_ftp_control_command_cdup_t;
01163
01164 typedef globus_ftp_control_command_str_t
01165 globus_ftp_control_command_pass_t;
01166
01167 typedef globus_ftp_control_command_str_t
01168 globus_ftp_control_command_user_t;
01169
01170 typedef globus_ftp_control_command_str_t
01171 globus_ftp_control_command_smnt_t;
01172
01173 typedef globus_ftp_control_command_str_t
01174 globus_ftp_control_command_list_t;
01175
01176 typedef globus_ftp_control_command_str_t
01177 globus_ftp_control_command_retr_t;
01178
01179 typedef globus_ftp_control_command_str_t
01180 globus_ftp_control_command_size_t;
01181
01182 typedef globus_ftp_control_command_str_t
01183 globus_ftp_control_command_stor_t;
01184
01185 typedef globus_ftp_control_command_str_t
01186 globus_ftp_control_command_appe_t;
01187
01188 typedef globus_ftp_control_command_str_t
01189 globus_ftp_control_command_rnfr_t;
01190
01191 typedef globus_ftp_control_command_str_t
01192 globus_ftp_control_command_rnto_t;
01193
01194 typedef globus_ftp_control_command_str_t
01195 globus_ftp_control_command_feat_t;
01196
01197 typedef globus_ftp_control_command_str_t
01198 globus_ftp_control_command_dele_t;
01199
01200 typedef globus_ftp_control_command_str_t
01201 globus_ftp_control_command_rmd_t;
01202
01203 typedef globus_ftp_control_command_str_t
01204 globus_ftp_control_command_mkd_t;
01205
01206 typedef globus_ftp_control_command_str_t
01207 globus_ftp_control_command_nlst_t;
01208
01209 typedef globus_ftp_control_command_str_t
01210 globus_ftp_control_command_help_t;
01211
01212 typedef globus_ftp_control_command_str_t
01213 globus_ftp_control_command_stou_t;
01214
01215 typedef globus_ftp_control_command_str_t
01216 globus_ftp_control_command_rest_t;
01217
01218 typedef globus_ftp_control_command_str_t
01219 globus_ftp_control_command_eret_t;
01220
01221 typedef globus_ftp_control_command_str_t
01222 globus_ftp_control_command_esto_t;
01223
01224
01225
01226
01227 typedef globus_ftp_control_command_str_t
01228 globus_ftp_control_command_pasv_t;
01229
01230 typedef globus_ftp_control_command_str_t
01231 globus_ftp_control_command_spas_t;
01232
01233 typedef globus_ftp_control_command_str_t
01234 globus_ftp_control_command_stat_t;
01235
01236 typedef globus_ftp_control_command_str_t
01237 globus_ftp_control_command_noop_t;
01238
01239 typedef globus_ftp_control_command_str_t
01240 globus_ftp_control_command_syst_t;
01241
01242 typedef globus_ftp_control_command_str_t
01243 globus_ftp_control_command_quit_t;
01244
01245 typedef globus_ftp_control_command_str_t
01246 globus_ftp_control_command_rein_t;
01247
01248 typedef globus_ftp_control_command_str_t
01249 globus_ftp_control_command_abor_t;
01250
01251 typedef globus_ftp_control_command_str_t
01252 globus_ftp_control_command_pwd_t;
01253
01254 typedef globus_ftp_control_command_str_t
01255 globus_ftp_control_command_adat_t;
01256
01257
01258
01259
01260 typedef union globus_ftp_control_command_u
01261 {
01262 globus_ftp_control_command_code_t code;
01263 globus_ftp_control_command_site_t site;
01264 globus_ftp_control_command_sbuf_t sbuf;
01265 globus_ftp_control_command_type_t type;
01266 globus_ftp_control_command_rest_t rest;
01267 globus_ftp_control_command_allo_t allo;
01268 globus_ftp_control_command_eret_t eret;
01269 globus_ftp_control_command_esto_t esto;
01270 globus_ftp_control_command_mode_t mode;
01271 globus_ftp_control_command_port_t port;
01272 globus_ftp_control_command_spor_t spor;
01273 globus_ftp_control_command_stru_t stru;
01274 globus_ftp_control_command_auth_t auth;
01275
01276 globus_ftp_control_command_adat_t adat;
01277 globus_ftp_control_command_acct_t acct;
01278 globus_ftp_control_command_cwd_t cwd;
01279 globus_ftp_control_command_cdup_t cdup;
01280 globus_ftp_control_command_pass_t pass;
01281 globus_ftp_control_command_user_t user;
01282 globus_ftp_control_command_smnt_t smnt;
01283 globus_ftp_control_command_opts_t opts;
01284 globus_ftp_control_command_list_t list;
01285 globus_ftp_control_command_retr_t retr;
01286 globus_ftp_control_command_size_t size;
01287 globus_ftp_control_command_stor_t stor;
01288 globus_ftp_control_command_appe_t appe;
01289 globus_ftp_control_command_rnfr_t rnfr;
01290 globus_ftp_control_command_rnto_t rnto;
01291 globus_ftp_control_command_dele_t dele;
01292 globus_ftp_control_command_feat_t feat;
01293 globus_ftp_control_command_rmd_t rmd;
01294 globus_ftp_control_command_mkd_t mkd;
01295 globus_ftp_control_command_nlst_t nlst;
01296 globus_ftp_control_command_help_t help;
01297
01298 globus_ftp_control_command_pasv_t pasv;
01299 globus_ftp_control_command_spas_t spas;
01300 globus_ftp_control_command_stat_t stat;
01301 globus_ftp_control_command_noop_t noop;
01302 globus_ftp_control_command_syst_t syst;
01303 globus_ftp_control_command_stou_t stou;
01304 globus_ftp_control_command_quit_t quit;
01305 globus_ftp_control_command_rein_t rein;
01306 globus_ftp_control_command_abor_t abor;
01307 globus_ftp_control_command_pwd_t pwd;
01308
01309 globus_ftp_control_command_str_t base;
01310 } globus_ftp_control_command_t;
01311
01312
01313 typedef struct globus_ftp_data_server_s
01314 {
01315 int bogus;
01316 } globus_ftp_data_server_t;
01317
01323 globus_result_t
01324 globus_ftp_control_auth_info_init(
01325 globus_ftp_control_auth_info_t * auth_info,
01326 gss_cred_id_t credential_handle,
01327 globus_bool_t encrypt,
01328 char * user,
01329 char * password,
01330 char * account,
01331 char * subject);
01332
01333 int
01334 globus_ftp_control_auth_info_compare(
01335 globus_ftp_control_auth_info_t * auth_info_1,
01336 globus_ftp_control_auth_info_t * auth_info_2);
01337
01338 globus_result_t
01339 globus_ftp_control_handle_init(
01340 globus_ftp_control_handle_t * handle);
01341
01342 globus_result_t
01343 globus_ftp_control_handle_destroy(
01344 globus_ftp_control_handle_t * handle);
01345
01346 globus_result_t
01347 globus_ftp_control_server_handle_init(
01348 globus_ftp_control_server_t * handle);
01349
01350 globus_result_t
01351 globus_ftp_control_server_handle_destroy(
01352 globus_ftp_control_server_t * handle);
01353
01354 globus_result_t
01355 globus_ftp_control_response_destroy(
01356 globus_ftp_control_response_t * response);
01357
01358 globus_result_t
01359 globus_ftp_control_response_copy(
01360 globus_ftp_control_response_t * src,
01361 globus_ftp_control_response_t * dest);
01362
01363
01364 globus_result_t
01365 globus_ftp_control_connect(
01366 globus_ftp_control_handle_t * handle,
01367 char * host,
01368 unsigned short port,
01369 globus_ftp_control_response_callback_t callback,
01370 void * callback_arg);
01371
01372
01373 globus_result_t
01374 globus_ftp_control_use_tls(
01375 globus_ftp_control_handle_t * handle,
01376 globus_ftp_control_auth_info_t * auth_info);
01377
01378 globus_result_t
01379 globus_ftp_control_authenticate(
01380 globus_ftp_control_handle_t * handle,
01381 globus_ftp_control_auth_info_t * auth_info,
01382 globus_bool_t use_auth,
01383 globus_ftp_control_response_callback_t callback,
01384 void * callback_arg);
01385
01386 globus_result_t
01387 globus_ftp_control_authenticate_ex(
01388 globus_ftp_control_handle_t * handle,
01389 globus_ftp_control_auth_info_t * auth_info,
01390 globus_bool_t use_auth,
01391 globus_ftp_control_response_callback_t callback,
01392 void * callback_arg);
01393
01394 globus_result_t
01395 globus_ftp_control_abort(
01396 globus_ftp_control_handle_t * handle,
01397 globus_ftp_control_response_callback_t callback,
01398 void * callback_arg);
01399
01400 globus_result_t
01401 globus_ftp_control_quit(
01402 globus_ftp_control_handle_t * handle,
01403 globus_ftp_control_response_callback_t callback,
01404 void * callback_arg);
01405
01406 globus_result_t
01407 globus_ftp_control_force_close(
01408 globus_ftp_control_handle_t * handle,
01409 globus_ftp_control_response_callback_t callback,
01410 void * callback_arg);
01411
01412
01413 globus_result_t
01414 globus_ftp_control_send_command(
01415 globus_ftp_control_handle_t * handle,
01416 const char * cmdspec,
01417 globus_ftp_control_response_callback_t callback,
01418 void * callback_arg,
01419 ...);
01420
01421 globus_result_t
01422 globus_ftp_control_local_pbsz(
01423 globus_ftp_control_handle_t * handle,
01424 unsigned long bufsize);
01425
01426 globus_result_t
01427 globus_ftp_control_get_pbsz(
01428 globus_ftp_control_handle_t * handle,
01429 unsigned long * bufsize);
01430
01431
01432 globus_result_t
01433 globus_ftp_control_server_listen(
01434 globus_ftp_control_server_t * handle,
01435 unsigned short * port,
01436 globus_ftp_control_server_callback_t callback,
01437 void * callback_arg);
01438
01439 globus_result_t
01440 globus_ftp_control_server_listen_ex(
01441 globus_ftp_control_server_t * handle,
01442 globus_io_attr_t * attr,
01443 unsigned short * port,
01444 globus_ftp_control_server_callback_t callback,
01445 void * callback_arg);
01446
01447 globus_result_t
01448 globus_ftp_control_server_stop(
01449 globus_ftp_control_server_t * listener,
01450 globus_ftp_control_server_callback_t callback,
01451 void * callback_arg);
01452
01453 globus_result_t
01454 globus_ftp_control_server_accept(
01455 globus_ftp_control_server_t * listener,
01456 globus_ftp_control_handle_t * handle,
01457 globus_ftp_control_callback_t callback,
01458 void * callback_arg);
01459
01460 globus_result_t
01461 globus_ftp_control_server_authenticate(
01462 globus_ftp_control_handle_t * handle,
01463 globus_ftp_control_auth_requirements_t auth_requirements,
01464 globus_ftp_control_auth_callback_t callback,
01465 void * callback_arg);
01466
01467 globus_result_t
01468 globus_ftp_control_read_commands(
01469 globus_ftp_control_handle_t * handle,
01470 globus_ftp_control_command_callback_t callback,
01471 void * callback_arg);
01472
01473 globus_result_t
01474 globus_ftp_control_send_response(
01475 globus_ftp_control_handle_t * handle,
01476 const char * respspec,
01477 globus_ftp_control_callback_t callback,
01478 void * callback_arg,
01479 ...);
01480
01481 globus_result_t
01482 globus_ftp_control_close(
01483 globus_ftp_control_server_t * listener,
01484 globus_ftp_control_server_callback_t callback,
01485 void * callback_arg);
01486
01487 globus_result_t
01488 globus_ftp_data_close(
01489 globus_ftp_data_server_t * listener,
01490 globus_ftp_control_server_callback_t callback,
01491 void * callback_arg);
01492
01493 int
01494 globus_i_ftp_queue_size(
01495 globus_ftp_control_handle_t * handle,
01496 int stripe_ndx);
01497
01498
01499 globus_result_t
01500 globus_ftp_control_command_copy(
01501 globus_ftp_control_command_t * dest,
01502 globus_ftp_control_command_t * src);
01503
01504 globus_result_t
01505 globus_ftp_control_command_init(
01506 globus_ftp_control_command_t * command,
01507 char * raw_command,
01508 globus_ftp_control_auth_info_t * auth_info);
01509
01510 globus_result_t
01511 globus_ftp_control_command_destroy(
01512 globus_ftp_control_command_t * command);
01513
01519 globus_result_t
01520 globus_i_ftp_control_data_cc_init(
01521 globus_ftp_control_handle_t * control_handle);
01522
01523 globus_result_t
01524 globus_i_ftp_control_data_cc_destroy(
01525 globus_ftp_control_handle_t * control_handle);
01526
01527 globus_result_t
01528 globus_ftp_control_data_force_close(
01529 globus_ftp_control_handle_t * control_handle,
01530 globus_ftp_control_callback_t destroy_callback,
01531 void * destroy_callback_arg);
01532
01533 globus_result_t
01534 globus_ftp_control_local_send_eof(
01535 globus_ftp_control_handle_t * handle,
01536 globus_bool_t send_eof);
01537
01538 globus_result_t
01539 globus_ftp_control_data_send_eof(
01540 globus_ftp_control_handle_t * handle,
01541 int count[],
01542 int array_size,
01543 globus_bool_t eof_message,
01544 globus_ftp_control_callback_t cb,
01545 void * user_arg);
01546
01547 globus_result_t
01548 globus_ftp_control_get_stripe_count(
01549 globus_ftp_control_handle_t * handle,
01550 int * stripe_count);
01551
01552 globus_result_t
01553 globus_ftp_control_data_connect_read(
01554 globus_ftp_control_handle_t * handle,
01555 globus_ftp_control_data_connect_callback_t callback,
01556 void * user_arg);
01557
01558 globus_result_t
01559 globus_ftp_control_data_connect_write(
01560 globus_ftp_control_handle_t * handle,
01561 globus_ftp_control_data_connect_callback_t callback,
01562 void * user_arg);
01563
01564 globus_result_t
01565 globus_ftp_control_data_add_channels(
01566 globus_ftp_control_handle_t * handle,
01567 unsigned int num_channels,
01568 unsigned int stripe);
01569
01570 globus_result_t
01571 globus_ftp_control_data_remove_channels(
01572 globus_ftp_control_handle_t * handle,
01573 unsigned int num_channels,
01574 unsigned int stripe);
01575
01576 globus_result_t
01577 globus_ftp_control_data_query_channels(
01578 globus_ftp_control_handle_t * handle,
01579 unsigned int * num_channels,
01580 unsigned int stripe);
01581
01582 globus_result_t
01583 globus_ftp_control_data_get_total_data_channels(
01584 globus_ftp_control_handle_t * handle,
01585 unsigned int * num_channels,
01586 unsigned int stripe_ndx);
01587
01588 globus_result_t
01589 globus_ftp_control_data_get_remote_hosts(
01590 globus_ftp_control_handle_t * handle,
01591 globus_ftp_control_host_port_t * address,
01592 int * addr_count);
01593
01594 globus_result_t
01595 globus_ftp_control_get_parallelism(
01596 globus_ftp_control_handle_t * handle,
01597 globus_ftp_control_parallelism_t * parallelism);
01598
01599 globus_result_t
01600 globus_ftp_control_local_parallelism(
01601 globus_ftp_control_handle_t * handle,
01602 globus_ftp_control_parallelism_t * parallelism);
01603
01604 globus_result_t
01605 globus_ftp_control_local_pasv(
01606 globus_ftp_control_handle_t * handle,
01607 globus_ftp_control_host_port_t * address);
01608
01609 globus_result_t
01610 globus_ftp_control_local_spas(
01611 globus_ftp_control_handle_t * handle,
01612 globus_ftp_control_host_port_t addresses[],
01613 unsigned int num_addresses);
01614
01615 globus_result_t
01616 globus_ftp_control_local_port(
01617 globus_ftp_control_handle_t * handle,
01618 globus_ftp_control_host_port_t * address);
01619
01620 globus_result_t
01621 globus_ftp_control_local_spor(
01622 globus_ftp_control_handle_t * handle,
01623 globus_ftp_control_host_port_t addresses[],
01624 unsigned int num_addresses);
01625
01626 globus_result_t
01627 globus_ftp_control_get_spor(
01628 globus_ftp_control_handle_t * handle,
01629 globus_ftp_control_host_port_t addresses[],
01630 unsigned int * num_addresses);
01631
01632 globus_result_t
01633 globus_ftp_control_local_type(
01634 globus_ftp_control_handle_t * handle,
01635 globus_ftp_control_type_t type,
01636 int form_code);
01637
01638 globus_result_t
01639 globus_ftp_control_local_tcp_buffer(
01640 globus_ftp_control_handle_t * handle,
01641 globus_ftp_control_tcpbuffer_t * tcp_buffer);
01642
01643 globus_result_t
01644 globus_ftp_control_local_mode(
01645 globus_ftp_control_handle_t * handle,
01646 globus_ftp_control_mode_t mode);
01647
01648 globus_result_t
01649 globus_ftp_control_get_mode(
01650 globus_ftp_control_handle_t * handle,
01651 globus_ftp_control_mode_t * mode);
01652
01653 globus_result_t
01654 globus_ftp_control_get_type(
01655 globus_ftp_control_handle_t * handle,
01656 globus_ftp_control_type_t * type);
01657
01658 globus_result_t
01659 globus_ftp_control_local_dcau(
01660 globus_ftp_control_handle_t * handle,
01661 const globus_ftp_control_dcau_t * dcau,
01662 gss_cred_id_t delegated_credential_handle);
01663
01664 globus_result_t
01665 globus_ftp_control_get_dcau(
01666 globus_ftp_control_handle_t * handle,
01667 globus_ftp_control_dcau_t * dcau);
01668
01669 globus_result_t
01670 globus_ftp_control_local_prot(
01671 globus_ftp_control_handle_t * handle,
01672 globus_ftp_control_protection_t protection);
01673
01674 globus_result_t
01675 globus_ftp_control_get_prot(
01676 globus_ftp_control_handle_t * handle,
01677 globus_ftp_control_protection_t * protection);
01678
01679 globus_result_t
01680 globus_ftp_control_local_stru(
01681 globus_ftp_control_handle_t * handle,
01682 globus_ftp_control_structure_t structure);
01683
01684 globus_result_t
01685 globus_ftp_control_data_write(
01686 globus_ftp_control_handle_t * handle,
01687 globus_byte_t * buffer,
01688 globus_size_t length,
01689 globus_off_t offset,
01690 globus_bool_t eof,
01691 globus_ftp_control_data_callback_t callback,
01692 void * callback_arg);
01693
01694 globus_result_t
01695 globus_ftp_control_data_read(
01696 globus_ftp_control_handle_t * handle,
01697 globus_byte_t * buffer,
01698 globus_size_t max_length,
01699 globus_ftp_control_data_callback_t callback,
01700 void * callback_arg);
01701
01702 globus_result_t
01703 globus_ftp_control_data_read_all(
01704 globus_ftp_control_handle_t * handle,
01705 globus_byte_t * buffer,
01706 globus_size_t length,
01707 globus_ftp_control_data_callback_t callback,
01708 void * callback_arg);
01709
01710 globus_result_t
01711 globus_ftp_control_set_force_order(
01712 globus_ftp_control_handle_t * handle,
01713 globus_bool_t order_data,
01714 globus_off_t starting_offset);
01715
01716
01717
01718
01719 globus_result_t
01720 globus_ftp_control_ipv6_allow(
01721 globus_ftp_control_handle_t * handle,
01722 globus_bool_t allow);
01723
01724
01725
01726
01727 globus_result_t
01728 globus_i_ftp_parallelism_copy(
01729 globus_ftp_control_parallelism_t * dest_parallelism,
01730 globus_ftp_control_parallelism_t * src_parallelism);
01731
01732 int
01733 globus_i_ftp_parallelism_get_size(
01734 globus_ftp_control_parallelism_t * parallelism);
01735
01736 int
01737 globus_i_ftp_parallelism_get_min_size(
01738 globus_ftp_control_parallelism_t * parallelism);
01739
01740 int
01741 globus_i_ftp_parallelism_get_max_size(
01742 globus_ftp_control_parallelism_t * parallelism);
01743
01744 void
01745 globus_ftp_control_host_port_init(
01746 globus_ftp_control_host_port_t * host_port,
01747 char * host,
01748 unsigned short port);
01749
01750 void
01751 globus_ftp_control_host_port_destroy(
01752 globus_ftp_control_host_port_t * host_port);
01753
01754 void
01755 globus_ftp_control_host_port_get_host(
01756 globus_ftp_control_host_port_t * host_port,
01757 char * host);
01758
01759 unsigned short
01760 globus_ftp_control_host_port_get_port(
01761 globus_ftp_control_host_port_t * host_port);
01762
01763 void
01764 globus_ftp_control_host_port_copy(
01765 globus_ftp_control_host_port_t * dest,
01766 globus_ftp_control_host_port_t * src);
01767
01768 #define globus_i_ftp_control_client_get_connection_info \
01769 globus_ftp_control_client_get_connection_info
01770 globus_result_t
01771 globus_ftp_control_client_get_connection_info(
01772 globus_ftp_control_handle_t * handle,
01773 int localhost[4],
01774 unsigned short * localport,
01775 int remotehost[4],
01776 unsigned short * remoteport);
01777
01778 globus_result_t
01779 globus_ftp_control_client_get_connection_info_ex(
01780 globus_ftp_control_handle_t * handle,
01781 globus_ftp_control_host_port_t * local_info,
01782 globus_ftp_control_host_port_t * remote_info);
01783
01784 globus_result_t
01785 globus_ftp_control_data_get_socket_buf(
01786 globus_ftp_control_handle_t * handle,
01787 int * rcvbuf,
01788 int * sndbuf);
01789
01790 globus_result_t
01791 globus_ftp_control_data_get_retransmit_count(
01792 globus_ftp_control_handle_t * handle,
01793 char ** retransmit_count);
01794
01795 #ifdef __cplusplus
01796 }
01797 #endif
01798
01799
01800 #endif