globus_ftp_client 9.8
Loading...
Searching...
No Matches
globus_i_ftp_client.h
1/*
2 * Copyright 1999-2006 University of Chicago
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
22#endif /* GLOBUS_DONT_DOCUMENT_INTERNAL */
23
24#ifndef GLOBUS_I_FTP_CLIENT_H
25#define GLOBUS_I_FTP_CLIENT_H
26
27#include "globus_common.h"
28#include "globus_ftp_client.h"
30#include "globus_error_string.h"
31#include "globus_xio.h"
32
33#define GLOBUS_L_FTP_CLIENT_SSH_EXEC_SCRIPT "gridftp-ssh"
34
35#define GLOBUS_L_FTP_CLIENT_CLIENTINFO_APPNAME "libglobus_ftp_client"
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41#ifdef DEBUG_LOCKS
42#define globus_i_ftp_client_handle_lock(handle) \
43 printf("locking handle %p at %s:%d\n", (handle), __FILE__, __LINE__), \
44 globus_mutex_lock(&(handle)->mutex)
45#define globus_i_ftp_client_handle_unlock(handle) \
46 printf("unlocking handle %p at %s:%d\n", (handle), __FILE__, __LINE__), \
47 globus_mutex_unlock(&(handle)->mutex)
48#define globus_i_ftp_client_data_target_lock(data_target) \
49 printf("locking data_target %p at %s:%d\n", (data_target), __FILE__, __LINE__), \
50 globus_mutex_lock(&(data_target)->mutex)
51#define globus_i_ftp_client_data_target_unlock(data_target) \
52 printf("unlocking data_target %p at %s:%d\n", (data_target), __FILE__, __LINE__), \
53 globus_mutex_unlock(&(data_target)->mutex)
54#else
55#define globus_i_ftp_client_handle_lock(handle) \
56 globus_mutex_lock(&handle->mutex)
57#define globus_i_ftp_client_handle_unlock(handle) \
58 globus_mutex_unlock(&handle->mutex)
59#define globus_i_ftp_client_data_target_lock(data_target) \
60 globus_mutex_lock(&(data_target)->mutex)
61#define globus_i_ftp_client_data_target_unlock(data_target) \
62 globus_mutex_unlock(&(data_target)->mutex)
63#endif
64
70#define GLOBUS_FTP_CLIENT_MAGIC_STRING "FTPClient-1.0"
71
72#ifdef BUILD_DEBUG
73#define GLOBUS_I_FTP_CLIENT_BAD_MAGIC(h) \
74 (!(h && (*h) && \
75 !strcmp(((*h))->magic, \
76 GLOBUS_FTP_CLIENT_MAGIC_STRING)))
77#else
78#define GLOBUS_I_FTP_CLIENT_BAD_MAGIC(h) 0
79#endif
80
81extern int globus_i_ftp_client_debug_level;
82
83#ifdef BUILD_DEBUG
84#define globus_i_ftp_client_debug(Level) \
85 (globus_i_ftp_client_debug_level >= (Level))
86
87#define globus_i_ftp_client_debug_printf(level, message) \
88do { \
89 if (globus_i_ftp_client_debug(level)) \
90 { \
91 globus_libc_fprintf message; \
92 } \
93} while (0)
94
95#define globus_i_ftp_client_debug_states(level, handle) \
96 do { \
97 if(handle != NULL) \
98 { \
99 globus_i_ftp_client_debug_printf(level, (stderr, \
100 " handle state = %s\n" \
101 " source state = %s\n" \
102 " dest state = %s\n", \
103 globus_i_ftp_handle_state_to_string(handle->state), \
104 handle->source \
105 ? globus_i_ftp_target_state_to_string(handle->source->state) \
106 : "NULL", \
107 handle->dest \
108 ? globus_i_ftp_target_state_to_string(handle->dest->state) \
109 : "NULL")); \
110 } \
111 else \
112 { \
113 globus_i_ftp_client_debug_printf(level, (stderr, "handle is null\n")); \
114 } \
115} while(0)
116
117#else
118#define globus_i_ftp_client_debug_printf(level, message)
119#define globus_i_ftp_client_debug_states(level, handle)
120#endif
121
122/* send NOOP if idle for more than 15 seconds */
123#define GLOBUS_I_FTP_CLIENT_NOOP_IDLE 15
124/*
125 * Attributes
126 */
127
132{
133 globus_ftp_control_parallelism_t parallelism;
134 globus_bool_t force_striped;
135 globus_ftp_control_layout_t layout;
136 globus_ftp_control_tcpbuffer_t buffer;
137 globus_bool_t using_default_auth;
138 globus_ftp_control_auth_info_t auth_info;
139 globus_ftp_control_type_t type;
140 globus_ftp_control_mode_t mode;
141 globus_bool_t list_uses_data_mode;
142 globus_bool_t append;
143 globus_ftp_control_dcau_t dcau;
144 globus_ftp_control_protection_t data_prot;
145 globus_bool_t resume_third_party;
146 globus_bool_t read_all;
147 globus_ftp_client_data_callback_t read_all_intermediate_callback;
148 void * read_all_intermediate_callback_arg;
149 globus_bool_t allow_ipv6;
150 globus_off_t allocated_size;
151 globus_bool_t cwd_first;
152 char * authz_assert;
153 globus_bool_t cache_authz_assert;
154 globus_bool_t delayed_pasv;
155 char * net_stack_str;
156 char * disk_stack_str;
157 char * module_alg_str;
158 char * clientinfo_argstr;
159 int dcsc_type;
160 void * dcsc_cred;
161 gss_cred_id_t dcsc_p_cred;
162 char * dcsc_blob;
163}
165
175typedef struct
176{
180 globus_off_t offset;
181
185 globus_off_t end_offset;
186}
188
194{
202 globus_bool_t cache_all;
203
208 globus_bool_t rfc1738_url;
209
214 globus_bool_t gridftp2;
215
223 globus_list_t * url_cache;
231 globus_list_t * plugins;
232
233 globus_size_t outstanding_commands;
234 globus_ftp_client_pipeline_callback_t pipeline_callback;
235 void * pipeline_arg;
236 globus_bool_t pipeline_done;
237
238 /*
239 * NETLOGGER
240 */
241 globus_bool_t nl_ftp;
242 globus_bool_t nl_io;
243 globus_netlogger_handle_t * nl_handle;
244
245 /* client info */
246 char * clientinfo_app_name;
247 char * clientinfo_app_ver;
248 char * clientinfo_other;
249}
251
252/* Handles */
256typedef enum
257{
258 GLOBUS_FTP_CLIENT_HANDLE_START,
259 GLOBUS_FTP_CLIENT_HANDLE_SOURCE_CONNECT,
260 GLOBUS_FTP_CLIENT_HANDLE_SOURCE_SETUP_CONNECTION,
261 GLOBUS_FTP_CLIENT_HANDLE_SOURCE_LIST,
262 GLOBUS_FTP_CLIENT_HANDLE_SOURCE_RETR_OR_ERET,
263 GLOBUS_FTP_CLIENT_HANDLE_DEST_CONNECT,
264 GLOBUS_FTP_CLIENT_HANDLE_DEST_SETUP_CONNECTION,
265 GLOBUS_FTP_CLIENT_HANDLE_DEST_STOR_OR_ESTO,
266 GLOBUS_FTP_CLIENT_HANDLE_ABORT,
267 GLOBUS_FTP_CLIENT_HANDLE_RESTART,
268 GLOBUS_FTP_CLIENT_HANDLE_FAILURE,
269 /* This is called when one side of a third-party transfer has sent
270 * it's positive or negative response to the transfer, but the
271 * other hasn't yet done the same.
272 */
273 GLOBUS_FTP_CLIENT_HANDLE_THIRD_PARTY_TRANSFER,
274 GLOBUS_FTP_CLIENT_HANDLE_THIRD_PARTY_TRANSFER_ONE_COMPLETE,
275 GLOBUS_FTP_CLIENT_HANDLE_FINALIZE
276}
277globus_ftp_client_handle_state_t;
278
282typedef enum
283{
284 GLOBUS_FTP_CLIENT_IDLE,
285 GLOBUS_FTP_CLIENT_CHMOD,
286 GLOBUS_FTP_CLIENT_CHGRP,
287 GLOBUS_FTP_CLIENT_UTIME,
288 GLOBUS_FTP_CLIENT_SYMLINK,
289 GLOBUS_FTP_CLIENT_DELETE,
290 GLOBUS_FTP_CLIENT_MKDIR,
291 GLOBUS_FTP_CLIENT_RMDIR,
292 GLOBUS_FTP_CLIENT_MOVE,
293 GLOBUS_FTP_CLIENT_LIST,
294 GLOBUS_FTP_CLIENT_NLST,
295 GLOBUS_FTP_CLIENT_MLSD,
296 GLOBUS_FTP_CLIENT_MLSR,
297 GLOBUS_FTP_CLIENT_MLST,
298 GLOBUS_FTP_CLIENT_STAT,
299 GLOBUS_FTP_CLIENT_GET,
300 GLOBUS_FTP_CLIENT_PUT,
301 GLOBUS_FTP_CLIENT_TRANSFER,
302 GLOBUS_FTP_CLIENT_MDTM,
303 GLOBUS_FTP_CLIENT_SIZE,
304 GLOBUS_FTP_CLIENT_CKSM,
305 GLOBUS_FTP_CLIENT_FEAT,
306 GLOBUS_FTP_CLIENT_CWD
307}
308globus_i_ftp_client_operation_t;
309
310typedef enum
311{
312 GLOBUS_FTP_CLIENT_TARGET_START,
313 GLOBUS_FTP_CLIENT_TARGET_CONNECT,
314 GLOBUS_FTP_CLIENT_TARGET_AUTHENTICATE,
315 GLOBUS_FTP_CLIENT_TARGET_SETUP_SITE_FAULT,
316 GLOBUS_FTP_CLIENT_TARGET_SITE_FAULT,
317 GLOBUS_FTP_CLIENT_TARGET_SETUP_SITE_HELP,
318 GLOBUS_FTP_CLIENT_TARGET_SITE_HELP,
319 GLOBUS_FTP_CLIENT_TARGET_FEAT,
320 GLOBUS_FTP_CLIENT_TARGET_SETUP_CONNECTION,
321 GLOBUS_FTP_CLIENT_TARGET_SETUP_CLIENTINFO,
322 GLOBUS_FTP_CLIENT_TARGET_CLIENTINFO,
323 GLOBUS_FTP_CLIENT_TARGET_SETUP_TYPE,
324 GLOBUS_FTP_CLIENT_TARGET_TYPE,
325 GLOBUS_FTP_CLIENT_TARGET_SETUP_MODE,
326 GLOBUS_FTP_CLIENT_TARGET_MODE,
327 GLOBUS_FTP_CLIENT_TARGET_SETUP_SIZE,
328 GLOBUS_FTP_CLIENT_TARGET_SIZE,
329 GLOBUS_FTP_CLIENT_TARGET_SETUP_CKSM,
330 GLOBUS_FTP_CLIENT_TARGET_CKSM,
331 GLOBUS_FTP_CLIENT_TARGET_SETUP_DCSC,
332 GLOBUS_FTP_CLIENT_TARGET_DCSC,
333 GLOBUS_FTP_CLIENT_TARGET_SETUP_DCAU,
334 GLOBUS_FTP_CLIENT_TARGET_DCAU,
335 GLOBUS_FTP_CLIENT_TARGET_SETUP_PBSZ,
336 GLOBUS_FTP_CLIENT_TARGET_PBSZ,
337 GLOBUS_FTP_CLIENT_TARGET_SETUP_PROT,
338 GLOBUS_FTP_CLIENT_TARGET_PROT,
339 GLOBUS_FTP_CLIENT_TARGET_SETUP_BUFSIZE,
340 GLOBUS_FTP_CLIENT_TARGET_BUFSIZE,
341 GLOBUS_FTP_CLIENT_TARGET_SETUP_REMOTE_RETR_OPTS,
342 GLOBUS_FTP_CLIENT_TARGET_REMOTE_RETR_OPTS,
343 GLOBUS_FTP_CLIENT_TARGET_SETUP_LOCAL_RETR_OPTS,
344 GLOBUS_FTP_CLIENT_TARGET_LOCAL_RETR_OPTS,
345 GLOBUS_FTP_CLIENT_TARGET_OPTS_PASV_DELAYED,
346 GLOBUS_FTP_CLIENT_TARGET_SETUP_PASV,
347 GLOBUS_FTP_CLIENT_TARGET_PASV,
348 GLOBUS_FTP_CLIENT_TARGET_SETUP_PORT,
349 GLOBUS_FTP_CLIENT_TARGET_PORT,
350 GLOBUS_FTP_CLIENT_TARGET_SETUP_AUTHZ_ASSERT,
351 GLOBUS_FTP_CLIENT_TARGET_AUTHZ_ASSERT,
352 GLOBUS_FTP_CLIENT_TARGET_SETUP_SETNETSTACK,
353 GLOBUS_FTP_CLIENT_TARGET_SETNETSTACK,
354 GLOBUS_FTP_CLIENT_TARGET_SETUP_SETDISKSTACK,
355 GLOBUS_FTP_CLIENT_TARGET_SETDISKSTACK,
356 GLOBUS_FTP_CLIENT_TARGET_SETUP_ALLO,
357 GLOBUS_FTP_CLIENT_TARGET_ALLO,
358 GLOBUS_FTP_CLIENT_TARGET_SETUP_REST_STREAM,
359 GLOBUS_FTP_CLIENT_TARGET_SETUP_REST_EB,
360 GLOBUS_FTP_CLIENT_TARGET_REST,
361 GLOBUS_FTP_CLIENT_TARGET_SETUP_OPERATION,
362 GLOBUS_FTP_CLIENT_TARGET_SETUP_LIST,
363 GLOBUS_FTP_CLIENT_TARGET_SETUP_LIST_CWD,
364 GLOBUS_FTP_CLIENT_TARGET_SETUP_GET,
365 GLOBUS_FTP_CLIENT_TARGET_SETUP_PUT,
366 GLOBUS_FTP_CLIENT_TARGET_SETUP_TRANSFER_SOURCE,
367 GLOBUS_FTP_CLIENT_TARGET_SETUP_TRANSFER_DEST,
368 GLOBUS_FTP_CLIENT_TARGET_SETUP_CHMOD,
369 GLOBUS_FTP_CLIENT_TARGET_SETUP_CHGRP,
370 GLOBUS_FTP_CLIENT_TARGET_SETUP_UTIME,
371 GLOBUS_FTP_CLIENT_TARGET_SETUP_SYMLINK,
372 GLOBUS_FTP_CLIENT_TARGET_SETUP_DELETE,
373 GLOBUS_FTP_CLIENT_TARGET_SETUP_MKDIR,
374 GLOBUS_FTP_CLIENT_TARGET_SETUP_RMDIR,
375 GLOBUS_FTP_CLIENT_TARGET_SETUP_RNFR,
376 GLOBUS_FTP_CLIENT_TARGET_SETUP_RNTO,
377 GLOBUS_FTP_CLIENT_TARGET_SETUP_MDTM,
378 GLOBUS_FTP_CLIENT_TARGET_SETUP_MLST,
379 GLOBUS_FTP_CLIENT_TARGET_SETUP_STAT,
380 GLOBUS_FTP_CLIENT_TARGET_SETUP_GETPUT_GET,
381 GLOBUS_FTP_CLIENT_TARGET_SETUP_GETPUT_PUT,
382 GLOBUS_FTP_CLIENT_TARGET_MLST,
383 GLOBUS_FTP_CLIENT_TARGET_STAT,
384 GLOBUS_FTP_CLIENT_TARGET_LIST,
385 GLOBUS_FTP_CLIENT_TARGET_RETR,
386 GLOBUS_FTP_CLIENT_TARGET_STOR,
387 GLOBUS_FTP_CLIENT_TARGET_MDTM,
388 GLOBUS_FTP_CLIENT_TARGET_GETPUT_PASV_GET,
389 GLOBUS_FTP_CLIENT_TARGET_GETPUT_PASV_PUT,
390 GLOBUS_FTP_CLIENT_TARGET_GETPUT_PASV_TRANSFER,
391 GLOBUS_FTP_CLIENT_TARGET_READY_FOR_DATA,
392 GLOBUS_FTP_CLIENT_TARGET_NEED_LAST_BLOCK,
393 GLOBUS_FTP_CLIENT_TARGET_NEED_EMPTY_QUEUE,
394 GLOBUS_FTP_CLIENT_TARGET_NEED_EMPTY_AND_COMPLETE,
395 GLOBUS_FTP_CLIENT_TARGET_NEED_COMPLETE,
396 GLOBUS_FTP_CLIENT_TARGET_COMPLETED_OPERATION,
397 GLOBUS_FTP_CLIENT_TARGET_NOOP,
398 GLOBUS_FTP_CLIENT_TARGET_FAULT,
399 GLOBUS_FTP_CLIENT_TARGET_CLOSED,
400 GLOBUS_FTP_CLIENT_TARGET_SETUP_CWD
401}
402globus_ftp_client_target_state_t;
403
404
405typedef struct globus_i_ftp_client_url_ent_s
406{
407 globus_i_ftp_client_operation_t op;
408 char * source_url;
409 globus_url_t src_url;
410 char * dest_url;
411 globus_url_t dst_url;
412
413} globus_i_ftp_client_url_ent_t;
414
415
428/* Do not access members of the feature
429 structures below. Instead, use interface functions:
430 globus_i_ftp_client_feature_get()
431 globus_i_ftp_client_feature_set()
432 globus_i_ftp_client_features_init()
433 globus_i_ftp_client_features_destroy()
434 This will facilitate future changes in the structures.
435*/
437{
438 globus_ftp_client_tristate_t list[GLOBUS_FTP_CLIENT_FEATURE_MAX];
440
441
442/* Should it be needed to store feature parameters
443 beside feature names, these are the proposed structures:
444
445typedef struct globus_i_ftp_client_feature_s{
446 globus_ftp_client_tristate_t supported;
447 char ** attrs;
448} globus_i_ftp_client_feature_t;
449
450typedef struct globus_i_ftp_client_features_s
451{
452 globus_ftp_client_feature_t list[GLOBUS_FTP_CLIENT_FEATURE_MAX];
453} globus_i_ftp_client_features_t;
454
455*/
456
458globus_i_ftp_client_features_init();
459
460globus_result_t
461globus_i_ftp_client_features_destroy(
463
465globus_i_ftp_client_feature_get(
468
469void
470globus_i_ftp_client_feature_set(
474
475char *
476globus_i_ftp_client_find_ssh_client_program();
477
491typedef struct
492{
506 globus_i_ftp_client_operation_t operation;
507}
509
523{
525 char magic[24];
526
529
535
538
545 char * dest_url;
547
549 globus_i_ftp_client_operation_t op;
550
555
557 globus_ftp_client_handle_state_t state;
558
563 globus_priority_q_t stalled_blocks;
564
569 globus_hashtable_t active_blocks;
570
575
579 globus_ftp_control_host_port_t * pasv_address;
580
585
587 globus_object_t * err;
588
593
598 globus_bool_t notify_abort;
599 globus_bool_t notify_restart;
600
602 globus_off_t source_size;
603
606
608 globus_off_t partial_offset;
609
611 globus_off_t partial_end_offset;
612
617 globus_off_t base_offset;
622
624 globus_abstime_t * modification_time_pointer;
625
627 globus_off_t * size_pointer;
628
631
633 globus_byte_t ** mlst_buffer_pointer;
634 globus_size_t * mlst_buffer_length_pointer;
635
638
641
643 struct tm utime_time;
644
646 globus_mutex_t mutex;
647
649 char * checksum;
650
652 globus_off_t checksum_offset;
653 globus_off_t checksum_length;
654 char * checksum_alg;
655
657 globus_fifo_t src_op_queue;
658 globus_fifo_t dst_op_queue;
659 globus_fifo_t src_response_pending_queue;
660 globus_fifo_t dst_response_pending_queue;
661
662 int no_callback_count;
663
664 globus_bool_t source_pasv;
665 globus_bool_t tried_both_pasv;
671}
673
683{
685 globus_ftp_client_target_state_t state;
686
688 globus_ftp_control_handle_t * control_handle;
692 globus_url_t url;
694 globus_ftp_control_auth_info_t auth_info;
695
699 globus_ftp_control_dcau_t dcau;
700 globus_ftp_control_protection_t data_prot;
701 unsigned long pbsz;
702 globus_ftp_control_type_t type;
703 globus_ftp_control_tcpbuffer_t tcp_buffer;
704 globus_ftp_control_mode_t mode;
705 globus_ftp_control_structure_t structure;
706 globus_ftp_control_layout_t layout;
707 globus_ftp_control_parallelism_t parallelism;
708 char * authz_assert;
709 char * net_stack_str;
710 char * disk_stack_str;
711 globus_bool_t delayed_pasv;
712
715
718
721
724
725 /* used for determining need for NOOP */
726 globus_abstime_t last_access;
727
728 globus_bool_t src_command_sent;
729 globus_bool_t dst_command_sent;
730
731 globus_list_t * net_stack_list;
732
733 char * clientinfo_argstr;
734
735 int dcsc_type;
736 char * dcsc_blob;
737 gss_cred_id_t dcsc_p_cred;
739
758typedef struct
759{
761 globus_url_t url;
767}
769
774{
775 char * source_url;
777 char * dest_url;
780 globus_abstime_t when;
781 globus_callback_handle_t callback_handle;
782}
784
799{
811
817
826
845 third_party_transfer_func;
846
848 modification_time_func;
857
862
871
875
876
877#ifndef DOXYGEN
878/* globus_ftp_client_attr.c */
879globus_result_t
880globus_i_ftp_client_handleattr_copy(
883
884void
885globus_i_ftp_client_handleattr_destroy(
887
888int
889globus_i_ftp_client_plugin_list_search(
890 void * datum,
891 void * arg);
892/* globus_ftp_client.c */
893void
894globus_i_ftp_client_handle_is_active(globus_ftp_client_handle_t *handle);
895
896void
897globus_i_ftp_client_handle_is_not_active(globus_ftp_client_handle_t *handle);
898
899void
900globus_i_ftp_client_control_is_active(globus_ftp_control_handle_t * handle);
901
902void
903globus_i_ftp_client_control_is_not_active(globus_ftp_control_handle_t * handle);
904
905const char *
906globus_i_ftp_op_to_string(
907 globus_i_ftp_client_operation_t op);
908
909const char *
910globus_i_ftp_target_state_to_string(
911 globus_ftp_client_target_state_t target_state);
912
913const char *
914globus_i_ftp_handle_state_to_string(
915 globus_ftp_client_handle_state_t handle_state);
916
917int
918globus_i_ftp_client_count_digits(
919 globus_off_t num);
920
921extern globus_ftp_control_auth_info_t globus_i_ftp_client_default_auth_info;
922extern globus_reltime_t globus_i_ftp_client_noop_idle;
923
924extern globus_xio_stack_t ftp_client_i_popen_stack;
925extern globus_xio_driver_t ftp_client_i_popen_driver;
926extern globus_bool_t ftp_client_i_popen_ready;
927
928
929/* globus_ftp_client_handle.c */
930globus_object_t *
931globus_i_ftp_client_target_find(
933 const char * url,
936
937void
938globus_i_ftp_client_target_release(
941
942void
943globus_i_ftp_client_restart_info_delete(
944 globus_i_ftp_client_restart_t * restart_info);
945
946globus_bool_t
947globus_i_ftp_client_can_reuse_data_conn(
948 globus_i_ftp_client_handle_t * client_handle);
949
950globus_result_t
951globus_i_ftp_client_cache_add(
952 globus_list_t ** cache,
953 const char * url,
954 globus_bool_t rfc1738_url);
955
956globus_result_t
957globus_i_ftp_client_cache_remove(
958 globus_list_t ** cache,
959 const char * url,
960 globus_bool_t rfc1738_url);
961
962globus_result_t
963globus_i_ftp_client_cache_destroy(
964 globus_list_t ** cache);
965
966/* globus_ftp_client_data.c */
967int
968globus_i_ftp_client_data_cmp(
969 void * priority_1,
970 void * priority_2);
971
972globus_object_t *
973globus_i_ftp_client_data_dispatch_queue(
975
976void
977globus_i_ftp_client_data_flush(
979
980/* globus_ftp_client_transfer.c */
981void
982globus_i_ftp_client_transfer_complete(
983 globus_i_ftp_client_handle_t * client_handle);
984
985globus_object_t *
986globus_i_ftp_client_restart(
988 globus_i_ftp_client_restart_t * restart_info);
989
990/* globus_ftp_client_plugin.c */
991
992void
993globus_i_ftp_client_plugin_notify_list(
995 const char * url,
997
998void
999globus_i_ftp_client_plugin_notify_verbose_list(
1001 const char * url,
1003
1004void
1005globus_i_ftp_client_plugin_notify_machine_list(
1007 const char * url,
1009
1010void
1011globus_i_ftp_client_plugin_notify_recursive_list(
1013 const char * url,
1015
1016void
1017globus_i_ftp_client_plugin_notify_mlst(
1019 const char * url,
1021
1022void
1023globus_i_ftp_client_plugin_notify_stat(
1025 const char * url,
1027
1028void
1029globus_i_ftp_client_plugin_notify_chmod(
1031 const char * url,
1032 int mode,
1034
1035void
1036globus_i_ftp_client_plugin_notify_chgrp(
1038 const char * url,
1039 const char * group,
1041
1042void
1043globus_i_ftp_client_plugin_notify_utime(
1045 const char * url,
1046 const struct tm * utime_time,
1048
1049void
1050globus_i_ftp_client_plugin_notify_symlink(
1052 const char * url,
1053 const char * link_url,
1055
1056void
1057globus_i_ftp_client_plugin_notify_cksm(
1059 const char * url,
1060 globus_off_t offset,
1061 globus_off_t length,
1062 const char * algorithm,
1064
1065void
1066globus_i_ftp_client_plugin_notify_delete(
1068 const char * url,
1070
1071void
1072globus_i_ftp_client_plugin_notify_feat(
1074 const char * url,
1076
1077void
1078globus_i_ftp_client_plugin_notify_mkdir(
1080 const char * url,
1082
1083void
1084globus_i_ftp_client_plugin_notify_rmdir(
1086 const char * url,
1088
1089void
1090globus_i_ftp_client_plugin_notify_move(
1092 const char * source_url,
1093 const char * dest_url,
1095
1096void
1097globus_i_ftp_client_plugin_notify_get(
1099 const char * url,
1101 const globus_ftp_client_restart_marker_t * restart);
1102
1103void
1104globus_i_ftp_client_plugin_notify_put(
1106 const char * url,
1108 const globus_ftp_client_restart_marker_t * restart);
1109
1110void
1111globus_i_ftp_client_plugin_notify_transfer(
1113 const char * source_url,
1115 const char * dest_url,
1117 const globus_ftp_client_restart_marker_t * restart);
1118
1119void
1120globus_i_ftp_client_plugin_notify_modification_time(
1122 const char * url,
1124
1125void
1126globus_i_ftp_client_plugin_notify_size(
1128 const char * url,
1130
1131void
1132globus_i_ftp_client_plugin_notify_restart(
1134
1135void
1136globus_i_ftp_client_plugin_notify_connect(
1138 const char * url);
1139
1140void
1141globus_i_ftp_client_plugin_notify_authenticate(
1143 const char * url,
1144 const globus_ftp_control_auth_info_t * auth_info);
1145
1146void
1147globus_i_ftp_client_plugin_notify_abort(
1149
1150void
1151globus_i_ftp_client_plugin_notify_read(
1153 const globus_byte_t * buffer,
1154 globus_size_t buffer_length);
1155
1156void
1157globus_i_ftp_client_plugin_notify_write(
1159 const globus_byte_t * buffer,
1160 globus_size_t buffer_length,
1161 globus_off_t offset,
1162 globus_bool_t eof);
1163
1164void
1165globus_i_ftp_client_plugin_notify_data(
1167 globus_object_t * error,
1168 const globus_byte_t * buffer,
1169 globus_size_t buffer_length,
1170 globus_off_t offset,
1171 globus_bool_t eof);
1172
1173void
1174globus_i_ftp_client_plugin_notify_command(
1176 const char * url,
1178 const char * command_spec,
1179 ...);
1180
1181void
1182globus_i_ftp_client_plugin_notify_response(
1184 const char * url,
1186 globus_object_t * error,
1187 const globus_ftp_control_response_t * ftp_response);
1188
1189void
1190globus_i_ftp_client_plugin_notify_fault(
1192 const char * url,
1193 globus_object_t * error);
1194
1195void
1196globus_i_ftp_client_plugin_notify_complete(
1198
1199/* globus_ftp_client_restart.c */
1200globus_object_t *
1201globus_i_ftp_client_restart_register_oneshot(
1203
1204/* globus_ftp_client_transfer.c */
1205
1206globus_object_t *
1207globus_l_ftp_client_url_parse(
1208 const char * url_string,
1209 globus_url_t * url,
1210 globus_bool_t rfc1738_url);
1211
1212void
1213globus_i_ftp_client_force_close_callback(
1214 void * user_arg,
1215 globus_ftp_control_handle_t * handle,
1216 globus_object_t * error,
1217 globus_ftp_control_response_t * response);
1218
1219globus_object_t *
1220globus_i_ftp_client_target_activate(
1223 globus_bool_t * registered);
1224
1225/* globus_ftp_client_state.c */
1226void
1227globus_i_ftp_client_response_callback(
1228 void * user_arg,
1229 globus_ftp_control_handle_t * handle,
1230 globus_object_t * error,
1231 globus_ftp_control_response_t * response);
1232
1233/* globus_ftp_client_data.c */
1234void
1235globus_l_ftp_client_complete_kickout(
1236 void * user_arg);
1237
1238globus_object_t *
1239globus_i_ftp_client_wrap_ftp_error(
1240 globus_module_descriptor_t * base_source,
1241 int code,
1242 const char * message,
1243 int error_type,
1244 const char * source_file,
1245 const char * source_func,
1246 int source_line,
1247 const char * format,
1248 ...);
1249/* Errors */
1250
1251#define GLOBUS_I_FTP_CLIENT_ERROR_NULL_PARAMETER(param) \
1252 globus_error_construct_error(\
1253 GLOBUS_FTP_CLIENT_MODULE,\
1254 GLOBUS_NULL,\
1255 GLOBUS_FTP_CLIENT_ERROR_PARAMETER, \
1256 __FILE__, \
1257 _globus_func_name, \
1258 __LINE__, \
1259 "a NULL value for %s was used", param)
1260#define GLOBUS_I_FTP_CLIENT_ERROR_INVALID_PARAMETER(param) \
1261 globus_error_construct_error(\
1262 GLOBUS_FTP_CLIENT_MODULE,\
1263 GLOBUS_NULL,\
1264 GLOBUS_FTP_CLIENT_ERROR_PARAMETER, \
1265 __FILE__, \
1266 _globus_func_name, \
1267 __LINE__, \
1268 "an invalid value for %s was used", param)
1269#define GLOBUS_I_FTP_CLIENT_ERROR_OUT_OF_MEMORY() \
1270 globus_error_construct_error(\
1271 GLOBUS_FTP_CLIENT_MODULE,\
1272 GLOBUS_NULL,\
1273 GLOBUS_FTP_CLIENT_ERROR_MEMORY, \
1274 __FILE__, \
1275 _globus_func_name, \
1276 __LINE__, \
1277 "a memory allocation failed")
1278#define GLOBUS_I_FTP_CLIENT_ERROR_OPERATION_ABORTED() \
1279 globus_error_construct_error(\
1280 GLOBUS_FTP_CLIENT_MODULE,\
1281 GLOBUS_NULL,\
1282 GLOBUS_FTP_CLIENT_ERROR_ABORTED, \
1283 __FILE__, \
1284 _globus_func_name, \
1285 __LINE__, \
1286 "the operation was aborted")
1287#define GLOBUS_I_FTP_CLIENT_ERROR_INTERNAL_ERROR(err) \
1288 globus_error_construct_error(\
1289 GLOBUS_FTP_CLIENT_MODULE,\
1290 err,\
1291 GLOBUS_FTP_CLIENT_ERROR_INTERNAL, \
1292 __FILE__, \
1293 _globus_func_name, \
1294 __LINE__, \
1295 "an internal error occurred in globus_ftp_client")
1296#define GLOBUS_I_FTP_CLIENT_ERROR_OBJECT_IN_USE(obj) \
1297 globus_error_construct_error(\
1298 GLOBUS_FTP_CLIENT_MODULE,\
1299 GLOBUS_NULL,\
1300 GLOBUS_FTP_CLIENT_ERROR_IN_USE, \
1301 __FILE__, \
1302 _globus_func_name, \
1303 __LINE__, \
1304 "%s was already in use", obj)
1305#define GLOBUS_I_FTP_CLIENT_ERROR_OBJECT_NOT_IN_USE(obj) \
1306 globus_error_construct_error(\
1307 GLOBUS_FTP_CLIENT_MODULE,\
1308 GLOBUS_NULL,\
1309 GLOBUS_FTP_CLIENT_ERROR_NOT_IN_USE, \
1310 __FILE__, \
1311 _globus_func_name, \
1312 __LINE__, \
1313 "%s was not in use", obj)
1314#define GLOBUS_I_FTP_CLIENT_ERROR_ALREADY_DONE() \
1315 globus_error_construct_error(\
1316 GLOBUS_FTP_CLIENT_MODULE,\
1317 GLOBUS_NULL,\
1318 GLOBUS_FTP_CLIENT_ERROR_COMPLETED, \
1319 __FILE__, \
1320 _globus_func_name, \
1321 __LINE__, \
1322 "already done")
1323#define GLOBUS_I_FTP_CLIENT_ERROR_INVALID_OPERATION(op) \
1324 globus_error_construct_error(\
1325 GLOBUS_FTP_CLIENT_MODULE,\
1326 GLOBUS_NULL,\
1327 GLOBUS_FTP_CLIENT_ERROR_INVALID_OPERATION, \
1328 __FILE__, \
1329 _globus_func_name, \
1330 __LINE__, \
1331 "%s not allowed here",\
1332 globus_i_ftp_op_to_string(op))
1333#define GLOBUS_I_FTP_CLIENT_ERROR_EOF() \
1334 globus_error_construct_error(\
1335 GLOBUS_FTP_CLIENT_MODULE,\
1336 GLOBUS_NULL,\
1337 GLOBUS_FTP_CLIENT_ERROR_UNEXPECTED_EOF, \
1338 __FILE__, \
1339 _globus_func_name, \
1340 __LINE__, \
1341 "EOF has been reached")
1342#define GLOBUS_I_FTP_CLIENT_ERROR_NO_SUCH_FILE(file) \
1343 globus_error_construct_error(\
1344 GLOBUS_FTP_CLIENT_MODULE,\
1345 GLOBUS_NULL,\
1346 GLOBUS_FTP_CLIENT_ERROR_NO_SUCH_FILE, \
1347 __FILE__, \
1348 _globus_func_name, \
1349 __LINE__, \
1350 "%s does not exist", file)
1351#define GLOBUS_I_FTP_CLIENT_ERROR_PROTOCOL_ERROR() \
1352 globus_error_construct_error(\
1353 GLOBUS_FTP_CLIENT_MODULE,\
1354 GLOBUS_NULL,\
1355 GLOBUS_FTP_CLIENT_ERROR_PROTOCOL, \
1356 __FILE__, \
1357 _globus_func_name, \
1358 __LINE__, \
1359 "a protocol error occurred")
1360#define GLOBUS_I_FTP_CLIENT_ERROR_RESPONSE(response) \
1361 globus_i_ftp_client_wrap_ftp_error( \
1362 GLOBUS_FTP_CLIENT_MODULE, \
1363 (response)->code, \
1364 (char *) (response)->response_buffer, \
1365 GLOBUS_FTP_CLIENT_ERROR_RESPONSE, \
1366 __FILE__, \
1367 _globus_func_name, \
1368 __LINE__, \
1369 "the server responded with an error")
1370#define GLOBUS_I_FTP_CLIENT_ERROR_UNSUPPORTED_FEATURE(feature) \
1371 globus_error_construct_error(\
1372 GLOBUS_FTP_CLIENT_MODULE,\
1373 GLOBUS_NULL,\
1374 GLOBUS_FTP_CLIENT_ERROR_FEATURE, \
1375 __FILE__, \
1376 _globus_func_name, \
1377 __LINE__, \
1378 "the server doesn't support the %s feature",\
1379 feature)
1380#define GLOBUS_I_FTP_CLIENT_NO_RESTART_MARKER() \
1381 globus_error_construct_error( \
1382 GLOBUS_FTP_CLIENT_MODULE, \
1383 GLOBUS_NULL, \
1384 GLOBUS_FTP_CLIENT_ERROR_NO_RESTART_MARKER, \
1385 __FILE__, \
1386 _globus_func_name, \
1387 __LINE__, \
1388 "Could not find restart info\n")
1389
1390#endif
1391
1392#ifdef __cplusplus
1393}
1394#endif
1395
1396#endif /* GLOBUS_I_FTP_CLIENT_H */
GridFTP Client.
Plugin Implementation.
void(* globus_ftp_client_data_callback_t)(void *user_arg, globus_ftp_client_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_client.h:315
globus_ftp_client_probed_feature_t
Definition globus_ftp_client.h:1229
globus_ftp_client_tristate_t
Definition globus_ftp_client.h:1217
void(* globus_ftp_client_complete_callback_t)(void *user_arg, globus_ftp_client_handle_t *handle, globus_object_t *error)
Definition globus_ftp_client.h:282
void(* globus_ftp_client_plugin_mkdir_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:511
void(* globus_ftp_client_plugin_third_party_transfer_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *source_url, const globus_ftp_client_operationattr_t *source_attr, const char *dest_url, const globus_ftp_client_operationattr_t *dest_attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:906
void(* globus_ftp_client_plugin_mlst_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:722
globus_ftp_client_plugin_t *(* globus_ftp_client_plugin_copy_t)(globus_ftp_client_plugin_t *plugin_template, void *plugin_specific)
Definition globus_ftp_client_plugin.h:131
void(* globus_ftp_client_plugin_get_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:832
globus_ftp_client_plugin_command_mask_t
Definition globus_ftp_client_plugin.h:72
void(* globus_ftp_client_plugin_cksm_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, globus_off_t offset, globus_off_t length, const char *algorithm, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:402
void(* globus_ftp_client_plugin_modification_time_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:943
void(* globus_ftp_client_plugin_write_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const globus_byte_t *buffer, globus_size_t buffer_length, globus_off_t offset, globus_bool_t eof)
Definition globus_ftp_client_plugin.h:1057
void(* globus_ftp_client_plugin_delete_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:440
void(* globus_ftp_client_plugin_chmod_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, int mode, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:244
void(* globus_ftp_client_plugin_data_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, globus_object_t *error, const globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof)
Definition globus_ftp_client_plugin.h:1094
void(* globus_ftp_client_plugin_utime_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const struct tm *utime_time, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:320
void(* globus_ftp_client_plugin_put_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:867
void(* globus_ftp_client_plugin_destroy_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific)
Definition globus_ftp_client_plugin.h:148
void(* globus_ftp_client_plugin_machine_list_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:652
void(* globus_ftp_client_plugin_complete_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle)
Definition globus_ftp_client_plugin.h:1210
void(* globus_ftp_client_plugin_move_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *source_url, const char *dest_url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:796
void(* globus_ftp_client_plugin_read_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const globus_byte_t *buffer, globus_size_t buffer_length)
Definition globus_ftp_client_plugin.h:1026
void(* globus_ftp_client_plugin_stat_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:758
void(* globus_ftp_client_plugin_authenticate_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_control_auth_info_t *auth_info)
Definition globus_ftp_client_plugin.h:208
void(* globus_ftp_client_plugin_symlink_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const char *link_url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:358
void(* globus_ftp_client_plugin_list_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:582
void(* globus_ftp_client_plugin_chgrp_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const char *group, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:282
void(* globus_ftp_client_plugin_command_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const char *command)
Definition globus_ftp_client_plugin.h:1126
void(* globus_ftp_client_plugin_feat_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:475
void(* globus_ftp_client_plugin_abort_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle)
Definition globus_ftp_client_plugin.h:1002
void(* globus_ftp_client_plugin_rmdir_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:546
void(* globus_ftp_client_plugin_size_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:978
void(* globus_ftp_client_plugin_verbose_list_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:617
void(* globus_ftp_client_plugin_response_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, globus_object_t *error, const globus_ftp_control_response_t *ftp_response)
Definition globus_ftp_client_plugin.h:1159
void(* globus_ftp_client_plugin_connect_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url)
Definition globus_ftp_client_plugin.h:177
void(* globus_ftp_client_plugin_fault_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, globus_object_t *error)
Definition globus_ftp_client_plugin.h:1186
void(* globus_ftp_client_plugin_recursive_list_t)(globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
Definition globus_ftp_client_plugin.h:687
URL caching support structure.
Definition globus_i_ftp_client.h:759
globus_url_t url
Definition globus_i_ftp_client.h:761
globus_i_ftp_client_target_t * target
Definition globus_i_ftp_client.h:766
Data connection caching information.
Definition globus_i_ftp_client.h:492
globus_i_ftp_client_operation_t operation
Definition globus_i_ftp_client.h:506
struct globus_i_ftp_client_target_s * source
Definition globus_i_ftp_client.h:497
struct globus_i_ftp_client_target_s * dest
Definition globus_i_ftp_client.h:502
FTP server features we are interested in.
Definition globus_i_ftp_client.h:437
FTP Client handle implementation.
Definition globus_i_ftp_client.h:523
struct globus_i_ftp_client_target_s * source
Definition globus_i_ftp_client.h:534
globus_byte_t ** mlst_buffer_pointer
Definition globus_i_ftp_client.h:633
char * source_url
Definition globus_i_ftp_client.h:537
struct tm utime_time
Definition globus_i_ftp_client.h:643
int chmod_file_mode
Definition globus_i_ftp_client.h:637
struct globus_i_ftp_client_target_s * dest
Definition globus_i_ftp_client.h:543
globus_ftp_client_handle_t * handle
Definition globus_i_ftp_client.h:528
globus_mutex_t mutex
Definition globus_i_ftp_client.h:646
globus_ftp_control_host_port_t * pasv_address
Definition globus_i_ftp_client.h:579
char magic[24]
Definition globus_i_ftp_client.h:525
globus_hashtable_t active_blocks
Definition globus_i_ftp_client.h:569
globus_off_t base_offset
Definition globus_i_ftp_client.h:617
struct globus_i_ftp_client_restart_s * restart_info
Definition globus_i_ftp_client.h:592
globus_abstime_t * modification_time_pointer
Definition globus_i_ftp_client.h:624
void * callback_arg
Definition globus_i_ftp_client.h:554
globus_off_t partial_end_offset
Definition globus_i_ftp_client.h:611
globus_priority_q_t stalled_blocks
Definition globus_i_ftp_client.h:563
int notify_in_progress
Definition globus_i_ftp_client.h:597
globus_i_ftp_client_operation_t op
Definition globus_i_ftp_client.h:549
globus_fifo_t src_op_queue
Definition globus_i_ftp_client.h:657
char * dest_url
Definition globus_i_ftp_client.h:545
globus_ftp_client_complete_callback_t callback
Definition globus_i_ftp_client.h:552
globus_i_ftp_client_features_t * features_pointer
Definition globus_i_ftp_client.h:630
int num_pasv_addresses
Definition globus_i_ftp_client.h:584
globus_off_t source_size
Definition globus_i_ftp_client.h:602
void * user_pointer
Definition globus_i_ftp_client.h:670
char * chgrp_group
Definition globus_i_ftp_client.h:640
globus_object_t * err
Definition globus_i_ftp_client.h:587
int num_active_blocks
Definition globus_i_ftp_client.h:574
globus_ftp_client_handle_state_t state
Definition globus_i_ftp_client.h:557
globus_off_t partial_offset
Definition globus_i_ftp_client.h:608
globus_ftp_client_restart_marker_t restart_marker
Definition globus_i_ftp_client.h:605
globus_off_t * size_pointer
Definition globus_i_ftp_client.h:627
globus_off_t checksum_offset
Definition globus_i_ftp_client.h:652
globus_off_t read_all_biggest_offset
Definition globus_i_ftp_client.h:621
char * checksum
Definition globus_i_ftp_client.h:649
Handle attributes.
Definition globus_i_ftp_client.h:194
globus_bool_t gridftp2
Definition globus_i_ftp_client.h:214
globus_list_t * url_cache
Definition globus_i_ftp_client.h:223
globus_bool_t rfc1738_url
Definition globus_i_ftp_client.h:208
globus_bool_t cache_all
Definition globus_i_ftp_client.h:202
globus_list_t * plugins
Definition globus_i_ftp_client.h:231
The globus_i_ftp_client_operationattr_t is a pointer to this structure type.
Definition globus_i_ftp_client.h:132
FTP Client Plugin.
Definition globus_i_ftp_client.h:799
char * plugin_name
Definition globus_i_ftp_client.h:810
globus_ftp_client_plugin_destroy_t destroy_func
Definition globus_i_ftp_client.h:825
globus_ftp_client_plugin_copy_t copy_func
Definition globus_i_ftp_client.h:821
globus_ftp_client_plugin_command_mask_t command_mask
Definition globus_i_ftp_client.h:870
void * plugin_specific
Definition globus_i_ftp_client.h:873
globus_ftp_client_plugin_t * plugin
Definition globus_i_ftp_client.h:816
Byte range report.
Definition globus_i_ftp_client.h:176
globus_off_t end_offset
Definition globus_i_ftp_client.h:185
globus_off_t offset
Definition globus_i_ftp_client.h:180
Restart information management.
Definition globus_i_ftp_client.h:774
FTP Connection State.
Definition globus_i_ftp_client.h:683
globus_ftp_control_auth_info_t auth_info
Definition globus_i_ftp_client.h:694
globus_ftp_client_target_state_t state
Definition globus_i_ftp_client.h:685
globus_ftp_control_handle_t * control_handle
Definition globus_i_ftp_client.h:688
globus_ftp_client_plugin_command_mask_t mask
Definition globus_i_ftp_client.h:723
globus_i_ftp_client_data_target_t cached_data_conn
Definition globus_i_ftp_client.h:720
char * url_string
Definition globus_i_ftp_client.h:690
globus_i_ftp_client_features_t * features
Definition globus_i_ftp_client.h:697
globus_ftp_control_dcau_t dcau
Definition globus_i_ftp_client.h:699
globus_i_ftp_client_handle_t * owner
Definition globus_i_ftp_client.h:717
globus_i_ftp_client_operationattr_t * attr
Definition globus_i_ftp_client.h:714
globus_url_t url
Definition globus_i_ftp_client.h:692
Restart marker.
Definition globus_ftp_client.h:225