globus_ftp_control  8.12
globus_ftp_control.h
Go to the documentation of this file.
1 
7 #ifndef GLOBUS_INCLUDE_FTP_CONTROL_H
8 #define GLOBUS_INCLUDE_FTP_CONTROL_H 1
9 
10 #include "globus_common.h"
11 #include "globus_error_string.h"
12 #include "globus_io.h"
13 #include "globus_gss_assist.h"
14 #include "globus_handle_table.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
25 #endif
26 
64 {
76 
84 {
96 
104 {
114 
119 {
121  char * subject;
123 
132 {
133  GLOBUS_FTP_CONTROL_STRIPING_NONE,
134  GLOBUS_FTP_CONTROL_STRIPING_PARTITIONED,
135  GLOBUS_FTP_CONTROL_STRIPING_BLOCKED_ROUND_ROBIN
137 
142 {
144  globus_size_t block_size;
146 
147 typedef struct globus_ftp_control_partitioned_s
148 {
150  globus_size_t size;
151 } globus_ftp_control_partitioned_t;
152 
157 {
161 
169 typedef enum
170 {
180 
184 typedef enum
185 {
186  GLOBUS_FTP_CONTROL_DELAYED_SINGLE_PASSIVE = 'S',
187  GLOBUS_FTP_CONTROL_DELAYED_STRIPED_PASSIVE = 'M',
188  GLOBUS_FTP_CONTROL_NORMAL_PASSIVE = 'N'
190 
195 {
198  globus_ftp_control_partitioned_t partitioned;
199  /*
200  * No data required for:
201  * GLOBUS_FTP_CONTROL_STRIPING_NONE
202  * GLOBUS_FTP_CONTROL_STRIPING_PARTITIONED
203  */
205 
210 {
211  GLOBUS_FTP_CONTROL_STRUCTURE_NONE,
212  GLOBUS_FTP_CONTROL_STRUCTURE_FILE,
213  GLOBUS_FTP_CONTROL_STRUCTURE_PAGE,
214  GLOBUS_FTP_CONTROL_STRUCTURE_RECORD
216 
221 {
222  GLOBUS_FTP_CONTROL_PARALLELISM_NONE,
223  GLOBUS_FTP_CONTROL_PARALLELISM_FIXED
225 
226 /*
227  * The base class for all parallel types. Subtypes
228  * must first define all types in this structure.
229  */
230 typedef struct globus_i_ftp_parallelism_base_s
231 {
233  globus_size_t size;
234 } globus_i_ftp_parallelism_base_t;
235 
236 typedef struct globus_ftp_parallelism_fixed_s
237 {
239  globus_size_t size;
240 } globus_ftp_parallelism_fixed_t;
241 
246 {
248  globus_i_ftp_parallelism_base_t base;
249  globus_ftp_parallelism_fixed_t fixed;
251 
252 typedef struct globus_ftp_control_host_port_s
253 {
254  int host[16];
255  unsigned short port;
256 
257  /*
258  * if ipv6 is not enabled, the following param will be assumed to be 4
259  * when passed as an in-parameter. otherwise it must indicate the correct
260  * len.
261  *
262  * for out-parameters, the following will _always_ be 4 unless ipv6 is
263  * allowed. then it will be either 4 or 16
264  */
265  int hostlen;
266 } globus_ftp_control_host_port_t;
267 
293 #define GLOBUS_FTP_CONTROL_MODULE (&globus_i_ftp_control_module)
294 
295 extern globus_module_descriptor_t globus_i_ftp_control_module;
296 
297 #define _FCSL(s) globus_common_i18n_get_string(GLOBUS_FTP_CONTROL_MODULE,s)
298 /*
299  * Module Specific Data Types
300  */
301 typedef enum globus_ftp_control_response_class_e
302 {
303  GLOBUS_FTP_UNKNOWN_REPLY,
304  GLOBUS_FTP_POSITIVE_PRELIMINARY_REPLY,
305  GLOBUS_FTP_POSITIVE_COMPLETION_REPLY,
306  GLOBUS_FTP_POSITIVE_INTERMEDIATE_REPLY,
307  GLOBUS_FTP_TRANSIENT_NEGATIVE_COMPLETION_REPLY,
308  GLOBUS_FTP_PERMANENT_NEGATIVE_COMPLETION_REPLY
309 } globus_ftp_control_response_class_t;
310 
311 
312 typedef struct globus_ftp_control_response_s
313 {
314  int code;
315  globus_ftp_control_response_class_t response_class;
316  globus_byte_t * response_buffer;
317  globus_size_t response_length;
318  globus_size_t response_buffer_size;
319 } globus_ftp_control_response_t;
320 
323 {
326 
329 
333 
337 typedef struct
338 {
340 }
342 
346 typedef struct
347 {
349  int size;
350 }
352 
357 {
359  unsigned int initial_size;
360  unsigned int minimum_size;
361  unsigned int maximum_size;
363 
368 {
370  globus_ftp_control_tcpbuffer_default_t default_tcpbuffer;
374 
375 /*
376  * each strip can have multiple parallel connections to
377  * the same host
378  */
379 
380 typedef enum globus_ftp_data_connection_state_e
381 {
382  GLOBUS_FTP_DATA_STATE_NONE, /* dc_handle has no references */
383  GLOBUS_FTP_DATA_STATE_PASV, /* in local pasv mode */
384  GLOBUS_FTP_DATA_STATE_PORT, /* in local port mode */
385  GLOBUS_FTP_DATA_STATE_SPOR, /* in local spor mode */
386  GLOBUS_FTP_DATA_STATE_CONNECT_READ, /* connected for reading */
387  GLOBUS_FTP_DATA_STATE_CONNECT_WRITE, /* connected for writing */
388  GLOBUS_FTP_DATA_STATE_CLOSING, /* closing all connections */
389  GLOBUS_FTP_DATA_STATE_EOF, /* user has received eof */
390  GLOBUS_FTP_DATA_STATE_SEND_EOF /* not used for state at all */
391 } globus_ftp_data_connection_state_t;
392 
393 #define GLOBUS_FTP_CONTROL_READ_BUFFER_SIZE 1000
394 #define GLOBUS_FTP_CONTROL_HOSTENT_BUFFER_SIZE 8192
395 
396 typedef enum
397 {
398  GLOBUS_FTP_CONTROL_UNCONNECTED,
399  GLOBUS_FTP_CONTROL_CONNECTING,
400  GLOBUS_FTP_CONTROL_CONNECTED,
401  GLOBUS_FTP_CONTROL_CLOSING
402 }
403 globus_ftp_cc_state_t;
404 
405 struct globus_ftp_control_handle_s;
406 struct globus_i_ftp_dc_transfer_handle_t;
407 
408 union globus_ftp_control_command_u;
409 
410 typedef enum globus_ftp_control_command_code_e
411 {
412  GLOBUS_FTP_CONTROL_COMMAND_OPTS,
413  GLOBUS_FTP_CONTROL_COMMAND_AUTH,
414  GLOBUS_FTP_CONTROL_COMMAND_ADAT,
415  GLOBUS_FTP_CONTROL_COMMAND_SPAS,
416  GLOBUS_FTP_CONTROL_COMMAND_SPOR,
417  GLOBUS_FTP_CONTROL_COMMAND_PORT,
418  GLOBUS_FTP_CONTROL_COMMAND_PASV,
419  GLOBUS_FTP_CONTROL_COMMAND_SITE,
420  GLOBUS_FTP_CONTROL_COMMAND_TYPE,
421  GLOBUS_FTP_CONTROL_COMMAND_DELE,
422  GLOBUS_FTP_CONTROL_COMMAND_FEAT,
423  GLOBUS_FTP_CONTROL_COMMAND_ERET,
424  GLOBUS_FTP_CONTROL_COMMAND_ESTO,
425  GLOBUS_FTP_CONTROL_COMMAND_RMD,
426  GLOBUS_FTP_CONTROL_COMMAND_MKD,
427  GLOBUS_FTP_CONTROL_COMMAND_PWD,
428  GLOBUS_FTP_CONTROL_COMMAND_CWD,
429  GLOBUS_FTP_CONTROL_COMMAND_CDUP,
430  GLOBUS_FTP_CONTROL_COMMAND_NLST,
431  GLOBUS_FTP_CONTROL_COMMAND_HELP,
432  GLOBUS_FTP_CONTROL_COMMAND_STAT,
433  GLOBUS_FTP_CONTROL_COMMAND_NOOP,
434  GLOBUS_FTP_CONTROL_COMMAND_SYST,
435  GLOBUS_FTP_CONTROL_COMMAND_STOU,
436  GLOBUS_FTP_CONTROL_COMMAND_QUIT,
437  GLOBUS_FTP_CONTROL_COMMAND_REIN,
438  GLOBUS_FTP_CONTROL_COMMAND_ABOR,
439  GLOBUS_FTP_CONTROL_COMMAND_ALLO,
440  GLOBUS_FTP_CONTROL_COMMAND_MODE,
441  GLOBUS_FTP_CONTROL_COMMAND_STRU,
442  GLOBUS_FTP_CONTROL_COMMAND_ACCT,
443  GLOBUS_FTP_CONTROL_COMMAND_PASS,
444  GLOBUS_FTP_CONTROL_COMMAND_USER,
445  GLOBUS_FTP_CONTROL_COMMAND_SMNT,
446  GLOBUS_FTP_CONTROL_COMMAND_LIST,
447  GLOBUS_FTP_CONTROL_COMMAND_RETR,
448  GLOBUS_FTP_CONTROL_COMMAND_REST,
449  GLOBUS_FTP_CONTROL_COMMAND_SBUF,
450  GLOBUS_FTP_CONTROL_COMMAND_SIZE,
451  GLOBUS_FTP_CONTROL_COMMAND_STOR,
452  GLOBUS_FTP_CONTROL_COMMAND_APPE,
453  GLOBUS_FTP_CONTROL_COMMAND_RNFR,
454  GLOBUS_FTP_CONTROL_COMMAND_RNTO,
455  GLOBUS_FTP_CONTROL_COMMAND_LANG,
456  GLOBUS_FTP_CONTROL_COMMAND_UNKNOWN
457 } globus_ftp_control_command_code_t;
458 
468 {
469  globus_bool_t authenticated;
470  globus_ftp_control_command_code_t prev_cmd;
471  char * auth_gssapi_subject;
472  gss_ctx_id_t auth_gssapi_context;
473  gss_cred_id_t credential_handle;
474  globus_bool_t locally_acquired_credential;
475  gss_name_t target_name;
476  OM_uint32 req_flags;
477  char * user;
478  char * password;
479  char * account;
480  gss_cred_id_t delegated_credential_handle;
481  globus_bool_t encrypt;
482 }
484 
485 
486 
511  void * callback_arg,
512  struct globus_ftp_control_handle_s * handle,
513  globus_object_t * error,
514  globus_ftp_control_response_t * ftp_response);
515 
531  void * callback_arg,
532  struct globus_ftp_control_handle_s * handle,
533  globus_object_t * error);
534 
535 
536 typedef void
537 (*globus_ftp_control_data_connect_callback_t)(
538  void * callback_arg,
539  struct globus_ftp_control_handle_s * handle,
540  unsigned int stripe_ndx,
541  globus_bool_t reused,
542  globus_object_t * error);
543 
572  void * callback_arg,
573  struct globus_ftp_control_handle_s * handle,
574  globus_object_t * error,
575  union globus_ftp_control_command_u * command);
576 
600 typedef void
602  void * callback_arg,
603  struct globus_ftp_control_handle_s * handle,
604  globus_object_t * error,
605  globus_ftp_control_auth_info_t * auth_result);
606 
618 
619 #define GLOBUS_FTP_CONTROL_AUTH_REQ_NONE 1
620 #define GLOBUS_FTP_CONTROL_AUTH_REQ_GSSAPI 2
621 #define GLOBUS_FTP_CONTROL_AUTH_REQ_USER 4
622 #define GLOBUS_FTP_CONTROL_AUTH_REQ_PASS 8
623 #define GLOBUS_FTP_CONTROL_AUTH_REQ_ACCT 16
624 #define GLOBUS_FTP_CONTROL_AUTH_REQ_TLS 32
625 
626 typedef struct globus_ftp_control_rw_queue_element_s
627 {
629  globus_ftp_control_callback_t send_response_cb;
630  void * arg;
631  globus_byte_t * write_buf;
632  int write_flags;
633  globus_io_write_callback_t write_callback;
634  globus_io_read_callback_t read_callback;
635  globus_bool_t expect_response;
636 }
637 globus_ftp_control_rw_queue_element_t;
638 
639 typedef struct globus_ftp_cc_handle_s
640 {
641  globus_io_attr_t io_attr;
642  globus_netlogger_handle_t nl_handle;
643  globus_bool_t nl_handle_set;
644 
645  globus_fifo_t readers;
646  globus_fifo_t writers;
648  void * command_cb_arg;
649 
650  /* callback and arg for accept */
652  void * accept_cb_arg;
653 
655  void * auth_cb_arg;
656  globus_ftp_control_auth_requirements_t auth_requirements;
657  globus_ftp_control_response_t response;
658  globus_byte_t * read_buffer;
659  globus_size_t read_buffer_size;
660  globus_size_t bytes_read;
662  globus_bool_t use_auth;
663  globus_io_handle_t io_handle;
664  globus_ftp_cc_state_t cc_state;
665  char serverhost[MAXHOSTNAMELEN];
666  struct hostent server;
667  char server_buffer[
668  GLOBUS_FTP_CONTROL_HOSTENT_BUFFER_SIZE];
669  globus_list_t * list_elem;
670 
671  globus_mutex_t mutex;
672  globus_bool_t do_close;
673  int cb_count;
675  void * close_cb_arg;
676  globus_object_t * close_result;
677  globus_ftp_control_response_t quit_response;
678  globus_bool_t signal_deactivate;
679 }
680 globus_ftp_cc_handle_t;
681 
682 struct globus_ftp_control_data_write_info_s;
683 
684 typedef globus_result_t (*globus_ftp_control_layout_func_t)(
685  struct globus_ftp_control_handle_s * handle,
686  struct globus_ftp_control_data_write_info_s * data_info,
687  globus_byte_t * buffer,
688  globus_size_t length,
689  globus_off_t offset,
690  globus_bool_t eof,
691  int stripe_count,
692  char * enqueue_str,
693  void * user_arg);
694 
695 typedef globus_result_t (*globus_ftp_control_layout_verify_func_t)(
696  char * enqueue_str);
697 
698 typedef struct globus_i_ftp_dc_handle_s
699 {
700  char magic[32];
701 
703  unsigned long pbsz;
705 
706  globus_ftp_data_connection_state_t state;
707 
711  int tcp_buffer_size;
712  int form_code;
714 
715  globus_io_attr_t io_attr;
716  char * interface_addr;
717 
718  struct globus_i_ftp_dc_transfer_handle_s * transfer_handle;
719  globus_list_t * transfer_list;
720  globus_bool_t send_eof;
721 
722  globus_ftp_control_layout_func_t layout_func;
724  char * layout_str;
725  void * layout_user_arg;
726 
727  globus_bool_t initialized;
728  globus_mutex_t mutex;
729 
730  globus_ftp_control_callback_t close_callback;
731  void * close_callback_arg;
732 
733  globus_netlogger_handle_t nl_io_handle;
734  globus_bool_t nl_io_handle_set;
735 
736  globus_netlogger_handle_t nl_ftp_handle;
737  globus_bool_t nl_ftp_handle_set;
738 
739  globus_object_t * connect_error;
740  struct globus_ftp_control_handle_s * whos_my_daddy;
741 } globus_i_ftp_dc_handle_t;
742 
743 typedef struct globus_ftp_control_handle_s
744 {
745  struct globus_i_ftp_dc_handle_s dc_handle;
746  struct globus_ftp_cc_handle_s cc_handle;
747 } globus_ftp_control_handle_t;
748 
749 
796  void * callback_arg,
797  globus_ftp_control_handle_t * handle,
798  globus_object_t * error,
799  globus_byte_t * buffer,
800  globus_size_t length,
801  globus_off_t offset,
802  globus_bool_t eof);
803 
804 typedef struct globus_ftp_control_data_write_info_s
805 {
807  void * cb_arg;
808  globus_handle_t callback_table_handle;
809 } globus_ftp_control_data_write_info_t;
810 
811 globus_result_t
812 globus_ftp_control_layout_register_func(
813  char * name,
814  globus_ftp_control_layout_func_t enqueue_func,
815  globus_ftp_control_layout_verify_func_t verify_func);
816 
817 globus_result_t
818 globus_X_ftp_control_local_layout(
819  globus_ftp_control_handle_t * handle,
820  char * enqueue_str,
821  void * user_arg);
822 
823 globus_result_t
825  globus_ftp_control_handle_t * handle,
827  globus_size_t data_size);
828 
829 /*
830  * NET LOGGER STUFF
831  */
832 globus_result_t
833 globus_ftp_control_set_netlogger(
834  globus_ftp_control_handle_t * handle,
835  globus_netlogger_handle_t * nl_handle,
836  globus_bool_t nl_ftp_control,
837  globus_bool_t nl_globus_io);
838 
839 globus_result_t
841  globus_ftp_control_handle_t * handle,
842  const char * interface_addr);
843 
844 globus_result_t
845 globus_i_ftp_control_data_set_stack(
846  globus_ftp_control_handle_t * handle,
847  globus_xio_stack_t stack);
848 
849 globus_result_t
850 globus_i_ftp_control_data_get_attr(
851  globus_ftp_control_handle_t * handle,
852  globus_xio_attr_t * attr);
853 
854 globus_result_t
855 globus_i_ftp_control_client_get_attr(
856  globus_ftp_control_handle_t * handle,
857  globus_xio_attr_t * attr);
858 
859 globus_result_t
860 globus_i_ftp_control_client_set_stack(
861  globus_ftp_control_handle_t * handle,
862  globus_xio_stack_t stack);
863 
864 globus_result_t
865 globus_i_ftp_control_load_xio_drivers(
866  char * driver_string,
867  globus_list_t ** driver_list);
868 
869 void
870 globus_i_ftp_control_unload_xio_drivers(
871  globus_list_t * driver_list);
872 
873 globus_result_t
874 globus_i_ftp_control_create_stack(
875  globus_ftp_control_handle_t * handle,
876  globus_list_t * driver_list,
877  globus_xio_stack_t * stack);
878 
879 
880 
881 /*****************************************************************
882  * standard layout functions
883  ****************************************************************/
884 /*
885  * blocked functions
886  */
887 globus_result_t
888 globus_ftp_control_layout_blocked_verify(
889  char * layout_str);
890 
891 void *
892 globus_ftp_control_layout_blocked_user_arg_create();
893 
894 void
895 globus_ftp_control_layout_blocked_user_arg_destroy(
896  void * user_arg);
897 
898 globus_result_t
899 globus_ftp_control_layout_blocked(
900  globus_ftp_control_handle_t * handle,
901  globus_ftp_control_data_write_info_t * data_info,
902  globus_byte_t * buffer,
903  globus_size_t length,
904  globus_off_t in_offset,
905  globus_bool_t eof,
906  int stripe_count,
907  char * enqueue_str,
908  void * user_arg);
909 
910 /*
911  * partitioned functions
912  */
913 globus_result_t
914 globus_ftp_control_layout_partitioned_verify(
915  char * layout_str);
916 
917 void *
918 globus_ftp_control_layout_partitioned_user_arg_create(
919  globus_size_t file_size);
920 
921 void
922 globus_ftp_control_layout_partitioned_user_arg_destroy(
923  void * user_arg);
924 
925 globus_result_t
926 globus_ftp_control_layout_partitioned(
927  globus_ftp_control_handle_t * handle,
928  globus_ftp_control_data_write_info_t * data_info,
929  globus_byte_t * buffer,
930  globus_size_t length,
931  globus_off_t in_offset,
932  globus_bool_t eof,
933  int stripe_count,
934  char * enqueue_str,
935  void * user_arg);
936 
937 /*
938  * data registration functions
939  */
940 globus_result_t
942  globus_ftp_control_handle_t * handle,
943  globus_ftp_control_data_write_info_t * data_info,
944  globus_byte_t * buffer,
945  globus_size_t length,
946  globus_off_t offset,
947  globus_bool_t eof,
949  void * callback_arg);
950 
951 globus_result_t
953  globus_ftp_control_handle_t * handle,
954  globus_ftp_control_data_write_info_t * data_info);
955 
956 globus_result_t
958  globus_ftp_control_handle_t * handle,
959  globus_byte_t * buffer,
960  globus_size_t length,
961  globus_off_t offset,
962  globus_bool_t eof,
963  int stripe_ndx,
965  void * callback_arg);
966 
967 globus_result_t
969  globus_ftp_control_handle_t * handle,
970  globus_byte_t * buffer,
971  globus_size_t length,
972  globus_off_t offset,
973  globus_bool_t eof,
974  int stripe_ndx,
975  globus_ftp_control_data_write_info_t * data_info);
976 
977 
978 /*
979  * Server API callbacks
980  * ----------------------------------------------------------------
981  */
982 
988 struct globus_ftp_control_server_s;
989 
1006  void * callback_arg,
1007  struct globus_ftp_control_server_s * server_handle,
1008  globus_object_t * error);
1009 
1010 
1011 typedef enum globus_ftp_control_server_state_n
1012 {
1013  GLOBUS_FTP_CONTROL_SERVER_LISTENING,
1014  GLOBUS_FTP_CONTROL_SERVER_DEAF
1015 }
1016 globus_ftp_control_server_state_t;
1017 
1018 typedef struct globus_ftp_control_server_s
1019 {
1020  globus_io_handle_t io_handle;
1021  globus_ftp_control_server_state_t state;
1023  void * callback_arg;
1024  globus_list_t * list_elem;
1025  globus_mutex_t mutex;
1026 } globus_ftp_control_server_t;
1027 
1028 
1029 
1030 typedef struct globus_ftp_control_command_str_s
1031 {
1032  globus_ftp_control_command_code_t code;
1033  char * raw_command;
1034  char * string_arg;
1035 } globus_ftp_control_command_str_t;
1036 
1037 /*
1038  * complex commands
1039  */
1040 
1041 typedef struct globus_ftp_control_command_stru_s
1042 {
1043  globus_ftp_control_command_code_t code;
1044  char * raw_command;
1045  globus_ftp_control_structure_t structure;
1046 } globus_ftp_control_command_stru_t;
1047 
1048 typedef struct globus_ftp_control_command_port_s
1049 {
1050  globus_ftp_control_command_code_t code;
1051  char * raw_command;
1052  globus_ftp_control_host_port_t host_port;
1053 } globus_ftp_control_command_port_t;
1054 
1055 typedef struct globus_ftp_control_command_spor_s
1056 {
1057  globus_ftp_control_command_code_t code;
1058  char * raw_command;
1059  int num_args;
1060  globus_ftp_control_host_port_t * host_port;
1061 } globus_ftp_control_command_spor_t;
1062 
1063 typedef struct globus_ftp_control_command_mode_s
1064 {
1065  globus_ftp_control_command_code_t code;
1066  char * raw_command;
1068 } globus_ftp_control_command_mode_t;
1069 
1070 typedef struct globus_ftp_control_command_allo_s
1071 {
1072  globus_ftp_control_command_code_t code;
1073  char * raw_command;
1074  int size;
1075  int record_size;
1076 } globus_ftp_control_command_allo_t;
1077 
1078 typedef struct globus_ftp_control_command_sbuf_s
1079 {
1080  globus_ftp_control_command_code_t code;
1081  char * raw_command;
1082  int buffer_size;
1083 } globus_ftp_control_command_sbuf_t;
1084 /*
1085 
1086 Can't parse marker unless I know state
1087 
1088 typedef struct globus_ftp_control_command_rest_s
1089 {
1090 } globus_ftp_control_command_rest_t;
1091 
1092 */
1093 
1094 typedef enum globus_ftp_control_type_option_e
1095 {
1096  GLOBUS_FTP_CONTROL_TYPE_NO_OPTION,
1097  GLOBUS_FTP_CONTROL_TYPE_OPTION_N,
1098  GLOBUS_FTP_CONTROL_TYPE_OPTION_T,
1099  GLOBUS_FTP_CONTROL_TYPE_OPTION_C
1100 } globus_ftp_control_type_option_t;
1101 
1102 typedef struct globus_ftp_control_command_type_s
1103 {
1104  globus_ftp_control_command_code_t code;
1105  char * raw_command;
1107  globus_ftp_control_type_option_t option;
1108  unsigned int bytesize;
1109 } globus_ftp_control_command_type_t;
1110 
1111 typedef enum globus_ftp_control_auth_type_e
1112 {
1113  GLOBUS_FTP_CONTROL_AUTH_GSSAPI,
1114  GLOBUS_FTP_CONTROL_AUTH_UNKNOWN
1115 } globus_ftp_control_auth_type_t;
1116 
1117 typedef struct globus_ftp_control_command_auth_s
1118 {
1119  globus_ftp_control_command_code_t code;
1120  char * raw_command;
1121  globus_ftp_control_auth_type_t type;
1122 } globus_ftp_control_command_auth_t;
1123 
1124 typedef struct globus_ftp_control_command_opts_s
1125 {
1126  globus_ftp_control_command_code_t code;
1127  char * raw_command;
1128  char * cmd_name;
1129  char * cmd_opts;
1130 } globus_ftp_control_command_opts_t;
1131 
1132 /*
1133  * single string commands
1134  */
1135 
1136 typedef globus_ftp_control_command_str_t
1137 globus_ftp_control_command_site_t;
1138 
1139 typedef globus_ftp_control_command_str_t
1140 globus_ftp_control_command_acct_t;
1141 
1142 typedef globus_ftp_control_command_str_t
1143 globus_ftp_control_command_cwd_t;
1144 
1145 typedef globus_ftp_control_command_str_t
1146 globus_ftp_control_command_cdup_t;
1147 
1148 typedef globus_ftp_control_command_str_t
1149 globus_ftp_control_command_pass_t;
1150 
1151 typedef globus_ftp_control_command_str_t
1152 globus_ftp_control_command_user_t;
1153 
1154 typedef globus_ftp_control_command_str_t
1155 globus_ftp_control_command_smnt_t;
1156 
1157 typedef globus_ftp_control_command_str_t
1158 globus_ftp_control_command_list_t;
1159 
1160 typedef globus_ftp_control_command_str_t
1161 globus_ftp_control_command_retr_t;
1162 
1163 typedef globus_ftp_control_command_str_t
1164 globus_ftp_control_command_size_t;
1165 
1166 typedef globus_ftp_control_command_str_t
1167 globus_ftp_control_command_stor_t;
1168 
1169 typedef globus_ftp_control_command_str_t
1170 globus_ftp_control_command_appe_t;
1171 
1172 typedef globus_ftp_control_command_str_t
1173 globus_ftp_control_command_rnfr_t;
1174 
1175 typedef globus_ftp_control_command_str_t
1176 globus_ftp_control_command_rnto_t;
1177 
1178 typedef globus_ftp_control_command_str_t
1179 globus_ftp_control_command_feat_t;
1180 
1181 typedef globus_ftp_control_command_str_t
1182 globus_ftp_control_command_dele_t;
1183 
1184 typedef globus_ftp_control_command_str_t
1185 globus_ftp_control_command_rmd_t;
1186 
1187 typedef globus_ftp_control_command_str_t
1188 globus_ftp_control_command_mkd_t;
1189 
1190 typedef globus_ftp_control_command_str_t
1191 globus_ftp_control_command_nlst_t;
1192 
1193 typedef globus_ftp_control_command_str_t
1194 globus_ftp_control_command_help_t;
1195 
1196 typedef globus_ftp_control_command_str_t
1197 globus_ftp_control_command_stou_t;
1198 
1199 typedef globus_ftp_control_command_str_t
1200 globus_ftp_control_command_rest_t;
1201 
1202 typedef globus_ftp_control_command_str_t
1203 globus_ftp_control_command_eret_t;
1204 
1205 typedef globus_ftp_control_command_str_t
1206 globus_ftp_control_command_esto_t;
1207 
1208 /*
1209  * no string commands
1210  */
1211 typedef globus_ftp_control_command_str_t
1212 globus_ftp_control_command_pasv_t;
1213 
1214 typedef globus_ftp_control_command_str_t
1215 globus_ftp_control_command_spas_t;
1216 
1217 typedef globus_ftp_control_command_str_t
1218 globus_ftp_control_command_stat_t;
1219 
1220 typedef globus_ftp_control_command_str_t
1221 globus_ftp_control_command_noop_t;
1222 
1223 typedef globus_ftp_control_command_str_t
1224 globus_ftp_control_command_syst_t;
1225 
1226 typedef globus_ftp_control_command_str_t
1227 globus_ftp_control_command_quit_t;
1228 
1229 typedef globus_ftp_control_command_str_t
1230 globus_ftp_control_command_rein_t;
1231 
1232 typedef globus_ftp_control_command_str_t
1233 globus_ftp_control_command_abor_t;
1234 
1235 typedef globus_ftp_control_command_str_t
1236 globus_ftp_control_command_pwd_t;
1237 
1238 typedef globus_ftp_control_command_str_t
1239 globus_ftp_control_command_adat_t;
1240 
1241 
1242 
1243 
1244 typedef union globus_ftp_control_command_u
1245 {
1246  globus_ftp_control_command_code_t code;
1247  globus_ftp_control_command_site_t site;
1248  globus_ftp_control_command_sbuf_t sbuf;
1249  globus_ftp_control_command_type_t type;
1250  globus_ftp_control_command_rest_t rest;
1251  globus_ftp_control_command_allo_t allo;
1252  globus_ftp_control_command_eret_t eret;
1253  globus_ftp_control_command_esto_t esto;
1254  globus_ftp_control_command_mode_t mode;
1255  globus_ftp_control_command_port_t port;
1256  globus_ftp_control_command_spor_t spor;
1257  globus_ftp_control_command_stru_t stru;
1258  globus_ftp_control_command_auth_t auth;
1259 
1260  globus_ftp_control_command_adat_t adat;
1261  globus_ftp_control_command_acct_t acct;
1262  globus_ftp_control_command_cwd_t cwd;
1263  globus_ftp_control_command_cdup_t cdup;
1264  globus_ftp_control_command_pass_t pass;
1265  globus_ftp_control_command_user_t user;
1266  globus_ftp_control_command_smnt_t smnt;
1267  globus_ftp_control_command_opts_t opts;
1268  globus_ftp_control_command_list_t list;
1269  globus_ftp_control_command_retr_t retr;
1270  globus_ftp_control_command_size_t size;
1271  globus_ftp_control_command_stor_t stor;
1272  globus_ftp_control_command_appe_t appe;
1273  globus_ftp_control_command_rnfr_t rnfr;
1274  globus_ftp_control_command_rnto_t rnto;
1275  globus_ftp_control_command_dele_t dele;
1276  globus_ftp_control_command_feat_t feat;
1277  globus_ftp_control_command_rmd_t rmd;
1278  globus_ftp_control_command_mkd_t mkd;
1279  globus_ftp_control_command_nlst_t nlst;
1280  globus_ftp_control_command_help_t help;
1281 
1282  globus_ftp_control_command_pasv_t pasv;
1283  globus_ftp_control_command_spas_t spas;
1284  globus_ftp_control_command_stat_t stat;
1285  globus_ftp_control_command_noop_t noop;
1286  globus_ftp_control_command_syst_t syst;
1287  globus_ftp_control_command_stou_t stou;
1288  globus_ftp_control_command_quit_t quit;
1289  globus_ftp_control_command_rein_t rein;
1290  globus_ftp_control_command_abor_t abor;
1291  globus_ftp_control_command_pwd_t pwd;
1292 
1293  globus_ftp_control_command_str_t base;
1294 } globus_ftp_control_command_t;
1295 
1296 
1297 typedef struct globus_ftp_data_server_s
1298 {
1299  int bogus;
1300 } globus_ftp_data_server_t;
1301 
1307 globus_result_t
1309  globus_ftp_control_auth_info_t * auth_info,
1310  gss_cred_id_t credential_handle,
1311  globus_bool_t encrypt,
1312  char * user,
1313  char * password,
1314  char * account,
1315  char * subject);
1316 
1317 int
1319  globus_ftp_control_auth_info_t * auth_info_1,
1320  globus_ftp_control_auth_info_t * auth_info_2);
1321 
1322 globus_result_t
1324  globus_ftp_control_handle_t * handle);
1325 
1326 globus_result_t
1328  globus_ftp_control_handle_t * handle);
1329 
1330 globus_result_t
1332  globus_ftp_control_server_t * handle);
1333 
1334 globus_result_t
1336  globus_ftp_control_server_t * handle);
1337 
1338 globus_result_t
1340  globus_ftp_control_response_t * response);
1341 
1342 globus_result_t
1344  globus_ftp_control_response_t * src,
1345  globus_ftp_control_response_t * dest);
1346 
1347 
1348 globus_result_t
1350  globus_ftp_control_handle_t * handle,
1351  char * host,
1352  unsigned short port,
1354  void * callback_arg);
1355 
1356 
1357 globus_result_t
1358 globus_ftp_control_use_tls(
1359  globus_ftp_control_handle_t * handle,
1360  globus_ftp_control_auth_info_t * auth_info);
1361 
1362 globus_result_t
1364  globus_ftp_control_handle_t * handle,
1365  globus_ftp_control_auth_info_t * auth_info,
1366  globus_bool_t use_auth,
1368  void * callback_arg);
1369 
1370 globus_result_t
1372  globus_ftp_control_handle_t * handle,
1373  globus_ftp_control_auth_info_t * auth_info,
1374  globus_bool_t use_auth,
1376  void * callback_arg);
1377 
1378 globus_result_t
1380  globus_ftp_control_handle_t * handle,
1382  void * callback_arg);
1383 
1384 globus_result_t
1386  globus_ftp_control_handle_t * handle,
1388  void * callback_arg);
1389 
1390 globus_result_t
1392  globus_ftp_control_handle_t * handle,
1394  void * callback_arg);
1395 
1396 
1397 globus_result_t
1399  globus_ftp_control_handle_t * handle,
1400  const char * cmdspec,
1402  void * callback_arg,
1403  ...);
1404 
1405 globus_result_t
1407  globus_ftp_control_handle_t * handle,
1408  unsigned long bufsize);
1409 
1410 globus_result_t
1412  globus_ftp_control_handle_t * handle,
1413  unsigned long * bufsize);
1414 
1415 /* globus_ftp_control_server.c */
1416 globus_result_t
1418  globus_ftp_control_server_t * handle,
1419  unsigned short * port,
1421  void * callback_arg);
1422 
1423 globus_result_t
1425  globus_ftp_control_server_t * handle,
1426  globus_io_attr_t * attr,
1427  unsigned short * port,
1429  void * callback_arg);
1430 
1431 globus_result_t
1433  globus_ftp_control_server_t * listener,
1435  void * callback_arg);
1436 
1437 globus_result_t
1439  globus_ftp_control_server_t * listener,
1440  globus_ftp_control_handle_t * handle,
1442  void * callback_arg);
1443 
1444 globus_result_t
1446  globus_ftp_control_handle_t * handle,
1447  globus_ftp_control_auth_requirements_t auth_requirements,
1449  void * callback_arg);
1450 
1451 globus_result_t
1453  globus_ftp_control_handle_t * handle,
1455  void * callback_arg);
1456 
1457 globus_result_t
1459  globus_ftp_control_handle_t * handle,
1460  const char * respspec,
1462  void * callback_arg,
1463  ...);
1464 
1465 globus_result_t
1466 globus_ftp_control_close(
1467  globus_ftp_control_server_t * listener,
1469  void * callback_arg);
1470 
1471 globus_result_t
1472 globus_ftp_data_close(
1473  globus_ftp_data_server_t * listener,
1475  void * callback_arg);
1476 
1477 int
1478  globus_i_ftp_queue_size(
1479  globus_ftp_control_handle_t * handle,
1480  int stripe_ndx);
1481 
1482 /* command object functions */
1483 globus_result_t
1485  globus_ftp_control_command_t * dest,
1486  globus_ftp_control_command_t * src);
1487 
1488 globus_result_t
1490  globus_ftp_control_command_t * command,
1491  char * raw_command,
1492  globus_ftp_control_auth_info_t * auth_info);
1493 
1494 globus_result_t
1496  globus_ftp_control_command_t * command);
1497 
1503 globus_result_t
1504 globus_i_ftp_control_data_cc_init(
1505  globus_ftp_control_handle_t * control_handle);
1506 
1507 globus_result_t
1508 globus_i_ftp_control_data_cc_destroy(
1509  globus_ftp_control_handle_t * control_handle);
1510 
1511 globus_result_t
1513  globus_ftp_control_handle_t * control_handle,
1514  globus_ftp_control_callback_t destroy_callback,
1515  void * destroy_callback_arg);
1516 
1517 globus_result_t
1519  globus_ftp_control_handle_t * handle,
1520  globus_bool_t send_eof);
1521 
1522 globus_result_t
1524  globus_ftp_control_handle_t * handle,
1525  int count[],
1526  int array_size,
1527  globus_bool_t eof_message,
1529  void * user_arg);
1530 
1531 globus_result_t
1532 globus_ftp_control_get_stripe_count(
1533  globus_ftp_control_handle_t * handle,
1534  int * stripe_count);
1535 
1536 globus_result_t
1538  globus_ftp_control_handle_t * handle,
1539  globus_ftp_control_data_connect_callback_t callback,
1540  void * user_arg);
1541 
1542 globus_result_t
1544  globus_ftp_control_handle_t * handle,
1545  globus_ftp_control_data_connect_callback_t callback,
1546  void * user_arg);
1547 
1548 globus_result_t
1550  globus_ftp_control_handle_t * handle,
1551  unsigned int num_channels,
1552  unsigned int stripe);
1553 
1554 globus_result_t
1556  globus_ftp_control_handle_t * handle,
1557  unsigned int num_channels,
1558  unsigned int stripe);
1559 
1560 globus_result_t
1562  globus_ftp_control_handle_t * handle,
1563  unsigned int * num_channels,
1564  unsigned int stripe);
1565 
1566 globus_result_t
1568  globus_ftp_control_handle_t * handle,
1569  unsigned int * num_channels,
1570  unsigned int stripe_ndx);
1571 
1572 globus_result_t
1573 globus_ftp_control_data_get_remote_hosts(
1574  globus_ftp_control_handle_t * handle,
1575  globus_ftp_control_host_port_t * address,
1576  int * addr_count);
1577 
1578 globus_result_t
1579 globus_ftp_control_get_parallelism(
1580  globus_ftp_control_handle_t * handle,
1581  globus_ftp_control_parallelism_t * parallelism);
1582 
1583 globus_result_t
1585  globus_ftp_control_handle_t * handle,
1586  globus_ftp_control_parallelism_t * parallelism);
1587 
1588 globus_result_t
1590  globus_ftp_control_handle_t * handle,
1591  globus_ftp_control_host_port_t * address);
1592 
1593 globus_result_t
1595  globus_ftp_control_handle_t * handle,
1596  globus_ftp_control_host_port_t addresses[],
1597  unsigned int num_addresses);
1598 
1599 globus_result_t
1601  globus_ftp_control_handle_t * handle,
1602  globus_ftp_control_host_port_t * address);
1603 
1604 globus_result_t
1606  globus_ftp_control_handle_t * handle,
1607  globus_ftp_control_host_port_t addresses[],
1608  unsigned int num_addresses);
1609 
1610 globus_result_t
1611 globus_ftp_control_get_spor(
1612  globus_ftp_control_handle_t * handle,
1613  globus_ftp_control_host_port_t addresses[],
1614  unsigned int * num_addresses);
1615 
1616 globus_result_t
1618  globus_ftp_control_handle_t * handle,
1620  int form_code);
1621 
1622 globus_result_t
1624  globus_ftp_control_handle_t * handle,
1625  globus_ftp_control_tcpbuffer_t * tcp_buffer);
1626 
1627 globus_result_t
1629  globus_ftp_control_handle_t * handle,
1631 
1632 globus_result_t
1633 globus_ftp_control_get_mode(
1634  globus_ftp_control_handle_t * handle,
1635  globus_ftp_control_mode_t * mode);
1636 
1637 globus_result_t
1638 globus_ftp_control_get_type(
1639  globus_ftp_control_handle_t * handle,
1640  globus_ftp_control_type_t * type);
1641 
1642 globus_result_t
1644  globus_ftp_control_handle_t * handle,
1645  const globus_ftp_control_dcau_t * dcau,
1646  gss_cred_id_t delegated_credential_handle);
1647 
1648 globus_result_t
1649 globus_ftp_control_get_dcau(
1650  globus_ftp_control_handle_t * handle,
1651  globus_ftp_control_dcau_t * dcau);
1652 
1653 globus_result_t
1654 globus_ftp_control_local_prot(
1655  globus_ftp_control_handle_t * handle,
1656  globus_ftp_control_protection_t protection);
1657 
1658 globus_result_t
1659 globus_ftp_control_get_prot(
1660  globus_ftp_control_handle_t * handle,
1661  globus_ftp_control_protection_t * protection);
1662 
1663 globus_result_t
1665  globus_ftp_control_handle_t * handle,
1666  globus_ftp_control_structure_t structure);
1667 
1668 globus_result_t
1670  globus_ftp_control_handle_t * handle,
1671  globus_byte_t * buffer,
1672  globus_size_t length,
1673  globus_off_t offset,
1674  globus_bool_t eof,
1676  void * callback_arg);
1677 
1678 globus_result_t
1680  globus_ftp_control_handle_t * handle,
1681  globus_byte_t * buffer,
1682  globus_size_t max_length,
1684  void * callback_arg);
1685 
1686 globus_result_t
1687 globus_ftp_control_data_read_all(
1688  globus_ftp_control_handle_t * handle,
1689  globus_byte_t * buffer,
1690  globus_size_t length,
1692  void * callback_arg);
1693 
1694 globus_result_t
1696  globus_ftp_control_handle_t * handle,
1697  globus_bool_t order_data,
1698  globus_off_t starting_offset);
1699 
1700 /* this has only been tested enough for the client library and GridFTP server
1701  * it is very likely to not work for general usage
1702  */
1703 globus_result_t
1705  globus_ftp_control_handle_t * handle,
1706  globus_bool_t allow);
1707 
1708 /*
1709  * internal function definitions
1710  */
1711 globus_result_t
1712 globus_i_ftp_parallelism_copy(
1713  globus_ftp_control_parallelism_t * dest_parallelism,
1714  globus_ftp_control_parallelism_t * src_parallelism);
1715 
1716 int
1717 globus_i_ftp_parallelism_get_size(
1718  globus_ftp_control_parallelism_t * parallelism);
1719 
1720 int
1721 globus_i_ftp_parallelism_get_min_size(
1722  globus_ftp_control_parallelism_t * parallelism);
1723 
1724 int
1725 globus_i_ftp_parallelism_get_max_size(
1726  globus_ftp_control_parallelism_t * parallelism);
1727 
1728 void
1729 globus_ftp_control_host_port_init(
1730  globus_ftp_control_host_port_t * host_port,
1731  char * host,
1732  unsigned short port);
1733 
1734 void
1735 globus_ftp_control_host_port_destroy(
1736  globus_ftp_control_host_port_t * host_port);
1737 
1738 void
1739 globus_ftp_control_host_port_get_host(
1740  globus_ftp_control_host_port_t * host_port,
1741  char * host);
1742 
1743 unsigned short
1744 globus_ftp_control_host_port_get_port(
1745  globus_ftp_control_host_port_t * host_port);
1746 
1747 void
1748 globus_ftp_control_host_port_copy(
1749  globus_ftp_control_host_port_t * dest,
1750  globus_ftp_control_host_port_t * src);
1751 
1752 #define globus_i_ftp_control_client_get_connection_info \
1753  globus_ftp_control_client_get_connection_info
1754 globus_result_t
1755 globus_ftp_control_client_get_connection_info(
1756  globus_ftp_control_handle_t * handle,
1757  int localhost[4],
1758  unsigned short * localport,
1759  int remotehost[4],
1760  unsigned short * remoteport);
1761 
1762 globus_result_t
1764  globus_ftp_control_handle_t * handle,
1765  globus_ftp_control_host_port_t * local_info,
1766  globus_ftp_control_host_port_t * remote_info);
1767 
1768 globus_result_t
1769 globus_ftp_control_data_get_socket_buf(
1770  globus_ftp_control_handle_t * handle,
1771  int * rcvbuf,
1772  int * sndbuf);
1773 
1774 globus_result_t
1775 globus_ftp_control_data_get_retransmit_count(
1776  globus_ftp_control_handle_t * handle,
1777  char ** retransmit_count);
1778 
1779 #ifdef __cplusplus
1780 }
1781 #endif
1782 
1783 
1784 #endif /* GLOBUS_INCLUDE_FTP_CONTROL_H */
union globus_ftp_control_layout_u globus_ftp_control_layout_t
Control striping attribute union.
unsigned long globus_ftp_control_auth_requirements_t
Definition: globus_ftp_control.h:617
struct globus_ftp_control_tcpbuffer_automatic_s globus_ftp_control_tcpbuffer_automatic_t
Automatically set the TCP buffer/window size.
struct globus_ftp_control_dcau_subject_s globus_ftp_control_dcau_subject_t
Control DCAU subject authentication type.
struct globus_ftp_control_round_robin_s globus_ftp_control_round_robin_t
Control striping round robin attribute structure.
globus_ftp_control_tcpbuffer_mode_e
Definition: globus_ftp_control.h:323
@ GLOBUS_FTP_CONTROL_TCPBUFFER_DEFAULT
Definition: globus_ftp_control.h:325
@ GLOBUS_FTP_CONTROL_TCPBUFFER_FIXED
Definition: globus_ftp_control.h:328
@ GLOBUS_FTP_CONTROL_TCPBUFFER_AUTOMATIC
Definition: globus_ftp_control.h:331
union globus_ftp_control_tcpbuffer_t globus_ftp_control_tcpbuffer_t
Control tcpbuffer attribute structure.
struct globus_ftp_control_auth_info_s globus_ftp_control_auth_info_t
Authentication Values.
void(* globus_ftp_control_auth_callback_t)(void *callback_arg, struct globus_ftp_control_handle_s *handle, globus_object_t *error, globus_ftp_control_auth_info_t *auth_result)
Definition: globus_ftp_control.h:601
globus_ftp_control_delay_passive_t
Definition: globus_ftp_control.h:185
void(* globus_ftp_control_data_callback_t)(void *callback_arg, globus_ftp_control_handle_t *handle, globus_object_t *error, globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof)
Definition: globus_ftp_control.h:795
enum globus_ftp_control_structure_e globus_ftp_control_structure_t
void(* globus_ftp_control_command_callback_t)(void *callback_arg, struct globus_ftp_control_handle_s *handle, globus_object_t *error, union globus_ftp_control_command_u *command)
Definition: globus_ftp_control.h:571
enum globus_ftp_control_parallelism_mode_e globus_ftp_control_parallelism_mode_t
globus_ftp_control_parallelism_mode_e
Definition: globus_ftp_control.h:221
void(* globus_ftp_control_callback_t)(void *callback_arg, struct globus_ftp_control_handle_s *handle, globus_object_t *error)
Definition: globus_ftp_control.h:530
enum globus_ftp_control_tcpbuffer_mode_e globus_ftp_control_tcpbuffer_mode_t
union globus_ftp_control_parallelism_u globus_ftp_control_parallelism_t
Control parallelism attribute structure
globus_ftp_control_structure_e
Definition: globus_ftp_control.h:210
void(* globus_ftp_control_response_callback_t)(void *callback_arg, struct globus_ftp_control_handle_s *handle, globus_object_t *error, globus_ftp_control_response_t *ftp_response)
Definition: globus_ftp_control.h:510
union globus_ftp_control_dcau_u globus_ftp_control_dcau_t
Control DCAU union.
globus_result_t globus_ftp_control_auth_info_init(globus_ftp_control_auth_info_t *auth_info, gss_cred_id_t credential_handle, globus_bool_t encrypt, char *user, char *password, char *account, char *subject)
Initialize authentication information.
Definition: globus_ftp_control_client.c:3973
globus_result_t globus_ftp_control_ipv6_allow(globus_ftp_control_handle_t *handle, globus_bool_t allow)
Not documented yet.
Definition: globus_ftp_control_client.c:5085
globus_result_t globus_ftp_control_handle_init(globus_ftp_control_handle_t *handle)
Initialize a globus ftp handle.
Definition: globus_ftp_control_client.c:117
globus_result_t globus_ftp_control_response_copy(globus_ftp_control_response_t *src, globus_ftp_control_response_t *dest)
Copy a response structure.
Definition: globus_ftp_control_client.c:1604
int globus_ftp_control_auth_info_compare(globus_ftp_control_auth_info_t *auth_info_1, globus_ftp_control_auth_info_t *auth_info_2)
Compare authentication information.
Definition: globus_ftp_control_client.c:4038
globus_result_t globus_ftp_control_abort(globus_ftp_control_handle_t *handle, globus_ftp_control_response_callback_t callback, void *callback_arg)
Send a GridFTP ABORT.
Definition: globus_ftp_control_client.c:2413
globus_result_t globus_ftp_control_response_destroy(globus_ftp_control_response_t *response)
Free the memory associated with a response.
Definition: globus_ftp_control_client.c:1569
globus_result_t globus_ftp_control_send_command(globus_ftp_control_handle_t *handle, const char *cmdspec, globus_ftp_control_response_callback_t callback, void *callback_arg,...)
Send an FTP protocol command.
Definition: globus_ftp_control_client.c:1988
globus_result_t globus_ftp_control_quit(globus_ftp_control_handle_t *handle, globus_ftp_control_response_callback_t callback, void *callback_arg)
Send a GridFTP QUIT.
Definition: globus_ftp_control_client.c:2695
globus_result_t globus_ftp_control_force_close(globus_ftp_control_handle_t *handle, globus_ftp_control_response_callback_t callback, void *callback_arg)
Force a control connection to close.
Definition: globus_ftp_control_client.c:3760
globus_result_t globus_ftp_control_connect(globus_ftp_control_handle_t *handle, char *host, unsigned short port, globus_ftp_control_response_callback_t callback, void *callback_arg)
Create a new control connection to an FTP server.
Definition: globus_ftp_control_client.c:579
globus_result_t globus_ftp_control_client_get_connection_info_ex(globus_ftp_control_handle_t *handle, globus_ftp_control_host_port_t *local_info, globus_ftp_control_host_port_t *remote_info)
Not documented yet.
Definition: globus_ftp_control_client.c:4792
globus_result_t globus_ftp_control_authenticate(globus_ftp_control_handle_t *handle, globus_ftp_control_auth_info_t *auth_info, globus_bool_t use_auth, globus_ftp_control_response_callback_t callback, void *callback_arg)
Authenticate the user to the FTP server.
Definition: globus_ftp_control_client.c:1733
globus_result_t globus_ftp_control_handle_destroy(globus_ftp_control_handle_t *handle)
Destroy a globus ftp handle.
Definition: globus_ftp_control_client.c:220
globus_result_t globus_ftp_control_authenticate_ex(globus_ftp_control_handle_t *handle, globus_ftp_control_auth_info_t *auth_info, globus_bool_t use_auth, globus_ftp_control_response_callback_t callback, void *callback_arg)
Authenticate the user to the FTP server.
Definition: globus_ftp_control_client.c:1785
globus_ftp_control_type_e
GridFTP TYPE values.
Definition: globus_ftp_control.h:64
globus_ftp_control_dcau_mode_e
GridFTP DCAU values.
Definition: globus_ftp_control.h:104
enum globus_ftp_control_dcau_mode_e globus_ftp_control_dcau_mode_t
GridFTP DCAU values.
enum globus_ftp_control_type_e globus_ftp_control_type_t
GridFTP TYPE values.
globus_ftp_control_protection_t
GridFTP Protection Types.
Definition: globus_ftp_control.h:170
globus_ftp_control_striping_mode_e
GridFTP Striping Types.
Definition: globus_ftp_control.h:132
globus_ftp_control_mode_e
GridFTP MODE values.
Definition: globus_ftp_control.h:84
enum globus_ftp_control_striping_mode_e globus_ftp_control_striping_mode_t
GridFTP Striping Types.
enum globus_ftp_control_mode_e globus_ftp_control_mode_t
GridFTP MODE values.
@ GLOBUS_FTP_CONTROL_TYPE_LOCAL
Definition: globus_ftp_control.h:74
@ GLOBUS_FTP_CONTROL_TYPE_EBCDIC
Definition: globus_ftp_control.h:70
@ GLOBUS_FTP_CONTROL_TYPE_IMAGE
Definition: globus_ftp_control.h:72
@ GLOBUS_FTP_CONTROL_TYPE_ASCII
Definition: globus_ftp_control.h:68
@ GLOBUS_FTP_CONTROL_TYPE_NONE
Definition: globus_ftp_control.h:66
@ GLOBUS_FTP_CONTROL_DCAU_DEFAULT
Definition: globus_ftp_control.h:112
@ GLOBUS_FTP_CONTROL_DCAU_SELF
Definition: globus_ftp_control.h:108
@ GLOBUS_FTP_CONTROL_DCAU_SUBJECT
Definition: globus_ftp_control.h:110
@ GLOBUS_FTP_CONTROL_DCAU_NONE
Definition: globus_ftp_control.h:106
@ GLOBUS_FTP_CONTROL_PROTECTION_CONFIDENTIAL
Definition: globus_ftp_control.h:176
@ GLOBUS_FTP_CONTROL_PROTECTION_PRIVATE
Definition: globus_ftp_control.h:178
@ GLOBUS_FTP_CONTROL_PROTECTION_CLEAR
Definition: globus_ftp_control.h:172
@ GLOBUS_FTP_CONTROL_PROTECTION_SAFE
Definition: globus_ftp_control.h:174
@ GLOBUS_FTP_CONTROL_MODE_COMPRESSED
Definition: globus_ftp_control.h:94
@ GLOBUS_FTP_CONTROL_MODE_EXTENDED_BLOCK
Definition: globus_ftp_control.h:92
@ GLOBUS_FTP_CONTROL_MODE_STREAM
Definition: globus_ftp_control.h:88
@ GLOBUS_FTP_CONTROL_MODE_BLOCK
Definition: globus_ftp_control.h:90
@ GLOBUS_FTP_CONTROL_MODE_NONE
Definition: globus_ftp_control.h:86
globus_result_t globus_ftp_control_data_get_total_data_channels(globus_ftp_control_handle_t *handle, unsigned int *num_channels, unsigned int stripe_ndx)
Get Total Data Channels For a Stripe.
Definition: globus_ftp_control_data.c:2388
globus_result_t globus_ftp_control_local_spor(globus_ftp_control_handle_t *handle, globus_ftp_control_host_port_t addresses[], unsigned int num_addresses)
Set remote data addresses.
Definition: globus_ftp_control_data.c:3192
globus_result_t globus_ftp_control_data_add_channels(globus_ftp_control_handle_t *handle, unsigned int num_channels, unsigned int stripe)
Add data channels.
Definition: globus_ftp_control_data.c:1842
globus_result_t globus_ftp_control_local_dcau(globus_ftp_control_handle_t *handle, const globus_ftp_control_dcau_t *dcau, gss_cred_id_t delegated_credential_handle)
Set data channel DCAU.
Definition: globus_ftp_control_data.c:3939
globus_result_t globus_ftp_control_data_query_channels(globus_ftp_control_handle_t *handle, unsigned int *num_channels, unsigned int stripe)
Number of data channels.
Definition: globus_ftp_control_data.c:2294
globus_result_t globus_ftp_control_data_write(globus_ftp_control_handle_t *handle, globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof, globus_ftp_control_data_callback_t callback, void *callback_arg)
Write data to data connections.
Definition: globus_ftp_control_data.c:4490
globus_result_t globus_ftp_control_local_stru(globus_ftp_control_handle_t *handle, globus_ftp_control_structure_t structure)
Set data channel structure.
Definition: globus_ftp_control_data.c:4403
globus_result_t globus_ftp_control_data_connect_read(globus_ftp_control_handle_t *handle, globus_ftp_control_data_connect_callback_t callback, void *user_arg)
Create an incoming FTP data connection.
Definition: globus_ftp_control_data.c:1036
globus_result_t globus_ftp_control_data_connect_write(globus_ftp_control_handle_t *handle, globus_ftp_control_data_connect_callback_t callback, void *user_arg)
Create an outgoing FTP data connection.
Definition: globus_ftp_control_data.c:1231
globus_result_t globus_ftp_control_local_parallelism(globus_ftp_control_handle_t *handle, globus_ftp_control_parallelism_t *parallelism)
Set control handle parallelism.
Definition: globus_ftp_control_data.c:2727
globus_result_t globus_ftp_control_data_force_close(globus_ftp_control_handle_t *control_handle, globus_ftp_control_callback_t destroy_callback, void *destroy_callback_arg)
Close data connections.
Definition: globus_ftp_control_data.c:7960
globus_result_t globus_ftp_control_local_tcp_buffer(globus_ftp_control_handle_t *handle, globus_ftp_control_tcpbuffer_t *tcp_buffer)
Set data handle TCP buffer size.
Definition: globus_ftp_control_data.c:3600
globus_result_t globus_ftp_control_local_send_eof(globus_ftp_control_handle_t *handle, globus_bool_t send_eof)
Enable or disable automatic EOF handling.
Definition: globus_ftp_control_data.c:2611
globus_result_t globus_X_ftp_control_data_write_stripe(globus_ftp_control_handle_t *handle, globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof, int stripe_ndx, globus_ftp_control_data_write_info_t *data_info)
Write data to a stripe from an enqueue callback.
Definition: globus_ftp_control_data.c:6071
globus_result_t globus_ftp_control_create_data_info(globus_ftp_control_handle_t *handle, globus_ftp_control_data_write_info_t *data_info, globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof, globus_ftp_control_data_callback_t callback, void *callback_arg)
Create a globus_ftp_control_data_write_info_t structure.
Definition: globus_ftp_control_data.c:5743
globus_result_t globus_ftp_control_data_write_stripe(globus_ftp_control_handle_t *handle, globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof, int stripe_ndx, globus_ftp_control_data_callback_t callback, void *callback_arg)
Write FTP data to a stripe.
Definition: globus_ftp_control_data.c:5940
globus_result_t globus_ftp_control_data_set_interface(globus_ftp_control_handle_t *handle, const char *interface_addr)
Create an outgoing FTP data connection.
Definition: globus_ftp_control_data.c:1148
globus_result_t globus_ftp_control_data_read(globus_ftp_control_handle_t *handle, globus_byte_t *buffer, globus_size_t max_length, globus_ftp_control_data_callback_t callback, void *callback_arg)
Read data from data connections.
Definition: globus_ftp_control_data.c:4694
globus_result_t globus_ftp_control_data_send_eof(globus_ftp_control_handle_t *handle, int count[], int array_size, globus_bool_t eof_message, globus_ftp_control_callback_t cb, void *user_arg)
Send EOF.
Definition: globus_ftp_control_data.c:1923
globus_result_t globus_ftp_control_local_mode(globus_ftp_control_handle_t *handle, globus_ftp_control_mode_t mode)
Set data handle mode.
Definition: globus_ftp_control_data.c:3453
globus_result_t globus_ftp_control_local_pbsz(globus_ftp_control_handle_t *handle, unsigned long bufsize)
Set data channel protection buffer size.
Definition: globus_ftp_control_data.c:4288
globus_result_t globus_ftp_control_local_port(globus_ftp_control_handle_t *handle, globus_ftp_control_host_port_t *address)
Set remote data address.
Definition: globus_ftp_control_data.c:3012
globus_result_t globus_ftp_control_local_layout(globus_ftp_control_handle_t *handle, globus_ftp_control_layout_t *layout, globus_size_t data_size)
Set data layout.
Definition: globus_ftp_control_data.c:5467
globus_result_t globus_ftp_control_local_spas(globus_ftp_control_handle_t *handle, globus_ftp_control_host_port_t addresses[], unsigned int num_addresses)
Create multiple passive sockets.
Definition: globus_ftp_control_data.c:2984
globus_result_t globus_ftp_control_local_pasv(globus_ftp_control_handle_t *handle, globus_ftp_control_host_port_t *address)
Create a passive socket.
Definition: globus_ftp_control_data.c:2815
globus_result_t globus_ftp_control_set_force_order(globus_ftp_control_handle_t *handle, globus_bool_t order_data, globus_off_t starting_offset)
Set data handle to return read mode E data in order.
Definition: globus_ftp_control_data.c:3528
globus_result_t globus_ftp_control_data_remove_channels(globus_ftp_control_handle_t *handle, unsigned int num_channels, unsigned int stripe)
Remove Data Channels.
Definition: globus_ftp_control_data.c:2188
globus_result_t globus_ftp_control_release_data_info(globus_ftp_control_handle_t *handle, globus_ftp_control_data_write_info_t *data_info)
Release a data_info structure.
Definition: globus_ftp_control_data.c:5842
globus_result_t globus_ftp_control_local_type(globus_ftp_control_handle_t *handle, globus_ftp_control_type_t type, int form_code)
Set control handle TYPE value.
Definition: globus_ftp_control_data.c:3282
globus_result_t globus_ftp_control_get_pbsz(globus_ftp_control_handle_t *handle, unsigned long *bufsize)
Get data channel protection buffer size.
Definition: globus_ftp_control_data.c:4351
globus_result_t globus_ftp_control_server_listen_ex(globus_ftp_control_server_t *handle, globus_io_attr_t *attr, unsigned short *port, globus_ftp_control_server_callback_t callback, void *callback_arg)
Listen on for FTP Client Connections.
Definition: globus_ftp_control_server.c:318
globus_result_t globus_ftp_control_server_authenticate(globus_ftp_control_handle_t *handle, globus_ftp_control_auth_requirements_t auth_requirements, globus_ftp_control_auth_callback_t callback, void *callback_arg)
Authenticate a GridFTP Client Connection.
Definition: globus_ftp_control_server.c:1235
globus_result_t globus_ftp_control_server_handle_destroy(globus_ftp_control_server_t *handle)
Destroy a GridFTP server handle.
Definition: globus_ftp_control_server.c:199
void(* globus_ftp_control_server_callback_t)(void *callback_arg, struct globus_ftp_control_server_s *server_handle, globus_object_t *error)
Server callback.
Definition: globus_ftp_control.h:1005
globus_result_t globus_ftp_control_command_destroy(globus_ftp_control_command_t *command)
Destroy a GridFTP command.
Definition: globus_ftp_control_server.c:624
globus_result_t globus_ftp_control_send_response(globus_ftp_control_handle_t *handle, const char *respspec, globus_ftp_control_callback_t callback, void *callback_arg,...)
Send a GridFTP response.
Definition: globus_ftp_control_server.c:2755
globus_result_t globus_ftp_control_server_stop(globus_ftp_control_server_t *listener, globus_ftp_control_server_callback_t callback, void *callback_arg)
Stop listening for GridFTP client connections.
Definition: globus_ftp_control_server.c:852
globus_result_t globus_ftp_control_server_listen(globus_ftp_control_server_t *handle, unsigned short *port, globus_ftp_control_server_callback_t callback, void *callback_arg)
Listen on for FTP Client Connections.
Definition: globus_ftp_control_server.c:264
globus_result_t globus_ftp_control_server_accept(globus_ftp_control_server_t *listener, globus_ftp_control_handle_t *handle, globus_ftp_control_callback_t callback, void *callback_arg)
Accept a Client Connection.
Definition: globus_ftp_control_server.c:1011
globus_result_t globus_ftp_control_server_handle_init(globus_ftp_control_server_t *handle)
Initialize a GridFTP server handle.
Definition: globus_ftp_control_server.c:149
globus_result_t globus_ftp_control_command_copy(globus_ftp_control_command_t *dest, globus_ftp_control_command_t *src)
Copy of GridFTP command.
Definition: globus_ftp_control_server.c:694
globus_result_t globus_ftp_control_read_commands(globus_ftp_control_handle_t *handle, globus_ftp_control_command_callback_t callback, void *callback_arg)
Read GridFTP commands.
Definition: globus_ftp_control_server.c:2455
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 GridFTP command.
Definition: globus_ftp_control_server.c:519
Authentication Values.
Definition: globus_ftp_control.h:468
Control DCAU subject authentication type.
Definition: globus_ftp_control.h:119
Control striping round robin attribute structure.
Definition: globus_ftp_control.h:142
Automatically set the TCP buffer/window size.
Definition: globus_ftp_control.h:357
Don't change the TCP buffer/window size from the system default.
Definition: globus_ftp_control.h:338
Set the TCP buffer/window size to a fixed value.
Definition: globus_ftp_control.h:347
Control DCAU union.
Definition: globus_ftp_control.h:157
Control striping attribute union.
Definition: globus_ftp_control.h:195
Control parallelism attribute structure
Definition: globus_ftp_control.h:246
Control tcpbuffer attribute structure.
Definition: globus_ftp_control.h:368