int main(int argc, char **argv) { globus_ftp_client_handle_t handle; globus_ftp_client_operationattr_t attr; globus_byte_t buffer[1024]; globus_size_t buffer_length = sizeof(buffer); globus_result_t result; globus_ftp_client_handleattr_t handle_attr; char * src; char * dst; globus_module_activate(GLOBUS_FTP_CLIENT_MODULE); globus_ftp_client_handleattr_init(&handle_attr); globus_ftp_client_operationattr_init(&attr); test_parse_args(argc, argv, &handle_attr, &attr, &src, &dst); globus_mutex_init(&lock, GLOBUS_NULL); globus_cond_init(&cond, GLOBUS_NULL); globus_ftp_client_handle_init(&handle, &handle_attr); done = GLOBUS_FALSE; result = globus_ftp_client_get(&handle, src, &attr, GLOBUS_NULL, done_cb, 0); if(result != GLOBUS_SUCCESS) { done = GLOBUS_TRUE; } else { globus_ftp_client_register_read( &handle, (globus_byte_t *) 0x1, buffer_length, data_cb, 0); globus_ftp_client_register_read( &handle, (globus_byte_t *) 0x0, buffer_length, data_cb, 0); } globus_mutex_lock(&lock); globus_poll(); globus_ftp_client_register_read( &handle, (globus_byte_t *) 0x3, buffer_length, data_cb, 0); while(!done) { globus_cond_wait(&cond, &lock); } globus_mutex_unlock(&lock); globus_ftp_client_handle_destroy(&handle); globus_module_deactivate_all(); return 0; }
int main(int argc, char *argv[]) { globus_ftp_client_handle_t handle; globus_ftp_client_operationattr_t attr; globus_byte_t buffer[SIZE]; globus_size_t buffer_length = sizeof(buffer); globus_result_t result; char * src; char * dst; globus_ftp_client_handleattr_t handle_attr; globus_ftp_control_layout_t layout; globus_ftp_control_parallelism_t parallelism; int i; globus_ftp_client_restart_marker_t restart; LTDL_SET_PRELOADED_SYMBOLS(); globus_module_activate(GLOBUS_FTP_CLIENT_MODULE); globus_ftp_client_handleattr_init(&handle_attr); globus_ftp_client_operationattr_init(&attr); layout.mode = GLOBUS_FTP_CONTROL_STRIPING_NONE; parallelism.mode = GLOBUS_FTP_CONTROL_PARALLELISM_NONE; globus_ftp_client_restart_marker_init(&restart); /* Parse local arguments */ for(i = 1; i < argc; i++) { if(strcmp(argv[i], "-S") == 0 && i < argc) { layout.mode = GLOBUS_FTP_CONTROL_STRIPING_BLOCKED_ROUND_ROBIN; layout.round_robin.block_size = 15; test_remove_arg(&argc, argv, &i, 0); } else if(strcmp(argv[i], "-P") == 0 && i + 1 < argc) { parallelism.mode = GLOBUS_FTP_CONTROL_PARALLELISM_FIXED; parallelism.fixed.size = atoi(argv[i+1]); test_remove_arg(&argc, argv, &i, 1); } else if(strcmp(argv[i], "-R") == 0 && i+1 < argc) { char * p; globus_off_t offset, end; int bytes; p = argv[i+1]; while((*p) && (sscanf(p, "%"GLOBUS_OFF_T_FORMAT "-%"GLOBUS_OFF_T_FORMAT"%n", &offset, &end, &bytes) >= 2)) { globus_ftp_client_restart_marker_insert_range( &restart, offset, end); p += bytes; if(*p && *p == ',') p++; } test_remove_arg(&argc, argv, &i, 1); } } test_parse_args(argc, argv, &handle_attr, &attr, &src, &dst); globus_mutex_init(&lock, GLOBUS_NULL); globus_cond_init(&cond, GLOBUS_NULL); globus_ftp_client_operationattr_set_mode( &attr, GLOBUS_FTP_CONTROL_MODE_EXTENDED_BLOCK); globus_ftp_client_operationattr_set_layout(&attr, &layout); globus_ftp_client_operationattr_set_parallelism(&attr, ¶llelism); globus_ftp_client_handle_init(&handle, &handle_attr); done = GLOBUS_FALSE; result = globus_ftp_client_get(&handle, src, &attr, &restart, done_cb, 0); if(result != GLOBUS_SUCCESS) { fprintf(stderr, "%s", globus_object_printable_to_string(globus_error_get(result))); done = GLOBUS_TRUE; error = GLOBUS_TRUE; } else { globus_ftp_client_register_read( &handle, buffer, buffer_length, data_cb, 0); } globus_mutex_lock(&lock); while(!done) { globus_cond_wait(&cond, &lock); } globus_mutex_unlock(&lock); globus_ftp_client_handle_destroy(&handle); globus_module_deactivate_all(); if(test_abort_count && error) { return 0; } return error; }
int main(int argc, char *argv[]) { globus_ftp_client_handle_t handle; globus_ftp_client_operationattr_t attr; globus_ftp_client_handleattr_t handle_attr; globus_byte_t buffer[SIZE]; globus_size_t buffer_length = sizeof(buffer); globus_result_t result; globus_abstime_t modification_time; time_t t; struct tm * tm; char * src; char * dst; LTDL_SET_PRELOADED_SYMBOLS(); globus_module_activate(GLOBUS_FTP_CLIENT_MODULE); globus_ftp_client_handleattr_init(&handle_attr); globus_ftp_client_operationattr_init(&attr); test_parse_args(argc, argv, &handle_attr, &attr, &src, &dst); globus_mutex_init(&lock, GLOBUS_NULL); globus_cond_init(&cond, GLOBUS_NULL); globus_ftp_client_handle_init(&handle, &handle_attr); done = GLOBUS_FALSE; result = globus_ftp_client_modification_time(&handle, src, &attr, &modification_time, done_cb, 0); if(result != GLOBUS_SUCCESS) { fprintf(stderr, "%s", globus_object_printable_to_string(globus_error_get(result))); error = GLOBUS_TRUE; done = GLOBUS_TRUE; } globus_mutex_lock(&lock); while(!done) { globus_cond_wait(&cond, &lock); } globus_mutex_unlock(&lock); globus_ftp_client_handle_destroy(&handle); globus_module_deactivate_all(); if(test_abort_count && error) { return 0; } if(error == GLOBUS_SUCCESS) { t = (time_t) modification_time.tv_sec; printf("Last modified %s", ctime(&t)); } return error; }
int main(int argc, char **argv) { globus_ftp_client_handle_t handle; globus_ftp_client_operationattr_t attr; globus_byte_t * buffer; globus_result_t result; globus_ftp_client_handleattr_t handle_attr; char * src; char * dst; int i; globus_size_t parallelism_level = 1; globus_ftp_control_parallelism_t parallelism; globus_ftp_control_layout_t layout; LTDL_SET_PRELOADED_SYMBOLS(); globus_module_activate(GLOBUS_FTP_CLIENT_MODULE); globus_ftp_client_handleattr_init(&handle_attr); globus_ftp_client_operationattr_init(&attr); /* Parse local arguments */ for(i = 1; i < argc; i++) { if(strcmp(argv[i], "-P") == 0 && i + 1 < argc) { parallelism_level = atoi(argv[i+1]); test_remove_arg(&argc, argv, &i, 1); } } test_parse_args(argc, argv, &handle_attr, &attr, &src, &dst); if(parallelism_level < 1) { parallelism_level = 1; } parallelism.mode = GLOBUS_FTP_CONTROL_PARALLELISM_FIXED; parallelism.fixed.size = parallelism_level; layout.mode = GLOBUS_FTP_CONTROL_STRIPING_BLOCKED_ROUND_ROBIN; layout.round_robin.block_size = 64*1024; globus_mutex_init(&lock, GLOBUS_NULL); globus_cond_init(&cond, GLOBUS_NULL); globus_ftp_client_operationattr_set_mode( &attr, GLOBUS_FTP_CONTROL_MODE_EXTENDED_BLOCK); globus_ftp_client_operationattr_set_parallelism(&attr, ¶llelism); globus_ftp_client_operationattr_set_layout(&attr, &layout); globus_ftp_client_handle_init(&handle, &handle_attr); done = GLOBUS_FALSE; result = globus_ftp_client_put(&handle, dst, &attr, GLOBUS_NULL, done_cb, 0); globus_mutex_lock(&lock); if(result != GLOBUS_SUCCESS) { globus_object_t * err; err = globus_error_get(result); fprintf(stderr, "%s", globus_object_printable_to_string(err)); done = GLOBUS_TRUE; } else { int rc=1; int i; for(i = 0; i < parallelism_level && rc != 0; i++) { buffer = malloc(MYSIZE); rc = read(0, buffer, MYSIZE); globus_ftp_client_register_write( &handle, buffer, rc, global_offset, rc == 0, data_cb, 0); global_offset += rc; } } while(!done) { globus_cond_wait(&cond, &lock); } globus_mutex_unlock(&lock); globus_ftp_client_handle_destroy(&handle); globus_module_deactivate_all(); if(test_abort_count && error) { return 0; } return error; }
int main(int argc, char *argv[]) { globus_ftp_client_handle_t handle; globus_ftp_client_operationattr_t attr; globus_byte_t buffer[SIZE]; globus_size_t buffer_length = sizeof(buffer); globus_result_t result; char * src; char * dst; globus_ftp_client_handleattr_t handle_attr; int i; char * subject = GLOBUS_NULL; globus_module_activate(GLOBUS_FTP_CLIENT_MODULE); globus_ftp_client_handleattr_init(&handle_attr); globus_mutex_init(&lock, GLOBUS_NULL); globus_cond_init(&cond, GLOBUS_NULL); globus_ftp_client_operationattr_init(&attr); /* Parse local arguments */ for(i = 1; i < argc; i++) { if(strcmp(argv[i], "-A") == 0 && i + 1 < argc) { subject = argv[i+1]; test_remove_arg(&argc, argv, &i, 1); } } test_parse_args(argc, argv, &handle_attr, &attr, &src, &dst); globus_ftp_client_operationattr_set_authorization(&attr, GSS_C_NO_CREDENTIAL, ":globus-mapping:", "", 0, subject); globus_ftp_client_handle_init(&handle, &handle_attr); done = GLOBUS_FALSE; result = globus_ftp_client_get(&handle, src, &attr, GLOBUS_NULL, done_cb, 0); if(result != GLOBUS_SUCCESS) { error = GLOBUS_TRUE; done = GLOBUS_TRUE; } else { globus_ftp_client_register_read( &handle, buffer, buffer_length, data_cb, 0); } globus_mutex_lock(&lock); while(!done) { globus_cond_wait(&cond, &lock); } globus_mutex_unlock(&lock); globus_ftp_client_handle_destroy(&handle); globus_module_deactivate_all(); if(test_abort_count && error) { return 0; } return error; }
int main(int argc, char *argv[]) { globus_ftp_client_handle_t handle; globus_ftp_client_operationattr_t attr; globus_byte_t buffer[SIZE]; globus_size_t buffer_length = sizeof(buffer); globus_result_t result; char * src; char * dst; globus_ftp_client_handleattr_t handle_attr; globus_off_t start_offset=5; globus_off_t end_offset=15; int i; globus_ftp_control_mode_t mode; globus_module_activate(GLOBUS_FTP_CLIENT_MODULE); globus_ftp_client_handleattr_init(&handle_attr); globus_ftp_client_operationattr_init(&attr); mode = GLOBUS_FTP_CONTROL_MODE_STREAM; /* Parse local arguments */ for(i = 1; i < argc; i++) { if(strcmp(argv[i], "-R") == 0 && i + 2 < argc) { globus_libc_scan_off_t(argv[i+1], &start_offset, GLOBUS_NULL); globus_libc_scan_off_t(argv[i+2], &end_offset, GLOBUS_NULL); test_remove_arg(&argc, argv, &i, 2); } else if(strcmp(argv[i], "-E") == 0 && i < argc) { mode = GLOBUS_FTP_CONTROL_MODE_EXTENDED_BLOCK; test_remove_arg(&argc, argv, &i, 0); } } test_parse_args(argc, argv, &handle_attr, &attr, &src, &dst); if(start_offset < 0) start_offset = 0; if(end_offset < 0) end_offset = 0; globus_mutex_init(&lock, GLOBUS_NULL); globus_cond_init(&cond, GLOBUS_NULL); globus_ftp_client_handle_init(&handle, &handle_attr); globus_ftp_client_operationattr_set_mode(&attr, mode); done = GLOBUS_FALSE; result = globus_ftp_client_partial_get(&handle, src, &attr, GLOBUS_NULL, start_offset, end_offset, done_cb, 0); if(result != GLOBUS_SUCCESS) { error = GLOBUS_TRUE; done = GLOBUS_TRUE; } else { globus_ftp_client_register_read( &handle, buffer, buffer_length, data_cb, 0); } globus_mutex_lock(&lock); while(!done) { globus_cond_wait(&cond, &lock); } globus_mutex_unlock(&lock); globus_ftp_client_handle_destroy(&handle); globus_module_deactivate_all(); if(test_abort_count && error) { return 0; } return error; }