diff -ur globus_gass_copy-3.22.orig/globus_url_copy.c globus_gass_copy-3.22/globus_url_copy.c --- globus_gass_copy-3.22.orig/globus_url_copy.c 2005-12-02 00:03:28.000000000 +0100 +++ globus_gass_copy-3.22/globus_url_copy.c 2007-06-28 22:23:08.000000000 +0200 @@ -91,6 +91,7 @@ globus_bool_t list_uses_data_mode; globus_bool_t ipv6; globus_bool_t allo; + globus_bool_t gridftp2; /* the need for 2 is due to the fact that gass copy is * not copying attributes @@ -327,6 +328,8 @@ " If set to >0, Blocked mode will be used, with this as the blocksize.\n" " -ipv6\n" " use ipv6 when available (EXPERIMENTAL)\n" +" -nogridftp2\n" +" do not use GridFTP2 even when available\n" "\n"; /*********** @@ -410,7 +413,8 @@ arg_noallo, arg_stripe_bs, arg_striped, - arg_num = arg_striped + arg_nogridftp2, + arg_num = arg_nogridftp2 }; #define listname(x) x##_aliases @@ -451,6 +455,7 @@ flagdef(arg_ipv6, "-ipv6","-IPv6"); flagdef(arg_allo, "-allo","-allocate"); flagdef(arg_noallo, "-no-allo","-no-allocate"); +flagdef(arg_nogridftp2, "-nogridftp2","-nogridftp2"); oneargdef(arg_f, "-f", "-filename", GLOBUS_NULL, GLOBUS_NULL); oneargdef(arg_stripe_bs, "-sbs", "-striped-block-size", test_integer, GLOBUS_NULL); @@ -504,7 +509,8 @@ setupopt(arg_allo); \ setupopt(arg_noallo); \ setupopt(arg_stripe_bs); \ - setupopt(arg_striped); + setupopt(arg_striped); \ + setupopt(arg_nogridftp2); static globus_bool_t globus_l_globus_url_copy_ctrlc = GLOBUS_FALSE; static globus_bool_t globus_l_globus_url_copy_ctrlc_handled = GLOBUS_FALSE; @@ -1372,6 +1378,7 @@ guc_info->ipv6 = GLOBUS_FALSE; guc_info->allo = GLOBUS_TRUE; guc_info->create_dest = GLOBUS_FALSE; + guc_info->gridftp2 = GLOBUS_TRUE; /* determine the program name */ @@ -1559,6 +1566,10 @@ break; + case arg_nogridftp2: + guc_info->gridftp2 = GLOBUS_FALSE; + break; + default: globus_url_copy_l_args_error_fmt("parse panic, arg id = %d", instance->id_number); @@ -2132,6 +2143,19 @@ return -1; } } + + if(guc_info->gridftp2 == GLOBUS_TRUE) + { + result = globus_ftp_client_handleattr_set_gridftp2( + &ftp_handleattr, GLOBUS_TRUE); + if(result != GLOBUS_SUCCESS) + { + fprintf(stderr, _GASCSL("Error: Unable to set gridftp2 support %s\n"), + globus_error_print_friendly(globus_error_peek(result))); + + return -1; + } + } globus_gass_copy_handleattr_set_ftp_attr( &gass_copy_handleattr, &ftp_handleattr);