gfal2-2.3.0/0000755000175000017500000000000012164561703012054 5ustar ellertellertgfal2-2.3.0/test/0000755000175000017500000000000012204612537013030 5ustar ellertellertgfal2-2.3.0/test/mock/0000755000175000017500000000000012164561703013764 5ustar ellertellertgfal2-2.3.0/test/mock/gfal_srm_mock_test.h0000644000175000017500000000634412164561703020006 0ustar ellertellert#pragma once /* * * convenience function for the mocks or the srm interface * */ #include "gfal_mds_mock_test.h" #include #include #include "srm/gfal_common_srm.h" #include "srm/gfal_common_srm_internal_layer.h" void setup_mock_srm(); void add_mock_srm_ls_locality_valid(const char* file, const char* endpoint, TFileLocality tl); void add_mock_srm_ls_error(const char* file, const char* endpoint, int status, const char* err); extern struct srm_ls_output defined_srm_ls_output; extern struct srm_rmdir_output defined_srm_rmdir_output; extern struct srm_getpermission_output defined_srm_getpermission_output; extern struct srmv2_filestatus* defined_srmv2_filestatus; extern struct srmv2_pinfilestatus * defined_get_output; // convenience functions void define_mock_stat_file_valid(char* surl, mode_t mode, uid_t uid, gid_t gid); void define_mock_readdir_file_valid(char** surls, mode_t* mode, uid_t* uid, gid_t* gid, int n); void define_mock_srmv2_filestatus(int number, char** surl, char** explanation, char** turl, int* status); void define_mock_stat_file(mode_t mode, int uid, int gid); void define_mock_stat_file_error(char* surl, int status, char* err); void define_mock_srmv2_pinfilestatus(int number, char** surl, char** explanation, char** turl, int* status); void define_put_done(int number, char** surl, char** explanation, char** turl, int* status); void define_mock_defined_srm_rmdir_output(char* surl, int status); void define_mock_srmv2_putoutput(int number, char** surl, char** explanation, char** turl, int* status); void define_mock_locality_file_valid(char* surl, TFileLocality tl); // mock functions void srm_mock_srm_context_init(struct srm_context *context,char *srm_endpoint,char *errbuf,int errbufsz,int verbose); int srm_mock_srm_ls(struct srm_context *context, struct srm_ls_input *input,struct srm_ls_output *output); int srm_mock_srm_rmdir(struct srm_context *context, struct srm_rmdir_input *input,struct srm_rmdir_output *output); int srm_mock_srm_mkdir(struct srm_context *context, struct srm_mkdir_input *input); int srm_mock_srm_getpermission (struct srm_context *context, struct srm_getpermission_input *input,struct srm_getpermission_output *output); int srm_mock_srm_check_permission(struct srm_context *context, struct srm_checkpermission_input *input,struct srmv2_filestatus **statuses); int srm_mock_srm_prepare_to_get(struct srm_context *context, struct srm_preparetoget_input *input,struct srm_preparetoget_output *output); int srm_mock_srm_prepare_to_put(struct srm_context *context, struct srm_preparetoput_input *input,struct srm_preparetoput_output *output); int srm_mock_srm_put_done(struct srm_context *context, struct srm_putdone_input *input, struct srmv2_filestatus **statuses); int srm_mock_srm_setpermission (struct srm_context *context, struct srm_setpermission_input *input); void srm_mock_srm_srmv2_pinfilestatus_delete(struct srmv2_pinfilestatus* srmv2_pinstatuses, int n); void srm_mock_srm_srmv2_mdfilestatus_delete(struct srmv2_mdfilestatus* mdfilestatus, int n); void srm_mock_srm_srmv2_filestatus_delete(struct srmv2_filestatus* srmv2_statuses, int n); void srm_mock_srm_srm2__TReturnStatus_delete(struct srm2__TReturnStatus* status); gfal2-2.3.0/test/mock/gfal_rfio_mock_test.h0000644000175000017500000000131712164561703020137 0ustar ellertellert#pragma once /* * * convenience function for the mocks or the lfc interface * */ #include #include #include #include #include #include #include #include #include #include "gfal_constants.h" extern char defined_buff_read[2048]; extern int defined_buff_read_size; extern char defined_buff_write[2048]; extern int defined_buff_write_size; off_t rfio_mock_lseek(int fd, off_t offset, int whence); ssize_t rfio_mock_read(int fd, void* buff, size_t size); ssize_t rfio_mock_write(int fd, const void* buff, size_t size); int rfio_mock_close(int fd); int rfio_mock_open(const char* path, int flag, ...); gfal2-2.3.0/test/mock/gfal_rfio_mock_test.c0000644000175000017500000000251312164561703020131 0ustar ellertellert/* * * convenience function for the mocks or the lfc interface * */ #include #include #include #include #include #include #include #include #include #include #include #include #include "gfal_rfio_mock_test.h" char defined_buff_read[2048]; int defined_buff_read_size; char defined_buff_write[2048]; int defined_buff_write_size; int rfio_mock_open(const char* path, int flag, ...){ int i = mock(path, flag); if(i <= 0){ errno=i; return -1; } return i; } off_t rfio_mock_lseek(int fd, off_t offset, int whence){ off_t i = mock(fd, offset, whence); if(i < 0){ errno=i; return -1; } return (off_t)i; } ssize_t rfio_mock_read(int fd, void* buff, size_t size){ int i = mock(fd, buff, size); if(i < 0){ errno=i; return -1; } memcpy(buff, (void*) defined_buff_read, defined_buff_read_size); return (ssize_t)i; } ssize_t rfio_mock_write(int fd, const void* buff, size_t size){ int i = mock(fd, buff, size); if(i < 0){ errno=i; return -1; } memcpy(buff, (void*) defined_buff_read, defined_buff_read_size); return (ssize_t)i; } int rfio_mock_close(int fd){ int i = mock(fd); if(i != 0){ errno=i; return -1; } return i; } gfal2-2.3.0/test/mock/gfal_lfc_mock_test.h0000644000175000017500000000446112164561703017747 0ustar ellertellert#pragma once /* * auto-generated header file for file test/mock/gfal_lfc_mock_test.c */ #include #include #include #include void test_mock_lfc(gfal_handle handle, GError** err); void add_mock_error_lfc_guid_resolution(const char * lfn, int error); void add_mock_valid_lfc_guid_resolution(const char * lfn, const char* guid); void setup_mock_lfc(); extern int lfc_last_err; extern struct lfc_filestatg* defined_filestatg; extern struct lfc_filestat* defined_filestat; extern struct lfc_filereplica* define_lastfilereplica; extern struct lfc_linkinfo *define_linkinfos; extern int define_numberlinkinfos; extern int define_numberreplica; // convenience functions void define_mock_linkinfos(int number, char** resu); void define_mock_filestatg(mode_t mode, int gid, int uid); void define_mock_filelstat(mode_t mode, int gid, int uid); void define_mock_filereplica(int n, char** rep_turls); void define_lfc_comment(char* comment); // mock int* lfc_mock_C__serrno(); int lfc_mock_endsess(); int lfc_mock_rmdir(const char* path); int lfc_mock_startsession(char* server, char* comment); int lfc_mock_statg(const char * lfn, const char * guid, struct lfc_filestatg * f); int lfc_mock_lstatg(const char * lfn, struct lfc_filestat * f); int lfc_mock_rename(const char * oldpath, const char* newpath); int lfc_mock_access(const char* path, int mode); int lfc_mock_chmod(const char* path, mode_t mode); lfc_DIR* lfc_mock_opendir(const char* path, const char* guid); int lfc_mock_closedir(lfc_DIR* dir); struct dirent* lfc_mock_readdir(lfc_DIR* d); struct Cns_direnstat* lfc_mock_readdirx(lfc_DIR* d); int lfc_mock_mkdir(const char* path, const char* guid, mode_t mode); int lfc_mock_starttrans(const char *server, const char *comment); int lfc_mock_endtrans(); int lfc_mock_aborttrans(); int lfc_mock_getcomment (const char * path, char * comment); int lfc_mock_setcomment (const char * path, char * comment); int lfc_mock_getreplica(const char *path, const char *guid, const char *se, int *nbentries, struct lfc_filereplica **rep_entries); int lfc_mock_getlinks(const char *path, const char *guid, int *nbentries, struct Cns_linkinfo **linkinfos); void lfc_next_valid_statg_values(const char* lfn, const char* guid, struct lfc_filestatg * f); void lfc_statg_all_invalid(); gfal2-2.3.0/test/mock/unit_test_util.h0000644000175000017500000000030612164561703017207 0ustar ellertellert/* * * Simple tools for unit tests * * */ #define _GNU_SOURCE #include #include #include #include "unit_test_constants.h" gboolean gfal2_tests_is_mock(); gfal2-2.3.0/test/mock/gfal_mds_mock_test.c0000644000175000017500000000136012164561703017754 0ustar ellertellert/* * * convenience function for the mocks or the srm interface * */ #define _GNU_SOURCE #include #include #include "gfal_mds_mock_test.h" #include "unit_test_util.h" void setup_mock_bdii(){ #if USE_MOCK #endif } void mock_endpoint_answer(const char * endpoint, const char * basename){ } char** define_se_endpoints; char** define_se_types; char* define_lfc_endpoint; void define_mock_endpoints(char* endpoint){ int i1; define_se_endpoints = calloc(sizeof(char*), 4); for(i1=0;i1 <3; ++i1) define_se_endpoints[i1]= strdup(endpoint); define_se_types= calloc(sizeof(char*), 4); char* types[] = { "srm_v1", "srm_v2", "srm_v1"}; for(i1=0;i1 <3; ++i1) define_se_types[i1]= strdup(types[i1]); } gfal2-2.3.0/test/mock/gfal_srm_mock_test.c0000644000175000017500000002215412164561703017776 0ustar ellertellert/* * * convenience function for the mocks or the srm interface * */ #include "gfal_srm_mock_test.h" #include #include #include #include #include "unit_test_util.h" void setup_mock_srm(){ if(gfal2_tests_is_mock() ){ setup_mock_bdii(); gfal_srm_external_call.srm_prepare_to_get = &srm_mock_srm_prepare_to_get; gfal_srm_external_call.srm_prepare_to_put = &srm_mock_srm_prepare_to_put; gfal_srm_external_call.srm_context_init = &srm_mock_srm_context_init; gfal_srm_external_call.srm_check_permission= &srm_mock_srm_check_permission; gfal_srm_external_call.srm_ls = &srm_mock_srm_ls; gfal_srm_external_call.srm_mkdir = &srm_mock_srm_mkdir; gfal_srm_external_call.srm_rmdir = &srm_mock_srm_rmdir; gfal_srm_external_call.srm_put_done = &srm_mock_srm_put_done; gfal_srm_external_call.srm_setpermission= & srm_mock_srm_setpermission; gfal_srm_external_call.srm_srmv2_pinfilestatus_delete = &srm_mock_srm_srmv2_pinfilestatus_delete; gfal_srm_external_call.srm_srm2__TReturnStatus_delete = &srm_mock_srm_srm2__TReturnStatus_delete; } } void add_mock_srm_ls_locality_valid(const char* file, const char* endpoint, TFileLocality tl){ if(gfal2_tests_is_mock() ){ define_mock_locality_file_valid(file, tl); define_mock_endpoints(endpoint); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, endpoint)); will_respond(srm_mock_srm_ls, 0, want_non_null(context), want_non_null(inut), want_non_null(output)); } } void add_mock_srm_ls_error(const char* file, const char* endpoint, int status, const char* err){ if(gfal2_tests_is_mock()){ define_mock_stat_file_error(file, status, err); define_mock_endpoints(endpoint); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, endpoint)); will_respond(srm_mock_srm_ls, 0, want_non_null(context), want_non_null(inut), want_non_null(output)); } } struct srm_ls_output defined_srm_ls_output; struct srm_rmdir_output defined_srm_rmdir_output; struct srm_getpermission_output defined_srm_getpermission_output; struct srmv2_filestatus* defined_srmv2_filestatus=NULL; struct srmv2_pinfilestatus * defined_get_output=NULL; struct srmv2_filestatus* defined_put_done=NULL; struct srmv2_pinfilestatus * defined_put_output=NULL; void define_mock_stat_file_valid(char* surl, mode_t mode, uid_t uid, gid_t gid){ defined_srm_ls_output.statuses= g_new0(struct srmv2_mdfilestatus,1); defined_srm_ls_output.statuses->surl = strdup(surl); memset(&defined_srm_ls_output.statuses->stat, 0, sizeof(struct stat)); defined_srm_ls_output.statuses->stat.st_mode = mode; defined_srm_ls_output.statuses->stat.st_uid = uid; defined_srm_ls_output.statuses->stat.st_gid= gid; } void define_mock_locality_file_valid(char* surl, TFileLocality tl){ defined_srm_ls_output.statuses= g_new0(struct srmv2_mdfilestatus,1); defined_srm_ls_output.statuses->surl = strdup(surl); memset(&defined_srm_ls_output.statuses->stat, 0, sizeof(struct stat)); defined_srm_ls_output.statuses->locality = tl; } void define_mock_readdir_file_valid(char** surls, mode_t* mode, uid_t* uid, gid_t* gid, int n){ defined_srm_ls_output.statuses->subpaths = g_new0(struct srmv2_mdfilestatus,n); defined_srm_ls_output.statuses->nbsubpaths= n; int i; for(i=0; i< n; ++i){ defined_srm_ls_output.statuses->subpaths[i].surl = strdup(surls[i]); memset(&defined_srm_ls_output.statuses->subpaths[i].stat, 0, sizeof(struct stat)); defined_srm_ls_output.statuses->subpaths[i].stat.st_mode = mode[i]; defined_srm_ls_output.statuses->subpaths[i].stat.st_uid = uid[i]; defined_srm_ls_output.statuses->subpaths[i].stat.st_gid= gid[i]; } } void define_mock_stat_file_error(char* surl, int status, char* err){ defined_srm_ls_output.statuses= g_new0(struct srmv2_mdfilestatus,1); defined_srm_ls_output.statuses->surl = strdup(surl); memset(&defined_srm_ls_output.statuses->stat, 0, sizeof(struct stat)); defined_srm_ls_output.statuses->status = status; defined_srm_ls_output.statuses->explanation = strdup(err); } void define_put_done(int number, char** surl, char** explanation, char** turl, int* status){ int i; defined_put_done= calloc(sizeof(struct srmv2_filestatus), number); for(i=0; i < number; ++i){ if(surl) defined_put_done[i].surl = strdup(surl[i]); if(explanation) defined_put_done[i].explanation = strdup(explanation[i]); if(turl) defined_put_done[i].turl = strdup(turl[i]); if(status) defined_put_done[i].status = status[i]; } } void define_mock_srmv2_filestatus(int number, char** surl, char** explanation, char** turl, int* status){ int i; defined_srmv2_filestatus= calloc(sizeof(struct srmv2_filestatus), number); for(i=0; i < number; ++i){ if(surl) defined_srmv2_filestatus[i].surl = strdup(surl[i]); if(explanation) defined_srmv2_filestatus[i].explanation = strdup(explanation[i]); if(turl) defined_srmv2_filestatus[i].turl = strdup(turl[i]); if(status) defined_srmv2_filestatus[i].status = status[i]; } } void define_mock_srmv2_pinfilestatus(int number, char** surl, char** explanation, char** turl, int* status){ int i; defined_get_output= calloc(sizeof(struct srmv2_pinfilestatus), number); for(i=0; i < number; ++i){ if(surl) defined_get_output[i].surl = strdup(surl[i]); if(explanation) defined_get_output[i].explanation = strdup(explanation[i]); if(turl) defined_get_output[i].turl = strdup(turl[i]); if(status) defined_get_output[i].status = status[i]; } } void define_mock_srmv2_putoutput(int number, char** surl, char** explanation, char** turl, int* status){ int i; defined_put_output= calloc(sizeof(struct srmv2_pinfilestatus), number); for(i=0; i < number; ++i){ if(surl) defined_put_output[i].surl = strdup(surl[i]); if(explanation) defined_put_output[i].explanation = strdup(explanation[i]); if(turl) defined_put_output[i].turl = strdup(turl[i]); if(status) defined_put_output[i].status = status[i]; } } void define_mock_defined_srm_rmdir_output(char* surl, int status){ defined_srm_rmdir_output.statuses= calloc(sizeof(struct srmv2_filestatus), 1); defined_srm_rmdir_output.statuses->surl = strdup(surl); defined_srm_rmdir_output.statuses->status = status; } void srm_mock_srm_context_init(struct srm_context *context,char *srm_endpoint,char *errbuf,int errbufsz,int verbose){ mock(context, srm_endpoint, errbuf, errbufsz, verbose); } int srm_mock_srm_ls(struct srm_context *context, struct srm_ls_input *input,struct srm_ls_output *output){ int a = mock(context, input, output); if(a){ errno = a; return -1; } memcpy(output, &defined_srm_ls_output, sizeof(struct srm_ls_output)); return 0; } int srm_mock_srm_rmdir(struct srm_context *context, struct srm_rmdir_input *input,struct srm_rmdir_output *output){ int a = mock(context, input, output); if(a){ errno = a; return -1; } memcpy(output, &defined_srm_rmdir_output, sizeof(struct srm_rmdir_output)); return 0; } int srm_mock_srm_mkdir(struct srm_context *context, struct srm_mkdir_input *input){ int a = mock(context, input); if(a<0){ errno = -a; return -1; } return a; } int srm_mock_srm_getpermission (struct srm_context *context, struct srm_getpermission_input *input,struct srm_getpermission_output *output){ int a = mock(context, input, output); if(a<0){ errno = a; return -1; } memcpy(output, &defined_srm_getpermission_output, sizeof(struct srm_getpermission_output)); return a; } int srm_mock_srm_check_permission(struct srm_context *context, struct srm_checkpermission_input *input,struct srmv2_filestatus **statuses){ int a = mock(context, input, statuses); if(a <0){ errno = -a; return -1; } *statuses = defined_srmv2_filestatus; return a; } int srm_mock_srm_prepare_to_get(struct srm_context *context, struct srm_preparetoget_input *input,struct srm_preparetoget_output *output){ int a = mock(context, input, output); if(a <0 ){ errno = -a; return -1; } output->filestatuses = defined_get_output; return a; } int srm_mock_srm_put_done(struct srm_context *context, struct srm_putdone_input *input, struct srmv2_filestatus **statuses){ int a = mock(context, input, statuses); if(a < 0){ errno =a; return -1; } *statuses = defined_put_done; return a; } int srm_mock_srm_prepare_to_put(struct srm_context *context, struct srm_preparetoput_input *input,struct srm_preparetoput_output *output){ int a = mock(context, input, output); if(a <0 ){ errno = -a; return -1; } output->filestatuses = defined_put_output; return a; } int srm_mock_srm_setpermission (struct srm_context *context, struct srm_setpermission_input *input){ int a = mock(context, input); if(a!=0){ errno = a; return -1; } return 0; } void srm_mock_srm_srmv2_pinfilestatus_delete(struct srmv2_pinfilestatus* srmv2_pinstatuses, int n){ mock(srmv2_pinstatuses, n); } void srm_mock_srm_srmv2_mdfilestatus_delete(struct srmv2_mdfilestatus* mdfilestatus, int n){ mock(mdfilestatus, n); } void srm_mock_srm_srmv2_filestatus_delete(struct srmv2_filestatus* srmv2_statuses, int n){ mock(srmv2_statuses, n); } void srm_mock_srm_srm2__TReturnStatus_delete(struct srm2__TReturnStatus* status){ mock(status); } // convenience functions gfal2-2.3.0/test/mock/gfal_lfc_mock_test.c0000644000175000017500000001703712164561703017745 0ustar ellertellert/* * * convenience function for the mocks or the lfc interface * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "gfal_lfc_mock_test.h" #include #include #include "unit_test_util.h" static void test_internal_generic_copy(gpointer origin, gpointer copy){ memcpy(copy, origin, sizeof(struct stat)); } // mocking function internal to gfal void test_mock_lfc(gfal_handle handle, GError** err){ if(gfal2_tests_is_mock()){ struct lfc_ops* ops = find_lfc_ops(handle, err); ops->lfc_endpoint_predefined = NULL; ops->handle = handle; ops->cache_stat= gsimplecache_new(50000000, &test_internal_generic_copy, sizeof(struct stat)); gfal_lfc_regex_compile(&(ops->rex), err); ops->statg = &lfc_mock_statg; ops->rename = &lfc_mock_rename; ops->get_serrno = &lfc_mock_C__serrno; ops->access = &lfc_mock_access; ops->sstrerror = &strerror; ops->getreplica = &lfc_mock_getreplica; ops->getlinks= &lfc_mock_getlinks; ops->lstat= &lfc_mock_lstatg; ops->chmod = &lfc_mock_chmod; ops->rmdir = &lfc_mock_rmdir; ops->mkdirg = &lfc_mock_mkdir; ops->starttrans= &lfc_mock_starttrans; ops->endtrans= &lfc_mock_endtrans; ops->aborttrans= &lfc_mock_aborttrans; ops->opendirg = &lfc_mock_opendir; ops->readdir = &lfc_mock_readdir; ops->closedir = &lfc_mock_closedir; ops->endsess= &lfc_mock_endsess; ops->startsess = &lfc_mock_startsession; ops->readdirx = &lfc_mock_readdirx; } } void add_mock_error_lfc_guid_resolution(const char * lfn, int error){ if(gfal2_tests_is_mock()){ will_respond(lfc_mock_statg, error, want_string(path, lfn), want_non_null(linkinfos)); } } void add_mock_valid_lfc_guid_resolution(const char * lfn, const char* guid){ if(gfal2_tests_is_mock()){ define_mock_filestatg_guid(555,1,1,guid); will_respond(lfc_mock_statg, 0, want_string(path, lfn), want_non_null(linkinfos)); } } void setup_mock_lfc(){ GError * mock_err; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); } int lfc_last_err=0; struct lfc_filestatg* defined_filestatg=NULL; struct lfc_filestat* defined_filestat=NULL; struct lfc_filereplica* define_lastfilereplica=NULL; struct lfc_linkinfo *define_linkinfos=NULL; int define_numberlinkinfos; int define_numberreplica; char * lfc_comment=NULL; int* lfc_mock_C__serrno(){ return &lfc_last_err; } void define_mock_linkinfos(int number, char** resu){ int i; define_linkinfos= calloc(sizeof(struct lfc_linkinfo), number); for(i=0; i < number; ++i){ g_strlcpy(define_linkinfos[i].path, resu[i], 1024); } define_numberlinkinfos= number; } void define_lfc_comment(char* comment){ lfc_comment = strdup(comment); } void define_mock_filestatg(mode_t mode, int gid, int uid){ defined_filestatg= calloc(sizeof(struct lfc_filestatg),1); defined_filestatg->filemode = mode; defined_filestatg->uid = uid ; defined_filestatg->gid= gid ; } void define_mock_filestatg_guid(mode_t mode, int gid, int uid, char* guid){ defined_filestatg= calloc(sizeof(struct lfc_filestatg),1); defined_filestatg->filemode = mode; strcpy(defined_filestatg->guid, guid); defined_filestatg->uid = uid ; defined_filestatg->gid= gid ; } void define_mock_filelstat(mode_t mode, int gid, int uid){ defined_filestat = g_new0(struct lfc_filestat, 1); defined_filestat->filemode = mode; defined_filestat->uid = uid; defined_filestat->gid = gid; } void define_mock_filereplica(int n, char** rep_turls){ define_numberreplica =n; define_lastfilereplica = g_new0(struct lfc_filereplica, n); int i; for(i=0; i< n; ++i) strcpy(define_lastfilereplica[i].sfn, rep_turls[i]); } int lfc_mock_statg(const char * lfn, const char * guid, struct lfc_filestatg * f){ int val = (int) mock(lfn, guid, f); if( val == 0){ if(defined_filestatg) memcpy(f, defined_filestatg, sizeof(struct lfc_filestatg)); return 0; }else{ lfc_last_err = val; return -1; } } int lfc_mock_rename(const char * oldpath, const char* newpath){ int r = (int) mock(oldpath, newpath); if(r){ lfc_last_err = r; return -1; }else return 0; } int lfc_mock_starttrans(const char * server, const char * comment){ int a= mock(server,comment); if(a){ lfc_last_err = a; return -1; } return 0; } int lfc_mock_aborttrans(){ int a= mock(); if(a){ lfc_last_err = a; return -1; } return 0; } int lfc_mock_endtrans(){ int a= mock(); if(a){ lfc_last_err = a; return -1; } return 0; } int lfc_mock_endsess(){ int a= mock(); if(a){ lfc_last_err = a; return -1; } return 0; } int lfc_mock_getcomment (const char * path, char * comment){ int a = mock(path, comment); if(a){ lfc_last_err = a; return -1; } strcpy(comment, lfc_comment); return 0; } int lfc_mock_setcomment (const char * path, char * comment){ int a = mock(path, comment); if(a){ lfc_last_err = -a; return -1; } return 0; } int lfc_mock_startsession(char* server, char* comment){ int a= mock(server, comment); if(a){ lfc_last_err = a; return -1; } return 0; } int lfc_mock_lstatg(const char * lfn, struct lfc_filestat * f){ int val = (int) mock(lfn, f); if( val == 0){ if(defined_filestat) memcpy(f, defined_filestat, sizeof(struct lfc_filestat)); return 0; }else{ lfc_last_err = val; return -1; } } int lfc_mock_access(const char * path, int mode){ int r = (int) mock(path, mode); if(r){ lfc_last_err = r; return -1; }else return 0; } int lfc_mock_getreplica(const char *path, const char *guid, const char *se, int *nbentries, struct lfc_filereplica **rep_entries){ int r = (int) mock(path, guid, se, nbentries, rep_entries); if(r){ lfc_last_err = r; return -1; } *nbentries= define_numberreplica; *rep_entries = define_lastfilereplica; return 0; } int lfc_mock_getlinks(const char *path, const char *guid, int *nbentries, struct Cns_linkinfo **linkinfos){ int r = (int) mock(path, guid, nbentries, linkinfos); if(r){ lfc_last_err = r; return -1; } *linkinfos= define_linkinfos; *nbentries = define_numberlinkinfos; return 0; } int lfc_mock_chmod(const char* path, mode_t mode){ int a= mock(path, mode); if(a){ lfc_last_err = a; return -1; } return 0; } int lfc_mock_mkdir(const char* path, const char* guid, mode_t mode){ int a= mock(path, guid, mode); if(a){ lfc_last_err = a; return -1; } return 0; } int lfc_mock_rmdir(const char* path){ int a= mock(path); if(a < 0 ){ lfc_last_err = -a; return -1; } return 0; } lfc_DIR* lfc_mock_opendir(const char* path, const char* guid){ lfc_DIR* a= (gpointer)mock(path, guid); if(GPOINTER_TO_INT(a) <0 ){ lfc_last_err = - (GPOINTER_TO_INT(a)); return NULL; } return (a)?((gpointer)gfal_file_handle_new("lfc_plugin", (gpointer) a)):NULL; } struct dirent* lfc_mock_readdir(lfc_DIR* d){ struct dirent* a = (struct dirent*)mock(d); if(a == (struct dirent*) EBADF){ lfc_last_err = GPOINTER_TO_INT(a); return NULL; } return (struct dirent*)a; } struct Cns_direnstat* lfc_mock_readdirx(lfc_DIR* d){ struct Cns_direnstat* a= (struct Cns_direnstat*)mock(d); if(a == (struct Cns_direnstat*) EBADF){ lfc_last_err = GPOINTER_TO_INT(a); return NULL; } return (struct Cns_direnstat*)a; } int lfc_mock_closedir(lfc_DIR* dir){ int a= mock(dir); if(a <0 ){ lfc_last_err = -a; return -1; } return a; } gfal2-2.3.0/test/mock/gfal_mds_mock_test.h0000644000175000017500000000056512164561703017767 0ustar ellertellert#pragma once /* * * convenience function for the mocks or the srm interface * */ void setup_mock_bdii(); void mock_endpoint_answer(const char * endpoint, const char * basename); extern char** define_se_endpoints; extern char** define_se_types; extern char* define_lfc_endpoint; // convenience functions void define_mock_endpoints(char* endpoint); // mocks gfal2-2.3.0/test/mock/unit_test_util.c0000644000175000017500000000315012164561703017202 0ustar ellertellert/* * * Simple tools for unit tests * * */ #define _GNU_SOURCE #include #include #include #include "unit_test_util.h" gboolean gfal2_tests_is_mock(){ #if USE_MOCK return TRUE; #else return FALSE; #endif } gboolean check_GList_Result_String(GList* list, char** example){ // return true if two string list are the same GList *tmp_list=list; while(tmp_list != NULL){ if( tmp_list->data != NULL && *example != NULL){ if(strcmp(tmp_list->data, *example) != 0){ g_printerr(" error, the two string are different : %s, %s \n", (char*) tmp_list->data, (char*) *example); return FALSE; } } else { if(tmp_list->data != *example){ g_printerr(" one string is NULL but not the other : %s, %s \n", (char*) tmp_list->data, (char*) *example); return FALSE; } } tmp_list= g_list_next(tmp_list); example++; } return TRUE; } gboolean check_GList_Result_int(GList* list, int* example){ // return true if tab int and int GList are the same GList *tmp_list=list; while(tmp_list != NULL){ if( GPOINTER_TO_INT(tmp_list->data) != *example){ g_printerr(" error, the two integer are different : %d, %d \n", GPOINTER_TO_INT(tmp_list->data), *example); return FALSE; } tmp_list= g_list_next(tmp_list); example++; } return TRUE; } static int internal_compare_string(gconstpointer a, gconstpointer b){ return (a && b)?(strcmp((char*)a, (char*)b)):-1; } gboolean find_string(GList* strlist, const char* str){ // return true if str is present in the list return ( g_list_find_custom(strlist, str, &internal_compare_string) != NULL)?TRUE:FALSE; } gfal2-2.3.0/test/loadtests/0000755000175000017500000000000012164561703015035 5ustar ellertellertgfal2-2.3.0/test/loadtests/gfalt_copyfile_fts_style_load_test.c0000644000175000017500000000744412164561703024333 0ustar ellertellert/** * Compile command : gcc -o gfalt_copyfile gfalt_copyfile.c `pkg-config --libs --cflags gfal_transfer` */ #include #include #include #include #include #include // // This test follows exactly the FTS 3.0 copy pattern and can simualte a long run of successive copy in different context // void call_perf(gfalt_transfer_status_t h, const char* src, const char* dst, gpointer user_data){ size_t avg = gfalt_copy_get_average_baudrate(h,NULL) / 1024; size_t inst = gfalt_copy_get_instant_baudrate(h,NULL) / 1024; size_t trans= gfalt_copy_get_bytes_transfered(h,NULL); time_t elapsed = gfalt_copy_get_elapsed_time(h,NULL); printf(" <%ld> perf marker avg : %ld, inst: %ld, elapsed: %ld, trans: %ld \n", time(NULL), avg, inst, elapsed, trans); } int internal_copy(gfal2_context_t* handle, gfalt_params_t* params, const char* src, const char* dst){ GError * tmp_err = NULL; // classical GError/glib error management struct stat buff; struct stat buff2; printf(" stat src files.... \n"); if( gfal2_stat(*handle, src, &buff, &tmp_err) !=0){ printf(" error while the file stat %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }else{ g_assert(buff.st_size != 0); printf(" file size %ld",buff.st_size ); } printf(" begin transfer .... \n"); if( gfalt_copy_file(*handle, *params, src, dst, &tmp_err) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }else printf(" transfer sucessfull ! \n"); printf(" stat dst file .... \n"); if( gfal2_stat(*handle, dst, &buff2, &tmp_err) !=0){ printf(" error while the file stat %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }{ g_assert(buff2.st_size == buff.st_size); } return 0; } int main(int argc, char** argv){ int i, ret; if( argc <5 ){ printf(" Usage %s [src_url] [checksum] [dst_dir] [nbtime] \n",argv[0]); return 1; } GError * tmp_err = NULL; // classical GError/glib error management gfal2_context_t handle; // initialize gfal gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE | GFAL_VERBOSE_DEBUG); char buff[2048]; const int nbtime = atoi(argv[4]); const char * checksum_user = argv[2]; const char* src_file = argv[1]; printf(" sechedule %d transfets...", nbtime); for(i =0; i < nbtime;++i){ printf("execute %d....", i); if( (handle = gfal2_context_new(&tmp_err)) == NULL ) { printf(" bad initialization %d : %s.\n", tmp_err->code,tmp_err->message); return -1; } generate_random_uri(argv[3], "dest_fts_load_test_file", buff, 2048); // creat params gfalt_params_t my_params = gfalt_params_handle_new(NULL); gfalt_set_replace_existing_file(my_params, TRUE, NULL); gfalt_set_checksum_check(my_params, TRUE, NULL); gfalt_set_user_defined_checksum(my_params,"ADLER32",checksum_user, NULL); gfalt_set_monitor_callback(my_params, &call_perf,&tmp_err); gfalt_set_nbstreams(my_params, 4, &tmp_err); gfalt_set_timeout(my_params,3600, &tmp_err); // gfalt_set_src_spacetoken(my_params, "DTEAMLCGUTILSTEST", &tmp_err); // gfalt_set_dst_spacetoken(my_params, "DTEAMLCGUTILSTESTF", &tmp_err); // begin copy if(internal_copy(&handle, &my_params, src_file, buff) !=0){ return -1; } printf(" cleanup the copy ... %s",buff); if( (ret =gfal2_unlink(handle, buff, &tmp_err) ) < 0){ printf(" error message %s", tmp_err->message); return -1; } gfal2_context_free(handle); } return 0; } gfal2-2.3.0/test/loadtests/CMakeLists.txt0000644000175000017500000000104112164561703017571 0ustar ellertellert# # compilation lines for examples # list tests FILE(GLOB src_loadtest "gfalt_copyfile_fts_style_load_test.c") IF (LOAD_TESTS) # pkg_search_module(NETTLE_PKG REQUIRED nettle) include_directories( "${CMAKE_SOURCE_DIR}/src " "${CMAKE_SOURCE_DIR}/src/posix/" ${GLIB2_PKG_INCLUDE_DIRS} ${NETTLE_PKG_INCLUDE_DIRS} ) add_executable(fts_seq_copy_files ${src_loadtest} ${src_lib_test}) target_link_libraries(fts_seq_copy_files ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_MAIN} ) ENDIF (LOAD_TESTS) gfal2-2.3.0/test/CMakeLists.txt0000644000175000017500000000234212164561703015574 0ustar ellertellert## src cmake build script for srm-ifce ## default set of build SET(UNIT_TESTS FALSE CACHE STRING "enable compilation of unit tests") SET(FUNCTIONAL_TESTS FALSE CACHE STRING "functional tests for gfal ") SET(LOAD_TESTS FALSE CACHE STRING "load tests for gfal ") IF(ONLY_TESTS) pkg_check_modules(GFAL2_PKG REQUIRED gfal2) pkg_check_modules(GFAL2_TRANSFER_PKG REQUIRED gfal_transfer) SET(OUTPUT_NAME_MAIN ${GFAL2_PKG_LIBRARIES}) SET(OUTPUT_NAME_TRANSFER ${GFAL2_TRANSFER_PKG_LIBRARIES}) ENDIF(ONLY_TESTS) IF(UNIT_TESTS OR FUNCTIONAL_TESTS) # incldues tests add_subdirectory(gtest-1.6.0) ENDIF(UNIT_TESTS OR FUNCTIONAL_TESTS) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.6.0/include) #mock src FILE(GLOB src_mock "mock/*.c") SET(headers_mock "mock/") include_directories( ${headers_mock} "." ${PROJECT_SOURCE_DIR}/src/externals ${GFAL2_PKG_INCLUDE_DIRS}) link_directories (${PROJECT_BINARY_DIR}/src /) execute_process(COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/conf_test ${CMAKE_CURRENT_BINARY_DIR}/conf_test) #include common library for tests add_subdirectory(common) add_subdirectory(functional/gfal2) add_subdirectory(functional/old) add_subdirectory(loadtests) add_subdirectory(unit) gfal2-2.3.0/test/posix/0000755000175000017500000000000012164561703014175 5ustar ellertellertgfal2-2.3.0/test/posix/test__gfal_posix_xattr.h0000644000175000017500000000056212164561703021124 0ustar ellertellert#pragma once /* unit test for posix getxattr func */ #include #include #include #include #include void gfal2_test_getxattr_guid_lfn_base(); void gfal2_test_getxattr_guid(const char* good_lfn, const char* guid, const char* enoent_lfn, const char* eaccess_lfn); void gfal2_test_getxattr_status_srm_base(); gfal2-2.3.0/test/posix/test__gfal_posix_xattr.c0000644000175000017500000001054112164561703021115 0ustar ellertellert /* unit test for posix getxattr func */ #include #include #include #include #include #include #include #include #include "../unit_test_util.h" #include "gfal_posix_api.h" #include "gfal_posix_internal.h" #include "../common/gfal__test_common_srm.h" #include "../common/gfal__test_plugin.h" #include "../mock/gfal_mds_mock_test.h" #include "../mock/gfal_lfc_mock_test.h" #include "../mock/gfal_srm_mock_test.h" void gfal2_test_getxattr_guid(const char* good_lfn, const char* guid, const char* enoent_lfn, const char* eaccess_lfn); void gfal2_test_getxattr_status(const char* good_url, const char* status, const char* enoent_url, const char* eaccess_url); void init_mock_srm_getxattr(){ setup_mock_lfc(); setup_mock_srm(); } void gfal2_test_getxattr_guid_lfn_base(){ gfal2_test_getxattr_guid(TEST_LFC_OPEN_EXIST, TEST_GUID_ONLY_READ_ACCESS+5, TEST_LFC_OPEN_NOEXIST, TEST_LFC_OPEN_NOACCESS); } void gfal2_test_getxattr_guid(const char* good_lfn, const char* guid, const char* enoent_lfn, const char* eaccess_lfn){ int ret; init_mock_srm_getxattr(); char buffer[2048] = {0}; add_mock_error_lfc_guid_resolution(enoent_lfn, ENOENT); ret = gfal_getxattr(enoent_lfn, GFAL_XATTR_GUID, buffer, 2048); assert_true_with_message(ret < 0 && errno==ENOENT && gfal_posix_code_error()==ENOENT, " must be a enoent %d %d %d",ret,errno, gfal_posix_code_error() ); gfal_posix_clear_error(); add_mock_error_lfc_guid_resolution(eaccess_lfn, EACCES); ret = gfal_getxattr(eaccess_lfn, GFAL_XATTR_GUID, buffer, 2048); assert_true_with_message(ret < 0 && errno==EACCES && gfal_posix_code_error()==EACCES, " must be a eacces %d %d %d",ret,errno, gfal_posix_code_error() ); gfal_posix_clear_error(); ret = gfal_getxattr(good_lfn, GFAL_XATTR_GUID, NULL, 0); assert_true_with_message(ret > 0 && errno==0 && gfal_posix_code_error()==0 && buffer[0] == '\0', " must be an empty buffer %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_check_error(); add_mock_valid_lfc_guid_resolution(good_lfn, guid); ret = gfal_getxattr(good_lfn, GFAL_XATTR_GUID, buffer, 2048); assert_true_with_message(ret > 0 && errno==0 && gfal_posix_code_error()==0 , " must be a success %d %d %d ", ret, errno, gfal_posix_code_error()); assert_true_with_message(strcmp(buffer, guid) == 0, "invalid value return %s %s", buffer, guid); gfal_posix_check_error(); gfal_posix_clear_error(); } void gfal2_test_getxattr_status_srm_base(){ gfal2_test_getxattr_status(TEST_SRM_OPEN_EXIST, GFAL_XATTR_STATUS_ONLINE, TEST_SRM_OPEN_NOEXIST, TEST_SRM_OPEN_NOACCESS); } /** * * test for the extended attribute status on a srm file ( bringsonline ) */ void gfal2_test_getxattr_status(const char* good_url, const char* status, const char* enoent_url, const char* eaccess_url){ int ret; init_mock_srm_getxattr(); char buffer[2048] = {0}; add_mock_srm_ls_error(enoent_url, TEST_SRM_DPM_FULLENDPOINT_URL, ENOENT, " enoent error "); ret = gfal_getxattr(enoent_url, GFAL_XATTR_STATUS, buffer, 2048); assert_true_with_message(ret < 0 && errno==ENOENT && gfal_posix_code_error()==ENOENT, " must be a enoent %d %d %d",ret,errno, gfal_posix_code_error() ); gfal_posix_clear_error(); add_mock_srm_ls_error(enoent_url, TEST_SRM_DPM_FULLENDPOINT_URL, EACCES, " eacces error "); ret = gfal_getxattr(eaccess_url, GFAL_XATTR_STATUS, buffer, 2048); assert_true_with_message(ret < 0 && errno==EACCES && gfal_posix_code_error()==EACCES, " must be a eacces %d %d %d",ret,errno, gfal_posix_code_error() ); gfal_posix_clear_error(); ret = gfal_getxattr(good_url, GFAL_XATTR_STATUS, NULL, 0); assert_true_with_message(ret > 0 && errno==0 && gfal_posix_code_error()==0 && buffer[0] == '\0', " must be an empty buffer %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_check_error(); add_mock_srm_ls_locality_valid(good_url, TEST_SRM_DPM_FULLENDPOINT_URL, GFAL_LOCALITY_ONLINE_); ret = gfal_getxattr(good_url, GFAL_XATTR_STATUS, buffer, 2048); assert_true_with_message(ret > 0 && errno==0 && gfal_posix_code_error()==0 , " must be a success %d %d %d ", ret, errno, gfal_posix_code_error()); assert_true_with_message(strcmp(buffer, status) == 0, "invalid value return %s %s", buffer, status); gfal_posix_check_error(); gfal_posix_clear_error(); } gfal2-2.3.0/test/unit/0000755000175000017500000000000012164561703014012 5ustar ellertellertgfal2-2.3.0/test/unit/CMakeLists.txt0000644000175000017500000000040312164561703016547 0ustar ellertellert if(UNIT_TESTS) include_directories(${PROJECT_SOURCE_DIR}/src ".") add_subdirectory(common/srm) add_subdirectory(common/gridftp) add_subdirectory(common/file) add_subdirectory(global) add_subdirectory(cancel) add_subdirectory(transfer) endif(UNIT_TESTS) gfal2-2.3.0/test/unit/transfer/0000755000175000017500000000000012164561703015636 5ustar ellertellertgfal2-2.3.0/test/unit/transfer/tests_params.cpp0000644000175000017500000000544412164561703021056 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "tests_params.h" #include #include #include #include #include #include using namespace Gfal::Transfer; int get_locked_errcode(){ return EBUSY; } TEST(gfalTransfer, testparam){ GError * tmp_err=NULL; gfalt_params_t p = gfalt_params_handle_new(&tmp_err); g_assert(p != NULL); g_assert(tmp_err == NULL); gfalt_params_t p2 = gfalt_params_handle_copy(p, &tmp_err); g_assert(p2 != NULL); g_assert(tmp_err == NULL); gfalt_params_handle_delete(NULL, &tmp_err); g_assert(tmp_err == NULL); gfalt_params_handle_delete(p,&tmp_err); g_assert(tmp_err == NULL); gfalt_params_handle_delete(p2,&tmp_err); g_assert(tmp_err == NULL); } TEST(gfalTransfer, testtimeout){ GError * tmp_err=NULL; gfalt_params_t p = gfalt_params_handle_new(&tmp_err); ASSERT_TRUE( p != NULL && tmp_err==NULL); long res = gfalt_get_timeout(p, &tmp_err); ASSERT_TRUE( res == GFALT_DEFAULT_TRANSFERT_TIMEOUT && tmp_err==NULL); guint64 r = (guint64) rand(); gfalt_set_timeout(p, r, &tmp_err); ASSERT_TRUE( gfalt_get_timeout(p, &tmp_err) == r); gfalt_params_handle_delete(p,NULL); } TEST(gfalTransfer, testnbstream){ GError * tmp_err=NULL; gfalt_params_t p = gfalt_params_handle_new(&tmp_err); ASSERT_TRUE( p != NULL && tmp_err==NULL); long res = gfalt_get_nbstreams(p, &tmp_err); ASSERT_TRUE( res == GFALT_DEFAULT_NB_STREAM && tmp_err==NULL); long r = rand(); gfalt_set_nbstreams(p, r, &tmp_err); ASSERT_TRUE( gfalt_get_nbstreams(p, &tmp_err) == r); gfalt_params_handle_delete(p,NULL); } TEST(gfalTransfer, testlocaltransfer){ GError * tmp_err=NULL; gfalt_params_t p = gfalt_params_handle_new(&tmp_err); ASSERT_TRUE( p != NULL && tmp_err==NULL); gboolean res = gfalt_get_local_transfer_perm(p, &tmp_err); ASSERT_TRUE( res == TRUE && tmp_err==NULL); int ret = gfalt_set_local_transfer_perm(p, FALSE, &tmp_err); res = gfalt_get_local_transfer_perm(p, &tmp_err); ASSERT_TRUE( res == FALSE && ret == FALSE && tmp_err==NULL); gfalt_params_handle_delete(p,NULL); } gfal2-2.3.0/test/unit/transfer/CMakeLists.txt0000644000175000017500000000121212164561703020372 0ustar ellertellert# # unti test for transfer system IF (UNIT_TESTS ) IF (MAIN_TRANSFER) include_directories( "../ " "../libcpp/" ${GLIB2_PKG_INCLUDE_DIRS} ${GTHREAD2_PKG_INCLUDE_DIRS} ${GLIBMM_PKG_INCLUDE_DIRS}) FILE(GLOB src_test_transfer "*.c*") add_executable(unit_test_transfer_params_exe ${src_test_transfer} ) target_link_libraries(unit_test_transfer_params_exe ${OUTPUT_NAME_MAIN} gfal2_transfer m gtest gtest_main) add_test(unit_test_transfer_params unit_test_transfer_params_exe) ENDIF (MAIN_TRANSFER) ENDIF (UNIT_TESTS) gfal2-2.3.0/test/unit/transfer/test_filecopy.cpp0000644000175000017500000000335412164561703021220 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "test_filecopy.h" #include #include #include #include #include #include using namespace Gfal::Transfer; using namespace Gfal; void test_filecopy_instance(){ setenv("GFAL_PLUGIN_LIST", "libgfal_plugin_gridftp.so", TRUE); gfal_handle handle = gfal_initG(NULL); ASSERT_TRUE(handle != NULL); FileCopy *f = new FileCopy(handle); ASSERT_TRUE(f != NULL); gfal_handle_freeG(handle); delete f; } void test_filecopy_instance_c(){ setenv("GFAL_PLUGIN_LIST", "libgfal_plugin_gridftp.so", TRUE); GError* tmp_err= NULL; gfal2_context_t c = gfal2_context_new(&tmp_err); ASSERT_TRUE(c != NULL && tmp_err==NULL); gfal2_context_free(c); } void test_filecopy_instance_c_problem(){ setenv("GFAL_PLUGIN_DIR", "/tmp/blablafalse", TRUE); GError* tmp_err= NULL; gfal2_context_t c = gfal2_context_new(&tmp_err); ASSERT_TRUE(c == NULL && tmp_err!=NULL); printf("%d %s\n", tmp_err->code, tmp_err->message); } gfal2-2.3.0/test/unit/transfer/tests_params.h0000644000175000017500000000166212164561703020521 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #ifndef TESTS_PARAMS_H #define TESTS_PARAMS_H void create_params(); void test_timeout(); void test_timeout_c(); void test_nbstreams(); void test_nbstreams_c(); void test_lock(); void test_local_transfers(); #endif /* TESTS_PARAMS_H */ gfal2-2.3.0/test/unit/transfer/test_filecopy.h0000644000175000017500000000153712164561703020666 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef TEST_FILECOPY_H #define TEST_FILECOPY_H void test_filecopy_instance(); void test_filecopy_instance_c(); void test_filecopy_instance_c_problem(); #endif /* TEST_FILECOPY_H */ gfal2-2.3.0/test/unit/cancel/0000755000175000017500000000000012164561703015237 5ustar ellertellertgfal2-2.3.0/test/unit/cancel/cancel_tests.cpp0000644000175000017500000000175512164561703020422 0ustar ellertellert #include #include TEST(gfalCancel, test_cancel_simple){ GError* tmp_err=NULL; gfal2_context_t c = gfal2_context_new(&tmp_err); ASSERT_TRUE(c != NULL); gfal2_cancel(c); gfal2_cancel(c); gfal2_cancel(c); gfal2_context_free(c); } void gfal_cancel_hook_cb_s(gfal2_context_t context, void* userdata){ int* p = (int*)userdata; *p += 1; (void) gfal_version(); } TEST(gfalGlobal, testCancelCallback){ GError* tmp_err=NULL; gfal2_context_t c = gfal2_context_new(&tmp_err); ASSERT_TRUE(c != NULL); int i=0,res ; // add callback7 gfal_cancel_token_t tok = gfal2_register_cancel_callback(c, &gfal_cancel_hook_cb_s, &i); ASSERT_TRUE( tok != NULL); res= gfal2_cancel(c); ASSERT_EQ(res, 0); ASSERT_EQ(i, 1); gfal2_remove_cancel_callback(c, tok); res= gfal2_cancel(c); ASSERT_EQ(res, 0); ASSERT_EQ(i, 1); res= gfal2_cancel(c); ASSERT_EQ(res, 0); gfal2_context_free(c); } gfal2-2.3.0/test/unit/cancel/CMakeLists.txt0000644000175000017500000000111012164561703017770 0ustar ellertellert# # unti test for transfer system IF (UNIT_TESTS ) include_directories( "../ " "../libcpp/" ${GLIB2_PKG_INCLUDE_DIRS} ${GTHREAD2_PKG_INCLUDE_DIRS} ) FILE(GLOB src_test_cancel "*.c*") add_executable(unit_test_transfer_cancel_exe ${src_test_cancel} ) target_link_libraries(unit_test_transfer_cancel_exe ${OUTPUT_NAME_MAIN} gfal2_transfer m gtest gtest_main) add_test(unit_test_transfer_cancel unit_test_transfer_cancel_exe) ENDIF (UNIT_TESTS) gfal2-2.3.0/test/unit/common/0000755000175000017500000000000012164561703015302 5ustar ellertellertgfal2-2.3.0/test/unit/common/gridftp/0000755000175000017500000000000012164561703016741 5ustar ellertellertgfal2-2.3.0/test/unit/common/gridftp/tests_gridftp.cpp0000644000175000017500000000606612164561703022336 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "tests_gridftp.h" #include #include #include #include #include gfal_handle init_gfal_handle(){ GError * tmp_err=NULL; gfal_handle h = gfal_initG(&tmp_err); g_assert(tmp_err == NULL); g_assert( h != NULL); return h; } plugin_handle init_gridftp_plugin_test(gfal_handle h){ GError * tmp_err=NULL; plugin_handle p = gridftp_plugin_load(h, &tmp_err); g_assert( p && tmp_err ==NULL ); return p; } TEST(gfalGridFTP, load_gridftp){ GError * tmp_err=NULL; core_init(); gfal_handle h = gfal_initG(&tmp_err); ASSERT_TRUE(tmp_err== NULL && h ); plugin_handle p = gridftp_plugin_load(h, &tmp_err); ASSERT_TRUE( p && tmp_err ==NULL ); gridftp_plugin_unload(p); gfal_handle_freeG(h); } TEST(gfalGridFTP,handle_creation){ GError * tmp_err=NULL; gfal_handle h = gfal_initG(&tmp_err); ASSERT_TRUE(tmp_err== NULL && h ); GridFTPFactoryInterface* f = new GridFTPFactory(h); GridftpModule* copy = new GridftpModule( f); ASSERT_TRUE(copy != NULL); // create and delete properly GridFTP_session* sess = f->gfal_globus_ftp_take_handle("gsiftp://fsdfdsfsd/fsdfds"); f->gfal_globus_ftp_release_handle(sess); // wild delete for exception clean recovery sess = f->gfal_globus_ftp_take_handle("gsiftp://fsdfdsfsd/fsdfds"); delete sess; delete copy; gfal_handle_freeG(h); } TEST(gfalGridFTP,gridftp_parseURL){ // check null handle, must not segfault gridftp_check_url_transfer(NULL, "gsiftp://myurl.com/mypath/myfile", "gsiftp://myurl.com/mypath/myfile", GFAL_FILE_COPY); gfal_handle a= init_gfal_handle() ; plugin_handle p = init_gridftp_plugin_test(a); // check with URL null, must not segfault and return false bool res = gridftp_check_url_transfer(p, NULL, NULL, GFAL_FILE_COPY); ASSERT_TRUE(res == FALSE); res = gridftp_check_url_transfer(p, "gsiftp://myurl.com/mypath/myfile", "gsiftp://myurl.com/mypath/myfile", GFAL_FILE_COPY); ASSERT_TRUE(res == TRUE); res = gridftp_check_url_transfer(p, "myurl.com/mypath/myfile", "gsiftp://myurl.com/mypath/myfile", GFAL_FILE_COPY); ASSERT_TRUE(res == FALSE); res = gridftp_check_url_transfer(p, "gsiftp://myurl.com/mypath/myfile", "myurl.com/mypath/myfile", GFAL_FILE_COPY); ASSERT_TRUE(res == FALSE); gridftp_plugin_unload(p); gfal_handle_freeG(a); } gfal2-2.3.0/test/unit/common/gridftp/CMakeLists.txt0000644000175000017500000000175512164561703021511 0ustar ellertellert# # unit test for transfer system IF (UNIT_TESTS ) link_directories (${CMAKE_BINARY_DIR}/plugins) link_directories (${CMAKE_BINARY_DIR}/src) IF (PLUGIN_GRIDFTP) FILE(GLOB src_test_gridftp "*.c*") pkg_check_modules(GLOBUS_GASS_COPY_PKG REQUIRED globus-gass-copy) include_directories( "../ " "../libcpp/" ${GLIB2_PKG_INCLUDE_DIRS} ${GTHREAD2_PKG_INCLUDE_DIRS} ${GLIBMM_PKG_INCLUDE_DIRS}) add_definitions( ${GLOBUS_GASS_COPY_PKG_CFLAGS} ${OpenMP_C_FLAGS}) add_executable(unit_test_gridftp_plugin_exe ${src_test_gridftp} ) target_link_libraries(unit_test_gridftp_plugin_exe ${OUTPUT_NAME_MAIN} ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_GRIDFTP} m gtest gtest_main) add_dependencies(unit_test_gridftp_plugin_exe plugin_gridftp) add_test(unit_test_gridftp_plugin unit_test_gridftp_plugin_exe ) ENDIF (PLUGIN_GRIDFTP) ENDIF (UNIT_TESTS) gfal2-2.3.0/test/unit/common/gridftp/tests_gridftp.h0000644000175000017500000000147412164561703022001 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef TESTS_GRIDFTP_H #define TESTS_GRIDFTP_H void load_gridftp(); void gridftp_parseURL(); void handle_creation(); #endif /* TESTS_GRIDFTP_H */ gfal2-2.3.0/test/unit/common/srm/0000755000175000017500000000000012164561703016103 5ustar ellertellertgfal2-2.3.0/test/unit/common/srm/CMakeLists.txt0000644000175000017500000000124012164561703020640 0ustar ellertellert# # unti test for transfer system link_directories (${CMAKE_BINARY_DIR}/plugins) link_directories (${CMAKE_BINARY_DIR}/src) IF (UNIT_TESTS ) IF (PLUGIN_SRM) FILE(GLOB src_test_srm "*.c*") link_directories (${PROJECT_BINARY_DIR}/src) add_executable(unit_test_srm_plugin ${src_test_srm}) target_link_libraries(unit_test_srm_plugin ${OUTPUT_NAME_MAIN} ${SRM_IFCE_PKG_LIBRARIES} ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_SRM} m gfal2 gtest gtest_main) add_dependencies(unit_test_srm_plugin plugin_srm) add_test(test_srm_check_url unit_test_srm_plugin srm_url_check) ENDIF (PLUGIN_SRM) ENDIF (UNIT_TESTS) gfal2-2.3.0/test/unit/common/srm/tests_srm.h0000644000175000017500000000142012164561703020274 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef TESTS_GRIDFTP_H #define TESTS_GRIDFTP_H void test_srm_url_check(); #endif /* TESTS_GRIDFTP_H */ gfal2-2.3.0/test/unit/common/srm/tests_srm.cpp0000644000175000017500000000344412164561703020637 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "tests_srm.h" #include #include #include #include extern "C"{ #include #include } TEST(gfalPlugin, srmTest){ GError * tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); ASSERT_TRUE(tmp_err== NULL && handle); gfal_srmv2_opt opts; gfal_srm_opt_initG(&opts, handle); gboolean res = plugin_url_check2(&opts, NULL, NULL, GFAL_FILE_COPY); ASSERT_TRUE(res == FALSE); res = plugin_url_check2(&opts, "srm://blabla.com/tata", "srm://blabla.com/toto", GFAL_FILE_COPY); ASSERT_TRUE(res == TRUE); res = plugin_url_check2(&opts, NULL , "srm://blabla.com/toto", GFAL_FILE_COPY); ASSERT_TRUE(res == FALSE); res = plugin_url_check2(&opts, "fsdfds", "srm://blabla.com/toto", GFAL_FILE_COPY); ASSERT_TRUE(res == FALSE ); res = plugin_url_check2(&opts, "srm://blabla.com/toto", "dsffds", GFAL_FILE_COPY); ASSERT_TRUE(res == FALSE); res = plugin_url_check2(&opts, "sr", "", GFAL_FILE_COPY); ASSERT_TRUE(res == FALSE); gfal_handle_freeG(handle); } gfal2-2.3.0/test/unit/common/file/0000755000175000017500000000000012164561703016221 5ustar ellertellertgfal2-2.3.0/test/unit/common/file/CMakeLists.txt0000644000175000017500000000024712164561703020764 0ustar ellertellert# # unti test for transfer system link_directories (${CMAKE_BINARY_DIR}/plugins) link_directories (${CMAKE_BINARY_DIR}/src) IF (UNIT_TESTS ) ENDIF (UNIT_TESTS) gfal2-2.3.0/test/unit/global/0000755000175000017500000000000012164561703015252 5ustar ellertellertgfal2-2.3.0/test/unit/global/CMakeLists.txt0000644000175000017500000000034412164561703020013 0ustar ellertellert SET(src_global "global_test.cpp") add_executable(g_test_gfal2_text_exe ${src_global} ) target_link_libraries(g_test_gfal2_text_exe gfal2 gtest gtest_main) add_test(g_test_gfal2_text g_test_gfal2_text_exe ) gfal2-2.3.0/test/unit/global/global_test.cpp0000644000175000017500000000210312164561703020251 0ustar ellertellert #include #include #include TEST(gfalGlobal, test_verbose){ gfal_set_verbose(GFAL_VERBOSE_DEBUG); int r = gfal_get_verbose(); ASSERT_TRUE(r==GFAL_VERBOSE_DEBUG); } TEST(gfalGlobal, testLoad){ GError* tmp_err=NULL; gfal2_context_t c = gfal2_context_new(&tmp_err); if (tmp_err) printf("%s\n", tmp_err->message); ASSERT_EQ((GError*)NULL, tmp_err); ASSERT_TRUE(c != NULL); gfal2_context_free(c); c = NULL; gfal2_context_free(c); } TEST(gfalGlobal, url_parsing){ GError* tmp_err=NULL; const char* url = "gsiftp://dcache-door-desy09.desy.de:2811/pnfs/desy.de/dteam/gfal2-tests/testread0011"; const char* bad_url= "bob the sponge:"; char buffer[GFAL_URL_MAX_LEN]= {0}; int ret = gfal_hostname_from_uri(url, buffer, GFAL_URL_MAX_LEN, &tmp_err); ASSERT_EQ(0, ret); ASSERT_STREQ("dcache-door-desy09.desy.de:2811", buffer); ret = gfal_hostname_from_uri(bad_url, buffer, GFAL_URL_MAX_LEN, &tmp_err); ASSERT_GT(0,ret); ASSERT_TRUE(tmp_err != NULL); } gfal2-2.3.0/test/setup.sh0000755000175000017500000000513612164561703014537 0ustar ellertellert#! /bin/bash # Copyright (c) Members of the EGEE Collaboration. 2004. # See http://www.eu-egee.org/partners/ for details on the copyright holders. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Global settings for all the tests. # Exit in case of uninitialized variables set -o nounset # Exit the script in case of non-true return value set -o errexit function usage { echo echo "Usage:" echo echo "Prerequistes:" echo echo " - BUILD_ROOT must be set to to the root of the build/checkout of the lcgutil project. Example:" echo echo " export BUILD_ROOT=/home/$USER/workspace" echo } function checkVariable { local VAR_NAME=$1 local VAR_DEFAULT=$2 local VAR_VALUE=$3 # color codes, color howto: http://webhome.csc.uvic.ca/~sae/seng265/fall04/tips/s265s047-tips/bash-using-colors.html if [ ! -n "$VAR_VALUE" ] ;then echo echo -e "\e[1;31mERROR: $VAR_NAME is not set.\e[0m For example:" echo echo "export $VAR_NAME=$VAR_DEFAULT" echo usage exit 1 fi } function execute_command { local line_number=$1 local expected_return_code=$2 local pattern_in_output=$3 local command=$4 set +o nounset local is_display=$5 set -o nounset echo -e "\nExecuting command from line $line_number:\n$command\n\n" set +e OUTPUT=$(eval $command 2>&1) local return_code=$? if [ $return_code != $expected_return_code ]; then echo -e "Command failed at line $line_number (return code: $return_code, expected: $expected_return_code)" echo -e "\nCommand output:\n$OUTPUT\n" exit 1 fi match=`echo $OUTPUT | grep -c "$pattern_in_output"` if [ $match == 0 ]; then echo -e "Expected pattern \"$pattern_in_output\" cannot be found in the output.\n" echo -e "Command output:\n$OUTPUT\n" exit 1 fi if [ -n "$is_display" ] ; then echo -e "Command output:\n$OUTPUT\n" fi set -e } checkVariable BUILD_ROOT "/home/user/workspace" $BUILD_ROOT source $BUILD_ROOT/org.glite.data.project/bin/test-setup-gfal.sh gfal2-2.3.0/test/test_helpers.h0000644000175000017500000000214312164561703015705 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TEST_HELPERS_H #define _TEST_HELPERS_H #define ERRBUFSZ 1024 void helper_make_guid(char *); void helper_make_test_root(char *, int); void helper_make_surl(char *, const char *); void helper_make_lfn(char *, const char*); int helper_remove_lfn(const char*, char *, int); int helper_remove_surl(const char*, char *, int); int setenviron (const char *, const char *); int clearenviron (const char *); #endif gfal2-2.3.0/test/test_deployement.sh0000755000175000017500000000332312164561703016757 0ustar ellertellert#!/bin/bash # # set -e PROXY_PATH=$(ls /tmp/x509up_u$UID*) echo "Proxy path found to $PROXY_PATH" echo "## start test deployement" gfal_dir=$(dirname $0)/ gfal_dir=$(readlink -f "$gfal_dir/../") echo "## gfal dir $gfal_dir " echo "## create gfal2 test dir execution : " gfal_test_dir=$(mktemp -td gfal2.XXXXXXXXXXXXXXXX) echo "## gfal test dir $gfal_test_dir " mkdir -p $gfal_test_dir/build cd $gfal_test_dir/build echo "## configure project ..." cmake -D MAIN_TRANSFER=TRUE -D FUNCTIONAL_TESTS=TRUE -D UNIT_TESTS=TRUE -D CMAKE_INSTALL_PREFIX=/usr -D ONLY_TESTS=TRUE $gfal_dir echo "## build tests..." make echo "## import test environment" source $gfal_dir/setup_test_env_isolated.sh echo "## test deployement .... " n_test=$(ctest -N | grep "[\\/|#][0-9]" | wc -l) echo "## found $n_test tests to execute..." echo "## creat tests..." mkdir -p $PATH_TESTS for i in `seq $n_test`} do test_name_core=$(ctest -N -I ${i},${i} | grep "[\\/|#][0-9]" | sed 's/[ \t]*$//g' | sed 's/.*\ \(.*\)$/\1/g') test_name="gfal2-ctest-${test_name_core}-$i" echo " generate test : $test_name" test_path=$PATH_TESTS/$test_name touch $test_path echo "#!/bin/bash" >> $test_path echo "## test $test_name" >> $test_path echo " " >> $test_path echo "## test credential ..." >> $test_path echo "voms-proxy-info -all" >> $test_path echo "## setup credential path ..." >> $test_path echo "export X509_USER_PROXY=$PROXY_PATH" >> $test_path echo "## print env ..." >> $test_path echo "env" >> $test_path echo "## start test ..." >> $test_path echo "cd $gfal_test_dir/build " >> $test_path echo "set -e" >> $test_path echo "source $gfal_dir/setup_test_env_isolated.sh" >> $test_path echo "ctest -V -I ${i},${i}" >> $test_path chmod a+x $test_path done gfal2-2.3.0/test/unit_test_util.h0000644000175000017500000000030612164561703016256 0ustar ellertellert/* * * Simple tools for unit tests * * */ #define _GNU_SOURCE #include #include #include #include "unit_test_constants.h" gboolean gfal2_tests_is_mock(); gfal2-2.3.0/test/lfc_configure.sh0000755000175000017500000000243112164561703016177 0ustar ellertellert#!/bin/bash ## script to an auto configuration of a dpm storage element for the srm unit test # echo "$1" if [ ["$1" = ""] -o ["$2" = ""] ]; then echo "Invalid Usage" echo " $0 LFC_PREFIX SRM_PATH ...." echo " ex : $0 /grid/dteam srm://grid05.lal.in2p3.fr:8446/dpm/lal.in2p3.fr/home/dteam/" exit -1 fi function create_on_grid { lcg-cr -l "lfn:$1" -d $2 file:///etc/group } function create_directory { lfc-mkdir $1 } function change_right { lfc-chmod $1 $2 } TESTOPENDIR0011="$1/testopendir0011" TESTOPENDIR0012="$1/testopendir0012" TESTREADDIR0011="$1/testreaddir0011" TESTREADDIR_1="$TESTREADDIR0011/testreaddir0012" TESTREADDIR_2="$TESTREADDIR0011/testreaddir0013" TESTREADDIR_3="$TESTREADDIR0011/testreaddir0014" TESTREADDIR_4="$TESTREADDIR0011/testreaddir0015" TESTOPEN_FOLDER0011="testopen0011" TESTOPEN_FILE="$TESTOPEN_FOLDER0011/testopen0012" create_directory "$TESTOPENDIR0011" create_directory "$TESTOPENDIR0012" change_right 000 "$TESTOPENDIR0012" #readddir create_directory "$TESTREADDIR0011" create_directory "$TESTREADDIR_1" create_directory "$TESTREADDIR_2" create_directory "$TESTREADDIR_3" create_directory "$TESTREADDIR_4" #open create_directory "$1/$TESTOPEN_FOLDER0011" create_on_grid "$1/$TESTOPEN_FILE" "$2/$TESTOPEN_FILE" change_right 000 "$1/$TESTOPEN_FOLDER0011" gfal2-2.3.0/test/common/0000755000175000017500000000000012164561703014323 5ustar ellertellertgfal2-2.3.0/test/common/CMakeLists.txt0000644000175000017500000000023512164561703017063 0ustar ellertellert # lib test FILE(GLOB src_lib_test "gfal_lib_test.c" ) set(src_lib_test ${src_lib_test} PARENT_SCOPE) set(src_lib_headers "gfal_lib_test.h" PARENT_SCOPE) gfal2-2.3.0/test/common/gfal_lib_test.c0000644000175000017500000000246412164561703017273 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include char* generate_random_uri(const char* uri_dir, const char* prefix, char* buff, size_t s_buff){ snprintf(buff, s_buff, "%s/%s_%d%ld%ld",uri_dir, prefix, (int)getpid() ,(long) time(NULL), (long) rand()); return buff; } char * generate_random_string_content(size_t size){ char * res = malloc(size * sizeof(char)); size_t i =0; while(i < size){ res[i]= (char) (((rand()%2)?65:97)+(rand()%26)); i++; } return res; } #include "gfal_lib_test.h" gfal2-2.3.0/test/common/gfal_lib_test.h0000644000175000017500000000170412164561703017274 0ustar ellertellert#pragma once #ifndef GFAL_LIB_TEST_H #define GFAL_LIB_TEST_H /* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include char* generate_random_uri(const char* uri_dir, const char* prefix, char* buff, size_t s_buff); char * generate_random_string_content(size_t size); #endif /* GFAL_LIB_TEST_H */ gfal2-2.3.0/test/conf_test/0000755000175000017500000000000012164561703015017 5ustar ellertellertgfal2-2.3.0/test/conf_test/dcap_plugin.conf0000644000175000017500000000025712164561703020157 0ustar ellertellert# # basic configuration for the gfal 2 DCAP plugin [DCAP PLUGIN] # set the passive mode enabled or now # active mode can cause troubles with firewalls MODE_PASSIVE=TRUE gfal2-2.3.0/test/conf_test/rfio_plugin.conf0000644000175000017500000000026712164561703020210 0ustar ellertellert# # basic configuration for the gfal 2 rfio plugin [RFIO PLUGIN] # type of RFIO library to use ( cf : rfio castor vs rfio dpm ) # value can be castor or dpm LCG_RFIO_TYPE="dpm" gfal2-2.3.0/test/conf_test/srm_plugin.conf0000644000175000017500000000125312164561703020046 0ustar ellertellert# # basic configuration for the gfal 2.0 srm plugin [SRM PLUGIN] # timeout for SRM operations in secondes OPERATION_TIMEOUT=180 # timeout for the HTTP connexion in sec CONN_TIMEOUT=60 # default checksum type for transfer check COPY_CHECKSUM_TYPE=ADLER32 # ordered list of turls protocols for remote I/O # the top priority protocol is the first one TURL_PROTOCOLS=rfio;gsidcap;dcap;kdcap;gsiftp # ordered list of turls protocols for third party transfer # only protocol supporting third party copy should be here # the top priority protocol is the first one TURL_3RD_PARTY_PROTOCOLS=gsiftp # enable or disable the srm session re-use # no parameter : disabled KEEP_ALIVE=true gfal2-2.3.0/test/conf_test/bdii.conf0000644000175000017500000000033412164561703016575 0ustar ellertellert# # basic configuration for the gfal 2 BDII related options [BDII] # enable or disable bdii query system ( default : enabled ) ENABLED=true # BDII default server to contact LCG_GFAL_INFOSYS=lcg-bdii.cern.ch:2170 gfal2-2.3.0/test/conf_test/dcap_plugin.conf.rpmnew0000644000175000017500000000025712164561703021466 0ustar ellertellert# # basic configuration for the gfal 2 DCAP plugin [DCAP PLUGIN] # set the passive mode enabled or now # active mode can cause troubles with firewalls MODE_PASSIVE=TRUE gfal2-2.3.0/test/conf_test/http_plugin.conf0000644000175000017500000000012412164561703020220 0ustar ellertellert## configuration file for http plugin ## [HTTP PLUGIN] ## ## I will be back ! gfal2-2.3.0/test/conf_test/gfal2_core.conf0000644000175000017500000000011412164561703017665 0ustar ellertellert# # Core configuration of GFAL 2.0 [CORE] # # nothing special for npw gfal2-2.3.0/test/conf_test/lfc_plugin.conf0000644000175000017500000000041012164561703020003 0ustar ellertellert# # basic configuration for the gfal 2 lfc plugin [LFC PLUGIN] # HOSTNAME of the lfc to contact LFC_HOST=cvitblfc1.cern.ch # connexion timeout in second LFC_CONNTIMEOUT=15 # maximum number of try for opening a connexion LFC_CONRETRY=2 # LFC_CONRETRYINT=1 gfal2-2.3.0/test/conf_test/gsiftp_plugin.conf0000644000175000017500000000162212164561703020541 0ustar ellertellert# # basic configuration for the gfal 2 griftp plugin [GRIDFTP PLUGIN] # enable or disable gridFTPv2 support GRIDFTP_V2=true # enable or disable session re-use support # warning : disable this feature can slow-down a lot the performances SESSION_REUSE=false # default number of streams used for file transfers # 0 means in-order-stream mode RD_NB_STREAM=0 # default checksum algorithm type used for transfer content verification COPY_CHECKSUM_TYPE=ADLER32 # enable or disable the encryption for the data channel DCAU=false # enable or disable Ipv6 support IPV6=true # define the maximum time in s # for a gsiftp checksum request CHECKSUM_CALC_TIMEOUT=1800 # maximum time between two performance marker # disable if equal to 0 PERF_MARKER_TIMEOUT=600 ## enable or disable the delay passive option of gridftpv2 ## this option need to be enabled to support the gridftp redirection features DELAY_PASSV=true gfal2-2.3.0/test/functional/0000755000175000017500000000000012164561703015175 5ustar ellertellertgfal2-2.3.0/test/functional/old/0000755000175000017500000000000012164561703015753 5ustar ellertellertgfal2-2.3.0/test/functional/old/unit_test_cgreen.c0000644000175000017500000002425612164561703021471 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * Unit tests for gfal based on the cgreen library * @author : Devresse Adrien * @version : 0.0.1 */ #include #include #include #include "unit_test_constants.h" #include "common/gfal_common_errverbose.h" #include "common/gfal__test_verbose.h" #include "common/gfal__test_plugin.h" //#include "common/voms/gfal__test_voms.h" #include "common/gfal__test_common_srm.h" #include "common/gfal__test_common_srm_access.h" #include "common/mds/gfal__test_common_mds.h" #include "common/lfc/gfal__test_common_lfc.h" #include "common/gfal__test_common_srm_no_glib.h" #include "common/gfal__test_common_dir_file_descriptor.h" #include "posix/test__gfal_posix_access.h" #include "posix/test__gfal_posix_chmod.h" #include "posix/test__gfal_posix_mkdir.h" #include "posix/test__gfal_posix_stat.h" #include "posix/test__gfal_posix_open.h" #include "posix/test__gfal_posix_read.h" #include "posix/test__gfal_posix_write.h" #include "posix/test__gfal_posix_opendir.h" #include "posix/test__gfal_posix_xattr.h" #include "common/rfio/test__gfal_rfio_plugin.h" #include "externals/test_skiplist.h" TestSuite * verbose_suite (void) { TestSuite *s1 = create_test_suite(); // verbose test case / add_test(s1, gfal2_test_verbose_set_get); return s1; } TestSuite * plugin_suite (void) { TestSuite *s2 = create_test_suite(); // verbose test case / add_test(s2, gfal2_test_plugin_access_file); add_test(s2, gfal2_test_plugin_url_checker); add_test(s2, gfal2_test__plugin_stat); add_test(s2, gfal2_test__plugin_lstat); return s2; } TestSuite* srm_Suite(){ TestSuite *tc_srm = create_test_suite(); add_test(tc_srm, gfal2_test_create_srm_handle); add_test(tc_srm, gfal2_test__gfal_convert_full_surl); add_test(tc_srm, gfal2_test_gfal_get_hostname_from_surl); add_test(tc_srm, gfal2_test_gfal_full_endpoint_checkG); add_test(tc_srm, gfal2_test_gfal_get_endpoint_and_setype_from_bdiiG); add_test(tc_srm, gfal2_test_gfal_select_best_protocol_and_endpointG); add_test(tc_srm, gfal2_test_gfal_srm_determine_endpoint_full_endpointG); add_test(tc_srm, gfal2_test_gfal_auto_get_srm_endpoint_full_endpoint_with_no_bdiiG); add_test(tc_srm, gfal2_test_gfal_srm_determine_endpoint_not_fullG); add_test(tc_srm, gfal2_test_gfal_srm_getTURLS_one_success); add_test(tc_srm, gfal2_test_gfal_srm_getTURLS_bad_urls); add_test(tc_srm, gfal2_test_gfal_srm_getTURLS_pipeline_success); add_test(tc_srm, gfal2_test_srm_get_checksum); return tc_srm; } TestSuite* no_glib_suite(){ TestSuite* tc_srm_no_glib = create_test_suite(); add_test(tc_srm_no_glib, gfal2_test_srm_api_no_glib_full); return tc_srm_no_glib; } TestSuite* mds_suite(){ TestSuite *tc_mds= create_test_suite(); add_test(tc_mds, gfal2_test_check_bdii_endpoints_srm); add_test(tc_mds, gfal2_gfal2_test_check_bdii_endpoints_srm_ng); return tc_mds; } TestSuite* lfc_suite(){ TestSuite *tc_lfc= create_test_suite(); add_test(tc_lfc, gfal2_test_gfal_common_lfc_resolve_sym); add_test(tc_lfc, gfal2_test_gfal_common_lfc_init); add_test(tc_lfc, gfal2_test__gfal_common_lfc_statg); add_test(tc_lfc, gfal2_test__gfal_common_lfc_rename); add_test(tc_lfc, gfal2_test_gfal_common_lfc_access); add_test(tc_lfc, gfal2_test_gfal_common_lfc_no_exist); add_test(tc_lfc, gfal2_test_gfal_common_lfc_check_filename); add_test(tc_lfc, gfal2_test_gfal_common_lfc_getSURL); add_test(tc_lfc, gfal2_gfal2_test_gfal_common_lfc_access_guid_file_exist); add_test(tc_lfc, gfal2_test_common_lfc_getcomment); add_test(tc_lfc, gfal2_test_common_lfc_setcomment); add_test(tc_lfc, gfal2_test_common_lfc_checksum); return tc_lfc; } TestSuite* filedesc_suite(){ TestSuite *tc_filedesc = create_test_suite(); add_test(tc_filedesc, gfal2_test__dir_file_descriptor_low); add_test(tc_filedesc, gfal2_test__dir_file_descriptor_high); return tc_filedesc; } TestSuite* posix_chmod_suite(void){ TestSuite* tc_chmod = create_test_suite(); add_test(tc_chmod, gfal2_test__gfal_posix_chmod_read_lfn); add_test(tc_chmod, gfal2_test__gfal_posix_chmod_read_guid); add_test(tc_chmod, gfal2_test__gfal_posix_chmod_read_local); add_test(tc_chmod, gfal2_test__gfal_posix_chmod_write_lfn); add_test(tc_chmod, gfal2_test__gfal_posix_chmod_srm); return tc_chmod; } TestSuite* posix_mkdir_suite(void){ TestSuite* tc_mkdir = create_test_suite(); add_test(tc_mkdir, gfal2_test__mkdir_posix_lfc_simple); add_test(tc_mkdir, gfal2_test__mkdir_posix_local_simple); add_test(tc_mkdir, gfal2_test__mkdir_posix_srm_simple); return tc_mkdir; } TestSuite* posix_stat_suite(void){ TestSuite* tc_stat= create_test_suite(); add_test(tc_stat, gfal2_test__gfal_posix_stat_lfc); add_test(tc_stat, gfal2_test__gfal_posix_stat_guid); add_test(tc_stat, gfal2_test__gfal_posix_stat_local); add_test(tc_stat, gfal2_test__gfal_posix_stat_srm); add_test(tc_stat, gfal2_test__gfal_posix_lstat_lfc); add_test(tc_stat, gfal2_test__gfal_posix_lstat_guid); add_test(tc_stat, gfal2_test__gfal_posix_lstat_local); add_test(tc_stat, gfal2_test__gfal_posix_lstat_srm); return tc_stat; } TestSuite* posix_open_suite(void){ TestSuite* tc_open = create_test_suite(); add_test(tc_open, gfal2_test_open_posix_all_simple); add_test(tc_open, gfal2_test_open_posix_local_simple); add_test(tc_open, gfal2_test_open_posix_lfc_simple); add_test(tc_open, gfal2_test_open_posix_srm_simple); add_test(tc_open, gfal2_test_open_posix_guid_simple); return tc_open; } TestSuite* posix_read_suite(void){ TestSuite* tc_read = create_test_suite(); add_test(tc_read, gfal2_test_read_posix_local_simple); add_test(tc_read, gfal2_test_read_posix_srm_simple); add_test(tc_read, gfal2_test_read_posix_lfc_simple); add_test(tc_read, gfal2_test_read_posix_guid_simple); add_test(tc_read, gfal2_test_pread_posix_local_simple); add_test(tc_read, gfal2_test_pread_posix_srm_simple); add_test(tc_read, gfal2_test_pread_posix_lfc_simple); add_test(tc_read, gfal2_test_pread_posix_guid_simple); return tc_read; } TestSuite* posix_write_suite(void){ TestSuite* tc_write = create_test_suite(); add_test(tc_write, gfal2_test_write_posix_local_simple); add_test(tc_write, gfal2_test_pwrite_posix_local_simple); add_test(tc_write, gfal2_test_write_posix_srm_simple); add_test(tc_write, gfal2_test_pwrite_posix_srm_simple); add_test(tc_write, gfal2_test_write_posix_lfc_simple); return tc_write; } TestSuite* posix_rfio_plugin_suite(){ TestSuite* tc_rfio = create_test_suite(); add_test(tc_rfio, gfal2_test_load_plugin); return tc_rfio; } TestSuite* posix_opendir_suite(){ TestSuite* tc_opendir = create_test_suite(); add_test(tc_opendir, gfal2_test__opendir_posix_local_simple); add_test(tc_opendir, gfal2_test__opendir_posix_lfc_simple); add_test(tc_opendir, gfal2_test__readdir_posix_local_simple); add_test(tc_opendir, gfal2_test__readdir_posix_lfc_simple); add_test(tc_opendir, gfal2_test__opendir_posix_srm_simple_mock); add_test(tc_opendir, gfal2_test__readdir_posix_srm_simple_mock); return tc_opendir; } /* TestSuite* posix_parameter_suite(){ TestSuite* tc_parameter = create_test_suite(); add_test(tc_parameter, test_posix_set_get_parameter); add_test(tc_parameter, test_posix_set_get_false_parameter); add_test(tc_parameter, test_posix_set_get_infosys_parameter); add_test(tc_parameter, test_posix_set_get_lfc_host_parameter); return tc_parameter; }*/ TestSuite* posix_xattr_suite(){ TestSuite* tc_xattr = create_test_suite(); add_test(tc_xattr, gfal2_test_getxattr_guid_lfn_base); add_test(tc_xattr, gfal2_test_getxattr_status_srm_base); return tc_xattr; } TestSuite* skip_list_tests(){ TestSuite* test_skiplist = create_test_suite(); add_test(test_skiplist, test_gskiplist_create_delete); add_test(test_skiplist, test_gskiplist_insert_len); add_test(test_skiplist, test_gskiplist_insert_search_remove); add_test(test_skiplist, test_gskiplist_insert_get_clean); add_test(test_skiplist, test_gskiplist_insert_multi); return test_skiplist; } TestSuite* posix_access_suite (void) { TestSuite* tc_access = create_test_suite(); add_test(tc_access, gfal2_test_access_posix_guid_exist); add_test(tc_access, gfal2_test_access_posix_guid_read); add_test(tc_access, gfal2_test_access_posix_guid_write); add_test(tc_access, gfal2_test_access_posix_lfn_exist); add_test(tc_access, gfal2_test_access_posix_lfn_read); add_test(tc_access, gfal2_test_access_posix_lfn_write); add_test(tc_access, gfal2_test_access_posix_srm_exist); add_test(tc_access, gfal2_test_access_posix_srm_read); add_test(tc_access, gfal2_test_access_posix_srm_write); return tc_access; } int main (int argc, char** argv) { //fprintf(stderr, " tests : %s ", getenv("LD_LIBRARY_PATH")); TestSuite *global = create_test_suite(); add_suite(global, verbose_suite()); add_suite(global, plugin_suite()); add_suite(global, srm_Suite()); //add_suite(global, no_glib_suite()); add_suite(global, lfc_suite()); add_suite(global, mds_suite()); add_suite(global, posix_access_suite()); add_suite(global, posix_chmod_suite()); add_suite(global, posix_mkdir_suite()); add_suite(global, posix_stat_suite()); add_suite(global, posix_open_suite()); add_suite(global, posix_rfio_plugin_suite()); add_suite(global, posix_read_suite()); add_suite(global, posix_write_suite()); add_suite(global, posix_opendir_suite()); //add_suite(global, posix_parameter_suite()); add_suite(global, posix_xattr_suite()); add_suite(global, skip_list_tests()); //add_suite(global, filedesc_suite()); if (argc > 1){ return run_single_test(global, argv[1], create_text_reporter()); } return run_test_suite(global, create_text_reporter()); } gfal2-2.3.0/test/functional/old/unit_test_constants.h0000644000175000017500000002705112164561703022243 0ustar ellertellert#pragma once /* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // set to 1 if mock need to be used else to 0 #ifndef USE_MOCK #define USE_MOCK 0 #endif // srm://grid05.lal.in2p3.fr:8446/dpm/lal.in2p3.fr/home/dteam/ // srm://grid05.lal.in2p3.fr:8446/srm/managerv2?SFN=/dpm/lal.in2p3.fr/home/dteam // to define #define TEST_SRM_DPM_ENDPOINT_PREFIX "srm://cvitbdpm1.cern.ch/dpm/cern.ch/home/dteam/gfal2-tests/" #define TEST_SRM_DPM_FULLENDPOINT_PREFIX "srm://cvitbdpm1.cern.ch:8446/srm/managerv2?SFN=/dpm/cern.ch/home/dteam/gfal2-tests/" #define TEST_SRM_DPM_FULLENDPOINT_URL "httpg://cvitbdpm1.cern.ch:8446/srm/managerv2" #define TEST_SRM_DPM_CORE_URL "cvitbdpm1.cern.ch:8446" #define TEST_SRM_FILE_CONTENT "Hello world\n" #define TEST_LFC_PREFIX "lfn:/grid/dteam" #define TEST_GUID_VALID_FILE "guid:a5bf667d-dd72-45b9-9b8f-fc69b999f653" // macros #define TEST_FUSION_STRING(x,y) x y #define TEST_XFUSION_STRING(x,y) TEST_FUSION_STRING(x,y) #define TEST_CONCAT_SRM_PREFIX(x) TEST_XFUSION_STRING(TEST_SRM_DPM_ENDPOINT_PREFIX, x) #define TEST_CREATE_SRM_FILE(x) TEST_XFUSION_STRING(TEST_XFUSION_STRING("lcg-cp file:///etc/group ",x)," &> /dev/null") #define TEST_CONCAT_LFC_PREFIX(x) TEST_XFUSION_STRING(TEST_LFC_PREFIX, x) // mds part #define TEST_MDS_VALID_ENDPOINT_URL "cvitbdpm1.cern.ch" #define TEST_MDS_INVALID_ENDPOINT_URL "google.com" #define TEST_MDS_VALID_ENDPOINT_RESU_1 "httpg://cvitbdpm1.cern.ch:8443/srm/managerv1" #define TEST_MDS_VALID_ENDPOINT_RESU_2 "httpg://cvitbdpm1.cern.ch:8446/srm/managerv2" // constant to define for succefull unit test #define TEST_LFC_VALID_ACCESS "lfn:/grid/dteam/hello001" // this file must be a lfc file with read access and no write access #define TEST_LFC_ONLY_READ_ACCESS "lfn:/grid/dteam/testread0011" #define TEST_LFC_NOEXIST_ACCESS "lfn:/grid/dteam/PSGmarqueUNbut" // this file must never exist. #define TEST_LFC_NO_READ_ACCESS "lfn:/grid/dteam/testnoread0011" // this file is un-accessible be read() #define TEST_LFC_WRITE_ACCESS "lfn:/grid/dteam/testwrite0011" // must be writed #define TEST_LFC_NO_WRITE_ACCESS "lfn:/grid/dteam/testnowrite0011" #define TEST_LFC_URL_SYNTAX_ERROR "jardiland.com" // GUID constants #define TEST_GUID_VALID_ACCESS "guid:4ff6feed-a6f4-4266-b783-9aff66ff54dc" #define TEST_GUID_ONLY_READ_ACCESS "guid:4ff6feed-a6f4-4266-b783-9aff66ff54dc" #define TEST_GUID_WRITE_ACCESS "guid:0e8d1f2b-6e11-4777-b6f4-3e3a41af9403" #define TEST_GUID_NO_READ_ACCESS "guid:bf83c34a-97d4-4fc4-b2a0-439178efe568" #define TEST_GUID_NO_WRITE_ACCESS "guid:98ec152b-9c2f-469e-9b9d-0eecda381f55" #define TEST_GUID_NOEXIST_ACCESS "guid:ae595782-81be-40af-ac3c-8b1a084bfc82" // srm part constant #define TEST_SRM_VALID_SURL_EXAMPLE1 TEST_CONCAT_SRM_PREFIX("file75715ccc-1c54-4d18-8824-bdd3716a2b54") #define TEST_SRM_INVALID_SURL_EXAMPLE2 TEST_CONCAT_SRM_PREFIX("generated/2006-07-04/test2") // access #define TEST_SRM_ONLY_READ_ACCESS TEST_CONCAT_SRM_PREFIX("testread0011") #define TEST_SRM_ONLY_READ_HELLO TEST_CONCAT_SRM_PREFIX("testreadhello001") #define TEST_SRM_NOEXIST_ACCESS TEST_SRM_INVALID_SURL_EXAMPLE2 #define TEST_SRM_NO_READ_ACCESS TEST_CONCAT_SRM_PREFIX("testnoread0011") #define TEST_SRM_WRITE_ACCESS TEST_CONCAT_SRM_PREFIX("testwrite0011") #define TEST_SRM_NO_WRITE_ACCESS TEST_CONCAT_SRM_PREFIX("testnowrite0011") #define TEST_SRM_TURL_EXAMPLE1 "rfio://cvitbdpm1.cern.ch//storage/dteam/2011-10-26/file75715ccc-1c54-4d18-8824-bdd3716a2b54.43869.0" #define TEST_SRM_IFCE_INVALID_PATH_REP "[SE][StatusOfPutRequest][SRM_INVALID_PATH] " // rfio #define TEST_SRM_RFIO_EXAMPLE1 TEST_SRM_TURL_EXAMPLE1 // chmod #define TEST_LFC_MOD_READ_FILE "lfn:/grid/dteam/testchmodread0011" #define TEST_LFC_MOD_UNEXIST_FILE "lfn:/grid/dteam/OpenSourceAndMicrosoft" #define TEST_LFC_MOD_WRITE_FILE "lfn:/grid/dteam/testchmodwrite0011" #define TEST_GUID_MODE_READ_FILE "guid:6a26c234-f241-44d8-b5f7-889c742d4378" #define TEST_LFC_RENAME_VALID_DEST "lfn:/grid/dteam/testrename0012" #define TEST_LFC_RENAME_VALID_SRC "lfn:/grid/dteam/testrename0011" #define TEST_LFC_MOVABLE_DIR_SRC "lfn:/grid/dteam/testmovedir0011/" #define TEST_LFC_MOVABLE_DIR_DEST "lfn:/grid/dteam/testmovedir0012/" #define TEST_SRM_CHMOD_FILE_EXIST TEST_CONCAT_SRM_PREFIX("testchmod0011") #define TEST_SRM_CHMOD_FILE_ENOENT TEST_CONCAT_SRM_PREFIX("testchmodenoent0011") // rename #define TEST_GFAL_LOCAL_FILE_RENAME_SRC "/tmp/testrename0011" #define TEST_GFAL_LOCAL_FILE_RENAME_DEST "/tmp/testrename0012" // stat #define TEST_GFAL_LFC_FILE_STAT_OK "lfn:/grid/dteam/teststat0011" #define TEST_GFAL_LFC_LINK_STAT_OK "lfn:/grid/dteam/teststatlink0011" #define TEST_GFAL_LFC_FILE_STAT_NONEXIST TEST_LFC_NOEXIST_ACCESS #define TEST_GFAL_SRM_FILE_STAT_OK TEST_CONCAT_SRM_PREFIX("teststat0011") #define TEST_GFAL_SRM_FILE_STAT_NONEXIST TEST_SRM_NOEXIST_ACCESS #define TEST_GFAL_SRM_FILE_STAT_SIZE_VALUE 2048 #define TEST_GFAL_SRM_FILE_STAT_MODE_VALUE 0100664 #define TEST_GFAL_SRM_FILE_STAT_UID_VALUE 2 #define TEST_GFAL_SRM_FILE_STAT_GID_VALUE 2 #define TEST_GFAL_GUID_FILE_STAT_OK TEST_GUID_VALID_FILE #define TEST_GFAL_LFC_FILE_STAT_SIZE_VALUE 2048 #define TEST_GFAL_LFC_FILE_STAT_MODE_VALUE 0100664 #define TEST_GFAL_LFC_FILE_STAT_UID_VALUE 105 #define TEST_GFAL_LFC_FILE_STAT_GID_VALUE 105 #define TEST_GFAL_LFC_LINK_STAT_SIZE_VALUE 0 #define TEST_GFAL_LFC_LINK_STAT_MODE_VALUE 0120777 #define TEST_GFAL_LFC_LINK_STAT_UID_VALUE 105 #define TEST_GFAL_LFC_LINK_STAT_GID_VALUE 105 #define TEST_GFAL_LOCAL_STAT_COMMAND "dd if=/dev/zero of=/tmp/teststat0011 bs=512 count=4 &> /dev/null && chmod 0644 /tmp/teststat0011" #define TEST_GFAL_LOCAL_LINK_COMMAND "ln -s /tmp/teststat0011 /tmp/teststatlink0011 &> /dev/null" #define TEST_GFAL_LOCAL_STAT_OK "file:///tmp/teststat0011" #define TEST_GFAL_LOCAL_LINK_OK "file:///tmp/teststatlink0011" #define TEST_GFAL_LOCAL_STAT_NONEXIST "file:///tmp/ChristmasTree" #define TEST_GFAL_LOCAL_FILE_STAT_SIZE_VALUE 2048 #define TEST_GFAL_LOCAL_FILE_STAT_MODE_VALUE 0100644 // mkdir #define TEST_LFC_EEXIST_MKDIR "lfn:/grid/dteam/testmkdir0011" #define TEST_LFC_BASE_FOLDER_URL_MKDIR1 "lfn:/grid/dteam/testmkdir0011/" #define TEST_LFC_UNACCESS_MKDIR "lfn:/grid/dteam/testmkdirunaccess0011/testunacess0011" #define TEST_LOCAL_MKDIR_EXIST_COMMAND "mkdir -p /tmp/testmkdir0011 &> /dev/null && mkdir -p -m 000 /tmp/testeaccesdir" #define TEST_LOCAL_MKDIR_EXIST_FILE "file:///tmp/testmkdir0011" #define TEST_LOCAL_BASE_FOLDER_URL_MKDIR1 "file:///tmp/" #define TEST_LOCAL_UNACCESS_MKDIR "file:///tmp/testeaccesdir/santaclaus" #define TEST_SRM_EEXIST_MKDIR TEST_CONCAT_SRM_PREFIX("testmkdir0011") #define TEST_SRM_BASE_FOLDER_URL_MKDIR1 TEST_CONCAT_SRM_PREFIX("/testmkdirfolder/") #define TEST_SRM_UNACCESS_MKDIR TEST_CONCAT_SRM_PREFIX("testunaccessmkdir0011/testunaccessmkdir0012") // rmdir #define TEST_LFC_RMDIR_CREATED "lfn:/grid/dteam/testrmdir0011" // must be an unexistant dir, will be created and deleted, without slash #define TEST_LFC_RMDIR_EEXIST "lfn:/grid/dteam/testrmdir0012" // must be a dir with content inside #define TEST_LFC_RMDIR_CREATED_SLASH "lfn:/grid/dteam/testrmdir0011/" // must be an unexisting dir, will be created and deleted with slash #define TEST_SRM_RMDIR_CREATED TEST_CONCAT_SRM_PREFIX("testrmdir0011") // same thing for srm #define TEST_SRM_RMDIR_EEXIST TEST_CONCAT_SRM_PREFIX("testrmdir0012") #define TEST_SRM_RMDIR_CREATED_SLASH TEST_CONCAT_SRM_PREFIX("testrmdir0011") #define TEST_LOCAL_RMDIR_CREATED "file:///tmp/testrmdir0011" #define TEST_LOCAL_RMDIR_EEXIST "file:///tmp/testrmdir0012" // do not need to be created, created by system call #define TEST_LOCAL_RMDIR_EEXIST_COMMAND "mkdir -p /tmp/testrmdir0012 && touch /tmp/testrmdir0012/testrmdir0013" #define TEST_LOCAL_RMDIR_CREATED_SLASH "file:///tmp/testrmdir0011" // opendir #define TEST_LOCAL_OPENDIR_COMMAND "mkdir -m 000 -p /tmp/testopendireaccess" #define TEST_LOCAL_OPENDIR_OPEN_INVALID "file:///windowsdoesnotcrash" #define TEST_LOCAL_OPENDIR_OPEN_NOACCESS "file:///tmp/testopendireaccess" #define TEST_LOCAL_OPENDIR_OPEN "file:///" #define TEST_LFC_OPENDIR_OPEN_INVALID TEST_CONCAT_LFC_PREFIX("/cannotbethere") #define TEST_LFC_OPENDIR_OPEN TEST_CONCAT_LFC_PREFIX("/testopendir0011") #define TEST_LFC_OPENDIR_OPEN_NOACCESS TEST_CONCAT_LFC_PREFIX("/testopendir0012") #define TEST_SRM_OPENDIR_OPEN TEST_CONCAT_SRM_PREFIX("testopendir0011") #define TEST_SRML_OPENDIR_ENOENT TEST_CONCAT_SRM_PREFIX("iamthequeenornot") #define TEST_SRML_OPENDIR_EACCESS TEST_CONCAT_SRM_PREFIX("testopendireacces0011/testopendir0011") // readdir #define TEST_LOCAL_READDIR_CREATE_COMMAND "mkdir -p /tmp/testreaddir0011/testreaddir0012 &> /dev/null && \ mkdir -p /tmp/testreaddir0011/testreaddir0013 &> /dev/null && mkdir -p /tmp/testreaddir0011/testreaddir0014 &> /dev/null && \ mkdir -p /tmp/testreaddir0011/testreaddir0015 &> /dev/null" #define TEST_LOCAL_READDIR_VALID "file:///tmp/testreaddir0011" #define TEST_LOCAL_READDIR_1 "testreaddir0012" #define TEST_LOCAL_READDIR_2 "testreaddir0013" #define TEST_LOCAL_READDIR_3 "testreaddir0014" #define TEST_LOCAL_READDIR_4 "testreaddir0015" #define TEST_LFC_READDIR_VALID TEST_CONCAT_LFC_PREFIX("/testreaddir0011") #define TEST_LFC_READDIR_1 "testreaddir0012" #define TEST_LFC_READDIR_2 "testreaddir0013" #define TEST_LFC_READDIR_3 "testreaddir0014" #define TEST_LFC_READDIR_4 "testreaddir0015" #define TEST_SRM_READDIR_VALID TEST_CONCAT_SRM_PREFIX("/testreaddir0011") #define TEST_SRM_READDIR_1 "testreaddir0012" #define TEST_SRM_READDIR_2 "testreaddir0013" #define TEST_SRM_READDIR_3 "testreaddir0014" #define TEST_SRM_READDIR_4 "testreaddir0015" // open #define TEST_LOCAL_OPEN_CREATE_COMMAND "echo \"Hello world\" > /tmp/testopen0011 && touch /tmp/testopen0013 && chmod 000 /tmp/testopen0013" #define TEST_LOCAL_WRITE_CREATE_COMMAND "rm -f /tmp/testwrite001" #define TEST_LOCAL_OPEN_EXIST "file:///tmp/testopen0011" #define TEST_LOCAL_OPEN_NOEXIST "file:///tmp/testopen0012" #define TEST_LOCAL_OPEN_NOACCESS "file:///tmp/testopen0013" #define TEST_LOCAL_WRITE_VALID "file:///tmp/testwrite001" #define TEST_LOCAL_READ_CONTENT "Hello world\n" #define TEST_SRM_OPEN_EXIST TEST_SRM_ONLY_READ_ACCESS #define TEST_SRM_OPEN_NOEXIST TEST_SRM_NOEXIST_ACCESS #define TEST_SRM_OPEN_NOACCESS TEST_CONCAT_SRM_PREFIX("testopen0011/testopen0012") #define TEST_SRM_OPEN_WRITE TEST_CONCAT_SRM_PREFIX("testwritetmp0011") #define TEST_LFC_OPEN_EXIST TEST_LFC_ONLY_READ_ACCESS #define TEST_LFC_OPEN_NOEXIST TEST_LFC_NOEXIST_ACCESS #define TEST_LFC_OPEN_NOACCESS TEST_CONCAT_LFC_PREFIX("/testopen0011/testopen0012") #define TEST_LFC_OPEN_WRITE TEST_CONCAT_LFC_PREFIX("/testwritetmp0011") #define TEST_GUID_OPEN_EXIST TEST_GUID_VALID_FILE #define TEST_GUID_OPEN_NONEXIST TEST_GUID_NOEXIST_ACCESS // xattr #define TEST_LFC_VALID_COMMENT TEST_CONCAT_LFC_PREFIX("/testcomment0011") #define TEST_LFC_WRITEVALID_COMMENT TEST_CONCAT_LFC_PREFIX("/testcomment0012") #define TEST_LFC_INVALID_COMMENT TEST_CONCAT_LFC_PREFIX("/testpsg0011") #define TEST_LFC_COMMENT_CONTENT "Hello World" #define TEST_LFC_VALID_TESTREAD_CHECKSUM "" #define TEST_LFC_VALID_TESTREAD_CHKTYPE "" #define TEST_SRM_CHECKSUM_VALID "" #define TEST_SRM_CHKTYPE_VALID "" gfal2-2.3.0/test/functional/old/CMakeLists.txt0000644000175000017500000000435612164561703020523 0ustar ellertellert## src cmake build script for srm-ifce ## default set of build SET(OLD_TESTS FALSE) ## defaults sources FILE(GLOB src_test_global "*.c") FILE(GLOB src_test_posix "posix/*.c") FILE(GLOB src_test_common "common/*.c") FILE(GLOB src_test_gsimplecache "externals/*.c") FILE(GLOB src_gskiplist "${CMAKE_SOURCE_DIR}/src/externals/gskiplist/*.c") #define lfc sources FILE(GLOB src_test_lfc "common/lfc/*.c") #define srm sources FILE(GLOB src_test_srm "common/mds/*.c") #define rfio sources FILE(GLOB src_test_rfio "common/rfio/*.c") LIST(APPEND src_tests_all ${src_test_global} ${src_test_posix} ${src_test_common} ${src_test_gsimplecache} ${src_mock} ${src_test_lfc} ${src_test_srm} ${src_test_rfio} ${src_gsimplecache} ${src_gskiplist}) # global headers SET(src_dir "${CMAKE_SOURCE_DIR}/src/") SET(common_dir "${CMAKE_SOURCE_DIR}/src/common/") SET(posix_dir "${CMAKE_SOURCE_DIR}/src/posix/") SET(mds_dir "${CMAKE_SOURCE_DIR}/src/common/mds/") SET(global_dir ".") IF (OLD_TESTS) find_package(LFC REQUIRED) find_package(DPM REQUIRED) include_directories( ${GLIB2_PKG_INCLUDE_DIRS} ${GTHREAD2_PKG_INCLUDE_DIRS} ${common_dir} ${posix_dir} ${global_dir} ${src_dir}) #include lfc include_directories( ${LFC_INCLUDE_DIR} ${LCGDM_INCLUDE_DIR} ) link_directories( "${CMAKE_CURRENT_BINARY_DIR}/../src/" "${CMAKE_BINARY_DIR}/plugins/") add_definitions( -Wall ${GLIB2_PKG_CFLAGS} ${GTHREAD2_PKG_CFLAGS} -D_LARGEFILE64_SOURCE -D_REENTRANT) ## unit tests add_executable(test_all_with_mock ${src_tests_all} ) target_link_libraries(test_all_with_mock ${OUTPUT_NAME_MAIN} ${CGREEN_LIBRARIES} m ) #target link lfc target_link_libraries(test_all_with_mock ${OUTPUT_NAME_LFC}) #target link srm target_link_libraries(test_all_with_mock ${OUTPUT_NAME_SRM}) # target link rfio target_link_libraries(test_all_with_mock ${OUTPUT_NAME_RFIO}) #env_test.PrependENVPath('LCG_GFAL_INFOSYS', lfc_gfal_infosys); # setup the bdii access point #env_test.PrependENVPath('LFC_HOST', lfc_host); # setup the bdii access point #env_test.PrependENVPath('GFAL_PLUGIN_LIST', "libgfal_plugin_lfc.so:libgfal_plugin_srm.so:libgfal_plugin_rfio.so"); # setup the GFAL PLUGIN SEARCH PATH #add_test(test-all test_all_with_mock) ENDIF (OLD_TESTS) gfal2-2.3.0/test/functional/old/posix/0000755000175000017500000000000012164561703017115 5ustar ellertellertgfal2-2.3.0/test/functional/old/posix/test__gfal_posix_access.c0000644000175000017500000002773112164561703024145 0ustar ellertellert /* unit test for posix access func */ #include #include #include #include #include #include #include #include #include #include "../unit_test_constants.h" #include "../mock/gfal_lfc_mock_test.h" #include "../common/gfal__test_common_srm.h" #include "../common/gfal__test_plugin.h" void gfal2_test_access_posix_guid_exist() { int i1; // test exist guid #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; define_linkinfos= calloc(sizeof(struct lfc_linkinfo),3); define_numberlinkinfos=3; for(i1=0; i1< define_numberlinkinfos; ++i1) g_strlcpy(define_linkinfos[i1].path, "/dteam/test/imagine", 2048); will_respond(lfc_mock_getlinks, 0, want_string(guid, TEST_GUID_VALID_ACCESS+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); will_respond(lfc_mock_access, 0, want_string(path, "/dteam/test/imagine"), want(mode, F_OK)); will_respond(lfc_mock_getlinks, ENOENT, want_string(guid, TEST_GUID_NOEXIST_ACCESS+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); always_return(lfc_mock_getlinks, EINVAL); #endif int ret; gfal_posix_clear_error(); errno =0; ret = gfal_access(TEST_GUID_VALID_ACCESS, F_OK); assert_true_with_message(ret==0 && gfal_posix_code_error()==0 && errno == 0, " must be a valid access to the guid %d %d %d",ret, errno, gfal_posix_code_error()); gfal_posix_check_error(); gfal_posix_clear_error(); ret = gfal_access(TEST_GUID_NOEXIST_ACCESS, F_OK); assert_true_with_message(ret == -1 && errno == ENOENT && gfal_posix_code_error()== ENOENT, "must be a non exist guid %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); ret = gfal_access("google.com", F_OK); assert_true_with_message(ret == -1 && errno == EPROTONOSUPPORT && gfal_posix_code_error() == EPROTONOSUPPORT, " must be a syntax error"); gfal_posix_clear_error(); } void gfal2_test_access_posix_guid_read() { int i1; #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; define_linkinfos= calloc(sizeof(struct lfc_linkinfo),3); define_numberlinkinfos=3; for(i1=0; i1< define_numberlinkinfos; ++i1) g_strlcpy(define_linkinfos[i1].path, "/dteam/test/imagine", 2048); will_respond(lfc_mock_getlinks, 0, want_string(guid, TEST_GUID_ONLY_READ_ACCESS+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); will_respond(lfc_mock_access, 0, want_string(path, "/dteam/test/imagine"), want(mode, R_OK)); will_respond(lfc_mock_getlinks, ENOENT, want_string(guid, TEST_GUID_NOEXIST_ACCESS+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); will_respond(lfc_mock_getlinks, EACCES, want_string(guid, TEST_GUID_NO_READ_ACCESS+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); always_return(lfc_mock_getlinks, EINVAL); #endif // test exist guid int ret; ret = gfal_access(TEST_GUID_ONLY_READ_ACCESS, R_OK); assert_true_with_message(ret==0 && gfal_posix_code_error()==0 && errno == 0, " must be a valid access to the guid %d %d %d",ret, errno, gfal_posix_code_error()); gfal_posix_check_error(); ret = gfal_access(TEST_GUID_NOEXIST_ACCESS, R_OK); assert_true_with_message(ret == -1 && gfal_posix_code_error() == ENOENT && errno == ENOENT, " must be a non existing guid %d %d %d",ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); ret = gfal_access(TEST_GUID_NO_READ_ACCESS, R_OK); assert_true_with_message( ret == -1 && errno == EACCES && gfal_posix_code_error() == EACCES, "must be an unaccessible file %d %d %d",ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); } void gfal2_test_access_posix_guid_write() { // test exist guid int ret,i1; #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; define_linkinfos= calloc(sizeof(struct lfc_linkinfo),3); define_numberlinkinfos=3; for(i1=0; i1< define_numberlinkinfos; ++i1) g_strlcpy(define_linkinfos[i1].path, "/dteam/test/imagine", 2048); will_respond(lfc_mock_getlinks, 0, want_string(guid, TEST_GUID_WRITE_ACCESS+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); will_respond(lfc_mock_access, 0, want_string(path, "/dteam/test/imagine"), want(mode, W_OK)); will_respond(lfc_mock_getlinks, ENOENT, want_string(guid, TEST_GUID_NOEXIST_ACCESS+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); will_respond(lfc_mock_getlinks, EACCES, want_string(guid, TEST_GUID_NO_WRITE_ACCESS+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); always_return(lfc_mock_getlinks, EINVAL); #endif ret = gfal_access(TEST_GUID_WRITE_ACCESS, W_OK); assert_true_with_message(ret == 0 && errno ==0 && gfal_posix_code_error() == 0 , " must be a valid check access"); gfal_posix_check_error(); ret = gfal_access(TEST_GUID_NOEXIST_ACCESS, W_OK); assert_true_with_message(ret == -1 && errno ==ENOENT && gfal_posix_code_error() == ENOENT , " must be a non-existing file"); gfal_posix_clear_error(); ret = gfal_access(TEST_GUID_NO_WRITE_ACCESS, W_OK); assert_true_with_message(ret == -1 && errno ==EACCES && gfal_posix_code_error() == EACCES , " must be a valid check access"); gfal_posix_clear_error(); } void gfal2_test_access_posix_lfn_exist() { // test exist guid int ret; #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; will_respond(lfc_mock_access, 0, want_string(path, TEST_LFC_ONLY_READ_ACCESS+4), want(mode, F_OK)); will_respond(lfc_mock_access, ENOENT, want_string(path, TEST_LFC_NOEXIST_ACCESS+4), want(mode, F_OK)); always_return(lfc_mock_getlinks, EINVAL); #endif ret = gfal_access(TEST_LFC_ONLY_READ_ACCESS, F_OK); assert_true_with_message(ret == 0 && errno ==0 && gfal_posix_code_error() == 0 , " must be a valid check access"); gfal_posix_check_error(); ret = gfal_access(TEST_LFC_NOEXIST_ACCESS, F_OK); assert_true_with_message(ret == -1 && errno ==ENOENT && gfal_posix_code_error() == ENOENT , " must be a non-existing file"); gfal_posix_clear_error(); ret = gfal_access("google.com", F_OK); assert_true_with_message(ret == -1 && errno ==EPROTONOSUPPORT && gfal_posix_code_error() == EPROTONOSUPPORT , " must be a valid check access"); gfal_posix_clear_error(); } void gfal2_test_access_posix_lfn_read() { // test exist guid int ret; #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; will_respond(lfc_mock_access, 0, want_string(path, TEST_LFC_ONLY_READ_ACCESS+4), want(mode, R_OK)); will_respond(lfc_mock_access, ENOENT, want_string(path, TEST_LFC_NOEXIST_ACCESS+4), want(mode, R_OK)); will_respond(lfc_mock_access, EACCES, want_string(path, TEST_LFC_NO_READ_ACCESS+4), want(mode, R_OK)); always_return(lfc_mock_getlinks, EINVAL); #endif ret = gfal_access(TEST_LFC_ONLY_READ_ACCESS, R_OK); assert_true_with_message(ret == 0 && errno ==0 && gfal_posix_code_error() == 0 , " must be a valid check access"); gfal_posix_check_error(); ret = gfal_access(TEST_LFC_NOEXIST_ACCESS, R_OK); assert_true_with_message(ret == -1 && errno ==ENOENT && gfal_posix_code_error() == ENOENT , " must be a non-existing file"); gfal_posix_clear_error(); ret = gfal_access(TEST_LFC_NO_READ_ACCESS, R_OK); assert_true_with_message(ret == -1 && errno ==EACCES && gfal_posix_code_error() == EACCES , " must be a valid check access"); gfal_posix_clear_error(); } void gfal2_test_access_posix_lfn_write() { // test exist guid int ret; #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; will_respond(lfc_mock_access, 0, want_string(path, TEST_LFC_WRITE_ACCESS+4), want(mode, W_OK)); will_respond(lfc_mock_access, ENOENT, want_string(path, TEST_LFC_NOEXIST_ACCESS+4), want(mode, W_OK)); will_respond(lfc_mock_access, EACCES, want_string(path, TEST_LFC_NO_WRITE_ACCESS+4), want(mode, W_OK)); always_return(lfc_mock_getlinks, EINVAL); #endif ret = gfal_access(TEST_LFC_WRITE_ACCESS, W_OK); assert_true_with_message(ret == 0 && errno ==0 && gfal_posix_code_error() == 0 , " must be a valid check access"); gfal_posix_check_error(); ret = gfal_access(TEST_LFC_NOEXIST_ACCESS, W_OK); assert_true_with_message(ret == -1 && errno ==ENOENT && gfal_posix_code_error() == ENOENT , " must be a non-existing file"); gfal_posix_clear_error(); ret = gfal_access(TEST_LFC_NO_WRITE_ACCESS, W_OK); assert_true_with_message(ret == -1 && errno ==EACCES && gfal_posix_code_error() == EACCES , " must be a valid check access"); gfal_posix_clear_error(); } void gfal2_test_access_posix_srm_exist() { // test exist guid int ret; #if USE_MOCK mock_srm_access_right_response(TEST_SRM_ONLY_READ_ACCESS); #endif ret = gfal_access(TEST_SRM_ONLY_READ_ACCESS, F_OK); assert_true_with_message(ret == 0 && errno ==0 && gfal_posix_code_error() == 0 , " must be a valid check access %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_check_error(); #if USE_MOCK mock_srm_access_error_response(TEST_SRM_NOEXIST_ACCESS,ENOENT); #endif ret = gfal_access(TEST_SRM_NOEXIST_ACCESS, F_OK); assert_true_with_message(ret == -1 && errno ==ENOENT && gfal_posix_code_error() == ENOENT , " must be a non-existing file"); gfal_posix_clear_error(); ret = gfal_access("google.com", F_OK); assert_true_with_message(ret == -1 && errno ==EPROTONOSUPPORT && gfal_posix_code_error() == EPROTONOSUPPORT , " must be a valid check access"); gfal_posix_clear_error(); } void gfal2_test_access_posix_srm_read() { // test exist guid int ret; #if USE_MOCK mock_srm_access_right_response(TEST_SRM_ONLY_READ_ACCESS); #endif ret = gfal_access(TEST_SRM_ONLY_READ_ACCESS, R_OK); assert_true_with_message(ret == 0 && errno ==0 && gfal_posix_code_error() == 0 , " must be a valid check access %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_check_error(); #if USE_MOCK mock_srm_access_error_response(TEST_SRM_NOEXIST_ACCESS,ENOENT); #endif ret = gfal_access(TEST_SRM_NOEXIST_ACCESS, R_OK); assert_true_with_message(ret == -1 && errno ==ENOENT && gfal_posix_code_error() == ENOENT , " must be a non-existing file"); gfal_posix_clear_error(); #if USE_MOCK mock_srm_access_error_response(TEST_SRM_NOEXIST_ACCESS,EACCES); #endif ret = gfal_access(TEST_SRM_NO_READ_ACCESS, R_OK); assert_true_with_message(ret == -1 && errno ==EACCES && gfal_posix_code_error() == EACCES , " must be a valid check access"); gfal_posix_clear_error(); } void gfal2_test_access_posix_srm_write() { // test exist guid int ret; #if USE_MOCK mock_srm_access_right_response(TEST_SRM_WRITE_ACCESS); #endif ret = gfal_access(TEST_SRM_WRITE_ACCESS, W_OK); assert_true_with_message(ret == 0 && errno ==0 && gfal_posix_code_error() == 0 , " must be a valid check access %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_check_error(); #if USE_MOCK mock_srm_access_error_response(TEST_SRM_NOEXIST_ACCESS,ENOENT); #endif ret = gfal_access(TEST_SRM_NOEXIST_ACCESS, W_OK); assert_true_with_message(ret == -1 && errno ==ENOENT && gfal_posix_code_error() == ENOENT , " must be a non-existing file"); gfal_posix_clear_error(); #if USE_MOCK mock_srm_access_error_response(TEST_SRM_NO_WRITE_ACCESS,EACCES); #endif ret = gfal_access(TEST_SRM_NO_WRITE_ACCESS, W_OK); assert_true_with_message(ret == -1 && errno ==EACCES && gfal_posix_code_error() == EACCES , " must be a valid check access"); gfal_posix_clear_error(); } gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_chmod.c0000644000175000017500000002473712164561703024001 0ustar ellertellert /* unit test for posix access func */ #include #include #include #include #include #include #include #include #include #include "../mock/gfal_lfc_mock_test.h" #include "../mock/gfal_srm_mock_test.h" #include "../mock/gfal_mds_mock_test.h" #include "../common/rfio/test__gfal_rfio_plugin.h" #include "../common/gfal__test_common_srm.h" #include "../common/gfal__test_plugin.h" #include "../unit_test_constants.h" #include "gfal_posix_api.h" #define TEST_GFAL_LOCAL_FILE_CHMOD_READ "/tmp/testchmodread0011" void gfal2_test__gfal_posix_chmod_read_lfn(){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; will_respond(lfc_mock_chmod, 0, want_string(path, TEST_LFC_MOD_READ_FILE+4), want(mode, 0)); will_respond(lfc_mock_access, EACCES, want_string(path, TEST_LFC_MOD_READ_FILE+4), want(mode, R_OK)); will_respond(lfc_mock_chmod, ENOENT, want_string(path, TEST_LFC_MOD_UNEXIST_FILE+4), want(mode, 0)); will_respond(lfc_mock_chmod, 0, want_string(path, TEST_LFC_MOD_READ_FILE+4), want(mode, 0555)); will_respond(lfc_mock_access, 0, want_string(path, TEST_LFC_MOD_READ_FILE+4), want(mode, R_OK)); always_return(lfc_mock_chmod, EINVAL); #endif int res = gfal_chmod(TEST_LFC_MOD_READ_FILE, 0); // reduce the right to the file to 0 assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a success %d %d %d",res, errno, gfal_posix_code_error()); gfal_posix_check_error(); res = gfal_access(TEST_LFC_MOD_READ_FILE, R_OK); assert_true_with_message( res == -1 && errno == EACCES && gfal_posix_code_error() == EACCES, "must be a non accessible file"); gfal_posix_clear_error(); errno =0; res = gfal_chmod(TEST_LFC_MOD_UNEXIST_FILE, 0); assert_true_with_message( res == -1 && errno == ENOENT && gfal_posix_code_error() == ENOENT, "must be a non-existing file"); gfal_posix_clear_error(); res = gfal_chmod("google.com", 0); assert_true_with_message( res == -1 && errno == EPROTONOSUPPORT && gfal_posix_code_error() == EPROTONOSUPPORT, "must be a bad url"); gfal_posix_clear_error(); res = gfal_chmod(TEST_LFC_MOD_READ_FILE, 0555); // reset the right of the file assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a success"); gfal_posix_check_error(); res = gfal_access(TEST_LFC_MOD_READ_FILE, R_OK); assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a success"); gfal_posix_check_error(); } void gfal2_test__gfal_posix_chmod_read_guid(){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; char* tab_res1[]= { "/dteam/test0011", NULL }; define_mock_linkinfos(1,tab_res1); will_respond(lfc_mock_getlinks, 0, want_string(guid, TEST_GUID_MODE_READ_FILE+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); will_respond(lfc_mock_chmod, 0, want_string(path, "/dteam/test0011"), want(mode, 0)); #endif int res = gfal_chmod(TEST_GUID_MODE_READ_FILE, 0); // reduce the right to the file to 0 assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a success %d %d %d",res, errno, gfal_posix_code_error()); gfal_posix_check_error(); #if USE_MOCK define_mock_linkinfos(1,tab_res1); will_respond(lfc_mock_getlinks, 0, want_string(guid, TEST_GUID_MODE_READ_FILE+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); will_respond(lfc_mock_access, EACCES, want_string(path, "/dteam/test0011"), want(mode, R_OK)); #endif res = gfal_access(TEST_GUID_MODE_READ_FILE, R_OK); assert_true_with_message( res == -1 && errno == EACCES && gfal_posix_code_error() == EACCES, "must be a non accessible file"); gfal_posix_clear_error(); #if USE_MOCK define_mock_linkinfos(1,tab_res1); will_respond(lfc_mock_getlinks, ENOENT, want_string(guid, TEST_GUID_NOEXIST_ACCESS+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); will_respond(lfc_mock_getlinks, 0, want_string(guid, TEST_GUID_MODE_READ_FILE+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); will_respond(lfc_mock_chmod, 0, want_string(path, "/dteam/test0011"), want(mode, 0555)); #endif res = gfal_chmod(TEST_GUID_NOEXIST_ACCESS, 0); assert_true_with_message( res == -1 && errno == ENOENT && gfal_posix_code_error() == ENOENT, "must be a non-existing file"); gfal_posix_clear_error(); res = gfal_chmod(TEST_GUID_MODE_READ_FILE, 0555); // reset the right of the file assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a success"); gfal_posix_check_error(); #if USE_MOCK define_mock_linkinfos(1,tab_res1); will_respond(lfc_mock_getlinks, 0, want_string(guid, TEST_GUID_MODE_READ_FILE+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); will_respond(lfc_mock_access, 0, want_string(path, "/dteam/test0011"), want(mode, R_OK)); always_return(lfc_mock_chmod, EINVAL); #endif res = gfal_access(TEST_GUID_MODE_READ_FILE, R_OK); assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a success"); gfal_posix_check_error(); } void gfal2_test__gfal_posix_chmod_read_local(){ // create local file const char * msg = "hello"; char nfile[500]; strcpy(nfile, "file://"); FILE* f = fopen(TEST_GFAL_LOCAL_FILE_CHMOD_READ, "w+"); if(f == NULL){ assert_true_with_message(FALSE, " file must be created"); return; } errno =0; fwrite(msg, sizeof(char), 5, f); fclose(f); errno = 0; strcat(nfile,TEST_GFAL_LOCAL_FILE_CHMOD_READ); int res= gfal_chmod(nfile, 0); assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a success %d %d %d",res, errno, gfal_posix_code_error()); gfal_posix_clear_error(); res = gfal_access(nfile, R_OK); // must not be accessible assert_true_with_message( res == -1 && errno == EACCES && gfal_posix_code_error() == EACCES, "must be a non accessible file"); gfal_posix_clear_error(); res= gfal_chmod(nfile, 0777); assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a valid re-modification"); gfal_posix_clear_error(); res = gfal_access(nfile, R_OK); // must be accessible assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a re-modification"); gfal_posix_clear_error(); } void gfal2_test__gfal_posix_chmod_write_lfn(){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; will_respond(lfc_mock_chmod, 0, want_string(path, TEST_LFC_MOD_WRITE_FILE+4), want(mode, 0)); will_respond(lfc_mock_access, EACCES, want_string(path, TEST_LFC_MOD_WRITE_FILE+4), want(mode, W_OK)); will_respond(lfc_mock_chmod, ENOENT, want_string(path, TEST_LFC_MOD_UNEXIST_FILE+4), want(mode, 0)); will_respond(lfc_mock_chmod, 0, want_string(path, TEST_LFC_MOD_WRITE_FILE+4), want(mode, 0666)); will_respond(lfc_mock_access, 0, want_string(path, TEST_LFC_MOD_WRITE_FILE+4), want(mode, W_OK)); always_return(lfc_mock_chmod, EINVAL); #endif int res = gfal_chmod(TEST_LFC_MOD_WRITE_FILE, 0); // reduce the right to the file to 0 assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a success %d %d %d",res, errno, gfal_posix_code_error()); gfal_posix_check_error(); res = gfal_access(TEST_LFC_MOD_WRITE_FILE, W_OK); assert_true_with_message( res == -1 && errno == EACCES && gfal_posix_code_error() == EACCES, "must be a non accessible file"); gfal_posix_clear_error(); gfal_posix_clear_error(); res = gfal_chmod(TEST_LFC_MOD_UNEXIST_FILE, 0); assert_true_with_message( res == -1 && errno == ENOENT && gfal_posix_code_error() == ENOENT, "must be a non accessible file"); gfal_posix_clear_error(); res = gfal_chmod("google.com", 0); assert_true_with_message( res == -1 && errno == EPROTONOSUPPORT && gfal_posix_code_error() == EPROTONOSUPPORT, "must be a non accessible file"); gfal_posix_clear_error(); res = gfal_chmod(TEST_LFC_MOD_WRITE_FILE, 0666); // reset the right of the file assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a success %d %d %d",res, errno, gfal_posix_code_error()); gfal_posix_check_error(); res = gfal_access(TEST_LFC_MOD_WRITE_FILE, W_OK); assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a success %d %d %d",res, errno, gfal_posix_code_error()); gfal_posix_check_error(); } void gfal2_test__gfal_posix_chmod_srm(){ errno =0; test_srm_mock_chmod(TEST_SRM_CHMOD_FILE_EXIST, 0); int res = gfal_chmod(TEST_SRM_CHMOD_FILE_EXIST, 0); // reduce the right to the file to 0 assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a success %d %d %d",res, errno, gfal_posix_code_error()); gfal_posix_check_error(); gfal_posix_clear_error(); mock_srm_access_error_response(TEST_SRM_CHMOD_FILE_EXIST, EACCES); res = gfal_access(TEST_SRM_CHMOD_FILE_EXIST, R_OK); assert_true_with_message( res == -1 && errno == EACCES && gfal_posix_code_error() == EACCES, "must be a non accessible file"); gfal_posix_clear_error(); test_srm_mock_chmod(TEST_SRM_CHMOD_FILE_ENOENT, ENOENT); res = gfal_chmod(TEST_SRM_CHMOD_FILE_ENOENT, 0); assert_true_with_message( res == -1 && errno == ENOENT && gfal_posix_code_error() == ENOENT, "must be a non-existing file %d %d %d",res, errno, gfal_posix_code_error()); gfal_posix_clear_error(); res = gfal_chmod("google.com", 0); assert_true_with_message( res == -1 && errno == EPROTONOSUPPORT && gfal_posix_code_error() == EPROTONOSUPPORT, "must be a bad url"); gfal_posix_clear_error(); test_srm_mock_chmod(TEST_SRM_CHMOD_FILE_EXIST, 0); res = gfal_chmod(TEST_SRM_CHMOD_FILE_EXIST, 0555); // reset the right of the file assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a success"); gfal_posix_check_error(); gfal_posix_clear_error(); mock_srm_access_right_response(TEST_SRM_CHMOD_FILE_EXIST); res = gfal_access(TEST_SRM_CHMOD_FILE_EXIST, R_OK); assert_true_with_message( res == 0 && errno == 0 && gfal_posix_code_error() == 0, "must be a success"); gfal_posix_check_error(); } gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_read.h0000644000175000017500000000120312164561703023606 0ustar ellertellert#pragma once /* * auto-generated header file for file test/posix/test__gfal_posix_read.c */ void test_mock_read_posix_srm(const char* content); void test_generic_read_simple(char* url_exist, const char* filename); void test_generic_pread_simple(char* url_exist, const char* filename); void gfal2_test_read_posix_local_simple(); void gfal2_test_read_posix_lfc_simple(); void gfal2_test_read_posix_srm_simple(); void gfal2_test_read_posix_guid_simple(); void gfal2_test_pread_posix_local_simple(); void gfal2_test_pread_posix_srm_simple(); void gfal2_test_pread_posix_lfc_simple(); void gfal2_test_pread_posix_guid_simple(); gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_access.h0000644000175000017500000000074112164561703024142 0ustar ellertellert#pragma once /* * auto-generated header file for file test/posix/test__gfal_posix_access.c */ void gfal2_test_access_posix_guid_exist(); void gfal2_test_access_posix_guid_read(); void gfal2_test_access_posix_guid_write(); void gfal2_test_access_posix_lfn_exist(); void gfal2_test_access_posix_lfn_read(); void gfal2_test_access_posix_lfn_write(); void gfal2_test_access_posix_srm_exist(); void gfal2_test_access_posix_srm_read(); void gfal2_test_access_posix_srm_write(); gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_mkdir.c0000644000175000017500000003150512164561703024004 0ustar ellertellert /* unit test for posix mkdir func */ #include #include #include #include #include #include #include #include #include #include #include #include #include "../unit_test_constants.h" #include "../common/gfal__test_plugin.h" #include "../mock/gfal_mds_mock_test.h" #include "../mock/gfal_lfc_mock_test.h" #include "../mock/gfal_srm_mock_test.h" #include "../common/gfal__test_common_srm.h" void create_srm_mkdir_mock(const char* url, int code){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); setup_mock_srm(); if( gfal_check_GError(&mock_err)) return; define_mock_endpoints(TEST_SRM_DPM_FULLENDPOINT_URL); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); will_respond(srm_mock_srm_mkdir, code, want_non_null(context), want_non_null(input)); #endif } void test_mock_mkdir_lfc(int errcode, char* url, mode_t mode){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; define_mock_filestatg(040000 | mode, 1,2); always_return(lfc_mock_endtrans,0); always_return(lfc_mock_starttrans,0); will_respond(lfc_mock_mkdir, errcode, want_string(path, url+4), want_non_null(guid), want(mode, 0664)); #endif } void gfal2_test__mkdir_posix_lfc_simple() { char filename[2048]; time_t tt; time(&tt); char *t = ctime(&tt); strcpy(filename, TEST_LFC_BASE_FOLDER_URL_MKDIR1); strcat(filename, t); // generate a new unique dir identifier& test_mock_mkdir_lfc(EEXIST, TEST_LFC_EEXIST_MKDIR, 040664 ); test_mock_mkdir_lfc(0, filename, 040664 ); #if USE_MOCK define_mock_filestatg(040664, 1, 1); will_respond(lfc_mock_statg, 0, want_string(path, TEST_GFAL_LFC_FILE_STAT_OK+5), want_non_null(linkinfos)); #endif test_mock_mkdir_lfc(EACCES, TEST_LFC_UNACCESS_MKDIR, 040664 ); struct stat st; int ret = gfal_mkdir(TEST_LFC_EEXIST_MKDIR, 0664); assert_true_with_message(ret ==-1 && errno==EEXIST && gfal_posix_code_error()==EEXIST, " must be an already exist file"); gfal_posix_clear_error(); errno =0; // printf(" filename : %s ", filename); ret = gfal_mkdir(filename, 0664); assert_true_with_message( ret ==0 && errno==0 && gfal_posix_code_error() ==0, " must be a valid mkdir %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_check_error(); gfal_posix_clear_error(); errno =0; ret = gfal_stat(filename,&st); assert_true_with_message(ret ==0 && st.st_mode== 040664, " must be the correct right and dir must exist %d %o", ret, st.st_mode); ret = gfal_mkdir(TEST_LFC_UNACCESS_MKDIR, 0664); assert_true_with_message(ret == -1 && errno== EACCES && gfal_posix_code_error()== EACCES, " must be a bad access right"); gfal_posix_clear_error(); errno =0; } /* void test__mkdir_posix_lfc_rec() { struct stat st; int ret,i; char filename[2048]; g_strlcpy(filename, TEST_LFC_BASE_FOLDER_URL_MKDIR1,2048); // copy the base filenameurl time_t tt; time(&tt); for(i=0; i< 5; i++){ char buffer[2048]; snprintf(buffer,2048, "%stest%ld%d/", filename, tt, i); // concat string to construct a full url strcpy(filename, buffer); } *(filename + strlen(filename)-1)='\0'; //g_printerr(" filename : %s ", filename); ret = gfal_mkdir(filename, 0664); if(ret != 0 || errno !=0 || gfal_posix_code_error() != 0){ assert_true_with_message(FALSE, " must be a valid create rec dir %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno ==0; ret = gfal_stat(filename,&st); if( ret != 0 || st.st_mode != 040664){ assert_true_with_message(FALSE, " bad right on the new rec created directory %d %o ", ret,st.st_mode ); gfal_posix_clear_error(); return; } } void test__mkdir_posix_lfc_rec_with_slash() { struct stat st; int ret,i; char filename[2048]; g_strlcpy(filename, TEST_LFC_BASE_FOLDER_URL_MKDIR1,2048); // copy the base filenameurl time_t tt; time(&tt); for(i=100; i< 105; i++){ char buffer[2048]; snprintf(buffer,2048, "%stest%ld%d/", filename, tt, i); // concat string to construct a full url strcpy(filename, buffer); } *(filename + strlen(filename)-1)='/'; //g_printerr(" filename : %s ", filename); ret = gfal_mkdir(filename, 0664); if(ret != 0 || errno !=0 || gfal_posix_code_error() != 0){ assert_true_with_message(FALSE, " must be a valid create rec dir with / %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno ==0; ret = gfal_stat(filename,&st); if( ret != 0 || st.st_mode != 040664){ assert_true_with_message(FALSE, " bad right on the new rec created directory %d %o ", ret,st.st_mode ); gfal_posix_clear_error(); return; } ret = gfal_mkdir(filename, 0664); if(ret == 0 || errno != EEXIST || gfal_posix_code_error() != EEXIST){ // try to recreate on the same call, must fail assert_true_with_message(FALSE, " must be a failed creation %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno ==0; }*/ void gfal2_test__mkdir_posix_local_simple() { struct stat st; system(TEST_LOCAL_MKDIR_EXIST_COMMAND); int ret = gfal_mkdir(TEST_LOCAL_MKDIR_EXIST_FILE, 0644); if( ret == 0 || errno != EEXIST || gfal_posix_code_error() != EEXIST){ assert_true_with_message(FALSE, " must be an existing dir %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno =0; char filename[2048]; time_t tt; time(&tt); snprintf(filename, 2048, "%s%ld", TEST_LOCAL_BASE_FOLDER_URL_MKDIR1, tt); ret = gfal_mkdir(filename, 0644); if(ret != 0 || errno !=0 || gfal_posix_code_error() != 0){ assert_true_with_message(FALSE, " must be a valid create dir %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno =0; ret = gfal_stat(filename,&st); if( ret != 0 || st.st_mode != 040644){ assert_true_with_message(FALSE, " bad right on the new created directory %d %o ", ret,st.st_mode ); gfal_posix_clear_error(); return; } ret = gfal_mkdir(TEST_LOCAL_UNACCESS_MKDIR, 06640); if( ret ==0 || errno != EACCES || gfal_posix_code_error() != EACCES){ assert_true_with_message(FALSE, " must be a non-access dir %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno =0; } /* void test__mkdir_posix_local_rec() { struct stat st; int ret,i; char filename[2048]; g_strlcpy(filename, TEST_LOCAL_BASE_FOLDER_URL_MKDIR1,2048); // copy the base filenameurl time_t tt; time(&tt); for(i=0; i< 5; i++){ char buffer[2048]; snprintf(buffer,2048, "%stest%ld%d/", filename, tt, i); // concat string to construct a full url strcpy(filename, buffer); } *(filename + strlen(filename)-1)='\0'; //g_printerr(" filename : %s ", filename); ret = gfal_mkdir(filename, 0664); if(ret != 0 || errno !=0 || gfal_posix_code_error() != 0){ assert_true_with_message(FALSE, " must be a valid create rec dir %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno ==0; ret = gfal_stat(filename,&st); if( ret != 0 || st.st_mode != 040664){ assert_true_with_message(FALSE, " bad right on the new rec created directory %d %o ", ret,st.st_mode ); gfal_posix_clear_error(); return; } } void test__mkdir_posix_local_rec_with_slash() { struct stat st; int ret,i; char filename[2048]; char name[2048]; g_strlcpy(filename, TEST_LOCAL_BASE_FOLDER_URL_MKDIR1,2048); // copy the base filenameurl time_t tt; time(&tt); for(i=100; i< 105; i++){ char buffer[2048]; snprintf(buffer,2048, "%stest%ld%d/", filename, tt, i); // concat string to construct a full url strcpy(filename, buffer); } *(filename + strlen(filename)-1)='/'; //g_printerr(" filename : %s ", filename); ret = gfal_mkdir(filename, 0664); if(ret != 0 || errno !=0 || gfal_posix_code_error() != 0){ assert_true_with_message(FALSE, " must be a valid create rec dir with / %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno ==0; ret = gfal_stat(filename,&st); if( ret != 0 || st.st_mode != 040664){ assert_true_with_message(FALSE, " bad right on the new rec created directory %d %o ", ret,st.st_mode ); gfal_posix_clear_error(); return; } ret = gfal_mkdir(filename, 0664); if(ret == 0 || errno != EEXIST || gfal_posix_code_error() != EEXIST){ // try to recreate on the same call, must fail assert_true_with_message(FALSE, " must be a failed creation %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno ==0; }*/ void gfal2_test__mkdir_posix_srm_simple() { int ret =-1; /* --> forget eexist test with srm due to the "mkdir -p" default behavior of the srm interface ret = gfal_mkdir(TEST_SRM_EEXIST_MKDIR, 0664); if( ret != 0 ){ assert_true_with_message(FALSE, " must be an existing dir %d %d %d", ret, errno, gfal_posix_code_error()); //---------> EEXIST -> 0 for srm gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno ==0;*/ char filename[2048]; time_t tt; time(&tt); snprintf(filename, 2048, "%stest%ld", TEST_SRM_BASE_FOLDER_URL_MKDIR1, tt); //g_printerr(" filename %s ", filename); create_srm_mkdir_mock(filename, 0); ret = gfal_mkdir(filename, 0664); if(ret != 0 || errno !=0 || gfal_posix_code_error() != 0){ assert_true_with_message(FALSE, " must be a valid create dir %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno =0; #if USE_MOCK mock_srm_access_right_response(filename); #endif ret = gfal_access(filename, F_OK); if( ret != 0 ){ assert_true_with_message(FALSE, " directory must exist %d %o ", ret); gfal_posix_clear_error(); return; } create_srm_mkdir_mock(filename, -EACCES); ret = gfal_mkdir(TEST_SRM_UNACCESS_MKDIR, 0644); if( ret ==0 || errno != EACCES || gfal_posix_code_error() != EACCES){ assert_true_with_message(FALSE, " must be a non-access dir %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno =0; } /* void test__mkdir_posix_srm_rec() { struct stat st; int ret,i; char filename[2048]; g_strlcpy(filename, TEST_SRM_BASE_FOLDER_URL_MKDIR1,2048); // copy the base filenameurl time_t tt; time(&tt); for(i=0; i< 5; i++){ char buffer[2048]; snprintf(buffer,2048, "%stest%ld%d/", filename, tt, i); // concat string to construct a full url strcpy(filename, buffer); } *(filename + strlen(filename)-1)='\0'; //g_printerr(" filename : %s ", filename); ret = gfal_mkdir(filename, 0664); if(ret != 0 || errno !=0 || gfal_posix_code_error() != 0){ assert_true_with_message(FALSE, " must be a valid create rec dir %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno ==0; ret = gfal_access(filename, F_OK); if( ret != 0 ){ assert_true_with_message(FALSE, " directory must exist %d %o ", ret); gfal_posix_clear_error(); return; } } void test__mkdir_posix_srm_rec_with_slash() { struct stat st; int ret,i; char filename[2048]; char name[2048]; g_strlcpy(filename, TEST_SRM_BASE_FOLDER_URL_MKDIR1,2048); // copy the base filenameurl time_t tt; time(&tt); for(i=100; i< 105; i++){ char buffer[2048]; snprintf(buffer,2048, "%stest%ld%d/", filename, tt, i); // concat string to construct a full url strcpy(filename, buffer); } *(filename + strlen(filename)-1)='/'; //g_printerr(" filename : %s ", filename); ret = gfal_mkdir(filename, 0664); if(ret != 0 || errno !=0 || gfal_posix_code_error() != 0){ assert_true_with_message(FALSE, " must be a valid create rec dir with / %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_clear_error(); return; } gfal_posix_clear_error(); errno ==0; ret = gfal_access(filename, F_OK); if( ret != 0 ){ assert_true_with_message(FALSE, " directory must exist %d %o ", ret); gfal_posix_clear_error(); return; } // ret = gfal_mkdir(filename, 0664); // if(ret == 0 || errno != EEXIST || gfal_posix_code_error() != EEXIST){ // try to recreate on the same call, must fail // assert_true_with_message(FALSE, " must be a failed creation %d %d %d", ret, errno, gfal_posix_code_error()); --> SRM Call return 0 when EEXIST call // gfal_posix_clear_error(); // return; // } // gfal_posix_clear_error(); // errno ==0; } */ gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_mkdir.h0000644000175000017500000000111712164561703024005 0ustar ellertellert#pragma once /* * auto-generated header file for file test/posix/test__gfal_posix_mkdir.c */ void test_mock_mkdir_lfc(int errcode, char* url, mode_t mode); void create_srm_mkdir_mock(const char* url, int code); void gfal2_test__mkdir_posix_lfc_simple(); void test__mkdir_posix_lfc_rec(); void test__mkdir_posix_lfc_rec_with_slash(); void gfal2_test__mkdir_posix_local_simple(); void test__mkdir_posix_local_rec(); void test__mkdir_posix_local_rec_with_slash(); void gfal2_test__mkdir_posix_srm_simple(); void test__mkdir_posix_srm_rec(); void test__mkdir_posix_srm_rec_with_slash(); gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_write.c0000644000175000017500000001261012164561703024024 0ustar ellertellert /* unit test for posix open func */ #include #include #include #include #include #include "../../src/common/gfal_prototypes.h" #include "../../src/common/gfal_types.h" #include "../../src/common/gfal_constants.h" #include "../../src/common/gfal_common_errverbose.h" #include "../mock/gfal_rfio_mock_test.h" #include "../unit_test_constants.h" #include "test__gfal_posix_read.h" #include "test__gfal_posix_open.h" #include "../common/gfal__test_common_srm.h" #include "gfal_posix_api.h" void test_mock_write_posix_srm(const char * url, const char* filename){ #if USE_MOCK strcpy(defined_buff_write, filename); defined_buff_write_size = strlen(filename)+1; will_respond(rfio_mock_write, strlen(filename), want_non_null(buff), want_non_null(size), want_non_null(fd)); char* turls[]= { "rfio://mocked_turl_nothing", NULL }; char* surls[] = { (char*)url, NULL }; int status[] = { 0,0 }; test_mock_srm_open_write_valid(surls, turls, status); #endif } void test_mock_pwrite_posix_srm(const char * url, const char* filename, off_t off){ #if USE_MOCK strcpy(defined_buff_write, filename); defined_buff_write_size = strlen(filename)+1; will_respond(rfio_mock_lseek, off, want_non_null(fd), want(offset, off), want(whence, SEEK_SET)); will_respond(rfio_mock_write, strlen(filename), want_non_null(buff), want_non_null(size), want_non_null(fd)); char* turls[]= { "rfio://mocked_turl_nothing", NULL }; char* surls[] = { (char*)url, NULL }; int status[] = { 0,0 }; test_mock_srm_open_write_valid(surls, turls, status); #endif } void test_generic_write_simple(char* url_exist, const char* filename){ char buff[2048]; int ret = -1; errno=0; strcpy(buff, TEST_SRM_FILE_CONTENT); //g_printerr("filename write : %s ",url_exist); int fd = gfal_open(url_exist, O_WRONLY | O_CREAT, 0644); assert_true_with_message(fd >0 && gfal_posix_code_error()==0 && errno==0, " must be a valid open for write %d %d %d", ret, gfal_posix_code_error(), errno); gfal_posix_check_error(); ret = gfal_write(fd, buff, strlen(TEST_SRM_FILE_CONTENT)+1); assert_true_with_message(ret >0 && gfal_posix_code_error()==0 && errno==0, " must be a valid write %d %d %d", ret, gfal_posix_code_error(), errno); ret = gfal_close(fd); assert_true_with_message(fd !=0 && ret==0 && gfal_posix_code_error()==0 && errno==0, " must be a valid close %d %d %d", ret, gfal_posix_code_error(), errno); } void test_generic_pwrite_simple(char* url_exist, const char* filename){ char buff[2048]; int ret = -1; errno=0; strcpy(buff, TEST_SRM_FILE_CONTENT); //g_printerr("filename write : %s ",url_exist); int fd = gfal_open(url_exist, O_WRONLY | O_CREAT, 0644); assert_true_with_message(fd >0 && gfal_posix_code_error()==0 && errno==0, " must be a valid open for write %d %d %d", ret, gfal_posix_code_error(), errno); gfal_posix_check_error(); ret = gfal_pwrite(fd, buff, strlen(TEST_SRM_FILE_CONTENT)+1, 0); assert_true_with_message(ret >0 && gfal_posix_code_error()==0 && errno==0, " must be a valid write %d %d %d", ret, gfal_posix_code_error(), errno); ret = gfal_close(fd); assert_true_with_message(fd !=0 && ret==0 && gfal_posix_code_error()==0 && errno==0, " must be a valid close %d %d %d", ret, gfal_posix_code_error(), errno); } void gfal2_test_write_posix_local_simple() { test_generic_write_simple(TEST_LOCAL_WRITE_VALID, TEST_LOCAL_READ_CONTENT); test_generic_read_simple(TEST_LOCAL_WRITE_VALID, TEST_LOCAL_READ_CONTENT); system(TEST_LOCAL_WRITE_CREATE_COMMAND); } void gfal2_test_pwrite_posix_local_simple() { test_generic_pwrite_simple(TEST_LOCAL_WRITE_VALID, TEST_LOCAL_READ_CONTENT); test_generic_pread_simple(TEST_LOCAL_WRITE_VALID, TEST_LOCAL_READ_CONTENT); system(TEST_LOCAL_WRITE_CREATE_COMMAND); } void gfal2_test_write_posix_srm_simple() { setup_mock_srm(); char buff_name[2048]; time_t t = time(NULL); int i = rand(); snprintf(buff_name, 2048, "%stest_%ld_%d", TEST_SRM_DPM_ENDPOINT_PREFIX, (long) t, (int) i); test_mock_write_posix_srm(buff_name, TEST_LOCAL_READ_CONTENT); test_generic_write_simple(buff_name, TEST_LOCAL_READ_CONTENT); test_mock_read_posix_srm(TEST_LOCAL_READ_CONTENT); test_generic_read_simple(buff_name, TEST_LOCAL_READ_CONTENT); } void gfal2_test_pwrite_posix_srm_simple() { setup_mock_srm(); char buff_name[2048]; time_t t = time(NULL); int i = rand(); snprintf(buff_name, 2048, "%stest_%ld_%d", TEST_SRM_DPM_ENDPOINT_PREFIX, (long) t, (int) i); test_mock_pwrite_posix_srm(buff_name, TEST_LOCAL_READ_CONTENT,0 ); test_generic_pwrite_simple(buff_name, TEST_LOCAL_READ_CONTENT); test_mock_pread_posix_srm(TEST_LOCAL_READ_CONTENT, 0); test_generic_pread_simple(buff_name, TEST_LOCAL_READ_CONTENT); } void gfal2_test_write_posix_lfc_simple() { /*test_mock_write_posix_lfc(TEST_LFC_OPEN_WRITE, TEST_SRM_FILE_CONTENT); --> Not able to write on the lfc for the moment test_generic_write_simple(TEST_LFC_OPEN_WRITE, TEST_SRM_FILE_CONTENT); test_mock_read_posix_lfc(TEST_LFC_OPEN_WRITE,TEST_SRM_FILE_CONTENT); test_generic_read_simple(TEST_LFC_OPEN_WRITE, TEST_SRM_FILE_CONTENT);*/ } void test_write_posix_guid_simple(){ /*test_mock_write_posix_lfc(TEST_LFC_OPEN_WRITE, TEST_SRM_FILE_CONTENT); --> Not able to write on the lfc with guid for the moment test_generic_write_simple(TEST_LFC_OPEN_WRITE, TEST_SRM_FILE_CONTENT); test_mock_read_posix_lfc(TEST_LFC_OPEN_WRITE,TEST_SRM_FILE_CONTENT); test_generic_read_simple(TEST_LFC_OPEN_WRITE, TEST_SRM_FILE_CONTENT);*/ } gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_stat.h0000644000175000017500000000072012164561703023651 0ustar ellertellert#pragma once /* * auto-generated header file for file /home/adevress/myworkspace/gfal/test/posix/test__gfal_posix_stat.c */ void gfal2_test__gfal_posix_stat_lfc(); void gfal2_test__gfal_posix_stat_guid(); void gfal2_test__gfal_posix_stat_local(); void gfal2_test__gfal_posix_stat_srm(); void gfal2_test__gfal_posix_lstat_lfc(); void gfal2_test__gfal_posix_lstat_guid(); void gfal2_test__gfal_posix_lstat_local(); void gfal2_test__gfal_posix_lstat_srm(); gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_parameter.c~0000755000175000017500000000224512164561703025056 0ustar ellertellert /* unit test for the set/get parameters */ #include #include #include #include #include #include #include #include #include #include void test_posix_set_get_parameter(){ char buff[2048]; buff[0]='\0'; int ret = gfal_set_parameter_int(NULL, "no_bdii", TRUE); // set a variable assert_true_with_message(ret == 0 && gfal_posix_check_error() == FALSE, " must be a valid return"); ret = gfal_get_parameter_int(NULL, "no_bdii"); // verify the variable status assert_true_with_message(ret == TRUE && gfal_posix_check_error() == FALSE, " must be the value set before"); ret = gfal_set_parameter_int(NULL, "no_bdii", FALSE); // set a variable assert_true_with_message(ret == 0 && gfal_posix_check_error() == FALSE, " must be a valid return 2"); ret = gfal_get_parameter_int(NULL, "no_bdii"); // verify the variable status assert_true_with_message(ret == FALSE && gfal_posix_check_error() == FALSE, " must be the value set before 2"); } gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_parameter.h~0000755000175000017500000000015412164561703025060 0ustar ellertellert#pragma once /* header for unit test for the set/get parameters */ void test_posix_set_get_parameter();gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_xattr.h0000644000175000017500000000056212164561703024044 0ustar ellertellert#pragma once /* unit test for posix getxattr func */ #include #include #include #include #include void gfal2_test_getxattr_guid_lfn_base(); void gfal2_test_getxattr_guid(const char* good_lfn, const char* guid, const char* enoent_lfn, const char* eaccess_lfn); void gfal2_test_getxattr_status_srm_base(); gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_open.h0000644000175000017500000000117212164561703023641 0ustar ellertellert#pragma once /* * auto-generated header file for file test/posix/test__gfal_posix_open.c */ void test_mock_srm_open_valid(char** tab, char** tab_turl, int* res); void test_mock_srm_open_invalid(char** tab, char** tab_exp, int* res); void test_mock_srm_open_write_valid(char** tab, char** tab_turl, int* res); void test_mock_guid_open_valid(const char * guid1); void test_mock_lfc_open_valid(const char* lfc_url); void gfal2_test_open_posix_all_simple(); void gfal2_test_open_posix_local_simple(); void gfal2_test_open_posix_lfc_simple(); void gfal2_test_open_posix_srm_simple(); void gfal2_test_open_posix_guid_simple(); gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_opendir.h0000644000175000017500000000060312164561703024336 0ustar ellertellert#pragma once /* * auto-generated header file for file test/posix/test__gfal_posix_opendir.c */ void gfal2_test__opendir_posix_local_simple(); void gfal2_test__opendir_posix_lfc_simple(); void gfal2_test__readdir_posix_local_simple(); void gfal2_test__readdir_posix_lfc_simple(); void gfal2_test__opendir_posix_srm_simple_mock(); void gfal2_test__readdir_posix_srm_simple_mock(); gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_open.c0000644000175000017500000001745512164561703023647 0ustar ellertellert /* unit test for posix open func */ #include #include #include #include #include #include "../unit_test_constants.h" #include #include #include #include "../mock/gfal_lfc_mock_test.h" #include "../mock/gfal_srm_mock_test.h" #include "../mock/gfal_mds_mock_test.h" #include "../common/rfio/test__gfal_rfio_plugin.h" #include "../common/gfal__test_common_srm.h" #include "../common/gfal__test_plugin.h" #include "test__gfal_posix_open.h" void test_mock_srm_open_valid(char** tab, char** tab_turl, int* res){ #if USE_MOCK test_rfio_mock_all(); setup_mock_srm(); gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); define_mock_endpoints(TEST_SRM_DPM_FULLENDPOINT_URL); // mock the mds for the srm endpoitn resolution will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); define_mock_srmv2_pinfilestatus(1, tab, NULL, tab_turl, res); will_respond(srm_mock_srm_prepare_to_get, 1, want_non_null(context), want_non_null(input), want_non_null(output)); will_respond(rfio_mock_open, 15, want_non_null(path)); will_respond(rfio_mock_close, 0, want(fd, 15)); #endif } void test_mock_srm_open_write_valid(char** tab, char** tab_turl, int* res){ #if USE_MOCK test_rfio_mock_all(); setup_mock_srm(); gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); int status[] = { 0,0 }; char* turls[] = { "rfio://mockedturl", NULL }; char* surls[] = { "srm://mockedsurl", NULL }; define_mock_endpoints(TEST_SRM_DPM_FULLENDPOINT_URL); // mock the mds for the srm endpoitn resolution will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); define_mock_srmv2_putoutput(1, tab, NULL, tab_turl, res); will_respond(srm_mock_srm_prepare_to_put, 1, want_non_null(context), want_non_null(input), want_non_null(output)); will_respond(rfio_mock_open, 15, want_non_null(path)); define_put_done(1, surls, NULL, turls, status); will_respond(srm_mock_srm_put_done,1, want_non_null(context)); will_respond(rfio_mock_close, 0, want(fd, 15)); #endif } void test_mock_srm_open_invalid(char** tab, char** tab_exp, int* res){ #if USE_MOCK test_rfio_mock_all(); setup_mock_srm(); gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); define_mock_endpoints(TEST_SRM_DPM_FULLENDPOINT_URL); // mock the mds for the srm endpoitn resolution will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); define_mock_srmv2_pinfilestatus(1, tab, tab_exp, NULL , res); will_respond(srm_mock_srm_prepare_to_get, 1, want_non_null(context), want_non_null(input), want_non_null(output)); #endif } void test_mock_lfc_open_valid(const char* lfc_url){ #if USE_MOCK char* tab[]= { TEST_SRM_VALID_SURL_EXAMPLE1, NULL }; char* tab_turl[] = { TEST_SRM_TURL_EXAMPLE1, NULL }; int res[] = { 0, 0 }; test_mock_srm_open_valid(tab, tab_turl, res); GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; define_mock_filereplica(1, tab); will_respond(lfc_mock_getreplica, 0, want_string(path, ((char*)lfc_url)+4), want_non_null(nbentries), want_non_null(rep_entries)); #endif } void test_mock_lfc_open_enoent(const char* lfc_url){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); setup_mock_srm(); if( gfal_check_GError(&mock_err)) return; will_respond(lfc_mock_getreplica, ENOENT, want_string(path, ((char*)lfc_url)+4), want_non_null(nbentries), want_non_null(rep_entries)); #endif } void test_mock_lfc_open_eacces(const char* lfc_url){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); setup_mock_srm(); if( gfal_check_GError(&mock_err)) return; will_respond(lfc_mock_getreplica, EACCES, want_string(path, ((char*)lfc_url)+4), want_non_null(nbentries), want_non_null(rep_entries)); #endif } void test_mock_guid_open_valid(const char * guid1){ #if USE_MOCK int i1; test_mock_lfc_open_valid(TEST_LFC_OPEN_EXIST); define_linkinfos= calloc(sizeof(struct lfc_linkinfo),3); define_numberlinkinfos=3; for(i1=0; i1< define_numberlinkinfos; ++i1) g_strlcpy(define_linkinfos[i1].path, TEST_LFC_OPEN_EXIST+4, 2048); will_respond(lfc_mock_getlinks, 0, want_string(guid, ((char*)guid1)+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); #endif } void test_mock_guid_open_invalid(const char * guid1){ #if USE_MOCK gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); will_respond(lfc_mock_getlinks, ENOENT, want_string(guid, ((char*)guid1)+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); #endif } void gfal2_test_open_posix_all_simple() { int ret = gfal_open(NULL, O_RDONLY, 555); assert_true_with_message( ret < 0 && gfal_posix_code_error() == EFAULT && errno==EFAULT, " must be a EFAULT response"); gfal_posix_clear_error(); } static void test_generic_open_simple(char* url_exist, char* url_noent, char* url_noaccess){ int ret = -1; int fd; if(url_exist){ fd = gfal_open(url_exist, O_RDONLY, 555); assert_true_with_message(fd >0 && gfal_posix_code_error()==0 && errno==0, " must be a valid open %d %d %d", fd, gfal_posix_code_error(), errno); gfal_posix_check_error(); ret = gfal_close(fd); assert_true_with_message(fd !=0 && ret==0 && gfal_posix_code_error()==0 && errno==0, " must be a valid close %d %d %d", ret, gfal_posix_code_error(), errno); gfal_posix_check_error(); ret = gfal_close(fd); assert_true_with_message( ret==-1 && gfal_posix_code_error()==EBADF && errno==EBADF, " must be a bad descriptor %d %d %d", ret, gfal_posix_code_error(), errno); } if(url_noent){ gfal_posix_clear_error(); fd = gfal_open(url_noent, O_RDONLY, 555); assert_true_with_message( fd <=0 && gfal_posix_code_error()==ENOENT && errno==ENOENT, " must be a non existing file %d %d %d", ret, gfal_posix_code_error(), errno); } if(url_noaccess){ gfal_posix_clear_error(); fd = gfal_open(url_noaccess, O_RDONLY, 555); assert_true_with_message( fd <=0 && gfal_posix_code_error()==EACCES && errno==EACCES, " must be a non accessible file %d %d %d", fd, gfal_posix_code_error(), errno); gfal_posix_clear_error(); } } void gfal2_test_open_posix_local_simple() { system(TEST_LOCAL_OPEN_CREATE_COMMAND); test_generic_open_simple(TEST_LOCAL_OPEN_EXIST, TEST_LOCAL_OPEN_NOEXIST, TEST_LOCAL_OPEN_NOACCESS); } void gfal2_test_open_posix_lfc_simple() { test_mock_lfc_open_valid(TEST_LFC_OPEN_EXIST); test_mock_lfc_open_enoent(TEST_LFC_OPEN_NOEXIST); test_mock_lfc_open_eacces(TEST_LFC_OPEN_NOACCESS); test_generic_open_simple(TEST_LFC_OPEN_EXIST, TEST_LFC_OPEN_NOEXIST, TEST_LFC_OPEN_NOACCESS); } void gfal2_test_open_posix_srm_simple() { char* tab[]= { TEST_SRM_VALID_SURL_EXAMPLE1, NULL }; char* tab_turl[] = { TEST_SRM_TURL_EXAMPLE1, NULL }; int res[] = { 0, 0 }; int res2[] = { ENOENT, 0 }; char* exp[] = { "mock enoent", NULL }; test_mock_srm_open_valid(tab, tab_turl, res); test_generic_open_simple(TEST_SRM_OPEN_EXIST, NULL, NULL); test_mock_srm_open_invalid(tab, exp, res2); test_generic_open_simple(NULL, TEST_SRM_OPEN_NOEXIST,NULL); } void gfal2_test_open_posix_guid_simple() { test_mock_guid_open_valid(TEST_GUID_OPEN_EXIST); test_generic_open_simple(TEST_GUID_OPEN_EXIST, NULL, NULL); test_mock_guid_open_invalid(TEST_GUID_OPEN_NONEXIST); test_generic_open_simple(NULL, TEST_GUID_NOEXIST_ACCESS, NULL); } gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_rmdir.c0000644000175000017500000001066112164561703024013 0ustar ellertellert /* unit test for posixrmdir func */ #include #include #include #include #include #include #include #include #include #include #include #include "../unit_test_constants.h" #include "../common/gfal__test_plugin.h" #include "../mock/gfal_mds_mock_test.h" #include "../mock/gfal_lfc_mock_test.h" #include "../mock/gfal_srm_mock_test.h" #include "../common/gfal__test_common_srm.h" #include "test__gfal_posix_mkdir.h" #include "test__gfal_posix_rmdir.h" void test_mock_rmdir_lfc(int errcode, char* url, mode_t mode){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; always_return(lfc_mock_endtrans,0); always_return(lfc_mock_starttrans,0); will_respond(lfc_mock_rmdir, errcode, want_string(path, url+4)); #endif } void create_srm_rmdir_mock(const char* url, int code){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); setup_mock_srm(); if( gfal_check_GError(&mock_err)) return; define_mock_endpoints(TEST_SRM_DPM_FULLENDPOINT_URL); will_respond(mds_mock_sd_get_se_types_and_endpoints, 0, want_string(host, TEST_SRM_DPM_CORE_URL), want_non_null(se_types), want_non_null(se_endpoints)); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); define_mock_defined_srm_rmdir_output((char*)url, code); will_respond(srm_mock_srm_rmdir, 0, want_non_null(context), want_non_null(input), want_non_null(output)); #endif } void test_generic_rmdir_enoent(char* existingfile){ int ret = gfal_rmdir(existingfile); assert_true_with_message(ret != 0 && gfal_posix_code_error() == ENOENT, " must be an invalid deletion, this dir is not existing : %d ", gfal_posix_code_error()); gfal_posix_clear_error(); } void test_generic_rmdir_normal(char* existingfile){ gfal_posix_clear_error(); int ret = gfal_mkdir(existingfile,0664); assert_true_with_message(ret ==0 || gfal_posix_code_error() == EEXIST, " must be a valid dir creation %d %d", ret, gfal_posix_code_error()); ret = gfal_rmdir(existingfile); assert_true_with_message(ret ==0 || gfal_posix_code_error() == 0, " must be a valid dir deletion %d %d", ret, gfal_posix_code_error()); } void test_generic_rmdir(char* existingfile, char* nonemptydir){ int ret = -1; ret = gfal_rmdir(NULL); assert_true_with_message(ret != 0 && gfal_posix_code_error() == EFAULT, " must be a NULL path %d", gfal_posix_code_error()); test_generic_rmdir_normal(existingfile); test_generic_rmdir_enoent(existingfile) ; ret = gfal_rmdir(nonemptydir); assert_true_with_message(ret != 0 && gfal_posix_code_error() == ENOTEMPTY, " must be an invalid deletion, this dir is not empty : %d ", gfal_posix_code_error()); gfal_posix_clear_error(); } void test__rmdir_posix_lfc_simple() { test_mock_mkdir_lfc(0, TEST_LFC_RMDIR_CREATED, 0664); test_mock_rmdir_lfc(0, TEST_LFC_RMDIR_CREATED, 0664); test_mock_rmdir_lfc(-ENOENT, TEST_LFC_RMDIR_CREATED, 0664); test_mock_rmdir_lfc(-ENOTEMPTY, TEST_LFC_RMDIR_EEXIST, 0664); test_generic_rmdir(TEST_LFC_RMDIR_CREATED, TEST_LFC_RMDIR_EEXIST); } void test__rmdir_posix_lfc_slash() { test_mock_rmdir_lfc(0, TEST_LFC_RMDIR_CREATED, 0664); test_mock_rmdir_lfc(-ENOENT, TEST_LFC_RMDIR_CREATED, 0664); test_mock_rmdir_lfc(-ENOTEMPTY, TEST_LFC_RMDIR_EEXIST, 0664); test_generic_rmdir(TEST_LFC_RMDIR_CREATED_SLASH, TEST_LFC_RMDIR_EEXIST); } // srm part void test__rmdir_posix_srm_simple() { create_srm_mkdir_mock(TEST_SRM_RMDIR_CREATED, 0); create_srm_rmdir_mock(TEST_SRM_RMDIR_CREATED, 0); test_generic_rmdir_normal(TEST_SRM_RMDIR_CREATED); create_srm_rmdir_mock(TEST_SRM_RMDIR_CREATED, ENOENT); test_generic_rmdir_enoent(TEST_SRM_RMDIR_CREATED); //test_generic_rmdir(TEST_SRM_RMDIR_CREATED, TEST_SRM_RMDIR_EEXIST); } // local part void test__rmdir_posix_local_simple() { system(TEST_LOCAL_RMDIR_EEXIST_COMMAND); test_generic_rmdir(TEST_LOCAL_RMDIR_CREATED, TEST_LOCAL_RMDIR_EEXIST); } void test__rmdir_posix_local_slash() { system(TEST_LOCAL_RMDIR_EEXIST_COMMAND); test_generic_rmdir(TEST_LOCAL_RMDIR_CREATED_SLASH, TEST_LOCAL_RMDIR_EEXIST); } gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_chmod.h0000644000175000017500000000047512164561703023777 0ustar ellertellert/* * auto-generated header file for file test/posix/test__gfal_posix_chmod.c */ void gfal2_test__gfal_posix_chmod_read_lfn(); void gfal2_test__gfal_posix_chmod_read_guid(); void gfal2_test__gfal_posix_chmod_read_local(); void gfal2_test__gfal_posix_chmod_write_lfn(); void gfal2_test__gfal_posix_chmod_srm(); gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_rmdir.h0000644000175000017500000000070712164561703024020 0ustar ellertellert#pragma once /* * auto-generated header file for file test/posix/test__gfal_posix_rmdir.c */ void test__rmdir_posix_lfc_simple(); void test__rmdir_posix_lfc_existingfile(); void test__rmdir_posix_lfc_slash(); void test__rmdir_posix_srm_simple(); void test__rmdir_posix_srm_existingfile(); void test__rmdir_posix_srm_slash(); void test__rmdir_posix_local_simple(); void test__rmdir_posix_local_existingfile(); void test__rmdir_posix_local_slash(); gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_stat.c0000644000175000017500000003103712164561703023651 0ustar ellertellert /* unit test for posix access func */ #include #include #include #include #include #include "../../src/common/gfal_prototypes.h" #include "../../src/common/gfal_types.h" #include "../../src/common/gfal_constants.h" #include "../unit_test_constants.h" #include "gfal_posix_api.h" #include "gfal_posix_internal.h" #include "../common/gfal__test_common_srm.h" #include "../common/gfal__test_plugin.h" #include "../mock/gfal_mds_mock_test.h" #include "../mock/gfal_lfc_mock_test.h" #include "../mock/gfal_srm_mock_test.h" void create_srm_stat_env_mock(){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); setup_mock_srm(); if( gfal_check_GError(&mock_err)) return; define_mock_endpoints(TEST_SRM_DPM_FULLENDPOINT_URL); define_mock_stat_file_valid(TEST_GFAL_SRM_FILE_STAT_OK, TEST_GFAL_SRM_FILE_STAT_MODE_VALUE, TEST_GFAL_SRM_FILE_STAT_UID_VALUE, TEST_GFAL_SRM_FILE_STAT_GID_VALUE); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); will_respond(srm_mock_srm_ls, 0, want_non_null(context), want_non_null(inut), want_non_null(output)); #endif } void create_srm_stat_env_mock_noent(){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); setup_mock_srm(); if( gfal_check_GError(&mock_err)) return; define_mock_endpoints(TEST_SRM_DPM_FULLENDPOINT_URL); define_mock_stat_file_error(TEST_GFAL_SRM_FILE_STAT_NONEXIST, ENOENT, "epic fail"); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); will_respond(srm_mock_srm_ls, 0, want_non_null(context), want_non_null(inut), want_non_null(output)); #endif } void gfal2_test__gfal_posix_stat_lfc() { #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; define_mock_filestatg(TEST_GFAL_LFC_FILE_STAT_MODE_VALUE, TEST_GFAL_LFC_FILE_STAT_GID_VALUE, TEST_GFAL_LFC_FILE_STAT_UID_VALUE); will_respond(lfc_mock_statg, 0, want_string(path, TEST_GFAL_LFC_FILE_STAT_OK+5), want_non_null(linkinfos)); will_respond(lfc_mock_statg, ENOENT, want_string(path, TEST_GFAL_LFC_FILE_STAT_NONEXIST+5), want_non_null(linkinfos)); always_return(lfc_mock_getlinks, EINVAL); #endif struct stat buff; memset(&buff,0, sizeof(struct stat)); int res = gfal_stat(TEST_GFAL_LFC_FILE_STAT_OK, &buff); assert_true_with_message(res ==0 && errno==0 && gfal_posix_code_error()==0, " must be a success"); assert_true_with_message( buff.st_mode == TEST_GFAL_LFC_FILE_STAT_MODE_VALUE && buff.st_uid==TEST_GFAL_LFC_FILE_STAT_UID_VALUE && buff.st_gid==TEST_GFAL_LFC_FILE_STAT_GID_VALUE, " this is not the correct value for the lfc stat mode %o, uid %d, gid %d, size %d", buff.st_mode, buff.st_uid, buff.st_gid, buff.st_size); gfal_posix_clear_error(); res = gfal_stat(TEST_GFAL_LFC_FILE_STAT_NONEXIST, &buff); assert_true_with_message( res == -1 && gfal_posix_code_error() == ENOENT && errno== ENOENT, " must be an invalid stat"); gfal_posix_clear_error(); } void gfal2_test__gfal_posix_stat_guid() { #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; char* tab[]={ "/dtea/testmock", NULL}; define_mock_linkinfos(1, tab); define_mock_filestatg(TEST_GFAL_LFC_FILE_STAT_MODE_VALUE, TEST_GFAL_LFC_FILE_STAT_GID_VALUE, TEST_GFAL_LFC_FILE_STAT_UID_VALUE); will_respond(lfc_mock_getlinks, 0, want_string(guid, TEST_GFAL_GUID_FILE_STAT_OK+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); will_respond(lfc_mock_statg, 0, want_string(path, tab[0]), want_non_null(linkinfos)); will_respond(lfc_mock_getlinks, ENOENT, want_string(guid, TEST_GUID_NOEXIST_ACCESS+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); always_return(lfc_mock_getlinks, EINVAL); #endif struct stat buff; memset(&buff,0, sizeof(struct stat)); int res = gfal_stat(TEST_GFAL_GUID_FILE_STAT_OK, &buff); assert_true_with_message(res ==0 && errno==0 && gfal_posix_code_error()==0, " must be a success"); assert_true_with_message( buff.st_mode == TEST_GFAL_LFC_FILE_STAT_MODE_VALUE && buff.st_uid==TEST_GFAL_LFC_FILE_STAT_UID_VALUE && buff.st_gid==TEST_GFAL_LFC_FILE_STAT_GID_VALUE, " this is not the correct value for the lfc stat mode %o, uid %d, gid %d, size %d", buff.st_mode, buff.st_uid, buff.st_gid, buff.st_size); res = gfal_stat(TEST_GUID_NOEXIST_ACCESS, &buff); assert_true_with_message( res == -1 && gfal_posix_code_error() == ENOENT && errno== ENOENT, " must be an invalid stat %d %d %d", res, gfal_posix_code_error(), errno); gfal_posix_clear_error(); } void gfal2_test__gfal_posix_stat_local() { struct stat buff; memset(&buff,0, sizeof(struct stat)); // create a fil of the given size system(TEST_GFAL_LOCAL_STAT_COMMAND); errno=0; int res = gfal_stat(TEST_GFAL_LOCAL_STAT_OK, &buff); assert_true_with_message(res ==0 && errno==0 && gfal_posix_code_error()==0, " must be a success"); assert_true_with_message( buff.st_mode == TEST_GFAL_LOCAL_FILE_STAT_MODE_VALUE, " this is not the correct value for the local stat mode %o, uid %d, gid %d, size %d", buff.st_mode, buff.st_uid, buff.st_gid, buff.st_size); res = gfal_stat(TEST_GFAL_LOCAL_STAT_NONEXIST, &buff); assert_true_with_message( res == -1 && gfal_posix_code_error() == ENOENT && errno== ENOENT, " must be an invalid stat"); gfal_posix_clear_error(); } void gfal2_test__gfal_posix_stat_srm() { struct stat buff; memset(&buff,0, sizeof(struct stat)); #if USE_MOCK create_srm_stat_env_mock(); #endif int res = gfal_stat(TEST_GFAL_SRM_FILE_STAT_OK, &buff); assert_true_with_message(res ==0 && errno==0 && gfal_posix_code_error()==0, " must be a success %d %d %d", res, errno, gfal_posix_code_error()); assert_true_with_message(buff.st_mode == TEST_GFAL_SRM_FILE_STAT_MODE_VALUE && buff.st_uid == TEST_GFAL_SRM_FILE_STAT_UID_VALUE && buff.st_gid == TEST_GFAL_SRM_FILE_STAT_GID_VALUE, " this is not the correct value for the srm stat mode %o, uid %d, gid %d, size %d", buff.st_mode, buff.st_uid, buff.st_gid, buff.st_size); gfal_posix_check_error(); #if USE_MOCK create_srm_stat_env_mock_noent(); #endif res = gfal_stat(TEST_GFAL_SRM_FILE_STAT_NONEXIST, &buff); assert_true_with_message( res == -1 && gfal_posix_code_error() == ENOENT && errno== ENOENT, " must be an invalid stat"); gfal_posix_clear_error(); } void gfal2_test__gfal_posix_lstat_lfc() { #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; char* tab[]={ "/dtea/testmock", NULL}; define_mock_filelstat(TEST_GFAL_LFC_FILE_STAT_MODE_VALUE, TEST_GFAL_LFC_FILE_STAT_GID_VALUE, TEST_GFAL_LFC_FILE_STAT_UID_VALUE); will_respond(lfc_mock_lstatg, 0, want_string(path, tab[0]), want_non_null(linkinfos)); #endif struct stat buff; memset(&buff,0, sizeof(struct stat)); int res = gfal_lstat(TEST_GFAL_LFC_FILE_STAT_OK, &buff); assert_true_with_message(res ==0 && errno==0 && gfal_posix_code_error()==0, " must be a success stat %d %d %d", res, errno, gfal_posix_code_error()); assert_true_with_message( buff.st_mode == TEST_GFAL_LFC_FILE_STAT_MODE_VALUE && buff.st_uid==TEST_GFAL_LFC_FILE_STAT_UID_VALUE && buff.st_gid==TEST_GFAL_LFC_FILE_STAT_GID_VALUE, " this is not the correct value for the lfc stat mode %o, uid %d, gid %d, size %d", buff.st_mode, buff.st_uid, buff.st_gid, buff.st_size); gfal_posix_clear_error(); #if USE_MOCK define_mock_filelstat(TEST_GFAL_LFC_LINK_STAT_MODE_VALUE, TEST_GFAL_LFC_LINK_STAT_GID_VALUE, TEST_GFAL_LFC_LINK_STAT_UID_VALUE); will_respond(lfc_mock_lstatg, 0, want_string(path, tab[0]), want_non_null(linkinfos)); will_respond(lfc_mock_lstatg, ENOENT, want_string(path, tab[0]), want_non_null(linkinfos)); #endif res = gfal_lstat(TEST_GFAL_LFC_LINK_STAT_OK, &buff); assert_true_with_message(res ==0 && errno==0 && gfal_posix_code_error()==0, " must be a success lstat %d %d %d", res, errno, gfal_posix_code_error()); assert_true_with_message( buff.st_mode == TEST_GFAL_LFC_LINK_STAT_MODE_VALUE && buff.st_uid==TEST_GFAL_LFC_LINK_STAT_UID_VALUE && buff.st_gid==TEST_GFAL_LFC_LINK_STAT_GID_VALUE, " this is not the correct value for the lfc stat mode %o, uid %d, gid %d, size %d", buff.st_mode, buff.st_uid, buff.st_gid, buff.st_size); res = gfal_lstat(TEST_GFAL_LFC_FILE_STAT_NONEXIST, &buff); assert_true_with_message( res == -1 && gfal_posix_code_error() == ENOENT && errno== ENOENT, " must be an invalid stat %d %d %d ", res, gfal_posix_code_error(), errno); gfal_posix_clear_error(); } void gfal2_test__gfal_posix_lstat_guid() { #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; char* tab[]={ "/dtea/testmock", NULL}; define_mock_linkinfos(1, tab); define_mock_filelstat(TEST_GFAL_LFC_FILE_STAT_MODE_VALUE, TEST_GFAL_LFC_FILE_STAT_GID_VALUE, TEST_GFAL_LFC_FILE_STAT_UID_VALUE); will_respond(lfc_mock_getlinks, 0, want_string(guid, TEST_GFAL_GUID_FILE_STAT_OK+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); will_respond(lfc_mock_lstatg, 0, want_string(path, tab[0]), want_non_null(linkinfos)); will_respond(lfc_mock_getlinks, ENOENT, want_string(guid, TEST_GUID_NOEXIST_ACCESS+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); always_return(lfc_mock_getlinks, EINVAL); #endif struct stat buff; memset(&buff,0, sizeof(struct stat)); int res = gfal_lstat(TEST_GFAL_GUID_FILE_STAT_OK, &buff); assert_true_with_message(res ==0 && errno==0 && gfal_posix_code_error()==0, " must be a success %d %d %d", res, errno, gfal_posix_code_error()); assert_true_with_message( buff.st_mode == TEST_GFAL_LFC_FILE_STAT_MODE_VALUE && buff.st_uid==TEST_GFAL_LFC_FILE_STAT_UID_VALUE && buff.st_gid==TEST_GFAL_LFC_FILE_STAT_GID_VALUE, " this is not the correct value for the lfc stat mode %o, uid %d, gid %d, size %d", buff.st_mode, buff.st_uid, buff.st_gid, buff.st_size); gfal_posix_clear_error(); res = gfal_lstat(TEST_GUID_NOEXIST_ACCESS, &buff); assert_true_with_message( res == -1 && gfal_posix_code_error() == ENOENT && errno== ENOENT, " must be an invalid stat %d %d %d ", res, gfal_posix_code_error(), errno); gfal_posix_clear_error(); } void gfal2_test__gfal_posix_lstat_local() { errno =0; struct stat buff; memset(&buff,0, sizeof(struct stat)); system(TEST_GFAL_LOCAL_STAT_COMMAND); system(TEST_GFAL_LOCAL_LINK_COMMAND); int res = gfal_lstat(TEST_GFAL_LOCAL_STAT_OK, &buff); assert_true_with_message(res ==0 && errno==0 && gfal_posix_code_error()==0, " must be a success %d %d %d", res, errno, gfal_posix_code_error()); gfal_posix_clear_error(); res = gfal_lstat(TEST_GFAL_LOCAL_LINK_OK, &buff); assert_true_with_message(res ==0 && errno==0 && gfal_posix_code_error()==0, " must be a success %d %d %d", res, errno, gfal_posix_code_error()); gfal_posix_clear_error(); res = gfal_lstat(TEST_GFAL_LOCAL_STAT_NONEXIST, &buff); assert_true_with_message( res == -1 && gfal_posix_code_error() == ENOENT && errno== ENOENT, " must be an invalid stat"); gfal_posix_clear_error(); gfal_posix_clear_error(); } void gfal2_test__gfal_posix_lstat_srm() { struct stat buff; memset(&buff,0, sizeof(struct stat)); #if USE_MOCK create_srm_stat_env_mock(); #endif int res = gfal_lstat(TEST_GFAL_SRM_FILE_STAT_OK, &buff); assert_true_with_message(res ==0 && errno==0 && gfal_posix_code_error()==0, " must be a success %d %d %d", res, errno, gfal_posix_code_error()); assert_true_with_message(buff.st_mode == TEST_GFAL_SRM_FILE_STAT_MODE_VALUE && buff.st_uid == TEST_GFAL_SRM_FILE_STAT_UID_VALUE && buff.st_gid == TEST_GFAL_SRM_FILE_STAT_GID_VALUE, "this is not the correct value for the srm stat mode %o, uid %d, gid %d, size %d", buff.st_mode, buff.st_uid, buff.st_gid, buff.st_size); gfal_posix_check_error(); #if USE_MOCK create_srm_stat_env_mock_noent(); #endif res = gfal_lstat(TEST_GFAL_SRM_FILE_STAT_NONEXIST, &buff); assert_true_with_message( res == -1 && gfal_posix_code_error() == ENOENT && errno== ENOENT, " must be an invalid lstat"); gfal_posix_clear_error(); } gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_opendir.c0000644000175000017500000002446112164561703024341 0ustar ellertellert /* unit test for opendir/readdir/closedir func */ #include #include #include #include #include #include #include #include #include #include #include #include #include "../unit_test_constants.h" #include "../mock/gfal_srm_mock_test.h" #include "common/gfal__test_common_srm.h" void test_mock_srm_opendir_enoent(char* surl){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); setup_mock_srm(); if( gfal_check_GError(&mock_err)) return; define_mock_endpoints(TEST_SRM_DPM_FULLENDPOINT_URL); define_mock_stat_file_valid(TEST_GFAL_SRM_FILE_STAT_OK, TEST_GFAL_SRM_FILE_STAT_MODE_VALUE, TEST_GFAL_SRM_FILE_STAT_UID_VALUE, TEST_GFAL_SRM_FILE_STAT_GID_VALUE); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); char* surls[] = { surl, NULL }; char* expl[] = { "nawak", NULL }; int status[] = { ENOENT, 0 }; define_mock_srmv2_filestatus(1, surls, expl, NULL, status); will_respond(srm_mock_srm_check_permission, 1, want_non_null(context), want_non_null(input), want_non_null(output)); #endif } void test_mock_srm_opendir_eacces(char* surl){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); setup_mock_srm(); if( gfal_check_GError(&mock_err)) return; define_mock_endpoints(TEST_SRM_DPM_FULLENDPOINT_URL); define_mock_stat_file_valid(TEST_GFAL_SRM_FILE_STAT_OK, TEST_GFAL_SRM_FILE_STAT_MODE_VALUE, TEST_GFAL_SRM_FILE_STAT_UID_VALUE, TEST_GFAL_SRM_FILE_STAT_GID_VALUE); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); char* surls[] = { surl, NULL }; char* expl[] = { "nawak", NULL }; int status[] = { EACCES, 0 }; define_mock_srmv2_filestatus(1, surls, expl, NULL, status); will_respond(srm_mock_srm_check_permission, 1, want_non_null(context), want_non_null(input), want_non_null(output)); #endif } void test_mock_srm_opendir_valid(char* surl){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); setup_mock_srm(); if( gfal_check_GError(&mock_err)) return; define_mock_endpoints(TEST_SRM_DPM_FULLENDPOINT_URL); define_mock_stat_file_valid(TEST_GFAL_SRM_FILE_STAT_OK, TEST_GFAL_SRM_FILE_STAT_MODE_VALUE, TEST_GFAL_SRM_FILE_STAT_UID_VALUE, TEST_GFAL_SRM_FILE_STAT_GID_VALUE); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); char* surls[] = { surl, NULL }; char* turl[] = { "nawak", NULL }; int status[] = { 0, 0 }; define_mock_srmv2_filestatus(1, surls, NULL, turl, status); will_respond(srm_mock_srm_check_permission, 1, want_non_null(context), want_non_null(input), want_non_null(output)); #endif } void test_mock_srm_readdir_valid(char** surls, mode_t* modes, uid_t* uids, gid_t* gids, int n){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); setup_mock_srm(); if( gfal_check_GError(&mock_err)) return; define_mock_stat_file_valid(TEST_GFAL_SRM_FILE_STAT_OK, TEST_GFAL_SRM_FILE_STAT_MODE_VALUE, TEST_GFAL_SRM_FILE_STAT_UID_VALUE, TEST_GFAL_SRM_FILE_STAT_GID_VALUE); define_mock_readdir_file_valid(surls, modes, uids, gids, n); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); will_respond(srm_mock_srm_ls, 0, want_non_null(context), want_non_null(inut), want_non_null(output)); #endif } void test_mock_lfc_opendir(){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); if( gfal_check_GError(&mock_err)) return; #endif } void test_mock_lfc_opendir_enoent_eaccess_valid(char* enoent, char* eaccess, char* valid){ #if USE_MOCK test_mock_lfc_opendir(); will_respond(lfc_mock_opendir, -ENOENT, want_string(path, enoent+4)); will_respond(lfc_mock_opendir, -EACCES, want_string(path, eaccess+4)); will_respond(lfc_mock_opendir, 5, want_string(path, valid+4)); will_respond(lfc_mock_closedir, 0, want_non_null(dir)); //will_respond(lfc_mock_closedir, EBADF, want_non_null(dir)); -> filter by map always_respond(lfc_mock_opendir, EINVAL); #endif } void test_mock_lfc_readdir(char* valid, GList* str_list){ #if USE_MOCK test_mock_lfc_opendir(); will_respond(lfc_mock_opendir, 5, want_string(path, valid+4)); will_respond(lfc_mock_closedir, 0, want_non_null(dir)); do{ struct Cns_direnstat* p = malloc(sizeof(struct Cns_direnstat)*1+ 256*sizeof(char)); memset(p, 0,sizeof(struct Cns_direnstat)); g_strlcpy(p->d_name,str_list->data, 256 ); will_respond(lfc_mock_readdirx, p, want_non_null(dir)); }while( (str_list= g_list_next(str_list)) != NULL); will_respond(lfc_mock_readdirx, 0, want_non_null(dir)); always_respond(lfc_mock_opendir, EINVAL); #endif } void test__opendir_generic_test_simple(char* enoent, char* eaccess, char* valid){ DIR* d; if(enoent != NULL){ gfal_posix_clear_error(); d = gfal_opendir(enoent); assert_true_with_message(d== NULL && gfal_posix_code_error() == ENOENT && errno == ENOENT, " error, must be a non existing dir %ld %d %d",d,gfal_posix_code_error(), errno); } if(eaccess != NULL){ gfal_posix_clear_error(); d = gfal_opendir(eaccess); assert_true_with_message(d== NULL && gfal_posix_code_error() == EACCES && errno == EACCES, "error, must be a non accessible dir %ld %d %d",d,gfal_posix_code_error(), errno); gfal_posix_clear_error(); } if(valid != NULL){ d = gfal_opendir(valid); assert_true_with_message(d !=NULL && gfal_posix_code_error() == 0 && errno == 0, "error, must be a valid dir %ld %d %d",d,gfal_posix_code_error(), errno); int ret = gfal_closedir(d); assert_true_with_message(ret ==0 && gfal_posix_code_error() == 0 && errno ==0, " must be a valid closedir %d %d %d", ret,gfal_posix_code_error(), errno); ret = gfal_closedir(d); assert_true_with_message(ret !=0 && gfal_posix_code_error() != 0 && errno !=0, " must be a valid closedir %d %d %d", ret,gfal_posix_code_error(), errno); gfal_posix_clear_error(); } } void test__readdir_generic_test_simple(char * folder, GList* list_dir){ DIR* d = gfal_opendir(folder); assert_true_with_message(d != NULL && gfal_posix_code_error() == 0 && errno == 0, " error, must be an existing dir %ld %d %d",d,gfal_posix_code_error(), errno); if(gfal_posix_check_error()) return; int count=0; struct dirent* dirs; do{ dirs = gfal_readdir(d); if(dirs != NULL){ GList* tmpl = list_dir; gboolean res = FALSE; while( tmpl != NULL){ if(strcmp(dirs->d_name, tmpl->data) ==0){ res = TRUE; break; } tmpl = g_list_next(tmpl); } assert_true_with_message( res, " must contain the dir name : %s", dirs->d_name); count++; }else{ assert_true_with_message(dirs == NULL && gfal_posix_code_error() == 0 && errno ==0, " error, must be the end of the dir list %ld %d %d",dirs,gfal_posix_code_error(), errno); } } while(dirs != NULL); assert_true_with_message(g_list_length(list_dir) == count, " must return the good number of directories"); int ret = gfal_closedir(d); assert_true_with_message(ret ==0 && gfal_posix_code_error() ==0 && errno==0, " must be a valid closedir %d %d %d", ret,gfal_posix_code_error(), errno); dirs = gfal_readdir(d); assert_true_with_message(dirs == NULL && gfal_posix_code_error() ==EBADF && errno==EBADF, " must be a valid closedir %d %d %d", ret,gfal_posix_code_error(), errno); gfal_posix_clear_error(); } void gfal2_test__opendir_posix_local_simple() { system(TEST_LOCAL_OPENDIR_COMMAND); test__opendir_generic_test_simple(TEST_LOCAL_OPENDIR_OPEN_INVALID, TEST_LOCAL_OPENDIR_OPEN_NOACCESS, TEST_LOCAL_OPENDIR_OPEN); } void gfal2_test__opendir_posix_lfc_simple() { test_mock_lfc_opendir_enoent_eaccess_valid(TEST_LFC_OPENDIR_OPEN_INVALID, TEST_LFC_OPENDIR_OPEN_NOACCESS, TEST_LFC_OPENDIR_OPEN); test__opendir_generic_test_simple(TEST_LFC_OPENDIR_OPEN_INVALID, TEST_LFC_OPENDIR_OPEN_NOACCESS, TEST_LFC_OPENDIR_OPEN); } void gfal2_test__readdir_posix_local_simple() { gfal_posix_clear_error(); system(TEST_LOCAL_READDIR_CREATE_COMMAND); GList* list_dir = g_list_append(NULL, TEST_LOCAL_READDIR_1); list_dir = g_list_append(list_dir, ".."); list_dir = g_list_append(list_dir, TEST_LOCAL_READDIR_3); list_dir = g_list_append(list_dir, TEST_LOCAL_READDIR_2); list_dir = g_list_append(list_dir, TEST_LOCAL_READDIR_4); list_dir = g_list_append(list_dir, "."); test__readdir_generic_test_simple(TEST_LOCAL_READDIR_VALID, list_dir); } void gfal2_test__readdir_posix_lfc_simple() { gfal_posix_clear_error(); GList* list_dir = g_list_append(NULL, TEST_LFC_READDIR_1); list_dir = g_list_append(list_dir, TEST_LFC_READDIR_2); list_dir = g_list_append(list_dir, TEST_LFC_READDIR_3); list_dir = g_list_append(list_dir, TEST_LFC_READDIR_4); test_mock_lfc_readdir(TEST_LFC_READDIR_VALID, list_dir); test__readdir_generic_test_simple(TEST_LFC_READDIR_VALID, list_dir); } void gfal2_test__opendir_posix_srm_simple_mock() { test_mock_srm_opendir_enoent(TEST_SRML_OPENDIR_ENOENT); test__opendir_generic_test_simple(TEST_SRML_OPENDIR_ENOENT, NULL, NULL); test_mock_srm_opendir_eacces(TEST_SRML_OPENDIR_EACCESS); test__opendir_generic_test_simple(NULL, TEST_SRML_OPENDIR_EACCESS, NULL); test_mock_srm_opendir_valid(TEST_SRM_OPENDIR_OPEN); test__opendir_generic_test_simple(NULL, NULL, TEST_SRM_OPENDIR_OPEN); } void gfal2_test__readdir_posix_srm_simple_mock() { int n = 4; char* surls[] = { TEST_SRM_READDIR_1, TEST_SRM_READDIR_2, TEST_SRM_READDIR_3, TEST_SRM_READDIR_4 }; unsigned int none[] = { 0, 0, 0, 0 }; gfal_posix_clear_error(); test_mock_srm_opendir_valid(TEST_SRM_READDIR_VALID); test_mock_srm_readdir_valid(surls, none, none, none, n) ; GList* list_dir = g_list_append(NULL, TEST_SRM_READDIR_1); list_dir = g_list_append(list_dir, TEST_SRM_READDIR_2); list_dir = g_list_append(list_dir, TEST_SRM_READDIR_3); list_dir = g_list_append(list_dir, TEST_SRM_READDIR_4); test__readdir_generic_test_simple(TEST_SRM_READDIR_VALID, list_dir); } gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_xattr.c0000644000175000017500000001051712164561703024040 0ustar ellertellert /* unit test for posix getxattr func */ #include #include #include #include #include #include #include #include #include #include "gfal_posix_api.h" #include "gfal_posix_internal.h" #include #include #include #include #include void gfal2_test_getxattr_guid(const char* good_lfn, const char* guid, const char* enoent_lfn, const char* eaccess_lfn); void gfal2_test_getxattr_status(const char* good_url, const char* status, const char* enoent_url, const char* eaccess_url); void init_mock_srm_getxattr(){ setup_mock_lfc(); setup_mock_srm(); } void gfal2_test_getxattr_guid_lfn_base(){ gfal2_test_getxattr_guid(TEST_LFC_OPEN_EXIST, TEST_GUID_ONLY_READ_ACCESS+5, TEST_LFC_OPEN_NOEXIST, TEST_LFC_OPEN_NOACCESS); } void gfal2_test_getxattr_guid(const char* good_lfn, const char* guid, const char* enoent_lfn, const char* eaccess_lfn){ int ret; init_mock_srm_getxattr(); char buffer[2048] = {0}; add_mock_error_lfc_guid_resolution(enoent_lfn, ENOENT); ret = gfal_getxattr(enoent_lfn, GFAL_XATTR_GUID, buffer, 2048); assert_true_with_message(ret < 0 && errno==ENOENT && gfal_posix_code_error()==ENOENT, " must be a enoent %d %d %d",ret,errno, gfal_posix_code_error() ); gfal_posix_clear_error(); add_mock_error_lfc_guid_resolution(eaccess_lfn, EACCES); ret = gfal_getxattr(eaccess_lfn, GFAL_XATTR_GUID, buffer, 2048); assert_true_with_message(ret < 0 && errno==EACCES && gfal_posix_code_error()==EACCES, " must be a eacces %d %d %d",ret,errno, gfal_posix_code_error() ); gfal_posix_clear_error(); ret = gfal_getxattr(good_lfn, GFAL_XATTR_GUID, NULL, 0); assert_true_with_message(ret > 0 && errno==0 && gfal_posix_code_error()==0 && buffer[0] == '\0', " must be an empty buffer %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_check_error(); add_mock_valid_lfc_guid_resolution(good_lfn, guid); ret = gfal_getxattr(good_lfn, GFAL_XATTR_GUID, buffer, 2048); assert_true_with_message(ret > 0 && errno==0 && gfal_posix_code_error()==0 , " must be a success %d %d %d ", ret, errno, gfal_posix_code_error()); assert_true_with_message(strcmp(buffer, guid) == 0, "invalid value return %s %s", buffer, guid); gfal_posix_check_error(); gfal_posix_clear_error(); } void gfal2_test_getxattr_status_srm_base(){ gfal2_test_getxattr_status(TEST_SRM_OPEN_EXIST, GFAL_XATTR_STATUS_ONLINE, TEST_SRM_OPEN_NOEXIST, TEST_SRM_OPEN_NOACCESS); } /** * * test for the extended attribute status on a srm file ( bringsonline ) */ void gfal2_test_getxattr_status(const char* good_url, const char* status, const char* enoent_url, const char* eaccess_url){ int ret; init_mock_srm_getxattr(); char buffer[2048] = {0}; add_mock_srm_ls_error(enoent_url, TEST_SRM_DPM_FULLENDPOINT_URL, ENOENT, " enoent error "); ret = gfal_getxattr(enoent_url, GFAL_XATTR_STATUS, buffer, 2048); assert_true_with_message(ret < 0 && errno==ENOENT && gfal_posix_code_error()==ENOENT, " must be a enoent %d %d %d",ret,errno, gfal_posix_code_error() ); gfal_posix_clear_error(); add_mock_srm_ls_error(enoent_url, TEST_SRM_DPM_FULLENDPOINT_URL, EACCES, " eacces error "); ret = gfal_getxattr(eaccess_url, GFAL_XATTR_STATUS, buffer, 2048); assert_true_with_message(ret < 0 && errno==EACCES && gfal_posix_code_error()==EACCES, " must be a eacces %d %d %d",ret,errno, gfal_posix_code_error() ); gfal_posix_clear_error(); ret = gfal_getxattr(good_url, GFAL_XATTR_STATUS, NULL, 0); assert_true_with_message(ret > 0 && errno==0 && gfal_posix_code_error()==0 && buffer[0] == '\0', " must be an empty buffer %d %d %d", ret, errno, gfal_posix_code_error()); gfal_posix_check_error(); add_mock_srm_ls_locality_valid(good_url, TEST_SRM_DPM_FULLENDPOINT_URL, GFAL_LOCALITY_ONLINE_); ret = gfal_getxattr(good_url, GFAL_XATTR_STATUS, buffer, 2048); assert_true_with_message(ret > 0 && errno==0 && gfal_posix_code_error()==0 , " must be a success %d %d %d ", ret, errno, gfal_posix_code_error()); assert_true_with_message(strcmp(buffer, status) == 0, "invalid value return %s %s", buffer, status); gfal_posix_check_error(); gfal_posix_clear_error(); } gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_read.c0000644000175000017500000001305512164561703023611 0ustar ellertellert /* unit test for posix open func */ #include #include #include #include #include #include #include #include "../mock/gfal_rfio_mock_test.h" #include "../unit_test_constants.h" #include "test__gfal_posix_open.h" void test_mock_read_posix_srm(const char* content){ #if USE_MOCK char* tab[]= { TEST_SRM_VALID_SURL_EXAMPLE1, NULL }; char* tab_turl[] = { TEST_SRM_TURL_EXAMPLE1, NULL }; int res[] = { 0, 0 }; strcpy(defined_buff_read, content); defined_buff_read_size = strlen(content)+1; will_respond(rfio_mock_read, strlen(content), want_non_null(buff), want_non_null(size), want_non_null(fd)); test_mock_srm_open_valid(tab, tab_turl, res); #endif } void test_mock_pread_posix_srm(const char* content, off_t off){ #if USE_MOCK char* tab[]= { TEST_SRM_VALID_SURL_EXAMPLE1, NULL }; char* tab_turl[] = { TEST_SRM_TURL_EXAMPLE1, NULL }; int res[] = { 0, 0 }; strcpy(defined_buff_read, content); defined_buff_read_size = strlen(content)+1; will_respond(rfio_mock_read, strlen(content), want_non_null(buff), want_non_null(size), want_non_null(fd)); will_respond(rfio_mock_lseek, off, want_non_null(fd), want(offset, off), want(whence, SEEK_SET)); test_mock_srm_open_valid(tab, tab_turl, res); #endif } void test_mock_read_posix_lfc(const char * url, const char* filename){ #if USE_MOCK strcpy(defined_buff_read, filename); defined_buff_read_size = strlen(filename)+1; will_respond(rfio_mock_read, strlen(filename), want_non_null(buff), want_non_null(size), want_non_null(fd)); test_mock_lfc_open_valid(url); #endif } void test_mock_read_posix_guid(const char* guid1, const char* filename){ #if USE_MOCK strcpy(defined_buff_read, filename); defined_buff_read_size = strlen(filename)+1; will_respond(rfio_mock_read, strlen(filename), want_non_null(buff), want_non_null(size), want_non_null(fd)); test_mock_guid_open_valid(guid1); #endif } void test_generic_read_simple(char* url_exist, const char* filename){ char buff[2048]; int ret = -1; errno=0; int fd = gfal_open(url_exist, O_RDONLY, 555); assert_true_with_message(fd >0 && gfal_posix_code_error()==0 && errno==0, " must be a valid open for read %d %d %d", ret, gfal_posix_code_error(), errno); gfal_posix_check_error(); ret = gfal_read(fd, buff, strlen(TEST_SRM_FILE_CONTENT)+1); assert_true_with_message(ret >0 && gfal_posix_code_error()==0 && errno==0, " must be a valid read %d %d %d", ret, gfal_posix_code_error(), errno); assert_true_with_message(strcmp(filename, buff)==0, " must be the content of the file"); gfal_posix_check_error(); ret = gfal_close(fd); assert_true_with_message(fd !=0 && ret==0 && gfal_posix_code_error()==0 && errno==0, " must be a valid close %d %d %d", ret, gfal_posix_code_error(), errno); gfal_posix_check_error(); ret = gfal_close(fd); assert_true_with_message( ret==-1 && gfal_posix_code_error()==EBADF && errno==EBADF, " must be a bad descriptor %d %d %d", ret, gfal_posix_code_error(), errno); } // same but for vector read void test_generic_pread_simple(char* url_exist, const char* filename){ char buff[2048]; int ret = -1; errno=0; int fd = gfal_open(url_exist, O_RDONLY, 555); assert_true_with_message(fd >0 && gfal_posix_code_error()==0 && errno==0, " must be a valid open for pread %d %d %d", ret, gfal_posix_code_error(), errno); gfal_posix_check_error(); ret = gfal_pread(fd, buff, strlen(TEST_SRM_FILE_CONTENT)+1, 0); assert_true_with_message(ret >0 && gfal_posix_code_error()==0 && errno==0, " must be a valid pread %d %d %d", ret, gfal_posix_code_error(), errno); assert_true_with_message(strcmp(filename, buff)==0, " must be the content of the file"); gfal_posix_check_error(); ret = gfal_close(fd); assert_true_with_message(fd !=0 && ret==0 && gfal_posix_code_error()==0 && errno==0, " must be a valid close %d %d %d", ret, gfal_posix_code_error(), errno); gfal_posix_check_error(); ret = gfal_close(fd); assert_true_with_message( ret==-1 && gfal_posix_code_error()==EBADF && errno==EBADF, " must be a bad descriptor %d %d %d", ret, gfal_posix_code_error(), errno); } void gfal2_test_read_posix_local_simple() { system(TEST_LOCAL_OPEN_CREATE_COMMAND); test_generic_read_simple(TEST_LOCAL_OPEN_EXIST, TEST_LOCAL_READ_CONTENT); } void gfal2_test_pread_posix_local_simple() { system(TEST_LOCAL_OPEN_CREATE_COMMAND); test_generic_pread_simple(TEST_LOCAL_OPEN_EXIST, TEST_LOCAL_READ_CONTENT); } void gfal2_test_read_posix_srm_simple(){ test_mock_read_posix_srm(TEST_SRM_FILE_CONTENT); test_generic_read_simple(TEST_SRM_ONLY_READ_HELLO, TEST_SRM_FILE_CONTENT); } void gfal2_test_pread_posix_srm_simple(){ test_mock_read_posix_srm(TEST_SRM_FILE_CONTENT); test_generic_pread_simple(TEST_SRM_ONLY_READ_HELLO, TEST_SRM_FILE_CONTENT); } void gfal2_test_read_posix_lfc_simple() { test_mock_read_posix_lfc(TEST_LFC_ONLY_READ_ACCESS, TEST_SRM_FILE_CONTENT); test_generic_read_simple(TEST_LFC_ONLY_READ_ACCESS, TEST_SRM_FILE_CONTENT); } void gfal2_test_pread_posix_lfc_simple() { test_mock_read_posix_lfc(TEST_LFC_ONLY_READ_ACCESS, TEST_SRM_FILE_CONTENT); test_generic_pread_simple(TEST_LFC_ONLY_READ_ACCESS, TEST_SRM_FILE_CONTENT); } void gfal2_test_read_posix_guid_simple(){ test_mock_read_posix_guid(TEST_GUID_ONLY_READ_ACCESS, TEST_SRM_FILE_CONTENT); test_generic_read_simple(TEST_GUID_ONLY_READ_ACCESS, TEST_SRM_FILE_CONTENT); } void gfal2_test_pread_posix_guid_simple(){ test_mock_read_posix_guid(TEST_GUID_ONLY_READ_ACCESS, TEST_SRM_FILE_CONTENT); test_generic_pread_simple(TEST_GUID_ONLY_READ_ACCESS, TEST_SRM_FILE_CONTENT); } gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_write.h0000644000175000017500000000106512164561703024033 0ustar ellertellert/* * auto-generated header file for file test/posix/test__gfal_posix_write.c */ void test_mock_write_posix_lfc(const char * url, const char* filename); void test_mock_write_posix_guid(const char* guid1, const char* filename); void test_generic_write_simple(char* url_exist, const char* filename); void gfal2_test_write_posix_srm_simple(); void gfal2_test_pwrite_posix_srm_simple(); void gfal2_test_write_posix_local_simple(); void gfal2_test_pwrite_posix_local_simple(); void gfal2_test_write_posix_lfc_simple(); void test_write_posix_guid_simple(); gfal2-2.3.0/test/functional/old/posix/test__gfal_posix_rename.c0000644000175000017500000001032012164561703024135 0ustar ellertellert /* unit test for posix access func */ #include #include #include #include "../../src/common/gfal_prototypes.h" #include "../../src/common/gfal_types.h" #include "../../src/common/gfal_constants.h" #include "../unit_test_constants.h" #include #include "gfal_posix_api.h" #include void test__gfal_posix_rename_plugin() { int res = gfal_access(TEST_LFC_RENAME_VALID_SRC, F_OK); if(res !=0){ assert_true_with_message(FALSE, "source file not present on the lfc"); gfal_posix_release_error(); return; } res = gfal_rename(TEST_LFC_RENAME_VALID_SRC, TEST_LFC_RENAME_VALID_DEST); if(res !=0){ assert_true_with_message(FALSE, " this move file must be a success"); gfal_posix_release_error(); return; } res = gfal_access(TEST_LFC_RENAME_VALID_DEST, F_OK); if(res != 0){ assert_true_with_message(FALSE, "dest file must be present if corrctly moved"); gfal_posix_release_error(); return; } res = gfal_rename( TEST_LFC_RENAME_VALID_DEST, TEST_LFC_RENAME_VALID_SRC); if(res !=0){ assert_true_with_message(FALSE, " this move file must be a success"); gfal_posix_release_error(); return; } res = gfal_access(TEST_LFC_RENAME_VALID_SRC, F_OK); if(res !=0){ assert_true_with_message(FALSE, "the soruce file must be in the init position"); gfal_posix_release_error(); return; } } void test__gfal_posix_move_dir_plugin() { int res = gfal_access(TEST_LFC_MOVABLE_DIR_SRC, F_OK); if(res !=0){ assert_true_with_message(FALSE, "source dir not present on the lfc"); gfal_posix_release_error(); return; } res = gfal_rename(TEST_LFC_MOVABLE_DIR_SRC, TEST_LFC_MOVABLE_DIR_DEST); if(res !=0){ assert_true_with_message(FALSE, " this move dir must be a success"); gfal_posix_release_error(); return; } res = gfal_access(TEST_LFC_MOVABLE_DIR_DEST, F_OK); if(res !=0){ assert_true_with_message(FALSE, "dest dir not present on the lfc"); gfal_posix_release_error(); return; } res = gfal_rename(TEST_LFC_MOVABLE_DIR_DEST, TEST_LFC_MOVABLE_DIR_SRC ); if(res !=0){ assert_true_with_message(FALSE, " this move dir must be a success"); gfal_posix_release_error(); return; } res = gfal_access(TEST_LFC_MOVABLE_DIR_SRC, F_OK); if(res !=0){ assert_true_with_message(FALSE, "source dir not present on the lfc after move"); gfal_posix_release_error(); return; } } void test__gfal_posix_rename_url_check() { int res = gfal_rename( TEST_LFC_NOEXIST_ACCESS, TEST_LFC_RENAME_VALID_DEST); if(res ==0 || errno != ENOENT || gfal_posix_code_error() != ENOENT){ assert_true_with_message(FALSE, "this move dir cannot succed, src url does not exist"); gfal_posix_release_error(); return; } gfal_posix_clear_error(); res = gfal_rename( TEST_LFC_NOEXIST_ACCESS, "google.com"); if(res ==0 || errno != EPROTONOSUPPORT || gfal_posix_code_error() != EPROTONOSUPPORT){ assert_true_with_message(FALSE, "unknow protocol, must fail"); gfal_posix_release_error(); return; } } void test__gfal_posix_rename_local() { // create local file const char * msg = "hello"; char nfile[500], nfile2[500]; strcpy(nfile, "file://"); strcpy(nfile2, "file://"); FILE* f = fopen(TEST_GFAL_LOCAL_FILE_RENAME_SRC, "w+"); if(f == NULL){ assert_true_with_message(FALSE, " file must be created"); return; } fwrite(msg, sizeof(char), 5, f); fclose(f); strcat(nfile,TEST_GFAL_LOCAL_FILE_RENAME_SRC); strcat(nfile2, TEST_GFAL_LOCAL_FILE_RENAME_DEST); // create two full file url file:/// int res = gfal_access(nfile, F_OK); if(res !=0){ assert_true_with_message(FALSE, "src file not present "); gfal_posix_release_error(); return; } res = gfal_rename(nfile, nfile2); if(res !=0){ assert_true_with_message(FALSE, "must be a valid rename"); gfal_posix_release_error(); return; } res = gfal_access(nfile2, F_OK); if(res !=0){ assert_true_with_message(FALSE, "dst file not present "); gfal_posix_release_error(); return; } res = gfal_rename(nfile2, nfile); if(res !=0){ assert_true_with_message(FALSE, "must be a valid reverse-rename"); gfal_posix_release_error(); return; } res = gfal_access(nfile, F_OK); if(res !=0){ assert_true_with_message(FALSE, "src file is not present as initial "); gfal_posix_release_error(); return; } } gfal2-2.3.0/test/functional/old/externals/0000755000175000017500000000000012164561703017760 5ustar ellertellertgfal2-2.3.0/test/functional/old/externals/test_skiplist.h~0000755000175000017500000000164412164561703023240 0ustar ellertellert#pragma once /* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* unit test for the gskiplist */ #include void test_gskiplist_create_delete(); void test_gskiplist_insert_len(); void test_gskiplist_insert_multi(); void test_gskiplist_insert_search_remove();gfal2-2.3.0/test/functional/old/externals/test_skiplist.c0000644000175000017500000001136012164561703023026 0ustar ellertellert/* unit test for the gskiplist */ #include #include #include int compare_generic(gconstpointer a, gconstpointer b){ return ((a 0; ++i){ size_t init_size = gskiplist_length(gsk); // test initial size // size_t init_size = g_hash_table_size(gt); // test initial size assert_true(init_size == msize- i); gpointer value = gskiplist_remove(gsk, tab_key[i]); // add one value // gboolean ret = g_hash_table_remove(gt, tab_key[i]); // add one value assert_true(value == GINT_TO_POINTER(tab_value[i])); init_size = gskiplist_length(gsk); // test initial size // init_size = g_hash_table_size(gt); // test initial size assert_true(init_size == msize- i-1); } } //gskiplist_delete(gsk); } gfal2-2.3.0/test/functional/old/externals/test_skiplist.h0000644000175000017500000000172012164561703023032 0ustar ellertellert#pragma once /* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* unit test for the gskiplist */ #include void test_gskiplist_create_delete(); void test_gskiplist_insert_len(); void test_gskiplist_insert_multi(); void test_gskiplist_insert_search_remove(); void test_gskiplist_insert_get_clean(); gfal2-2.3.0/test/functional/old/externals/test_skiplist.c~0000755000175000017500000001136012164561703023227 0ustar ellertellert/* unit test for the gskiplist */ #include #include #include int compare_generic(gconstpointer a, gconstpointer b){ return ((a 0; ++i){ size_t init_size = gskiplist_length(gsk); // test initial size // size_t init_size = g_hash_table_size(gt); // test initial size assert_true(init_size == msize- i); gpointer value = gskiplist_remove(gsk, tab_key[i]); // add one value // gboolean ret = g_hash_table_remove(gt, tab_key[i]); // add one value assert_true(value == GINT_TO_POINTER(tab_value[i])); init_size = gskiplist_length(gsk); // test initial size // init_size = g_hash_table_size(gt); // test initial size assert_true(init_size == msize- i-1); } } //gskiplist_delete(gsk); } gfal2-2.3.0/test/functional/old/test_helpers.h0000644000175000017500000000214312164561703020625 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TEST_HELPERS_H #define _TEST_HELPERS_H #define ERRBUFSZ 1024 void helper_make_guid(char *); void helper_make_test_root(char *, int); void helper_make_surl(char *, const char *); void helper_make_lfn(char *, const char*); int helper_remove_lfn(const char*, char *, int); int helper_remove_surl(const char*, char *, int); int setenviron (const char *, const char *); int clearenviron (const char *); #endif gfal2-2.3.0/test/functional/old/common/0000755000175000017500000000000012164561703017243 5ustar ellertellertgfal2-2.3.0/test/functional/old/common/gfal__test_plugin.c0000644000175000017500000001447212164561703023104 0ustar ellertellert /* unit test for common_plugin */ #include #include #include #include #include #include #include #include #include #include "../unit_test_constants.h" #include "../mock/gfal_lfc_mock_test.h" #include "gfal__test_plugin.h" struct lfc_ops* find_lfc_ops(gfal_handle handle, GError** err){ int n = handle->plugin_opt.plugin_number; int i; gboolean found=FALSE; for(i=0; i < n; ++i){ if(strcmp(handle->plugin_opt.plugin_list[i].getName(), "lfc_plugin") == 0){ found = TRUE; break; } } if(!found){ g_set_error(err, 0, EINVAL, "[gfal] [mock] unable to load and replace the ops "); return NULL; } handle->plugin_opt.plugin_list[i].plugin_data = calloc(1, sizeof(struct lfc_ops)); struct lfc_ops* ops = (struct lfc_ops*) handle->plugin_opt.plugin_list[i].plugin_data; return ops; } void gfal2_test_plugin_access_file() { GError* tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); assert_true_with_message(handle != NULL, " must init properly"); if(handle == NULL) return; gfal_plugins_instance(handle, &tmp_err); assert_true_with_message(tmp_err== NULL, " must be instance properly"); if(tmp_err) return; test_mock_lfc(handle, &tmp_err); assert_true_with_message(tmp_err== NULL, " must be mocked properly"); if(tmp_err) return; #if USE_MOCK will_respond(lfc_mock_access, 0, want_string(path, TEST_LFC_VALID_ACCESS+4), want(mode, F_OK)); will_respond(lfc_mock_access, ENOENT, want_string(path, TEST_LFC_NOEXIST_ACCESS+4), want(mode, F_OK)); always_return(lfc_mock_access, EINVAL); #endif int ret = gfal_plugins_accessG(handle, TEST_LFC_VALID_ACCESS, F_OK, &tmp_err); assert_true_with_message(ret == 0, " must be a valid access"); ret = gfal_plugins_accessG(handle, TEST_LFC_NOEXIST_ACCESS, F_OK, &tmp_err); assert_true_with_message(ret!=0 && tmp_err!=NULL && tmp_err->code == ENOENT, " must be a non-existing file %d %ld %d", (int)ret, (long)tmp_err, (int) (tmp_err)?(tmp_err->code):0); g_clear_error(&tmp_err); gfal_handle_freeG(handle); } void gfal2_test_plugin_url_checker() { GError* tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); if(handle == NULL){ assert_true_with_message(FALSE, " must init properly"); gfal_release_GError(&tmp_err); return; } int ret = gfal_plugins_accessG(handle, TEST_LFC_URL_SYNTAX_ERROR, F_OK, &tmp_err); if(ret ==0 || tmp_err->code != EPROTONOSUPPORT){ assert_true_with_message(FALSE, " must be an invalid protocol"); gfal_release_GError(&tmp_err); return; } g_clear_error(&tmp_err); gfal_handle_freeG(handle); } void gfal2_test__plugin_stat() { struct stat resu; memset(&resu, 0, sizeof(struct stat)); GError* tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); if(handle == NULL){ assert_true_with_message(FALSE, " must init properly"); gfal_release_GError(&tmp_err); return; } gfal_plugins_instance(handle, &tmp_err); assert_true_with_message(tmp_err==NULL, " must be a valid instance call"); if(tmp_err) return; test_mock_lfc(handle, &tmp_err); assert_true_with_message(tmp_err==NULL, " must be a valid mock call"); if(tmp_err) return; #if USE_MOCK struct lfc_filestatg f; f.filemode = TEST_GFAL_LFC_FILE_STAT_MODE_VALUE; f.uid = TEST_GFAL_LFC_FILE_STAT_UID_VALUE ; f.gid=TEST_GFAL_LFC_FILE_STAT_GID_VALUE ; will_respond(lfc_mock_statg, 0, want_string(lfn, TEST_GFAL_LFC_FILE_STAT_OK+4)); defined_filestatg = &f; will_respond(lfc_mock_statg, ENOENT, want_string(lfn, TEST_GFAL_LFC_FILE_STAT_NONEXIST+4)); always_return(lfc_mock_statg, EINVAL); #endif int ret = gfal_plugin_statG(handle, TEST_GFAL_LFC_FILE_STAT_OK, &resu, &tmp_err); assert_true_with_message(ret==0 && tmp_err==NULL, " must be a success statg"); assert_true_with_message(resu.st_mode == TEST_GFAL_LFC_FILE_STAT_MODE_VALUE && resu.st_gid== TEST_GFAL_LFC_FILE_STAT_GID_VALUE && resu.st_uid==TEST_GFAL_LFC_FILE_STAT_UID_VALUE, " invalid params in the statg resu %o %d %d", resu.st_mode, resu.st_gid,resu.st_uid ); g_clear_error(&tmp_err); //g_printerr(" extract from the stat struct : right : %o, owner : %d, group : %d, size : %lu", resu.st_mode, resu.st_uid, resu.st_gid, resu.st_size); ret = gfal_plugin_statG(handle, TEST_GFAL_LFC_FILE_STAT_NONEXIST, &resu, &tmp_err); assert_true_with_message(ret!= 0 && tmp_err!= NULL && tmp_err->code ==ENOENT, " must be a failure %d %d", ret, tmp_err); g_clear_error(&tmp_err); gfal_handle_freeG(handle); } void gfal2_test__plugin_lstat() { struct stat resu; memset(&resu, 0, sizeof(struct stat)); GError* tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); assert_true_with_message(handle != NULL, " must init properly"); if(handle == NULL) return; gfal_plugins_instance(handle, &tmp_err); assert_true_with_message(tmp_err==NULL, " must be a valid instance call"); if(tmp_err) return; test_mock_lfc(handle, &tmp_err); assert_true_with_message(tmp_err==NULL, " must be a valid mock call"); if(tmp_err) return; #if USE_MOCK struct lfc_filestat f; f.filemode = TEST_GFAL_LFC_FILE_STAT_MODE_VALUE; f.uid = TEST_GFAL_LFC_FILE_STAT_UID_VALUE ; f.gid=TEST_GFAL_LFC_FILE_STAT_GID_VALUE ; will_respond(lfc_mock_lstatg, 0, want_string(lfn, TEST_GFAL_LFC_FILE_STAT_OK+4)); defined_filestat = &f; will_respond(lfc_mock_lstatg, 0, want_string(lfn, TEST_GFAL_LFC_LINK_STAT_OK+4)); defined_filestat = &f; will_respond(lfc_mock_lstatg, ENOENT, want_string(lfn, TEST_GFAL_LFC_FILE_STAT_NONEXIST+4)); always_return(lfc_mock_lstatg, EINVAL); #endif int ret = gfal_plugin_lstatG(handle, TEST_GFAL_LFC_FILE_STAT_OK, &resu, &tmp_err); assert_true_with_message(ret==0 && tmp_err==NULL, " must be a success convertion"); ret = gfal_plugin_lstatG(handle, TEST_GFAL_LFC_LINK_STAT_OK, &resu, &tmp_err); assert_true_with_message(ret==0 && tmp_err==NULL, " must be a success convertion"); //g_printerr(" extract from the stat struct : right : %o, owner : %d, group : %d, size : %lu", resu.st_mode, resu.st_uid, resu.st_gid, resu.st_size); ret = gfal_plugin_lstatG(handle, TEST_GFAL_LFC_FILE_STAT_NONEXIST, &resu, &tmp_err); assert_true_with_message(ret != 0 && tmp_err!=NULL && tmp_err->code == ENOENT, " must be a failure"); g_clear_error(&tmp_err); gfal_handle_freeG(handle); } gfal2-2.3.0/test/functional/old/common/mds/0000755000175000017500000000000012164561703020026 5ustar ellertellertgfal2-2.3.0/test/functional/old/common/mds/gfal__test_common_mds.c0000644000175000017500000001002712164561703024514 0ustar ellertellert /* unit test for common_mds*/ #include #include #include #include #include #include #include #include #include #include #include #include #include "../../unit_test_constants.h" #include "../../mock/gfal_mds_mock_test.h" void gfal2_test_check_bdii_endpoints_srm() { char **se_types=NULL; char **se_endpoints=NULL; GError * err=NULL; int ret=-1; char* endpoints[] = { TEST_MDS_VALID_ENDPOINT_URL, NULL }; char** ptr = endpoints; gfal_context_t c = gfal_context_new(&err); g_assert(err == NULL); g_assert(c != NULL); while(*ptr != NULL){ se_types=NULL; se_endpoints=NULL; ret = gfal_mds_get_se_types_and_endpoints (c, *ptr, &se_types, &se_endpoints, &err); assert_true_with_message(ret == 0, " ret of bdii with error %d %d", ret, errno); assert_true_with_message(ret == 0 && ((strings_are_equal(*se_types, "srm_v1") && strstr(*se_endpoints, TEST_MDS_VALID_ENDPOINT_RESU_1) != NULL) || (strings_are_equal(*(se_types+1), "srm_v1") && strstr(*(se_endpoints+1), TEST_MDS_VALID_ENDPOINT_RESU_1) != NULL)) , " check if ountain first value "); g_strfreev(se_types); g_strfreev(se_endpoints); g_clear_error(&err); ptr++; } se_types=NULL; se_endpoints=NULL; ret = gfal_mds_get_se_types_and_endpoints (c, TEST_MDS_INVALID_ENDPOINT_URL, &se_types, &se_endpoints, &err); assert_true_with_message(ret != 0 && err->code == ENXIO , "must fail, invalid url"); g_clear_error(&err); g_strfreev(se_types); g_strfreev(se_endpoints); gfal_context_free(c); } void gfal2_gfal2_test_check_bdii_endpoints_srm_ng() { gfal_mds_endpoint tabendpoint[100]; GError * err=NULL; int ret=-1; int i; char* endpoints[] = { TEST_MDS_VALID_ENDPOINT_URL, NULL }; char** ptr = endpoints; gfal_context_t c = gfal_context_new(&err); g_assert(err == NULL); g_assert(c != NULL); while(*ptr != NULL){ ret = gfal_mds_resolve_srm_endpoint(c, *ptr, tabendpoint, 100, &err); assert_true_with_message(ret > 0, " ret of bdii with error %d %d ", ret, errno); if(err) gfal_release_GError(&err); else{ gboolean countain = FALSE; for(i =0; i < ret; ++i){ countain = (strstr(tabendpoint[i].url, TEST_MDS_VALID_ENDPOINT_RESU_2) != NULL)?TRUE:countain; } assert_true_with_message(countain, " must countain the endpoint "); } ptr++; } ret = gfal_mds_resolve_srm_endpoint (c, TEST_MDS_INVALID_ENDPOINT_URL, tabendpoint, 100, &err); assert_true_with_message(ret < 0 && err->code == ENXIO , "must fail, invalid url"); g_clear_error(&err); gfal_context_free(c); } void gfal__test_get_lfchost_bdii() { GError* tmp_err =NULL; errno = 0; gfal_handle handle = gfal_initG(&tmp_err); assert_true_with_message(handle !=NULL && tmp_err == NULL, "Error while init handle"); if(tmp_err) return; #if USE_MOCK #endif char* lfc = gfal_get_lfchost_bdii(handle, &tmp_err); assert_true_with_message(lfc!=NULL && strings_are_equal(lfc, "avalid.lfc.value.fr"), "must return correct lfc value"); gfal_check_GError(&tmp_err); lfc = gfal_get_lfchost_bdii(handle, &tmp_err); assert_true_with_message(lfc== NULL, "must return correct lfc value"); g_clear_error(&tmp_err); free(lfc); gfal_handle_freeG(handle); } void gfal__test_get_lfchost_bdii_with_nobdii() { GError* tmp_err =NULL; errno = 0; gfal_handle handle = gfal_initG(&tmp_err); assert_true_with_message(tmp_err==NULL, "Error while init handle"); if(tmp_err) return; gfal_set_nobdiiG(handle, TRUE); #if USE_MOCK #endif char* lfc = gfal_get_lfchost_bdii(handle, &tmp_err); // No bdii connected assert_true_with_message(lfc == NULL && tmp_err != NULL && tmp_err->code== EPROTONOSUPPORT, " must return an error, nobdii option checked"); //g_printerr(" lfc name : %s ", lfc); free(lfc); g_clear_error(&tmp_err); gfal_handle_freeG(handle); } gfal2-2.3.0/test/functional/old/common/mds/gfal__test_common_mds.h0000644000175000017500000000042312164561703024520 0ustar ellertellert/* * auto-generated header file for file test/common/mds/gfal__test_common_mds.c */ void gfal2_test_check_bdii_endpoints_srm(); void gfal2_gfal2_test_check_bdii_endpoints_srm_ng(); void gfal__test_get_lfchost_bdii(); void gfal__test_get_lfchost_bdii_with_nobdii(); gfal2-2.3.0/test/functional/old/common/gfal__test_common_dir_file_descriptor.h0000644000175000017500000000030212164561703027161 0ustar ellertellert/* * auto-generated header file for file test/common/gfal__test_common_dir_file_descriptor.c */ void gfal2_test__dir_file_descriptor_low(); void gfal2_test__dir_file_descriptor_high(); gfal2-2.3.0/test/functional/old/common/.giosaveOGL9ZV0000644000175000017500000000000012164561703021602 0ustar ellertellertgfal2-2.3.0/test/functional/old/common/gfal__test_verbose.c0000644000175000017500000000203712164561703023245 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* unit test for common_errverbose */ #include #include "gfal_common_errverbose.h" // stupid test for library link test void gfal2_test_verbose_set_get() { gfal_set_verbose(GFAL_VERBOSE_DEBUG); int r = gfal_get_verbose(); assert_true_with_message(r==GFAL_VERBOSE_DEBUG, " verbose set /get failed, must be the same value"); } gfal2-2.3.0/test/functional/old/common/rfio/0000755000175000017500000000000012164561703020202 5ustar ellertellertgfal2-2.3.0/test/functional/old/common/rfio/test__gfal_rfio_plugin.c0000644000175000017500000000327312164561703025057 0ustar ellertellert/* * lfc test file * * */ #include #include #include #include #include #include #include #include #include #include "../../unit_test_constants.h" #include "test__gfal_rfio_plugin.h" static struct rfio_proto_ops rf = { .open = rfio_mock_open, .read = rfio_mock_read, .write = rfio_mock_write, .close= rfio_mock_close, .lseek = rfio_mock_lseek, }; struct rfio_proto_ops * gfal_rfio_mock_loader(GError** err){ return &rf; } void test_rfio_mock_all(){ gfal_rfio_internal_loader= gfal_rfio_mock_loader; } void gfal2_test_load_plugin(){ GError* err=NULL; gfal_handle handle = gfal_initG(&err); assert_true_with_message(handle != NULL, " handle is not properly allocated"); assert_true_with_message(err==NULL, " error must be NULL"); if(handle==NULL) return; char** res = gfal_plugins_get_list(handle, &err); assert_true_with_message(err==NULL, " error must be NULL"); int i; gboolean valid = FALSE; for(i=0; res[i] != NULL; ++i) valid = (strcmp(res[i], "rfio")==0)?TRUE:valid; assert_true_with_message(valid, " error must be a loaded plugin"); g_strfreev(res); gfal_handle_freeG(handle); } void test_check_turl_rfio(){ GError* tmp_err=NULL; gboolean b = gfal_rfio_internal_check_url(TEST_SRM_RFIO_EXAMPLE1, &tmp_err); assert_true_with_message(b && tmp_err==NULL, " must be a valid url"); b= gfal_rfio_internal_check_url(TEST_SRM_ONLY_READ_ACCESS, &tmp_err); assert_true_with_message(b==FALSE && tmp_err==NULL, " must be a invalid url"); } gfal2-2.3.0/test/functional/old/common/rfio/test__gfal_rfio_plugin.h0000644000175000017500000000035512164561703025062 0ustar ellertellert#pragma once /* * auto-generated header file for file test/common/rfio/test__gfal_rfio_plugin.c */ #include "../../mock/gfal_rfio_mock_test.h" void gfal2_test_load_plugin(); void test_rfio_load_all(); void test_rfio_mock_all(); gfal2-2.3.0/test/functional/old/common/gfal__test_common_srm.c0000644000175000017500000004473712164561703023766 0ustar ellertellert /* unit test for common_srm */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "gfal__test_plugin.h" #include "../unit_test_constants.h" #include "../mock/gfal_mds_mock_test.h" #include "../mock/gfal_srm_mock_test.h" #include "gfal__test_common_srm.h" void mock_srm_access_right_response(char* surl){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); setup_mock_srm(); if( gfal_check_GError(&mock_err)) return; gfal_plugins_instance(handle, NULL); char* surls[] = { surl, NULL }; char* turls[] = { "nawak", NULL }; int status[] = { 0, 0 }; define_mock_srmv2_filestatus(1, surls, NULL, turls, status); define_mock_endpoints(TEST_SRM_DPM_FULLENDPOINT_URL); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); will_respond(srm_mock_srm_check_permission, 1, want_non_null(context), want_non_null(statuses), want_non_null(input)); #endif } void mock_srm_access_error_response(char* surl, int merror){ #if USE_MOCK GError* mock_err=NULL; gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); test_mock_lfc(handle, &mock_err); setup_mock_srm(); if( gfal_check_GError(&mock_err)) return; char* explanation2[] = { "enoent mock", NULL }; int status2[] = { merror, 0 }; char* surls[] = { surl, NULL }; define_mock_srmv2_filestatus(1, surls, explanation2, NULL, status2); define_mock_endpoints(TEST_SRM_DPM_FULLENDPOINT_URL); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); will_respond(srm_mock_srm_check_permission, 1, want_non_null(context), want_non_null(statuses), want_non_null(input)); #endif } void test_srm_mock_chmod(char* url, int retcode){ #if USE_MOCK gfal_handle handle = gfal_posix_instance(); gfal_plugins_instance(handle,NULL); setup_mock_srm(); define_mock_endpoints(TEST_SRM_DPM_FULLENDPOINT_URL); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); will_respond(srm_mock_srm_setpermission, retcode, want_non_null(context), want_non_null(input)); #endif } void gfal2_test_create_srm_handle() { GError* err=NULL; gfal_handle handle = gfal_initG(&err); assert_true_with_message(handle != NULL, " handle is not properly allocated"); assert_true_with_message(err==NULL, " error must be NULL"); gfal_handle_freeG(handle); } void gfal2_test__gfal_convert_full_surl() { int res = -1; char buff[2048]; GError* tmp_err=NULL; res= gfal_get_fullendpointG(TEST_SRM_DPM_FULLENDPOINT_PREFIX, buff, 2048, &tmp_err); assert_true_with_message( res == 0 && strings_are_equal(buff, TEST_SRM_DPM_FULLENDPOINT_URL) && tmp_err==NULL, " must be a successfull endpoint convertion"); g_clear_error(&tmp_err); res= gfal_get_fullendpointG(TEST_SRM_DPM_FULLENDPOINT_PREFIX, buff, 2, &tmp_err); assert_true_with_message( res != 0 && tmp_err!=NULL && tmp_err->code == ENOBUFS, " must be a buffer to small"); g_clear_error(&tmp_err); } /* void test_gfal_get_async_1() { GError* err=NULL; gfal_handle handle = gfal_initG(&err); if(handle == NULL){ gfal_release_GError(&err); assert_true_with_message(FALSE, " handle fail to initiated"); } GList* list = g_list_append(NULL,"srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002"); int r = gfal_get_asyncG(handle,list,&err); if(r <0){ gfal_release_GError(&err); assert_true_with_message(FALSE, "must be a success"); return; } gfal_handle_freeG(handle); } */ void gfal2_test_gfal_full_endpoint_checkG() { GError* err = NULL; assert_true_with_message( gfal_check_fullendpoint_in_surlG( "srm://srm-pps:8443/srm/managerv2?SFN=/castor/cern.ch/grid/dteam/castordev/test-srm-pps_8443-srm2_d0t1-ed6b7013-5329-4f5b-aaba-0e1341f30663",&err) ," fail, must be a success" ); gfal_check_GError(&err); assert_true_with_message( gfal_check_fullendpoint_in_surlG("srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it", &err) == FALSE, " fail, must be a failure : bad url"); gfal_check_GError(&err); assert_true_with_message( gfal_check_fullendpoint_in_surlG( "srm://lxb5409.cern.ch:8446/srm/managerv2?SFN=/dpm/cern.ch/home/dteam/srmv2_tests/test_lfc_3897",&err) ," fail, must be a success" ); gfal_check_GError(&err); } void gfal2_test_gfal_get_endpoint_and_setype_from_bdiiG(){ GError* err= NULL; int i1; char buff_endpoint[2048]; memset(buff_endpoint, '\0', sizeof(char)*2048); enum gfal_srm_proto proto; #if USE_MOCK setup_mock_bdii(); char buff_tmp[2048]; char* p = TEST_SRM_DPM_ENDPOINT_PREFIX+ strlen(GFAL_PREFIX_SRM); g_strlcpy(buff_tmp, p, strchr(p, '/')-p+1); define_se_endpoints = calloc(sizeof(char*), 4); for(i1=0;i1 <3; ++i1) define_se_endpoints[i1]= strdup(TEST_SRM_DPM_FULLENDPOINT_URL); define_se_types= calloc(sizeof(char*), 4); char* types[] = { "srm_v1", "srm_v2", "srm_v1"}; for(i1=0;i1 <3; ++i1) define_se_types[i1]= strdup(types[i1]); #endif gfal_handle handle = gfal_initG(&err); assert_true_with_message(handle != NULL, " handle is not properly allocated"); if(handle==NULL) return; gfal_srmv2_opt opts; gfal_srm_opt_initG(&opts, handle); char* surl = TEST_SRM_DPM_ENDPOINT_PREFIX; int ret = gfal_get_endpoint_and_setype_from_bdiiG(&opts, surl, buff_endpoint, 2048, &proto, &err); assert_true_with_message( ret ==0 && err== NULL && strings_are_equal(buff_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL) && proto== PROTO_SRMv2, " must be a valid endpoint resolution"); gfal_check_GError(&err); memset(buff_endpoint, '\0', sizeof(char)*2048); ret = gfal_get_endpoint_and_setype_from_bdiiG(&opts, "srm://lxb540dfshhhh9.cern.ch:8446/test/invalid", buff_endpoint, 2048, &proto, &err); assert_true_with_message(ret != 0 && err != NULL && err->code==ENXIO && *buff_endpoint== '\0', " must fail, invalid point"); g_clear_error(&err); gfal_handle_freeG(handle); } void gfal2_test_gfal_srm_determine_endpoint_full_endpointG() { #if USE_MOCK setup_mock_bdii(); #endif GError* err = NULL; char buff_endpoint[2048]; enum gfal_srm_proto proto; gfal_handle handle = gfal_initG(&err); assert_true_with_message(handle != NULL, " handle is not properly allocated"); if(handle==NULL) return; gfal_srmv2_opt opts; gfal_srm_opt_initG(&opts, handle); int ret =-1; ret = gfal_srm_determine_endpoint(&opts, TEST_SRM_DPM_FULLENDPOINT_PREFIX, buff_endpoint, 2048, &proto, &err); assert_true_with_message( ret ==0 && err == NULL && strings_are_equal(buff_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL), " must be a succesfull endpoint determination %d %ld %s", ret, err, buff_endpoint); gfal_check_GError(&err); ret = gfal_srm_determine_endpoint(&opts, "srm://srm-pps:8443/srm/managerv2?SFN=/castor/cern.ch/grid/dteam/castordev/test-srm-pps_8443-srm2_d0t1-ed6b7013-5329-4f5b", buff_endpoint, 2048, &proto, &err); assert_true_with_message( ret ==0 && err == NULL && strings_are_equal(buff_endpoint, "httpg://srm-pps:8443/srm/managerv2"), " must be a succesfull endpoint determination 2 %d %ld %s", ret, err, buff_endpoint); gfal_check_GError(&err); gfal_handle_freeG(handle); } void gfal2_test_gfal_auto_get_srm_endpoint_full_endpoint_with_no_bdiiG() { #if USE_MOCK setup_mock_bdii(); #endif GError* err = NULL; char buff_endpoint[2048]; enum gfal_srm_proto proto; gfal_handle handle = gfal_initG(&err); assert_true_with_message(handle != NULL, " handle is not properly allocated"); if(handle==NULL) return; gfal_plugins_instance(handle, NULL); gfal_srmv2_opt opts; gfal_srm_opt_initG(&opts, handle); gfal_set_nobdiiG(handle, TRUE); int ret =-1; ret = gfal_srm_determine_endpoint(&opts, TEST_SRM_DPM_FULLENDPOINT_PREFIX, buff_endpoint, 2048, &proto, &err); assert_true_with_message( ret ==0 && err == NULL && strings_are_equal(buff_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL), " must be a succesfull endpoint determination %d %ld %s", ret, err, buff_endpoint); gfal_check_GError(&err); ret = gfal_srm_determine_endpoint(&opts, "srm://srm-pps:8443/srm/managerv2?SFN=/castor/cern.ch/grid/dteam/castordev/test-srm-pps_8443-srm2_d0t1-ed6b7013-5329-4f5b", buff_endpoint, 2048, &proto, &err); assert_true_with_message( ret ==0 && err == NULL && strings_are_equal(buff_endpoint, "httpg://srm-pps:8443/srm/managerv2"), " must be a succesfull endpoint determination 2 %d %ld %s", ret, err, buff_endpoint); gfal_check_GError(&err); memset(buff_endpoint,0, sizeof(char)*2048); ret = gfal_srm_determine_endpoint(&opts, TEST_SRM_VALID_SURL_EXAMPLE1, buff_endpoint, 2048, &proto, &err); assert_true_with_message( ret !=0 && err != NULL && err->code== EINVAL && *buff_endpoint=='\0', " must be a reported error, bdii is disable"); g_clear_error(&err); gfal_handle_freeG(handle); } void gfal2_test_gfal_srm_determine_endpoint_not_fullG() { #if USE_MOCK int i1; setup_mock_bdii(); char buff_tmp[2048]; char* p = TEST_SRM_DPM_ENDPOINT_PREFIX+ strlen(GFAL_PREFIX_SRM); g_strlcpy(buff_tmp, p, strchr(p, '/')-p+1); define_se_endpoints = calloc(sizeof(char*), 4); for(i1=0;i1 <3; ++i1) define_se_endpoints[i1]= strdup(TEST_SRM_DPM_FULLENDPOINT_URL); define_se_types= calloc(sizeof(char*), 4); char* types[] = { "srm_v1", "srm_v2", "srm_v1"}; for(i1=0;i1 <3; ++i1) define_se_types[i1]= strdup(types[i1]); #endif GError* err = NULL; char buff_endpoint[2048]; enum gfal_srm_proto proto; gfal_handle handle = gfal_initG(&err); assert_true_with_message(handle != NULL, " handle is not properly allocated"); if(handle==NULL) return; gfal_srmv2_opt opts; gfal_srm_opt_initG(&opts, handle); gfal_plugins_instance(handle, NULL); int ret =-1; ret = gfal_srm_determine_endpoint(&opts, TEST_SRM_DPM_ENDPOINT_PREFIX, buff_endpoint, 2048, &proto, &err); assert_true_with_message( ret ==0 && err == NULL && strings_are_equal(buff_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL), " must be a succesfull endpoint determination %d %ld %s", ret, err, buff_endpoint); gfal_check_GError(&err); ret = gfal_srm_determine_endpoint(&opts, "http://google.com", buff_endpoint, 2048, &proto, &err); assert_true_with_message( ret !=0 && err != NULL, "error must be reported %d %s", ret, ((err)?err->message:"")); g_clear_error(&err); gfal_handle_freeG(handle); } void gfal2_test_gfal_get_hostname_from_surl() { GError * tmp_err=NULL; char hostname[2048]; memset(hostname, '\0', 2048); int ret= gfal_get_hostname_from_surlG(TEST_SRM_VALID_SURL_EXAMPLE1, hostname, 2048, &tmp_err); assert_true_with_message( ret==0 && tmp_err==NULL && *hostname!='\0', " must be a success"); char* p = strchr(TEST_SRM_DPM_ENDPOINT_PREFIX+7, '/'); assert_true_with_message(p!=NULL, " no / contained in the url"); if(!p) return; assert_true_with_message( strncmp(TEST_SRM_DPM_ENDPOINT_PREFIX+6,hostname, p-TEST_SRM_DPM_ENDPOINT_PREFIX-7) == 0, " must be the same string"); } void gfal2_test_gfal_select_best_protocol_and_endpointG() { char endpoint[2048]; memset(endpoint, '\0', sizeof(char)*2048); enum gfal_srm_proto srm_type; GError * err= NULL; gfal_handle handle = gfal_initG(&err); assert_true_with_message(handle != NULL, " handle is not properly allocated"); if(handle==NULL) return; gfal_plugins_instance(handle, NULL); gfal_srmv2_opt opts; gfal_srm_opt_initG(&opts, handle); gfal_set_default_storageG(&opts, PROTO_SRMv2); char* endpoint_list[] = { "everest", "montblanc", NULL}; char* se_type_list[] = { "srm_v1", "srm_v2", NULL }; int ret = gfal_select_best_protocol_and_endpointG(&opts, se_type_list, endpoint_list, endpoint, 2048, &srm_type, &err); assert_true_with_message(ret ==0 && err == NULL, " must be a succefull call to the best select"); gfal_check_GError(&err); assert_true_with_message(strings_are_equal(endpoint,"montblanc"), " reponse not match correctly"); // try with another version by default gfal_set_default_storageG(&opts, PROTO_SRM); ret = gfal_select_best_protocol_and_endpointG(&opts, se_type_list, endpoint_list, endpoint, 2048, &srm_type, &err); assert_true_with_message(ret ==0 && err == NULL, " must be a succefull call to the best select"); gfal_check_GError(&err); assert_true_with_message(strings_are_equal(endpoint,"everest") , "must be a valid check"); gfal_handle_freeG(handle); } void gfal2_test_gfal_srm_getTURLS_one_success() { setup_mock_srm(); setup_mock_bdii(); int i1; #if USE_MOCK define_se_endpoints = calloc(sizeof(char*), 4); // set the response of the MDS layer for endpoint for(i1=0;i1 <3; ++i1) define_se_endpoints[i1]= strdup(TEST_SRM_DPM_FULLENDPOINT_URL); define_se_types= calloc(sizeof(char*), 4); char* types[] = { "srm_v1", "srm_v2", "srm_v1"}; for(i1=0;i1 <3; ++i1) define_se_types[i1]= strdup(types[i1]); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); defined_get_output = calloc(sizeof(struct srmv2_pinfilestatus),1); defined_get_output[0].turl= strdup(TEST_SRM_TURL_EXAMPLE1); will_respond(srm_mock_srm_prepare_to_get, 1, want_non_null(context), want_non_null(input), want_non_null(output)); always_return(srm_mock_srm_srmv2_filestatus_delete,0); always_return(srm_mock_srm_srmv2_pinfilestatus_delete,0); #endif GError* tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); assert_true_with_message(handle != NULL, " handle is not properly allocated"); if(handle==NULL) return; gfal_srmv2_opt opts; gfal_plugins_instance(handle, NULL); gfal_srm_opt_initG(&opts, handle); gfal_srm_result* resu=NULL; char* surls[] = {TEST_SRM_VALID_SURL_EXAMPLE1, NULL}; int ret = gfal_srm_getTURLS(&opts, surls, &resu, &tmp_err); assert_true_with_message(ret ==1 && resu != NULL && tmp_err == NULL, " must be a successfull request"); gfal_check_GError(&tmp_err); assert_true_with_message(resu[0].err_code == 0 && *(resu[0].err_str)== '\0' && strings_are_equal(resu[0].turl, TEST_SRM_TURL_EXAMPLE1), " must be a valid turl, maybe the turl has changed %d %ld %s",resu[0].err_code, resu[0].err_str, resu[0].turl); free(resu); gfal_handle_freeG(handle); } void gfal2_test_gfal_srm_getTURLS_bad_urls() { GError* tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); assert_true_with_message(handle != NULL, " handle is not properly allocated"); if(handle==NULL) return; gfal_srm_result* resu=NULL; gfal_srmv2_opt opts; gfal_srm_opt_initG(&opts, handle); char* surls[] = {NULL, NULL}; int ret = gfal_srm_getTURLS(&opts, surls, &resu, &tmp_err); assert_true_with_message(ret <=0 && resu == NULL && tmp_err != NULL, " must be a failure, invalid SURLs "); g_clear_error(&tmp_err); free(resu); gfal_handle_freeG(handle); } void gfal2_test_gfal_srm_getTURLS_pipeline_success() { setup_mock_srm(); setup_mock_bdii(); int i1; #if USE_MOCK define_se_endpoints = calloc(sizeof(char*), 4); // set the response of the MDS layer for endpoint for(i1=0;i1 <3; ++i1) define_se_endpoints[i1]= strdup(TEST_SRM_DPM_FULLENDPOINT_URL); define_se_types= calloc(sizeof(char*), 4); char* types[] = { "srm_v1", "srm_v2", "srm_v1"}; for(i1=0;i1 <3; ++i1) define_se_types[i1]= strdup(types[i1]); will_respond(srm_mock_srm_context_init, 0, want_non_null(context), want_string(srm_endpoint, TEST_SRM_DPM_FULLENDPOINT_URL)); defined_get_output = calloc(sizeof(struct srmv2_pinfilestatus),3); defined_get_output[0].turl= strdup(TEST_SRM_TURL_EXAMPLE1); defined_get_output[1].status= ENOENT; defined_get_output[1].explanation = strdup("err msg"); defined_get_output[2].turl = strdup(TEST_SRM_TURL_EXAMPLE1); will_respond(srm_mock_srm_prepare_to_get, 3, want_non_null(context), want_non_null(input), want_non_null(output)); always_return(srm_mock_srm_srmv2_filestatus_delete,0); always_return(srm_mock_srm_srmv2_pinfilestatus_delete,0); #endif GError* tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); assert_true_with_message(handle != NULL, " handle is not properly allocated"); if(handle==NULL) return; gfal_srmv2_opt opts; gfal_srm_opt_initG(&opts, handle); gfal_plugins_instance(handle, NULL); gfal_srm_result* resu=NULL; char* surls[] = {TEST_SRM_VALID_SURL_EXAMPLE1, TEST_SRM_INVALID_SURL_EXAMPLE2, TEST_SRM_VALID_SURL_EXAMPLE1, NULL}; int ret = gfal_srm_getTURLS(&opts, surls, &resu, &tmp_err); assert_true_with_message(ret ==g_strv_length(surls) && resu != NULL && tmp_err == NULL, " must be a successfull request"); gfal_check_GError(&tmp_err); assert_true_with_message(resu[0].err_code == 0 && *(resu[0].err_str)== '\0' && strings_are_equal(resu[0].turl, TEST_SRM_TURL_EXAMPLE1), " must be a valid turl, maybe the turl has changed %d %ld %s",resu[0].err_code, resu[0].err_str, resu[0].turl); assert_true_with_message(resu[1].err_code == ENOENT && *(resu[1].err_str)!= '\0' && *(resu[1].turl) == '\0', " must be a invalid turl 2 "); assert_true_with_message(resu[2].err_code == 0 && *(resu[2].err_str)== '\0' && strings_are_equal(resu[2].turl, TEST_SRM_TURL_EXAMPLE1), " must be a valid turl 3, maybe the turl has changed "); free(resu); gfal_handle_freeG(handle); } void gfal2_test_srm_get_checksum() { //setup_mock_srm(); /*char checksum[2048]; --> disable tmp char checksumtype[2048]; GError* tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); assert_true_with_message(handle != NULL, " handle is not properly allocated"); if(handle==NULL) return; gfal_srmv2_opt opts; gfal_srm_opt_initG(&opts, handle); gfal_plugins_instance(handle, NULL); int ret = gfal_srm_cheksumG(&opts, TEST_SRM_ONLY_READ_ACCESS, checksum, 2048, checksumtype, 2048, &tmp_err); assert_true_with_message(ret ==0 && tmp_err== NULL, " must be a valid response %d %d ", ret, tmp_err); assert_true_with_message( strcmp(checksum, TEST_SRM_CHECKSUM_VALID)==0, "must be a valis checksum %s %s",checksum, TEST_SRM_CHECKSUM_VALID); assert_true_with_message( strcmp(checksumtype, TEST_SRM_CHKTYPE_VALID)==0, "must be a valis checksum type %s %s",checksumtype, TEST_SRM_CHKTYPE_VALID); g_clear_error(&tmp_err); ret = gfal_srm_cheksumG(&opts, TEST_SRML_OPENDIR_ENOENT, checksum, 2048, checksumtype, 2048, &tmp_err); // test a non existing dir assert_true_with_message(ret !=0 && tmp_err!= NULL && ((tmp_err)?tmp_err->code:0) == ENOENT, " must be a no existing dir %d %d", ret,((tmp_err)?tmp_err->code:0) ); g_clear_error(&tmp_err);*/ } gfal2-2.3.0/test/functional/old/common/gfal__test_common_srm_no_glib.c0000644000175000017500000000033412164561703025440 0ustar ellertellert /* unit test for common_srm */ #include #include #include #include void gfal2_test_srm_api_no_glib_full() { assert_true_with_message(FALSE, " not implemented"); } gfal2-2.3.0/test/functional/old/common/gfal__test_common_dir_file_descriptor.c0000644000175000017500000000762412164561703027172 0ustar ellertellert /* unit test for file descriptor */ #include #include #include #include #include #include #include "gfal_common_internal.h" #include "../unit_test_constants.h" #include "gfal_common_dir_handle.h" #include "gfal_common_filedescriptor.h" #include "gfal_common_errverbose.h" #include "gfal_types.h" void gfal2_test__dir_file_descriptor_low() { GError* tmp_err=NULL; gpointer pfile = (gpointer) (long)rand(); gfal_fdesc_container_handle h = gfal_file_descriptor_handle_create(NULL); if( h == NULL){ assert_true_with_message(FALSE, " fail must be a valid init"); gfal_release_GError(&tmp_err); return; } gpointer res = gfal_get_file_desc(h, 10, &tmp_err); if( res || !tmp_err){ assert_true_with_message(FALSE, " no file desc must be in the container"); return; } g_clear_error(&tmp_err); int key = gfal_add_new_file_desc(h, pfile, &tmp_err); if( key ==0 || tmp_err){ assert_true_with_message(FALSE, " must be a valid key creation"); gfal_release_GError(&tmp_err); return; } res = gfal_get_file_desc(h, key, &tmp_err); if( res != pfile || tmp_err){ assert_true_with_message(FALSE, " must be a valid descriptor addition"); gfal_release_GError(&tmp_err); return; } gboolean b = gfal_remove_file_desc(h, key+1, &tmp_err); if(b || !tmp_err){ assert_true_with_message(FALSE, " must be an invalid deletion"); return; } g_clear_error(&tmp_err); b = gfal_remove_file_desc(h, key, &tmp_err); if(!b || tmp_err){ assert_true_with_message(FALSE, " must be a valid deletion"); gfal_release_GError(&tmp_err); return; } } void gfal2_test__dir_file_descriptor_high() { /*GError* tmp_err= NULL; -> need to be rewrite const char* id_module = "mock name"; const char* id_module2 = "mock name2"; const gpointer desc = GINT_TO_POINTER(rand()), desc2 = GINT_TO_POINTER(rand()); gfal_handle handle = gfal_initG(&tmp_err); if(handle == NULL){ assert_true_with_message(FALSE, " error while init"); return; } gfal_fdesc_container_handle h = gfal_dir_handle_container_instance(&(handle->fdescs), &tmp_err); if( h == NULL){ assert_true_with_message(FALSE, " fail must be a valid init"); gfal_release_GError(&tmp_err); return; } gfal_file_handle d = gfal_file_handle_bind(h, 10, &tmp_err); if( d != NULL || !tmp_err){ assert_true_with_message(FALSE, " fail, must an invalid bind"); return; } g_clear_error(&tmp_err); int key = gfal_file_handle_create(h, id_module, desc, &tmp_err); if( key == 0 || tmp_err){ assert_true_with_message(FALSE, " fail, must be a valid creation"); gfal_release_GError(&tmp_err); return; } int key2 = gfal_file_handle_create(h, id_module2, desc2, &tmp_err); if( key == 0 || tmp_err){ assert_true_with_message(FALSE, " fail, must be a valid creation 2"); gfal_release_GError(&tmp_err); return; } d = gfal_file_handle_bind(h, key, &tmp_err); if( d == NULL || strings_are_equal(d->module_name, id_module) == FALSE || d->fdesc != desc){ assert_true_with_message(FALSE, " fail, must be a valid get"); gfal_release_GError(&tmp_err); return; } d = gfal_file_handle_bind(h, key2, &tmp_err); if( d == NULL || strings_are_equal(d->module_name, id_module) == FALSE || d->fdesc != desc2){ assert_true_with_message(FALSE, " fail, must be a valid get"); gfal_release_GError(&tmp_err); return; } gboolean b = gfal_remove_file_desc(h, key+key2, &tmp_err); if(b || !tmp_err){ assert_true_with_message(FALSE, " must be an invalid deletion"); return; } g_clear_error(&tmp_err); b = gfal_remove_file_desc(h, key, &tmp_err); if(!b || tmp_err){ assert_true_with_message(FALSE, " must be a valid deletion"); gfal_release_GError(&tmp_err); return; } b = gfal_remove_file_desc(h, key+key2, &tmp_err); if(b || !tmp_err){ assert_true_with_message(FALSE, " must be an invalid deletion"); return; } g_clear_error(&tmp_err); gfal_handle_freeG(handle); */ } gfal2-2.3.0/test/functional/old/common/gfal__test_common_srm_access.h0000644000175000017500000000026312164561703025276 0ustar ellertellert/* * auto-generated header file for file test/common/gfal__test_common_srm_access.c */ void test_create_srm_access_check_file(); void test_create_srm_access_read_file(); gfal2-2.3.0/test/functional/old/common/gfal__test_common_srm_no_glib.h0000644000175000017500000000021112164561703025437 0ustar ellertellert/* * auto-generated header file for file test/common/gfal__test_common_srm_no_glib.c */ void gfal2_test_srm_api_no_glib_full(); gfal2-2.3.0/test/functional/old/common/lfc/0000755000175000017500000000000012164561703020007 5ustar ellertellertgfal2-2.3.0/test/functional/old/common/lfc/gfal__test_common_lfc.h0000644000175000017500000000116412164561703024465 0ustar ellertellert/* * auto-generated header file for file test/common/lfc/gfal__test_common_lfc.c */ void gfal2_test_gfal_common_lfc_resolve_sym(); void gfal2_test_gfal_common_lfc_init(); void gfal2_test_gfal_common_lfc_access(); void gfal2_test_gfal_common_lfc_no_exist(); void gfal2_test_gfal_common_lfc_check_filename(); void gfal2_test_gfal_common_lfc_getSURL(); void gfal2_gfal2_test_gfal_common_lfc_access_guid_file_exist(); void gfal2_test__gfal_common_lfc_rename(); void gfal2_test__gfal_common_lfc_statg(); void gfal2_test_common_lfc_getcomment(); void gfal2_test_common_lfc_setcomment(); void gfal2_test_common_lfc_checksum(); gfal2-2.3.0/test/functional/old/common/lfc/gfal__test_common_lfc.c0000644000175000017500000004350512164561703024465 0ustar ellertellert/* * lfc test file * * */ #include #include #include #include #include #include #include #include #include #include #include #include "../../unit_test_constants.h" #include "../../mock/gfal_lfc_mock_test.h" static void test_internal_generic_copy(gpointer origin, gpointer copy){ memcpy(copy, origin, sizeof(struct stat)); } // mocking function internal to gfal gfal_plugin_interface get_lfc_interface(gfal_handle handle, GError** err){ gfal_plugin_interface i; void* dl = dlopen("libgfal_plugin_lfc.so", RTLD_LAZY); if(!dl){ g_set_error(err, 0, EINVAL, "unable to find the gfal plugin lfc"); return i; } gfal_plugin_interface (*constructor)(gfal_handle,GError**) = (gfal_plugin_interface (*)(gfal_handle,GError**)) dlsym(dl, "gfal_plugin_init"); if(constructor==NULL){ g_set_error(err, 0, EINVAL, "unable to resolve constructor in lfc plugin"); return i; } i = constructor(handle ,err); #if USE_MOCK i.plugin_data = calloc(1, sizeof(struct lfc_ops)); struct lfc_ops* ops = (struct lfc_ops*) i.plugin_data; ops->lfc_endpoint = NULL; gfal_lfc_regex_compile(&(ops->rex), err); ops->statg = &lfc_mock_statg; ops->cache_stat = gsimplecache_new(40000, &test_internal_generic_copy, sizeof(struct stat)); ops->startsess = &lfc_mock_startsession; ops->endsess = &lfc_mock_endsess; ops->rename = &lfc_mock_rename; ops->get_serrno = &lfc_mock_C__serrno; ops->access = &lfc_mock_access; ops->getcomment = &lfc_mock_getcomment; ops->setcomment = &lfc_mock_setcomment; ops->sstrerror = &strerror; ops->getreplica = &lfc_mock_getreplica; ops->getlinks= &lfc_mock_getlinks; #endif return i; } void gfal2_test_gfal_common_lfc_resolve_sym() { GError* err = NULL; struct lfc_ops* st = gfal_load_lfc("liblfc.so", &err); assert_true_with_message(st || !err, " must be a valid resolution, liblfc not found"); if(st == NULL) return; assert_true_with_message(st->sstrerror != NULL , "must be a valid symbol"); char* str = NULL; str = st->sstrerror(0); assert_true_with_message(str != NULL, " must be a valid string"); free(st); } void gfal2_test_gfal_common_lfc_init() { GError * tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); assert_true_with_message(handle != NULL, " error must be initiated %s"); if(handle==NULL){ gfal_release_GError(&tmp_err); return; } get_lfc_interface(handle, &tmp_err); if(tmp_err){ assert_true_with_message(FALSE, " must not fail, valid value"); return; } gfal_handle_freeG(handle); } void gfal2_test_gfal_common_lfc_access(){ GError * tmp_err=NULL; int ret =-1; gfal_handle handle = gfal_initG(&tmp_err); assert_true_with_message(handle != NULL, " error must be initiated %ld",handle); if(!handle) return; gfal_plugin_interface i = get_lfc_interface(handle, &tmp_err); assert_true_with_message(tmp_err == NULL, " must be a valid init %ld ", tmp_err); if(tmp_err) return; #if USE_MOCK will_respond(lfc_mock_access, 0, want_string(path, TEST_LFC_VALID_ACCESS+4), want(mode, R_OK)); will_respond(lfc_mock_access, EACCES, want_string(path, TEST_LFC_ONLY_READ_ACCESS+4), want(mode, W_OK)); always_return(lfc_mock_access, EINVAL); #endif ret = i.accessG(i.plugin_data, TEST_LFC_VALID_ACCESS, R_OK, &tmp_err); assert_true_with_message(ret == 0 && tmp_err== NULL, " must be a valid access %d %ld ",ret, tmp_err); g_clear_error(&tmp_err); ret = i.accessG(i.plugin_data, TEST_LFC_ONLY_READ_ACCESS, W_OK, &tmp_err); assert_true_with_message(ret != 0 && tmp_err->code == EACCES, " must fail, unable to write this file %d %ld", ret, tmp_err); g_clear_error(&tmp_err); gfal_handle_freeG(handle); } void gfal2_test_gfal_common_lfc_no_exist() { GError * tmp_err=NULL; int ret =-1; gfal_handle handle = gfal_initG(&tmp_err); assert_true_with_message(handle != NULL, " error must be initiated"); if(handle == NULL) return; gfal_plugin_interface i = get_lfc_interface(handle, &tmp_err); assert_true_with_message(tmp_err==NULL, " must be a valid init"); if(tmp_err) return; #if USE_MOCK will_respond(lfc_mock_access, ENOENT, want_string(path, TEST_LFC_NOEXIST_ACCESS+4), want(mode, F_OK)); will_respond(lfc_mock_access, 0, want_string(path, TEST_LFC_VALID_ACCESS+4), want(mode, F_OK)); always_return(lfc_mock_access, EINVAL); #endif ret = i.accessG(i.plugin_data, TEST_LFC_NOEXIST_ACCESS, F_OK, &tmp_err); assert_true_with_message(ret !=0 && tmp_err->code == ENOENT, " must fail, this file not exist"); g_clear_error(&tmp_err); ret = i.accessG(i.plugin_data, TEST_LFC_VALID_ACCESS, F_OK, &tmp_err); assert_true_with_message(ret ==0, "must be a success, file is present"); gfal_handle_freeG(handle); } void gfal2_test_gfal_common_lfc_check_filename() { GError * tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); if(handle==NULL){ assert_true_with_message(FALSE, " error must be initiated"); gfal_release_GError(&tmp_err); return; } gfal_plugin_interface i = get_lfc_interface(handle, &tmp_err); assert_true_with_message(tmp_err== NULL, " must be a valid init"); if(tmp_err) return; gboolean b = i.check_plugin_url(i.plugin_data, TEST_LFC_VALID_ACCESS, GFAL_PLUGIN_ACCESS, &tmp_err); assert_true_with_message(b && tmp_err==NULL, " must be a valid lfn url"); g_clear_error(&tmp_err); b = i.check_plugin_url(i.plugin_data, TEST_LFC_NOEXIST_ACCESS, GFAL_PLUGIN_ACCESS, &tmp_err); assert_true_with_message(b && tmp_err==NULL, " must be a valid lfn url 2"); g_clear_error(&tmp_err); b = i.check_plugin_url(i.plugin_data, TEST_LFC_URL_SYNTAX_ERROR, GFAL_PLUGIN_ACCESS, &tmp_err); assert_true_with_message(b==FALSE && tmp_err==NULL, " must an invalid lfn url 3 but must not report error"); g_clear_error(&tmp_err); gfal_handle_freeG(handle); } void gfal2_test_gfal_common_lfc_getSURL() { GError * tmp_err=NULL; int i1; char** ret =NULL; gfal_handle handle = gfal_initG(&tmp_err); assert_true_with_message(handle!=NULL, "error must be initiated"); gfal_plugin_interface i = get_lfc_interface(handle, &tmp_err); assert_true_with_message(tmp_err ==NULL, "must be a valid init"); if(tmp_err) return; #if USE_MOCK will_respond(lfc_mock_getreplica, ENOENT, want_string(path, TEST_LFC_NOEXIST_ACCESS+4), want(guid,NULL), want_non_null(nbentries), want_non_null(rep_entries)); define_lastfilereplica = calloc(sizeof(struct lfc_filereplica),3); define_numberreplica = 3; for(i1=0; i1 < define_numberreplica; ++i1) g_strlcpy(define_lastfilereplica[i1].sfn, "srm://thepath.to/themoon", GFAL_URL_MAX_LEN); will_respond(lfc_mock_getreplica, 0, want_string(path, TEST_LFC_VALID_ACCESS+4), want(guid,NULL), want_non_null(nbentries), want_non_null(rep_entries)); always_return(lfc_mock_getreplica, EINVAL); #endif ret = gfal_lfc_getSURL(i.plugin_data, TEST_LFC_NOEXIST_ACCESS+4, &tmp_err); assert_true_with_message( ret == NULL && tmp_err!=NULL, " must be a false convertion, file not exist"); g_clear_error(&tmp_err); ret = gfal_lfc_getSURL(i.plugin_data, TEST_LFC_VALID_ACCESS+4, &tmp_err); assert_true_with_message(ret != NULL && tmp_err==NULL, "must be a successfull convert"); char** p = ret; while(*p != NULL){ assert_true_with_message( strncmp(*p,"srm://",6) ==0, " begin of the surl is incorrect : %s ", p); p++; } g_strfreev(ret); gfal_handle_freeG(handle); } void gfal2_gfal2_test_gfal_common_lfc_access_guid_file_exist() { GError * tmp_err=NULL; int i1; int ret =-1; gfal_handle handle = gfal_initG(&tmp_err); char buff_guid[2048]; assert_true_with_message(handle != NULL, "error must be initiated"); if(handle==NULL) return; gfal_plugin_interface i = get_lfc_interface(handle, &tmp_err); assert_true_with_message(tmp_err==NULL, "must be a valid init"); if(tmp_err) return; #if USE_MOCK will_respond(lfc_mock_getlinks, ENOENT, want_string(guid, TEST_GUID_NOEXIST_ACCESS+5), want(path,NULL), want_non_null(nbentries), want_non_null(linkinfos)); define_linkinfos= calloc(sizeof(struct lfc_linkinfo),3); define_numberlinkinfos=3; for(i1=0; i1< define_numberlinkinfos; ++i1) g_strlcpy(define_linkinfos[i1].path, "lfn:/test/obiwankenobi", GFAL_URL_MAX_LEN); will_respond(lfc_mock_getlinks, 0, want_string(guid, TEST_GUID_VALID_ACCESS+5), want(path, NULL), want_non_null(nbentries), want_non_null(linkinfos)); always_return(lfc_mock_getlinks, EINVAL); #endif ret = gfal_convert_guid_to_lfn_r(i.plugin_data, TEST_GUID_NOEXIST_ACCESS+5, buff_guid, 2048, &tmp_err); assert_true_with_message(ret != 0 && tmp_err->code == ENOENT, "must fail, this file not exist"); g_clear_error(&tmp_err); ret = gfal_convert_guid_to_lfn_r(i.plugin_data, TEST_GUID_VALID_ACCESS+5, buff_guid, 2048, &tmp_err); gfal_release_GError(&tmp_err); assert_true_with_message(ret == 0 && tmp_err==NULL, "must be a success, file is present"); gfal_handle_freeG(handle); } void gfal2_test__gfal_common_lfc_rename() { GError * tmp_err=NULL; int ret =-1; gfal_handle handle = gfal_initG(&tmp_err); assert_true_with_message(handle!=NULL, "error must be initiated "); if(!handle) return; gfal_plugin_interface i = get_lfc_interface(handle, &tmp_err); assert_true_with_message(tmp_err == NULL, "must be a valid init "); if(tmp_err) return; #if USE_MOCK will_respond(lfc_mock_rename, 0, want_string(oldpath, TEST_LFC_RENAME_VALID_SRC+4), want_string(newpath, TEST_LFC_RENAME_VALID_DEST+4)); will_respond(lfc_mock_rename, 0, want_string(oldpath, TEST_LFC_RENAME_VALID_DEST+4), want_string(newpath, TEST_LFC_RENAME_VALID_SRC+4)); will_respond(lfc_mock_rename, ENOENT, want_string(oldpath, TEST_LFC_RENAME_VALID_DEST+4), want_string(newpath, TEST_LFC_RENAME_VALID_DEST+4)); always_return(lfc_mock_rename, EINVAL); #endif ret = i.renameG(i.plugin_data, TEST_LFC_RENAME_VALID_SRC, TEST_LFC_RENAME_VALID_DEST, &tmp_err); assert_true_with_message(ret >= 0 && tmp_err == NULL, " must be a success on the first rename %d %ld %s", ret,tmp_err); g_clear_error(&tmp_err); ret = i.renameG(i.plugin_data, TEST_LFC_RENAME_VALID_DEST, TEST_LFC_RENAME_VALID_SRC, &tmp_err); assert_false_with_message(ret >= 0 && tmp_err == NULL, " must be a success on the second rename %d %ld ", ret,tmp_err); g_clear_error(&tmp_err); ret = i.renameG(i.plugin_data, TEST_LFC_RENAME_VALID_DEST, TEST_LFC_RENAME_VALID_DEST, &tmp_err); assert_true_with_message(ret < 0 && tmp_err != NULL && tmp_err->code == ENOENT, " must be a success on the second rename %d %ld ", ret,tmp_err->code); g_clear_error(&tmp_err); gfal_handle_freeG(handle); } void gfal2_test_common_lfc_checksum() { GError * tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); if(handle==NULL){ assert_true_with_message(FALSE, "error must be initiated"); gfal_release_GError(&tmp_err); return; } gfal_plugin_interface i = get_lfc_interface(handle, &tmp_err); // initialize interface if(tmp_err){ assert_true_with_message(FALSE, "must be a valid init"); gfal_release_GError(&tmp_err); return; } #if USE_MOCK struct lfc_filestatg f; memset(&f,0,sizeof(struct lfc_filestatg)); f.gid=TEST_GFAL_LFC_FILE_STAT_GID_VALUE ; will_respond(lfc_mock_statg, 0, want_string(lfn, TEST_LFC_ONLY_READ_ACCESS+4)); defined_filestatg = &f; will_respond(lfc_mock_statg, ENOENT, want_string(lfn, TEST_LFC_NOEXIST_ACCESS+4)); always_return(lfc_mock_statg, EINVAL); #endif lfc_checksum chk; memset(&chk, '\0', sizeof(lfc_checksum)); int ret = gfal_lfc_getChecksum(i.plugin_data, TEST_LFC_ONLY_READ_ACCESS+4, &chk, &tmp_err); assert_true_with_message(ret==0, "must be a valid call"); assert_true_with_message(strcmp(chk.type, TEST_LFC_VALID_TESTREAD_CHKTYPE)==0, "must be a valid checksum type %s %s", chk.type, TEST_LFC_VALID_TESTREAD_CHKTYPE); assert_true_with_message(strcmp(chk.value, TEST_LFC_VALID_TESTREAD_CHECKSUM)==0, "must be a valid checksum value %s %s", chk.value, TEST_LFC_VALID_TESTREAD_CHECKSUM); ret = gfal_lfc_getChecksum(i.plugin_data, TEST_LFC_NOEXIST_ACCESS+4, &chk, &tmp_err); assert_true_with_message(ret != 0 && ((tmp_err)?(tmp_err->code):0)==ENOENT, "must be a non existing dir"); g_clear_error(&tmp_err); } void gfal2_test_common_lfc_getcomment() { GError * tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); if(handle==NULL){ assert_true_with_message(FALSE, "error must be initiated"); gfal_release_GError(&tmp_err); return; } gfal_plugin_interface i = get_lfc_interface(handle, &tmp_err); // initialize interface if(tmp_err){ assert_true_with_message(FALSE, "must be a valid init"); gfal_release_GError(&tmp_err); return; } #if USE_MOCK define_lfc_comment(TEST_LFC_COMMENT_CONTENT); will_respond(lfc_mock_getcomment,0, want_string(path, TEST_LFC_VALID_COMMENT+4), want_non_null(comment)); will_respond(lfc_mock_getcomment, EINVAL, want_string(path, TEST_LFC_INVALID_COMMENT+4), want_non_null(comment)); always_return(lfc_mock_getcomment, EINVAL); #endif char buff[2048]; int ret = gfal_lfc_getComment(i.plugin_data, TEST_LFC_VALID_COMMENT+4, NULL, 0, &tmp_err); assert_true_with_message(ret == (CA_MAXCOMMENTLEN+1) && tmp_err == NULL, "must be the valid value of buffer size %d %ld", ret, (long) tmp_err ); ret = gfal_lfc_getComment(i.plugin_data, TEST_LFC_VALID_COMMENT+4, buff, 2048, &tmp_err); assert_true_with_message(ret >0 && tmp_err == NULL, "must be a valid return %d %s", ret, (tmp_err)?tmp_err->message:"" ); if(ret> 0){ int word_len = strlen(buff); assert_true_with_message(word_len == ret, "must be the good len for the return %d %d ", word_len, ret ); } ret = gfal_lfc_getComment(i.plugin_data, TEST_LFC_INVALID_COMMENT+4, buff, 2048, &tmp_err); assert_true_with_message((ret < 0 && tmp_err != NULL) || (ret ==0 && strcmp(buff,"")==0) , "must be an error report" ); // impossible to détermine ENOENT due to a Cns_setcomment problem g_clear_error(&tmp_err); } void gfal2_test_common_lfc_setcomment(){ GError * tmp_err=NULL; gfal_handle handle = gfal_initG(&tmp_err); if(handle==NULL){ assert_true_with_message(FALSE, "error must be initiated"); gfal_release_GError(&tmp_err); return; } gfal_plugin_interface i = get_lfc_interface(handle, &tmp_err); // initialize interface if(tmp_err){ assert_true_with_message(FALSE, "must be a valid init"); gfal_release_GError(&tmp_err); return; } #if USE_MOCK define_lfc_comment(TEST_LFC_COMMENT_CONTENT); will_respond(lfc_mock_setcomment, 0, want_string(path, TEST_LFC_WRITEVALID_COMMENT+4), want_string(comment, TEST_LFC_COMMENT_CONTENT)); will_respond(lfc_mock_setcomment, 0, want_string(path, TEST_LFC_WRITEVALID_COMMENT+4), want_string(comment, "")); will_respond(lfc_mock_setcomment, -ENOENT, want_string(path, TEST_LFC_INVALID_COMMENT+4), want_string(comment, TEST_LFC_COMMENT_CONTENT)); will_respond(lfc_mock_getcomment,0, want_string(path, TEST_LFC_WRITEVALID_COMMENT+4), want_non_null(comment)); always_return(lfc_mock_getcomment, EINVAL); #endif char buff[2048]; int ret = gfal_lfc_setComment(i.plugin_data, TEST_LFC_WRITEVALID_COMMENT+4, TEST_LFC_COMMENT_CONTENT, 2048, &tmp_err); assert_true_with_message(ret ==0 && tmp_err== 0, " must be a valid answser %d",ret); ret = gfal_lfc_getComment(i.plugin_data, TEST_LFC_WRITEVALID_COMMENT+4, buff, 2048, &tmp_err); assert_true_with_message(ret >0 && tmp_err == NULL, "must be a valid return %d %s", ret, (tmp_err)?tmp_err->message:"" ); if(ret> 0){ assert_true_with_message(strcmp(buff, TEST_LFC_COMMENT_CONTENT)==0, "must be the good message %s %s ", buff, TEST_LFC_COMMENT_CONTENT ); } ret = gfal_lfc_setComment(i.plugin_data, TEST_LFC_WRITEVALID_COMMENT+4, "", 2048, &tmp_err); // reinit the comment and test an empty set assert_true_with_message(ret ==0 && tmp_err== 0, " must be a valid answser %d", ret); ret = gfal_lfc_setComment(i.plugin_data, TEST_LFC_INVALID_COMMENT+4, TEST_LFC_COMMENT_CONTENT, 2048, &tmp_err); assert_true_with_message(ret < 0 && tmp_err != NULL && ((tmp_err)?tmp_err->code:0)==ENOENT , "must be an error report" ); // impossible to détermine ENOENT due to a Cns_setcomment problem g_clear_error(&tmp_err); } void gfal2_test__gfal_common_lfc_statg() { GError * tmp_err=NULL; int ret =-1; gfal_handle handle = gfal_initG(&tmp_err); if(handle==NULL){ assert_true_with_message(FALSE, "error must be initiated"); gfal_release_GError(&tmp_err); return; } gfal_plugin_interface i = get_lfc_interface(handle, &tmp_err); if(tmp_err){ assert_true_with_message(FALSE, "must be a valid init"); gfal_release_GError(&tmp_err); return; } #if USE_MOCK struct lfc_filestatg f; f.filemode = TEST_GFAL_LFC_FILE_STAT_MODE_VALUE; f.uid = TEST_GFAL_LFC_FILE_STAT_UID_VALUE ; f.gid=TEST_GFAL_LFC_FILE_STAT_GID_VALUE ; will_respond(lfc_mock_statg, 0, want_string(lfn, TEST_LFC_VALID_ACCESS+4)); defined_filestatg = &f; will_respond(lfc_mock_statg, ENOENT, want_string(lfn, TEST_LFC_NOEXIST_ACCESS+4)); will_respond(lfc_mock_statg, EACCES, want_string(lfn, TEST_LFC_OPEN_NOACCESS+4)); always_return(lfc_mock_statg, EINVAL); #endif struct stat buff; ret = i.statG(i.plugin_data, TEST_LFC_VALID_ACCESS, &buff , &tmp_err); assert_true_with_message(ret >= 0 && tmp_err == NULL, " must be a success on the lfc valid %d %s ", ret); assert_false_with_message( buff.st_gid != TEST_GFAL_LFC_FILE_STAT_GID_VALUE , "must be a valid gid"); assert_false_with_message(buff.st_uid != TEST_GFAL_LFC_FILE_STAT_UID_VALUE , "must be a valid uid"); assert_false_with_message(buff.st_mode != TEST_GFAL_LFC_FILE_STAT_MODE_VALUE, "must be a valid mode"); memset(&buff,0, sizeof(struct stat)); g_clear_error(&tmp_err); ret = i.statG(i.plugin_data, TEST_LFC_NOEXIST_ACCESS, &buff , &tmp_err); assert_true_with_message( ret != 0 && tmp_err && tmp_err->code == ENOENT, "must be a non existing file "); g_clear_error(&tmp_err); ret = i.statG(i.plugin_data, TEST_LFC_OPEN_NOACCESS, &buff , &tmp_err); assert_true_with_message(ret != 0 && tmp_err && tmp_err->code == EACCES, " must be a non existing accessible file : %d %ld", ret, tmp_err); g_clear_error(&tmp_err); gfal_handle_freeG(handle); } gfal2-2.3.0/test/functional/old/common/gfal__test_verbose.h0000644000175000017500000000146512164561703023256 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* unit test for common_errverbose */ #include "gfal_common_errverbose.h" void gfal2_test_verbose_set_get(); gfal2-2.3.0/test/functional/old/common/gfal__test_common_srm_access.c0000644000175000017500000000320612164561703025271 0ustar ellertellert /* unit test for common_srm */ #include #include "srm/gfal_common_srm_access.h" #include #include #include #include "gfal_common_internal.h" #include "common/srm/gfal_common_srm.h" #include "../unit_test_constants.h" void test_create_srm_access_check_file() { GError* err=NULL; gfal_handle handle = gfal_initG(&err); if(handle == NULL){ assert_true_with_message(FALSE, " handle is not properly allocated"); return; } int check = gfal_srm_accessG(handle, TEST_SRM_VALID_SURL_EXAMPLE1, F_OK, &err); if(check != 0 || err){ assert_true_with_message(FALSE, " must be a valid surl \n"); gfal_release_GError(&err); return; } check = gfal_srm_accessG(handle, TEST_SRM_INVALID_SURL_EXAMPLE2, F_OK, &err); if(check ==0 || err->code != ENOENT ){ assert_true_with_message(FALSE, " must be an invalid surl "); gfal_release_GError(&err); return; } g_clear_error(&err); gfal_handle_freeG(handle); } void test_create_srm_access_read_file() { GError* err=NULL; gfal_handle handle = gfal_initG(&err); if(handle == NULL){ assert_true_with_message(FALSE, " handle is not properly allocated"); return; } int check = gfal_srm_accessG(handle, TEST_SRM_VALID_SURL_EXAMPLE1, R_OK, &err); if(check != 0 || err){ assert_true_with_message(FALSE, " must be a readable file \n"); gfal_release_GError(&err); return; } check = gfal_srm_accessG(handle, TEST_SRM_INVALID_SURL_EXAMPLE2, R_OK, &err); if(check == 0 || err->code != ENOENT){ assert_true_with_message(FALSE, " must be an invalid surl "); gfal_release_GError(&err); return; } g_clear_error(&err); gfal_handle_freeG(handle); } gfal2-2.3.0/test/functional/old/common/gfal__test_common_srm.h0000644000175000017500000000170412164561703023756 0ustar ellertellert#pragma once /* * auto-generated header file for file test/common/gfal__test_common_srm.c */ void mock_srm_access_error_response(char* surl, int merror); void mock_srm_access_right_response(char* surl); void test_srm_mock_chmod(char* url, int retcode); void gfal2_test_create_srm_handle(); void gfal2_test__gfal_convert_full_surl(); void gfal2_test_gfal_get_hostname_from_surl(); void gfal2_test_gfal_full_endpoint_checkG(); void test_gfal_get_async_1(); void gfal2_test_gfal_get_endpoint_and_setype_from_bdiiG(); void gfal2_test_gfal_select_best_protocol_and_endpointG(); void gfal2_test_gfal_srm_determine_endpoint_full_endpointG(); void gfal2_test_gfal_auto_get_srm_endpoint_full_endpoint_with_no_bdiiG(); void gfal2_test_gfal_srm_determine_endpoint_not_fullG(); void gfal2_test_gfal_srm_getTURLS_one_success(); void gfal2_test_gfal_srm_getTURLS_bad_urls(); void gfal2_test_gfal_srm_getTURLS_pipeline_success(); void gfal2_test_srm_get_checksum(); gfal2-2.3.0/test/functional/old/common/gfal__test_plugin.h0000644000175000017500000000055312164561703023104 0ustar ellertellert#pragma once /* unit test for common_plugin */ #include #include "lfc/lfc_ifce_ng.h" struct lfc_ops* find_lfc_ops(gfal_handle handle, GError** err); void test_mock_lfc(gfal_handle handle, GError** err); void gfal2_test_plugin_access_file(); void gfal2_test_plugin_url_checker(); void gfal2_test__plugin_stat(); void gfal2_test__plugin_lstat(); gfal2-2.3.0/test/functional/gfal2/0000755000175000017500000000000012164561703016170 5ustar ellertellertgfal2-2.3.0/test/functional/gfal2/gfal_test_mkdir_unlink.c0000644000175000017500000000217612164561703023060 0ustar ellertellert/** * Compile command : gcc gfal_test_mkdir_unlink.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include #define BLKLEN 65536 /** * * Description: This test creates a directory then tries to unlink it. * It is the failure of the unlink operation which is checked. * Unlink on directoies should fail. * The test will also fail if the cleanup (rmdir) of the directory fails. */ int main(int argc, char **argv) { int rc,ret; char buff[2048]; gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE); // switch Gfal in verbose mode if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } // create a random file uri file generate_random_uri(argv[1], "test_mkdir_unlink_file_", buff, 2048); if ((rc = gfal_mkdir(buff, 777)) < 0) { gfal_posix_check_error(); exit (1); } if ((rc = gfal_unlink (buff)) < 0) { ret = 0; } else { ret = 1;} // Removing the directory if (( rc = gfal_rmdir(buff)) < 0) { gfal_posix_check_error(); exit (1); } return ret; } gfal2-2.3.0/test/functional/gfal2/gfal2_config_test.sh0000644000175000017500000000124212164561703022102 0ustar ellertellert#!/bin/bash # config files # #global config export LFC_HOST=cvitblfc1.cern.ch export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export GFAL_PLUGIN_LIST=libgfal_plugin_gridftp.so:libgfal_plugin_lfc.so:libgfal_plugin_srm.so:libgfal_plugin_rfio.so export LD_LIBRARY_PATH=`pwd`/src:$LD_LIBRARY_PATH function tmp_filename(){ export TMP_FILENAME=$(mktemp -u test_gfal2_XXXXXXXXXXXXXXXXXXXXXXXXXXXXX) } export GENERIC_VALID_FILENAME=testread0011 export GENERIC_NO_READACCESS_FILENAME=testnoread0011 export GRIDFTP_PREFIX_DPM=gsiftp://cvitbdpm1.cern.ch/dpm/cern.ch/home/dteam/gfal2-tests/ export SRM_PREFIX_DPM=srm://cvitbdpm1.cern.ch/dpm/cern.ch/home/dteam/gfal2-tests/ gfal2-2.3.0/test/functional/gfal2/gfal_testcreatedir.c0000644000175000017500000000075412164561703022175 0ustar ellertellert/** * Compile command : gcc gfal_testcreatedir.c `pkg-config --libs --cflags gfal2` */ #include #include #include "gfal_api.h" int main(int argc, char **argv) { char *rootdir; if (argc != 2) { fprintf (stderr, "usage: %s rootdir rights \n", argv[0]); exit (1); } rootdir = argv[1]; printf ("Creating directory %s ...\n", rootdir); if (gfal_mkdir (rootdir, 0777) < 0) { gfal_posix_check_error(); exit (1); } printf ("All is ok.\n"); exit (0); } gfal2-2.3.0/test/functional/gfal2/gfalt_copyfile_fts_style_thread_safety.c0000644000175000017500000000640312164561703026324 0ustar ellertellert/** * Compile command : gcc -o gfalt_copyfile gfalt_copyfile.c `pkg-config --libs --cflags gfal_transfer` */ #include #include #include #include #include void call_perf(gfalt_transfer_status_t h, const char* src, const char* dst, gpointer user_data){ size_t avg = gfalt_copy_get_average_baudrate(h,NULL) / 1024; size_t inst = gfalt_copy_get_instant_baudrate(h,NULL) / 1024; size_t trans= gfalt_copy_get_bytes_transfered(h,NULL); time_t elapsed = gfalt_copy_get_elapsed_time(h,NULL); printf(" perf marker avg : %ld, inst: %ld, elapsed: %ld, trans: %ld", avg, inst, trans, elapsed); } int internal_copy(gfal2_context_t* handle, gfalt_params_t* params, const char* src, const char* dst){ GError * tmp_err = NULL; // classical GError/glib error management struct stat buff; struct stat buff2; printf(" stat src files.... \n"); if( gfal2_stat(*handle, src, &buff, &tmp_err) !=0){ printf(" error while the file stat %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }else{ g_assert(buff.st_size != 0); printf(" file size %ld",buff.st_size ); } printf(" begin transfer .... \n"); if( gfalt_copy_file(*handle, *params, src, dst, &tmp_err) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }else printf(" transfer sucessfull ! \n"); printf(" stat dst file .... \n"); if( gfal2_stat(*handle, dst, &buff2, &tmp_err) !=0){ printf(" error while the file stat %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }{ g_assert(buff2.st_size == buff.st_size); } return 0; } int main(int argc, char** argv){ int ret; if( argc != 4 ){ printf(" Usage %s [src_url] [checksum] [dir_dest] \n",argv[0]); return 1; } GError * tmp_err = NULL; // classical GError/glib error management gfal2_context_t handle; char buff[2048]; // initialize gfal gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE | GFAL_VERBOSE_DEBUG); if( (handle = gfal2_context_new(&tmp_err)) == NULL ) { printf(" bad initialization %d : %s.\n", tmp_err->code,tmp_err->message); return -1; } //gfal2_set_opt_boolean(handle, "GRIDFTP PLUGIN", "SESSION_REUSE", TRUE, NULL); // creat params gfalt_params_t my_params = gfalt_params_handle_new(NULL); gfalt_set_replace_existing_file(my_params, TRUE, NULL); gfalt_set_checksum_check(my_params, TRUE, NULL); gfalt_set_user_defined_checksum(my_params,"ADLER32",argv[2], NULL); gfalt_set_monitor_callback(my_params, &call_perf,&tmp_err); gfalt_set_nbstreams(my_params, 0, &tmp_err); gfalt_set_timeout(my_params,10, &tmp_err); gfalt_set_create_parent_dir(my_params, TRUE, NULL); // gfalt_set_src_spacetoken(my_params, "DTEAMLCGUTILSTEST", &tmp_err); // gfalt_set_dst_spacetoken(my_params, "DTEAMLCGUTILSTESTF", &tmp_err); // begin copy ret = 0; while(ret == 0){ generate_random_uri(argv[3], "bigfile_fts_cancel", buff, 2048); if(internal_copy(&handle, &my_params, argv[1], buff) !=0) ret = -1; } gfal2_context_free(handle); return ret; } gfal2-2.3.0/test/functional/gfal2/gfal_test_rmdir_full.c0000644000175000017500000000650412164561703022530 0ustar ellertellert/** * Compile command : gcc gfal_test_rmdir_full.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include #include int main(int argc, char **argv) { char *valid_file,* valid_dir; char buff[2048]; char buff2[2048]; if (argc < 3) { fprintf (stderr, "usage: %s validdir valid_file \n", argv[0]); exit (1); } valid_file = argv[2]; valid_dir = argv[1]; gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_DEBUG | GFAL_VERBOSE_VERBOSE); // create a enoent file g_strlcpy(buff, valid_dir, 2048); g_strlcat(buff, "/", 2048); g_strlcat(buff, "klfdsklmfdsklmfdsklmfdsklmfds_enoent", 2048); printf ("check enoent directory %s ...\n", buff); if(gfal_rmdir(buff) == 0) { // must not exist gfal_posix_check_error(); g_assert_not_reached(); } printf ("enoent code : %d ...\n", gfal_posix_code_error()); g_assert(gfal_posix_code_error() == ENOENT); gfal_posix_clear_error(); g_assert(gfal_posix_code_error() == 0); snprintf(buff, 2048, "%s/%ld_testrmdir", valid_dir,time(NULL)); printf ("create and delete directory %s ...\n", buff); if(gfal_mkdir(buff, 0777) != 0) { gfal_posix_check_error(); g_assert_not_reached(); } g_assert(gfal_posix_code_error() == 0); if(gfal_rmdir(buff) != 0) { gfal_posix_check_error(); g_assert_not_reached(); } g_assert(gfal_posix_code_error() == 0); snprintf(buff, 2048, "%s/%ld_testrmdir/", valid_dir,time(NULL)); printf ("create and delete directory with slash %s ...\n", buff); if(gfal_mkdir(buff, 0777) != 0) { gfal_posix_check_error(); g_assert_not_reached(); } g_assert(gfal_posix_code_error() == 0); if(gfal_rmdir(buff) != 0) { gfal_posix_check_error(); g_assert_not_reached(); } g_assert(gfal_posix_code_error() == 0); snprintf(buff, 2048, "%s/%ld_testrmdir_eaccess", valid_dir,time(NULL)); snprintf(buff2, 2048, "%s/testdirinside", buff); printf ("create eaccess and enotempty dir %s %s ...\n", buff,buff2); if(gfal_mkdir(buff, 0777) != 0) { gfal_posix_check_error(); g_assert_not_reached(); } g_assert(gfal_posix_code_error() == 0); if(gfal_mkdir(buff2, 0777) != 0) { gfal_posix_check_error(); g_assert_not_reached(); } g_assert(gfal_posix_code_error() == 0); printf ("try enotempty %s ...\n", buff); if(gfal_rmdir(buff) == 0) { // must ENOTDIR gfal_posix_check_error(); g_assert_not_reached(); } printf(" err code enotempty : %d\n", gfal_posix_code_error()); g_assert(gfal_posix_code_error() == ENOTEMPTY); gfal_posix_clear_error(); g_assert(gfal_posix_code_error() == 0); if(gfal_chmod(buff, 0000) != 0) { gfal_posix_check_error(); g_assert_not_reached(); } g_assert(gfal_posix_code_error() == 0); printf ("try eacess %s ...\n", buff2); if(gfal_rmdir(buff2) == 0) { // must eaccess gfal_posix_check_error(); g_assert_not_reached(); } g_assert(gfal_posix_code_error() == EACCES); gfal_posix_clear_error(); g_assert(gfal_posix_code_error() == 0); if(gfal_rmdir(valid_file) == 0) { // must ENOTDIR gfal_posix_check_error(); g_assert_not_reached(); } printf(" enotdir err : %d\n", gfal_posix_code_error()) ; g_assert(gfal_posix_code_error() == ENOTDIR); gfal_posix_clear_error(); g_assert(gfal_posix_code_error() == 0); printf ("All is ok.\n"); exit (0); } gfal2-2.3.0/test/functional/gfal2/gfal_mv.c0000644000175000017500000000100112164561703017737 0ustar ellertellert#include #include #include "gfal_api.h" #include "gfal_posix_internal.h" int main(int argc, char **argv) { if (argc != 3) { fprintf (stderr, "usage: %s original new\n", argv[0]); return 1; } gfal_set_verbose(10); const char *src = argv[1]; const char *dst = argv[2]; if (gfal_rename(src, dst) != 0) { perror ("gfal_rename"); fprintf(stderr, "%s\n", (*gfal_posix_get_last_error())->message); return 1; } return 0; } gfal2-2.3.0/test/functional/gfal2/gfalt_copyfile_test.c0000644000175000017500000000242012164561703022360 0ustar ellertellert/** * Compile command : gcc -o gfalt_copyfile gfalt_copyfile.c `pkg-config --libs --cflags gfal_transfer` */ #include #include #include #include #include int main(int argc, char** argv){ if( argc <3 ){ printf(" Usage %s [src_url] [dst_dir] \n",argv[0]); return 1; } GError * tmp_err = NULL; // classical GError/glib error management gfal2_context_t handle; int ret=-1; char * src_uri = argv[1]; char dst_uri[2048]; char dst_uri2[2048]; generate_random_uri(argv[2], "generate_folder", dst_uri, 2048); generate_random_uri(dst_uri, "generate_folder", dst_uri2, 2048); // initialize gfal gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE | GFAL_VERBOSE_DEBUG); if( (handle = gfal2_context_new(&tmp_err)) == NULL ) { printf(" bad initialization %d : %s.\n", tmp_err->code,tmp_err->message); return -1; } // begin copy printf(" begin to copyfile from %s to %s", src_uri, dst_uri); if( (ret = gfalt_copy_file(handle, NULL, src_uri, dst_uri, &tmp_err) ) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }else printf(" transfer sucessfull ! \n"); gfal2_context_free(handle); return ret; } gfal2-2.3.0/test/functional/gfal2/gfalt_copyfile.c0000644000175000017500000000374712164561703021336 0ustar ellertellert/** * Compile command : gcc -o gfalt_copyfile gfalt_copyfile.c `pkg-config --libs --cflags gfal_transfer` */ #include #include #include #include #include gfal2_context_t handle=NULL; void event_callback(const gfalt_event_t e, gpointer user_data) { static const char* side_str[] = {"SRC", "DST", "BTH"}; printf("[%ld:%ld] %s %s\t%s\t%s\n", e->timestamp / 1000, e->timestamp % 1000, side_str[e->side], g_quark_to_string(e->domain), g_quark_to_string(e->stage), e->description); } // setup interrupt void sigint_cancel(int param) { printf("User pressed Ctrl+C\n"); if(handle) gfal2_cancel(handle); } int main(int argc, char** argv){ signal(SIGINT, &sigint_cancel); if( argc <3 ){ printf(" Usage %s [src_url] [dst_url] \n",argv[0]); return 1; } GError * tmp_err = NULL; // classical GError/glib error management // initialize gfal gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE | GFAL_VERBOSE_TRACE_PLUGIN); if( (handle = gfal2_context_new(&tmp_err)) == NULL ) { printf(" bad initialization %d : %s.\n", tmp_err->code,tmp_err->message); return -1; } gfal2_set_opt_string(handle, "bdii", "LCG_GFAL_INFOSYS", "certtb-bdii-top.cern.ch:2170", &tmp_err); // Params gfalt_params_t params = gfalt_params_handle_new(NULL); gfalt_set_replace_existing_file(params, TRUE, NULL); gfalt_set_create_parent_dir(params, TRUE, NULL); // Register callback gfalt_set_event_callback(params, event_callback, &tmp_err); // begin copy if( gfalt_copy_file(handle, params, argv[1], argv[2], &tmp_err) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); gfal2_context_free(handle); return -1; }else printf(" transfer sucessfull ! \n"); gfal2_context_free(handle); return 0; } gfal2-2.3.0/test/functional/gfal2/gfalt_copyfile_mkdir_test.c0000644000175000017500000000427212164561703023555 0ustar ellertellert/** * Compile command : gcc -o gfalt_copyfile gfalt_copyfile.c `pkg-config --libs --cflags gfal_transfer` */ #include #include #include #include #include int main(int argc, char** argv){ if( argc <3 ){ printf(" Usage %s [src_url] [dst_dir] \n",argv[0]); return 1; } GError * tmp_err = NULL; // classical GError/glib error management gfal2_context_t handle; int ret=-1; char * src_uri = argv[1]; char dst_uri[2048]; char dst_uri2[2048]; char dst_uri_simple[2048]; generate_random_uri(argv[2], "generate_folder", dst_uri, 2048); generate_random_uri(dst_uri, "generate_folder2", dst_uri2, 2048); generate_random_uri(dst_uri2, "generate_folder3", dst_uri, 2048); generate_random_uri(dst_uri, "generate_dest_file", dst_uri2, 2048); generate_random_uri(argv[2], "simple_file_at_root", dst_uri_simple, 2048); // initialize gfal gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE | GFAL_VERBOSE_DEBUG); if( (handle = gfal2_context_new(&tmp_err)) == NULL ) { printf(" bad initialization %d : %s.\n", tmp_err->code,tmp_err->message); return -1; } gfalt_params_t params = gfalt_params_handle_new(NULL); int res_params = gfalt_set_create_parent_dir(params, TRUE, &tmp_err); g_assert(res_params == 0 && tmp_err==NULL); g_assert( gfalt_get_create_parent_dir(params, &tmp_err) == TRUE && tmp_err == NULL); // begin copy printf(" begin to copyfile to child dir from %s to %s", src_uri, dst_uri2); if( (ret = gfalt_copy_file(handle, params, src_uri, dst_uri2, &tmp_err) ) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }else printf(" transfer sucessfull ! \n"); // begin copy printf(" begin to copyfile to root dir from %s to %s", src_uri, dst_uri_simple); if( (ret = gfalt_copy_file(handle, params, src_uri, dst_uri_simple, &tmp_err) ) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }else printf(" transfer sucessfull ! \n"); gfalt_params_handle_delete(params, NULL); gfal2_context_free(handle); return ret; } gfal2-2.3.0/test/functional/gfal2/CMakeLists.txt0000644000175000017500000002675412164561703020746 0ustar ellertellert# # compilation lines for examples # list tests FILE(GLOB src_gfalchecksum_test "gfal_testchecksum.c") FILE(GLOB src_gfalstat "gfal_teststat.c") FILE(GLOB src_gfalaccess "gfal_testaccess.c") FILE(GLOB src_gfal_testchmod "gfal_testchmod.c") FILE(GLOB src_gfal_checksum_tool "gfal_checksum_tool.c") FILE(GLOB src_gfalread "gfal_testread.c") FILE(GLOB src_gfalwrite "gfal_testwrite.c") FILE(GLOB src_gfalrw "gfal_testrw.c") FILE(GLOB src_gfal_test_del_nonex "gfal_test_del_nonex.c") FILE(GLOB src_gfal_test_del "gfal_test_del.c") FILE(GLOB src_gfal_test_mkdir_unlink "gfal_test_mkdir_unlink.c") FILE(GLOB src_gfal_rw_full "gfal_testrw_full.c") FILE(GLOB src_gfal_rw_seq "gfal_testrw_seq.c") FILE(GLOB src_gfalget "gfal_testget.c") FILE(GLOB src_gfaltestcreatedir "gfal_testcreatedir.c") FILE(GLOB src_gfaltestrightchange "gfal_test_right_change.c") FILE(GLOB src_gfaltestrmdirfull "gfal_test_rmdir_full.c") FILE(GLOB src_test_readdir_full "gfal_test_readdir_full.c") FILE(GLOB src_gfalmkdir_full "gfal_mkdir_full.c") FILE(GLOB src_gfaltcopy "gfalt_copyfile.c") FILE(GLOB src_gfaltcopy_cancel "gfalt_copyfile_cancel.c") FILE(GLOB src_gfaltcopy_fts "gfalt_copyfile_fts_style.c") FILE(GLOB src_gfaltcopy_fts_thread "gfalt_copyfile_fts_style_thread_safety.c") FILE(GLOB src_gfaltcopy_test "gfalt_copyfile_test.c") FILE(GLOB src_gfaltcopy_test_timeout "gfalt_copyfile_test_timeout.c") FILE(GLOB src_gfaltcopy_test_thread_safety_timeout "gfalt_copyfile_test_thread_safey_timeout.c") FILE(GLOB src_gfaltcopy_mkdir_test "gfalt_copyfile_mkdir_test.c") FILE(GLOB src_gfaltcopy_perf "gfalt_copyfile_with_performance_marker.c") FILE(GLOB src_copyfile_replace "gfalt_copyfile_replace_test.c") FILE(GLOB src_copyfile_checksum "gfalt_copyfile_checksum_test_simple.c") FILE(GLOB src_copyfile_checksum_user "gfalt_copyfile_checksum_test_userdefined.c") FILE(GLOB src_testdir "gfal_testdir.c") FILE(GLOB src_bring_online "gfal_bring_online.c") FILE(GLOB src_mv "gfal_mv.c") SET(COPY_SRC "*.sh") SET(COPY_DST "${CMAKE_CURRENT_BINARY_DIR}/") IF (FUNCTIONAL_TESTS) include_directories( "${CMAKE_SOURCE_DIR}/src " "${CMAKE_SOURCE_DIR}/src/posix/" ${GLIB2_PKG_INCLUDE_DIRS} ${NETTLE_PKG_INCLUDE_DIRS} ) add_executable(gfal_stat ${src_gfalstat} ) target_link_libraries(gfal_stat ${OUTPUT_NAME_MAIN} ) add_executable(gfal_access ${src_gfalaccess} ) target_link_libraries(gfal_access ${OUTPUT_NAME_MAIN} ) add_executable(gfal_checksum_tool ${src_gfal_checksum_tool}) target_link_libraries(gfal_checksum_tool ${OUTPUT_NAME_MAIN}) FUNCTION(stat_test_all name valid) add_test(gfal_stat_${name} gfal_stat ${valid}) ENDFUNCTION(stat_test_all valid) FUNCTION(test_gfal_test_del_nonex name dir_path) add_test(gfal_test_del_nonex_${name} gfal_test_del_nonex ${dir_path}) ENDFUNCTION(test_gfal_test_del_nonex name path) FUNCTION(test_gfal_test_del name dir_path) add_test(gfal_test_del_${name} gfal_test_del ${dir_path}) ENDFUNCTION(test_gfal_test_del name path) FUNCTION(test_gfal_test_mkdir_unlink name dir_path) add_test(gfal_test_mkdir_unlink_${name} gfal_test_mkdir_unlink ${dir_path}) ENDFUNCTION(test_gfal_test_mkdir_unlink name path) FUNCTION(checksum_test_all name valid) # add_test(gfal_checksum_${name} gfal_checksum_test ${valid}) ENDFUNCTION(checksum_test_all name valid) FUNCTION(checksum_test_simple name valid_file algo) add_test(gfal_checksum_simple_${name} gfal_checksum_tool ${valid_file} ${algo}) ENDFUNCTION(checksum_test_simple name valid_file algo) FUNCTION(chmod_test_all name valid right1 right2 right3 right4) add_test(gfal_test_right_change_${name} gfal_test_right_change ${valid} ${right1} ${right2} ${right3} ${right4}) ENDFUNCTION(chmod_test_all name valid right1 right2 right3 right4) FUNCTION(rmdir_test_all name valid_dir valid_file) add_test(gfal_test_rmdir_full_${name} gfal_test_rmdir_full ${valid_dir} ${valid_file} ) ENDFUNCTION(rmdir_test_all name valid right1 right2 right3 right4) FUNCTION(test_readdir_full name valid) add_test(gfal_test_readdir_full_${name} gfal_test_readdir_full ${valid}) ENDFUNCTION(test_readdir_full valid) FUNCTION(rwt_test_all name path size) add_test(gfal_rw_size_${name} gfal_rw_full ${path} ${size}) ENDFUNCTION(rwt_test_all name path size) FUNCTION(rwt_test_seq name path size size_read) add_test(gfal_rw_seq_${name} gfal_rw_seq ${path} ${size} ${size_read}) ENDFUNCTION(rwt_test_seq name path size size_read) add_executable(gfal_read ${src_gfalread} ) target_link_libraries(gfal_read ${OUTPUT_NAME_MAIN} ) add_executable(gfal_write ${src_gfalwrite} ) target_link_libraries(gfal_write ${OUTPUT_NAME_MAIN} ) add_executable(gfal_rw ${src_gfalrw} ) target_link_libraries(gfal_rw ${OUTPUT_NAME_MAIN} ) add_executable(gfal_test_del_nonex ${src_gfal_test_del_nonex} ${src_lib_test}) target_link_libraries(gfal_test_del_nonex ${OUTPUT_NAME_MAIN} ) add_executable(gfal_test_del ${src_gfal_test_del} ${src_lib_test}) target_link_libraries(gfal_test_del ${OUTPUT_NAME_MAIN} ) add_executable(gfal_test_mkdir_unlink ${src_gfal_test_mkdir_unlink} ${src_lib_test}) target_link_libraries(gfal_test_mkdir_unlink ${OUTPUT_NAME_MAIN} ) add_executable(gfal_rw_full ${src_gfal_rw_full} ) target_link_libraries(gfal_rw_full ${OUTPUT_NAME_MAIN} ) add_executable(gfal_rw_seq ${src_gfal_rw_seq} ) target_link_libraries(gfal_rw_seq ${OUTPUT_NAME_MAIN} ) add_executable(gfal_testget ${src_gfalget} ) target_link_libraries(gfal_testget ${OUTPUT_NAME_MAIN} ) add_executable(gfal_testchmod ${src_gfal_testchmod} ) target_link_libraries(gfal_testchmod ${OUTPUT_NAME_MAIN} ) add_executable(gfal_createdir ${src_gfaltestcreatedir} ) target_link_libraries(gfal_createdir ${OUTPUT_NAME_MAIN} ) add_executable(gfal_test_mkdir_full ${src_gfalmkdir_full} ) target_link_libraries(gfal_test_mkdir_full ${OUTPUT_NAME_MAIN} ${GLIB2_PKG_LIBRARIES}) add_executable(gfal_test_right_change ${src_gfaltestrightchange} ${src_lib_test}) target_link_libraries(gfal_test_right_change ${OUTPUT_NAME_MAIN} ${GLIB2_PKG_LIBRARIES}) add_executable(gfal_test_rmdir_full ${src_gfaltestrmdirfull}) target_link_libraries(gfal_test_rmdir_full ${OUTPUT_NAME_MAIN} ${GLIB2_PKG_LIBRARIES}) add_executable(gfal_test_readdir_full ${src_test_readdir_full} ) target_link_libraries(gfal_test_readdir_full ${OUTPUT_NAME_MAIN} ${GLIB2_PKG_LIBRARIES}) add_executable(gfal_ls ${src_testdir}) target_link_libraries(gfal_ls ${OUTPUT_NAME_MAIN} ${GLIB2_PKG_LIBRARIES}) add_executable(gfal_bring_online ${src_bring_online}) target_link_libraries(gfal_bring_online ${OUTPUT_NAME_MAIN} ${GLIB2_PKG_LIBRARIES}) add_executable(gfal_mv ${src_mv}) target_link_libraries(gfal_mv ${OUTPUT_NAME_MAIN} ${GLIB2_PKG_LIBRARIES}) FUNCTION(mkdir_test_all name prefix) add_test(gfal_mkdir_full_${name} gfal_test_mkdir_full ${prefix}) ENDFUNCTION(mkdir_test_all name prefix) IF (MAIN_TRANSFER) add_executable(gfal_copyfile ${src_gfaltcopy} ) target_link_libraries(gfal_copyfile ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_MAIN}) add_executable(gfal_copyfile_cancel ${src_gfaltcopy_cancel} ) target_link_libraries(gfal_copyfile_cancel ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_MAIN} ${CMAKE_THREAD_LIBS_INIT} pthread) add_executable(gfal_copyfile_fts ${src_gfaltcopy_fts} ) target_link_libraries(gfal_copyfile_fts ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_MAIN}) add_executable(gfal_copyfile_fts_thread ${src_gfaltcopy_fts_thread} ${src_lib_test}) target_link_libraries(gfal_copyfile_fts_thread ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_MAIN}) add_executable(gfal_copyfile_perf ${src_gfaltcopy_perf} ) target_link_libraries(gfal_copyfile_perf ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_MAIN}) add_executable(gfal_copyfile_test ${src_gfaltcopy_test} ${src_lib_test}) target_link_libraries(gfal_copyfile_test ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_MAIN}) add_executable(gfal_copyfile_thead_safety_test ${src_gfaltcopy_test_thread_safety_timeout} ${src_lib_test}) target_link_libraries(gfal_copyfile_thead_safety_test ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_MAIN}) add_executable(gfal_copyfile_test_timeout ${src_gfaltcopy_test_timeout} ${src_lib_test}) target_link_libraries(gfal_copyfile_test_timeout ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_MAIN}) add_executable(gfal_copyfile_mkdir_test ${src_gfaltcopy_mkdir_test} ${src_lib_test}) target_link_libraries(gfal_copyfile_mkdir_test ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_MAIN}) add_executable(copyfile_replace ${src_copyfile_replace} ${src_lib_test}) target_link_libraries(copyfile_replace ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_MAIN}) add_executable(copyfile_checksum ${src_copyfile_checksum} ${src_lib_test}) target_link_libraries(copyfile_checksum ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_MAIN}) add_executable(copyfile_checksum_user ${src_copyfile_checksum_user} ${src_lib_test}) target_link_libraries(copyfile_checksum_user ${OUTPUT_NAME_TRANSFER} ${OUTPUT_NAME_MAIN}) # copy_files(${COPY_SRC} ${COPY_DST}) # add_test(functional_copyfile gfal2_copyfile.sh) # add_test(functional_copyfile_srm gfal2_copyfile_srm.sh) FUNCTION(copy_file_test_full name src_file dir_src) add_test(copyfile_checksum_${name} copyfile_checksum ${src_file} ${dir_src}) add_test(copyfile_checksum_user_${name} copyfile_checksum_user ${src_file} ${dir_src}) add_test(copyfile_replace_${name} copyfile_replace ${src_file} ${dir_src}) add_test(copyfile_test_${name} gfal_copyfile_test ${src_file} ${dir_src}) add_test(copyfile_test_mkdir_${name} gfal_copyfile_mkdir_test ${src_file} ${dir_src}) ENDFUNCTION(copy_file_test_full name dir_src) FUNCTION(copy_file_test_simple name src_file dir_src) add_test(copyfile_test_${name} gfal_copyfile_test ${src_file} ${dir_src}) ENDFUNCTION(copy_file_test_simple name src_file dir_src) FUNCTION(copy_file_test_timeout name src_file dir_src) add_test(copy_file_test_timeout_${name} gfal_copyfile_test_timeout ${src_file} ${dir_src}) ENDFUNCTION(copy_file_test_timeout name src_file dir_src) ENDIF (MAIN_TRANSFER) include(functional-test-parameters.cmake) ENDIF (FUNCTIONAL_TESTS) gfal2-2.3.0/test/functional/gfal2/gfal_testrw_full.c0000644000175000017500000000436512164561703021707 0ustar ellertellert /** * Compile command : gcc gfal_testrw_full.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include #include #include #include #define BLKLEN 65536 int main(int argc, char **argv) { int fd; int i; int rc; gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE); // switch Gfal in verbose mode if (argc != 3) { fprintf (stderr, "usage: %s base_path size_file \n", argv[0]); exit (1); } long size = atol(argv[2]); char buff_name[2048]; char ibuf[size]; char obuf[size]; srand(time(NULL)); printf(" create data of size %ld \n", size); for (i = 0; i < size; i++) obuf[i] = i; snprintf(buff_name, 2048, "%s/testrw_full_%ld_%ld", argv[1], (long) time(NULL),(long) rand()); // try to get a enoent printf ("try to access unexisting file %s\n", buff_name); if ((fd = gfal_open (buff_name, O_RDONLY, 0)) > 0) { g_assert_not_reached(); exit (1); } g_assert(gfal_posix_code_error() == ENOENT); g_assert(errno == ENOENT); errno =0; gfal_posix_clear_error(); printf ("creating file name %s\n", buff_name); if ((fd = gfal_open (buff_name, O_WRONLY | O_CREAT, 0644)) < 0) { gfal_posix_check_error(); exit (1); } printf ("open successful, fd = %d\n", fd); if ((rc = gfal_write (fd, obuf, size)) != size) { gfal_posix_check_error(); (void) gfal_close (fd); exit (1); } printf ("write successful\n"); if ((rc = gfal_close (fd)) < 0) { gfal_posix_check_error(); exit (1); } printf ("close successful\n"); printf ("reading back %s\n", buff_name); if ((fd = gfal_open (buff_name, O_RDONLY, 0)) < 0) { gfal_posix_check_error(); exit (1); } printf ("open successful, fd = %d\n", fd); if ((rc = gfal_read (fd, ibuf, size)) != size) { gfal_posix_check_error(); (void) gfal_close (fd); exit (1); } printf ("read successful\n"); if ((rc = gfal_close (fd)) < 0) { gfal_posix_check_error(); exit (1); } printf ("close successful\n"); for (i = 0; i < size; i++) { if (ibuf[i] != obuf[i]) { fprintf (stderr, "compare failed at offset %d\n", i); exit (1); } } printf ("compare successful\n"); exit (0); } gfal2-2.3.0/test/functional/gfal2/gfalt_copyfile_test_thread_safey_timeout.c0000644000175000017500000000330412164561703026646 0ustar ellertellert/** * Compile command : gcc -o gfalt_copyfile gfalt_copyfile.c `pkg-config --libs --cflags gfal_transfer` */ #include #include #include #include #include int main(int argc, char** argv){ if( argc <3 ){ printf(" Usage %s [src_url_big_file] [dst_dir] \n",argv[0]); return 1; } GError * tmp_err = NULL; // classical GError/glib error management gfal2_context_t handle; int ret=-1; char * src_uri = argv[1]; char dst_uri[2048]; gfalt_params_t params = gfalt_params_handle_new(NULL); // initialize gfal gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE | GFAL_VERBOSE_DEBUG); if( (handle = gfal2_context_new(&tmp_err)) == NULL ) { printf(" bad initialization %d : %s.\n", tmp_err->code,tmp_err->message); return -1; } // begin copy printf(" begin to copyfile from %s to %s", src_uri, dst_uri); ret = gfalt_set_timeout(params,1, &tmp_err); g_assert(tmp_err == NULL && ret == 0); while(ret ==0){ generate_random_uri(argv[2], "bigfile_cancel", dst_uri, 2048); if( (ret = gfalt_copy_file(handle, params, src_uri, dst_uri, &tmp_err) ) == 0){ fprintf(stderr, "should fail... transfer successfull \n"); ret= -1; }else if( tmp_err->code != ETIMEDOUT){ fprintf(stderr, " not a timeout error : problem %s \n", tmp_err->message); ret= -1; }else{ fprintf(stderr, " success : timeout trigerred :%s \n", tmp_err->message); g_clear_error(&tmp_err); ret = 0; } } gfal2_context_free(handle); gfalt_params_handle_delete(params,NULL); return ret; } gfal2-2.3.0/test/functional/gfal2/gfalt_copyfile_checksum_test_userdefined.c0000644000175000017500000000471412164561703026627 0ustar ellertellert/** * Compile command : gcc -o gfalt_copyfile gfalt_copyfile.c `pkg-config --libs --cflags gfal_transfer` */ #include #include #include #include #include #include int main(int argc, char** argv){ if( argc <3 ){ printf(" Usage %s [src_url] [dst_dir] \n",argv[0]); return 1; } GError * tmp_err = NULL; // classical GError/glib error management gfal2_context_t handle; char * src_uri = argv[1]; char chk_buffer[2048]; char dst_uri[2048]; char dst_uri2[2048]; generate_random_uri(argv[2], "checksum", dst_uri, 2048); generate_random_uri(argv[2], "checksum2", dst_uri2, 2048); // initialize gfal gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE | GFAL_VERBOSE_DEBUG); if( (handle = gfal2_context_new(&tmp_err)) == NULL ) { printf(" bad initialization %d : %s.\n", tmp_err->code,tmp_err->message); return -1; } int ret=-1; // stat initial file struct stat st; if( (ret = gfal_stat(src_uri, &st)) != 0){ gfal_posix_check_error(); g_assert_not_reached(); } printf(" get source checksum \n"); if( (ret = gfal2_checksum(handle, src_uri, "ADLER32",0,0,chk_buffer,2048, &tmp_err)) != 0){ g_assert_not_reached(); } g_assert(tmp_err == NULL); printf(" source checksum %s \n", chk_buffer); printf(" create params without replace but with checksum verification\n"); gfalt_params_t params = gfalt_params_handle_new(&tmp_err); g_assert(tmp_err==NULL); gfalt_set_checksum_check(params, TRUE, &tmp_err); g_assert(tmp_err==NULL); gfalt_set_user_defined_checksum(params,"ADLER32", chk_buffer, &tmp_err); g_assert(tmp_err==NULL); // begin copy if( (ret = gfalt_copy_file(handle, params, src_uri, dst_uri, &tmp_err) ) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); g_assert_not_reached(); return -1; }else printf(" transfer sucessfull, valid initial copy! \n"); printf(" add params replace \n"); printf(" copyfile 2 with bad checksum \n"); gfalt_set_user_defined_checksum(params, "ADLER32", "aaaaaaa", &tmp_err); if( (ret = gfalt_copy_file(handle, params, src_uri, dst_uri2, &tmp_err) ) == 0){ g_assert_not_reached(); return -1; } g_assert(tmp_err->code == EIO); g_clear_error(&tmp_err); gfalt_params_handle_delete(params, &tmp_err); gfal2_context_free(handle); return 0; } gfal2-2.3.0/test/functional/gfal2/gfal_checksum_tool.c0000644000175000017500000000200012164561703022154 0ustar ellertellert/** * Compile command : gcc gfal_teststat.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include int main(int argc, char **argv) { char checksum[2048]={0}; GError * tmp_err=NULL; char * url = argv[1]; char * chk = argv[2]; int res =-1; if(argc < 3){ fprintf(stdout, "Usage : %s [url] [checksum_type] \n", argv[0]); fprintf(stdout, "\t\t Example: %s srm://cvitbdpm1.cern.ch/dpm/cern.ch/home/dteam/testcheck00011 MD5 \n", argv[0]); return 1; } gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE | GFAL_VERBOSE_DEBUG); gfal2_context_t context = gfal2_context_new(&tmp_err); if(context){ res= gfal2_checksum(context, url, chk,0,0, checksum,1024, &tmp_err); if(res == 0) printf("%s %s\n", checksum, url); gfal2_context_free(context); } if(tmp_err) fprintf(stderr," %s\n", tmp_err->message); return res; } gfal2-2.3.0/test/functional/gfal2/gfal_testwrite.c0000644000175000017500000000175312164561703021365 0ustar ellertellert /** * Compile command : gcc gfal_testrw.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #define BLKLEN 65536 int main(int argc, char **argv) { int fd; int i; char obuf[BLKLEN]; int rc; // gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE); // switch Gfal in verbose mode if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } for (i = 0; i < BLKLEN; i++) obuf[i] = i; printf ("creating file %s\n", argv[1]); if ((fd = gfal_open (argv[1], O_WRONLY|O_CREAT, 0644)) < 0) { gfal_posix_check_error(); exit (1); } printf ("open successful, fd = %d\n", fd); if ((rc = gfal_write (fd, obuf, BLKLEN)) != BLKLEN) { gfal_posix_check_error(); (void) gfal_close (fd); exit (1); } printf ("write successful\n"); if ((rc = gfal_close (fd)) < 0) { gfal_posix_check_error(); exit (1); } printf ("close successful\n"); exit (0); } gfal2-2.3.0/test/functional/gfal2/gfal_bring_online.c0000644000175000017500000000555112164561703022000 0ustar ellertellert#include #include #include #include void usage(char **argv, const char* msg, ...) { if (msg) { va_list args; va_start(args, msg); vfprintf(stderr, msg, args); va_end(args); fputc('\n', stderr); } fprintf (stderr, "usage: %s filename sync|async [protocol [protocol|...]\n", argv[0]); fprintf (stderr, "Protocols are optional. By default: rfio\n"); exit (1); } int main(int argc, char **argv) { gfal2_context_t handle; GError *error = NULL; const char *surl, *protocols[10]; int nprotocols, i, async, status; char token[512]; // Set verbosity gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE); if (argc < 3) usage(argv, "Too few arguments"); // Parse arguments surl = argv[2]; if (strcasecmp(argv[1], "sync") == 0) async = 0; else if (strcasecmp(argv[1], "async") == 0) async = 1; else usage(argv, "Unknown argument: %s", argv[1]); if (argc > 3) { nprotocols = argc - 3; for (i = 0; i < 10; ++i) protocols[i] = argv[i + 3]; } else { nprotocols = 1; protocols[0] = "rfio"; } printf("Remote SURL: %s\n", surl); printf("Protocols: \n"); for (i = 0; i < nprotocols; ++i) { printf("\t%s\n", protocols[i]); } // Set up handle handle = gfal2_context_new(&error); if (!handle) { fprintf(stderr, " bad initialization %d : %s.\n", error->code, error->message); return -1; } gfal2_set_opt_string_list(handle, "SRM PLUGIN", "TURL_PROTOCOLS", protocols, nprotocols, &error); if (error) { fprintf(stderr, "Could not set the protocol list: %s\n", error->message); return -1; } // Bring online status = gfal2_bring_online(handle, surl, 28800, 28800, token, sizeof(token), async, &error); if (status < 0) printf("Bring online failed: %s (%d)\n", error->message, error->code); else if (status == 0) printf("Bring online queued. Got token %s\n", token); else printf("Bring online succeeded! Got token %s\n", token); while (status == 0) { fputc('.', stdout); fflush(stdout); usleep(100); status = gfal2_bring_online_poll(handle, surl, token, &error); if (status < 0) printf("\nPolling failed: %s (%d)\n", error->message, error->code); else printf("\nBring online finished!\n"); } // Release if (!error) { if (gfal2_release_file(handle, surl, token, &error) < 0) printf("Release failed: %s (%d)\n", error->message, error->code); else printf("Release succeeded!\n"); } // Free gfal2_context_free(handle); return 0; } gfal2-2.3.0/test/functional/gfal2/gfal2_copyfile.sh0000755000175000017500000000233112164561703021413 0ustar ellertellert#!/bin/bash # test for the third party transfer # source `dirname $0`/gfal2_config_test.sh export PATH=`dirname $0`:$PATH tmp_filename GRIDFTP_DPM_SRC=${GRIDFTP_PREFIX_DPM}/${GENERIC_VALID_FILENAME} GRIDFTP_DPM_DST=${GRIDFTP_PREFIX_DPM}/$TMP_FILENAME tmp_filename GRIDFTP_DPM_SRCENOENT=${GRIDFTP_PREFIX_DPM}/testnonvalidfilejexistepas GRIDFTP_DPM_DSTENOENT=${GRIDFTP_PREFIX_DPM}/$TMP_FILENAME tmp_filename GRIDFTP_DPM_SRCEACCESS=${GRIDFTP_PREFIX_DPM}/${GENERIC_NO_READACCESS_FILENAME} GRIDFTP_DPM_DSTEACCESS=${GRIDFTP_PREFIX_DPM}/$TMP_FILENAME function gfal_copyfile_exec { echo "gfalcopy from $1 to $2" gfal_copyfile $1 $2 } # valid gridftp copy on dpm set -e gfal_copyfile_exec ${GRIDFTP_DPM_SRC} ${GRIDFTP_DPM_DST} set +e # enoent copy on dpm, must be a errno = 2 res=$(gfal_copyfile_exec ${GRIDFTP_DPM_SRCENOENT} ${GRIDFTP_DPM_DSTENOENT}) enoent_res=$(echo $res | grep "2") if [[ "$enoent_res" == "" ]]; then echo " bad error code displayed : $res" exit 127 fi # enoent copy on dpm, must be a eacess #gfal_copyfile_exec ${GRIDFTP_DPM_SRCEACCESS} ${GRIDFTP_DPM_DSTEACCESS} #res=$() #eaccess_res=$(echo $res | grep "2") #if [[ "$eaccess_res" == "" ]]; then # echo " bad error code displayed : $res" # exit 127 #fi exit 0 gfal2-2.3.0/test/functional/gfal2/gfal_testrw.c0000644000175000017500000000322212164561703020654 0ustar ellertellert /** * Compile command : gcc gfal_testrw.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #define BLKLEN 65536 int main(int argc, char **argv) { int fd; int i; char ibuf[BLKLEN]; char obuf[BLKLEN]; int rc; // gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE); // switch Gfal in verbose mode if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } for (i = 0; i < BLKLEN; i++) obuf[i] = i; printf ("creating file %s\n", argv[1]); if ((fd = gfal_open (argv[1], O_WRONLY|O_CREAT, 0644)) < 0) { gfal_posix_check_error(); exit (1); } printf ("open successful, fd = %d\n", fd); if ((rc = gfal_write (fd, obuf, BLKLEN)) != BLKLEN) { gfal_posix_check_error(); (void) gfal_close (fd); exit (1); } printf ("write successful\n"); if ((rc = gfal_close (fd)) < 0) { gfal_posix_check_error(); exit (1); } printf ("close successful\n"); printf ("reading back %s\n", argv[1]); if ((fd = gfal_open (argv[1], O_RDONLY, 0)) < 0) { gfal_posix_check_error(); exit (1); } printf ("open successful, fd = %d\n", fd); if ((rc = gfal_read (fd, ibuf, BLKLEN)) != BLKLEN) { gfal_posix_check_error(); (void) gfal_close (fd); exit (1); } printf ("read successful\n"); if ((rc = gfal_close (fd)) < 0) { gfal_posix_check_error(); exit (1); } printf ("close successful\n"); for (i = 0; i < BLKLEN; i++) { if (ibuf[i] != obuf[i]) { fprintf (stderr, "compare failed at offset %d\n", i); exit (1); } } printf ("compare successful\n"); exit (0); } gfal2-2.3.0/test/functional/gfal2/gfal_testread.c0000644000175000017500000000160012164561703021135 0ustar ellertellert/** * Compile command : gcc gfal_testread.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include #define BLKLEN 65536 int main(int argc, char **argv) { int fd; char ibuf[BLKLEN]; int rc; if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } printf ("opening %s\n", argv[1]); if ((fd = gfal_open (argv[1], O_RDONLY, 0)) < 0) { gfal_posix_check_error(); exit (1); } printf ("open successful, fd = %d (errno = %d)\n", fd, errno); if ((rc = gfal_read (fd, ibuf, BLKLEN)) < 0) { gfal_posix_check_error(); (void) gfal_close (fd); exit (1); } printf ("read successful (errno = %d)\n", errno); printf ("buffer: \n"); fputs(ibuf, stdout); if ((gfal_close (fd)) < 0) { gfal_posix_check_error(); exit (1); } printf ("close successful\n"); exit (0); } gfal2-2.3.0/test/functional/gfal2/gfalt_copyfile_cancel.c0000644000175000017500000001075612164561703022641 0ustar ellertellert/** * Start a transfer, wait half a second, and cancel it from a different thread */ #include #include #include #include #include typedef struct copier_params_t { gfal2_context_t handle; gfalt_params_t transfer_params; const char *source; const char *destination; } copier_params_t; GQuark test_domain() { return g_quark_from_static_string("gfalt_copyfile_cancel"); } void* copier_thread_method(void* data) { copier_params_t *params = (copier_params_t*)data; GError *error = NULL; struct stat stat_buffer; // Source must exist if (gfal2_stat(params->handle, params->source, &stat_buffer, &error) !=0) { g_prefix_error(&error, "Source file does not exist "); goto out; } // Do the copy if (gfalt_copy_file(params->handle, params->transfer_params, params->source, params->destination, &error) == 0) { if (gfal2_stat(params->handle, params->destination, &stat_buffer, &error) != 0) g_prefix_error(&error, "Destination file does not exist after the copy "); } // Exit sequence out: free(params); return error; } int spawn_copy(pthread_t* thread, gfal2_context_t handle, gfalt_params_t transfer_params, const char* source, const char* destination) { copier_params_t *copier_params = malloc(sizeof(*copier_params)); copier_params->handle = handle; copier_params->transfer_params = transfer_params; copier_params->source = source; copier_params->destination = destination; return pthread_create(thread, NULL, copier_thread_method, copier_params); } void monitor_callback(gfalt_transfer_status_t h, const char* source, const char* destination, gpointer udata) { // We don't care about the performance data. We just want to trigger // all those internal locks. (void)h; (void)source; (void)destination; (void)udata; } void event_callback(const gfalt_event_t e, gpointer user_data) { fprintf(stderr, "[%s] %s %s\n", g_quark_to_string(e->domain), g_quark_to_string(e->stage), e->description); } int main(int argc, char** argv) { const char *source; const char *destination; gfal2_context_t handle = NULL; gfalt_params_t transfer_params = NULL; GError *error = NULL, *copier_error = NULL; pthread_t copier_thread; int i; // Parse params if (argc != 3) { fprintf(stderr, "Usage: %s SOURCE DESTINATION", argv[0]); return 1; } source = argv[1]; destination = argv[2]; // Create handle and transfer parameters handle = gfal2_context_new(&error); if (!handle) goto out; transfer_params = gfalt_params_handle_new(&error); if (!transfer_params) goto unwind_context; gfalt_set_replace_existing_file(transfer_params, TRUE, NULL); gfalt_set_monitor_callback(transfer_params, monitor_callback, NULL); gfalt_set_event_callback(transfer_params, event_callback, NULL); // Spawn the thread that will do the copy printf("Spawning the copy '%s' => '%s'\n", source, destination); if (spawn_copy(&copier_thread, handle, transfer_params, source, destination) != 0) { error = g_error_new(test_domain(), errno, "Could not spawn the copier thread."); goto unwind_params; } // Give it some time printf("Waiting some time before canceling\n"); for (i = 0; i < 30; ++i) { fputc('.', stdout); fflush(stdout); sleep(1); } fputc('\n', stdout); // Cancel printf("Calling gfal2_cancel.\n"); if (gfal2_cancel(handle) <= 0) { error = g_error_new(test_domain(), EINVAL, "No jobs canceled. Expected at least one."); goto unwind_thread; } printf("Transfer canceled normally\n"); // Unwinding unwind_thread: pthread_join(copier_thread, (void**)&copier_error); unwind_params: gfalt_params_handle_delete(transfer_params, NULL); unwind_context: gfal2_context_free(handle); out: if (error) fprintf(stderr, "FAILURE: %s (%d)\n", error->message, error->code); if (copier_error) fprintf(stderr, "COPIER FAILURE: %s (%d)\n", copier_error->message, copier_error->code); return error || (copier_error && copier_error->code != ECANCELED); } gfal2-2.3.0/test/functional/gfal2/gfal2_copyfile_srm.sh0000755000175000017500000000142212164561703022274 0ustar ellertellert#!/bin/bash # test for the third party transfer # source `dirname $0`/gfal2_config_test.sh export PATH=`dirname $0`:$PATH tmp_filename SRM_DPM_SRC=${SRM_PREFIX_DPM}/${GENERIC_VALID_FILENAME} SRM_DPM_DST=${SRM_PREFIX_DPM}/$TMP_FILENAME tmp_filename SRM_DPM_SRCENOENT=${SRM_PREFIX_DPM}/testnonvalidfilejexistepas SRM_DPM_DSTENOENT=${SRM_PREFIX_DPM}/$TMP_FILENAME function gfal_copyfile_exec { echo "gfalcopy from $1 to $2" gfal_copyfile $1 $2 } # valid gridftp copy on dpm set -e gfal_copyfile_exec ${SRM_DPM_SRC} ${SRM_DPM_DST} set +e # enoent copy on dpm, must be a errno = 2 res=$(gfal_copyfile_exec ${SRM_DPM_SRCENOENT} ${SRM_DPM_DSTENOENT}) enoent_res=$(echo $res | grep "2") if [[ "$enoent_res" == "" ]]; then echo " bad error code displayed : $res" exit 127 fi exit 0 gfal2-2.3.0/test/functional/gfal2/gfal_test_right_change.c0000644000175000017500000000377012164561703023015 0ustar ellertellert/** * Compile command : gcc gfal_test_right_change.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include #include #include int main(int argc, char **argv) { int i; mode_t mode; char *file; struct stat initial_stat, current_stat; char buff[2048]; if (argc < 3) { fprintf (stderr, "usage: %s file mode1 mode2 mode3 mode4\n", argv[0]); exit (1); } file = argv[1]; gfal_set_verbose(GFAL_VERBOSE_TRACE); generate_random_uri(file, "right_change_test_generated", buff, 2048); printf("Creating directory for right check %s \n", buff); if( gfal_mkdir(buff, 0755) < 0){ gfal_posix_check_error(); g_assert_not_reached(); } for(i=2; i < argc; ++i){ printf ("Checking initial right of %s ...\n", file); if (gfal_stat (buff, &initial_stat) < 0) { gfal_posix_check_error(); g_assert_not_reached(); } printf ("initial right 0%o ...\n", initial_stat.st_mode); mode = (mode_t) strtol (argv[i], NULL, 8); if (errno > 0) { perror ("strtol"); exit (1); } printf ("Changing mode of '%s' to %o ...\n", file, mode); if (gfal_chmod (buff, mode) < 0) { gfal_posix_check_error(); g_assert_not_reached(); } if (gfal_stat (buff, ¤t_stat) < 0) { gfal_posix_check_error(); g_assert_not_reached(); } printf ("checking the new right 0%o ...\n", current_stat.st_mode); g_assert(mode == (current_stat.st_mode & 0777)); printf(" rolling back the change ...."); if (gfal_chmod (buff, initial_stat.st_mode) < 0) { gfal_posix_check_error(); g_assert_not_reached(); } if (gfal_stat (buff, ¤t_stat) < 0) { gfal_posix_check_error(); g_assert_not_reached(); } printf ("checking the rollback 0%o ...\n", current_stat.st_mode); g_assert(current_stat.st_mode == initial_stat.st_mode); } printf ("All is ok.\n"); exit (0); } gfal2-2.3.0/test/functional/gfal2/gfalt_copyfile_checksum_test_simple.c0000644000175000017500000000467712164561703025633 0ustar ellertellert/** * Compile command : gcc -o gfalt_copyfile gfalt_copyfile.c `pkg-config --libs --cflags gfal_transfer` */ #include #include #include #include #include #include int main(int argc, char** argv){ if( argc <3 ){ printf(" Usage %s [src_url] [dst_dir] \n",argv[0]); return 1; } GError * tmp_err = NULL; // classical GError/glib error management gfal2_context_t handle; char * src_uri = argv[1]; char dst_uri[2048]; char uri_enoent[2048]; generate_random_uri(argv[2], "checksum", dst_uri, 2048); generate_random_uri(argv[2], "checksum_enoent", uri_enoent, 2048); // initialize gfal gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE | GFAL_VERBOSE_DEBUG); if( (handle = gfal2_context_new(&tmp_err)) == NULL ) { printf(" bad initialization %d : %s.\n", tmp_err->code,tmp_err->message); return -1; } int ret=-1; // stat initial file struct stat st; if( (ret = gfal_stat(src_uri, &st)) != 0){ gfal_posix_check_error(); g_assert_not_reached(); } printf(" create params without replace but with checksum verification\n"); gfalt_params_t params = gfalt_params_handle_new(&tmp_err); g_assert(tmp_err==NULL); gfalt_set_checksum_check(params, TRUE, &tmp_err); g_assert(tmp_err==NULL); // begin copy if( (ret = gfalt_copy_file(handle, params, src_uri, dst_uri, &tmp_err) ) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); g_assert_not_reached(); return -1; }else printf(" transfer sucessfull, valid initial copy! \n"); printf(" add params replace \n"); gfalt_set_replace_existing_file(params, TRUE, &tmp_err); g_assert(tmp_err==NULL); printf(" try replace transfer \n"); if( (ret = gfalt_copy_file(handle, params, src_uri, dst_uri, &tmp_err) ) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); g_assert_not_reached(); return -1; }else printf(" second transfer is a success \n"); printf(" try a enoent src transfer \n"); if( (ret = gfalt_copy_file(handle, params, uri_enoent, dst_uri, &tmp_err) ) == 0){ g_assert_not_reached(); return -1; }else{ g_assert(tmp_err); g_assert(tmp_err->code == ENOENT); g_clear_error(&tmp_err); } gfalt_params_handle_delete(params, &tmp_err); gfal2_context_free(handle); return 0; } gfal2-2.3.0/test/functional/gfal2/gfalt_copyfile_replace_test.c0000644000175000017500000000620112164561703024054 0ustar ellertellert/** * Compile command : gcc -o gfalt_copyfile gfalt_copyfile.c `pkg-config --libs --cflags gfal_transfer` */ #include #include #include #include #include #include int main(int argc, char** argv){ if( argc <3 ){ printf(" Usage %s [src_url] [dst_dir] \n",argv[0]); return 1; } GError * tmp_err = NULL; // classical GError/glib error management gfal2_context_t handle; char * src_uri = argv[1]; char dst_uri[2048]; generate_random_uri(argv[2], "replace", dst_uri, 2048); // initialize gfal gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE | GFAL_VERBOSE_DEBUG); if( (handle = gfal2_context_new(&tmp_err)) == NULL ) { printf(" bad initialization %d : %s.\n", tmp_err->code,tmp_err->message); return -1; } int ret=-1; // stat initial file struct stat st; if( (ret = gfal_stat(src_uri, &st)) != 0){ gfal_posix_check_error(); g_assert_not_reached(); } // begin copy if( (ret = gfalt_copy_file(handle, NULL, src_uri, dst_uri, &tmp_err) ) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); g_assert_not_reached(); return -1; }else printf(" transfer sucessfull, valid initial copy! \n"); // copy again -> should fail printf(" try to copy again without replace flag \n"); if( (ret = gfalt_copy_file(handle, NULL, src_uri, dst_uri, &tmp_err) ) != 0){ printf(" transfer failed, like wanted, %d \n",gfal_posix_code_error()); g_assert( tmp_err->code == EEXIST); g_clear_error(&tmp_err); }else{ printf(" copy should fail fatal \n"); g_assert_not_reached(); } printf(" create params replace \n"); gfalt_params_t params = gfalt_params_handle_new(&tmp_err); g_assert(tmp_err==NULL); gfalt_set_replace_existing_file(params, TRUE, &tmp_err); g_assert(tmp_err==NULL); printf(" try replace transfer \n"); if( (ret = gfalt_copy_file(handle, params, src_uri, dst_uri, &tmp_err) ) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); g_assert_not_reached(); return -1; }else printf(" second transfer is a success \n"); printf("delete files, and transfer again with replace parameter \n"); if( ( ret = gfal_unlink(dst_uri) ) != 0){ gfal_posix_check_error(); g_assert_not_reached(); } printf(" try re-do transfer \n"); if( (ret = gfalt_copy_file(handle, params, src_uri, dst_uri, &tmp_err) ) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); g_assert_not_reached(); return -1; }else printf(" third transfer is a success \n"); printf("remove replace flag and try again \n"); gfalt_set_replace_existing_file(params, FALSE, &tmp_err); if( (ret = gfalt_copy_file(handle, params, src_uri, dst_uri, &tmp_err) ) != 0){ printf(" transfer failed, like wanted , %d \n",gfal_posix_code_error()); g_assert( tmp_err->code == EEXIST); g_clear_error(&tmp_err); }else{ printf(" copy should fail fatal \n"); g_assert_not_reached(); } gfalt_params_handle_delete(params, &tmp_err); gfal2_context_free(handle); return 0; } gfal2-2.3.0/test/functional/gfal2/gfal_test_readdir_full.c0000644000175000017500000000674012164561703023027 0ustar ellertellert/** * Compile command : gcc gfal_test_readdir_full.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include #include #include #include int main(int argc, char **argv) { char *file; char buff[2048]; char buff2[2048]; int count=0; GError * tmp_err=NULL; struct dirent* d; struct stat st; if (argc < 2) { fprintf (stderr, "usage: %s dir_base \n", argv[0]); exit (1); } gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_DEBUG | GFAL_VERBOSE_VERBOSE); srand(time(NULL)); file = argv[1]; snprintf(buff, 2048, "%s/fsdsdfkmklfsdmklmkl_enoent", file); printf(" try to list not existing dir .... %s", buff); DIR* p; if( (p = gfal_opendir(buff)) != NULL){ g_assert_not_reached(); } g_assert( gfal_posix_code_error() == ENOENT); gfal_posix_clear_error(); gfal_closedir(p); // must pass without problem even if useless gfal_posix_clear_error(); snprintf(buff, 2048, "%s/testlistdir_%ld", file, time(NULL)); printf(" create a new dir for content listing .... %s\n", buff); if(gfal_mkdir(buff, 0777) !=0){ gfal_posix_check_error(); g_assert_not_reached(); } printf(" create content of the new dir .... \n"); int i, n = (rand()%20)+2; for(i=0; i < n; ++i){ snprintf(buff2, 2048, "%s/elem_%d",buff,i); printf(" create one elem in the new dir %s \n", buff2); if(gfal_mkdir(buff2, 0777) !=0){ gfal_posix_check_error(); g_assert_not_reached(); } } //// simple opendir if((p = gfal_opendir(buff) ) == NULL){ gfal_posix_check_error(); g_assert_not_reached(); } while( ( d= gfal_readdir(p))){ g_assert( gfal_posix_code_error() == 0); g_assert( (strstr(d->d_name,"elem_") != NULL) || *d->d_name == '.'); printf(" +1 iterate %s", d->d_name); g_assert(strchr(d->d_name, '/') == NULL); count++; } printf(" count : %d", count); g_assert( count >= n && count < n+3); // take care of .. and . if available g_assert( gfal_closedir(p) == 0); g_assert( gfal_posix_code_error() == 0); //// simple opendir if((p = gfal_opendir(buff) ) == NULL){ gfal_posix_check_error(); g_assert_not_reached(); } count=0; d= NULL; while( ( d= gfal_readdir(p))){ g_assert( gfal_posix_code_error() == 0); g_assert( (strstr(d->d_name,"elem_") != NULL) || *d->d_name == '.'); printf(" +1 iterate %s", d->d_name); g_assert(strchr(d->d_name, '/') == NULL); count++; } printf(" count : %d", count); g_assert( count >= n && count < n+3); // take care of .. and . if available g_assert( gfal_closedir(p) == 0); //// advanced opendir pp if((p = gfal_opendir(buff) ) == NULL){ gfal_posix_check_error(); g_assert_not_reached(); } count=0; d= NULL; while( ( d= gfal2_readdirpp(gfal_posix_get_context(), p, &st, &tmp_err))){ g_assert( gfal_posix_code_error() == 0); g_assert(tmp_err == NULL); g_assert( (strstr(d->d_name,"elem_") != NULL) || *d->d_name == '.'); printf(" +1 iterate %s", d->d_name); g_assert(strchr(d->d_name, '/') == NULL); g_assert(S_ISDIR(st.st_mode)); count++; } printf(" count : %d", count); g_assert( count >= n && count < n+3); // take care of .. and . if available g_assert( gfal_closedir(p) == 0); gfal_closedir(p); // do it again for crash test printf ("All is ok.\n"); exit (0); } gfal2-2.3.0/test/functional/gfal2/gfal_test_del_nonex.c0000644000175000017500000000147412164561703022345 0ustar ellertellert/** * Compile command : gcc gfal_test_del_nonex.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include #define BLKLEN 65536 int main(int argc, char **argv) { int err; gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE); char buff[2048]; if (argc != 2) { fprintf (stderr, "usage: %s valid_dir\n", argv[0]); exit (1); } // create a enoent file g_strlcpy(buff, argv[1], 2048); g_strlcat(buff, "/", 2048); g_strlcat(buff, "testfileunlink_enoent", 2048); printf ("unlinking (deleting) the file: %s\n", buff); err = gfal_unlink (buff); gfal_posix_check_error(); err = gfal_posix_code_error(); if (err != ENOENT) { exit (1); } else { exit(0); } } gfal2-2.3.0/test/functional/gfal2/gfal_testdir.c0000644000175000017500000000127112164561703021004 0ustar ellertellert/** * Compile command : gcc gfal_testdir.c `pkg-config --libs --cflags gfal2` */ #include #include #include "gfal_api.h" #include "gfal_posix_internal.h" int main(int argc, char **argv) { struct dirent *d; DIR *dir; if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); return 1; } gfal_set_verbose(10); if ((dir = gfal_opendir (argv[1])) == NULL) { perror ("gfal_opendir"); fprintf(stderr, "%s\n", (*gfal_posix_get_last_error())->message); return 1; } while ((d = gfal_readdir (dir))) { printf ("%s\n", d->d_name); } if (gfal_closedir (dir) < 0) { perror ("gfal_closedir"); return 1; } return 0; } gfal2-2.3.0/test/functional/gfal2/gfal_testchmod.c0000644000175000017500000000142612164561703021322 0ustar ellertellert/** * Compile command : gcc gfal_testchmod.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include "gfal_api.h" int main(int argc, char **argv) { int mode, error = 0; char *file; if (argc != 3) { fprintf (stderr, "usage: %s file mode\n", argv[0]); exit (1); } file = argv[1]; mode = strtol (argv[2], NULL, 8); if (errno > 0) { perror ("strtol"); exit (1); } printf ("Checking RW access to '%s'...\n",file); if (gfal_access (file, R_OK|W_OK) < 0) { error = 1; gfal_posix_check_error(); } printf ("Changing mode of '%s' to %o...\n", file, mode); if (gfal_chmod (file, mode) < 0) { error = 1; gfal_posix_check_error(); } if (error) exit (1); printf ("All is ok.\n"); exit (0); } gfal2-2.3.0/test/functional/gfal2/gfal_testget.c0000644000175000017500000000507212164561703021010 0ustar ellertellert/** * Compile command : gcc gfal_testget.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include #include #include #define DEFPOLLINT 10 #define TURL_MAX_SIZE 1024 #ifndef _GFAL_1_X #include // GFAL 2.0 use the extended attribute system for the advanced files properties. int main(int argc,char **argv) { char turl_buff[TURL_MAX_SIZE]; if (argc < 2){ fprintf (stderr, "usage: %s SURLs\n", argv[0]); exit (1); } gfal_set_verbose (GFAL_VERBOSE_VERBOSE); ssize_t res = gfal_getxattr(argv[1], "user.replicas", turl_buff, TURL_MAX_SIZE ); if (res > 0) printf("URL %s Ready - REPLICA: %s\n", argv[1], turl_buff); else { printf("URL %s Failed:\n", argv[1]); gfal_posix_check_error(); } return((res>0)?0:-1); } #endif /* This is the OLD WAY GFAL 1.0 to do IT, DONT USE IT WITH GFAL2.0, IT IS FOR A EXAMPLE OF MIGRATION 1.X to 2.0 #ifdef _GFAL_1_X #define gfal_handle_free(x) gfal_internal_free(x) #include main(argc, argv) int argc; char **argv; { gfal_request req = NULL; gfal_internal gobj = NULL; gfal_filestatus *filestatuses = NULL; int sav_errno = 0, n = 0, i = 0, nberrors = 0; static char *protos[] = {"rfio", "dcap", "gsiftp"}; if (argc < 2) { fprintf (stderr, "usage: %s SURLs\n", argv[0]); exit (1); } gfal_set_verbose (0); if ((req = gfal_request_new ()) == NULL) exit (1); req->nbfiles = argc - 1; req->surls = argv + 1; req->protocols = protos; if (gfal_init (req, &gobj, NULL, 0) < 0) { sav_errno = errno; free (req); errno = sav_errno; perror (argv[0]); exit (1); } free (req); if (gfal_turlsfromsurls (gobj, NULL, 0) < 0) { sav_errno = errno; gfal_internal_free (gobj); errno = sav_errno; perror (argv[0]); exit (1); } if ((n = gfal_get_results (gobj, &filestatuses)) < 0) { sav_errno = errno; gfal_internal_free (gobj); errno = sav_errno; perror (argv[0]); exit (1); } if (filestatuses == NULL) { fprintf (stderr, "%s: Internal error (memory corruption?)\n", argv[0]); exit (1); } for (i = 0; i < n; ++i) { if (filestatuses[i].status == 0) printf("SURL %s Ready - TURL: %s\n", filestatuses[i].surl, filestatuses[i].turl); else { ++nberrors; if (filestatuses[i].explanation) printf("SURL %s Failed:\n%s\n", filestatuses[i].surl, filestatuses[i].explanation); else printf("SURL %s Failed:\n%s\n", filestatuses[i].surl, strerror (filestatuses[i].status)); } } gfal_internal_free (gobj); exit (nberrors > 0 ? 1 : 0); } #endif */ gfal2-2.3.0/test/functional/gfal2/gfal_test_del.c0000644000175000017500000000273612164561703021140 0ustar ellertellert/** * Compile command : gcc gfal_test_del.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include #define BLKLEN 65536 /** * * Description: This test creates and writes an deletes a short file * It is the successfull deletion which is checked by this test */ int main(int argc, char **argv) { int fd; int i; char buf[BLKLEN]; int rc,err; gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE); char buff[2048]; if (argc != 2) { fprintf (stderr, "usage: %s valid_dir\n", argv[0]); exit (1); } // create a random file uri file generate_random_uri(argv[1], "testdelfile_", buff, 2048); for (i = 0; i < BLKLEN; i++) buf[i] = i; printf ("creating file %s\n", buff); if ((fd = gfal_open (buff, O_WRONLY|O_CREAT, 0644)) < 0) { gfal_posix_check_error(); exit (1); } printf ("open successful, fd = %d\n", fd); if ((rc = gfal_write (fd, buf, BLKLEN)) != BLKLEN) { gfal_posix_check_error(); (void) gfal_close (fd); exit (1); } printf ("write successful\n"); if ((rc = gfal_close (fd)) < 0) { gfal_posix_check_error(); exit (1); } printf ("close successful\n"); if ((rc =gfal_unlink (buff)) < 0) { gfal_posix_check_error(); exit(1); } rc =gfal_unlink (buff); gfal_posix_check_error(); err = gfal_posix_code_error(); if (err != ENOENT) { exit(1); } else { exit(0); } } gfal2-2.3.0/test/functional/gfal2/gfal_testrw_seq.c0000644000175000017500000000473712164561703021540 0ustar ellertellert// sequential little read/write /** * Compile command : gcc gfal_testrw_seq.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include #include #include #define BLKLEN 65536 int main(int argc, char **argv) { int fd; int rc; gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE); // switch Gfal in verbose mode if (argc != 4) { fprintf (stderr, "usage: %s base_path size_read size_file \n", argv[0]); exit (1); } long size_read = atol(argv[2]); long size_total = atol(argv[3]); if(size_read > size_total/2){ fprintf (stderr, "constrain size_total > size_read*2 not respected \n"); exit (1); } char buff_name[2048]; char ibuf[size_total]; char obuf[size_total]; long i,j,n; srand(time(NULL)); printf(" create data of size %ld \n", size_total); for (i = 0; i < size_total; i++) obuf[i] = i; snprintf(buff_name, 2048, "%s/testrw_full_%ld_%ld", argv[1], (long) time(NULL),(long) rand()); printf ("creating file name %s\n", buff_name); if ((fd = gfal_open (buff_name, O_WRONLY | O_CREAT, 0644)) < 0) { gfal_posix_check_error(); exit (1); } printf ("open successful, fd = %d\n", fd); i=j=n=0; while(i < size_total){ j = ((i+size_read)< size_total)?size_read:size_total-i; printf ("write successful %ld from %ld of %ld\n",n,i,j); if ((rc = gfal_write (fd, obuf+i, j)) != j) { gfal_posix_check_error(); (void) gfal_close (fd); exit (1); } i+=j; printf ("write successful %ld \n",n++); } if ((rc = gfal_close (fd)) < 0) { gfal_posix_check_error(); exit (1); } printf ("close successful\n"); printf ("reading back %s\n", buff_name); if ((fd = gfal_open (buff_name, O_RDONLY, 0)) < 0) { gfal_posix_check_error(); exit (1); } printf ("open successful, fd = %d\n", fd); i=j=n=0; while(i < size_total){ j = ((i+size_read)< size_total)?size_read:size_total-i; if ((rc = gfal_read (fd, ibuf+i, j)) < 0) { gfal_posix_check_error(); (void) gfal_close (fd); exit (1); } i+=(long) rc; printf ("read successful %ld of size %d \n",n++, rc); } if ((rc = gfal_close (fd)) < 0) { gfal_posix_check_error(); exit (1); } printf ("close successful\n"); for (i = 0; i < size_total; i++) { if (ibuf[i] != obuf[i]) { fprintf (stderr, "compare failed at offset %ld\n", i); exit (1); } } printf ("compare successful\n"); exit (0); } gfal2-2.3.0/test/functional/gfal2/gfalt_copyfile_test_timeout.c0000644000175000017500000000332012164561703024126 0ustar ellertellert/** * Compile command : gcc -o gfalt_copyfile gfalt_copyfile.c `pkg-config --libs --cflags gfal_transfer` */ #include #include #include #include #include int main(int argc, char** argv){ if( argc <3 ){ printf(" Usage %s [src_url_big_file] [dst_dir] \n",argv[0]); return 1; } GError * tmp_err = NULL; // classical GError/glib error management gfal2_context_t handle; int ret=-1; char * src_uri = argv[1]; char dst_uri[2048]; char dst_uri2[2048]; generate_random_uri(argv[2], "generate_folder", dst_uri, 2048); generate_random_uri(dst_uri, "generate_folder", dst_uri2, 2048); gfalt_params_t params = gfalt_params_handle_new(NULL); // initialize gfal gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE | GFAL_VERBOSE_DEBUG); if( (handle = gfal2_context_new(&tmp_err)) == NULL ) { printf(" bad initialization %d : %s.\n", tmp_err->code,tmp_err->message); return -1; } // begin copy printf(" begin to copyfile from %s to %s", src_uri, dst_uri); ret = gfalt_set_timeout(params,5, &tmp_err); g_assert(tmp_err == NULL && ret == 0); if( (ret = gfalt_copy_file(handle, params, src_uri, dst_uri, &tmp_err) ) == 0){ fprintf(stderr, "should fail... transfer successfull \n"); ret= -1; }else if( tmp_err->code != ETIMEDOUT){ fprintf(stderr, " not a timeout error : problem %s \n", tmp_err->message); ret= -1; }else{ fprintf(stderr, " success : timeout trigerred :%s \n", tmp_err->message); g_clear_error(&tmp_err); ret = 0; } gfal2_context_free(handle); gfalt_params_handle_delete(params,NULL); return ret; } gfal2-2.3.0/test/functional/gfal2/gfal_testchecksum.c0000644000175000017500000000602512164561703022032 0ustar ellertellert/** * Compile command : gcc gfal_teststat.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include #include #include "gfal_lib_test.h" int main(int argc, char **argv) { int s_content = rand()%65635; int res,i; ssize_t size; GError * tmp_err=NULL; char nettle_md5[MD5_DIGEST_SIZE]={0}; char nettle_md5_char[1024]={0}; char remote_md5_char[1024]={0}; printf(" generate random content of size s %d ... \n", s_content); char * c = generate_random_string_content(s_content); gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_DEBUG | GFAL_VERBOSE_VERBOSE); char filename[2048]; generate_random_uri(argv[1], "test_checksum", filename, 2048); // printf(" string : %s\n", c); printf(" initialize gfal2 context..\n"); gfal2_context_t context = gfal2_context_new(&tmp_err); g_assert(context != NULL); g_assert(tmp_err == NULL); printf("try with enoent file checksum algorithm \n"); res= gfal2_checksum(context, filename, GFAL_CHKSUM_MD5,0,0, remote_md5_char,1024, &tmp_err); g_assert(res != 0); g_assert(tmp_err != 0); g_assert(tmp_err->code == ENOENT); g_clear_error(&tmp_err); printf(" try to create file %s ... \n",filename); int fd = gfal_open(filename, O_WRONLY | O_CREAT ); g_assert(fd > 0); size = gfal_write(fd, c, s_content); g_assert(size == s_content); res= gfal_close(fd); g_assert(res == 0); printf(" file uploaded with success %s ... \n",filename); printf(" calc internal checksum with nettle ... \n"); struct md5_ctx mymd5; md5_init (&mymd5); md5_update(&mymd5, s_content, (const uint8_t *) c); md5_digest(&mymd5, MD5_DIGEST_SIZE, (uint8_t *) nettle_md5); printf(" content md5 : "); for(i=0;i < MD5_DIGEST_SIZE; ++i) snprintf(nettle_md5_char+i*2, 1024, "%02x", (unsigned char) nettle_md5[i]); printf("%s\n",nettle_md5_char); printf(" test NULL args for safety \n"); res= gfal2_checksum(context, NULL, NULL,0,0, NULL,1024, &tmp_err); g_assert(res != 0); g_assert(tmp_err != 0); g_assert(tmp_err->code == EFAULT); g_clear_error(&tmp_err); printf("try with inconsistent checksum algorithm \n"); res= gfal2_checksum(context, filename, "SNCF_BONJOUR",0,0, remote_md5_char,1024, &tmp_err); g_assert(res != 0); g_assert(tmp_err != 0); g_assert(tmp_err->code == ENOTSUP); g_clear_error(&tmp_err); printf(" calc remote checksum with gfal ... \n"); res= gfal2_checksum(context, filename, GFAL_CHKSUM_MD5,0,0, remote_md5_char,1024, &tmp_err); if(tmp_err){ fprintf(stderr, " error checksum : %s", tmp_err->message); g_assert_not_reached(); } g_assert(res == 0); g_assert(tmp_err == 0); printf(" remote content md5 : "); printf("%s", remote_md5_char); printf("\n"); g_assert( memcmp(remote_md5_char, nettle_md5_char, MD5_DIGEST_SIZE) ==0); gfal2_context_free(context); g_free(c); return 0; } gfal2-2.3.0/test/functional/gfal2/functional-test-parameters.cmake0000644000175000017500000002535312164561703024462 0ustar ellertellert# # compilation lines for test parameters ## STAT Tests SET(MY_VO "dteam") SET(MY_VO_STORM "${MY_VO}") #dpm parameters SET(srm_prefix_dpm "srm://lxfsra10a01.cern.ch:8446/dpm/cern.ch/home/${MY_VO}/gfal2-tests") ## partial endpoint, test auto-resolve SET(srm_valid_dpm_stat "${srm_prefix_dpm}/testread0011") SET(srm_valid_dpm_bigfile "${srm_prefix_dpm}/testbig") SET(srm_valid_dpm_chmod "${srm_prefix_dpm}/test_change_right") SET(srm_valid_dir_root "${srm_prefix_dpm}") SET(srm_valid_dpm_src_file "${srm_valid_dpm_stat}") # dcache parameters SET(srm_prefix_dcache "srm://dcache-se-desy.desy.de:8443/srm/managerv2?SFN=/pnfs/desy.de/${MY_VO}/gfal2-tests") SET(srm_valid_dcache_bigfile "${srm_prefix_dcache}/testbig") SET(srm_valid_dcache_stat "${srm_prefix_dcache}/testread0011") SET(srm_valid_dcache_chmod "${srm_prefix_dcache}/test_change_right") SET(srm_valid_dcache_dir_root "${srm_prefix_dcache}") SET(srm_valid_dcache_src_file "${srm_valid_dcache_stat}") # storm parameters SET(srm_prefix_storm "srm://storm-01.roma3.infn.it/${MY_VO_STORM}/gfal2-tests") SET(srm_valid_storm_stat "${srm_prefix_storm}/testread0011") SET(srm_valid_storm_chmod "${srm_prefix_storm}/test_change_right") SET(srm_valid_storm_dir_root "${srm_prefix_storm}") SET(srm_valid_storm_src_file "${srm_prefix_storm}") #SET(srm_prefix_EOS "srm://srm.pic.es/pnfs/pic.es/data/dteam") #SET(srm_valid_EOS_stat "${srm_prefix_castor}/testread0011") ## gsiftp parameters # SET(gsiftp_prefix_dpm "gsiftp://lxfsra10a01.cern.ch/dpm/cern.ch/home/${MY_VO}/gfal2-tests") SET(gsiftp_valid_dpm_stat "${gsiftp_prefix_dpm}/testread0011") SET(gsiftp_valid_dpm_src_file "${gsiftp_valid_dpm_stat}") SET(gsiftp_valid_dpm_chmod "${gsiftp_prefix_dpm}/test_change_right_gsidcap") SET(gsiftp_valid_dir_root "${gsiftp_prefix_dpm}") ## lfc parameters SET(lfc_prefix "lfn:/grid/${MY_VO}") SET(lfc_stat_ok "${lfc_prefix}/testread0011") SET(lfc_chmod_ok "${lfc_prefix}/test_change_right") SET(lfc_valid_dir_root "${lfc_prefix}") SET(guid_stat_ok "guid:832d78b7-d4bd-4d7e-aefb-92ba9cc0dece") SET(lfc_full_prefix "lfc://cvitblfc1.cern.ch/grid/${MY_VO}") SET(lfc_full_stat_ok "${lfc_full_prefix}/testread0011") SET(lfc_full_chmod_ok "${lfc_full_prefix}/test_change_right") SET(lfc_full_valid_dir_root "${lfc_full_prefix}") # dcap dcache parameters SET(dcap_prefix "gsidcap://dcache-door-desy09.desy.de:22128/pnfs/desy.de/${MY_VO}/gfal2-tests/testread0011") SET(dcap_stat_ok "${dcap_prefix}/testread0011") SET(dcap_chmod_ok "${dcap_prefix}/test_change_right") SET(dcap_valid_dir_root "${dcap_prefix}") #local file parameters SET(file_base_path "/tmp/") SET(file_prefix "file://${file_base_path}") FILE(WRITE "${file_base_path}/testread_0011" "hello world agdlkmgfmklmklklmvc;!:c;:!;:!xc;!:vx!;:bvx!;:!;:o=)=)à=àdg:;;:!:!;!:;b") FILE(WRITE "${file_base_path}/test_change_right" "testblabl") SET(file_stat_ok "${file_prefix}/testread_0011") SET(file_valid_chmod "${file_prefix}/test_change_right") # Parameters for gfal_test_del_nonex test SET(nonexfile "nonexistingfile") # Parameter for the gfal_test_del test SET(testdelfile "testdelfile") # Parameter for the gfal_test_mkdir_unlink test SET(unlinkdirectory "unlinkdirectory") IF(PLUGIN_FILE) test_gfal_test_del_nonex("FILE" "file://${file_base_path}") test_gfal_test_del("FILE" "file://${file_base_path}") test_gfal_test_mkdir_unlink("FILE" "file://${file_base_path}") stat_test_all("FILE" ${file_stat_ok}) chmod_test_all("FILE" file://${file_base_path} 0565 060 360 767) mkdir_test_all("FILE" ${file_prefix}) rmdir_test_all("FILE" ${file_prefix} ${file_stat_ok}) test_readdir_full("FILE" ${file_prefix}) rwt_test_all("FILE" ${file_prefix} 4578) rwt_test_all("FILE" ${file_prefix} 1) rwt_test_all("FILE" ${file_prefix} 100000) rwt_test_seq("FILE" ${file_prefix} 100 4560) ENDIF(PLUGIN_FILE) IF(PLUGIN_SRM) # del dir test test_gfal_test_del_nonex("SRM_DPM" "${srm_prefix_dpm}") test_gfal_test_del_nonex("SRM_STORM" "${srm_prefix_storm}") test_gfal_test_del_nonex("SRM_DCACHE" "${srm_prefix_dcache}") test_gfal_test_del("SRM_DPM" "${srm_prefix_dpm}") test_gfal_test_del("SRM_STORM" "${srm_prefix_storm}") test_gfal_test_del("SRM_DCACHE" "${srm_prefix_dcache}") # mkdir tests test_gfal_test_mkdir_unlink("SRM_DPM" "${srm_prefix_dpm}") test_gfal_test_mkdir_unlink("SRM_STORM" "${srm_prefix_storm}") test_gfal_test_mkdir_unlink("SRM_DCACHE" "${srm_prefix_dcache}") # stat tests stat_test_all( "SRM_DPM" ${srm_valid_dpm_stat}) stat_test_all( "SRM_DCACHE" ${srm_valid_dcache_stat}) # checksum tests checksum_test_all("SRM_DPM" ${srm_valid_dir_root}) checksum_test_all("SRM_DCACHE" ${srm_valid_dcache_dir_root}) checksum_test_simple("SRM_DPM_ADLER32" ${srm_valid_dpm_stat} ADLER32) checksum_test_simple("SRM_DPM_MD5" ${srm_valid_dpm_stat} MD5) checksum_test_simple("SRM_DCACHE_ADLER32" ${srm_valid_dcache_stat} ADLER32) # checksum_test_simple("SRM_DCACHE_MD5" ${srm_valid_dcache_stat} MD5) Dcache does not support dynamic checksum calculation mkdir_test_all("SRM_DPM" ${srm_prefix_dpm}) mkdir_test_all("SRM_DCACHE" ${srm_prefix_dcache}) chmod_test_all("SRM_DPM" ${srm_valid_dir_root} 0575 070 370 777) rmdir_test_all("SRM_DPM" ${srm_valid_dir_root} ${srm_valid_dpm_stat}) test_readdir_full("SRM_DPM" ${srm_valid_dir_root} ) rwt_test_all("SRM_DPM" ${srm_valid_dir_root} 4578) rwt_test_all("SRM_DPM_little" ${srm_valid_dir_root} 10) rwt_test_all("SRM_DPM_single" ${srm_valid_dir_root} 1) rwt_test_all("SRM_DCAP" ${srm_valid_dcache_dir_root} 4578) rwt_test_all("SRM_DCAP_little" ${srm_valid_dcache_dir_root} 10) rwt_test_all("SRM_DCAP_single" ${srm_valid_dcache_dir_root} 1) rwt_test_seq("SRM_DPM" ${srm_valid_dir_root} 100 4560) rwt_test_seq("SRM_DPM_unit" ${srm_valid_dir_root} 1 10) rwt_test_seq("SRM_DCAP" ${srm_valid_dir_root} 100 4560) rwt_test_seq("SRM_STORM" ${srm_prefix_storm} 100 4560) # chmod_test_all("SRM_DCACHE" ${srm_valid_dcache_chmod} 0565 060 360 767) -> disabled, since unavailable on dcache # stat_test_all( "SRM_EOS" ${srm_valid_EOS_stat}) ENDIF(PLUGIN_SRM) IF(PLUGIN_LFC) stat_test_all( "LFC" ${lfc_stat_ok}) mkdir_test_all("LFC" ${lfc_prefix}) chmod_test_all("LFC" ${lfc_valid_dir_root} 0565 060 0360 0767) rmdir_test_all("LFC" ${lfc_valid_dir_root} ${lfc_stat_ok}) test_readdir_full("LFC" ${lfc_valid_dir_root} ) #guid test stat_test_all("GUID" ${guid_stat_ok}) # lfc full url style test stat_test_all( "LFC_FULL" ${lfc_full_stat_ok}) mkdir_test_all("LFC_FULL" ${lfc_full_prefix}) chmod_test_all("LFC_FULL" ${lfc_valid_dir_root} 0565 060 0360 0767) rmdir_test_all("LFC_FULL" ${lfc_full_valid_dir_root} ${lfc_full_stat_ok}) test_readdir_full("LFC_FULL" ${lfc_full_valid_dir_root} ) ENDIF(PLUGIN_LFC) IF(PLUGIN_DCAP) stat_test_all( "DCAP" ${dcap_stat_ok}) mkdir_test_all("DCAP" ${dcap_prefix}) chmod_test_all("DCAP" ${dcap_prefix} 0565 000 0320 0767) #test_readdir_full("DCAP" ${dcap_valid_dir_root} ) #rmdir_test_all("DCAP" ${dcap_valid_dir_root} ${dcap_stat_ok}) rwt_test_all("DCAP" ${dcap_valid_dir_root} 4578) rwt_test_seq("DCAP" ${dcap_valid_dir_root} 100 4560) ENDIF(PLUGIN_DCAP) IF(PLUGIN_GRIDFTP) test_gfal_test_del_nonex("GRIDFTP_DPM" "${gsiftp_prefix_dpm}") test_gfal_test_del("GRIDFTP_DPM" "${gsiftp_prefix_dpm}") test_gfal_test_mkdir_unlink("GRIDFTP" "${gsiftp_prefix_dpm}") stat_test_all( "GRIDFTP" ${gsiftp_valid_dpm_stat}) checksum_test_all("GRIDFTP" ${gsiftp_valid_dir_root}) checksum_test_simple("GRIDFTP_ADLER32" ${gsiftp_valid_dpm_stat} ADLER32) checksum_test_simple("GRIDFTP_MD5" ${gsiftp_valid_dpm_stat} MD5) checksum_test_simple("GRIDFTP_CRC32" ${gsiftp_valid_dpm_stat} CRC32) mkdir_test_all("GRIDFTP" ${gsiftp_prefix_dpm}) chmod_test_all("GRIDFTP" ${gsiftp_prefix_dpm} 0565 060 0360 0767) rmdir_test_all("GRIDFTP" ${gsiftp_valid_dir_root} ${gsiftp_valid_dpm_stat}) test_readdir_full("GRIDFTP" ${gsiftp_valid_dir_root} ) rwt_test_all("GRIDFTP" ${gsiftp_valid_dir_root} 4578) rwt_test_all("GRIDFTP_single" ${gsiftp_valid_dir_root} 1) rwt_test_seq("GRIDFTP" ${gsiftp_valid_dir_root} 100 4560) rwt_test_seq("GRIDFTP_unit" ${gsiftp_valid_dir_root} 1 10) ENDIF(PLUGIN_GRIDFTP) IF (MAIN_TRANSFER) copy_file_test_full("GRIDFTP_DPM" ${gsiftp_valid_dpm_src_file} ${gsiftp_prefix_dpm}) copy_file_test_full("SRM_DPM" ${srm_valid_dpm_src_file} ${srm_valid_dir_root}) copy_file_test_full("SRM_DPM_TO_DCACHE" ${srm_valid_dpm_src_file} ${srm_valid_dcache_dir_root}) copy_file_test_full("SRM_DCACHE_TO_SRM" ${srm_valid_dcache_src_file} ${srm_valid_dir_root}) copy_file_test_full("GSIFTP_DPM_TO_SRM_DCACHE" ${gsiftp_valid_dpm_src_file} ${srm_valid_dcache_dir_root}) copy_file_test_full("SRM_DCACHE" ${srm_valid_dcache_src_file} ${srm_valid_dcache_dir_root}) copy_file_test_full("SRM_TO_GRIDFTP" ${srm_valid_dpm_src_file} ${gsiftp_prefix_dpm}) copy_file_test_full("GRIDFTP_TO_SRM" ${gsiftp_valid_dpm_src_file} ${srm_valid_dir_root}) # global transfer tests for storage compatibility # storm <-> storm copy_file_test_full("STORM_TO_STORM" ${srm_valid_storm_stat} ${srm_prefix_storm}) # storm -> dpm copy_file_test_full("STORM_TO_SRM_DPM" ${srm_valid_storm_stat} ${srm_valid_dir_root}) # storm -> dcache copy_file_test_full("STORM_TO_SRM_DCACHE" ${srm_valid_storm_stat} ${srm_valid_dcache_dir_root}) # local transfer # # local <-> DPM copy_file_test_simple("FILE_TO_SRM_DPM" ${file_stat_ok} ${srm_valid_dir_root}) copy_file_test_simple("SRM_DPM_TO_FILE" ${srm_valid_dpm_src_file} ${file_prefix}) # local <-> dcache copy_file_test_simple("FILE_TO_SRM_DCACHE" ${file_stat_ok} ${srm_valid_dcache_dir_root}) copy_file_test_simple("SRM_DCACHE_TO_FILE" ${srm_valid_dcache_src_file} ${file_prefix}) copy_file_test_simple("FILE_TO_FILE" ${file_stat_ok} ${file_prefix}) # gsiftp dpm <-> local copy_file_test_simple("GSIFTP_TO_FILE" ${gsiftp_valid_dpm_src_file} ${file_prefix}) copy_file_test_simple("FILE_TO_GSIFTP" ${file_stat_ok} ${gsiftp_prefix_dpm}) # local <-> storm copy_file_test_simple("STORM_TO_FILE" ${srm_valid_storm_stat} ${file_prefix}) copy_file_test_simple("FILE_TO_STORM" ${file_stat_ok} ${srm_prefix_storm}) # generic timeout tests copy_file_test_timeout("SRM_DPM" "${srm_valid_dcache_bigfile}" "${srm_valid_dir_root}") copy_file_test_timeout("SRM_DCACHE" "${srm_valid_dcache_bigfile}" "${srm_valid_dcache_dir_root}" ) copy_file_test_timeout("SRM_STORM" "${srm_valid_dcache_bigfile}" "${srm_prefix_storm}" ) ENDIF (MAIN_TRANSFER) gfal2-2.3.0/test/functional/gfal2/gfal_testaccess.c0000644000175000017500000000067312164561703021474 0ustar ellertellert/** * Compile command : gcc gfal_teststat.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include int main(int argc, char **argv) { int flags = R_OK; if (argc != 3) { fprintf (stderr, "usage: %s filename flags\n", argv[0]); exit (1); } if (gfal_access (argv[1], flags) < 0) { gfal_posix_check_error(); exit (1); } printf ("access successfull\n"); return 0; } gfal2-2.3.0/test/functional/gfal2/gfal_mkdir_full.c0000644000175000017500000000335112164561703021457 0ustar ellertellert/** * Compile command : gcc gfal_test_mkdir_full.c `pkg-config --libs --cflags gfal2` `pkg-config --libs --cflags glib-2.0` */ #include #include #include #include #include "gfal_api.h" int main(int argc, char **argv) { char *rootdir; char url[2048]; int res = 0; if (argc != 2) { fprintf (stderr, "usage: %s [basedir_url] \n", argv[0]); exit (1); } rootdir = argv[1]; snprintf(url, 2048, "%s/test_dir_%u_%u", rootdir, (unsigned int) g_random_int(), (unsigned int) g_random_int ()); printf (" verify that the directory does not exist .... \n"); struct stat st; res = gfal_stat(url, &st); printf(" res %d errno %d errcode %d errstring \n", res , errno, gfal_posix_code_error()); gfal_posix_print_error(); g_assert( res != 0 && errno == ENOENT && gfal_posix_code_error() == ENOENT); errno = 0; gfal_posix_clear_error(); printf ("Creating directory %s ...\n", url); if ( (res =gfal_mkdir (url, 0777)) < 0) { gfal_posix_check_error(); g_assert_not_reached(); } g_assert( res == 0); g_assert( errno == 0); printf (" verify that the directory exists .... \n"); res = gfal_stat(url, &st); printf(" stat result : %d %d %d \n",res, errno, gfal_posix_code_error() ); g_assert( res == 0 ); g_assert(errno == 0); g_assert(gfal_posix_code_error() ==0); g_assert( st.st_mode & S_IFDIR ); // should return eexist printf (" verify that the directory one more call exists too %s.... \n", url); res =gfal_mkdir (url, 0777); g_assert( res != 0); printf(" error : %d ", gfal_posix_code_error()); gfal_posix_check_error(); g_assert( errno == EEXIST); g_assert(gfal_posix_code_error() == EEXIST); errno = 0; gfal_posix_clear_error(); printf ("All is ok.\n"); exit (0); } gfal2-2.3.0/test/functional/gfal2/gfalt_copyfile_with_performance_marker.c0000644000175000017500000000345212164561703026304 0ustar ellertellert/** * Compile command : gcc -o gfalt_copyfile gfalt_copyfile.c `pkg-config --libs --cflags gfal_transfer` */ #include #include #include #include #include #include gfal2_context_t handle = NULL; void mycall_perf(gfalt_transfer_status_t h, const char* src, const char* dst, gpointer user_data){ printf(" %s -> %s : avg byterate : %ld/s, instant byterate : %ld/s, size transfered %ld, time : %ld \n",src, dst, gfalt_copy_get_average_baudrate(h,NULL), gfalt_copy_get_instant_baudrate(h,NULL), gfalt_copy_get_bytes_transfered(h,NULL), gfalt_copy_get_elapsed_time(h,NULL)); } // setup interrupt void sigint_cancel(int param) { printf("User pressed Ctrl+C\n"); if(handle) gfal2_cancel(handle); } int main(int argc, char** argv){ signal(SIGINT, &sigint_cancel); if( argc <3 ){ printf(" Usage %s [src_url] [dst_url] \n",argv[0]); return 1; } GError * tmp_err = NULL; // classical GError/glib error management int ret=-1; // initialize gfal gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE ); if( (handle = gfal2_context_new(&tmp_err)) == NULL ) { printf(" bad initialization %d : %s.\n", tmp_err->code,tmp_err->message); return -1; } // create params gfalt_params_t params = gfalt_params_handle_new(&tmp_err); gfalt_set_monitor_callback(params, &mycall_perf, &tmp_err); g_assert(tmp_err == NULL); // begin copy if( (ret = gfalt_copy_file(handle, params, argv[1], argv[2], &tmp_err) ) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }else printf(" transfer sucessfull ! \n"); gfalt_params_handle_delete(params,NULL); gfal2_context_free(handle); return ret; } gfal2-2.3.0/test/functional/gfal2/gfal_teststat.c0000644000175000017500000000135012164561703021177 0ustar ellertellert/** * Compile command : gcc gfal_teststat.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include int main(int argc, char **argv) { struct stat statbuf; gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE); // switch Gfal in verbose mode if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } if (gfal_stat (argv[1], &statbuf) < 0) { gfal_posix_check_error(); exit (1); } printf ("stat successful\n"); printf ("mode = %o\n", statbuf.st_mode); printf ("nlink = %ld\n", statbuf.st_nlink); printf ("uid = %d\n", statbuf.st_uid); printf ("gid = %d\n", statbuf.st_gid); printf ("size = %ld\n", statbuf.st_size); return 0; } gfal2-2.3.0/test/functional/gfal2/gfalt_copyfile_fts_style.c0000644000175000017500000000677112164561703023432 0ustar ellertellert/** * Compile command : gcc -o gfalt_copyfile gfalt_copyfile.c `pkg-config --libs --cflags gfal_transfer` */ #include #include #include #include #include // // This test follows exactly the FTS 3.0 copy pattern and can simualte a long run of successive copy // void call_perf(gfalt_transfer_status_t h, const char* src, const char* dst, gpointer user_data){ size_t avg = gfalt_copy_get_average_baudrate(h,NULL) / 1024; size_t inst = gfalt_copy_get_instant_baudrate(h,NULL) / 1024; size_t trans= gfalt_copy_get_bytes_transfered(h,NULL); time_t elapsed = gfalt_copy_get_elapsed_time(h,NULL); printf(" perf marker avg : %ld, inst: %ld, elapsed: %ld, trans: %ld", avg, inst, trans, elapsed); } int internal_copy(gfal2_context_t* handle, gfalt_params_t* params, const char* src, const char* dst){ GError * tmp_err = NULL; // classical GError/glib error management struct stat buff; struct stat buff2; printf(" stat src files.... \n"); if( gfal2_stat(*handle, src, &buff, &tmp_err) !=0){ printf(" error while the file stat %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }else{ g_assert(buff.st_size != 0); printf(" file size %ld",buff.st_size ); } printf(" begin transfer .... \n"); if( gfalt_copy_file(*handle, *params, src, dst, &tmp_err) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }else printf(" transfer sucessfull ! \n"); printf(" stat dst file .... \n"); if( gfal2_stat(*handle, dst, &buff2, &tmp_err) !=0){ printf(" error while the file stat %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }{ g_assert(buff2.st_size == buff.st_size); } return 0; } int main(int argc, char** argv) { if (argc < 3) { printf(" Usage %s [src_url] [dst_url] [checksum]\n", argv[0]); return 1; } GError * tmp_err = NULL; gfal2_context_t handle; // initialize gfal gfal_set_verbose( GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE | GFAL_VERBOSE_DEBUG); if ((handle = gfal2_context_new(&tmp_err)) == NULL ) { printf(" bad initialization %d : %s.\n", tmp_err->code, tmp_err->message); return -1; } // Process args char* source = argv[1]; char* destination = argv[2]; char* checksum_type = NULL; char* checksum_value = NULL; if (argc >= 4) { checksum_type = g_strdup(argv[3]); checksum_value = strchr(checksum_type, ':'); if (checksum_value) { *checksum_value = '\0'; ++checksum_value; } } // creat params gfalt_params_t my_params = gfalt_params_handle_new(NULL ); gfalt_set_replace_existing_file(my_params, TRUE, NULL ); gfalt_set_checksum_check(my_params, TRUE, NULL ); gfalt_set_monitor_callback(my_params, &call_perf, &tmp_err); gfalt_set_nbstreams(my_params, 4, &tmp_err); gfalt_set_timeout(my_params, 360, &tmp_err); if (checksum_type || checksum_value) { gfalt_set_user_defined_checksum(my_params, checksum_type, checksum_value, NULL); printf("Using checksum %s:%s\n", checksum_type, checksum_value); } // begin copy if(internal_copy(&handle, &my_params, source, destination) != 0) return -1; gfal2_context_free(handle); gfalt_params_handle_delete(my_params, NULL); return 0; } gfal2-2.3.0/test/generic_configure.sh0000755000175000017500000001175312164561703017056 0ustar ellertellert#!/bin/bash ## script to an auto configuration for the unit tests, with gfalFS # TEST_SRM_ENDPOINT="srm://cvitbdpm1.cern.ch/dpm/cern.ch/home/dteam/gfal2-tests/" TEST_LFC_ENDPOINT="lfn:/grid/dteam/" TEST_SRM_FILE_CONTENT="Hello world" ## srm vars TEST_SRM_ONLY_READ_ACCESS="testread0011" TEST_SRM_ONLY_READ_HELLO="testreadhello001" TEST_SRM_NOEXIST_ACCESS=$TEST_SRM_INVALID_SURL_EXAMPLE2 TEST_SRM_NO_READ_ACCESS="testnoread0011" TEST_SRM_WRITE_ACCESS="testwrite0011" TEST_SRM_NO_WRITE_ACCESS="testnowrite0011" TEST_SRM_CHMOD_FILE_EXIST="testchmod0011" TEST_SRM_CHMOD_FILE_ENOENT="testchmodenoent0011" TEST_SRM_MOD_READ_FILE="testchmodread0011" TEST_SRM_MOD_WRITE_FILE="testchmodwrite0011" TEST_GFAL_SRM_FILE_STAT_OK="teststat0011" TEST_SRM_OPENDIR_OPEN="testopendir0011" TEST_SRM_READDIR_VALID="testreaddir0011" TEST_SRM_READDIR_1="testreaddir0012" TEST_SRM_READDIR_2="testreaddir0013" TEST_SRM_READDIR_3="testreaddir0014" TEST_SRM_READDIR_4="testreaddir0015" TEST_SRM_RENAME_VALID_DEST="testrename0012" TEST_SRM_RENAME_VALID_SRC="testrename0011" ## lfc vars TEST_LFC_ONLY_READ_HELLO="hello001" TEST_LFC_ONLY_READ_ACCESS="testread0011" TEST_LFC_NO_READ_ACCESS="testnoread0011" TEST_LFC_WRITE_ACCESS="testwrite0011" TEST_LFC_NO_WRITE_ACCESS="testnowrite0011" TEST_LFC_VALID_COMMENT="testcomment0011" TEST_LFC_WRITEVALID_COMMENT="testcomment0012" TEST_LFC_INVALID_COMMENT="testpsg0011" TEST_LFC_COMMENT_CONTENT="Hello World" TEST_GFAL_LFC_FILE_STAT_OK="teststat0011" TEST_GFAL_LFC_LINK_STAT_OK="teststatlink0011" TEST_LFC_OPEN_NOACCESS="testopen0011/testopen0012" TEST_LFC_OPEN_NOACCESS_BASE="testopen0011" TEST_LFC_MOD_READ_FILE="testchmodread0011" TEST_LFC_MOD_WRITE_FILE="testchmodwrite0011" TEST_LFC_OPENDIR_OPEN="testopendir0011" TEST_LFC_OPENDIR_OPEN_NOACCESS="testopendir0012" TEST_LFC_READDIR_VALID="testreaddir0011" TEST_LFC_READDIR_1="testreaddir0012" TEST_LFC_READDIR_2="testreaddir0013" TEST_LFC_READDIR_3="testreaddir0014" TEST_LFC_READDIR_4="testreaddir0015" # write files function create_on_grid { echo "$1" > $2 } function create_directory { mkdir $1 } function create_directory_rec { mkdir -p $1 } function change_right { chmod $1 $2 } function create_stat_basic { dd if=/dev/urandom of=/tmp/teststattmp bs=512 count=4; cp /tmp/teststattmp $1; chmod 664 $1; } function set_comment_on_file { setfattr -n "user.comment" -v "$1" $2 } function create_symlink { ln -s $1 $2 } ## CONFIGURE SRM ENV # mkdir -p /tmp/mount_point_gfal gfalFS_umount /tmp/mount_point_gfal gfalFS /tmp/mount_point_gfal $TEST_SRM_ENDPOINT cd /tmp/mount_point_gfal # main files for access create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_SRM_ONLY_READ_ACCESS change_right 555 $TEST_SRM_WRITE_ACCESS create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_SRM_ONLY_READ_HELLO # created but impossible to access create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_SRM_NO_READ_ACCESS change_right 000 $TEST_SRM_NO_READ_ACCESS # main file for write access create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_SRM_WRITE_ACCESS change_right 777 $TEST_SRM_WRITE_ACCESS # main file for no write access create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_SRM_NO_WRITE_ACCESS change_right 555 $TEST_SRM_NO_WRITE_ACCESS # main filefor chmod create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_SRM_CHMOD_FILE_EXIST ## main file for stats calls create_stat_basic "$TEST_GFAL_SRM_FILE_STAT_OK" ## create comments files create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_LFC_VALID_COMMENT create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_LFC_WRITEVALID_COMMENT ## opendir / readdir create_directory $TEST_SRM_OPENDIR_OPEN create_directory $TEST_SRM_READDIR_VALID create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_SRM_READDIR_VALID/$TEST_SRM_READDIR_1 create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_SRM_READDIR_VALID/$TEST_SRM_READDIR_2 create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_SRM_READDIR_VALID/$TEST_SRM_READDIR_3 create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_SRM_READDIR_VALID/$TEST_SRM_READDIR_4 ## chmod create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_SRM_MOD_READ_FILE create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_SRM_MOD_WRITE_FILE # rename create_on_grid "$TEST_SRM_FILE_CONTENT" $TEST_SRM_RENAME_VALID_SRC cd ~/ gfalFS_umount /tmp/mount_point_gfal ### CONFIGURE LFC ENV ## FILES CAN NOT BE CREATED ON LFC CURRENTLY mkdir -p /tmp/mount_point_gfal gfalFS /tmp/mount_point_gfal $TEST_LFC_ENDPOINT cd /tmp/mount_point_gfal ## lfc access change_right 555 $TEST_LFC_ONLY_READ_ACCESS change_right 000 $TEST_LFC_NO_READ_ACCESS change_right 777 $TEST_LFC_WRITE_ACCESS change_right 444 $TEST_LFC_NO_WRITE_ACCESS create_directory_rec $TEST_LFC_OPEN_NOACCESS chmod 000 $TEST_LFC_OPEN_NOACCESS_BASE # comments set_comment_on_file "$TEST_LFC_COMMENT_CONTENT" $TEST_LFC_VALID_COMMENT ## stats create_symlink $TEST_GFAL_LFC_FILE_STAT_OK $TEST_GFAL_LFC_LINK_STAT_OK # mkdir ## opendir / readdir create_directory $TEST_LFC_OPENDIR_OPEN create_directory $TEST_LFC_OPENDIR_OPEN_NOACCESS change_right 000 $TEST_LFC_OPENDIR_OPEN_NOACCESS create_directory $TEST_LFC_READDIR_VALID cd ~/ gfalFS_umount /tmp/mount_point_gfal gfal2-2.3.0/test/execute_tests.sh0000755000175000017500000000220012164561703016250 0ustar ellertellert#! /bin/bash # Copyright (c) Members of the EGEE Collaboration. 2004. # See http://www.eu-egee.org/partners/ for details on the copyright holders. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Execute the full test suite (unit and regression tests). function execute_test { local testdir=$1 echo -e "\nExecuting test suite \"$testdir\"\n" pushd $testdir &> /dev/null ./execute_tests.sh local res=$? popd &> /dev/null if [ $res != 0 ] ; then echo echo -e "\nA test in \"$testdir\" failed.\n" exit 1 fi echo -e "\nAll tests in \"$testdir\" passed.\n" } execute_test unit gfal2-2.3.0/test/srm_configure.sh0000755000175000017500000000301712164561703016235 0ustar ellertellert#!/bin/bash ## script to an auto configuration of a dpm storage element for the srm unit test # echo "$1" if [ ["$1" = ""] -o ["$2" = ""] ]; then echo "Invalid Usage" echo " $0 HOST PATH ...." exit -1 fi export DPNS_HOST=$1 function create_on_grid { lcg-cp file:///etc/group "srm://$1:8446/$2" } function change_right { dpns-chmod $1 $2 } function create_fixed_size_file_on_grid { rm /tmp/tmptest &> /dev/null dd if=/dev/zero of=/tmp/tmptest bs=512 count=4 &> /dev/null lcg-cp file:///tmp/tmptest "srm://$1:8446/$2" } function create_directory { dpns-mkdir $1 } TESTWRITE0011="$2/testwrite0011" TESTNOREAD0011="$2/testnoread0011" TESTNOWRITE0011="$2/testnowrite0011" TESTSTAT0011="$2/teststat0011" TESTUNACCESSMKDIR0011="$2/testunaccessmkdir0011" TESTRMDIR0012="$2/testrmdir0012" TESTOPEN0011="$2/testopen0011" TESTOPEN0012="$TESTOPEN0011/testopen0012" create_on_grid "$1" "$2/file75715ccc-1c54-4d18-8824-bdd3716a2b54" create_on_grid "$1" "$2/testread0011" change_right 555 "$2/testread0011" create_on_grid "$1" "$TESTWRITE0011" change_right 666 "$TESTWRITE0011" create_on_grid "$1" "$TESTNOREAD0011" change_right 000 "$TESTNOREAD0011" create_on_grid "$1" "$TESTNOWRITE0011" change_right 555 "$TESTNOWRITE0011" create_fixed_size_file_on_grid "$1" "$TESTSTAT0011" change_right 664 "$TESTSTAT0011" create_directory "$TESTUNACCESSMKDIR0011" change_right 000 "$TESTUNACCESSMKDIR0011" create_directory "$TESTRMDIR0012" create_on_grid "$1" "$TESTRMDIR0012/testosef012" create_directory "$TESTOPEN0011" create_on_grid "$1" "$TESTOPEN0012" gfal2-2.3.0/VERSION0000644000175000017500000000003712164561703013124 0ustar ellertellertVERSION=2.0_preview RELEASE=3 gfal2-2.3.0/setup_test_env_isolated.sh0000644000175000017500000000024112164561703017340 0ustar ellertellert#!/bin/bash export GFAL_CONFIG_DIR=`pwd`/test/conf_test/ ## export etics needed configs echo "## print environment" env echo "## end print environment" $@ gfal2-2.3.0/SRPMS/0000755000175000017500000000000012164561703012760 5ustar ellertellertgfal2-2.3.0/scripts/0000755000175000017500000000000012164561703013543 5ustar ellertellertgfal2-2.3.0/scripts/gfal_plugin_dcap/0000755000175000017500000000000012164561703017021 5ustar ellertellertgfal2-2.3.0/scripts/gfal_plugin_dcap/gfal_plugin_dcap.sh0000644000175000017500000000015512164561703022634 0ustar ellertellert## configure gfal to load the plugin ## export GFAL_PLUGIN_LIST=libgfal_plugin_dcap.so:$GFAL_PLUGIN_LIST gfal2-2.3.0/scripts/gfal_plugin_dcap/gfal_plugin_dcap.csh0000644000175000017500000000015612164561703023000 0ustar ellertellert## configure gfal to load the plugin ## setenv GFAL_PLUGIN_LIST "libgfal_plugin_dcap.so:$GFAL_PLUGIN_LIST" gfal2-2.3.0/scripts/gfal_plugin_rfio/0000755000175000017500000000000012164561703017051 5ustar ellertellertgfal2-2.3.0/scripts/gfal_plugin_rfio/gfal_plugin_rfio.csh0000644000175000017500000000021712164561703023056 0ustar ellertellert## configure gfal to load the plugin ## setenv LCG_RFIO_TYPE "libdpm.so" setenv GFAL_PLUGIN_LIST "libgfal_plugin_rfio.so:$GFAL_PLUGIN_LIST" gfal2-2.3.0/scripts/gfal_plugin_rfio/gfal_plugin_rfio.sh0000644000175000017500000000021512164561703022711 0ustar ellertellert## configure gfal to load the plugin ## export LCG_RFIO_TYPE="libdpm.so" export GFAL_PLUGIN_LIST=libgfal_plugin_rfio.so:$GFAL_PLUGIN_LIST gfal2-2.3.0/scripts/gfal_plugin_srm/0000755000175000017500000000000012164561703016713 5ustar ellertellertgfal2-2.3.0/scripts/gfal_plugin_srm/gfal_plugin_srm.sh0000644000175000017500000000015312164561703022416 0ustar ellertellert## configure gfal to load the plugin ## export GFAL_PLUGIN_LIST=libgfal_plugin_srm.so:$GFAL_PLUGIN_LIST gfal2-2.3.0/scripts/gfal_plugin_srm/gfal_plugin_srm.csh0000644000175000017500000000015512164561703022563 0ustar ellertellert## configure gfal to load the plugin ## setenv GFAL_PLUGIN_LIST "libgfal_plugin_srm.so:$GFAL_PLUGIN_LIST" gfal2-2.3.0/scripts/gfal_plugin_lfc/0000755000175000017500000000000012164561703016656 5ustar ellertellertgfal2-2.3.0/scripts/gfal_plugin_lfc/gfal_plugin_lfc.sh0000644000175000017500000000023112164561703022321 0ustar ellertellert## configure gfal to load the plugin ## export LCG_GFAL_INFOSYS=lcg-bdii.cern.ch:2170 export GFAL_PLUGIN_LIST=libgfal_plugin_lfc.so:$GFAL_PLUGIN_LIST gfal2-2.3.0/scripts/gfal_plugin_lfc/gfal_plugin_lfc.csh0000644000175000017500000000023412164561703022467 0ustar ellertellert## configure gfal to load the plugin ## setenv GFAL_PLUGIN_LIST "libgfal_plugin_lfc.so:$GFAL_PLUGIN_LIST" setenv LCG_GFAL_INFOSYS "lcg-bdii.cern.ch:2170" gfal2-2.3.0/README0000644000175000017500000000106112164561703012732 0ustar ellertellertHow to compile GFAL 2.0 ? 1.) Install dependencies On a clean SLCX/fedora/EL system the following 'extra' packages are needed to be installed: cmake, glib2, glib2-devel, openldap-devel, gcc-c++, openmp, openmp-devel, pkgconfig, lfc-devel, dcap-devel,dpm-devel doxygen, globus-gass-copy-devel, glibmm24-devel, libattr-devel, 2.) Compile compilation : cd [src_dir] mkdir build cd build cmake ../ ccmake ../ # configure the plugin that you need : default = all ! and enable the test if wished make -j 8 3.) Installation make install 4.) Tests make test gfal2-2.3.0/RELEASE-NOTES0000644000175000017500000001430112164561703013744 0ustar ellertellertGFAL 2.0 RELEASE-NOTE: * Tue Jul 02 2013 Adrien Devresse - 2.3.0-0 - [LCGUTIL-99] gfal2_cancel crashes gfal2 if called twice - [LCGUTIL-135] GFAL 2.0 : Migrate the http plugin support for PEM from the old manual one to the new Davix one - [LCGUTIL-143] GFAL 2.0 : Regression bug of the stat() call against the dcache instance - [LCGUTIL-145] GridFTP plugin tries to delete the destination when getting the source checksum fails (!) - [LCGUTIL-147] GFAL 2.0 : bug on the session re-use mechanism - [LCGUTIL-165] GFAL 2.0 : enable HTTP/Webdav support by default, packaged on EPEL with davix - [LCGUTIL-179] manpage-section-mismatch - [LCGUTIL-141] GFAL 2 : add a flag in the gsiftp standard option in order to allow the gsiftp redirection, this is needed for the DPM gsiftp redirection mechanism - [LCGUTIL-51] GFAL 2.0 : implement the last missing operation : srm_mv logic for file renaming - [LCGUTIL-144] GFAL 2.0 : Update all functional test for a post-EMI usage - First version fully compatible with a standard FTS 3.0 release - Minor error correction from coverity report - bug fixes related to gridFTP thread safety for meta-data operations. * Thu Jul 02 2013 Michail Salichos - 2.2.2-11 - pass gfal2 to coverity and fix minor issues reported * Mon Jun 10 2013 Michail Salichos - 2.2.2-10 - fixed memory leaks and variables initialization - moved event exit message outside try-catch block - fix potential crash when can't resolve IP from hostname - LCGUTIL-142: gfal2_context_t wrapped in shared_ptr to avoid early destruction * Thu Jun 06 2013 Michail Salichos - 2.2.2-6 - log IP and port of gridftp server in IPv4/IPv6 compatible way * Thu May 27 2013 Michail Salichos - 2.2.2-5 - log IP and port of gridftp server * Thu May 16 2013 Michail Salichos - 2.2.2-1 - replace gridftp exists with mlst * Wed Mar 20 2013 Adrien Devresse - 2.2.0-0 - fix thread safety issue with gsiftp plugin - add the bring online API - support for the http plugin by default - remove executable stack need - remove openMP dependency - add synchronous cancellation API - add gsiftp performance marker timeout - support for srm session reuse - reduce memory footprint * Thu Jan 10 2013 Adrien Devresse - 2.1.1-0 - fix a minor memory issue with the gfal_transfer stack - fix a wrong error report problem with srm third party copy * Wed Dec 05 2012 Adrien Devresse - 2.1.0-2 - fix an issue this surl to turl resolution for SRM third party copy * Fri Nov 30 2012 Adrien Devresse - 2.1.0-0 - One-globus session system for gsiftp plugin ( FTS 3.0 need ) - correct a major issue with the gass attribute system in gsiftp plugin - change the lfc set/get env var for a one compatible with set/get opt - add set/nb streams option for gsiftp - add the mkdir rec function for SRM transfer - correct an issue with opendir and srm_ls ( ENOTDIR error silent ) - correct a memory leak in the cache system - correct timeout support for gsiftp transfer - implement tcp buffer size support for gsiftp layer - apply a correction on the SRM over-write logic, linked to a BeStMan errcode problem on File Not Found with srmRm ( EOS ) - apply a fix on the transfer gsiftp timeout ( protection against multiple cancel ) - fix for SRM filesize problem ( defined to 0, workaround ) related to globus 426 error bad filesize - secure the callback system for globus gass timeout - base implementation of the http plugin - improve reliability of the bdii resolution - add a fallback mechanism in case of bdii bad resolution - correct several race conditions in the bdii layer - add thread safe support for set/get variables in liblfc - correct a deadlock problem with globus and gisftp plugin - implement the mkdir_rec logic for general purpose - implement the parent folder creation logic with gridftp - add support for lfc://host/path URL style for the lfc plugin - switch off_t to 64bits size by default ( _FILE_OFFSET_BITS=64) - provide a "nobdii" like option - provide the choice of turl protocol resolution for srm plugin * Fri Jul 20 2012 Adrien Devresse - 2.0.0-1 - Official initial release candidate of gfal 2.0 - Transfer API is official - gridftp support for performance marker, checksum - gridftp support for gridftpv2, dcau param - SRM support for spacetoken in transfer - SRM abort auto-management - parallel operations in transfers - file protocol dedicated in a plugin - configuration file support - srm timeout support - general purpose checksum operation support - POSIX operation support for gridftp - cleaner plugin API - new documentation - I hope that you will enjoy gfal 2.0 :) 2.0.0-0.10 : - effective set/get opt support for lfc/srm/gsiftp - checksum calculation management - auto-check functionality on transfer - support for user-defined checksum - performance marker implementation for SRM/GSIFTP 2.0.0-0.9 : - Without environment variable design implemented - add set/get option calls - add SRM src/dst spacetoken management for gfal transfer - re-factor properly gfal-transfer and gfal2_context_t - generate a new clean documentation with log/transfer/context support - allow direct modification of the internal posix context - fix memory leak with gsiftp error report 2.0.0-0.8 : - big improvement on the gridftp support - split the headers files properly - remove the carriage return from the gridftp error messages - add plugin dedicaded API. - refactor the parameter management for the transfer library - add the "transfer replace" logic for the transfer library ( FTS 3.0 requirement ) - add logger system based on the glib log system ( ARC requirement ) - correct memory leaks and a session-reuse memory corruption for gridftp - improve gridFTP global speed with request optimisations. - remove the old config/parameters system for the posix library. - add several functional tests for the new features. - add SRM to X and X to SRM modes to the SRM plugin ( FTS 3.0 requirement ) 2.0.0-0.7 : - major improvement for third party transfer - initial gridftp support - begin to switch to configuration without env var 2.0.0-0.6 : - initial tagged release gfal2-2.3.0/CMakeLists.txt0000644000175000017500000000726112164561703014622 0ustar ellertellert## cmake build script for srm-ifce project (gfal2) cmake_minimum_required (VERSION 2.6) message("cmake source dir : ${CMAKE_SOURCE_DIR}") # default set of options SET(MAIN_CORE TRUE CACHE STRING "enable compilation of the main library") SET(PLUGIN_LFC TRUE CACHE STRING "enable compilation of the lfc plugin") SET(PLUGIN_SRM TRUE CACHE STRING "enable compilation of the srm plugin") SET(PLUGIN_RFIO TRUE CACHE STRING "enable compilation of the RFIO plugin") SET(PLUGIN_DCAP TRUE CACHE STRING "enable compilation of the DCAP plugin") SET(PLUGIN_FILE TRUE CACHE STRING "enable compilation of the local File plugin") SET(PLUGIN_GRIDFTP TRUE CACHE STRING "enable compilation of the GRIDFTP plugin") SET(PLUGIN_HTTP TRUE CACHE STRING "enable compilation of the HTTP plugin") SET(MAIN_TRANSFER TRUE CACHE STRING "enable compilation of the transfer library") # build type set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "type of build") set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules/") # load module include(DefineInstallationPaths REQUIRED) include(MacroCopyFile REQUIRED) include(ReleaseDebugAutoFlags REQUIRED) include(CMakeGeneratePkgConfig REQUIRED) include(MacroAddDoxygen REQUIRED) find_package(PkgConfig REQUIRED) #enable testing INCLUDE(CTest) #define PROJECT vars set(PROJECT_NAME_MAIN "gfal2") set(OUTPUT_NAME_MAIN "gfal2") set(PROJECT_NAME_TRANSFER "gfal_transfer") set(OUTPUT_NAME_TRANSFER "gfal_transfer") set(PROJECT_NAME_LFC "plugin_lfc") set(OUTPUT_NAME_LFC "gfal_plugin_lfc") set(PROJECT_NAME_SRM "plugin_srm") set(OUTPUT_NAME_SRM "gfal_plugin_srm") set(PROJECT_NAME_RFIO "plugin_rfio") set(OUTPUT_NAME_RFIO "gfal_plugin_rfio") set(PROJECT_NAME_DCAP "plugin_dcap") set(OUTPUT_NAME_DCAP "gfal_plugin_dcap") set(PROJECT_NAME_GRIDFTP "plugin_gridftp") set(OUTPUT_NAME_GRIDFTP "gfal_plugin_gridftp") set(PROJECT_NAME_FILE "plugin_file") set(OUTPUT_NAME_FILE "gfal_plugin_file") set(PROJECT_NAME_HTTP "plugin_http") set(OUTPUT_NAME_HTTP "gfal_plugin_http") set(VERSION_MAJOR 2) set(VERSION_MINOR 3) set(VERSION_PATCH 0) set(VERSION_STRING ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}) # out of project test compilation SET(ONLY_TESTS FALSE CACHE STRING "enable or disable out of project dir") # libs checks pkg_check_modules(GLIB2_PKG REQUIRED glib-2.0) pkg_check_modules(GTHREAD2_PKG REQUIRED gthread-2.0) pkg_check_modules(UUID_PKG REQUIRED uuid) pkg_search_module(GLIBMM_PKG REQUIRED glibmm glibmm-2.6 glibmm-2.4) IF(PLUGIN_SRM) pkg_check_modules(SRM_IFCE_PKG REQUIRED srm-ifce>=1.15.0) ENDIF(PLUGIN_SRM) IF(PLUGIN_HTTP) pkg_check_modules(GSOAP_SSL_PKG REQUIRED "gsoapssl++") pkg_check_modules(DAVIX_PKG REQUIRED "davix>=0.0.20") find_package(gSOAP REQUIRED) ENDIF(PLUGIN_HTTP) IF(PLUGIN_GRIDFTP) pkg_check_modules(GLOBUS_GASS_COPY_PKG REQUIRED globus-gass-copy) ENDIF(PLUGIN_GRIDFTP) # general parameters for configuration add_definitions( -DGFAL_PLUGIN_DIR_DEFAULT="${PLUGIN_INSTALL_DIR}" ) add_definitions( -DGFAL_CONFIG_DIR_DEFAULT="${SYSCONF_INSTALL_DIR}" ) # add file offset 64 for 32 bits add_definitions( -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE) include_directories( ${GLIB2_PKG_INCLUDE_DIRS} ${GTHREAD2_PKG_INCLUDE_DIRS}) #install doc license install(FILES "LICENSE" "README" "RELEASE-NOTES" "VERSION" "DESCRIPTION" DESTINATION ${DOC_INSTALL_DIR}) # install configuration files FILE(GLOB lst_conf_files "${CMAKE_SOURCE_DIR}/dist/etc/gfal2.d/*.conf") install(FILES ${lst_conf_files} DESTINATION ${SYSCONF_INSTALL_DIR}/gfal2.d/) IF(NOT ONLY_TESTS) add_subdirectory (doc) add_subdirectory (src) ENDIF(NOT ONLY_TESTS) add_subdirectory (test) add_subdirectory (testing) gfal2-2.3.0/doc/0000755000175000017500000000000012164561703012621 5ustar ellertellertgfal2-2.3.0/doc/legacy-man/0000755000175000017500000000000012164561703014636 5ustar ellertellertgfal2-2.3.0/doc/legacy-man/gfal_set_timeout_sendreceive_python.man0000644000175000017500000000532112164561703024643 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_timeout_sendreceive_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_SET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_set_timeout_* \- Set several timeouts .SH SYNOPSIS \fBimport gfal\fR .sp .BI "gfal_set_timeout_connect (int " value ) .sp .BI "gfal_set_timeout_sendreceive (int " value ) .sp .BI "gfal_set_timeout_bdii (int " value ) .sp .BI "gfal_set_timeout_srm (int " value ) .SH DESCRIPTION .B gfal_set_timeout_connect Sets the connect timeout, used when connecting to a remote host. The connection will be aborted if the remote host doesn't reply after .I value seconds. .sp .B gfal_set_timeout_sendreceive Sets the send/receive data timeout, used when transferring data to/from a remote host. The connection will be aborted if no data is transfered after .I value seconds. .sp .B gfal_set_timeout_bdii Sets the BDII timeout, used when searching information into BDII. The connection will be aborted if the search is longer than .I value seconds. .sp .B gfal_set_timeout_srm Sets the SRM timeout, used when doing an asynchronous SRM request. The request will be aborted if it is still queued after .I value seconds. .SH SEE ALSO .BR gfal_python (3), .BR gfal_request_new_python (3), .BR gfal_internal_free_python (3), .BR gfal_init_python (3), .BR gfal_deletesurls_python (3), .BR gfal_removedir_python (3), .BR gfal_turlsfromsurls_python (3), .BR gfal_ls_python (3), .BR gfal_get_python (3), .BR gfal_getstatus_python (3), .BR gfal_prestage_python (3), .BR gfal_prestagestatus_python (3), .BR gfal_pin_python (3), .BR gfal_release_python (3), .BR gfal_abortrequest_python (3), .BR gfal_abortfiles_python (3), .BR gfal_set_xfer_done_python (3), .BR gfal_set_xfer_running_python (3), .BR gfal_get_ids_python (3), .BR gfal_set_ids_python (3), .BR gfal_get_results_python (3), .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_get_timeout_sendreceive_python.man0000644000175000017500000000503012164561703024624 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_timeout_sendreceive_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_GET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_get_timeout_* \- Get several timeouts .SH SYNOPSIS \fBimport gfal\fR .sp .B int gfal_get_timeout_connect ( ) .sp .B int gfal_get_timeout_sendreceive ( ) .sp .B int gfal_get_timeout_bdii ( ) .sp .B int gfal_get_timeout_srm ( ) .SH DESCRIPTION .B gfal_get_timeout_connect Gets the connect timeout, used when connecting to a remote host. .sp .B gfal_get_timeout_sendreceive Gets the send/receive data timeout, used when transferring data to/from a remote host. .sp .B gfal_get_timeout_bdii Gets the BDII timeout, used when searching information into BDII. .sp .B gfal_get_timeout_srm Gets the SRM timeout, used when doing an asynchronous SRM request. .SH RETURN VALUE This routine returns the value of the corresponding timeout. If the value hasn't been changed by the user, then the function will return the default value. .SH SEE ALSO .BR gfal_python (3), .BR gfal_request_new_python (3), .BR gfal_internal_free_python (3), .BR gfal_init_python (3), .BR gfal_deletesurls_python (3), .BR gfal_removedir_python (3), .BR gfal_turlsfromsurls_python (3), .BR gfal_ls_python (3), .BR gfal_get_python (3), .BR gfal_getstatus_python (3), .BR gfal_prestage_python (3), .BR gfal_prestagestatus_python (3), .BR gfal_pin_python (3), .BR gfal_release_python (3), .BR gfal_abortrequest_python (3), .BR gfal_abortfiles_python (3), .BR gfal_set_xfer_done_python (3), .BR gfal_set_xfer_running_python (3), .BR gfal_get_ids_python (3), .BR gfal_set_ids_python (3), .BR gfal_get_results_python (3), .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_set_ids.man0000644000175000017500000000401212164561703017753 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_ids.man,v $ $Revision: 1.4 $ $Date: 2009/04/16 15:42:49 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_SET_IDS 3 "$Date: 2009/04/16 15:42:49 $" GFAL "Library Functions" .SH NAME gfal_set_ids \- Sets the SRM file/request ids in the 'gfal_internal' object .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_set_ids (gfal_internal " gfal , .BI "int " nbfileids , .BI "int *" srm_fileids , .BI "int " srm_reqid , .BI "char *" srmv2_reqtoken , .BI "char *" errbuf , .BI "int " errbufsz ); .SH DESCRIPTION .B gfal_set_ids Sets the SRM file/request ids (or request token for SRMv2) in the .B gfal_internal object. These values can be retrieve with the function .BR gfal_get_ids (3). .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I srm_reqid The request id returned by a SRMv1 SE. .TP .I srm_fileids The table of file ids returned by a SRMv1 SE. .TP .I srmv2_reqtoken The request token returned by a SRMv2 SE. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL One or more parameter in .I req have a wrong value. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_get_results_python.man0000644000175000017500000001046612164561703022274 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_results_python.man,v $ $Revision: 1.9 $ $Date: 2009/09/08 13:54:58 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_GET_RESULTS 3 "$Date: 2009/09/08 13:54:58 $" GFAL "Library Functions" .SH NAME gfal_get_results \- Extracts the results from the 'gfal_internal' object .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "listOfDict " filestatuses .BI ") gfal_get_results (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_get_results Extracts the results of the last called GFAL function from the .B gfal_internal object. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I filestatuses List of dictionary. See the next section to know the field you can get from it. .SH RESULT DICTIONARY FIELDS Keep in mind that all fields are not fulfilled by all functions! .TP .B string surl The SURLs concerned. Fulfilled by all functions. .TP .B string turl The TURL associated to the SURL in .BR surl . Fulfilled by .IR gfal_turlsfromsurls_python(3) , .IR gfal_getstatuses_python(3) . .TP .B int status For almost all function it corresponds to .I errno values ('0' means that all is ok). But for asynchronous functions, possible values are -1, 0 and 1, what correspond respectively to error, pending and done. Fulfilled by all functions. .TP .B string explanation Error message associated with .BR status . Can be fulfilled by all functions, but only when SRMv2 interface is used. .TP .B int pinlifetime Remaining pin life time for .BR surl . Fulfilled by .IR gfal_turlsfromsurls_python(3) , .IR gfal_getstatus_python(3) , .IR gfal_bringonline_python(3) , .I gfal_prestagestatus_python(3) when SRMv2 interface is used. .TP .B string locality File locality. Possible values are: .IR ONLINE , .IR NEARLINE , .IR ONLINE_AND_NEARLINE , .IR LOST , .IR NONE , .IR UNAVAILABLE , .IR UNKNOWN . .TP .B list stat Stat information about the .BR surl . Each field of the list corresponds to the same thing than in a system python stat. So the field are respectively st_mode, st_ino, st_dev, st_nlink, st_uid, st_gid, st_size, st_atime, st_mtime, st_ctime. It is .B ONLY fulfilled by .IR gfal_ls_python(3) . .TP .B listOfDict subpaths Information about files in the directory (if there are ones) .BR surl . It is .B ONLY fulfilled by .I gfal_ls_python(3) when you define .B srmv2_lslevels to '1' in the .B gfal_request object. .TP .B string checksumtype Name of the checksum algorithm (for example .B ADLER32, MD5 ). It is .B ONLY filled by .I gfal_ls_python(3). .TP .B string checksum The checksum value. It is .B ONLY filled by .I gfal_ls_python(3). .TP .B listOfString spacetokens The list of space tokens. Filled by .I gfal_prestage_python(3) when SRMv2 interface is used. .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B results is defined to NULL. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_get_timeout_bdii.man0000644000175000017500000000312012164561703021634 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_timeout_bdii.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_GET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_get_timeout_* \- Get several timeouts .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .B int gfal_get_timeout_connect ( ); .sp .B int gfal_get_timeout_sendreceive ( ); .sp .B int gfal_get_timeout_bdii ( ); .sp .B int gfal_get_timeout_srm ( ); .SH DESCRIPTION .B gfal_get_timeout_connect Gets the connect timeout, used when connecting to a remote host. .sp .B gfal_get_timeout_sendreceive Gets the send/receive data timeout, used when transferring data to/from a remote host. .sp .B gfal_get_timeout_bdii Gets the BDII timeout, used when searching information into BDII. .sp .B gfal_get_timeout_srm Gets the SRM timeout, used when doing an asynchronous SRM request. .SH RETURN VALUE This routine returns the value of the corresponding timeout. If the value hasn't been changed by the user, then the function will return the default value. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_set_verbose_python.man0000644000175000017500000000462712164561703022256 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_verbose_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_SET_VERBOSE 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_set_verbose_python \- Set verbose level .SH SYNOPSIS \fBimport gfal \fR .sp .BI "int gfal_set_verboose (int " value ); .SH DESCRIPTION .B gfal_set_verbose sets the level of verbosity. By default, it is set to -1, what means no error at all on stderr, but it isn't possible to set it to -1 yourself, only positive or null values are accepted. Moreover, note that if you define .I errbuf for functions which supports it, then critical errors will be put in your buffer and not on stderr, whatever the verbose level is. Here are the possible levels: .RS .TP 0.5i .B 0 Only critical errors are displayed on stderr. .TP .B 1 Warnings are displayed on stderr as well as critical errors. .TP .B 2 Debug information is displayed as well as warnings and critical errors. .RE .SH RETURN VALUE This routine returns 0 in case of success, or -1 in case of error. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_get_timeout_connect_python.man0000644000175000017500000000502412164561703023764 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_timeout_connect_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_GET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_get_timeout_* \- Get several timeouts .SH SYNOPSIS \fBimport gfal\fR .sp .B int gfal_get_timeout_connect ( ) .sp .B int gfal_get_timeout_sendreceive ( ) .sp .B int gfal_get_timeout_bdii ( ) .sp .B int gfal_get_timeout_srm ( ) .SH DESCRIPTION .B gfal_get_timeout_connect Gets the connect timeout, used when connecting to a remote host. .sp .B gfal_get_timeout_sendreceive Gets the send/receive data timeout, used when transferring data to/from a remote host. .sp .B gfal_get_timeout_bdii Gets the BDII timeout, used when searching information into BDII. .sp .B gfal_get_timeout_srm Gets the SRM timeout, used when doing an asynchronous SRM request. .SH RETURN VALUE This routine returns the value of the corresponding timeout. If the value hasn't been changed by the user, then the function will return the default value. .SH SEE ALSO .BR gfal_python (3), .BR gfal_request_new_python (3), .BR gfal_internal_free_python (3), .BR gfal_init_python (3), .BR gfal_deletesurls_python (3), .BR gfal_removedir_python (3), .BR gfal_turlsfromsurls_python (3), .BR gfal_ls_python (3), .BR gfal_get_python (3), .BR gfal_getstatus_python (3), .BR gfal_prestage_python (3), .BR gfal_prestagestatus_python (3), .BR gfal_pin_python (3), .BR gfal_release_python (3), .BR gfal_abortrequest_python (3), .BR gfal_abortfiles_python (3), .BR gfal_set_xfer_done_python (3), .BR gfal_set_xfer_running_python (3), .BR gfal_get_ids_python (3), .BR gfal_set_ids_python (3), .BR gfal_get_results_python (3), .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_turlsfromsurls.man0000644000175000017500000000371212164561703021455 0ustar ellertellert.\" @(#)$RCSfile: gfal_turlsfromsurls.man,v $ $Revision: 1.3 $ $Date: 2008/06/05 13:09:16 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_TURLSFROMSURLS 3 "$Date: 2008/06/05 13:09:16 $" GFAL "Library Functions" .SH NAME gfal_turlsfromsurls \- get TURLs corresponding to SURLs from a SE .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_turlsfromsurls (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_turlsfromsurls converts a list of SURLs into a list of TURLs, according to the list of protocols put in the .B gfal_request object, or to the default system list. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_rename.man0000644000175000017500000000253512164561703017600 0ustar ellertellert.\" @(#)$RCSfile: gfal_rename.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_RENAME 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_rename \- rename a file or a directory .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_rename (const char *" old_name , .BI "const char *" new_name ");" .SH DESCRIPTION .B gfal_rename renames a file or a directory .LP .I old_name and .I new_name specify the old and new file names (this can only be a TURL in the current implementation). .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT A component of .I old_name prefix does not exist. .TP .B EACCES Search permission is denied on a component of the file prefixes or write permission on the parent directories is denied or .I old_name is a directory and write permission is denied on .I old_name or .IR new_name . .TP .B EFAULT .I old_name or .I new_name is a NULL pointer. .TP .B ENOTDIR A component of the file prefixes is not a directory. .TP .B EINVAL .I old_name or .I new_name has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_unlink_python.man0000644000175000017500000000503212164561703021225 0ustar ellertellert.\" @(#)$RCSfile: gfal_unlink_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_UNLINK 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_unlink \- remove a file entry .SH SYNOPSIS \fBimport gfal\fR .sp .BI "int gfal_unlink (string " filename ) .SH DESCRIPTION .B gfal_unlink removes a file entry. .TP .I filename specifies the file name (this can only be a TURL in the current implementation). .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named file does not exist. .TP .B EACCES Search permission is denied on a component of the .I filename prefix or write permission on the parent directory is denied. .TP .B EFAULT .I filename is a NULL pointer. .TP .B ENOTDIR A component of .I filename prefix is not a directory. .TP .B EINVAL .I filename has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_stat_python.man0000644000175000017500000000601412164561703020701 0ustar ellertellert.\" @(#)$RCSfile: gfal_stat_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_STAT 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_stat \- get information about a file or directory .SH SYNOPSIS \fBimport gfal\fR .sp .BI "int gfal_stat (string " filename , .BI "dict " statbuf ) .br .BI "int gfal_lstat (string " filename , .BI "dict " statbuf ) .sp .BI "int gfal_stat64 (string " filename , .BI "dict " statbuf ) .br .BI "int gfal_stat64 (string " filename , .BI "dict " statbuf ) .SH DESCRIPTION .B gfal_stat gets information about a file or directory. .B gfal_lstat is identical to .B gfal_stat except for symbolic links. In this case, the link itself is statted and not followed. .TP .I filename specifies the file name: either a logical file name, a guid, an SURL or a TURL. .LP The 64 bits functions must be used for large files. They have the same syntax as the normal stat functions except that they use a .B stat64 structure. .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named file/directory does not exist. .TP .B EACCES Search permission is denied on a component of the .I filename prefix. .TP .B EFAULT .I filename is a NULL pointer. .TP .B ENOTDIR A component of .I filename prefix is not a directory. .TP .B EINVAL .I filename has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_get_timeout_srm_python.man0000644000175000017500000000502012164561703023130 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_timeout_srm_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_GET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_get_timeout_* \- Get several timeouts .SH SYNOPSIS \fBimport gfal\fR .sp .B int gfal_get_timeout_connect ( ) .sp .B int gfal_get_timeout_sendreceive ( ) .sp .B int gfal_get_timeout_bdii ( ) .sp .B int gfal_get_timeout_srm ( ) .SH DESCRIPTION .B gfal_get_timeout_connect Gets the connect timeout, used when connecting to a remote host. .sp .B gfal_get_timeout_sendreceive Gets the send/receive data timeout, used when transferring data to/from a remote host. .sp .B gfal_get_timeout_bdii Gets the BDII timeout, used when searching information into BDII. .sp .B gfal_get_timeout_srm Gets the SRM timeout, used when doing an asynchronous SRM request. .SH RETURN VALUE This routine returns the value of the corresponding timeout. If the value hasn't been changed by the user, then the function will return the default value. .SH SEE ALSO .BR gfal_python (3), .BR gfal_request_new_python (3), .BR gfal_internal_free_python (3), .BR gfal_init_python (3), .BR gfal_deletesurls_python (3), .BR gfal_removedir_python (3), .BR gfal_turlsfromsurls_python (3), .BR gfal_ls_python (3), .BR gfal_get_python (3), .BR gfal_getstatus_python (3), .BR gfal_prestage_python (3), .BR gfal_prestagestatus_python (3), .BR gfal_pin_python (3), .BR gfal_release_python (3), .BR gfal_abortrequest_python (3), .BR gfal_abortfiles_python (3), .BR gfal_set_xfer_done_python (3), .BR gfal_set_xfer_running_python (3), .BR gfal_get_ids_python (3), .BR gfal_set_ids_python (3), .BR gfal_get_results_python (3), .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_chmod.man0000644000175000017500000000247312164561703017424 0ustar ellertellert.\" @(#)$RCSfile: gfal_chmod.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_CHMOD 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_chmod \- change access mode of a file/directory .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_chmod (const char *" path , .BI "mode_t " mode ); .SH DESCRIPTION .B gfal_chmod changes access mode of the file/directory .I path according to the bit pattern in .IR mode . .TP .I path specifies the file name (this can only be a TURL in the current implementation). .TP .I mode the bit pattern is built by an OR of the constants defined in .RB < sys/stat.h >. .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named file/directory does not exist. .TP .B EACCES Search permission is denied on a component of the .I path prefix or specified access to the file itself is denied. .TP .B EFAULT .I path is a NULL pointer. .TP .B ENOTDIR A component of .I path prefix is not a directory. .TP .B EINVAL .I path has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_set_timeout_connect.man0000644000175000017500000000344012164561703022377 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_timeout_connect.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_SET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_set_timeout_* \- Set several timeouts .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "void gfal_set_timeout_connect (int " value ); .sp .BI "void gfal_set_timeout_sendreceive (int " value ); .sp .BI "void gfal_set_timeout_bdii (int " value ); .sp .BI "void gfal_set_timeout_srm (int " value ); .SH DESCRIPTION .B gfal_set_timeout_connect Sets the connect timeout, used when connecting to a remote host. The connection will be aborted if the remote host doesn't reply after .I value seconds. .sp .B gfal_set_timeout_sendreceive Sets the send/receive data timeout, used when transferring data to/from a remote host. The connection will be aborted if no data is transfered after .I value seconds. .sp .B gfal_set_timeout_bdii Sets the BDII timeout, used when searching information into BDII. The connection will be aborted if the search is longer than .I value seconds. .sp .B gfal_set_timeout_srm Sets the SRM timeout, used when doing an asynchronous SRM request. The request will be aborted if it is still queued after .I value seconds. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_get_timeout_sendreceive.man0000644000175000017500000000312712164561703023230 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_timeout_sendreceive.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_GET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_get_timeout_* \- Get several timeouts .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .B int gfal_get_timeout_connect ( ); .sp .B int gfal_get_timeout_sendreceive ( ); .sp .B int gfal_get_timeout_bdii ( ); .sp .B int gfal_get_timeout_srm ( ); .SH DESCRIPTION .B gfal_get_timeout_connect Gets the connect timeout, used when connecting to a remote host. .sp .B gfal_get_timeout_sendreceive Gets the send/receive data timeout, used when transferring data to/from a remote host. .sp .B gfal_get_timeout_bdii Gets the BDII timeout, used when searching information into BDII. .sp .B gfal_get_timeout_srm Gets the SRM timeout, used when doing an asynchronous SRM request. .SH RETURN VALUE This routine returns the value of the corresponding timeout. If the value hasn't been changed by the user, then the function will return the default value. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_get_ids_setype.man0000644000175000017500000000371312164561703021337 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_ids_setype.man,v $ $Revision: 1.1 $ $Date: 2008/10/20 15:14:44 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_GET_IDS 3 "$Date: 2008/10/20 15:14:44 $" GFAL "Library Functions" .SH NAME gfal_get_ids \- Extracts the SRM file/request ids from the 'gfal_internal' object .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_get_ids (gfal_internal " gfal , .BI "int *" srm_reqid , .BI "int **" srm_fileids , .BI "char **" srmv2_reqtoken ); .sp .BI "int gfal_get_ids_setype (gfal_internal " gfal , .BI "enum se_type *" setype , .BI "int *" srm_reqid , .BI "int **" srm_fileids , .BI "char **" srmv2_reqtoken ); .SH DESCRIPTION .B gfal_get_ids Extracts the SRM file/request ids of the last called GFAL function from the .B gfal_internal object. As it will return only a copy of different ids, you have to manually free variables .B srm_fileids and .B srmv2_reqtoken if the corresponding value is not .B NULL .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I setype The SE type which has been used to get the TURL. Possible values are: TYPE_SRM, TYPE_SRMv2, TYPE_SE. .TP .I srm_reqid The request id returned by a SRMv1 SE. .TP .I srm_fileids The table of file ids returned by a SRMv1 SE. .TP .I srmv2_reqtoken The request token returned by a SRMv2 SE. .SH RETURN VALUE This routine returns the number of files (useful if srm_fileids is not NULL) on a success, or -1 in case of error. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_open.man0000644000175000017500000000442212164561703017267 0ustar ellertellert.\" @(#)$RCSfile: gfal_open.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_OPEN 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_open \- open a file .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_open (const char *" filename , .BI "int " flags , .BI "mode_t " mode ); .sp Under Linux, for large files: .br .B #define _LARGEFILE64_SOURCE .br \fB#include "gfal_api.h"\fR .sp .BI "int gfal_open64 (const char *" filename , .BI "int " flags , .BI "mode_t " mode ); .sp For large files, under other systems: .br \fB#include "gfal_api.h"\fR .sp .BI "int gfal_open64 (const char *" filename , .BI "int " flags , .BI "mode_t " mode ); .SH DESCRIPTION .B gfal_open opens a file according to the value of .I flags. .TP .I filename specifies the file name: either a logical file name, a guid, an SURL or a TURL. .TP .I flags value is built by OR'ing the bits defined in .RB < fcntl.h > but one and only one of the first three flags below must be used: .RS .TP 1.2i .B O_RDONLY open for reading only .TP .B O_WRONLY open for writing only .TP .B O_RDWR open for reading and writing .TP .B O_CREAT If the file exists already and .B O_EXCL is also set, .B gfal_open will fail. .TP .B O_LARGEFILE allows files whose sizes cannot be represented in 31 bits to be opened. .RE .TP .I mode is used only if the file is created. .SH RETURN VALUE This routine returns the file descriptor if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named file does not exist. .TP .B EACCES Search permission is denied on a component of the .I filename prefix or the file does not exist and write permission on the parent directory is denied or the file exists and .I flags permission on the file itself is denied. .TP .B EFAULT .I filename is a NULL pointer. .TP .B EBUSY Device or resource busy. Happens if you try to open in write mode a CASTOR file that is in an active migration stream. .TP .B ENOTDIR A component of .I filename prefix is not a directory. .TP .B EINVAL .I filename has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_get_ids_python.man0000644000175000017500000000560412164561703021350 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_ids_python.man,v $ $Revision: 1.6 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_GET_IDS 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_get_ids \- Extracts the SRM file/request ids from the 'gfal_internal' object .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " nbfiles , .BI "gfal_internal " gfal , .BI "int " srm_reqid , .BI "listOfInt " srm_fileids , .BI "string " srmv2_reqtoken .BI ") gfal_get_ids (gfal_internal " gfal .B ) .sp .BI "(int " nbfiles , .BI "gfal_internal " gfal , .BI "string" setype , .BI "int " srm_reqid , .BI "listOfInt " srm_fileids , .BI "string " srmv2_reqtoken .BI ") gfal_get_ids_setype (gfal_internal " gfal .B ) .SH DESCRIPTION .B gfal_get_ids Extracts the SRM file/request ids of the last called GFAL function from the .B gfal_internal object. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I setype The SE type which has been used to get the TURL. Possible values are: TYPE_SRM, TYPE_SRMv2, TYPE_SE. .TP .I srm_reqid The request id returned by a SRMv1 SE. .TP .I srm_fileids The table of file ids returned by a SRMv1 SE. .TP .I srmv2_reqtoken The request token returned by a SRMv2 SE. .SH RETURN VALUE This routine returns the number of files (useful if srm_fileids is not NULL) on a success, or -1 in case of error. Note that in case of SRMv2.2, number of files isn't relevant, so 0 is returned. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_opendir_python.man0000644000175000017500000000510212164561703021363 0ustar ellertellert.\" @(#)$RCSfile: gfal_opendir_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_OPENDIR 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_opendir \- open a directory .SH SYNOPSIS \fBimport gfal\fR .sp .BI "DIR *gfal_opendir (string " dirname ");" .SH DESCRIPTION .B gfal_opendir opens a directory to be used in subsequent .B gfal_readdir operations. .SH RETURN VALUE This routine returns a pointer to a DIR structure to be used in the subsequent directory function calls if the operation was successful or NULL if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named directory does not exist. .TP .B EACCES Search permission is denied on a component of the .I dirname prefix or read permission on the directory itself is denied. .TP .B EFAULT .I dirname is a NULL pointer. .TP .B ENOTDIR A component of .I dirname prefix is not a directory. .TP .B EINVAL .I dirname has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_lseek_python.man0000644000175000017500000000553512164561703021040 0ustar ellertellert.\" @(#)$RCSfile: gfal_lseek_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_LSEEK 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_lseek \- position a file .SH SYNOPSIS \fBimport gfal\fR .sp .BI "off_t gfal_lseek (int " fd , .BI "long " offset , .BI "int " whence ); .sp .BI "off64_t gfal_lseek64 (int " fd , .BI "long " offset , .BI "int " whence ); .SH DESCRIPTION .B gfal_lseek positions/repositions to .I offset the file associated with the descriptor .I fd generated by a previous .BR gfal_open . .I whence indicates how to interpret the .I offset value: .RS .TP 1.3i .B gfal.SEEK_SET The offset is set from beginning of file. .TP .B gfal.SEEK_CUR The offset is added to current position. .TP .B gfal.SEEK_END The offset is added to current file size. .RE .sp .B gfal_lseek64 performs the same function on large files using off64_t rather than off_t. .SH RETURN VALUE This routine returns the actual offset from the beginning of the file if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B EBADF .I fd is not a valid file descriptor. .TP .B EINVAL incorrect value for .IR whence . .TP .B EFBIG Resulting offset is too big to fit in off_t. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_creat.man0000644000175000017500000000357012164561703017427 0ustar ellertellert.\" @(#)$RCSfile: gfal_creat.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_CREAT 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_creat \- create a new file or truncate an existing one .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_creat (const char *" filename , .BI "mode_t " mode ); .sp Under Linux, for large files: .br .B #define _LARGEFILE64_SOURCE .br \fB#include "gfal_api.h"\fR .sp .BI "int gfal_creat64 (const char *" filename , .BI "mode_t " mode ); .sp For large files, under other systems: .br \fB#include "gfal_api.h"\fR .sp .BI "int gfal_creat64 (const char *" filename , .BI "mode_t " mode ); .SH DESCRIPTION .B gfal_creat creates a new file or truncates an existing one. .TP .I filename specifies the file name: either a logical file name, a guid, an SURL or a TURL. .TP .I mode is used only if the file is created. .LP gfal_creat (filename, mode) is equivalent to: open(filename, O_WRONLY | O_CREAT | O_TRUNC, mode) .SH RETURN VALUE This routine returns a write-only file descriptor if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B EACCES Search permission is denied on a component of the .I filename prefix or the file does not exist and write permission on the parent directory is denied or the file exists and write permission on the file itself is denied. .TP .B EFAULT .I filename is a NULL pointer. .TP .B EBUSY Device or resource busy. Happens if you try to open in write mode a CASTOR file that is in an active migration stream. .TP .B ENOTDIR A component of .I filename prefix is not a directory. .TP .B EINVAL .I filename has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_get_ids_setype_python.man0000644000175000017500000000550312164561703022737 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_ids_setype_python.man,v $ $Revision: 1.2 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_GET_IDS 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_get_ids \- Extracts the SRM file/request ids from the 'gfal_internal' object .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "int " srm_reqid , .BI "listOfInt " srm_fileids , .BI "string " srmv2_reqtoken .BI ") gfal_get_ids (gfal_internal " gfal .B ); .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string" setype , .BI "int " srm_reqid , .BI "listOfInt " srm_fileids , .BI "string " srmv2_reqtoken .BI ") gfal_get_ids_setype (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_get_ids Extracts the SRM file/request ids of the last called GFAL function from the .B gfal_internal object. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I setype The SE type which has been used to get the TURL. Possible values are: TYPE_SRM, TYPE_SRMv2, TYPE_SE. .TP .I srm_reqid The request id returned by a SRMv1 SE. .TP .I srm_fileids The table of file ids returned by a SRMv1 SE. .TP .I srmv2_reqtoken The request token returned by a SRMv2 SE. .SH RETURN VALUE This routine returns the number of files (useful if srm_fileids is not NULL) on a success, or -1 in case of error. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_chmod_python.man0000644000175000017500000000530712164561703021024 0ustar ellertellert.\" @(#)$RCSfile: gfal_chmod_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_CHMOD 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_chmod \- change access mode of a file/directory .SH SYNOPSIS \fBimport gfal\fR .sp .BI "int gfal_chmod (string " path , .BI "mode_t " mode ) .SH DESCRIPTION .B gfal_chmod changes access mode of the file/directory .I path according to the bit pattern in .IR mode . .TP .I path specifies the file name (this can only be a TURL in the current implementation). .TP .I mode Specifies the wanted mode with the same way as system chmod (eg. '0640'). .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named file/directory does not exist. .TP .B EACCES Search permission is denied on a component of the .I path prefix or specified access to the file itself is denied. .TP .B EFAULT .I path is a NULL pointer. .TP .B ENOTDIR A component of .I path prefix is not a directory. .TP .B EINVAL .I path has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_close_python.man0000644000175000017500000000426612164561703021042 0ustar ellertellert.\" @(#)$RCSfile: gfal_close_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_CLOSE 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_close \- close a file .SH SYNOPSIS \fBimport gfal\fR .sp .BI "int gfal_close (int " fd ");" .SH DESCRIPTION .B gfal_close closes the file whose descriptor .I fd is the one returned by .B gfal_open. .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B EBADF .I fd is not a valid file descriptor. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_abortfiles_python.man0000644000175000017500000000616112164561703022063 0ustar ellertellert.\" @(#)$RCSfile: gfal_abortfiles_python.man,v $ $Revision: 1.3 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2008 by CERN .\" All rights reserved .\" .TH GFAL_ABORTFILES 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_abortfiles \- Aborts selective file requests (SRMv2 only!) .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_abortfiles (gfal_internal " gfal .B ) .SH DESCRIPTION .B gfal_abortfiles Aborts selective file requests from asynchronous requests: .IR gfal_get (3), .IR gfal_prestage (3). This is only supported by .BR SRMv2 , so do not forget to specify 'srmv2' for .I defaultsetype or .I setype parameter in the GFAL request. This function needs a list of SURLs (to abort). See .I gfal_get_results_python(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_set_ids_python.man0000644000175000017500000000527712164561703021372 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_ids_python.man,v $ $Revision: 1.5 $ $Date: 2009/04/16 15:26:19 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_SET_IDS 3 "$Date: 2009/04/16 15:26:19 $" GFAL "Library Functions" .SH NAME gfal_set_ids \- Sets the SRM file/request ids in the 'gfal_internal' object .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_set_ids (gfal_internal " gfal , .BI "listOfInt " srm_fileids , .BI "int " srm_reqid , .BI "string " srmv2_reqtoken .B ) .SH DESCRIPTION .B gfal_set_ids Sets the SRM file/request ids in the .B gfal_internal object. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I srm_reqid The request id returned by a SRMv1 SE. .TP .I srm_fileids The table of file ids returned by a SRMv1 SE. .TP .I srmv2_reqtoken The request token returned by a SRMv2 SE. .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL One or more parameter in .I req have a wrong value. .SH SEE ALSO .BR gfal_python (3), .BR gfal_init_python (3), .BR gfal_set_ids_python (3), .BR gfal_get_results_python (3), .BR gfal_internal_free_python (3), .BR gfal_deletesurls_python (3), .BR gfal_removedir_python (3), .BR gfal_get_python (3), .BR gfal_getstatus_python (3), .BR gfal_ls_python (3), .BR gfal_pin_python (3), .BR gfal_prestage_python (3), .BR gfal_prestagestatus_python (3), .BR gfal_release_python (3), .BR gfal_set_xfer_done_python (3), .BR gfal_set_xfer_running_python (3), .BR gfal_turlsfromsurls_python (3), .BR gfal_get_ids_python (3), .BR gfal_set_ids_python (3), .BR gfal_get_results_python (3), .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_turlsfromsurls_python.man0000644000175000017500000000566512164561703023067 0ustar ellertellert.\" @(#)$RCSfile: gfal_turlsfromsurls_python.man,v $ $Revision: 1.5 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_TURLSFROMSURLS 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_turlsfromsurls \- get TURLs corresponding to SURLs from a SE .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_turlsfromsurls (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_turlsfromsurls converts a list of SURLs into a list of TURLs, according to the list of protocols put in the .B gfal_request object, or to the default system list. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_set_xfer_done_python.man0000644000175000017500000000612512164561703022555 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_xfer_done_python.man,v $ $Revision: 1.5 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_SET_XFER_DONE 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_set_xfer_done \- Marks a list of SURLs as 'transfert completed' .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_set_xfer_done (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_set_xfer_done Marks a list of SURLs as 'transfert completed'. When a transfert is needed (get or put), files are marked as 'transfert running' by the function .IR gfal_set_xfer_running_python(3) . Thus, then they have to be marked as 'transfert completed'. See .I gfal_get_results_python(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_access_python.man0000644000175000017500000000561712164561703021177 0ustar ellertellert.\" @(#)$RCSfile: gfal_access_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_ACCESS 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_access \- check existence/accessibility of a file/directory .SH SYNOPSIS .B import os .br \fBimport gfal\fR .sp .BI "int gfal_access (string " path , .BI "int " amode ) .SH DESCRIPTION .B gfal_access checks the existence or the accessibility of the file/directory .I path according to the bit pattern in .I amode using the real user ID. .TP .I path specifies the file name (this can only be a TURL in the current implementation). .TP .I amode the bit pattern is built by an OR of the following constants: .B os.R_OK (read access), .B os.W_OK (write access), .B os.X_OK (execute access) or .B os.F_OK (file existence). .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named file/directory does not exist. .TP .B EACCES Search permission is denied on a component of the .I path prefix or specified access to the file itself is denied. .TP .B EFAULT .I path is a NULL pointer. .TP .B ENOTDIR A component of .I path prefix is not a directory. .TP .B EINVAL .I path has an invalid syntax or .I amode is invalid. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_get_python.man0000644000175000017500000000611512164561703020507 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_python.man,v $ $Revision: 1.5 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_GET 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_get \- Asynchronous function to bring list of SURLs on line and get the corresponding TURLs. .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_get (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_get is an asynchronous function to bring list of SURLs on line and get the corresponding TURLs. It is the asynchronous version of gfal_turlsfromsurls. To check the status of the request and get the results, you must use .IR gfal_getstatus_python(3) . See .I gfal_get_results_python(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_rmdir.man0000644000175000017500000000230412164561703017440 0ustar ellertellert.\" @(#)$RCSfile: gfal_rmdir.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_RMDIR 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_rmdir \- remove a directory .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_rmdir (const char *" dirname ");" .SH DESCRIPTION .B gfal_rmdir removes a directory if it is empty. .TP .I dirname specifies the directory name (this can only be a TURL in the current implementation). .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named directory does not exist. .TP .B EACCES Search permission is denied on a component of the .I dirname prefix or write permission on the parent directory is denied. .TP .B EFAULT .I dirname is a NULL pointer. .TP .B EEXIST The named directory is not empty. .TP .B ENOTDIR A component of .I dirname prefix is not a directory. .TP .B EINVAL .I dirname has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_write_python.man0000644000175000017500000000436512164561703021067 0ustar ellertellert.\" @(#)$RCSfile: gfal_write_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_WRITE 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_write \- write to a file .SH SYNOPSIS \fBimport gfal\fR .sp .BI "int gfal_write (int" fd , .BI "string " buf ) .SH DESCRIPTION .B gfal_write writes .I buf to the file descriptor .IR fd . .SH RETURN VALUE This routine returns the number of bytes actually written if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B EBADF .I fd is not a valid file descriptor. .TP .B ENOSPC No space left on device. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_internal_free.man0000644000175000017500000000220712164561703021142 0ustar ellertellert.\" @(#)$RCSfile: gfal_internal_free.man,v $ $Revision: 1.3 $ $Date: 2008/06/05 13:09:16 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_INTERNAL_FREE 3 "$Date: 2008/06/05 13:09:16 $" GFAL "Library Functions" .SH NAME gfal_internal_free \- frees gfal_internal objects .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "void gfal_internal_free (gfal_internal gfal); .SH DESCRIPTION .B gfal_internal_free frees .B gfal_internal objects with all results which are included. But it .B DOESN'T FREE parts of the initial .B gfal_request object which are used in it. .TP .I gfal .B gfal_internal object to free. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_prestage_python.man0000644000175000017500000000570112164561703021542 0ustar ellertellert.\" @(#)$RCSfile: gfal_prestage_python.man,v $ $Revision: 1.5 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_PRESTAGE 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_prestage \- Asynchronous function to bring on line a lsit of SURLs. .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_prestage (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_prestage is the asynchronous function to bring on line a list of SURLs, in order to allow quicker future acces to them. See .I gfal_get_results_python(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_closedir.man0000644000175000017500000000153412164561703020133 0ustar ellertellert.\" @(#)$RCSfile: gfal_closedir.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_CLOSEDIR 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_closedir \- close a directory .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_closedir (DIR *" dirp ");" .SH DESCRIPTION .B gfal_closedir closes the directory opened by .B gfal_opendir and associated with the .B DIR structure pointed by .IR dirp . .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B EBADF File descriptor in DIR structure is invalid. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_abortrequest_python.man0000644000175000017500000000607212164561703022452 0ustar ellertellert.\" @(#)$RCSfile: gfal_abortrequest_python.man,v $ $Revision: 1.4 $ $Date: 2009/07/17 09:42:52 $ CERN Remi Mollon .\" Copyright (C) 2008 by CERN .\" All rights reserved .\" .TH GFAL_ABORTREQUEST 3 "$Date: 2009/07/17 09:42:52 $" GFAL "Library Functions" .SH NAME gfal_abortrequest \- Aborts a request (SRMv2 only!) .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_abortrequest (gfal_internal " gfal .B ) .SH DESCRIPTION .B gfal_abortrequest Aborts a request from asynchronous requests: .IR gfal_get (3), .IR gfal_prestage (3). This is only supported by .BR SRMv2 , so do not forget to specify 'srmv2' for .I defaultsetype or .I setype parameter in the GFAL request. This function only needs a request token (no need to specify list of SURLs). .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_get.man0000644000175000017500000000412412164561703017104 0ustar ellertellert.\" @(#)$RCSfile: gfal_get.man,v $ $Revision: 1.3 $ $Date: 2008/06/05 13:09:16 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_GET 3 "$Date: 2008/06/05 13:09:16 $" GFAL "Library Functions" .SH NAME gfal_get \- Asynchronous function to bring list of SURLs on line and get the corresponding TURLs. .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_get (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_get is an asynchronous function to bring list of SURLs on line and get the corresponding TURLs. It is the asynchronous version of gfal_turlsfromsurls. To check the status of the request and get the results, you must use .IR gfal_getstatus(3) . See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_closedir_python.man0000644000175000017500000000436512164561703021541 0ustar ellertellert.\" @(#)$RCSfile: gfal_closedir_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_CLOSEDIR 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_closedir \- close a directory .SH SYNOPSIS \fBimport gfal\fR .sp .BI "int gfal_closedir (DIRp " dirp ");" .SH DESCRIPTION .B gfal_closedir closes the directory opened by .B gfal_opendir and associated with the .B DIR structure pointed by .IR dirp . .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B EBADF File descriptor in DIR structure is invalid. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_get_timeout_bdii_python.man0000644000175000017500000000502112164561703023237 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_timeout_bdii_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_GET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_get_timeout_* \- Get several timeouts .SH SYNOPSIS \fBimport gfal\fR .sp .B int gfal_get_timeout_connect ( ) .sp .B int gfal_get_timeout_sendreceive ( ) .sp .B int gfal_get_timeout_bdii ( ) .sp .B int gfal_get_timeout_srm ( ) .SH DESCRIPTION .B gfal_get_timeout_connect Gets the connect timeout, used when connecting to a remote host. .sp .B gfal_get_timeout_sendreceive Gets the send/receive data timeout, used when transferring data to/from a remote host. .sp .B gfal_get_timeout_bdii Gets the BDII timeout, used when searching information into BDII. .sp .B gfal_get_timeout_srm Gets the SRM timeout, used when doing an asynchronous SRM request. .SH RETURN VALUE This routine returns the value of the corresponding timeout. If the value hasn't been changed by the user, then the function will return the default value. .SH SEE ALSO .BR gfal_python (3), .BR gfal_request_new_python (3), .BR gfal_internal_free_python (3), .BR gfal_init_python (3), .BR gfal_deletesurls_python (3), .BR gfal_removedir_python (3), .BR gfal_turlsfromsurls_python (3), .BR gfal_ls_python (3), .BR gfal_get_python (3), .BR gfal_getstatus_python (3), .BR gfal_prestage_python (3), .BR gfal_prestagestatus_python (3), .BR gfal_pin_python (3), .BR gfal_release_python (3), .BR gfal_abortrequest_python (3), .BR gfal_abortfiles_python (3), .BR gfal_set_xfer_done_python (3), .BR gfal_set_xfer_running_python (3), .BR gfal_get_ids_python (3), .BR gfal_set_ids_python (3), .BR gfal_get_results_python (3), .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_opendir.man0000644000175000017500000000225512164561703017770 0ustar ellertellert.\" @(#)$RCSfile: gfal_opendir.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_OPENDIR 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_opendir \- open a directory .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "DIR *gfal_opendir (const char *" dirname ");" .SH DESCRIPTION .B gfal_opendir opens a directory to be used in subsequent .B gfal_readdir operations. .SH RETURN VALUE This routine returns a pointer to a DIR structure to be used in the subsequent directory function calls if the operation was successful or NULL if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named directory does not exist. .TP .B EACCES Search permission is denied on a component of the .I dirname prefix or read permission on the directory itself is denied. .TP .B EFAULT .I dirname is a NULL pointer. .TP .B ENOTDIR A component of .I dirname prefix is not a directory. .TP .B EINVAL .I dirname has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_deletesurls.man0000644000175000017500000000356612164561703020671 0ustar ellertellert.\" @(#)$RCSfile: gfal_deletesurls.man,v $ $Revision: 1.3 $ $Date: 2008/06/05 13:09:16 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_DELESURLS 3 "$Date: 2008/06/05 13:09:16 $" GFAL "Library Functions" .SH NAME gfal_deletesurls \- delete a list of SURLs from a SE .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_deletesurls (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_deletesurls delete a list of SURLs from a SE. See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_python.man0000644000175000017500000001147012164561703017650 0ustar ellertellert.\" @(#)$RCSfil $ $Revision $ $Date $ CERN Remi MOLLON .\" Copyright (C) 2004-2006 by CERN .\" All rights reserved .\" .TH GFAL_PYTHON 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal - Grid File Access Library .SH SYNOPSIS import gfal import gfalthr .BI "( string " version .B ) gfal_version () .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_init ( dict " req .B ) .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "int " srm_reqid , .BI "listOfInt " srm_fileids , .BI "string " srmv2_reqtoken .BI ") gfal_get_ids ( gfal_internal " gfal .B ) .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "listOfDict " filestatuses .BI ") gfal_get_results ( gfal_internal " gfal .B ) .BI "(void) gfal_internal_free ( gfal_internal " gfal .B ) .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_deletesurls ( gfal_internal " gfal .B ) .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_get ( gfal_internal " gfal .B ) .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_getstatus ( gfal_internal " gfal .B ) .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_ls ( gfal_internal " gfal .B ) .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_prestage ( gfal_internal " gfal .B ) .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_pin ( gfal_internal " gfal .B ) .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_prestagestatus ( gfal_internal " gfal .B ) .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_release ( gfal_internal " gfal .B ) .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_set_xfer_done ( gfal_internal " gfal .B ) .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_set_xfer_running ( gfal_internal " gfal .B ) .BI "( int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_turlsfromsurls ( gfal_internal " gfal .B ) .SH USAGE Due to the 'gfal_internal' object used by GFAL functions, using this API requires to follow a few steps. First of all, you have to create a .BR request , in which you will be able to set your parameters : import gfal gfalreq = {} gfalreq["surls"] = ["srm://lxdpm102.cern.ch/dpm/cern.ch/home/dteam/file.test"] ... To see the meaning of each parameter, have a look to the documentation of .BR gfal_init_python (3). Once, you have set all the desired parameters in this request, you have to generate the internal gfal object like this : returnCode, gfalObj, errMsg = gfal.gfal_init (gfalreq) .B DO NOT MODIFY this object by hand. If you need other parameters, just make a new request and run gfal_init again on it. Then, you just have to pass this internal object .B gfalObj to gfal functions : returnCode, gfalObj, errMsg = gfal.gfal_turlsfromsurls (gfalObj) Finally, you have to call a specific function to get the results : returnCode, gfalObj, statuses = gfal.gfal_get_results (gfalObj) It is recommended to keep the same 'gfal_internal' object for making requests on same SURLs. Once the 'gfal_internal' object is not needed anymore, it must be freed: gfal.gfal_internal_free (gfalObj); .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_request_new.man0000644000175000017500000000206212164561703020665 0ustar ellertellert.\" @(#)$RCSfile: gfal_request_new.man,v $ $Revision: 1.1 $ $Date: 2007/08/09 17:20:41 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_REQUEST_NEW 3 "$Date: 2007/08/09 17:20:41 $" GFAL "Library Functions" .SH NAME gfal_request_new \- creates a new GFAL request .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "gfal_request gfal_request_new (); .SH DESCRIPTION .B gfal_request_new creates a new .I gfal_request ready to be filled with your parameters. .SH RETURN VALUE This routine returns a pointer to a .I gfal_request object, or NULL in case of error. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal(3) , .BR gfal_init(3) , .BR gfal_internal_free(3) , .BR gfal_deletesurls(3) , .BR gfal_turlsfromsurls(3) , .BR gfal_ls(3) , .BR gfal_get(3) , .BR gfal_getstatus(3) , .BR gfal_prestage(3) , .BR gfal_prestagestatus(3) , .BR gfal_pin(3) , .BR gfal_release(3) , .BR gfal_set_xfer_done(3) , .BR gfal_set_xfer_running(3) , .B gfal_get_results(3) gfal2-2.3.0/doc/legacy-man/gfal_get_errno_python.man0000644000175000017500000000410112164561703021705 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_errno_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_GET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_get_errno \- Get errno value. .SH SYNOPSIS .B import errno .br \fBimport gfal\fR .sp .B int gfal_get_errno ( ); .SH DESCRIPTION .B gfal_get_errno Gets .I errno value. This value corresponds to an indication about the error from the last function call. Then you can compare the value with module errno's symbol values, to determine the error. .SH RETURN VALUE The errno value. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_set_timeout_bdii.man0000644000175000017500000000343512164561703021661 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_timeout_bdii.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_SET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_set_timeout_* \- Set several timeouts .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "void gfal_set_timeout_connect (int " value ); .sp .BI "void gfal_set_timeout_sendreceive (int " value ); .sp .BI "void gfal_set_timeout_bdii (int " value ); .sp .BI "void gfal_set_timeout_srm (int " value ); .SH DESCRIPTION .B gfal_set_timeout_connect Sets the connect timeout, used when connecting to a remote host. The connection will be aborted if the remote host doesn't reply after .I value seconds. .sp .B gfal_set_timeout_sendreceive Sets the send/receive data timeout, used when transferring data to/from a remote host. The connection will be aborted if no data is transfered after .I value seconds. .sp .B gfal_set_timeout_bdii Sets the BDII timeout, used when searching information into BDII. The connection will be aborted if the search is longer than .I value seconds. .sp .B gfal_set_timeout_srm Sets the SRM timeout, used when doing an asynchronous SRM request. The request will be aborted if it is still queued after .I value seconds. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_readdir.man0000644000175000017500000000265412164561703017745 0ustar ellertellert.\" @(#)$RCSfile: gfal_readdir.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_READDIR 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_readdir \- read a directory .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "struct dirent *gfal_readdir (DIR *" dirp ");" .sp Under Linux, for large files: .br .B #define _LARGEFILE64_SOURCE .br \fB#include "gfal_api.h"\fR .sp .BI "struct dirent64 *gfal_readdir64 (DIR *" dirp ");" .sp Under Solaris, for large files: .br \fB#include "gfal_api.h"\fR .sp .BI "struct dirent64 *gfal_readdir64 (DIR *" dirp ");" .SH DESCRIPTION .B gfal_readdir reads a directory opened by .B gfal_opendir and associated with the .B DIR structure pointed by .IR dirp . .LP The 64 bits function must be used for large files. It has the same syntax as the normal readdir function except that it uses a .B dirent64 structure. .SH RETURN VALUE These routines return a pointer to a structure containing the current directory entry if the operation was successful or NULL if the end of the directory was reached or if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B EBADF File descriptor in DIR structure is invalid. .TP .B EFAULT .I dirp is a NULL pointer. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_release_python.man0000644000175000017500000000566712164561703021363 0ustar ellertellert.\" @(#)$RCSfile: gfal_release_python.man,v $ $Revision: 1.5 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_RELEASE 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_release \- Releases a list of SURLs .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_release (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_release Releases a list of SURLs. It means that all SURLs in that list which was on-line, will be released, so they will not be on-line anymore. See .I gfal_get_results_python(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_creat_python.man0000644000175000017500000000601512164561703021025 0ustar ellertellert.\" @(#)$RCSfile: gfal_creat_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_CREAT 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_creat \- create a new file or truncate an existing one .SH SYNOPSIS \fBimport gfal\fR .sp .BI "int gfal_creat (string " filename , .BI "int " mode ); .sp .BI "int gfal_creat64 (string " filename , .BI "int " mode ); .SH DESCRIPTION .B gfal_creat creates a new file or truncates an existing one. .TP .I filename specifies the file name: either a logical file name, a guid, an SURL or a TURL. .TP .I mode is used only if the file is created. .LP gfal_creat (filename, mode) is equivalent to: gfal_open(filename, O_WRONLY | O_CREAT | O_TRUNC, mode) .SH RETURN VALUE This routine returns a write-only file descriptor if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B EACCES Search permission is denied on a component of the .I filename prefix or the file does not exist and write permission on the parent directory is denied or the file exists and write permission on the file itself is denied. .TP .B EFAULT .I filename is a NULL pointer. .TP .B EBUSY Device or resource busy. Happens if you try to open in write mode a CASTOR file that is in an active migration stream. .TP .B ENOTDIR A component of .I filename prefix is not a directory. .TP .B EINVAL .I filename has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_set_timeout_srm.man0000644000175000017500000000343412164561703021552 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_timeout_srm.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_SET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_set_timeout_* \- Set several timeouts .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "void gfal_set_timeout_connect (int " value ); .sp .BI "void gfal_set_timeout_sendreceive (int " value ); .sp .BI "void gfal_set_timeout_bdii (int " value ); .sp .BI "void gfal_set_timeout_srm (int " value ); .SH DESCRIPTION .B gfal_set_timeout_connect Sets the connect timeout, used when connecting to a remote host. The connection will be aborted if the remote host doesn't reply after .I value seconds. .sp .B gfal_set_timeout_sendreceive Sets the send/receive data timeout, used when transferring data to/from a remote host. The connection will be aborted if no data is transfered after .I value seconds. .sp .B gfal_set_timeout_bdii Sets the BDII timeout, used when searching information into BDII. The connection will be aborted if the search is longer than .I value seconds. .sp .B gfal_set_timeout_srm Sets the SRM timeout, used when doing an asynchronous SRM request. The request will be aborted if it is still queued after .I value seconds. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_close.man0000644000175000017500000000143412164561703017433 0ustar ellertellert.\" @(#)$RCSfile: gfal_close.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_CLOSE 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_close \- close a file .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_close (int " fd ");" .SH DESCRIPTION .B gfal_close closes the file whose descriptor .I fd is the one returned by .B gfal_open. .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B EBADF .I fd is not a valid file descriptor. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_stat.man0000644000175000017500000000400612164561703017277 0ustar ellertellert.\" @(#)$RCSfile: gfal_stat.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_STAT 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_stat \- get information about a file or directory .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_stat (const char *" filename , .BI "struct stat *" statbuf ); .br .BI "int gfal_lstat (const char *" filename , .BI "struct stat *" statbuf ); .sp Under Linux, for large files: .br .B #define _LARGEFILE64_SOURCE .br \fB#include "gfal_api.h"\fR .sp .BI "int gfal_stat64 (const char *" filename , .BI "struct stat64 *" statbuf ); .br .BI "int gfal_stat64 (const char *" filename , .BI "struct stat64 *" statbuf ); .sp For large files, under other systems: .br \fB#include "gfal_api.h"\fR .sp .BI "int gfal_stat64 (const char *" filename , .BI "struct stat64 *" statbuf ); .br .BI "int gfal_lstat64 (const char *" filename , .BI "struct stat64 *" statbuf ); .SH DESCRIPTION .B gfal_stat gets information about a file or directory. .B gfal_lstat is identical to .B gfal_stat except for symbolic links. In this case, the link itself is statted and not followed. .TP .I filename specifies the file name: either a logical file name, a guid, an SURL or a TURL. .LP The 64 bits functions must be used for large files. They have the same syntax as the normal stat functions except that they use a .B stat64 structure. .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named file/directory does not exist. .TP .B EACCES Search permission is denied on a component of the .I filename prefix. .TP .B EFAULT .I filename is a NULL pointer. .TP .B ENOTDIR A component of .I filename prefix is not a directory. .TP .B EINVAL .I filename has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_access.man0000644000175000017500000000264612164561703017575 0ustar ellertellert.\" @(#)$RCSfile: gfal_access.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_ACCESS 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_access \- check existence/accessibility of a file/directory .SH SYNOPSIS .B #include .br \fB#include "gfal_api.h"\fR .sp .BI "int gfal_access (const char *" path , .BI "int " amode ); .SH DESCRIPTION .B gfal_access checks the existence or the accessibility of the file/directory .I path according to the bit pattern in .I amode using the real user ID. .TP .I path specifies the file name (this can only be a TURL in the current implementation). .TP .I amode the bit pattern is built by an OR of the constants defined in .RB < unistd.h >. .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named file/directory does not exist. .TP .B EACCES Search permission is denied on a component of the .I path prefix or specified access to the file itself is denied. .TP .B EFAULT .I path is a NULL pointer. .TP .B ENOTDIR A component of .I path prefix is not a directory. .TP .B EINVAL .I path has an invalid syntax or .I amode is invalid. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_prestagestatus.man0000644000175000017500000000406012164561703021402 0ustar ellertellert.\" @(#)$RCSfile: gfal_prestagestatus.man,v $ $Revision: 1.3 $ $Date: 2008/06/05 13:09:16 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_PRESTAGESTATUS 3 "$Date: 2008/06/05 13:09:16 $" GFAL "Library Functions" .SH NAME gfal_prestagestatus \- Asynchronous function to check status of a gfal_prestage request. .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_prestagestatus (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_prestagestatus is the asynchronous function which must be used to check the status of the .I gfal_prestage(3) request and get the results. See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters and used for the .B gfal_prestage(3) call. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_pin_python.man0000644000175000017500000000554412164561703020523 0ustar ellertellert.\" @(#)$RCSfile: gfal_pin_python.man,v $ $Revision: 1.5 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_PIN 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_pin \- Extends the on-line life time of a list of SURLs .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_pin (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_pin Extends the on-line life time of a list of SURLs. See .I gfal_get_results_python(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_removedir.man0000644000175000017500000000364412164561703020327 0ustar ellertellert.\" @(#)$RCSfile: gfal_removedir.man,v $ $Revision: 1.1 $ $Date: 2008/06/06 10:57:49 $ CERN Remi Mollon .\" Copyright (C) 2008 by CERN .\" All rights reserved .\" .TH GFAL_REMOVEDIR 3 "$Date: 2008/06/06 10:57:49 $" GFAL "Library Functions" .SH NAME gfal_removedir \- delete a directory SURL from a SE .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_removedir (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_removedir delete a directory SURL from a SE (only a single directory can be deleted at a time). See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_get_ids.man0000644000175000017500000000367212164561703017752 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_ids.man,v $ $Revision: 1.5 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_GET_IDS 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_get_ids \- Extracts the SRM file/request ids from the 'gfal_internal' object .SH SYNOPSIS \fBimport gfal\fR .sp .BI "int gfal_get_ids (gfal_internal " gfal , .BI "int *" srm_reqid , .BI "int **" srm_fileids , .BI "char **" srmv2_reqtoken ); .sp .BI "int gfal_get_ids_setype (gfal_internal " gfal , .BI "enum se_type *" setype , .BI "int *" srm_reqid , .BI "int **" srm_fileids , .BI "char **" srmv2_reqtoken ); .SH DESCRIPTION .B gfal_get_ids Extracts the SRM file/request ids of the last called GFAL function from the .B gfal_internal object. As it will return only a copy of different ids, you have to manually free variables .B srm_fileids and .B srmv2_reqtoken if the corresponding value is not .B NULL .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I setype The SE type which has been used to get the TURL. Possible values are: TYPE_SRM, TYPE_SRMv2, TYPE_SE. .TP .I srm_reqid The request id returned by a SRMv1 SE. .TP .I srm_fileids The table of file ids returned by a SRMv1 SE. .TP .I srmv2_reqtoken The request token returned by a SRMv2 SE. .SH RETURN VALUE This routine returns the number of files (useful if srm_fileids is not NULL) on a success, or -1 in case of error. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_bringonline_python.man0000644000175000017500000000571612164561703022244 0ustar ellertellert.\" @(#)$RCSfile: gfal_bringonline_python.man,v $ $Revision: 1.1 $ $Date: 2009/04/16 13:55:17 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_BRINGONLINE 3 "$Date: 2009/04/16 13:55:17 $" GFAL "Library Functions" .SH NAME gfal_bringonline \- Synchronous function to bring on line a list of SURLs. .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_bringonline (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_bringonline is the synchronous function to bring on line a list of SURLs, in order to allow quicker future acces to them. See .I gfal_get_results_python(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_removedir_python.man0000644000175000017500000000537612164561703021734 0ustar ellertellert.\" @(#)$RCSfile: gfal_removedir_python.man,v $ $Revision: 1.2 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2008 by CERN .\" All rights reserved .\" .TH GFAL_REMOVEDIR 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_removedir \- delete a directory SURL from a SE .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_removedir (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_removedir delete a directory SURL from a SE (only a single directory can be deleted at a time). See .I gfal_get_results_python(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_set_timeout_bdii_python.man0000644000175000017500000000531212164561703023256 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_timeout_bdii_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_SET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_set_timeout_* \- Set several timeouts .SH SYNOPSIS \fBimport gfal\fR .sp .BI "gfal_set_timeout_connect (int " value ) .sp .BI "gfal_set_timeout_sendreceive (int " value ) .sp .BI "gfal_set_timeout_bdii (int " value ) .sp .BI "gfal_set_timeout_srm (int " value ) .SH DESCRIPTION .B gfal_set_timeout_connect Sets the connect timeout, used when connecting to a remote host. The connection will be aborted if the remote host doesn't reply after .I value seconds. .sp .B gfal_set_timeout_sendreceive Sets the send/receive data timeout, used when transferring data to/from a remote host. The connection will be aborted if no data is transfered after .I value seconds. .sp .B gfal_set_timeout_bdii Sets the BDII timeout, used when searching information into BDII. The connection will be aborted if the search is longer than .I value seconds. .sp .B gfal_set_timeout_srm Sets the SRM timeout, used when doing an asynchronous SRM request. The request will be aborted if it is still queued after .I value seconds. .SH SEE ALSO .BR gfal_python (3), .BR gfal_request_new_python (3), .BR gfal_internal_free_python (3), .BR gfal_init_python (3), .BR gfal_deletesurls_python (3), .BR gfal_removedir_python (3), .BR gfal_turlsfromsurls_python (3), .BR gfal_ls_python (3), .BR gfal_get_python (3), .BR gfal_getstatus_python (3), .BR gfal_prestage_python (3), .BR gfal_prestagestatus_python (3), .BR gfal_pin_python (3), .BR gfal_release_python (3), .BR gfal_abortrequest_python (3), .BR gfal_abortfiles_python (3), .BR gfal_set_xfer_done_python (3), .BR gfal_set_xfer_running_python (3), .BR gfal_get_ids_python (3), .BR gfal_set_ids_python (3), .BR gfal_get_results_python (3), .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_prestagestatus_python.man0000644000175000017500000000606012164561703023005 0ustar ellertellert.\" @(#)$RCSfile: gfal_prestagestatus_python.man,v $ $Revision: 1.5 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_PRESTAGESTATUS 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_prestagestatus \- Asynchronous function to check status of a gfal_prestage request. .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_prestagestatus (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_prestagestatus is the asynchronous function which must be used to check the status of the .I gfal_prestage_python(3) request and get the results. See .I gfal_get_results_python(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters and used for the .B gfal_prestage_python(3) call. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_getstatus_python.man0000644000175000017500000000601012164561703021745 0ustar ellertellert.\" @(#)$RCSfile: gfal_getstatus_python.man,v $ $Revision: 1.5 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_GETSTATUS 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_getstatus \- Asynchronous function to check status of a gfal_get request. .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_getstatus (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_getstatus is the asynchronous function which must be used to check the status of the .I gfal_get_python(3) request and get the results. See .I gfal_get_results_python(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters and used for the .B gfal_get_python(3) call. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_pin.man0000644000175000017500000000356212164561703017120 0ustar ellertellert.\" @(#)$RCSfile: gfal_pin.man,v $ $Revision: 1.3 $ $Date: 2008/06/05 13:09:16 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_PIN 3 "$Date: 2008/06/05 13:09:16 $" GFAL "Library Functions" .SH NAME gfal_pin \- Extends the on-line life time of a list of SURLs .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_pin (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_pin Extends the on-line life time of a list of SURLs. See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_bringonline.man0000644000175000017500000000373112164561703020636 0ustar ellertellert.\" @(#)$RCSfile: gfal_bringonline.man,v $ $Revision: 1.1 $ $Date: 2009/04/16 13:55:17 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_BRINGONLINE 3 "$Date: 2009/04/16 13:55:17 $" GFAL "Library Functions" .SH NAME gfal_prestage \- Synchronous function to bring on line a list of SURLs. .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_bringonline (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_bringonline is the synchronous function to bring on line a list of SURLs, in order to allow quicker future acces to them. See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_set_timeout_sendreceive.man0000644000175000017500000000344412164561703023246 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_timeout_sendreceive.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_SET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_set_timeout_* \- Set several timeouts .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "void gfal_set_timeout_connect (int " value ); .sp .BI "void gfal_set_timeout_sendreceive (int " value ); .sp .BI "void gfal_set_timeout_bdii (int " value ); .sp .BI "void gfal_set_timeout_srm (int " value ); .SH DESCRIPTION .B gfal_set_timeout_connect Sets the connect timeout, used when connecting to a remote host. The connection will be aborted if the remote host doesn't reply after .I value seconds. .sp .B gfal_set_timeout_sendreceive Sets the send/receive data timeout, used when transferring data to/from a remote host. The connection will be aborted if no data is transfered after .I value seconds. .sp .B gfal_set_timeout_bdii Sets the BDII timeout, used when searching information into BDII. The connection will be aborted if the search is longer than .I value seconds. .sp .B gfal_set_timeout_srm Sets the SRM timeout, used when doing an asynchronous SRM request. The request will be aborted if it is still queued after .I value seconds. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_ls_python.man0000644000175000017500000000571712164561703020355 0ustar ellertellert.\" @(#)$RCSfile: gfal_ls_python.man,v $ $Revision: 1.6 $ $Date: 2009/07/08 14:06:20 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_LS 3 "$Date: 2009/07/08 14:06:20 $" GFAL "Library Functions" .SH NAME gfal_ls \- List SE directory contents (not supported by classic SE) .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_ls (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_ls List SE directory contents with metadata of each files (stat information). For corresponding parameters what can be tuned, see man page of .IR gfal_init . See .I gfal_get_results_python(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_deletesurls_python.man0000644000175000017500000000532112164561703022261 0ustar ellertellert.\" @(#)$RCSfile: gfal_deletesurls_python.man,v $ $Revision: 1.5 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_DELESURLS 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_deletesurls \- delete a list of SURLs from a SE .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_deletesurls (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_deletesurls delete a list of SURLs from a SE. See .I gfal_get_results_python(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_rmdir_python.man0000644000175000017500000000512612164561703021046 0ustar ellertellert.\" @(#)$RCSfile: gfal_rmdir_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_RMDIR 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_rmdir \- remove a directory .SH SYNOPSIS \fBimport gfal\fR .sp .BI "int gfal_rmdir (string " dirname ) .SH DESCRIPTION .B gfal_rmdir removes a directory if it is empty. .TP .I dirname specifies the directory name (this can only be a TURL in the current implementation). .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named directory does not exist. .TP .B EACCES Search permission is denied on a component of the .I dirname prefix or write permission on the parent directory is denied. .TP .B EFAULT .I dirname is a NULL pointer. .TP .B EEXIST The named directory is not empty. .TP .B ENOTDIR A component of .I dirname prefix is not a directory. .TP .B EINVAL .I dirname has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_lseek.man0000644000175000017500000000327612164561703017437 0ustar ellertellert.\" @(#)$RCSfile: gfal_lseek.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_LSEEK 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_lseek \- position a file .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "off_t gfal_lseek (int " fd , .BI "off_t " offset , .BI "int " whence ); .sp Under Linux, for large files: .br .B #define _LARGEFILE64_SOURCE .br \fB#include "gfal_api.h"\fR .sp .BI "off64_t gfal_lseek64 (int " fd , .BI "off64_t " offset , .BI "int " whence ); .sp For large files, under other systems: .br \fB#include "gfal_api.h"\fR .sp .BI "off64_t gfal_lseek64 (int " fd , .BI "off64_t " offset , .BI "int " whence ); .SH DESCRIPTION .B gfal_lseek positions/repositions to .I offset the file associated with the descriptor .I fd generated by a previous .BR gfal_open . .I whence indicates how to interpret the .I offset value: .RS .TP 1.3i .B SEEK_SET The offset is set from beginning of file. .TP .B SEEK_CUR The offset is added to current position. .TP .B SEEK_END The offset is added to current file size. .RE .sp .B gfal_lseek64 performs the same function on large files using off64_t rather than off_t. .SH RETURN VALUE This routine returns the actual offset from the beginning of the file if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B EBADF .I fd is not a valid file descriptor. .TP .B EINVAL incorrect value for .IR whence . .TP .B EFBIG Resulting offset is too big to fit in off_t. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_prestage.man0000644000175000017500000000371712164561703020146 0ustar ellertellert.\" @(#)$RCSfile: gfal_prestage.man,v $ $Revision: 1.3 $ $Date: 2008/06/05 13:09:16 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_PRESTAGE 3 "$Date: 2008/06/05 13:09:16 $" GFAL "Library Functions" .SH NAME gfal_prestage \- Asynchronous function to bring on line a lsit of SURLs. .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_prestage (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_prestage is the asynchronous function to bring on line a list of SURLs, in order to allow quicker future acces to them. See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_ls.man0000644000175000017500000000373612164561703016753 0ustar ellertellert.\" @(#)$RCSfile: gfal_ls.man,v $ $Revision: 1.4 $ $Date: 2009/07/08 14:06:20 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_LS 3 "$Date: 2009/07/08 14:06:20 $" GFAL "Library Functions" .SH NAME gfal_ls \- List SE directory contents (not supported by classic SE) .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_ls (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_ls List SE directory contents with metadata of each files (stat information). For corresponding parameters what can be tuned, see man page of .IR gfal_init . See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_read.man0000644000175000017500000000156212164561703017243 0ustar ellertellert.\" @(#)$RCSfile: gfal_read.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_READ 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_read \- read from a file .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_read (int" fd , .BI "void *" buf , .BI "size_t " size ); .SH DESCRIPTION .B gfal_read reads up to .I size bytes from the file descriptor .I fd into the buffer pointed by .IR buf . .SH RETURN VALUE This routine returns the number of bytes actually read if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B EBADF .I fd is not a valid file descriptor. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_set_xfer_running_python.man0000644000175000017500000000605012164561703023305 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_xfer_running_python.man,v $ $Revision: 1.5 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_SET_XFER_RUNNING 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_set_xfer_running \- Marks a list of SURLs as 'transfert running' .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_set_xfer_running (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_set_xfer_running Marks a list of SURLs as 'transfert running' (for get and put). Once the transfert is finished, files have to be marked as 'transfert completed' by hte function .IR gfal_set_xfer_running(3) . See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_abortfiles.man0000644000175000017500000000420012164561703020452 0ustar ellertellert.\" @(#)$RCSfile: gfal_abortfiles.man,v $ $Revision: 1.2 $ $Date: 2008/06/05 13:09:16 $ CERN Remi Mollon .\" Copyright (C) 2008 by CERN .\" All rights reserved .\" .TH GFAL_ABORTFILES 3 "$Date: 2008/06/05 13:09:16 $" GFAL "Library Functions" .SH NAME gfal_abortfiles \- Aborts selective file requests (SRMv2 only!) .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_abortfiles (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_abortfiles Aborts selective file requests from asynchronous requests: .IR gfal_get (3), .IR gfal_prestage (3). This is only supported by .BR SRMv2 , so do not forget to specify 'srmv2' for .I defaultsetype or .I setype parameter in the GFAL request. This function needs a list of SURLs (to abort). See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_init_python.man0000644000175000017500000001545312164561703020700 0ustar ellertellert.\" @(#)$RCSfile: gfal_init_python.man,v $ $Revision: 1.7 $ $Date: 2009/04/16 13:56:37 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_INIT 3 "$Date: 2009/04/16 13:56:37 $" GFAL "Library Functions" .SH NAME gfal_init \- generates a 'gfal_internal' object .SH SYNOPSIS \fBimport gfal\fR .sp .BI "(int " returncode , .BI "gfal_internal " gfal , .BI "string " errmsg .BI ") gfal_init (dict " req .B ); .SH DESCRIPTION .B gfal_init generates a .B gfal_internal object from user parameters stored in a .B gfal_request object. It is important to note that user parameters must not be freed while .I gfal is needed. This object can/should be used several times for requests on same files. It is very important to not modify such an object by hand, it have to be seen as a black box. .TP .I req Python dictionary in which you have to put your parameters. To have the list of available parameters see the next section .BR "Parameters in req" . .TP .I gfal .B gfal_internal object to be passed to other functions. .SH PARAMETERS IN REQ .TP .B listOfString surls Is the list of SURLs on which you want to do actions. It is mandatory in all cases, except when you want to generate new file names (to create new file on a SE) (see .I generatesurls parameter). .TP .B int generatesurls If set to '1' and .I surls is set to NULL, .B gfal_init() will generate .I nbfiles file names. It is useful when you want to put new files on a SE, and you don't want a specific file name. But in this case, the parameter .I endpoint must be set to the SE host name on which you want to create files, when to set .I generatesurls to '1'. In all other cases, it is ignored. Moreover, to generate file names, BDII is required to get the root path, so it is not compatible with .I no_bdii_check parameter. .TP .B string relative_path Is used during file name generation ( .I generatesurls is set to '1'), to specify the default sub-directory (in the root path) in which to put files. In all other cases, it is ignored. .TP .B int oflag Allows to specify if it is a .B get or a .B put action. It is only used by .B gfal_turlsfromsurls() function. By default, the function considers it is a .B get request. .TP .B listOfInt filesizes It is only used and mandatory when .I oflag is set to '1'. It is a table of size .I nbfiles in which there are the sizes of the files what will be put on the SE. .TP .B string defaultsetype Allows to specify the default type of the given SE to be used. The possible values are .BR none , .BR se , .BR srmv1 , .BR srmv2 . They respectively correspond to no default type, Classic SE, SRM v1, SRMv2. If BDII calls are not disabled, and there no entry for the given SE with this type, but for another type, the latter will be used. By default, it is set to .BR none . .TP .B string setype Allows to specify the type of the given SE to be used. The possible values are .BR none , .BR se , .BR srmv1 , .BR srmv2 . They respectively correspond to no default type, Classic SE, SRM v1, SRMv2. If BDII calls are not disabled, and there no entry for the given SE with this type, it will fails. By default, it is set to .BR none . .TP .B int no_bdii_check Disables call to BDII. So the SE type cannot be get from there, what means that you have to specify it either with .I defaultsetype or with .IR setype . Moreover, as BDII can't be used to get SE parameters (port number, service path), at least the first SURLs has to contain the full endpoint (eg. srm://lxdpm104.cern.ch:8446/srm/managerv2?SFN=/dpm/cern.ch/home/dteam/file.test). It is not compatible with .IR generatesurls . .TP .B int timeout Specifies the time before which remote servers are considered as down. By default, there is no timeout. .TP .B listOfString protocols Specifies the list of protocols to use to communicate with the SE. By defaut, it will be set to all protocols understandable by the system (the system has the corresponding library). .TP .B NOTE The following parameters are SRMv2-specific, what means that specifying them will force the type of the SE to SRMv2. So it is not compatible with setting .I setype to another value than .B none or .BR srmv2 . .TP .B char *srmv2_spacetokendesc Specifies the space token to used with the given SE. .TP .B int srmv2_desiredpintime Specifies the desired pin life time for files on the given SE. It is only used by .BR gfal_pin() , .BR gfal_turlsfromsurls , .BR gfal_get . .TP .B int srmv2_lslevels It is only used by .BR gfal_ls . Specifies the number of levels of recursion. Possible values are only '0' (no directory listing) or '1' (one level of directory listing). .TP .B int srmv2_lsoffset It is only used by .BR gfal_ls . Specifies the offset from which the listing must begin. In other words, it is the number of file entries to skip. .TP .B int srmv2_lscount It is only used by .BR gfal_ls . Specifies the maximum number of files to get. Keep in mind that SEs have also a maximum limit, so whatever you specify here, the number of files will never be higher than the SE limit. .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL One or more parameter in .I req have a wrong value. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_mkdir_python.man0000644000175000017500000000527712164561703021046 0ustar ellertellert.\" @(#)$RCSfile: gfal_mkdir_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_MKDIR 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_mkdir \- create a new directory .SH SYNOPSIS \fBimport gfal\fR .sp .BI "int gfal_mkdir (string " dirname , .BI "int " mode ); .SH DESCRIPTION .B gfal_mkdir creates a new directory with permission bits taken from .IR mode . .TP .I dirname specifies the directory name (this can only be a TURL in the current implementation). .TP .I mode Specifies the wanted mode with the same way as system chmod (eg. '0640'). .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT A component of .I dirname prefix does not exist. .TP .B EACCES Search permission is denied on a component of the .I dirname prefix or write permission on the parent directory is denied. .TP .B EFAULT .I dirname is a NULL pointer. .TP .B ENOTDIR A component of .I dirname prefix is not a directory. .TP .B EINVAL .I dirname has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_set_timeout_srm_python.man0000644000175000017500000000531112164561703023147 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_timeout_srm_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_SET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_set_timeout_* \- Set several timeouts .SH SYNOPSIS \fBimport gfal\fR .sp .BI "gfal_set_timeout_connect (int " value ) .sp .BI "gfal_set_timeout_sendreceive (int " value ) .sp .BI "gfal_set_timeout_bdii (int " value ) .sp .BI "gfal_set_timeout_srm (int " value ) .SH DESCRIPTION .B gfal_set_timeout_connect Sets the connect timeout, used when connecting to a remote host. The connection will be aborted if the remote host doesn't reply after .I value seconds. .sp .B gfal_set_timeout_sendreceive Sets the send/receive data timeout, used when transferring data to/from a remote host. The connection will be aborted if no data is transfered after .I value seconds. .sp .B gfal_set_timeout_bdii Sets the BDII timeout, used when searching information into BDII. The connection will be aborted if the search is longer than .I value seconds. .sp .B gfal_set_timeout_srm Sets the SRM timeout, used when doing an asynchronous SRM request. The request will be aborted if it is still queued after .I value seconds. .SH SEE ALSO .BR gfal_python (3), .BR gfal_request_new_python (3), .BR gfal_internal_free_python (3), .BR gfal_init_python (3), .BR gfal_deletesurls_python (3), .BR gfal_removedir_python (3), .BR gfal_turlsfromsurls_python (3), .BR gfal_ls_python (3), .BR gfal_get_python (3), .BR gfal_getstatus_python (3), .BR gfal_prestage_python (3), .BR gfal_prestagestatus_python (3), .BR gfal_pin_python (3), .BR gfal_release_python (3), .BR gfal_abortrequest_python (3), .BR gfal_abortfiles_python (3), .BR gfal_set_xfer_done_python (3), .BR gfal_set_xfer_running_python (3), .BR gfal_get_ids_python (3), .BR gfal_set_ids_python (3), .BR gfal_get_results_python (3), .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_set_xfer_done.man0000644000175000017500000000413412164561703021152 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_xfer_done.man,v $ $Revision: 1.3 $ $Date: 2008/06/05 13:09:16 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_SET_XFER_DONE 3 "$Date: 2008/06/05 13:09:16 $" GFAL "Library Functions" .SH NAME gfal_set_xfer_done \- Marks a list of SURLs as 'transfert completed' .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_set_xfer_done (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_set_xfer_done Marks a list of SURLs as 'transfert completed'. When a transfert is needed (get or put), files are marked as 'transfert running' by the function .IR gfal_set_xfer_running(3) . Thus, then they have to be marked as 'transfert completed'. See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_set_timeout_connect_python.man0000644000175000017500000000531512164561703024003 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_timeout_connect_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_SET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_set_timeout_* \- Set several timeouts .SH SYNOPSIS \fBimport gfal\fR .sp .BI "gfal_set_timeout_connect (int " value ) .sp .BI "gfal_set_timeout_sendreceive (int " value ) .sp .BI "gfal_set_timeout_bdii (int " value ) .sp .BI "gfal_set_timeout_srm (int " value ) .SH DESCRIPTION .B gfal_set_timeout_connect Sets the connect timeout, used when connecting to a remote host. The connection will be aborted if the remote host doesn't reply after .I value seconds. .sp .B gfal_set_timeout_sendreceive Sets the send/receive data timeout, used when transferring data to/from a remote host. The connection will be aborted if no data is transfered after .I value seconds. .sp .B gfal_set_timeout_bdii Sets the BDII timeout, used when searching information into BDII. The connection will be aborted if the search is longer than .I value seconds. .sp .B gfal_set_timeout_srm Sets the SRM timeout, used when doing an asynchronous SRM request. The request will be aborted if it is still queued after .I value seconds. .SH SEE ALSO .BR gfal_python (3), .BR gfal_request_new_python (3), .BR gfal_internal_free_python (3), .BR gfal_init_python (3), .BR gfal_deletesurls_python (3), .BR gfal_removedir_python (3), .BR gfal_turlsfromsurls_python (3), .BR gfal_ls_python (3), .BR gfal_get_python (3), .BR gfal_getstatus_python (3), .BR gfal_prestage_python (3), .BR gfal_prestagestatus_python (3), .BR gfal_pin_python (3), .BR gfal_release_python (3), .BR gfal_abortrequest_python (3), .BR gfal_abortfiles_python (3), .BR gfal_set_xfer_done_python (3), .BR gfal_set_xfer_running_python (3), .BR gfal_get_ids_python (3), .BR gfal_set_ids_python (3), .BR gfal_get_results_python (3), .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_write.man0000644000175000017500000000163112164561703017457 0ustar ellertellert.\" @(#)$RCSfile: gfal_write.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_WRITE 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_write \- write to a file .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_write (int" fd , .BI "void *" buf , .BI "size_t " size ); .SH DESCRIPTION .B gfal_write writes .I size bytes from the buffer pointed by .I buf to the file descriptor .IR fd . .SH RETURN VALUE This routine returns the number of bytes actually written if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B EBADF .I fd is not a valid file descriptor. .TP .B ENOSPC No space left on device. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_set_xfer_running.man0000644000175000017500000000407512164561703021711 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_xfer_running.man,v $ $Revision: 1.3 $ $Date: 2008/06/05 13:09:16 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_SET_XFER_RUNNING 3 "$Date: 2008/06/05 13:09:16 $" GFAL "Library Functions" .SH NAME gfal_set_xfer_running \- Marks a list of SURLs as 'transfert running' .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_set_xfer_running (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_set_xfer_running Marks a list of SURLs as 'transfert running' (for get and put). Once the transfert is finished, files have to be marked as 'transfert completed' by hte function .IR gfal_set_xfer_running(3) . See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_release.man0000644000175000017500000000370512164561703017751 0ustar ellertellert.\" @(#)$RCSfile: gfal_release.man,v $ $Revision: 1.3 $ $Date: 2008/06/05 13:09:16 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_RELEASE 3 "$Date: 2008/06/05 13:09:16 $" GFAL "Library Functions" .SH NAME gfal_release \- Releases a list of SURLs .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_release (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_release Releases a list of SURLs. It means that all SURLs in that list which was on-line, will be released, so they will not be on-line anymore. See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_get_timeout_srm.man0000644000175000017500000000311712164561703021534 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_timeout_srm.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_GET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_get_timeout_* \- Get several timeouts .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .B int gfal_get_timeout_connect ( ); .sp .B int gfal_get_timeout_sendreceive ( ); .sp .B int gfal_get_timeout_bdii ( ); .sp .B int gfal_get_timeout_srm ( ); .SH DESCRIPTION .B gfal_get_timeout_connect Gets the connect timeout, used when connecting to a remote host. .sp .B gfal_get_timeout_sendreceive Gets the send/receive data timeout, used when transferring data to/from a remote host. .sp .B gfal_get_timeout_bdii Gets the BDII timeout, used when searching information into BDII. .sp .B gfal_get_timeout_srm Gets the SRM timeout, used when doing an asynchronous SRM request. .SH RETURN VALUE This routine returns the value of the corresponding timeout. If the value hasn't been changed by the user, then the function will return the default value. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_mkdir.man0000644000175000017500000000246512164561703017441 0ustar ellertellert.\" @(#)$RCSfile: gfal_mkdir.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_MKDIR 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_mkdir \- create a new directory .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_mkdir (const char *" dirname , .BI "mode_t " mode ); .SH DESCRIPTION .B gfal_mkdir creates a new directory with permission bits taken from .IR mode . .TP .I dirname specifies the directory name (this can only be a TURL in the current implementation). .TP .I mode the bit pattern is built by an OR of the constants defined in .RB < sys/stat.h >. .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT A component of .I dirname prefix does not exist. .TP .B EACCES Search permission is denied on a component of the .I dirname prefix or write permission on the parent directory is denied. .TP .B EFAULT .I dirname is a NULL pointer. .TP .B ENOTDIR A component of .I dirname prefix is not a directory. .TP .B EINVAL .I dirname has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal_open_python.man0000644000175000017500000000661012164561703020671 0ustar ellertellert.\" @(#)$RCSfile: gfal_open_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_OPEN 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_open \- open a file .SH SYNOPSIS .B import os .br \fBimport gfal\fR .sp .BI "int gfal_open (string " filename , .BI "int " flags , .BI "int " mode ); .sp .BI "int gfal_open64 (string " filename , .BI "int " flags , .BI "int " mode ); .SH DESCRIPTION .B gfal_open opens a file according to the value of .I flags. .TP .I filename specifies the file name: either a logical file name, a guid, an SURL or a TURL. .TP .I flags value is built by OR'ing the following constants: .RS .TP 1.2i .B os.O_RDONLY open for reading only .TP .B os.O_WRONLY open for writing only .TP .B os.O_RDWR open for reading and writing .TP .B os.O_CREAT creation of the file if needed ; if the file exists already and .B os.O_EXCL is also set, .B gfal_open will fail. .TP .B os.O_LARGEFILE allows files whose sizes cannot be represented in 31 bits to be opened. .RE .TP .I mode is used only if the file is created. .SH RETURN VALUE This routine returns the file descriptor if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named file does not exist. .TP .B EACCES Search permission is denied on a component of the .I filename prefix or the file does not exist and write permission on the parent directory is denied or the file exists and .I flags permission on the file itself is denied. .TP .B EFAULT .I filename is a NULL pointer. .TP .B EBUSY Device or resource busy. Happens if you try to open in write mode a CASTOR file that is in an active migration stream. .TP .B ENOTDIR A component of .I filename prefix is not a directory. .TP .B EINVAL .I filename has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_read_python.man0000644000175000017500000000444112164561703020643 0ustar ellertellert.\" @(#)$RCSfile: gfal_read_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_READ 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_read \- read from a file .SH SYNOPSIS \fBimport gfal\fR .sp .BI "( int " returncode , .BI "string " buf .BI ") gfal_read (int " fd , .BI "int " size ); .SH DESCRIPTION .B gfal_read reads up to .I size bytes from the file descriptor .I fd into the buffer pointed by .IR buf . .SH RETURN VALUE This routine returns the number of bytes actually read if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B EBADF .I fd is not a valid file descriptor. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_getstatus.man0000644000175000017500000000401012164561703020342 0ustar ellertellert.\" @(#)$RCSfile: gfal_getstatus.man,v $ $Revision: 1.3 $ $Date: 2008/06/05 13:09:16 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_GETSTATUS 3 "$Date: 2008/06/05 13:09:16 $" GFAL "Library Functions" .SH NAME gfal_getstatus \- Asynchronous function to check status of a gfal_get request. .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_getstatus (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_getstatus is the asynchronous function which must be used to check the status of the .I gfal_get(3) request and get the results. See .I gfal_get_results(3) to be able to access results. .TP .I gfal .B gfal_internal object generated from user parameters and used for the .B gfal_get(3) call. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_internal_free_python.man0000644000175000017500000000412412164561703022543 0ustar ellertellert.\" @(#)$RCSfile: gfal_internal_free_python.man,v $ $Revision: 1.5 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_INTERNAL_FREE 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_internal_free \- frees gfal_internal objects .SH SYNOPSIS \fBimport gfal_internal_free\fR .sp .BI "(void) gfal_internal_free (gfal_internal " gfal .B ); .SH DESCRIPTION .B gfal_internal_free frees .B gfal_internal objects with all results which are included. But it .B DOESN'T FREE parts of the initial .B gfal_request object which are used in it. .TP .I gfal .B gfal_internal object to free. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_unlink.man0000644000175000017500000000221012164561703017617 0ustar ellertellert.\" @(#)$RCSfile: gfal_unlink.man,v $ $Revision: 1.1.1.1 $ $Date: 2003/11/19 12:56:29 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003 by CERN .\" All rights reserved .\" .TH GFAL_UNLINK 3 "$Date: 2003/11/19 12:56:29 $" GFAL "Library Functions" .SH NAME gfal_unlink \- remove a file entry .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_unlink (const char *" filename ");" .SH DESCRIPTION .B gfal_unlink removes a file entry. .TP .I filename specifies the file name (this can only be a TURL in the current implementation). .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT The named file does not exist. .TP .B EACCES Search permission is denied on a component of the .I filename prefix or write permission on the parent directory is denied. .TP .B EFAULT .I filename is a NULL pointer. .TP .B ENOTDIR A component of .I filename prefix is not a directory. .TP .B EINVAL .I filename has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .B gfal(3) gfal2-2.3.0/doc/legacy-man/gfal.man0000644000175000017500000003551712164561703016257 0ustar ellertellert.\" @(#)$RCSfile: gfal.man,v $ $Revision: 1.13 $ $Date: 2009/04/16 13:54:45 $ CERN Jean-Philippe Baud .\" Copyright (C) 2003-2004 by CERN/IT/PDP/DM .\" All rights reserved .\" .TH GFAL 3 "$Date: 2009/04/16 13:54:45 $" GFAL "Library Functions" .SH NAME gfal - Grid File Access Library .SH SYNOPSIS enum se_type {TYPE_NONE = 0, TYPE_SRM, TYPE_SRMv2, TYPE_SE}; typedef struct gfal_filestatus { char *surl; char *turl; int status; char *explanation; int pinlifetime; struct stat64 stat; struct gfal_filestatus *subpaths; int nbsubpaths; } gfal_filestatus; typedef struct gfal_request { /* [optional] * if set to 1, 'surls' to NULL, and endpoint specified, * 'nbfiles' SURLs will be generated */ int generatesurls; /* [optional] * only used to generate SURLs, if specified */ char *relative_path; /* [required] * number of files in 'surls' */ int nbfiles; /* [required] * list of surls */ char **surls; /* [optional] * endpoint */ char *endpoint; /* [required by gfal_turlsfromsurls] * 0 for get request, 1 for put request */ int oflag; /* [optional] * list of file sizes * can be useful for gfal_turlsfromsurls with put request */ GFAL_LONG64 *filesizes; /* [optional] * SE type to use *by default* */ enum se_type defaultsetype; /* [optional] * SE type to use - will fail if this type cannot be used */ enum se_type setype; /* [optional] * if set to 1, no bdii call will be done * endpoint must be set up for SRM-compliant SE */ int no_bdii_check; /* [optional] * timeout */ int timeout; /* [optional] * list of protocols to use */ char **protocols; /* [optional] only used with SRMv2 */ char *srmv2_spacetokendesc; int srmv2_desiredpintime; int srmv2_lslevels; int srmv2_lsoffset; int srmv2_lscount; } *gfal_request; /******************** Common functions ********************/ const char *gfal_version (); int gfal_set_verbose (int); int gfal_set_vo (const char *vo); void gfal_set_nobdii (int); void gfal_set_timeout_connect (int); int gfal_get_timeout_connect (); void gfal_set_timeout_sendreceive (int); int gfal_get_timeout_sendreceive (); void gfal_set_timeout_bdii (int); int gfal_get_timeout_bdii (); void gfal_set_timeout_srm (int); int gfal_get_timeout_srm (); /******************** POSIX functions ********************/ int gfal_access (const char *, int); int gfal_chmod (const char *, mode_t); int gfal_close (int); int gfal_closedir (DIR *); int gfal_creat (const char *, mode_t); int gfal_creat64 (const char *, mode_t); off_t gfal_lseek (int, off_t, int); int gfal_mkdir (const char *, mode_t); int gfal_open (const char *, int, mode_t); int gfal_open64 (const char *, int, mode_t); DIR *gfal_opendir (const char *); ssize_t gfal_read (int, void *, size_t); struct dirent *gfal_readdir (DIR *); int gfal_rename (const char *, const char *); int gfal_rmdir (const char *); ssize_t gfal_setfilchg (int, const void *, size_t); int gfal_unlink (const char *); ssize_t gfal_write (int, const void *, size_t); off64_t gfal_lseek64 (int, off64_t, int); int gfal_lstat (const char *, struct stat *); int gfal_lstat64 (const char *, struct stat64 *); int gfal_stat (const char *, struct stat *); int gfal_stat64 (const char *, struct stat64 *); struct dirent64 *gfal_readdir64 (DIR *); /******************** SRM functions ********************/ gfal_request gfal_request_new (); int gfal_init (gfal_request, gfal_internal *, char *, int); int gfal_deletesurls (gfal_internal, char *, int); int gfal_removedir (gfal_internal, char *, int); int gfal_turlsfromsurls (gfal_internal, char *, int); int gfal_ls (gfal_internal, char *, int); int gfal_ls_end (gfal_internal, char *, int); int gfal_get (gfal_internal, char *, int); int gfal_getstatus (gfal_internal, char *, int); int gfal_prestage (gfal_internal, char *, int); int gfal_prestagestatus (gfal_internal, char *, int); int gfal_pin (gfal_internal, char *, int); int gfal_release (gfal_internal, char *, int); int gfal_set_xfer_done (gfal_internal, char *, int); int gfal_set_xfer_running (gfal_internal, char *, int); int gfal_abortrequest (gfal_internal, char *, int); int gfal_abortfiles (gfal_internal, char *, int); int gfal_get_results (gfal_internal, gfal_filestatus **); int gfal_get_ids_setype (gfal_internal, enum se_type *, int *, int **, char **); int gfal_get_ids (gfal_internal, int *, int **, char **); int gfal_set_ids (gfal_internal, int, const int *, int, const char *, char *, int); void gfal_internal_free (gfal_internal); .SH DESCRIPTION Grid storage interactions today require using several existing software components: .RS .TP .B . The replica catalog services to locate valid replicas of files. .TP .B . The SRM software to ensure: .RS .TP .B . files exist on disk (they are recalled from mass storage if necessary) or .TP .B . space is allocated on disk for new files (they are possibly migrated to mass storage later) .RE .TP .B . A file access mechanism to access files from the storage system on the worker node. .RE .LP The GFAL library hides these interactions and presents a Posix interface for the I/O operations. The currently supported protocols are: .B file for local access, .BR dcap , .B gsidcap and .B kdcap (dCache access protocol) and .B rfio (CASTOR/DPM access protocol). .LP The function names are obtained by prepending .B gfal_ to the Posix names, for example gfal_open, gfal_read, gfal_close ... .LP The argument lists and the values returned by the functions are identical. .TP .B File naming convention A file name can be a Logical File Name (LFN), a Grid Unique IDentifier (GUID), a file replica (SURL) or a Transport file name (TURL). .RS .LP an LFN starts with .B lfn: .RS for example lfn:baud/testgfal15 .RE .LP a GUID starts with .B guid: .RS for example guid:2cd59291-7ae7-4778-af6d-b1f423719441 .RE .LP an SURL starts with .B srm:// .RS for example srm://wacdr002d.cern.ch:8443/castor/cern.ch/user/b/baud/testgfal15 .RE .LP a TURL starts with a protocol name .RS for example rfio:////castor/cern.ch/user/b/baud/testgfal15 .RE .RE .TP .B Compile and link The header file .B gfal_api.h needs to be included in the application source code to get the prototype of the functions. The application must be linked with .B libgfal (a few auxiliary security libraries: .BR libcgsi_plugin_gsoap_2.3 , .B libglobus_gssapi_gsi_gcc32dbg and .B libglobus_gss_assist_gcc32dbg are used internally). .sp All these libraries are available as shared libraries as well as archive libraries. .TP .B BDII endpoint A BDII stores a lot of data concerning, like SE type (SRMv1, SRMv2.2, Classic SE, ...), default endpoints for VOs (LFC, RLS, ...). So, one must specify the BDII to use with the environment variable LCG_GFAL_INFOSYS. For example : .sp setenv LCG_GFAL_INFOSYS lcg-bdii.cern.ch:2170 .TP .B Virtual Organization - VO To be able to get endpoints from BDII (in case they are not specified elsewhere, see below), or to select the rigth default SE from environment variables (see below), one must specify the environment variable LCG_GFAL_VO. For example : .sp setenv LCG_GFAL_VO dteam .TP .B EDG Replica Catalogs endpoints To avoid GFAL to get them from BDII (slower), one can specify the servers endpoints with environment variables RMC_ENDPOINT and LRC_ENDPOINT. If they aren't specified, a default value will be get from BDII. To use such File Catalog, one must set the LCG_CATALOG_TYPE variable to "edg". For example : .sp setenv RMC_ENDPOINT \\ .br http://rlscert01.cern.ch:7777/dteam/edg-replica-metadata-catalog/services/edg-replica-metadata-catalog .br setenv LRC_ENDPOINT \\ .br http://rlscert01.cern.ch:7777/dteam/edg-local-replica-catalog/services/edg-local-replica-catalog .TP .B LCG File Catalog - LFC An alternative to the EDG Replica Catalogs is to use the LCG File Catalog (LFC) instead. In order to use the LFC, one must set the LCG_CATALOG_TYPE variable to "lfc" and optionally provide the LFC_HOST to specify which host to contact. If it is not specified, a default value will be get from BDII. For example: .sp setenv LCG_CATALOG_TYPE lfc .br and optionally .br setenv LFC_HOST lfc-shared.cern.ch .br .TP .B Keep fully qualified SURLs in file catalog By default, before storing a SURL in file catalog, SRM-version-specific information is removed. That way, SURLs are generic enough to match all SRM servers, BDII being used to get missing information. When BDII is not used at all in a project, full SURLs need to be stored directly in file catalog. In such a case, LCG_GFAL_FULL_SURLS_IN_FC must be defined to whatever value: .sp setenv LCG_GFAL_FULL_SURLS_IN_FC 1 .sp But, be CAREFUL, defining that when BDII can be used will prevent users from choosing the SRM version they want to use, and will create complexity when SRM version will change! .TP .B RFIO protocol For the moment there are 2 different versions of RFIO protocol : Castor and DPM. It is planned to merge them into a single common version, but it isn't available yet. By default, the Castor version is used. So, if you want to use the DPM version, one must set LCG_RFIO_TYPE variable to "dpm". For example : .sp setenv LCG_RFIO_TYPE dpm .TP .B Security The SRMs can only be accessed in secure mode, i.e. require a valid Grid certificate and valid Grid proxy obtained by .BR grid-proxy-init . The Replica catalogs can be accessed in secure or insecure mode depending on the endpoint provided: if it starts with .B https: the secure mode is used. .SH USAGE Posix GFAL function usage is standard, so we won't spend time to explain it. To have more details on a specific function, please se the corresponding man page. Due to the 'gfal_internal' object use by most of other GFAL functions, to use them requires to follow a few steps. First of all, you have to create a 'gfal_request' object, in which you will be able to set your parameters : gfal_request req; ... if ((req = gfal_request_new ()) == NULL) { // ERROR ... } req->surls = ... req->nbfiles = ... ... To see the meaning of each parameter, have a look to the documentation of .BR gfal_init() . Once, you have set all the desired parameters in this request, you have to the internal gfal object like this : gfal_internal gfal; .... if (gfal_init (req, &gfal, errbuf, errbufsz) < 0) { // ERROR ... } .B DO NOT MODIFY this object by hand. If you need other parameters, just make a new request and run gfal_init again on it. Moreover, do not free any members of .B req while you are using the internal object, because it uses them ! Then, you just have to pass this internal object .B gfal to gfal functions : if (gfal_turlsfromsurls (gfal, errbuf, errbufsz) < 0) { // ERROR ... } Finally, you have to call a specific function to get the results : gfal_filestatus *filestatuses; ... if (gfal_get_results (gfal, &filestatuses) < 0) { // ERROR ... } It is recommended to keep the same 'gfal_internal' object (one per thread) for making requests on same SURLs. Once the 'gfal_internal' object is not needed anymore, it must be freed: gfal_internal_free (gfal); But, it won't free the arguments which were in your initial request (eg. list of SURLs), you have to free them by hand if needed, in addition to the request ('gfal_request' object). .SH DEBUG INFORMATION Some cases may require to have more debug information to understand what is going on, especially what information is really exchanged between GFAL and other components. It is possible to get this information by setting environment variables. For bash: export CGSI_TRACE=1 export CGSI_TRACEFILE=/path/to/your/file For csh: setenv CGSI_TRACE 1 sentenv CGSI_TRACEFILE /path/to/your/file Then just run your program, and information which is exchanged between GFAL and other components will be put into .I /path/to/your/file .SH RETURN VALUE All function return 0 on success, and -1 on failure. The variable .B errno is set to the Posix error codes in the case of failure. .SH EXAMPLES A program writing a file, reading it back and checking the content of the file is shown below: .nf .ft CW #include #include #include "gfal_api.h" #define BLKLEN 65536 main(int argc, char **argv) { int fd; int i; char ibuf[BLKLEN]; char obuf[BLKLEN]; int rc; if (argc != 2) { fprintf (stderr, "usage: %s filename\\n", argv[0]); exit (1); } for (i = 0; i < BLKLEN; i++) obuf[i] = i; printf ("creating file %s\\n", argv[1]); if ((fd = gfal_open (argv[1], O_WRONLY|O_CREAT, 0644)) < 0) { perror ("gfal_open"); exit (1); } printf ("open successful, fd = %d\\n", fd); if ((rc = gfal_write (fd, obuf, BLKLEN)) != BLKLEN) { if (rc < 0) perror ("gfal_write"); else fprintf (stderr, "gfal_write returns %d\\n", rc); (void) gfal_close (fd); exit (1); } printf ("write successful\\n"); if ((rc = gfal_close (fd)) < 0) { perror ("gfal_close"); exit (1); } printf ("close successful\\n"); printf ("reading back %s\\n", argv[1]); if ((fd = gfal_open (argv[1], O_RDONLY, 0)) < 0) { perror ("gfal_open"); exit (1); } printf ("open successful, fd = %d\\n", fd); if ((rc = gfal_read (fd, ibuf, BLKLEN)) != BLKLEN) { if (rc < 0) perror ("gfal_read"); else fprintf (stderr, "gfal_read returns %d\\n", rc); (void) gfal_close (fd); exit (1); } printf ("read successful\\n"); if ((rc = gfal_close (fd)) < 0) { perror ("gfal_close"); exit (1); } printf ("close successful\\n"); for (i = 0; i < BLKLEN; i++) { if (ibuf[i] != obuf[i]) { fprintf (stderr, "compare failed at offset %d\\n", i); exit (1); } } printf ("compare successful\\n"); exit (0); } .ft .fi .SH FILES .B /opt/lcg/include/gfal_api.h .TP .B /opt/lcg/lib/libgfal.so .TP .B /opt/lcg/lib/python/gfal.py .SH SEE ALSO .BR gfal (3) , .BR gfal_request_new (3) , .BR gfal_internal_free (3) , .BR gfal_init (3) , .BR gfal_deletesurls (3) , .BR gfal_removedir (3) , .BR gfal_turlsfromsurls (3) , .BR gfal_ls (3) , .BR gfal_get (3) , .BR gfal_getstatus (3) , .BR gfal_prestage (3) , .BR gfal_prestagestatus (3) , .BR gfal_pin (3) , .BR gfal_release (3) , .BR gfal_abortrequest (3) , .BR gfal_abortfiles (3) , .BR gfal_set_xfer_done (3) , .BR gfal_set_xfer_running (3) , .BR gfal_get_ids (3) , .BR gfal_set_ids (3) , .BR gfal_get_results (3) , .BR gfal_get_timeout_connect (3) , .BR gfal_get_timeout_sendreceive (3) , .BR gfal_get_timeout_bdii (3) , .BR gfal_get_timeout_srm (3) , .BR gfal_set_timeout_connect (3) , .BR gfal_set_timeout_sendreceive (3) , .BR gfal_set_timeout_bdii (3) , .BR gfal_set_timeout_srm (3) , .BR gfal_set_verbose (3) , gfal2-2.3.0/doc/legacy-man/gfal_get_timeout_connect.man0000644000175000017500000000312312164561703022361 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_timeout_connect.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_GET_TIMEOUT_* 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_get_timeout_* \- Get several timeouts .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .B int gfal_get_timeout_connect ( ); .sp .B int gfal_get_timeout_sendreceive ( ); .sp .B int gfal_get_timeout_bdii ( ); .sp .B int gfal_get_timeout_srm ( ); .SH DESCRIPTION .B gfal_get_timeout_connect Gets the connect timeout, used when connecting to a remote host. .sp .B gfal_get_timeout_sendreceive Gets the send/receive data timeout, used when transferring data to/from a remote host. .sp .B gfal_get_timeout_bdii Gets the BDII timeout, used when searching information into BDII. .sp .B gfal_get_timeout_srm Gets the SRM timeout, used when doing an asynchronous SRM request. .SH RETURN VALUE This routine returns the value of the corresponding timeout. If the value hasn't been changed by the user, then the function will return the default value. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_rename_python.man0000644000175000017500000000535212164561703021201 0ustar ellertellert.\" @(#)$RCSfile: gfal_rename_python.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_RENAME 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_rename \- rename a file or a directory .SH SYNOPSIS \fBimport gfal\fR .sp .BI "int gfal_rename (string " old_name , .BI "string " new_name ) .SH DESCRIPTION .B gfal_rename renames a file or a directory .LP .I old_name and .I new_name specify the old and new file names (this can only be a TURL in the current implementation). .SH RETURN VALUE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, .B errno is set appropriately. .SH ERRORS .TP 1.3i .B ENOENT A component of .I old_name prefix does not exist. .TP .B EACCES Search permission is denied on a component of the file prefixes or write permission on the parent directories is denied or .I old_name is a directory and write permission is denied on .I old_name or .IR new_name . .TP .B EFAULT .I old_name or .I new_name is a NULL pointer. .TP .B ENOTDIR A component of the file prefixes is not a directory. .TP .B EINVAL .I old_name or .I new_name has an invalid syntax. .TP .B ECOMM Communication error. .TP .B EPROTONOSUPPORT Access method not supported. .SH SEE ALSO .BR gfal_python (3) , .BR gfal_init_python (3) , .BR gfal_internal_free_python (3) , .BR gfal_deletesurls_python (3) , .BR gfal_removedir_python (3) , .BR gfal_get_python (3) , .BR gfal_getstatus_python (3) , .BR gfal_ls_python (3) , .BR gfal_pin_python (3) , .BR gfal_prestage_python (3) , .BR gfal_prestagestatus_python (3) , .BR gfal_release_python (3) , .BR gfal_abortrequest_python (3) , .BR gfal_abortfiles_python (3) , .BR gfal_set_xfer_done_python (3) , .BR gfal_set_xfer_running_python (3) , .BR gfal_turlsfromsurls_python (3) , .BR gfal_get_ids_python (3) , .BR gfal_set_ids_python (3) , .BR gfal_get_results_python (3) , .BR gfal_access_python (3) , .BR gfal_chmod_python (3) , .BR gfal_close_python (3) , .BR gfal_closedir_python (3) , .BR gfal_creat_python (3) , .BR gfal_get_timeout_connect_python (3) , .BR gfal_get_timeout_sendreceive_python (3) , .BR gfal_get_timeout_bdii_python (3) , .BR gfal_get_timeout_srm_python (3) , .BR gfal_set_timeout_connect_python (3) , .BR gfal_set_timeout_sendreceive_python (3) , .BR gfal_set_timeout_bdii_python (3) , .BR gfal_set_timeout_srm_python (3) , .BR gfal_lseek_python (3) , .BR gfal_mkdir_python (3) , .BR gfal_open_python (3) , .BR gfal_opendir_python (3) , .BR gfal_read_python (3) , .BR gfal_rename_python (3) , .BR gfal_rmdir_python (3) , .BR gfal_stat_python (3) , .BR gfal_unlink_python (3) , .BR gfal_write_python (3) , .BR gfal_set_verbose_python (3) , .BR gfal_get_errno_python (3) , gfal2-2.3.0/doc/legacy-man/gfal_set_verbose.man0000644000175000017500000000313512164561703020646 0ustar ellertellert.\" @(#)$RCSfile: gfal_set_verbose.man,v $ $Revision: 1.1 $ $Date: 2008/12/18 13:19:12 $ CERN Remi Mollon .\" Copyright (C) 2009 by CERN .\" All rights reserved .\" .TH GFAL_SET_VERBOSE 3 "$Date: 2008/12/18 13:19:12 $" GFAL "Library Functions" .SH NAME gfal_set_verbose \- Set verbose level .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_set_verboose (int " value ); .SH DESCRIPTION .B gfal_set_verbose sets the level of verbosity. By default, it is set to -1, what means no error at all on stderr, but it isn't possible to set it to -1 yourself, only positive or null values are accepted. Moreover, note that if you define .I errbuf for functions which supports it, then critical errors will be put in your buffer and not on stderr, whatever the verbose level is. Here are the possible levels: .RS .TP 0.5i .B 0 Only critical errors are displayed on stderr. .TP .B 1 Warnings are displayed on stderr as well as critical errors. .TP .B 2 Debug information is displayed as well as warnings and critical errors. .RE .SH RETURN VALUE This routine returns 0 in case of success, or -1 in case of error. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_get_results.man0000644000175000017500000000774112164561703020675 0ustar ellertellert.\" @(#)$RCSfile: gfal_get_results.man,v $ $Revision: 1.7 $ $Date: 2009/09/08 13:54:58 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_GET_RESULTS 3 "$Date: 2009/09/08 13:54:58 $" GFAL "Library Functions" .SH NAME gfal_get_results \- Extracts the results from the 'gfal_internal' object .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_get_results (gfal_internal gfal, gfal_filestatus **filestatuses); .SH DESCRIPTION .B gfal_get_results Extracts the results of the last called GFAL function from the .B gfal_internal object. As results are part of the .B gfal_internal object, you don't have to free them, they will be free with the object by the function .IR gfal_internal_free(3) . .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I filestatuses pointer to a non-allocated table of .B gfal_filestats objects. .TP Results will be stored in a table of the following stuctures: typedef struct gfal_filestatus { char *surl; char *turl; int status; char *explanation; int pinlifetime; struct stat64 stat; struct gfal_filestatus_ *subpaths; int nbsubpaths; TFileLocality locality; char *checksumtype; char *checksum; char **spacetokens; int nbspacetokens; } gfal_filestatus; .SH RESULT STRUCTURE MEMBERS Keep in mind that all fields are not fulfilled by all functions! .TP .B char *surl The SURLs concerned. Fulfilled by all functions. .TP .B char *turl The TURL associated to the SURL in .BR surl . Fulfilled by .IR gfal_turlsfromsurls(3) , .IR gfal_getstatuses(3) . .TP .B int status For almost all function it corresponds to .I errno values ('0' means that all is ok). But for asynchronous functions, possible values are -1, 0 and 1, what correspond respectively to error, pending and done. Fulfilled by all functions. .TP .B char *explanation Error message associated with .BR status . Can be fulfilled by all functions, but only when SRMv2 interface is used. .TP .B int pinlifetime Remaining pin life time for .BR surl . Fulfilled by .IR gfal_turlsfromsurls(3) , .IR gfal_getstatus(3) , .IR gfal_bringonline(3) , .I gfal_prestagestatus(3) when SRMv2 interface is used. .TP .B struct stat64 stat Stat information about the .BR surl . It is .B ONLY fulfilled by .IR gfal_ls(3). .TP .B struct gfal_filestatus *subpaths Information about files in the directory (if there are ones) .BR surl . It is .B ONLY fulfilled by .I gfal_ls(3) when you define .B srmv2_lslevels to '1' in the .B gfal_request object. .TP .B int nbsubpaths Number of elements in .BR subpaths . It is .B ONLY fulfilled by .I gfal_ls(3) when you define .B srmv2_lslevels to '1' in the .B gfal_request object. .TP .B TFileLocality locality File locality. Possible values are: .IR GFAL_LOCALITY_ONLINE , .IR GFAL_LOCALITY_NEARLINE , .IR GFAL_LOCALITY_ONLINE_USCOREAND_USCORENEARLINE , .IR GFAL_LOCALITY_LOST , .IR GFAL_LOCALITY_NONE , .IR GFAL_LOCALITY_UNAVAILABLE , .IR GFAL_LOCALITY_UNKNOWN . .TP .B char *checksumtype Name of the checksum algorithm (for example .B ADLER32, MD5 ). It is .B ONLY filled by .I gfal_ls(3). .TP .B char *checksum The checksum value. It is .B ONLY filled by .I gfal_ls(3). .TP .B char **spacetokens The list of space tokens. Filled by .I gfal_prestage(3) when SRMv2 interface is used. .TP .B int nbspacetokens Number of elements in .BR spacetokens . .SH RETURN VALUE This routine returns the number of results on a success, or -1 in case of error. In the latter case, .B results is defined to NULL. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_init.man0000644000175000017500000001455312164561703017277 0ustar ellertellert.\" @(#)$RCSfile: gfal_init.man,v $ $Revision: 1.4 $ $Date: 2009/04/16 13:56:37 $ CERN Remi Mollon .\" Copyright (C) 2007 by CERN .\" All rights reserved .\" .TH GFAL_INIT 3 "$Date: 2009/04/16 13:56:37 $" GFAL "Library Functions" .SH NAME gfal_init \- generates a 'gfal_internal' object .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_init (gfal_request req, gfal_internal &gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_init generates a .B gfal_internal object from user parameters stored in a .B gfal_request object. It is important to note that user parameters must not be freed while .I gfal is needed. Once it is not needed anymore, you can free user parameters, and you have to free the object with .BR gfal_internal_free() . This object can/should be used several times for requests on same files. It is very important to not modify such an object by hand, it have to be seen as a black box. .TP .I req .B gfal_request object in which there are all user parameters. .TP .I gfal non-allocated pointer to a .B gfal_internal object in which the real object will be stored. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH PARAMETERS IN GFAL_REQUEST .TP .B int nbfiles Specifies the number of files in the request. It can be either the number of file names in .I surls , or the number of file names you want to generate (see .I generatesurls parameter). It is mandatory in all cases. .TP .B char **surls Is the list of SURLs on which you want to do actions. It is mandatory in all cases, except when you want to generate new file names (to create new file on a SE) (see .I generatesurls parameter). .TP .B int generatesurls If set to '1' and .I surls is set to NULL, .B gfal_init() will generate .I nbfiles file names. It is useful when you want to put new files on a SE, and you don't want a specific file name. But in this case, the parameter .I endpoint must be set to the SE host name on which you want to create files, when to set .I generatesurls to '1'. In all other cases, it is ignored. Moreover, to generate file names, BDII is required to get the root path, so it is not compatible with .I no_bdii_check parameter. .TP .B char *relative_path Is used during file name generation ( .I generatesurls is set to '1'), to specify the default sub-directory (in the root path) in which to put files. In all other cases, it is ignored. .TP .B int oflag Allows to specify if it is a .B get or a .B put action. It is only used by .B gfal_turlsfromsurls() function. By default, the function considers it is a .B get request. .TP .B GFAL_LONG64 *filesizes It is only used and mandatory when .I oflag is set to '1'. It is a table of size .I nbfiles in which there are the sizes of the files what will be put on the SE. .TP .B enum se_type defaultsetype Allows to specify the default type of the given SE to be used. The possible values are .BR TYPE_NONE , .BR TYPE_SE , .BR TYPE_SRM , .BR TYPE_SRMv2 . They respectively correspond to no default type, Classic SE, SRM v1, SRMv2. If BDII calls are not disabled, and there no entry for the given SE with this type, but for another type, the latter will be used. By default, it is set to .BR TYPE_NONE . .TP .B enum se_type setype Allows to specify the type of the given SE to be used. The possible values are .BR TYPE_NONE , .BR TYPE_SE , .BR TYPE_SRM , .BR TYPE_SRMv2 . They respectively correspond to no default type, Classic SE, SRM v1, SRMv2. If BDII calls are not disabled, and there no entry for the given SE with this type, it will fails. By default, it is set to .BR TYPE_NONE . .TP .B int no_bdii_check Disables call to BDII. So the SE type cannot be get from there, what means that you have to specify it either with .I defaultsetype or with .IR setype . Moreover, as BDII can't be used to get SE parameters (port number, service path), at least the first SURLs has to contain the full endpoint (eg. srm://lxdpm104.cern.ch:8446/srm/managerv2?SFN=/dpm/cern.ch/home/dteam/file.test). It is not compatible with .IR generatesurls . .TP .B int timeout Specifies the time before which remote servers are considered as down. By default, there is no timeout. .TP .B char **protocols Specifies the list of protocols to use to communicate with the SE. By defaut, it will be set to all protocols understandable by the system (the system has the corresponding library). .TP .B NOTE The following parameters are SRMv2-specific, what means that specifying them will force the type of the SE to SRMv2. So it is not compatible with setting .I setype to another value than .B TYPE_NONE or .BR TYPE_SRMv2 . .TP .B char *srmv2_spacetokendesc Specifies the space token to used with the given SE. .TP .B int srmv2_desiredpintime Specifies the desired pin life time for files on the given SE. It is only used by .BR gfal_pin() , .BR gfal_turlsfromsurls , .BR gfal_get . .TP .B int srmv2_lslevels It is only used by .BR gfal_ls . Specifies the number of levels of recursion. Possible values are only '0' (no directory listing) or '1' (one level of directory listing). .TP .B int srmv2_lsoffset It is only used by .BR gfal_ls . Specifies the offset from which the listing must begin. In other words, it is the number of file entries to skip. .TP .B int srmv2_lscount It is only used by .BR gfal_ls . Specifies the maximum number of files to get. Keep in mind that SEs have also a maximum limit, so whatever you specify here, the number of files will never be higher than the SE limit. .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL One or more parameter in .I req have a wrong value. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/legacy-man/gfal_abortrequest.man0000644000175000017500000000412012164561703021041 0ustar ellertellert.\" @(#)$RCSfile: gfal_abortrequest.man,v $ $Revision: 1.3 $ $Date: 2009/07/17 09:42:52 $ CERN Remi Mollon .\" Copyright (C) 2008 by CERN .\" All rights reserved .\" .TH GFAL_ABORTREQUEST 3 "$Date: 2009/07/17 09:42:52 $" GFAL "Library Functions" .SH NAME gfal_abortrequest \- Aborts a request (SRMv2 only!) .SH SYNOPSIS \fB#include "gfal_api.h"\fR .sp .BI "int gfal_abortrequest (gfal_internal gfal, char *errbuf, int errbufsz); .SH DESCRIPTION .B gfal_abortrequest Aborts a request from asynchronous requests: .IR gfal_get (3), .IR gfal_prestage (3). This is only supported by .BR SRMv2 , so do not forget to specify 'srmv2' for .I defaultsetype or .I setype parameter in the GFAL request. This function only needs a request token (no need to specify list of SURLs). .TP .I gfal .B gfal_internal object generated from user parameters. .TP .I errbuf allocated .B char * pointer in which a detailed error message may be stored. .TP .I errbufsz size allocated ofr the pointer .I errbuf .SH RETURN VALUE This routine returns 0 on a success, or -1 in case of error. In the latter case, .B errno is set appropriately. Moreover, you can get an error message from .I errbuf , if specified. .SH ERRORS .B errno indicates the type of error, but for detailled error message, you have to look into .IR errbuf . .TP 1.3i .B EINVAL The .B gfal_internal object is incorrect. It may be caused by freeing a user parameter which was in use in it, or by modifying this object by hand. .TP .B EPROTONOSUPPORT You try to make an action with a protocol which is not supported by the system. .TP .B ENOMEM Not enough free memory. .SH SEE ALSO .BR gfal (3), .BR gfal_request_new (3), .BR gfal_internal_free (3), .BR gfal_init (3), .BR gfal_deletesurls (3), .BR gfal_removedir (3), .BR gfal_turlsfromsurls (3), .BR gfal_ls (3), .BR gfal_get (3), .BR gfal_getstatus (3), .BR gfal_prestage (3), .BR gfal_prestagestatus (3), .BR gfal_pin (3), .BR gfal_release (3), .BR gfal_abortrequest (3), .BR gfal_abortfiles (3), .BR gfal_set_xfer_done (3), .BR gfal_set_xfer_running (3), .BR gfal_get_ids (3), .BR gfal_set_ids (3), .BR gfal_get_results (3), gfal2-2.3.0/doc/Doxyfile.in0000644000175000017500000014657312164561703014754 0ustar ellertellert# Doxyfile 1.4.7 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "CERN GFAL 2.0" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 2.0.1 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@/build/ # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, # Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, # Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, # Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, # Swedish, and Ukrainian. OUTPUT_LANGUAGE = English # This tag can be used to specify the encoding used in the generated output. # The encoding is not always determined by the language that is chosen, # but also whether or not the output is meant for Windows or non-Windows users. # In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES # forces the Windows encoding (this is the default for the Windows binary), # whereas setting the tag to NO uses a Unix-style encoding (the default for # all platforms other than Windows). USE_WINDOWS_ENCODING = NO # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explicit @brief command for a brief description. JAVADOC_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for Java. # For instance, namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to # include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from the # version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = @CMAKE_SOURCE_DIR@/doc/src/ @CMAKE_SOURCE_DIR@/src/posix/gfal_posix_api.h INPUT += @CMAKE_SOURCE_DIR@/src/gfal_api.h @CMAKE_SOURCE_DIR@/src/transfer/gfal_transfer.h INPUT += @CMAKE_SOURCE_DIR@/src/transfer/gfal_transfer_types.h INPUT += @CMAKE_SOURCE_DIR@/src/logger/gfal_logger.h @CMAKE_SOURCE_DIR@/src/common/gfal_constants.h INPUT += @CMAKE_SOURCE_DIR@/src/global/gfal_global.h INPUT += @CMAKE_SOURCE_DIR@/src/common/gfal_common_plugin_interface.h INPUT += @CMAKE_SOURCE_DIR@/src/config/gfal_config.h # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py FILE_PATTERNS = *.c *.h *.cpp *.hpp # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = *.man */externals/* *gfal_posix_local_file* *srm* */common/*/* # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/example/ # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/diagrams/ # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentstion. REFERENCES_LINK_SOURCE = NO # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = YES # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = YES #e XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will # generate a call dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected # functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will # generate a caller dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable caller graphs for selected # functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that a graph may be further truncated if the graph's # image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH # and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), # the graph is not depth-constrained. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, which results in a white background. # Warning: Depending on the platform used, enabling this option may lead to # badly anti-aliased labels on the edges of a graph (i.e. they become hard to # read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO gfal2-2.3.0/doc/diagrams/0000755000175000017500000000000012164561703014410 5ustar ellertellertgfal2-2.3.0/doc/diagrams/gfal_access.dia~0000644000175000017500000000762412164561703017530 0ustar ellertellert‹í]ërÛÆþï§À0?ÚÎÐ+ì ˜±3n&m:MšNlÿÖ@$D¡mk:íóô=úb=gIÊâˆåR½š‰R‡{ÈÃ=ûû~ûÝçIæ}LÊYZä¯{”ø=/ɇÅ(Íǯ{ÞÿéeØûîÍ‹oGiü þ—ñăWä3|ôºwWUÓWWWŸ>}"Ùý,®Š’déœÌ’«ÿÄY_ÑUïÍ Ï{¼À(®b|nùl\Uez3¯/'ÉëÞM<üm\ó|Ô[P-é†EV”ÞÇ8{ÝûæVÿô®–Ë\­­³gíiFê8ÜÜl2(áCÄù8K¾0AÆIØg$hÇk’Tqï‰Í>J‡U»Õ“,™\‹2ß¶AŽ(/ÍEŸVÛ2ÛqR¼ô]’Žïª£¯ H—\£žÏËío`Ý8ôýv,nÓ,kÀbÝ´=Œ˜·ig›ëïCÕÝGØÕeݯ½,ã|x·Cs©±æú„öihYs}Ⳉ#¡">€íO•¯úð|À|Õa=6”^=fõ˜}zÜ\ÏÞƒžÁö{¤kl©kÌX×8a€Ë6J Åå€Sq`©ˆ/ÏQÉÀÁº»Ö:TluT‚(õÔ„Êà£ešä[ê—äóÉ.s|ýoþž¿Qƒ÷Ï«¢,àɽðµîÔ¤J>W–φ?ðh<Þ>úW¢1Àûu<&³Ùïá¤JúS0¬gØ5:„-ôE^ÇÕxùñ<.GÖV_ÊìZï€'NÂ0† … þm©búÓ4âÖ6ãš›jyŽRøL‚p›ðICÍbÀOŸ„u×:5–Xó$$mzš$üš}M<ÝžÚF4uf}®¯ÑmÀ÷wÉð7ïïoßÿè}øõ§š Èž°a”мÚÅŸ÷nãIšÝû»»çͪûå)·xéIö1©Òaüø|;ülí±ûÌ'¡¿þ#̘®f;a‰‚ ú)‰ÒŒÙz8µáVoÃ(ÎÒq>Iv£5†í¾Hó®`©±·…„) õÁ5°ŠA‚„R3PEþ¿ì2 ЬQ¬“ÎEôèÇAÒ%@ÒÏñŒV¯ºK¼yúÙ{w?«’‰7Œ³Ì[¸_¦låħÀ"v8uTœÚm”ljìGv£Ô'7¸L¥F.Ñáhã±Õ+EcB›¡I(Ñ… Ï8\ø/Œ¾ººòæeæýÛE F ÁªLŸ-¡´"'Ìyˆúì_Fˆ®GùüCB„Â^„p/æG¨C±yÀÃjŠ(€<N,JÔCõl ¡Ba œS‘uV\ voÀ.#¥ÙÁ½-{Ô¸Ñ=P$ TÐ6½EdB‘‰Â(f’H?ŠÎ´Ó½aI³¡ä\ïžëÝûbÍ7ß>GÜnÖ¶½J¥ù<´ò>¥ÕÝž.‹NšµADDÀYŸKXOç?0 Ú3;³ØPd Ö_ž(¡oÜÿ0L(l{5X³é¼À†.ØH9ÓóŸD‡­bsÙ5±‹Áô–kSz]–ÿ‚²ü8¥÷6-g•7Íæã4wÉ~ÛÉ~!èÃLËö3Û_ßa܉.t€Yîø.¾Š8ò ±%B„1¼r“m]n‰0Ÿë‰èPOó núŒDÍ®¾qÆ‚¾î´‰ÙCt7²²[l{èøSá!—ÃÁ›Ñœ®ºÆET\j4S*<‘è b(ÌØÅÄP6zD‰ž©¾†wì.Ï_e×>åÞ L4VÔhÌÐYæ.±Õ’Eëj²›¥Òœåçr1wT׋t„—O¸ÂšÆèI 8Ë‘}Ø ¤ PËé¥ÀfdÐKÈ,6þ­€sd; ÃŒ»î9íKE¨M°ô±—Pâ5î[FèáÓ]î&4’Y“'2ZK5„VS j=òkãyâƒù„.™Pù¡ß¥9N“æx7†+'E^̦ñ0ÙNn|rMAÍ.1µÖ,_ŒØ¿´i†þ¹ÞËŒ[êq³‰Ò ‘zÆ.—‰Ó˜4)ž; 04[£ŠTpî‚Ü ƒ¤>'C¤ÿ5ùç<™UØÔ˜†§Ó²˜–)Ö ã*Î ×zo?¿ Ä0"\6þ$Ùx&Žä} FZNÆ3œO|VÉxŽó ë~2ÞHz.ߥ\¼™2àÉ"—ˆwi—ˆ7JÄ+ŽÇ‘$þ)ñ fA{fg–Q`&ƒ.ØsÝeÍ‚£˜¦Â·|3„"GÑrÌ' ¥ìKF˜’®]ÛÜîK<ñ“7&D±œÃµ}îž'‹ž¬šíÊd6ÏÜŠæ×Rc5,6ßF­+|šßJ½ä%Ú÷cüm ˜or]߉¦ó2óK©7¥š¹àØ œdÏ} ú‰ö–ÓY ê5–\“¨ øšü„ùu—P8QBáפš—ùâ\ÎÀú¸Þ•mÉ g.ep¢q½Ì¸×üá{íçIäŸÁ‰ð¶}Ë ‹¢._ÞW#¾=”ŽOÊCAˆ¢­]hÓ…6g‡§“ ¹B=Ö”ÎÎ ß7iÀíܼ;eÜTö&µìÇOó&øà±Mìy—}]<=À›Ìe_t¼Ç(hØ” &²)ÙF×Õñ¯€w·Þ^xT'y‹ËÞ“‘碢M±#4c¢Ös‚ éÈIu‘QvdFµÁT[ FÜx„…ò‰Ä)“Ôª§©0bŽl|ð3'A$$a—c¡Æ’kT FB&ÐýsÆ­F«ê°'ªë®ç鎅#"ÔW®Ïèñ×w*#°LЉDmø‚ˆt…ˆÆ3*(XM뿤D¶ïeiz§æÄHä§G?pX³@´e}Ê£äÏ`]ÇØ¸èÅËŒ­—ñä+Ëïv<„¸&á7³}¸ÔîSwÀ¤/õ[ªðÓTÀsf÷ê³ uç~³¨NNë3a¤ÐTÛÞÂóˆzmÊl‡‹«—ædÑ^*³‰Öˆ\ÄËE¼V¯¼¨¼x9ãøw3«ã¢^Í‹áõµèLbxÁv)ü‚UОՙ]WÅyíh›Å|Üx.Àò@µzÀ!\ y¦Q¯Ë#rŒ„Ö$né?\QîJø.gzë¥ÀŽÈb7”ÿd%‘@RŽÇïÆœd 7DXŸÉL8{4“?‰P—0“ßTzn @‡Æpã1h ùLš¸ØÔ ›™…„ ÌÂ@ûþªÓ@»E·ƒN‚ÐtûË€´Švg¸ ˆ+˜½ìðèo¤õ ôÎúÝÌ‚öÌάög3"©ýáÂ^ñÏ~È<Æ}ßÂúL~,†ò¯næ”t-wH­Ž*"ªÉÂMélW̺ޒç¼IQ&Ë€Œ÷ Khá¹iYT…N.ÌæS¬¦uY…æ°Ê1ü‹ Üöo Æ _#}`°Ë€Ta0°ÿ¹®¹áê8ˆj9â#a³€·†÷s‚ª úç§²œú„îÏÄ£ÉMºç‚I…Îk燿ÍgÁ—´\dE~=À(i>.&Y>½üþù¯ßÉÁŸ>ü0É’ïáß´Læ¼#_¨g׃ûªzøþêêëׯhö¸Hª¢D³l‰éÕ’Ù,¹¢«Á§AðzIR%êµÕ«IU•Ùí²Jƒ<™§×ƒÛdüÇ´,–ùdPS­èÆÅ¬(ƒ/ÉìzðñN?W«e®ÖÖÙ³öC2MoË4ùc÷Ò!<â¸ÍÒi¹¹ìü¡Xd@R=>l‘ìXGý|E³¢ZQ>ýôñ'ö±¾¤Õ /k5]èN&Õ<)§Y¾Íd3«A$„€0x,ãP0Ÿdr<»Ûó²›—]y^vÙâæ¡(«2ɪm–·E1K“¼æZ•Ë´=ŸÅ8™Á-¶ïcY|Š»¬ªŠ×—Ì& ~ùYÛŽÕÜi™Mö+îÅŽU¾f“êþæ›#qÕ«?:ZýK¶ÈngiÓÕgyu²åO³üæ·£wï—·[Þ õj;ÍÃD¦<åÇ›‡é2›¤‹·Ù:ÍŽ•îWdW‡¤¾Ig*˜ú¥ c­YÌ’Ç´\-ÿSYfÿûo™~÷0KòA°úŽW›NŒ«ìËÓ³Wb)nÿ™Ž«Õçýý—Ÿƒï‚ߪ®ùsZÎ/ޏ!Ùäzðp]b›Ÿ–ƒÍpKdÅó}Eù£ˆoJa{Ùµüííæê%|‚$ŸÎÒ†bÍdD#òa„D;nó´JîõI6®Ú­žÎÒù͸(ómäTâÒ,ôNµ-²†]êè¥ïÓlz_|m°réÒñe¹-þuÇ0 Û±¸Ëf3ëníq,À-¸Ëòd¶¹þ>‹Ú¼}]½(ê.ÍÍ'I9õýœ~«^).^).¶U\¡hÈu©ºšE!1šàÀ0’-9VJÔwƒf—ç¥}û5º0àoðEÞi^o´Yõü¥Þ¯w„{lê®[¶È«¦KP¯wÉ<›=•&ùb,ªGµóÞ]¿õïéìKZeãäµ:þ ¶Ô½I呈¨„Áà\ÃObÇsýž4¼/Û0Zw3 ·œ6ŒÀ‰Ÿæó´ùËLó弿eʥщ8NQ¾èKÚT•—K¡'Ø j×âOe’ïÜ bíV0$†˜ êÖ±ˆHL¿•{!Dláîƒß=v2ì„gâf‡nyn†¹–}-ƒ»앦‘•¦Q{)Ÿú .<ü|üD$ÅPvQ¿Š²º¿ÑÂ9RdDÂŒH ƒ4XÊu²£?TQfë6jŸ}ÚøÞó·Ðâš’eU”¼híSïqo gØuàÙtº½á?ùªé1ë+·È-?]B ãlõ•pnôW}p§#}sÑRô1fµg4ÉÔþ ßÉM–Æ_¥“S)ȸÈózéÅÖÍúô—àbÏU¼Q:G¼üõzmí ïÅ«÷R²þf¼.Û¸¢ÙEv”:õ@±D‚Q9Ä!¢D›F &Rqí³uÜ\5&ˆïµ8FD ј¬vÑ”î{Ÿ#3»^ÌòVvÃPý+È‹*H¿e‹*ø·7¹¦&—‚%„Ý-&Îm®æ„Ûsê˜Ñݰ›á1F—»³¹º˜Ôðá¶æGs«­ÙÈàÍdD¢RÙZ†X3=ÖR3Éõ)¸ËºR[wç2*Kç,lü²ûu›c>lq﬚"®?˜ërƳÓIQÄ.¬¦ÏWÓ€k)o»M“Â5ð«“ñ8A&²5Û ´I—6›EàÔ©2*ÏÄtÄbê2„×û\¦±“¯Òô¨J#¬Ýã'3â±#Ú+¦#ੳS$즋l–ŽÚ!¹=„⡎2é@|ÔeºÉ§”|áæ²³H˜£P26„ßÒué™W{ËܱL·)߈ó§’ä RI°ë¶N*˜&’˜f"øˆ(‘€g´5Š¢#¹$±™ø£breyCÞm©5Ò:ÙGô¼Ã˜S¶w»|¬{Éð‰E9–åÌc'ŽÁNˆ(fZ•ÏŸ¨™Åí™u,îÖCWzLÜ+Ïöb룸1„ŸCêø4n¬Nô©Ã¸p§ÄÓÖ°ô.ļ¶"3:‘"Â^½Ø½—ôÖŠ>U0Iã2{?!¸+‹yP¥óñ¯shCBÐß ­ðño· Øú„>Ÿ bÑÈíŠ"SÅF‚U5Š!‘=?k+=¯è¾[8N`€>¸T7†$€ ÉG×™'uö8ÛÔ,¹=tê0ð^ÜÓškHÖ~{ô '®ði&,fŒ)õeÎÁO¼Xk^K2I pxˆos6[7Xí½Ò­k"F5•_Jt°Ç»ÙþÍŒØ ·]T«~‡è´LÌ)-²ƒÞ\^ôñVÕ5j¢3W¾Fcn< b&C‚~9·ž;D˜*ugÒZbÓU¤ÁáTiìûJŒ×¢›Ów\.šÉˆ DEmNd[šÙJÍ$ÂÅ/èõBà‰ª¡{–eQú²Œë² 5’R¨ 'ôe_–y“²ÌÞ¦çØº[U}$hëNäf&\w;§ª… 2âXc-DÁ–BóÝÏßK÷s“Vt‚þnOfJ8î}JŸøh=Ö*À{Ýß­Ip{™BVï¥Ô}â ÉÚïº>ƒå >>g¥º“ª" „Ô‚œ£ªfFÛ3ëZΊÙÔ|ø[Õ|ì[Pp]»nk>ª!6‰Áí©“V}†F4‰¬ÁÀ)0"¢áS=ušlƒìõ ÷6ò@•vÐç:/ó˜šLPN¢’ÏÎK< C¥ÊÃüBë;ä([Év‡ÛJy |„®·‹Ö@S8aHV|FzÛ2ÙšeW ’ÛMÈÄœ Ë&Õ[…ÞìùаËpVƒ¬Fä `ÍŠ´eÕ5Sg3&ÇîLÝN(ƒuw†§5tš? U ÅĈJÝšì[Ü㈥ÈLŠ B¹¯K¾ÄÃ.ÆP¦µåêÀiúêÄ©4œÐÀÕ¨Øy°4x@C÷ $Á'¡Ã3·œàfÁpOŽ ÔÈâçL·%Ö%J#’¨ýé½q{›ç·lQyÃf\Ī«7n b5¯ ÖŒZ7"êZrÓ"x‹Îß΄’Ôáûk 7­Ê¡êÌ®ºñFÂý¸£YMã±Â623ÁÆq$èÚPaé¡î—u¯ÒEdwu;^mÓ<ÌÝy'^P&Õz¼is÷0÷îµ3¡ÖíLžnñØmhÊPÌcŠ$FTµÛŽàùõ¹@Ù(¸Ýd8Dò!é:lÖºþÚñ¤!lF­·¼£¦‘*N ×ô2Ò·VØWwQîγ`ÔºýIÄÓ¸­N2ÄÔa0àƒELGQ„¸> ¦¾öù0˜­ôüi°£üP€Õ¹âØ­¶ ,t…XµØ‹4X®×h€m©í&(‡q¦d;£wG½;êÝQØâ¨²q矙E3ówùv”Oº‰G8Ûy,jݤ@ùˆC»uL©@Du”ƒm^YJ8RÜëÄM“ܨ„1•žƒ¼7m#À‹[„¾/Ÿ·•OÍla'Õ¼…á‹õáFçfS(€,¿L ±9†u޾|ԺˈTGkÃÖfËÈTJe“VÃIëAÓ]ÈÛX ÌlêJÄw•s=P¡¿@…‡e¥Ç­¨¦|Ÿ}7¾3À0VG LœùyÁ¦ÐA˜‚uó‘§[œ´î"cdÃcÕZW1a‚T#Uqïo¨Û,µÝtr9Vç Œˆ@l‘Ï ûH×g…Û†¶8DD þ%î'µ<³’mYu-ÀaîlZoàÖÏgÉcZ~úP?Ó2™úðK$9 gfal2-2.3.0/doc/diagrams/gfal_open_diagram.svg0000644000175000017500000003301412164561703020550 0ustar ellertellert Gfal_open activity Diagram { not exist } Must be created Resolve SURL to TURL {srm url } create fil descriptor from turl { valid turl } Report error { invalid turl} return file descriptor Resolve to SURL { Catalog URL } {reussite} Resolve to Catalog URL {echec} {guid} {valid url} {exist} test if file exist { invalid surl} put SURL to TURL gfal2-2.3.0/doc/diagrams/gfal_diagram.svg0000644000175000017500000003325712164561703017540 0ustar ellertellert gfal posix gfal common GFAL 2.0 design - Error Management - URL resolution - Plugin load/unload - Bdii/ vomcs conveniences functions - logging functions gfal lfc plugin gfal dcap plugin gfal rfio plugin libgfal2 - Posix Interface - convert posix to internal call - safety of the url - local file management gfal srm plugin Plugin Interface gfal2-2.3.0/doc/diagrams/gfal_access.dia0000644000175000017500000000762312164561703017331 0ustar ellertellert‹í]ërÛÆþï§À0?ÚÎÐ+ì ˜‘3n&m:MšNlÿÖ@$D¡mk:íóô=úb=gI]xb¹A¯f¬„ÔáòpÏ~ç¾ß~÷e’yŸ’r–ùe¿ç%ù°¥ùø²÷ñß^‡½ïÞ¾úv”Æoà߸Œ'¼"Ÿá£ËÞmUMß\\|þü™dw³¸*J’¥s2K.þgY|D½·¯<ï飸Šñ¹å³qU•éõ¼J¼<ž$—½ëxøÛ¸,æù¨· ZÒ ‹¬(½OqvÙûæFÿô.–Ë\¬¬³cíiÎ’G&ÈcÀ8 ûŒíxM’*î=³ÙGé°j·z’%“«aQæ›6È她èÓjSf[Nª½—¾MÒñmuðµé’+Ôóy¹ù ¬‡¾ßŽÅMše X¬š¶û±Óà&Íãl}ý]¨ºý»xTÖÝÚûÇ2··[4—k®OhŸ†–5×'>‹8ò*âØþTùªÏÌWÖcCé5ÑcfQÙW¡ÇÍõìèlP±'ºÆ–ºÆŒu&¸l£¤PñQ8%–Šøò• ¬Û+- }ÅVG%ˆRÏ‘ÑHíA¨ >ZQ¦I¾¡~I>Ÿl3ÇWÿæïø5xOñ¼*ÊžÜ _«Ní>LªäKeùl8ÂñÆãÍ£ÿ>@4x¿Š‡Ãd6û=œTI †õì[£Fû°Eƒ¾Èë¸/?žÇåÈÚêK™]éðÌI&´Á[ª˜þ4¸µÍ¸æ¦Zžƒ£Yøn®Ò€¡JFÆÖßÃŽÍóÅÒ³½|ÿï6ÎGèöÙWÚaóÿzÙ 6Ί-¯¥Ë×R¾úbºé»®½£æøùÒ´ºÛb©rSô3ËŸIn>i¨Y òéÓ€°îZ§Ækbž‚„¤MO“„_³¯‰§ÛsÛh¦.ЬÏõº5øþ6þæýý݇½¿þT“Ù6¬“R‘WÛØâóÞM%U:ŒŸžoû¿ƒ=¶eŸù$ôW„ÓÕÃl+,Qð‚A?%Bš1[ §6ÜêmÅY:Î'Éöo´Æ°ÝiÞ,5öâv 0E!A¢>¸V1HPj&ªÃÿ—]†!C‘5Šu2¹ˆžü8H:Hú9ž‚ÑêU·‰÷1O¿xïïfU2ñ†q–y ÷ËÁ”m˜¢”øàXħŠS;£ò0‘ýÈn´‘úDâæWƒÉ²ÔÈ%:mÜ"¶z¥hLhb34 %ºpá ‡ ÿ…1Â7޼̼»(aÃ(!Xu‚é³%”–C„à„ù!QŸýóÒÕ(Ÿ¿OˆPØ‹îļàu(ö1˜`XM'À‰§J§²;ccMPS"CíG¸‹NhtTkt/Ž»^ç€óE€3CÒfSÀ䌨ˆ…ˆ˜œÙ†LÐq?1ÙYB&Û+«®¾˜3wÖn*cÌÔY" [Æ&f†È]Ä€FF­¡“¨ú2”˜«Þüºª7wÚ¼¡q^ü> µêa: €K ÀIÀ:lóÖna#e»kÊ$rƒî+2w÷@ð¯ÒÞu–nÓÐW$àÊzhH³ X˜™+ ŠÇ˜²gæîHÛG¦ D„õÁc6˜P©¹ 'b çmÄS0tM¥ÖÄÐDQõ4u/\êþR÷e‚ýÓÞeY”.Io;I¯°—0 ûœé’ôGKÒSóÎYŠwI"Ëýw\RpÝ(‚ O¶ó®aÂb‹Ų̈Â猨a§¤ËT8ÏÍynØó‹*iÝo[0 Hǽ6º=9qÈœ|}w9=@BžõuäÐnBžêörŸPÝ^Ž^¾êcUp·ÛË ¥çÚË;Ô^NÒ_Ž›Þª²QEü< Š3ô,…-f¢Ûýåëb«£Z çÔ·ô4$vkB]{yWË^¼I1J¼_þêJ_'"]”ÇVÇ:Ø1,) B¥™…çQ÷BkƒúÏÛ¥/ÓMN¹y{DëÑ`2"‘ìðkÀlœé·¯b>IGmÅÕ¬‰œGòiÀÔµ”ŸQK¹³›,»<€õžòåÔ¢ø‘K- àº-¿·Ðòl0»£°¯féºù§™ nìºmŠ­ž,"²“׌Ê$¨åœ7— p.œFA§Qؾ`Ÿ`š×5+p“`ô…:ü¨y[»ÐùkںݮRr ^pÀI…ý~X[AI—;ü¶ÉmÙ3¥Ì÷'Í)Mªïº ˜®ê¹Q¸ó/ù°(Q]Ô³)„ …-pNEÖXq)Ú½;”zdw¶ìQã>÷@‘0PA_Øô‘ E& £˜AH"ý(:ÑF÷†%͆’s½{®wïÑš5n¾}0Ž¸Ý¬=l{?”Jóy0hx^>eݵik¤·ƒPaâ}%sχæ”úxl+EgÙºXP{Cö‡|ä}N«Û]4kƒˆˆ€³>—$°žÎ`´gvb±¡È$4¬¾8×Ñ¡žæ@Ýô‰š]}ãŒ}Ýi;³‡,ènde»ØvÐñçÂ%B.gƒ7£38]u‹¨¸Ô h¦Tx"Ñ#ÄP˜±³‰¡¬ôÜ/ˆ½P} 3îØ]ž¿Ê®}Ê#¼˜h¬ ¨Ñ˜¡“Ìmb«%‹VÕd;J¥9%ÊÏå bn©®éïžp…5Ñ“p–#û°H –ÓsÍÈ —Yl&ü[çÈf@‡wÝsÚ—ŠP›`éc/¡Ä[ܶŒÐç»ÜMh$³&Nd´’j­¦Ôjä×$ÆóÌó ]2¡"ò)B¿Ks'Íñ~þ7Nм˜Mãa²™Üøäš‚šcj¬Y¾±nÓ ýS½—·Ôã!Á^³«n"ôdCu.>ì ¿Û™…M©í  ˆ|6eМ,r‰x—Vp‰x£D¼âxIâ#¿`´gvbf2肽ÔUÖ,8ˆi*|Ë7C("q-Ç|ÂYʾd„)ÙéÚµ Ám¿Ä?ycBË)\Ûçàîe²èÉ}³]™Ìæ™RÑüVj¬†ÅæÛ¨u…OóK©—¼Dû~¬Sƒ¿5óM®ë;Òt^f~)õâ¦T“#·üä‚“ì¹OD?ÑÞr:‰A½Æ’k•_“1¿î GJ(üšTó2_BœËX×{o[r™Ki\/3î5øÞDûy’{ùg°A"¼mEßr C¢¨Ë—÷Õˆoe€£Ä3¤rB¢h+DÚt¡MçÙáé¤B®Pƒ¥³3Ã÷ž›4àvjÞ2n*{“Zvã§y|p„Ø&ö¼Ë¾.žàMæ²/:Þc4 lJPÙ”l­ëêðWÀ»[oÏ<*Š“Ç¼ÅeïÉÈsQѦ؉‰1Që9AÐtä$‰:Ë€(Û2£Ú`ª­#n<ÂBùDâ”IjÕÓT1G6>ø™ŠŽ ’°Ë±PcÉ5*P#!“èþ9áV£ûê°Gªë®çé…#"ÔW®Ïèñ×÷*#°LЉDmxDDzˆæ·ÊG$ Xÿ5%²}/K³øë’#‘œ°t[1ÀI`ÍÑ–õ1’?ƒ=vcã¢Çˆß÷âeÚÖûʲ;€œá‡ªIøÍ¬'wêv©;^öÒ–Oú-ÕGøqêß93zõYкo¿YÌ ç¦õ™Àk°RèªmgáiļÖe¶ÅÁÕ®Ks²h'•ÀÉD+D.Þåâ]÷ñ®¼¨¼x9áøw3ªãb^ÍKáõ¥èLbpÁv!ü‚UОՉ]VÅyí`›¥|Üx*Àò@µzÀ!\Ž y¦Q¯ËrŒ„Ö$jé? [Qî øÎgzã¥ÀÈb7’ÿhá$‘@âÜFE|7à(C¸ñ€ ÂúD~`ÂÙ“‰üAH„:‡‰ü¦ÒsC:4€@ÍgÒÄÅn¤nØÊÈt($d`Ú÷W®ÿÙ.º-tè(ß‹nwVñÀî$qå²çþý´¾ÞY¿¯ûYОىUþ¬‡@Ä>•?\Ø+ýÙ ™‡¸í[XŸÈ/¢‚ÅHþûû9%]FË-R«£Šˆjr}pS:Ûõ²®³¤ÃùoR”É2 ã½ÁZxnZU¡“ ³ùki]V¡9¬r ÿbû¶ý»‚ñº×Hì< UŒë©Kn¸: ¢ZŽøHØ,à­áíœà€*ƒ€þéÀ©l§>¡»3ñ¨Frî¥`ÒA¡óOÞ<9в´ nškÍèÄ¡îå-†µ®¦Õl»ñdl+BȱÚ+‚s4°±ŒˆIÒ¶·¹œD¶ÝPhMR–äÕä"]½ë ÷VsIöc%Ù%‘áÂ~<»ëaNxlÌÁIÛüvgzcøúz˜n_½!®í$ü¹!:Wo7£sWo;Íyl&eÎ!6QkŸÍzšïžkÏëÄ ÍïÎ^<Î⻤|ûjñþËxòöÕÿ4ls¦‹gfal2-2.3.0/doc/diagrams/gfal_diagram.dia~0000644000175000017500000000541112164561703017663 0ustar ellertellert‹í]Ý’£¸¾ï§ <·Ý²$„„ÖÛ³5³É$©šM¶’ë.ld7Y .ûç&Ï“÷È‹EÚmlpcó³v\5Ó–uà Î÷Ã9‡zZ†ÖƒIG·#àÈÑ,öƒhq;úöÛ—wôÓÇ«ýÀûAý[Hoi©_D‰Þºݧéê‡ñøññ„ω—Æ„Á$bü/ ½±4}¼²¬í |/õô¾b¯—¦2˜®SaEÞRÜŽ¦Þì÷…Œ×‘?ÊGãfqKëÁ oGæÙg4.¦—æ90÷Ê[ˆ©ÞïõSCõáü”©WBîN»\ÅI †¤Ï«½!5óèÿ·Æ£5(Z|üð‰|È©Øñ:WÕÖ I—ž\Ѿ¥›0W.ÆX)Ãá.‡Œ0ô¢“ãÅM‡+N+.HîV±L¥¤û"§q /Ê¥¦r-N—“̼P-±C§Õâ,æAšÆoÿÜ “&'ïÞÜmÇÞ¹ ø‡oÜÒˆšY?½¿{êI]ùìÏ=Íþ$Á4UGDigÓ?w3ýîÕɬ÷ëÏ[®†|¶Zxð]áçxxX¬_$o,³ò˜š™î‹aã·´¾;®©bò];`‰½g!‹é?Iüï¿RܬB/YÅ5.ŒŽåÍÒàáekK-ñôßb–çûí—¯Öõ³> HDé蕇(ø·£À²ÂvOQͦlážÆVñfYaðõ r”ýuv5±oGêdL§»"¤: /Z„b#9¹æL0ˆèM 0;QìR¤Þè…ï³ô´ÙE(–w³XFû|¤Såer2Ûµ¯À»¥¦ç„o}h Y÷"XܧõÂlpâ™((wÚ¬åþe)³GO1°ˆ2÷=ND’ )b½zv%¼ÌJzyŒˆT<¥o-Ü1µ+wùÇÎÁ.C°ôÌO5¬ø”Ô]„8J«DêýÖÜ[á³:2/JFV’>kƒ§lUþÓ¿ŠðA¤ÁÌÛ6ÍÇÁÞ®XƸ°ü!í„–­h¥1À€*c@€c·U؆÷Ñ)‚}]DKQ}=E´^ºl(¥>ë(ÀøìNG?Ôýle[7°Ô#üi9™Ž QÎŽú›ÁŸ/þ:Ð^ü£€s¼ €ÌàŸÁ¿æø§&_Æ‘À¾ÐvAfÕº{@@ë‹ðÒµ[Hˆ $Ä­ý@ ϯì ±ÏQÃaÛÎýBõç<ÁX¦÷w™žNÑ^ÅH ŠYÇCmZ_<}¢± Ê7áaç;tà;Øâ˜¼uËXíÜ=¬C¡Ð3Cn©ŽtÔDsç ¤Ã¢§‚ë8Yy3±¡?««ù>´0†ðòí~ùŠz@зÅ[n_µ¢I™ÅQ¤€Ln²w˽|cÝ{‘_¬Ö4΢³Öë··#²g!+~‹Šß’òoá~˜z瀺%veD8˰Ýî•Q´SGa'˜KÅ€\4£¨SßþPµŒ)áî±CéÁ‘ü…—Ñï“O” _€†N:‘›<舱a=²‰j=÷M&ÐÐŒ€´¶Ó<\LêõY³r†aN›Ø °w`¨Ñ]%µåG3‘à xçªh|f‘ ,ôX¨Vtç\•¹€Ý ø—Qß“¾â¿é»{Ÿ8P…:˜öœmVˆqw]{â0`ÛÎä"zÁÖ¿|ùôÕÂZ¾HÔMð>¹t÷]Þ|ŽC¿+™'„cŒM!·Ñ6²biš§—GÝ%Ù!Õû›¯¹Çò÷8A´uØ’e|—žî.4{ Êôj£ÚeÔù@LgŽ5÷Ï2¶µâšä)?„õ™þJ€ËKŸ6Ù@oœ h‡¢ï9õhH„½±þ,¥:ê_¼È[mB¯n¬oÿüjI‘ÄáZ'µã×p½"+Œ=¼Žôµó³cë!^ÎÍÁD¤Û™H¬ù:Ê—Æ õËÅë>ãæ ðtbyp“€;P.k ·Íb§8½:J +RÓ˜3¡¶Î(ÕÛ°ùàsÄÜöÚk‚¹ RÊ¿Å&ÿÖäß6Ï¿ ç3k•A©ÉÁížU¤Ù ÝÖÈ€æþ×7L—‡ô‹‚Ü)iTL‰kÏ“œž s(Øþšá 'l]ƒƒ›ã ?óV‡B’ ¨Â wàæ…ì a!(‡BBtN÷¤ÎÄl­¾fH¨´µ};Û 6GB9bƒ„Ã!¡˜AÂNp+SâsüTÕ˜ u_Ý@Ùqåšõ ƒº“‰!b׆î5‚§»ƒÍ`ªõ¹5Á(â*lç„p̈{í@Ýv OlK_Èæá!ŠNŒÈ&÷ñã]E;É> ,3£{z d7 LuP'¦ërXß-³6’\@ðd[0e§J~¿©ßeË¡ºÅhÀýìÒ–§öM\ $: û­±Ø’Dµ½Ù¦À¥Æ4ÓT»iÔ4µÊ2ß)9sJ3Gí‹ÏmàdÀ¨kóú4ƒ9X!1BÚº˜Ú™`ÛÅîù›Â0˜ê˜ þÎL"ŒÚ®ú`åK9êÜ»E¬^“Æži†ùŸÄJD¾ˆfÏU&ª}5,.¡8ïÙwóIìæ1°3Ñr¹¶Pôô2ܳ¨ˆ­Óß¡¼Ünº²£¥.j:®M•@“¢Ø†…¯]5”¦ÝVVF×ïc™žüì¼…¤Û2<óñ¥÷xçI?vu»(d¤ÇtH¢; :ì‡PS]„Z@"d>Q¯Î¹îäh)¶ŽRE9l€.÷©v[5ª+²Aöú™¶¥8 ‹Œ`¹ÈˆQdÔòY)2:¾ÈèWÝyßú[¤ÌùÜ›‰«›¼bH¦yO~eƬ@é.Å^ª‰7é³Ï­ô^XkfÕDêKKiGXËMÁ’©( Š¥ÌËŠ•h\¶î’ÈûV´ƒðÉß.Ó'ÊràÐ\Š3ѳ…â^pËÁ ­Õâ€î/„!Ð9'Mǵ`D—íHÞ]ÈøQäG5¿ÌG¹Q/®rLzó…šô†C­ AõKQ¢=A€“¢c,Ôí .t³n —k¼kõW1”Û¦ô¨¡  ƒãœ¤.SéƒÍ ßa-tñ*ÅM)´Áú!2úµàs£ÇS¿|tö_¾zÏB~¼Ê7Ô¿…ô–¯þGÔ9l¬gfal2-2.3.0/doc/diagrams/surls_get_endpoint_activity_diagram.dia0000644000175000017500000000734112164561703024403 0ustar ellertellert‹í]Ýn㸾Ÿ§¼7-à0")Šâzg»è,z±ƒ“ÌE¯Å–ueÉ•äÌEû<}¾X%%Û²C‹¦c9 0Ä9æ‘Oxøþôó·yâÜGygéûFîÀ‰Òq6‰ÓÙûÁ—ëß.‚ÁÏÞý4‰Ãáß,ç¼#-äOïwe¹øñòòëׯ(y(Â2ËQ/Q]þ'L’ðˆ.Þ9Îó&aÊךWòÌãÛe9i8ÞnÃñ³<[¦“AMÕг$Ëû0y?øaZ} .›e.WÖÙ±ö"œE·yþ±}i¾„è²ô"Ê×—/²"’òa±A²eùÿ3š†ª¢töá‡_¼êGj^ø¾VÛƒneRÎÃ|§›|@6I-‚Bƒ‰@¸ÜãøQ&û³»=.»ä¸ìò㲋‹›E–—y—›,o³,‰Â´æZæË¨;Ÿb&°Åv},O1Ë2{áù§aR¨|€úå'mÛWsgy<Ù­¸+[VùOÊ»›o†ÄU¯þ`hõû¸ˆo“¨íéã´<Øò‡Y~ý¯SÞßß®¹êÕ¶ÂÃ$ˆXÄö‡‡Ù2žDÅ Ûl•fËJw ÙåKR_§SLýÒXW,’ð!Ê›åÉóøÿÍ£‹E¦§ù7‡ŽŽËøþñ§gbÉnÿËæó~ùô»sá\•!<óu”Ïß 0CâÉûÁßÜU‰­FXà ‘-²§}幈/âërØe»Ž¾•ÏT 7ªFtUxÈ^È5©j5¨?ò)ò¨„JŽ8îȳ”²xAÉÖh¶9;•;½B·îyK‹&.œ¿4alê”w‘sõù““GE–,Køƒ8W¿ºþøÉùq‹›¾Ã¶Ý¶Õ²´l{.ùº3 çqò¦ÅÀ)ÊipüÖïýk”ÜGe</~Í’És‹qÿçØPÖ6àEܧ| ®.üOôx®îXÕ]Û…ÓªÕ¯xbta>õ,GíÓ(]Îk^ª\Zmúý”è¾z¤u5úþ(ô`v£ µX T÷ø°lˆ±QC_2‘<|6" RÄzlèëJMÉÒw¥¤Lšû(xËÿ1Aðã·2×Þ‰ÒI½‹¦y6w¦q^”N±Ì“WD½MÐ3w°³ÝÕ/Ï4àaQf&ˆ‹3=lôàÅzÚØÄây&¡‰!LÀ‰6¾0G„ƒK\äñ>;±šÂ³>ì©ø°µ–]ƒ–Áî{¦i¤Ñ4v€h¯ÏdàÆhÀ¶d Ï`ߪˆ/®m¨“4³¼¼»©D´·àv ¾“î ¥Ô)»[îòfy¼ /» e—¯µý}{?S¸,³<ƒw†bW“´û~†Ïˆ#CðÓl¶‰ç¿jãlKg ¶_§NèL—Iòdƒþ»ÕèÜçd²*K·=öò³e˜OŒ­ÞÈï¦Ú /„ø8xbR'½®GUõQ”XÈÅ4Ðb6‰å¹ ™›8¨(£‰vNãiï¦i½t±±«ãÜ…é¤q,ʬJf8ß»Ùþ^ܼ—®¾o&e×è@€ê&#Ìâ)G®KØ#o`J»ø)€i›ÐvPí"âˆIѨQI±½I ÝCõß&ˆ¦™s;‰c'[TÇS±ˆÆñ4Ž&œSüÒj7@ À7 LC)E.÷ezšŸ#Žºûà(~- åÚ1 _†1(òÍú¥^•’ðG’«Â&'üQCÒ©i­„‘”ˆŽ¢ŠH¹ë}Ö} µ¨¨ˆŠp ñ!öi³æÃP¿ÝËGhóÌ!ÛÎ Û@Ù¸,x¥ a£"—,\6 P0¤>Â=Nºk ÌV×¾­êÚv©8LnR˜ÍMb„ÝÊ#"P (è0îj Ÿ„]º)µ"Šp•ÚP¤‘àt2Ñ´NfíSkŸ6Ag™†· seæDMŽ,P]­Õ‘¯|¯×±¡åPœWCâw®öÛǪ¥2˜Kàˆ9“̉wÀˆw¬ˆÖn=ü ÇD#øU g€ülOÁ[Ig„8 lmÛ62âî¢! <®L…»7?ØüÉYCk±£¢¨Ò$³¨´©’ýñ“ _žMXtÍQª'L\ä{—¬Î#4„±¹ØÐŽž ¬Ý¾)‹OµŽU¥ž2¸H×’JH Hô78¤+2•èP.¸'ž}ù¶;ãº3~Ëòqä\åój]éùüžØ¦Œ#t!Ö$AسMlÊØOÚ-Ï l’*qlž€ k’ò> “NÆêðIWfŠƒ”XH:Húýse]}€ôÜyr,0™&Æ÷e.ž[X:,i·²SY¥¯QË«4óF¦Ñe­õcD\àG:»'1êFOf*¨ÄuW¼&n!ê ªHú˜çðܲ:ÊežZd2L- púØ6öCBÓwpÂF«½À‹–g¹?ëÅœV_=nÚYKAˆí®tæÈ•ÐXçbs['bë˜mʊȼ•sžL'¬*F¤3£Skð¡²Áê{ƒ#¥º´'OРš ÐevV)°©¸ÈÁyà¹]¸Ý …NÂuÓ–œŠ÷æ!î²ç.¶ÞÛ9xo‹0/¢ª–±°ñDã^›‡ëVý øN­×v,¯M{Œü݈Jox >e˜Ê¹ñ ŽòjŒ¶<ÖÝ^ÏEÚÜ6"@cüÂô¤GíÙƒTÇ °ƒ‘¬gÝ89³Ì•ç’‡Dg]Rö垸Q n'æÐ¹«>™¿Wý>3Q»øò<|¬=±Ü+Ά>bF:É…Â~a°]0Å£G®{?}óÛšÜÆMî¶mhGÜ÷oÄ=Öî´§ùpP`n4ÂÄe½šœ&\E˜D=™Í%}Ž0iÊM%¾$çíçåvâýYÄ—®¢0ß9›š5‹wÆñÎEœøpa:Âx{,0$TΕ5úˆËkÚdoŒW_Ó&ä5maÁ8îõ5mzâ³3î{4ãžâJÓ Nû™õL]„e ßgr*¯ôTõLyÆ}‹ÜtéÖôV‘Ì–ãØ8®ãîÇ¥uæñ1\Zî™ô‹WššKða°Ž6-‹K<”“–íâ‘1BXßᎪÁ“·Ùî–)êÄ©ì4•3T–'N\HNñı3T”Ê,¨´8F“Õ‰èŸËõ-B£*¯… äÚÄÓ7žCbÍ­h„T·Ð^Ch›ì¶rä\á5Uº‹¡C­×¨ã5b d>|ãG@ÍŠ×`vj°èÿ¼jÒä4Lwsø(bä6’è){y¯o=ÛYkã¯*Õj?ÿk]{vº‘U ’ŠŽfš•NX5‰8À·h^æ‹òÁºŸê÷ºx²/»ó4ceåH^Àï“ót=OæÊ³ÕjDRx‚²}Ö¨ÓYÝxL<ð8«Ð´û=‰Z=¡)MWÃ]ç£ÚÚ´ÓªMûø-Kú«ÏŸälµë/Ÿ¿’g…<ò@™m­ÚÚ!½ªsŸÙ6Gë†$ìÝæ/µ–L†Ò±ù8äÔLÞëNH…K­ëƒjT:“Wè¸Ù²—×ðͪ a’d_·ÜBíL³%¼§•¿f4E'aD‚aÐù‚DõX§¨æFè\«nÙËG#¯ã£iÏðªnš¢&ƒœ¢º¨‡&Œ¸þã½¾ÀSSjvب6j‡uØ(…óFÞ©ç#j=µÃxj/·àí|Þ\ºhòrÚšƒM ðôtÉcW×ÐöÞŸÕ¹±¹ÿlçý‰vÞïŽi÷ÞË»[ˆ¼I- ˆÊf!"\ÆGê›`iëÐ[%·£• 5Ü=ê}f?ÍÀz.àPG2§Nž~¶}Õ`‘Ï£>‘‘XãMUO¼¼¾·U¹[¢>Þ>!#â¿Vmœ8Lú„RÃhäD^ó‘£hbC9R²çÓ$[$·•N4ì$#J4Rjv†¤…Q[EÞ½Š#Jª«7„ñ¼JÃÊïÌêĺ©ké®Ê>öu”Ï[Ò#Ô=Ò1½ãS輊ÏkœƒÈ©Z†D[pJ…l&S"o9!7Ó8 ícã@&+Õ¿ˆ^ÈkÆä½êÂèUôÀTËNˆj>U]ËÙc‹µ]pÛ*áÉ4Š‚mäÆšœoÃä¤ ¸ sº+ž›ó‰îÌëÔb3X'6㙳X·Ža¤úþyCìw-æP³U9x'r£¶ #O »|ˆØA.ï±Åª'<;‚±G#)=Œªq£ªFÄ&rSúMsé·1Ù"µÖëà¨Ç™2Y·Ë„uíFk‘¶ä‹èF*@!A¿ eÅyt3‰¦á2©§XDãxGçON‘ÏïÉŸmŽQÙŽ­ZùA›‰i#ŒêàºÏÇ:1+–Æáííf3ŒT»u˜ä¯µ4M¥äÇ*ë¯ÇèÚ&´ $«Quw%l˜Æ†iÞH¿•{”êÉæl göÅH_§×Šjw32šçš5`"}"W6{MD¾¿A]‘©uZ1±r1¸o;­Î¡Óê·,7£1òÛ=¶ý¦û%Ø•¢ŽÉ`ÏöYk"Õ¿\˜gZ9Y|Är«}â¢>ß'#™*¡J§c X¯«ï¡È o;‘pŸa¢R-jÚýÂÈr„OgV'YÜkÜe¯Ô»@ù¡œ0a8²H›Â«oa!=Ž+¶ˆ¬ ±"Õjù×–4áiÔˆÙl Löµe!½ë^÷lõŽ… ž ÀÏ%ëÆ4“ëµcûgÝꟓð!Ê?¼«€³<œx÷Úª1¯ñgfal2-2.3.0/doc/diagrams/gfal_access.svg0000644000175000017500000027742112164561703017400 0ustar ellertellert gfal2-2.3.0/doc/diagrams/gfal_diagram.png0000644000175000017500000012405212164561703017517 0ustar ellertellert‰PNG  IHDRnðÖQûbKGDÿÿÿ ½§“ IDATxœìÝyœãýøÿ×d±e‚H„™¤¤D†6ÊGh-UKì$±E¥ÕÚ~ªöo´hÑ­5¶ Zj©5­úh#KCZAP‘EŠøD*›Ü¿?®“1Içœû,÷™ûž™×óñ¸ç̹ïûºÞçÌÌ™¹ßç}]H’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’”€š´$IjÚÛ›Ýr[gà#àßÀüÜöo`EJ1*]íM€MsÛf¹¯³lÿI%ºÒ ¶&<îÀà}ÂÏøà³ôB«Ø©Àö_\ØD±dU0¹ÀþG€ƒš(I’$IÊk;à"ààS *b[|<t)±Ï·Šì§œ­c qü­È6ÿXâókLÜs¾#>ª¡°ð`°’â^³Ïi›&¸°mŸoS8þ%ÀÃÀá4ÏO¥ðó»<½Ð2£ŽÂ¯ÑÃé…&I’$I°'ð8! Si²d9ð$ðmBåBœ,$nú•ÐæJBeI%š[âfJKÔzíî$ýNàJ`¥?‡ÿvhú+bâ&ž‰)cÚ¤€$IRFl< L TR$QMÐø:p3pVí5…Q%Û8¶ZdT_`gÂs¯D[`$ð:°¥A•©ðp>°NçïJRó­$ƒ’$­ÉÄ$I ^H;”ÕPz"fd5iEÚwÓô•7Ý€ç€A¶Óxç<‘¤ª1q#I’Z»½ U6½Ò$öz—xÎ@*¿øoíº¿6hÂ>ÿ°cBmµ' iëšP{’¤Ú¥€$IRж'L$ܾÄóÞ' qùЃ0±ëVT>|&måVÏŒ¦%H3´ø{n›JX=ªØâ*¹ß#¬jTm[£cŽy‹0×ÓŸ ÃÃöÎmù~Æ»†^’H„JÓ;ÀñöÏnª@$&n$IRkÕ…paÚ¹Èã ¬ºóá"}mí ¸ÛûæŠéPy˜kø …—2.diÌþÀ¡e¶}4ðC„»­ÍcÀ¥ä_>ù§À^„‰ˆ{Æ´µK‚q7§ÍË„áƒKWׇ‘Ì*UÕ·šÔX _”"TŸ´t¯V•šRây/÷Ç8¦'ágóƒòB+ÊyÀºöÿÂCa~I៕ï×QÞïL%6!T,}‰|š¼˜BUw«‡OÎ'ü̼ΚLIØØØŒ0ds3 #¡"ð#àãÜí[4ýëИM ¿;Ûÿ&‘ê¬A„¡= 1½šÛ>I3(I’$©5»’øJ›¥ÀÖMWZÕ'½(\ 2‡0ìÃÇ,%T•ª¹UÜTâ,âî†T±ÿ6„¹w õ7ÏQ[ÂÅl¡6F'z£zVäš•'Žÿ¿48'銛¶ÀéÀŸÉ¢|í®"$Äž¾^b Õ†Þ–Ç<—†}¿AHž §ð|\u1í=\B¼›÷žûÚí|NHàü†0ߨj•|J‰½=áõ˜Yàø7}Jx¾’$I’òâ/v.M!®´’çÇô{MbŽ;µŒ¾[Sâfñ?w[T±ÿ^Eô_ÌêjÆ´qYÒ7bWམ8VoŸñE…]’‰›áÀ?‹Œaíí~BµL) åô·ö¶q~’JÜ|PqTL'>é/U…7’$©µ)fÞš™U¢<£(ï‚cǘ6 iXe³ x0æø¸êÖjwÂĹ…Zj; [Æì/v"Ö¸ eãú)W;*¯„Û¹ÂóÇýcŽY ÌžÎÝ.9þZ ¿fý/Ç´ñoàoÀs·s ‰†¦¶.á5ªD)«µ•ªЩÌsÛк*1•!&n$IRkÓ½ˆc²š¸IÚ:„å­ ùíZ_9þX²¿‚VSë<sÌ‹„¡%Õ—P)v…Ÿ¸ãzRÕkO!¾¢ë?„DÈÑÀPàd`!Y©½CfòY \@xÙŽ0 ñv„áB¿(C'à6òÿÞJ6Í!Ì%³9áù݂DÙ"÷ØMTwÞjc?ï…,&̃t !!u!¾UÕ ­Ñ8.®þ·ˆs ¬Ž%I’$©Š ¾B%®2àâ"ÚY{{2¦Í¸aCånù*nâ†Ìh䜧ù…ÎÛ3æy–òœï(¡­,êDüdØó)}¢Úr<G±Cµö‹i'"ùª›NÀû1}¾ìçüC€O‹ˆ;ß0œN4¾2Òêm°wÌs¸*¦ïSòœwCsJ™¼†0”è2 W”;TjcâW{ƒ5Wùjhß"Î/ô=*&ö†ïmÍt^ç-пTVÜH’¤Ö¦kÇÌ©zÙPì¤Ä E„äW%í¶]+0šcpa…¤j‹›(ö?E¶³$¾Jµ°IÌ1'æ‚iÌï¨l˜Ëê*–|~M˜¬¸ UùçñBC­öˆé³¡ˆ0Ìbâ(×@ç˜cN"ÌÔ˜?RúrìåX@ø~66§ÓXòÿ ­WQ$%ÎÄ$IjmŠ™Ç£)ªÒ¶1¡r¢|«HÅ­.5Ø äˆZ–žÀ „a,ù¬$Ì1TÌ$¼³¿C‘ítL ¯Rm³ 0!æ˜_R~Â"nRÚ¸ß Iºéöç[åèŸÎ9¸‘°4yÒɲRÕÆìžð;Qȯ‰•jú9°¨Àþ¸ÊH7jr&n$IRkSÌEAÜEbKpоÀþ— Ã3x·À¹ CSZ«í¯Q¡å†—*mîk’ˆ‚Bß3ˆ¯–(ö¸Ï)nYñRÄÍmSÌ0¯E„eÄË·tôó7Dg×mlIã¯í?bú>•Pí3Ÿ˜ž Ü œA¨,)6!W©¸ïQ\BB5W\r§!WH\Åe¯„b‘ŠVIÃ$I’²ìÃ"Žilîƒ,ø áÓõRÍjä±Q1ç46Lª¡ñÀ ìÜÓFKô5 …†ä} <Õ$}!.qÓ¥ÈvâŽ{PM”¤¸dêì"Û)wd\â&)Û]뱩„aDûq~g`§Ü¶Ú*BÕÎõÀ]įrU®¸Š›¸Ÿ¿R+Çû®¶øÉ·½†V“ó‡N’$µ6oqL17'|ªÝÐV„¹8ªåâ*ÅøñKîÆ ý¸ŸÂ‰›ÿ! jŠ•l²âp Fë8æÿ€o’pMmVÌþ¤*nâú)GÜïd±>å$nÚPÜ„åIØŽÿNÜD„Dè+@2ÚlCX½é¤êóßï]IˆKxWó{T¬b’BI'¥Š™¸‘$I­Í³EóuÂRÙ…>™þCnkhÕMÜ$%®ÚB’¨m€ã“}¶cËPZ }¡j"nèKµ4UÅM5+&Ò5Q?ù†5}Hfu!aòïr¯ãz¿!$Gž.³|Ø_h%«†ŠM –£˜¹—LÜ(sLÜH’¤Öf.aU“|KÒl œü´I"jZm€cš¨¯‘´üÄM p5ðý˜ãþA˜ :é¹_J—PÙèMü°£böW#qó&…' /vÞ‘B+C峊°|t¡*µ¸•ˆŠUh(ç;„•³.¾C˜¿fGJŸÃ¦†P¶ðQ1æó…«nŠ}í·ª<”¼ŠIÀ5U’N*š‰I’Ô=JáÄ „O¶ï>¨~8Mj8aSSì Ln¢þšÚ:„Ÿ‘#cŽ{8”ø¹3ªm°X¯À1{žS>í€a1ý3±ToRx…®ÞE¶SNâBâ­PâæhBr§)ÌÎÉÝoCø=L˜cfkBB¦–“oJX¾û¡ãzØ¿Àþb'}{o–Z7’$©5úp&°~c:¿ ÷YÖA5‘b†I%Ý_KLÜt~OHt28‰°t¶ö.°*ùWåYE˜ÛäôçÇ%nv¦ðràØ_®7cö\sLB²¢qÃÛ†Ót‰›†V¯æ¶†º?!Tèä³É'n \ü§À1»»$‘$I’¤fí§·|ï? «ÅÓVÜr¸oÅœG‘qäÓ‰°Ün1Ï;©m¡2%­ç\ =éÄ?÷˪Ð÷I1}^s~/B"2ßùQ¸*e\Lÿ–ñœŠqPL¿ñI´ó‹h#_ògï˜ó^¦p%S!í€Cˆ_•©T ¿ùbÎ7y]s"ªiùJÌyð£ñ®Kq˪JЕ{Cqïã·ц”(+n$IRk5–0×KÜ*-Û®î%|ª¼´‘ãÚÑVÚ6hâ>7" Ÿø}™ç÷!~(R>3 –$õ# }ŠrósÂ…ñö%¶ÿ>Å-Y_®¹ÀmÀ©yöw#\Ü#,[ÞÐw hù,",9] ¯K÷ÇÜ|‹l]Û„ÄM¹^æ“ÿw|à&`t mnœ œBHîMãU+C ¯ûý„ÕÈVÙþ§1û“º÷ð…'h¿”ðþD^mkŠyu Ç$I’$©™«#”í—RA²˜I¸¸½™p1õ,aE•¸sÓ®¸ùsLû†Á”º=Ón¡¤MÜs®d«ÆÄÈgT1ÞˆøŠ•J+n ̳<¦ÀUÀ7á>BîUèœÑw%ÎŒé?"$+®"TMÔ†çÜBHvóúªæØ»ˆv&•­.¶!¡zï(B’bíïÁð<ý~£Á1ó ɱ= ÉÃ|Ä÷ˆ‰õ„<çVRµòeàó˜ó#Âûè Â{âœ"Ž/ö{dÅZ$+n$IRk6…°òÑx /ãÜP[Â$›ÅN´™[»ÇsñŸÒ7æ^ ʾ?¡ò&ÉlT¾ÙÀíÀ· 3 ·Sà˜†>®«0®87ª~ ­\Ôâc.Õ3„ç8¦À1;ªòÞ%¼Ö]1wK †Í ¬3s_¯"L >/wÛ!wL¿"Úš˜@wO1Œ9fT™m«:>"TI½\a;+€Ã)nJÎ& µ)ÕÏ€_VØÿ2Â|9TØNš&†ýTÃûÀNÄ¿'¬m°¡r¨¤çæ‘2ÏÄ$IR0›0 èa„!TIxŸ°¤ø®„Iv•P»¥Jáá%†;U"îü:¡ô|D˜„ø* WLåóWB5IS%mV»–tz¿ÈãWª@ÎN¨ÿY„U®v'$A*5—°L{¾å´“J°DÀSÀ~”7$²†H^Lq“)ß $¼qÃP“žp\Ê<縑$IúÂ*ÂЩ=Ÿ¬ Ø‘â>ðúˆð©ñTÂ…ÈÂDi‹«vù€0t¢.;ÆÄq^…ý(YKß“[Ó ?ó} ÿa®—{ sCU«j#Î_U?vã¿WùŠI€‰„yi*­,jÌ „%° Ìé²M.޶1ç-^$T¤áõû7°€Ê^ëæúÙh­­-_|¯VoPüâiÛ”pë’gÿ¹c$I’$I’T¦ Ê<ïa /ÅýT"ÑI’$I’$µbÿÆæ"*f˜iOàf 'm"â——Z$‡JI’$I’’ô)Ð!w.a­Y ¶¥@oœ@ÛG†r_î8I’$I’$UàSâ«gJÙ^£ðÄç’$I’$I*R’‰›O fK’$I’$)I$n–¿¶jÚÐ%I’$I’Z¶ñÀÇ”—°Y üŠ0ÿ$œœX’$I’”¼6À—=€]€Í€s[7` ðnn›Ýàþ_ùM®$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$IR“ªI;€`xÚ|6áö’ŽÑø*c|•1¾Ê_eŒ¯2ÆWã«LÒñI’Ô$LÜT.ªB›I_’ŽÑø*c|•1¾Ê_eŒ¯2ÆW㫌ÿ÷J’š¥viЂdùSœ,ÇÆW)㫌ñUÆø*c|•1¾ÊŸ$Ij"ªSu#I’$I’Z¹6i I’$I’¤Æ™¸‘$I’$IÊ(7’$I’$IåäÄ•[˜v’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I*ÍaÀÛÀØ´‘$©!——$I’ 3ÐØ8í@$IjÈÄ$I’$IRF™¸‘$I’$IÊ(7’$I’$IeâF’$I’$)£LÜH’$I’$e”‰I’$I’¤Œ2q#I’$I’”Q&n$I’$I’2ÊÄ$I’$IRF™¸‘$I’$IÊ(7’$I’$IeâF’$I’$)£LÜH’$I’$e”‰›Êm˜Û$I’$I’Õ.íZ€s·5©F!I’$I’Z+n$I’$I’2ÊÄ$I’$IRF™¸‘$I’$IR‹å6I’$5_€¾@÷´‘$IÉ2q#I’$I’ªÂ¡R’$I’$IeâF’$I’$)£LÜH’$I’$e”‰I’$I’¤Œ2q#I’$I’”Q&n$I’$I’2ÊÄ$I’$IRF™¸‘$I’$IÊ(7’$I’$IeâF’$I’$)£LÜH’$I’$e”‰I’$I’¤Œ2q#I’$I’”QíÒ X˜v’$I’$I’$I’$I’$I’$I’$I’$I’$Iªº#(·íXÆþ1 ö÷ªRŒåè\LðEŒç%ØGÜk#I’$)NN,IÙ¶>ð2°uÚ]€}mù"¦·€7[ é„&I;  <@²‰qI’*bâF’²íû|‘ ¹xx=÷õ‚&ŒãFà`FöíœÛŽžÊ÷^Ó…&I‰è ô6N;I’2q#©5™ì™»ÿVš”`ÜíàdÂP¦4ìÌI›—3€eÀvÀQÀÀ× ŸVï¬hò(%I’¤ÆÄ¤ÖäƒÜÖœôÍݾ@zI šqÀω›µ] üø0ø!pe“E'I’$µPmÒ@’TP—Üíÿ¥ìŒ¢ñ¤ ÀlBÕÍj{U="I’$©0q#©5)uå¤vÀI„J“æmùpPSÄùëç*}Þ ÌSs\îüÄsdƒóŽmðøF¹ÇF5x,¦¬ÕW¯\\†1->&wʈ·%E3/æ¶Ù©Âþ$I’$áP)Iʧ-ppøZœÛö!$`>Ísþ¦„$ÏÐuú&ïý*ð›„bí¼–gßWrÛqÀÍ„%Ï—%ÔocVçÊ÷ºH’$I*‰IjÜ­„á>Æ–»þ2!é28ø=°w#ç¶þ È}ý8p?a5¨/V_ú°Mž¾ïÎm&%ÞˆP53:Ïñ«ßË_f†.õö'$™º§æÿyÚ©T-Ð3wj•ú$I’$IÍTÜP¨¸ýcXs8Rc Žu‡ÓØ\.£쿚ÿVÕøÅZ}Iãäöß‘g?@WBÒ$Ÿv„•ž"Â\9›6rL©ÃÈsSƒ6Ž/³ IJˉ„÷¯[ÒD’¤†œãF’÷pa#/#TË,Í}}éZûk€åîÏ.à¿WƒZEXuéÃD"…E„ùsòYI¨¶‰€NÀ7귡ÀSr÷Ÿ§p¢I’$IR‘LÜHRã~|žgßûÀ}¹û_%LB¼ZO¾XÂû7ÀòŠÕ†0™ñQE¿qBýn fÿê¤Å*ÖLÖü«Áý1mÄí/Æ—K”ÜOþ¤Mo cýmHHÚìûú‡À ´+I’$©&n*÷qn“Ô²œ´Í³o¾š4‘5WŽšÇÉ›“1Y8±Âº6¸ß³Àqç$Ô×ÓÀ Ü×ÿpuíJ’$IÊÃÄ$5®/pI#¯üX?÷õEkí€Ër÷{—7ÒF 0–ªÔ« î‡Æç¯98¥Â~:Ou¹¯/!Ì­#I’$©ŠœãF’÷¡¢d;àÂ× U2CsÇ<›;nmw*\änû÷Vžì—;w¯Ü9ù†8ÅY@¨‚ÙØ˜<L úp@wBeÍÀëÀs„ÕžLüJ’$IRYq#I’$I’ª"ßÄ™’$I’$IJ™‰I’$I’¤Œ2q#I’$I’”Q&n$I’$I’2ÊÄ$I’$IRF™¸‘$I’$IÊ(7’$I’$IÕ.íZ€…i I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’¤Ò¼ ŒM;I’r9pI’$ :}ÓD’¤†LÜH’$I’$e”‰I’$I’¤Œ2q#I’$I’”Q&n$I’$I’2ÊÄ$I’$IRF™¸‘$I’$IÊ(7’$I’$IeâF’$I’$)£LÜH’$I’$e”‰I’$I’¤Œ2q#I’$I’”Q&n$I’$I’2ÊÄ$I’$IRF™¸©Ü†¹M’$I’$)QíÒ ø8w[“j’$I’$©Å±âF’$I’$)£LÜH’$I’$e”‰I’$I’$µXQn“$IRóÕ è tO;I’”,7’$I’$©**%I’$I’”Q&n$I’$I’2ÊÄ$I’$IRF™¸‘$I’$IÊ(7’$I’$IeâF’$I’$)£LÜH’$I’$e”‰I’$I’¤Œ2q#I’$I’”Q&n$I’$I’2ÊÄ$I’$IRF™¸‘$I’$IÊ(7’$I’$IÕ.íZ€…i I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’$I’¤Ò¼ ŒM;I’r9pI’$ :}ÓD’¤†LÜH’$I’$e”‰I’$I’¤Œ2q#I’$I’”Q&n$I’$I’2ÊÄáÆ$Ê IDAT$I’$IRF™¸‘$I’$IÊ(7’$I’$IeâF’$I’$)£LÜH’$I’$e”‰I’$I’¤Œ2q#I’$I’”Q&n$I’$I’2ÊÄ$I’$IRF™¸©Ü†¹M’$I’$)QíÒ ø8w[“j’$I’$©Å±âF’$I’$)£LÜH’$I’$e”‰I’$I’$µXQn“$IRóÕ è tO;I’”,7’$I’$©**%I’$I’”Q&n$I’$I’2ÊÄ$I’$IRF™¸‘$I’$IÊ(7’$I’$IeâF’$I’$)£LÜH’$I’$e”‰I’$I’¤Œ2q#I’$I’”Q&n$I’$I’2ÊÄ$I’$IRF™¸‘$I’$IÊ(7’$I’$IÕ.íZ€…i I’$I’$I’$I’$I’$I’$©&í$I’ªlJÚ¨êf‡¤„$IÕà7’À‹š,ùØ7í ¤fpÚ¨ê:¥€$IÕbâFxQ“%鹿ÔRM™bŽº¥™={6‡’X¡ÍaÀXà༤•$©R&n$Õó¢&=~ø!ûîk¡TMƒ›£ni:uJ´Ð¦3ÐØ8ÉF%Iª”‰Iõ¼¨IÏ{ïYh#I’$鿵I;I’$I’$5ÎÄ$I’$IRF™¸‘$I’$IÊ(7’$I’$IeâF’$I’$)£LÜH’$I’$e”‰I’$I’¤Œ2q#I’$I’”Q&n$I’$I’2ª]ÚH’$­eJ5­««K´½)Sª¦$IÒLÜHÍ“5’Z²ÁÕhtêÔ©ÕhV’$©ªLÜHÍ“5’Z¼¬&“NrK’$bâ¦ræn¦…Z%/j$µdƒW%G-I’Ô¬˜¸©ÜǹۚT£P«äE$5_³gÏæ„NàÕW_e—]vá‘G‰=§®®Ž1cÆpì±Ç6A„’$) \UJRfÍž=›áÇӣG¾õ­ouN]]wß}w•#Ë^ß’šŸ›o¾™Í6ÛŒ÷Þ{¯¨¤$IjLÜHʬævQsÎ9ç°Ë.»¤†¤Œøè£¸øâ‹éÕ«C‡åî»ï¦cÇŽœxâ‰\ýõ<úè£ôéÓ‡Ûn» €k¯½–ÚÚZºtéÂþûïϽ÷Þ[RŸK–,áÎ;ïdøðátîÜ™vÚ‰7Þx€… rÝu×1pà@† ƸqãX¶lYý¹ýû÷禛nbß}÷¥[·npÀ|òÉ'ÜtÓMôïߟwÜ‘ñãÇ—}|1ý_uÕUì¹çžÔÖÖ2zôhÞzë­Ò_xI’¤µD¹MjJeU±ñ-X° úñõìÙ32dHt×]wE:tˆ¢(ŠN8ᄨcÇŽQçΣ-·Ü2ºõÖ[£(Š¢k®¹&êׯ_Ô¹sçh¿ýö‹î¹çž5Úøàè°Ã‹Þ}÷ÝèùçŸXÿEQtâ‰'FgŸ}öçÜÿýÑ¿þõ¯hùòåÑc=uêÔ)zã7ê÷ǽÇ}÷»ßvÛm·h„ ÑÊ•+£éÓ§GóæÍ‹¢(ŠŽ9æ˜èßøFôÚk¯E/¾øb´Ã;D?ýéOëÏ­­­¶Ùf›è‰'žˆfÍš 6,Úa‡¢oûÛѬY³¢ßþö·ÑlPÿžXêñÅôß¿ÿhæÌ™ÑÊ•+£ï}ï{щ'žXð5~ã7V?ÞHàçîÄ\[·$Ж$IÊ7Jƒ5e^ÔÔÖÖF}úô‰f̘­X±"ºâŠ+¢wÞ¹~¡ ‹ Dn¸a4iÒ¤hÕªUÑ¢E‹¢©S§æíûñÇ6ÜpÃèwÞ‰®¹æšhÛm·/^Üh\&n¤54û÷¸Ï>û,êСC4cÆŒúÇ®ºêªØ÷¸µ5*ºòÊ+ë¿.ô·bÅŠ¨{÷îÑóÏ?ÿ_û–-[uîÜ9š´oßžý÷ߟC9„‡z¨¤¾:è  @»ví8묳˜>}:sçÎeùòå<úè£\vÙeôïߟ¡C‡rÖYgÕ—ú×ÔÔ°lÙ2f̘ÁâÅ‹éÒ¥ ;í´SÞ~öÛo?N:é$öÛo?~üãsÿý÷דԲ½üòË 0 þ±wÞ9ö¼ &0zôh @ïÞ½yä‘Gøûßÿ^TŸÓ¦McáÂ… 2¤Ñ}Ÿ}öƒ ªì+_ù S¦LaÉ’%Ƹù曳õÖ[Ó­[·5›;wnÉÇÛÿöÛo_¿{÷îÌŸ?Ÿ•+Wõü°øðaSu(IR1LÜHJE5« 8°þ~‡èÛ·//¾øbì…E·nÝxøá‡?~<=zôàÐCeÒ¤Iû:ýôÓ™9s&{íµ×íJjÙvÜqG¢(âµ×^«lòäÉÏYºt)#GŽdøðáLœ8‘Ù³g3bÄ¢¨¸ÂÞAƒѵkWþö·¿5Ïúë¯Ï´iÓê{饗¨««£C‡E>«ò¥Ý¿$IÍ™‰I©Hã¢fµ‰'Ößÿøã™9s&»îºkQ{ï½7?þ8óæÍ£_¿~Œ=:o?Ÿþ9#GŽäðÃç…^h,KJÆzë­Ç>ûìÃÅ_Ìœ9sxá…bW[¼x1 .dذatéÒ…3f¬1¹oœvíÚqÄGpÑEñüóÏóùçŸóÏþ“ùóç³îºërÀpñÅ3sæL&NœÈ 7ÜÀa‡VéS-JÚýK’Ôœ™¸‘”Š4.jV{üñÇyøá‡yÿý÷9÷Üs4h½zõн°xýõ×™0aË–-cýõ×§[·ntéÒ%o?_|1‹/æöÛoç–[ná„N`Μ9%Ç+©yºùæ›éׯ_ýêWùÁ~Ài§F×®]óß½{w®½öZ?üp† ÂyçÇÈ‘#KêsìØ±wÜqüèG?¢k×®Œ5ŠÅ‹pýõ׳çž{rÈ!‡ðýïŸ3Ï<“3Î8£¢çXŠ´û—$©¹ªI;€`õGý¾–jJPr¥IS©© ¿qñ}ðÁÜpà ÜvÛmôêÕ‹Ñ£GsÅWÔÏŸpÒI'ѵkW®¾úêúsn¾ùfn½õVÚ¶mK÷îÝÙrË-™?>>ø uuuŒ3&ï|9ýû÷çôÓOç÷¿ÿ=¯¾ú*Gy$gŸ}6½{÷Âò½wÜq·ß~;;wæä“OæÈ#¬¯Ä9õÔSyýõ×éÔ©C‡åüóϯÕ°ïçž{Ž#F0yòd¶ÙfÎ<óL¦M›ÆŸÿügÚµk·F\ï½÷={öxèYÒ .µ<-â=nm—]vï¼óNýÒߪÜÌ™3©­­˜ Ô¦Ž$2%íÔ¤f‡$՘Ɇʙ¸Q¼¨)Sÿþý;v,tPÕú(‡‰›ªÚø:ð?À¦Àáe´ÑØø_|æÁÕ“ <8í85uêT þ=nòäÉtëÖ>}úðÔSOñÝï~—±cÇr衇6E˜­‚‰I͈ÿ+´.‰þ]jˆ¤¬ª««K;„Ь}Q3nÜ8ÆŽ›vXj96Æç Ç´­ ,+¡}€ŸÙ7x-wûtya*ŸÕ ’æjîܹŒ1‚E‹1tèP.¿ür<ðÀ´Ã’$¥hÊ oZ²Ù³gsÈ!‰ÚÔ3q#5c^ÔHym< ¬^¯ýOÀãÀ›ÿ‰W 0–ø¡OŸ>Œ9’vØ€W^y…qãÆñÎ;ï ž®Î/¡}å—tVz 4ý?Ë|0|p“ö)Iʶ¬V“*:uªJ»臭C¥”†¤ßñ«rQã¦â9T*Q/5£¿–Ñί“×YgèÒK/­ùÞ÷¾Ç:묳ÆË—/çg?û]tQ´|ùòšÜ9§T½ª!ÓÃKU>‡JIjFü[Ô Tëï’7RóT•R-j!~NHÚÌv>.£€“×]w]ž|òÉš=öأуÖYgÎ=÷\vÙe—š}÷Ý—eË–}˜Ü^^è’$IÒš\\’Ô’ TØ,¦¼¤MWÂ)n¼ñFò%mÚsÏ=ùÕ¯~µú˱¹6$I’¤Š™¸‘$µ$£¶„Š—™e¶q<Ð}=öàøã/ú¤N8¯}ík›äâ$I’*æP)IRK²wîö Ú8àôÓO/ùÄÓO?çŸ~u?¯ †¦à²jIz“ÎÏô$à;)ô+IjEš*qÓØ:wÿmàÓ&êW’š›îxA]‰/çn§WÐF?€]wݵäœ3„ìÔJ-Éz¤ó3½0…>%I­L57m€‘À(Âäms¼Ü ŒVU1†¦àlIIjÔIXRÁ¹ºtéRò‰ ÎiGóù>&½ôve=‰¦ÊÍ&W-×Dv~{”$I ¨VâfKB™úÎVÝØj«­˜5kVÛåË—ïìA(-AøcÛ\uK;I-ʇÀ¾iÑŒ=lJXRý­2Û˜ lóöÛo3pàÀ’N|ûí·WßC˜¹9¨Ê*uR[JÓþ,oØ„}I’Z¹j$nO›l±Å\~ùåzè¡tèЀ%K–ðàƒrá…2wîÜÉÀ×—«‹$57+ðBº“€oÿCù‰›mzè¡’7¿ûÝïVß}¿’$IJ@Ò«Jõ6ÙgŸ}˜>}:#GެOÚtèÐQ£F1}útöÙg«o<–;W’¤J<œ»=ƒ/†è–jÀu×]Ç|PôI|ð×]wÝmH’$I•Jºâæf`óáÇóØcѾ}û¼n¸á†<öØcì»ï¾<÷Üs=›Ÿ’J’T®{€‹€ÀÙÀOÊhcðø¢E‹ö?æ˜cxâ‰' þ=X±bG}4‹-‚ðaÄŸÊèW’$eGUæG««Kvj¹)SœÆ­5H2q³;°×®]¹çž{bÿÉhß¾=÷Þ{/µµµ,Z´èÂ$Æ/$“$©uYœI¨¼¹’0Iñ/ËhçT`ʳÏ>»éQGÅwÞ¹FõhCK–,aäÈ‘<÷ÜsÿN++r5ä?ËJÃaÀXÂ<祋¤ôUe‘©SI­Ò%™¸9àôÓOg“M6)ú¤M6Ù„ï|ç;\yå•«Û0q#Åó¢FÊïQÂE×UÀ/€o—æT‹Šlc.ð-ేzhãI“&qå•WrØa‡±îºë°lÙ2xàÎ?ÿ|æÎ ° wÎÜDŸMëä?ËJCg /°qÚHÊŽ¬þ?›ôÿíʶšÛš lû÷¿ÿAƒ•tâ´iÓØi§ ü³{|‚1©8Ϧ€JVìÅgª¢¨Y„™ ï½÷={öxçüJÊaÀo€Õkt@˜°øëÀ§E¶Ñ¸—\"¡K—.ôï߀×_O>ùdõqS£€7“\á=.ëÿ,û—¾™3gR[[ áÿÐÚ ›;¸¸8)æØáÀ3„ÿ¡ö®°_IÙAvßëkjÂ¥|Vãk­þ»T/ÉŠ›-¶ÝvÛ’OlpN/ÂA5ˆä'©VÉúE”²óÕ|ÄéG˜I mÌvF§|òÉ'_y饗îŸü¸X•@Ìj`ðàªÞH’¤œÙ³gs 'ðꫯ²Ë.»ðÈ#ÄžSWWǘ1c8öØc‹Ú_N¥ˆ‹'íö’dâæS`½O?ý”Ž;–vâ§õ|.þ’`L*lxÚ¨2^ÔH±>.Ìm½€î”^±¶ ¸=·môÈ=>Ÿ0§$IR³tóÍ7³Ùf›ñÌ3ÏÔWñ4Ç>’tÎ9ç°ãŽ;¦FÕ¼D<ð@TªñãÇG„¤MÚ4Âkî'ÄÍS”ü»ÖT²_Í›7oõë6/ÕŸ,)2ý’õøZ“7Þxcõ÷ã~îN̵uKÇÏk¥¸Ôreú½¾Øø,XýøÇ?Žzöì 2$ºë®»¢:DQE'œpBÔ±cǨsçÎÑ–[nÝzë­QEÑ5×\õë×/êܹs´ß~ûE÷ÜsÏm<8ºë®»òöÙp¾>>ýôÓèŽ;îˆöÚk¯¨S§NÑ Aƒ¢×_½Ñöjkk£K/½4Úm·Ý¢FcÆŒ‰æÌ™“7žM7Ý4zá…꿞}úо}{öß9äzè¡ÄâZ¹r%÷Ýw—_~9{î¹'mÛ¶eàÀl¾ùæyÏ9è ƒ0`íڵ㬳Îbúôé«Wõ,I¹¯É1ÇöÛnKÛ¶m9ꨣxâ‰'Jî»IVÜ,În=ztÔ£GšaÆ<á…^àøãÃv.ȵ¡¦UC•––VÕ8¼M’$IRA/¿ü2 ¨lçwŽ=o„ Œ7Ž—^z‰%K–°xñb†OnzÔiÓ¦±páB† Rô9¬¿ß¡CúöíË‹/¾ÈGQRßå¾&Ûo¿}ýýîÝ»3þ|V®\I»vI¦TòKº—›€ÁÿùÏN>|8×\s §vmÚ¬YسjÕ*n¼ñFÎ>ûl–-[VCX®õ¦„cQñœá¶y1q#I’$© wÜ‘(Šxíµ×ê“'O.xÎÒ¥K9r$cÇŽåºë®£K—.œ|òÉ,\¸0±¸ D×®]ùÛßþÆî»ï^Ô9'Näøãàã?fæÌ™ìºë®Û«W/>üðÃú¯ÿñÔß/ç5É‚j¤‡Nþ³lÙ²ïžqÆ\wÝu}ôÑì°Ã¼òÊ+Ü{ï½¼ù曫¿øAâPaàšÍÍ—UR’$I’òZo½õØgŸ}¸øâ‹¹úê«™5kwß]xv’Å‹³páB† F—.]˜1cãÇgï½÷N,®víÚqÄGpÑEqÉ%—0lØ0^{í56Úh#zôèÑè9?þ8?ü0C† á /dРAôêÕ«Ñc÷Ûo?zè!8à>üðÃ5æ¢)ç5É‚j$nVgÿ \ûæ›oöºä’K;n.ð} ø q”´©i I’$IªŽ›o¾™n¸¯~õ«ôêÕ‹ÓN;+®¸"ïñÝ»wçÚk¯åðçmÛ¶tïÞ‘#G2þüDã;v,÷ß??úј6mýúõã¾ûîË›¸9÷Üs¹þúë9å”S8òÈ# ιsÊ)§pùå—³Ã;бcGŽ;î8^yå•úý¥¾&YPíEÔ×þØ؆Påñ6ðG`°¼ÊýK-UEQÚq4ª¦&¼µd5¾,zï½÷èÙ³'À{@Ï”Ã‘Òæ{œŠ2sæLjkkfµ6w"a)ð[“bŽNX üY ¹¡%eI‹ü[tÙe—ñÎ;ïpÛm·U#¬ªèß¿?cÇŽå ƒªJûI¾& ÿ]ªWí™t–Oæ6I’$I’šººæ=»ÄäÉ“éÖ­}úôá©§žbܸqŒ;6í°RÕ_“¦™Y’$©DÍýŸeIRó7ujóž]bîܹŒ1‚E‹1tèP.¿ür<ðÀ´ÃJUs|MLÜTnÃÜmrÓlKEò¢FRKÖÜÿY–$5kIÿ£=`Ê”¦]cäàƒæàƒnÒ>“öúë¯'Ú^s|MLÜTîãÜmµç ’þ‹5’Z¨ñϲ$©Y«Ê?Úƒ®F³jáLÜHÍ“5’Z2ÿY–$IÊ1q#5O^ÔH’$IR+Ð&í$I’$I’Ô8+n$I’$ü Xœv ’$5dâF’$I “6’¤Ìq¨”$I’$IRF™¸‘$I’$IÊ(7’$I’$IeâF’$I’$)£LÜH’$I’$e”«JI’$I’´¦)Õh´®®.Ñö¦L©J˜Ê7’$©UHúŸe¥oéÒ¥i‡ ©å\F§NZfÕ™¸‘TÏ‹šô¬X±"í¤Ï–%I¥ÊjE‹ÿ··.&n$Õó¢FR Õšþ»í<|ì•r,MÉÒIU1xpU o¤’˜¸‘­ë¢&ë,½‘’ך²ÒånWÒºž·$I-–‰IÐüþ¹ž»}6Õ($I’$©ÊLÜHjŽžÉÝÖ¤…$I’$U™‰I’$IªŽþÀÝi¡’­J;©!7•[˜v’$I’2iª´¬´ªÊÄ2ÅÄM庥€$I’¤L{86í T’l®®VÉÄ$I’$U×h~‹AHʈ6i I’$I’¤Æ™¸‘$I’$IÊ(7’š£gs›$II9 x›v ’$5ä7’š£½Ó@’Ôâtú§ˆ¤ì¨««K;ÉÄ$I’$I™:Õ9¥•>7’$I’$­)éR›)S¦¸Ê¸JgâF’$I’¤5U¥ÔfðàÁÕhV-œ“K’$I’$e”‰I’$I’¤Œ2q#I’$I’”Q&n$5GÃs›$I’$µhNN,©9z&w[“j’”=ŸVBY™v ’$)&n$I’ZŽ•Ti%I’”‡JI’$I’$e”‰I’$I’¤Œ2q#I’$I’”Q&n$I’$I’2Êɉ+·aîvaªQH’$)K†ÒB©ëvÊ–ººº´CP-]º´*횸©Üǹ[—%–šÎ³i IRŒÛ€þi!)[¦Nuá?•ÎĤæhï´$©C† ¡C oZ£O?ý”‰'®þró4cQ&XjÓº$ZzcâF’$Iª’Ûn»þý-¼iÞ|óM¾öµ¯±`ÁV¬X±ð3àû@”rhJ‡¥6*›“K’$IRtìØ‘{ï½—öíÛŒ®Å)$•ÈŠI’$ ƧˆZ–#FpôÑG³bÅŠ1¹‡­¼‘T47’$IRHؘ´QU˜¼‘T ‡JI’$IR•1ÂaS’ÊbâF’$I’š€ÉIå0q#©9žÛ$I’š“7’Jå7’š£gr·þ“#I’š缑T +n$I’$©‰Yy#©X&n$I’$)&o$áR’$I’T³gϦ®®.ö¸ž={òî»ïEÑà9౪'©Ù0q#I’Ôrt!\ô}ì•r,R«Ö»wo^|ñÅ¢?ï¼óxöÙg!üKR=7’¤ÿŸ½{‹ªÎÿ8þo+%Úˆ&hxED“24ÑÍ ™n¢Ò®è·ik%«¨•™m×Í5»(¶fÚE[W235ݵu]5Ó.*’¢‘š—ÔÐÅÄ„áûûc`’``ßÏÇcÌœï9ßïçd„Ï|¿Ÿ#"Õ‡œñt "׺ڵkâòþM›6-ÇhD¤*S‘JJ3nD¤*ÚàéDDDDDD*‚f܈HUÔ'ï!""ReõìÙ‹Å‚Åb!((ˆ|8ÛýýýñóóÃb)ß› ;–GyÄíýÞvÛmÎóËÌ™3§D}$''äöØ.·bÅ :wîLãÆ¹ÿþûËu,‘ÒPâFDDDDÄCf̘Avv6Ë—/'55•©S§:ÛŽ=ʦM›Ê=†˜˜† âö~?úè#233éÖ­3fÌ 33“?üán§¬fΜIbb"§OŸæÕW_õt8""WPâ¦ì2ò"""""%R£F ¼¼¼èС&L`ÕªUdee¹tlXXo¼ñ†óu||<üã¯O:Å”)SðóócÈ!DGG3}útgû[o½…ÍfcàÀ¬\¹òªý'$$ЫW/Z·nMBBÙÙÙ.Ÿ›V«•5jP«V-¬V+ÞÞÞ.õŸ’’‚Ífcüøñãã?f̘1´k×ÎÙCLL cÇŽ-´uëÖ±nÝ:|||èØ±#¤gÏžn‰¯¨þÛµkGzz:ÉÉÉL™2…ÔÔÔ+Ž9s&Û·o')) ‹Å˜1cðööfäÈ‘ö{á…x饗xóÍ79wîœs{~²ÊÏÏ+/ IDAT÷Þ{ïŠóª]»6K—.¥}ûöìØ±ƒ»îº‹fÍš9¯×É“' ç¹çž#%%…óçϳk×®Ç'"R͸ñçŸ???‚‚‚°ÛíÌž=Û-ýÚívÖ¯_ÏäÉ“ñ÷÷çw¿û-[¶,q?ƒ ÂÏÏúõëÓ³gO·/Ý*mÿÆÞ}÷]fÍšE»víhÛ¶-qqqW9ÔµkW† †··77¦qãÆ.K—.]ðöö&<<œ¨¨(vïÞíl_¶láááL˜0___üýý8p`‰ã)Žf܈ˆˆˆˆxH||<“'O¦qãÆÔ¬YÓmý~ýõל={–öíÛ;·ÝrË-%î' ÀùÜjµrúôi·ÄWÖþÓÒÒ8|ø0£Frn³Ûíxy]ùçÍm·ÝVªØ¶oßÎÂ… Ùºu+çÏŸ'##ƒaÆ9Û7nÜH=ÊŸˆHq4ãFDDDDÄC¬V+M›6-4i“_&''状† rþüyçë´´4çóÀÀ@|}}Ù»w¯sÛåÏ« ///rss¯ØÞºukl6«W¯&==ôôtŽ9Â7ß|sž¥Yzf·Û‰¥sçÎlß¾ôôtúõë‡1ƹOïÞ½Ù²eËU/I|""ÅQâFDª¢È¼‡ˆˆˆ»Üžöt —  yóæ$''_ÑÖ«W/6lØ@NNûöí+D¨Y³&}ûöåÅ_ääÉ“,Y²„ôôô Œ.]ºÄÅ‹1Æ““ÃÅ‹¯(î[œÐÐPÒÓÓùöÛo l·X,Œ1‚©S§òù矓››ËþýûùðÃÝ{VV'Ož$""‚:uê°gÏV­ZU`ŸáÇóßÿþ—W^y…sçÎqüøqV¯^]!ñ‰ÈµE‰‘ªa ðÙUã‹9n|!ÇUõã?Î{ˆˆˆ¸K= p­J±X,¼øâ‹Ìž=«ÕÊܹsm#GŽÄjµÌ”)S4hPcçÎK³fÍèØ±#ÉÉÉ <¸ÀRîÝ»c³ÙX¶lIIIØl6î¼óN·ÅÞ·o_|||øôÓO™9s&>>>¼ôÒK%ê£I“&$&&Ò¯_?üýý™?¾³-11‘¡C‡2yòd|}}‰ŽŽæÄ‰n‰Ýjµ2oÞ<ÆGhh(S§NeøðáöñóócóæÍ¤¤¤DXXX¥^埈ˆˆT>Ÿæ*Ç‹9îñBŽ«.Ç‹ˆHAp¼?º·ɵa Žk·Ð…}#óö-êC„}€Ù·oŸ©,:tè`Ö¯_ïé0¤111ù¿ßÄ”ù_³ˆT+ªŽ%RµŒÂñ‹`¾ãÅì¿ø ˆöª~¼ˆˆˆbÇŽÔ¯_Ÿ›o¾™uëÖqøða"""<–ˆˆ”7"UC&ì¾,ÁqÇò¥UÕ¹f9r„»ï¾›‹/rÇwœœL­Zµ<–ˆˆ”7"UÃíž@DDDª–èèh¢££=†ˆˆ”‘Š‹ˆˆˆˆˆˆˆTRJ܈ˆˆˆˆˆˆˆTRJ܈ˆˆˆˆˆˆˆTRªq#"""R}œº9žD¶nÝÊÑ£G=†TÇw³M¹V)q#"""•U}`£û;ÜáÆþ*c|9ÀN7Ä"nòûßÿÞÓ!ˆˆH§ÄˆˆˆTV^@ˆû;ãÆ¾ òÇ'žµÐT© „™ÀvÑÔ)@‰‘ª¡Pø`÷p,""%Ù»¸{ùPeOŽEDª(%nDª†âøT·+š/"׎ʾ짲Ç'"""Õ€î*%"""""""RI)qSv ò""""""""n¥¥Re÷CÞW‹G£‘jG3nDDDDDDDD*)%nDDD¤"ÔÆ±´øzO""""R•(q#"""!Çòâ=ˆˆˆˆHU¢7"UC&ãÖ³"""â~Ëáø?WDD¤ÒPâF¤j¸ÝÓˆˆˆTs™(i#""•–J‰ˆˆˆˆˆˆˆTRJ܈ˆˆˆˆˆˆˆTRJ܈ˆˆˆˆˆˆˆTRJ܈ˆˆˆˆˆˆˆTRJ܈ˆˆˆˆˆˆˆTRJ܈ˆˆˆˆˆˆˆTRJ܈T õ€@MO"""""""G‰‘ªáŸÀ@'O"""""""G‰‘JJ‰‘JJ‰‘Êg ð>лˆ},À`&àSA‰ˆˆˆˆˆHÅSâF¤òéŒ#y3¬ˆ}B€(àwÀÅŠJDDDDDD*ž7"•OrÞ×Áþ3:(ïëû€)÷ˆDDDDDDÄ#”¸)»Œ¼‡ˆ»| š¡…ì38ïëû‘ˆˆˆˆˆˆx„7e×0ï!âNù ™ü™5™8„9@ 8ïõ'šˆˆˆˆˆˆT/O "Wõ>0 ˆ¦·_ÖöHÞ×ì ŽKDDDDDÊnŽŽˆK‰‘Êé?À)àf -°ï²¶ËëÛˆˆT?á˜)xÁÓˆˆˆT!(q#.RâF¤r²«qÜ5j0?'nü€pw’Zë™ÐDDJeqÞCDDDòìØ±‹Eù¹º .ЫW/%nD*±÷q$nÎÛöµ©6ç=—ˆˆHutð4ðŽeÊ""å.$$D‰)ÔùóŽ?ùTœX¤òZüüðÏÛ¦eR"""å£4öt """—SâF¤òÊ‘¼±wu>8–Q­ò`\""""""RA”¸©Ü.¿-ø@m`+ð½Ç"‘ £7"•Û@ЛŸ«Îk™”ˆˆˆˆˆÈ5B3nD*·€ÿÞ@ß¼mx.)'7¡@KÊöájà) «;‚ÏSâF¤òûÇeÏ÷_{*q+?à9àð°-ïùI`б}Φ;€\`'še/"R¥)q#Rù%æ²ç"""RõÅàø0æ eƒ èØ±#7Üp@Cà>à3³gJò;ûO—=·]€KÀP7Ä,"" ÄHå÷-°;ï¹–I‰ˆˆT}K€z¿ùÍoؾ};gΜá‹/¾àرcl®»ì¹Ñ£B¹èé>Ldd$7Üpƒ r阮]»²téR—Çøâ‹/°Z­¥ ±\•ô\*ª?͸)»ò¾*í*"e–Ÿ¼ÑÌ©âì8–aŒÏ^eŸ^8–™¤išˆ[ìÂõÚ6ùÔmÛ¶‘··w‰Þ¼Ù™ßüº„ã^®~Þ×£8–2JÅJÆñž(RiÍŸ????>þøcÍ,rƒ„„:uêTæ~ôI®ˆH%£™7RM¼Ÿ÷µ°?Rò·—ôÖÆ"UÕ×ÀÞ3gΰ|ùò¸ÿ~6nÜã–à¥Ñ‰Ÿ?´WÊ>D¤Š;sæ ?þ8þþþ„‡‡³téRçì—1cÆ0wî\>øàZ¶lÉßþö7þò—¿Hýúõ0`o¿ýv©ÆlÖ¬aaa|õÕWÚüñG/^Ldd$õêÕ£K—.|ýõ×.ĬY³èÕ«:t`Ò¤I=z´ÐXJº¿ŸŸÿùÏœ¯?ûì³³…ŠºžÏ>û,Ÿ~úiñŸyæn¿ýv¹ï¾ûHKÓçW!úc¹ô+"Õßwß}gn¼ñÆ+¶¯Y³Æ\wÝuùï1 QòFª–ëqÝ´7µq,-¾Ç,ÕoqüÛþµ§ù…1üü~[^ƦE‹æ‡~péÿ»Ýnúõë—ÿAYjAýŸ—ìˆg$SpùTgÑÊLnn®»t ‹Åb\‰oÈ!æž{î1ß~û­ùä“OLûöíM:uœícÆŒ1?üpc–-[f:d.]ºdV¯^mêÖ­k¾þúkg{HHˆY²dI¡c:Ô 8Ð:tÈ|üñÇ&00°À˜'N4·Þz«ùç?ÿirrrÌW_}e¾ûî;—Æ 4-[¶4)))&;;ÛÌž=ÛtëÖ­ÐXŠÛÿ—çÒ´iS³yófçë;vˆ½¸ëùËþMPPÙ¿¿ÉÉÉ1“&M2cÆŒ)4ÞÌÌÌòÊ7\s”¸‘2),qcŒ’7Rå½ãßîø¼‡æã(èj€#h©±T‘¸© lLDD„9wî\‘ÿ?Øív3a„üÿN~¥w+?ÿÎú–[ÎDJC‰›ª­Ê'n²²²L:uLJJŠsÛ3ÏE’Êc9Ð ˜ZŽcØhàè'Ÿ|BxxøKò8q‚ÁƒóÒK/\Ê;îD Çk|„å½>Ä”&p©ú¾øâ Ú¶mëÜÖ­[·bûç?ÿÉ}÷ÝGÛ¶miÑ¢ï¿ÿ>»víryLc íÛ·wnëÑ£‡óùçŸNFFÝ»w/õØ—÷]§NزeK¡1•tÿ¢Î J~=ƒƒƒÏ›4iÂñãÇÉÉÉ)òýò/"RÉ)y#UØû@pïf3ø²v‘Ê"8œ*çqŽ·{÷îÝKHHQQQ¼öÚk¬]»–Å‹3zôhn¾ùf>øàpÜ£?ðoûŸ€cVÏyEˆ›äm?GégìˆH5ЩS'Œ1ì۷ϹmÇŽEsñâEFMdd$Û¶mãðáà :c\ûÜ¥S§NX,¾ýö[ç¶ËÖ;wÆ××—­[·–zìmÛ¶9ŸÿðÃìß¿¿@rè—J²¿¿¿?§NýüßÂîÝ» œ[I¯gié‘*@É©¢ÎÿÅQß&ÿã¥z@ ø—‡âñ´ƒ@807'''gíÚµÜÿýDEEqß}÷±dÉ’üÛ†¯ºKÐ÷d ¨sÙ¶-€/ŽDªˆ\£®»î:úöíËã?Α#Gؼys±·ªÎÌÌ$##ƒž={R¿~}RRRJT`ýºë®ãÎ;ïä¯ý+/^äèÑ£ {yy1|øp}ôQ>ùäìv;{öìáøñã.ýᇒœœÌÉ“'ùÓŸþDçÎñ÷÷/4¦’ìß¿V¬XAvv6ÇŽcáŸWÓ–æz––~é©N:E×®]‹|̘1ƒo¼1ÿÖŒc€{<¶ˆ+ògÕtÌûjËûúŽ;äˆ\«þ<ˆã¶ÜñÀ`Ž%[Ó€¶À]À7%ìw?Ž%YçqïéžE¤ª›?>mÚ´!,,ŒGy„ûï¿__ßB÷oÒ¤ ùË_6lÝ»wgÊ”)Œ=ºDc¾úê«X­V~ýë_3dÈî½÷ÞíO?ý4£FbÆŒøúúKff¦ËcÿéObîܹtèÐ믿ž+VOIö‹‹£nݺtìØ‘ÁƒóÛßþ¶@{I¯gi© `ÙåÏÓr÷µ4€ËSÐD¤êÊÎÎ.´ÆÁÕÌœ93ú|Ž™7"•™ ÇžY€pÇ]¦†ãøUDäZ‘LÁš_mTÅ"%— Xrssó?D«TjÔ¨1†’Æ7kÖ,¾ùæç­¿«š   ž~úi\üΥؿ¤Ü}=ÏŸ?OݺuñrKo""RjÞÞÞ„„„¸¼ÿ 7ÜPŽÑˆ¸]:ðŽåQ਱qXã©€DDDJ˕Ⳟàêþ;vì aÆ´lÙ’uëÖñæ›oòôÓO—stÕWE]O%nDDD¤¼}€#q“ Ô>Á±ŒCDD¤JÙ¹s§§C(“£G2tèPΞ=Kxx8O>ù$ôtXUVE]O%nDDD¤¼ýGÍŽº—½©JÜ=Õf`Ù±c‡[—^××!C2dˆÛÆó´ÔÔ’­6,éþÅ©n׳:3ü\çÆíý–§=zäÇnÍĉÍþýûÝ>Θ1cÌÃ?ìö~#""œñç?^|ñÅõ±råJèöØ.÷÷¿ÿÝtêÔÉ4jÔÈÄÇÇ—ëXrm?~|þ¿ùñåðÞ#R^áøwkšz8OH¦àï®Až G<,0¹¹¹žþÕR*±ÌÌLÝUê7cÆ ²³³Y¾|9©©©L:ÕícÄÄÄ”Kò£>"33“nݺ1cÆ 233ùÃþàöqÊjæÌ™$&&rúôi^}õUO‡#"â)ù5mv'=ˆˆˆˆHU¢ÄÍ5®FxyyÑ¡C&L˜ÀªU«ÈÊÊàìÙ³¼ð ´mÛ–>}ú°bÅ rssÇfeeOëÖ­iÔ¨½zõâüùŸK¼õÖ[Øl6ÈÊ•+ Œ›™™ÉÍ7ßÌ’%KœÛî¾ûnÆŽërì>>>X­VjÔ¨A­Zµ°Z­x{{;ÛÃÂÂHHH W¯^´nÝš„„²³wžMIIÁf³1~üx<ˆÍfÃf³‘””ä<þÂ… ,Z´ˆ=zÐ¥K-ZÄ¥K— ÄɳÏ>˽÷ÞKË–-iÑ¢)))€cÚœÍfcïÞ½Lœ8›ÍƤI“œÇ.X°€víÚaµZiÕª3gÎÄn·è×®]<øàƒÜxã´jÕŠÅ‹—(>‘J$9ïëÊ"÷q³*½Tê±Ç3ÆsêÔ)sÏ=÷˜¾}û:Ûzè!Ó§OsðàA³~ýzãççgþõ¯9Û_~ùeÓ»wo“‘‘a²³³Í¦M›Ì… ®§°¥R»ví2760¯¾úª ¾êñÅ 5³fͺêö:˜ãÇ›³gÏš›nºÉlÞ¼¹À>E-•JHH0fïÞ½&%%ÅtïÞÝ,Y²¤À>wÜq‡ùÕ¯~e–-[f.]ºdN:eN:U`Ÿ¦M›^1®1ƼñÆfçÎæÒ¥KfË–-¦aÆ&))ÉÙ~âÄ S»vm3wî\“‘‘aŽ9bÞÿýÅ'Õ“–JIUøhåé@DD}z‰ŽgòäÉ4nܘš5k:·gdd°ÿ~‚ƒƒÛ:tèÀòå˯ãââøé§Ÿ9r$§N">>ž'žx¢@?Å5jÓ¦M#""‚  ÷èà|nµZ9}ú´KÇ¥¥¥qøðaFåÜf·ÛñòºòG&?‘URÛ·ogáÂ…lݺ•óçÏ“‘‘áLlܸ‘=z”9>‘2 ñtRíø{:©ÔÖýPòFDDÄIåUqÛ¶m+ÓñV«•¦M¯¼¹Gƒ hÓ¦ {öìq&?¾úê+ºwï^àØÄÄDÙ½{7½{÷¦W¯^Üyç.GTTÛ¶mãí·ßfĈe:Ÿ’òòò*P·'_ëÖ­±Ùl|ðÁ’WWSšYBv»ØØX&NœÈœ9s¨S§ÇǘŸWÝõîÝ›÷ßÿªÇ—$>wøì3M¼‘òóñÇóä“Oòã?†¡äˆˆHJÜ”]†§(/ `Þ¼ysèÐ!Ö¬YÃÛo¿íl_³f P»vmrssiÞ¼¹ËýÏŸ?Ÿ;w²k×.öìÙCTT!!!ºtü¥K—ÈÍÍÅCNN/^ÄÛÛ»D3~BCCIOOçÛo¿å¦›nrn·X,Œ1‚©S§òÄOбcGÒÒÒ8pà p¹ÿÂdeeqòäI"""¨S§{öìaÕªUÄÄÄ8÷>|8úÓŸxå•Wˆ‰‰áÂ… ìܹ“ßüæ7åŸÈ/…„h∔ŸcÇŽÑ£G¾ûî;öîÝl"3žLDDÄótW©²k˜÷¨v¦OŸNdd$QQQ<õÔSÌ™3§@›ÔÔT"##ñõõ%66–G}ÔYo {÷îØl6–-[FRR6›Í9ç‹/¾ !!wÞy‡:uêÊ”)S¸çž{œwµ*Nß¾}ñññáÓO?eæÌ™øøøðÒK/•è›4iBbb"ýúõÃßߟùóç;Û:t(“'OÆ××—èèhNœ8Q¢þ cµZ™7oãÆ#44”©S§2|øðûøùù±yófRRR ",,¬ÀR¯òŒODD¤¢Õ®]›7rË-·t6<•ˆˆˆçY<€Ê–Έˆ€c‰á‚ â€å<œÞ‹D¤Ü}ðÁ$%%±jÕ*Nž<ÉwÜÁÞ½{¾@3o¤úH]öº-ê¡XÄórKnn.‹þ,—«;þú(±±±œ={–×_… âïïO||bܸq>|˜5jpá–-[ÆÂ… ÉÊÊb„ W$ "##éÛ·/Ÿþ9Û¶mÃn·³víZú÷ïÏ… ÈÈÈÀf³0mÚ4ÆçÒ¹wêÔ‰>ûì3jÕªE\\±±±x{{»tþYYYLš4‰ 6‘‘Á-·Üš5k°Z­¼õÖ[L›63gÎG=œcgffÒ¥K}ôQFÀÝwßMƒ X¸pa±±§¤¤{þÅÅ_œ¢â‡¢¿ÿ®ÄW–ï»víŠ`Á‚Ì™3‡Ã‡Ó´iSFÍôéÓ©Y³¦Kç~~*b|‘ê",,Œ?þØåý»víª;±Huðwࢧƒ—i´ˆ\Á¦<8qÂÔ®]ÛÌ;×ddd˜#GŽ˜÷ßßÙþÐC™>}ú˜ƒšõë×???ó¯ýËÙj:tè`Ž?nΞ=knºé&³yófg{`` yï½÷œ¯Geyäçë„„aöîÝkRRRL÷îÝÍ’%K ÄxÇw˜_ýêWfÙ²eæÒ¥KæÔ©SæÔ©SÎö•+WšÀÀÀRÇŽMpp°ùî»ïÌ©S§Lhh¨Yºt©ËçÿòË/›Þ½{›ŒŒ “m6mÚd.\¸pÅ8cÆŒ1?üðÛwíÚe7nl8`^}õU|Õã‹RÔù¿« ‹¿¸ïqñ•õû_Üøo¼ñÝÿ8 IDAT†Ù¹s§¹té’Ù²e‹iذ¡IJJ*Ðÿ¾}ûJýsVÜÏ;Æ/¬}üøñ&ï=b|ux/)©ü÷Á7¾ßÉë³øOPDJ'™¼ÿWõ¨ºÜÜ\O¿^•Åb©ÔñIédffÀhÆÍ5lÙ²e„‡‡3aÂ|}}ñ÷÷w¶¯^½šçž{Ž€€èß¿?«W¯æ¶Ûnsî3hÐ üüüèÙ³'›6m¢gÏž€c‰Í;ï¼ÃСC¹xñ"ÉÉÉüûßÿÀûï¾ËÒ¥Ki×®qqq¬\¹’‘#Gˆ³k×® 6 €ÆÝ{‡Î¨¨¨üµòÜu×]¬]»–˜˜—Î?++‹sçΑ––FHH%»sçÎÌœ9“Áƒóý÷ßóïÿÛ9;É\ùþ•UQßÿ¢¸ëû_Ôøù3_ÂÃÃ‰ŠŠb÷îÝ¥<Ó+÷óSÞ㋈ˆH•ó0°ø0ïõP ÝcÑHIí@³nÄC”¸©âÂÂÂØ¾};³fÍbúôé.»qãÆ+–¿äËÈÈ`ÿþý;·uèÐåË—Ø/ ÀùÜjµrúôiçë#Fðç?ÿ™ÌÌLÖ­[GóæÍéÔ©iii>|عLÀn·ãåuå?Iw&~éæ›o.ðüÍ7ß\;ÿ¸¸8~úé'FŽÉ©S§ˆç‰'ž(ÑR˜Q£F1mÚ4"""ÜZÄ×Õï_Yõý/Š»¾ÿE¿}ûv.\ÈÖ­[9þ<Î;õóSãW'={ödË–-¶õèуÿüç?ŠÈuO?ý4S§NeÁ‚Îe€ `Íš5ìÛ·¯Òç®hÉÉÉL™2…ÔÔTO‡""âIK—½Þ èQDŠ¥»JUqÛ¶mÃ1¦DI€Þ½{_ñÇR¾ ЦMöìÙãÜöÕW_ѽ{w—ûoÕª;vdåÊ•¼óÎ;Ι,­[·Æf³±zõjÒÓÓIOOçÈ‘#|óÍ7WôSÔ,///rss]Žé—.Ÿ±{÷n~ýë_®¿Õj%11‘ÔÔT6mÚÄ‚ ذaC‰Æ‹‹#**Н¾úŠ·ß~»Äñvþîøþ¹Cañ¹ëû_»ÝNll,;wfûöí¤§§Ó¯_?Œ1ö˯‡“““Sâ1Šúùq×øe‰¯ª™:u*™™™ÎGIj]xZPPï¼óà¸+Α#G<‘ˆˆˆˆT'JÜ\ÆÎÿû_^yåÎ;ÇñãÇY½zµ³}À€Ì›7C‡±aÃÖ¬YÀJ4FLL III|ôÑGŒ1¹Ýb±0bĦNÊçŸNnn.û÷ïçÃ?,¢·+…††’žžÎ·ß~[¢ãò­ZµŠ-[¶°k×.Þ{ï=¢¢¢œmÅÿš5k8xð Æj×®Mnn.Í›7wyìùóç³sçN’’’xçwxàøúë¯KQçïŽï_YŸ»¾ÿ…ÉÊÊâäÉ“DDDP§NöìÙêU«®Ø/ €æÍ›“œœ\â1Šúùq×øe‰¯ª©U«V«ÕùøeÂ.22’gŸ}–{ï½—–-[Ò¢E RRR\j?{ö,/¼ðmÛ¶¥OŸ>¬X±âŠ„bqý¥U«V\¼x‘£G²|ùrî¹çží , ]»vX­VZµjÅÌ™3±ÛíÎö°°0èÕ«­[·&!!ììl—?uêS¦LÁÏÏ!C†] ‘áÂ-ZD=èÒ¥ ‹-âÒ%ǾÉÉÉD—.]xì±ÇhÖ¬sæÌqéøââOIIÁf³1~üx<ˆÍfÃf³‘””äÒµ©Ì*¤ è§Ÿ~jþð‡????Ó¢E ³hÑ"gÛ™3gÌ3ÏcLñ…ªËZh{ذaæî»ï6GŽ1ûÛߌÅb1Ó¦Ms¶U|åÊ•Æf³™“'OšN:™ûî»Ï¤¦¦šë¯¿Þù~Q\!ñ²*) '–*¬9?ºÕzÚª%—J\üWʼn«§üâÄ*®TyàŠ¥â>:ubÊ”)üö·¿õt("%Ç‚ âp9,Oåþ^Ô³gOvíÚÅõ×_ïÜ6vìXž~úiçëÈÈHj×®]謬¢Úyî¹ç8p cÆŒ¡Aƒ<ÿüó.÷_˜§Ÿ~šÿüç?¼þúëtïÞn¸O>ùooïBkÜŒ9’Fñ׿þpÌXéÛ·/O<ñ„³=((¨Ð寗o·Ûiܸ1k×®%44p̺÷Þ{yòÉ'1Æ`³ÙXºt)·Þz+‹/fÕªU¬X±‚ääd^zé%6nÜȰaøõÖ[™0aµjÕâÔ©SÔ«W¯Èã]_5nÄÝ.»xWÀ]÷ƒ#ió:0ÖM}ŠüRsàpÞ󶍯MU’ XBBÜ™/vŸ¼÷Drss±Xôg~uqþüyêÖ­«âÄ""Rve)”ÏC=ä|mµZ¯Ø§¸BåWk/I¡î²BoÚ´)}ûö½ê]Õ\)T]ÚBÛ_ý5gÏž¥}ûöÎýo¹åçsW ç×RªU«Vç/^äûï¿w©xi •‹ˆˆT5ù ‘ФÄMÙ5ÈûšáÑ(DDßå…Êoºé&—©DÊeªMHHˆ’-R,ÝUJDD|¸Âf‰ˆˆˆHùSâFÊlÅŠtîÜ™Æsÿý÷—èØäää«Þ.·"•Wüaaa¼ñÆnˆ°|øûûãçç§ ¿HwäÈ"##iÚ´)‹/&99™Zµjy:,‘ªh9Ð ˜êé@DDD.§âÄRf3gÎdÆŒÜsÏ=ž¥Tªzü¥uôèQRSSiÛ¶­§C‘2ˆŽŽ&::ÚÓaˆT™y‘JE3n®aYYYÄÇÇÓºuk5jD¯^½8þ¼³}Á‚´k׫ÕJ«V­˜9s&v»ÝÙ>dÈl6{÷îeâĉØl6&Mšäl¿pá‹-¢GtéÒ…E‹qéÒ%RRR°ÙlŒ?žƒb³Ù°Ùl$%%ššJ­Zµ8s挳¿]»vQ§Nþ÷¿ÿ¹t~gÏžå…^ mÛ¶ôéÓ‡+V¸mqñ¥¸øó}÷ÝwÜvÛmøùù‘@vv¶K×Ç¿œÑÏÿøÇûDFFòì³Ïrï½÷Ò²eKZ´hAJJŠËcˆˆˆˆˆˆˆgiÆÍ5lÑ¢E8p€Ï>û «ÕÊ–-[¨Y³¦³½víÚ,]º”öíÛ³cÇîºë.š5kÆØ±Žz}+W®ÀÏÏ÷Þ{ž={èæÌ™lß¾¤¤$, cÆŒÁÛÛ›‘#GÒ®];ÒÓÓINNfÊ”)¤¦¬ËD—.]X¶lÿ÷ÿÀÒ¥K‰ŽŽ¦^½z.߬Y³Ø½{7~ø!dôèÑ4jÔˆÛn»Í¥ø‹R\üù/^Ì¢E‹¨W¯‘‘‘ 8Ð9NQ×Ç^xá^zé%Þ|óMÎ;çÖ¾EDDDDD¤|iÆÍ5,++‹sçΑ––FÍš5‰ˆˆÀÇÇÇÙK—.]ðöö&<<œ¨¨(vïÞíR߯Þ}÷]fÍšE»víhÛ¶-qqqÎd‰+~÷»ß±dÉìv;ï¾û.÷ÝwŸËǯ^½šx€€€úôéCÿþýY½zµËǻàAƒèÑ£íÛ·'""‚M›6î¹>®êÚµ+Æ ÃÛÛ›ÆÓ¸qc·!""""""åC‰›*.,, ‹Å‚ÅbáÉ'Ÿ,ѱqqqDGG3räH7nÌ´iÓ ,…Ú¾};ãÆ#88›ÍÆ|À… \ê;--Ç3jÔ(ç2¢éÓ§³k×.—ãûíoË—_~IZZ7nÄÛÛ›Þ½{»tlFFû÷ï'88ع­C‡lݺÕåñÝá–[nq>oذ!§OŸÜs}\•?ÃH¤2:}ú4‹…/¾øÂ¹íÉ'Ÿ$,, pÔbÊóññ¡_¿~¼òÊ+úøíoëœ X¹£P¸+…ÞÇŽË#}ºÄ³Q À¼yóæÐ¡C¬Y³†·ß~»D}§¸ø ãêõ)J¯^½Ø°añññ8p€-[¶”8 @óæÍINNfèС%:V¤"Õ¬Y“ºuë2lØ0^zé%–.]êÖÄMdd$}ûöåóÏ?gÛ¶mØívÖ®]K»ví¸páË–-cáÂ…dee1a„I¬¬,&MšÄ† ÈÈÈà–[naÍš5X­VÀQ(ýõ×_gáÂ…øûûÏ!C¨QõI¯aaaÄÇÇ;—ŠÆÇÇsÝu×1gÎRRRèß¿?.\ ##›ÍÀ´iÓ7no½õÓ¦MãÌ™3ÄÅÅÑ£Gý_XX½zõbÛ¶m;vŒèèhfÏžíLüŠˆˆHéU—¢¤|äOPâæ–ššÊþð~øáÚµkÇ£>J»víÇlœyóæ1nÜ8ìv;¿úÕ¯>|x‰úOLLäïÿ;“'OæÓO?¥E‹Wܵ©I“&$&&Ò¯_?233™1cqqqÎöÈÈH²³³ ¦uëÖ%úôé,\¸¨¨(š5kÆœ9sˆˆˆ(QÅ).þ¢¸r}Š2räHöìÙCpp0 4¨Äñ[,^|ñEž|òIî»ï>žzê)&NœXâ~D*Ê—_~ÉÎ;Kô³âªÂ yWH¼¸BïÅJ/ W ¥ÇÄÄSèr2Wâ[·nëÖ­ÃÇLJŽ;(´."""¥·sçNO‡ U€7×°‡zˆ‡z¨Ðöü_ö‹sâĉ«n¯S§±±±ÄÆÆyüã?Îã?~Õ¶5jФIF]l¿Ô°aCHHH(r¿ÂâwUañÿrÛk¯½V൫ק0þþþ,]º´È}6lØPl?wß}7wß}w©b©(·Þz+v»¬¬,çæÜ-¿7à,â_H|éÒ¥ÎÄv~!ñüÄÍå…ÞCBB®H¯^½šçž{Ž€€œ…Ò+Ký)Wâ4h~~~ôìÙ“M›6)q#""R6šj#.SâF*µüã8p€{ï½×Ó¡ˆHÂÂÂØ¾};à˜Á1}út—Ž+¬¶Ò/·¯\¹’&Mš0{ölþüç?3xðà³ZÜáj‰”Ë ‰ç³Ûíâ‹‹‹ã§Ÿ~bäÈ‘œ:uŠøøxžxâ jÖ¬Yh¡ôåË—»5öÒr5¾üZaà˜‘™_h]DDDJMSmÄeº«”TZ]»veâĉ,^¼˜úõë{:)¶mÛ0Æ`Œq9iŽ"ä^^^äää8·ýôÓO4mÚ´À~7&00ùóçsîÜ9^~ùe·Åžïj…¼ó ‰¯^½šôôtÒÓÓ9räß|ósŸüBï©©©lÚ´‰ 8g»]^(=ßÕ ¥_^(ü—®Vˆü—J[(ÝÕøDDDDÄs”¸‘Jë³Ï>ãèÑ£å²$BD*‹ÅB×®]Y°`¤¥¥‘œœL×®]¯º¿Ó§Oç©§žâÂ… Îív»‹/x¸+¾üBâŸþ9¹¹¹ìß¿Ÿ?üйϚ5k8xð Æ˜+ ½ÃÏ…Ò:Ć X³fÍEÈ//þKù…ÈsrrØ·o[¶l¹bŸË ¥—”+ñ‰ˆˆˆˆç(q#""µdÉÒÓÓiÑ¢áááÜzë­<üðÃ…îÃu×]Ç«¯¾êÜöÆoàããSàqôèQ·Ä—˜˜ÈСC™EÅŸ’’‚Ífcüøñ|˜Q£F9·Ùív¼¼\ÿ‘ñöö V­Zž_¼x‘úõë»t}œÏ­V+§OŸv¾.êø¯¿þš³gÏÒ¾}{çþ·ÜrK‰Î¯¨ø¿ÿþ{—®OQñ‹äëÙ³'[¶l 00;3x€›o¾pÏÉÉáäÉ“åz[ò±cÇâëëËóÏ?ïÖ~+*þ|#GŽÄf³ñä“O^µ}èСóøã»e¼Êv~"eP{:‘ËiÆM·mÛ6Œ1cJ•´Éÿƒ<''§Àö ЦMöìÙãÜöÕW_ѽ{wçëÞ½{;ÿØú%»ÝNll,;wfûöí¤§§Ó¯_¿+~©/lüŠRØø­[·Æf³±zõjÒÓÓIOOçÈ‘#|óÍ7eÓãòõ)LqÇâëëËÞ½{Ç\þ¼,çgŒqÛõñòòº¢n’\›f̘Avv6Ë—/'55•©S§:ÛŽ=Z!³µbbb2dˆÛû­¨ø]±ÿ~Ö¯_Ï„ ÜÖge:?‘êH‰›k\@@Í›7'99ùж0oÞ<:Ć X³f  p¶>œÿþ÷¿¼òÊ+œ;wŽãÇ;—ReeeqòäI"""¨S§{öìaÕªU%¿"6¾ÅbaĈL:•Ï?ÿœÜÜ\öïßχ~è–q]½>¥=¾fÍšôíÛ—_|‘“'O²dÉÒÓÓÝv~îº>¡¡¡¤§§óí·ß–è8©~jÔ¨——:t`„ ¬ZµŠ¬¬,—Ž ã7Þp¾Žçü£óuq…º‹+d^\¡ð²*®|q…ÈOž<é<¿»îºË¹ójž}öY~ÿûßÓ¨Q£çWÔõ+ëùWäù‰ˆˆˆTGJÜ\ã, /¾ø"³gÏÆjµ2wî\gÛôéÓ‰ŒŒ$**ЧžzŠ9sæál÷óócóæÍ¤¤¤DXX˜s)ŒÕjeÞ¼yŒ7ŽÐÐP¦NÊðáÃK4~YuïÞ›ÍƲeËHJJÂf³qçwº<~bb"C‡eòäÉøúú͉'Ü›«×§,ÇÏ;—f͚ѱcG’““xàÒÒÒøì³Ï8pà‰Ú˜˜ÒÓÓ‹ü\·nË—/gçÎ,_¾Ü¹DÕf͚źuëøðÃIHHààßÿþ·³½víÚ,]º”ŒŒ –,YÂܹsY´h‘³}„ oÞ<, :ubúôéÜvÛmÚ_ýu ¿jlÅ]¿Ê~~""""ÕÅÓH¡ àœ..{clÀ IDAT"’/..Ž Ä Êy¸j÷^Ô±cGžþùÿoïÞ£´ªëý¿'04I$IGÇdÀPÔ5,Ã29y/)xK;àYTxI©¼tᘚrÌ–©ii¥ö〥¦DéZ]¡-Käp¤PPôxÏñ½¾{ïvØaÕne“[³fMöÚk¯\sÍ5Í«\ 3=ûï¿vÚi§œuÖY›uì™3g¦ÿþ-îÓÙçªÉŠªnúôéùô§??ýéO9á„R__ŸSO=µ]5ÆŽÛâÝ¢ZÛž$‹-ʬY³rÝu×µklª¯-Ÿï–ìâ‹/ÎW¿úÕwÜqÕnåuöù€j²â€ª{×»Þ•m¶Ù&p@FŽ™ÿ÷oÞöÜsÏåüóÏOŸ>}òéO:¯¼òÊzÇþä'?I]]]Ž<òÈ̘1ãmµ[ÛþV—]vY>ûÙÏæ}ï{_›úž?~vØa‡¬\¹²ù½_ýêW©­­ÍÚµk“$+V¬ÈW\‘ä°ÃËôéÓ›·Íœ93LÿþýsÀäë_ÿzvÝu×\uÕUëóðÃgâĉÙe—]²çž{æG?úQó¶•+Wf„ ùà?˜÷½ï}1bDþö·¿µ©ÿ¶Ôo©ÿ$6lXÎ=÷ÜŒ1"üàsî¹çfõêÕmžŸW_}57ÝtS:è pÀ¹é¦›ò÷¿ÿ½Mõ“Ö?ߎÖom~Z«ßÑÏç˜cŽI]]]{ì±|á _H]]]¾øÅ/®×ÿÍ7ßÜüz„ ™4iRE~¿ ¤®®.ÿüÏÿœÅ‹§®®.uuu¹þúë›mmþ;òý©Äü$I±îÐIŠM©[·nÅŒ3еk×óæÍ+êêêŠË/¿¼yûqÇW{ì±ÅÓO?]\{íµE’â /|[3Î8£øò—¿¼ÁqZÛþôÓOÛo¿}ñä“O¶«ÿ†††âç?ÿyóë“O>¹˜ûlÑ­[·bÚ´iESSS±téÒâÎ;ïl®ÿ½ï}¯8ôÐC‹¦¦¦bõêÕÅ|xqË-·´¹þ›6ôùv´~kóÓZýŽ~>oÚyçßñ÷:thqÓM75¿?~|1qâÄŠý~EñÆ÷´¡¡¡Åþ64ÿýþlhþßü÷WcÿÞ½7I}’Þ¬ ÿh·üßÿ?´|"À:VÜPuÇsLó5nFŒѼ¢`Íš5ùõ¯É“'g—]vÉYg•ÝvÛm“ôpå•Wf̘1Ù}÷ÝÛuÜØ±có³Ÿý,I²jժ̜93cÇŽmÞ~×]wåóŸÿ|êëësØa‡åˆ#ŽÈ]wÝÕ¼½¾¾>ïÿû³×^{å€HCCCV¯^ݼ²èöÛoϘ³Ï>;={öLmmmŽ<òÈæãW®\™—_~9O<ñDºté’C9$Ûm·]›ûo­~ký'ÉQG•>}ú¤G9øàƒóÀ´i~Š¢Èm·Ý–K/½4{ï½w ñãÇ¿måFKõ[R‰ú-ÍO[êwôó©„ýý*¡£ßŸÍ<¯$ùK’ç7Õ°1\ã€6lX~÷»ß%I.½ôÒw¼xpKf̘‘£Ž:*=öX¦L™’O<1·ß~{-Z”+VdŸ}öiÞw¿ýö«hïIÒÔԔ믿>=ôP»=餓òío;¯¼òJî»ï¾ì¶ÛnÍ=655eÑ¢E8p`óþûî»oî¸ãŽæ×Ûl³M’äÝï~÷zÏW­Z•=zä7¿ùM:è  Ž?~üø¼öÚk7n\žþùL˜0!—\rIºtéÒ¦þ[ªß–þ“7§7uïÞ=/¼ðBóë–æç‰'žÈSO=•“O>¹yÿ×_=]»®ÿÏ“–ê·¤õ[šŸ¶ÔïèçS ûûuT%¾?š?ØšXq@‡Í;7EQ¤(Šv‡6oª©©ÉÀsöÙggæÌ™yíµ×Ò¯_¿ôèÑ#‹/nÞoÑ¢E•j»Ù÷¾÷½rÈ!ùЇ>Ôîc÷ÜsÏ 4(3fÌÈÏ~ö³õVÛì¸ãŽéׯ_þüç?7¿÷è£føðá­Ö-Š7ÎÂ=ôÐCóàƒnp¿îÝ»ç‚ .ÈÂ… óÀä?øAfÏžÝæþ[ªß‘þßÔÒü|ðƒL]]]îºë®,Y²$K–,ÉÒ¥Kó׿þµÍõ[R‰ú-ÍO[êwôóiM¯^½Ö»æËO<Ñ®ã[û~%I×®]×».M[Uâû³©ç¶‚ªníÚµY½zuüñÜxã9rdºuë–®]»fäÈ‘¹å–[òúë¯çÁ¬xp³råÊL›6-çŸþF×;vl®¿þúüêW¿ÊI'´Þ¶Q£Fåšk®É_þò—Ìž=;÷ÜsOFÕæÚ'œpBzè¡\{íµyùå—³|ùòõN5¹çž{²xñâE‘nݺeíÚµí:¬µúí?ÙðüÔÔÔ䤓NÊW¾ò•<òÈ#Y»vm-Z”»ï¾»]õ7¤õ[šŸ¶ÔïèçÓš#FdöìÙY³fMüñVC˜öü~o:th–,Y’'Ÿ|²Ýýuôû³©ç¶‚ªn̘1éÖ­[ÆŒ“îÝ»çòË/oÞvÍ5פ¦¦&ûí·_¦L™’~ô£ë;|øðÔÕÕåöÛoÏõ×_Ÿººº|ò“Ÿlóöo¼1 9ðÀ7ºÿN8!sçÎÍþûººõ¶M™2%#GŽÌ§>õ©|ë[ßÊUW]•C9¤Íµûôé“9sædÁ‚éß¿† ¶Þ©$ .ÌÈ‘#Ó³gÏœzê©ùÚ×¾–½÷Þ»bõ;ÚÒòü\pÁ9öØcsÎ9ç¤gÏž=ztž}öÙ6×níóíhýÖæ§µúý|Z3nܸtïÞ=Ìù矟£Ž:ª]Ç·öû%IïÞ½sÁäðÃOmmm®»îºæm­ÍG¿?›zþ`KPSí:7ï(e.ΨHþï´ÎfÍš5Ùk¯½rÍ5×´{ P=ƒÎüùó“dp’ùUnÚc·$O­{> ÉÂ*öl!¬¸`«õôÓOg„ BJKpÀV«oß¾9ï¼óªÝlà ¤7%%¸()Á @I n¨ªÚÚÚôéÓ'555UíãÌ3ÏÌäÉ“«6þôéÓ³ÿþûg§vÊYgµYÇž9sfú÷ïßâ>Õž€­U×j7ÀÖmÙ²eY¸pa PÕ>ÆŽ›w¿ûÝUÿâ‹/ÎW¿úÕwÜqUë¡%Õž€­•à¦ãšªÝ@g¶bÅŠÜxã¹á†R[[› &ä˜cŽÉ»ÞõÆ¢ÑçŸ>W\qEn¾ùæ ><555Ù{ï½óo|£MÛò“Ÿä /Ì‹/¾˜ñãÇç ƒZoüaÆeĈ™;wnžy晌=:ßüæ7³Í6Û´©~kŽ9æ˜<òÈ#Yºti¾ð…/äœsÎÉ1Ç“ï~÷»ÍãO˜0!§vZ’d„ ÙvÛmsÕUWµ©¿$yøá‡ó£ý(?ÿùϳÝvÛåk_ûZN=õÔ,X° GqD^}õÕ455¥®®.Irá…æsŸû\›æ§µÏ§µþV®\™/~ñ‹™={všššò¡}(÷ÜsOºwïÞ¦ù€-м$Õ]jL¼äðj7À–¯HRlj?þøÇùÒ—¾TvØaÅâÅ‹‹Y³f}úô)î¿ÿþæíÇ|1f̘bé񴁿̢¦¦¦¸ð ۼýMgœqFñå/ùmï:´Øwß}‹åË—+V¬(úöí[Ì™3§Ýõ[³óÎ;¯W÷­ãßtÓMͯÇ_Lœ8±Íý=ûì³E·nÝŠiÓ¦MMMÅÒ¥K‹;ï¼s½1f̘Q444´Øß†æ§µÏ§µþ¾÷½ï‡zhÑÔÔT¬^½ºxàŠW_}µÅ^ ±±±X÷÷©±º"¡Ýv˺ÿ¶&iùU:³µù¿ïÇÖûx&mdÅ ¥v×]wå;ßùNêëëS__Ÿ#Ž8"wÝuW>úÑæõ×_ϬY³rï½÷¦¶¶6§Ÿ~úz+]ZÛÞVGuTúôé“$9øàƒóÀäàƒ®XýŽÚPIrûí·çÀÌÙgŸ$éÙ³gjkk+6vKŸO[ú[¹re^~ùå<ñÄillÌ!‡R±Þ ÌæÍ›Wõkü±ù½ð 9üðö-´ÜÐaÆ Ëï~÷»$É¥—^š)S¦T¤nSSS-Z”6¿·ï¾ûæŽ;îH’üçþgV¬X‘}öÙ§yû‡>ô¡æç­mo«úúúæçÝ»wÏ /¼PÑúµ¡þ’ä7¿ùÍÛNoª”Ö>Ÿ¶ô7~üø¼öÚk7n\žþùL˜0!—\rIºté²Iz€²hllÜl…–/_ÞîcÜU €›;wnŠ¢HQÚ¼y½“5kÖ¬÷þŽ;î˜~ýúåÏþsó{>úh†ž$ihhHÏž=óØc5oëóÖ¶wÔ¦®Ÿ$½zõÊßþö·æ×O<ñD»Ž?ôÐCóàƒ¶¸O×®]³víÚv÷ÖÚçÓÝ»wÏ\… æÈ~ðƒÌž=»Ý½tV‚ª®¾¾>»í¶[fΜù¶m£FÊ5×\“¿üå/™={vî¹çžŒ5*IÒ¥K—|âŸÈw¿ûÝ<÷Üs¹å–[²dÉ’æc[ÛÞQ›º~’Œ1"³gÏΚ5kòøã·Âü£N8!=ôP®½öÚ¼üòËY¾|yîºë®õö:th–,Y’'Ÿ|²Ýýµôù´Å=÷ܓŋ§(ŠtëÖ-k×®Ín»íÖî> ŽK²8ÉÔj7o%¸ êjjjòÝï~7ßüæ7Ó½{÷L›6­yÛ”)S2räÈ|êSŸÊ·¾õ­\uÕUë]eÚ´iÙu×]3hР̜93G}tºvíÚæíÇO]]]n¿ýö\ýõ©««Ë'?ùÉ6÷ÞZýŽ7n\ºwïžæüóÏÏQGÕ®ãûôé“9sædÁ‚éß¿† ¶Þ©JIÒ»wï\pÁ9üðÃS[[›ë®»®y[kóÓÚçÓš… fäÈ‘éÙ³gN=õÔ|ík_ËÞ{ïÝ®ß*d‡$õIvªv#ðVN¨ %E’EQí>ÚlРA¹üòËsØa‡mÔöM=>ÐqƒÎüùó“dp’ù*{F’’ܘäÌ Õ„´[’§Ö=da{¡zÖ&©Y»v­kÜl…–/_ž]vÙ%I–'Ù¥-ÇXqÀmÞ¼yY´hQŠ¢È½÷Þ›§žzj½­mßÔã@G¸«[´¥K—f̘1YµjU>þñgæÌ™y÷»ßÝæí›z|èë²hÉwªÐù9UŠ-˜S¥Hœ*µUsª@'"¸()Á @I¹81lؼTöú°5I2dÈ –|ãN—®™Ó9 nhÕàÁƒ«Ý@³Ç¼Ú-[—Æl‚û¬»È:´Jp@«üÃØÚ•uEË!CÜ´“ÜÐKm€2³ôØlKÜl ÎHR$¹¡ÚЩí–7¾gE’þUî…¶[›¤X»vmQF555E%ú{òÉ'‹üãEŸ>}Š#<²MÇ466·ÜrK»ÆY²dI1räÈâýïqä‘G¿üå/‹=÷ÜscZn“éqSÖ{æ™gÞüðL[¿€VÜÀVîºë®KŸ>}òë_ÿz“¬,*Š"kÖ¬É~ðƒì¼óÎyöÙgSSS“%K–䢋.ªøx›Ê¹çž›ýöÛo³Žévà·ãº”Ò‹/¾˜‹.º(µµµ9ðÀsë­·¦{÷îI’3Î8#Ó¦MË/ùËì±Çùá˜$¹òÊ+ÓÐÐ=zdÔ¨QùéOÚ®1û÷S§æCÉÞ{ïþýû¯7N]]]†º^pÓÔÔ”«¯¾:ûì³O>øàüøÇ?Îk¯½Öâ—^ziFŒ‘}÷Ý7_üâ³lÙ² îß§OŸüÇüGóë?üáÍóÐÚ<%Ée—]–ßÿþ÷ëÿ¯ÿú¯ùØÇ>–†††œvÚiyâ‰'Ú5O­±â¦ã^Z÷ÓÉŽ”Òç>÷¹tíÚ5=ôP–,Y’ÏþóÍÛn¼ñÆÔÔÔ¤gÏž¹üò˛߯­­Í½÷Þ›ÚÚÚÌš5+'žxbœ~ýúµyÜn¸!Ó§OÏ Aƒ’$gžyæzãÜu×]™4iRóþgŸ}v^|ñÅüüç?ÏK/½”ù—Éÿ÷gòäÉ㦛nÊÝwß½öÚ+—]vYF½^¸Ò-ÍÓ†Ü|óÍùÅ/~‘úúúœsÎ9™:ujn¸¡rgÞZqتU«2kÖ¬\|ñÅÙ}÷Ý3bĈŒ7®ÕãŽ?þøì±ÇÙf›m2jÔ¨Œ=:Ó§OoרcÆŒimZó÷¿ÿ=¿üå/s饗¦ÿþ9ðÀ3qâÄÜqÇ-wôÑGgÀ€éÚµk&Nœ˜G}´ÅU7²±ó4vìØìµ×^éÒ¥KN<ñÄÜsÏ=í»%‚èÄþøÇ?&I ÐüÞ!CZ=î·¿ýmN;í´ 0 »ï¾{î¼óÎ<üðÃíûÃþp›÷}ä‘G²råÊì¿ÿþÍï :4øÃò¿ÿû¿>ø`»úL6~žØü¼wïÞY¾|yÖ¬YÓîñ7DpØ~ûí—¢(òøã7¿7oÞ¼YµjUN9唌92sçÎÍSO=•c=6EQ´kì.]º´«Ïí¶Û.<òHó{¿ûÝï2xðàl¿ýöö±eôèÑùÒ—¾”³Ï>»Õ ŸwÞy™6mZöÝwß¼ç=ïiñ:<ãÇÏ{ßûÞ 4(G}t>ó™Ï¬·½½óÄ–¡X÷hÉnù¿ÿè_å^h»µIеk×eTSSSlL—\rIqúé§o¢®6Ÿ†††bÆŒ›¬~¥çé™gžyóoÀ3mýº8´¢-©­†¢×œ™7o^zõê•=öØ#÷Ýw_~üãgêÔ©›¸»-OçIp­˜?~µ[èeË–åØcÍŠ+ràæßøFŽ<òÈj·U:eœ§šªŽÞ9¼ošK %»%yjÝóIV±Ú®±Âõæ%©™7o^jj*÷¿‘•n“MaùòåÙe—]’dy’]ÚrŒ7°a›d©McccEƒ:/w•()Á @I nJJpPR‚€’Ü””à ¤7%ÕµÚ tMÕnèœ7×«Ú “à6l^’š Ö«I’!C†T°d2oÞ¼ÔÔT²MÊBpÖ˜Ê7I’ùóçWº$”àZQÖ-C† IQÕnƒMHpÉqI¦&ùy’ó«Ü PB¥ nèüÜ’’Ô'Ù©ÚÀ[ nJJpPR®q°ùý¿$«ªÝP~‚€ÍïCÕn€6sË&ªJp°y=—dTµ› ÍæU»¶n‚€ÍëïIæW» `ËàâÄ%%¸()Á @I¹Æ ´bÈ!Õná…›^uv‚hÅüù®'Mun`Ã*½Ôf^’šy󿥦¦¦bE+Y‹rÜÀ†m’¥6ÂÚÄʼn;nÇu€Š²â¦ã^Z÷ST T”7%%¸()Á @I¹Æ $w$¹?É+ÕnÞJpo6BJÇ©R%%¸()Á @I¹Æ lfC† ©v TÁêÕ«Û}Œà6³ùóçW»¶‚Ø|,µ!IÚ¼ôFp›¥6´‹‹””à ¤7%%¸()Á @I nJÊíÀ;®©Ú “à¦ãzU» srª@I nJJpPR‚HŽK²8ÉÔj7o%¸€d‡$õIvªv#ðV‚€’Ü””à ¤7%%¸()Á @I nJJpPR‚€’Ü””à ¤7%%¸()ÁMÇí¸îPQ]«Ý@'ðÒºŸ5Uí€-Õ¤$ãªÝ¥3%ɽ‚¨®]“4V» J§WbÅ ”¤I“2nœ…7[»)S¦äÞ{ïm~-¸€Øu×]ÓØháÍÖ®W¯^ë½Ü@rG’û“¼RíFà­7ðF`#´ tÜ ¤7%%¸()Á @I nJJpPR‚€’Ü”T×j7[˜IIÆU°^m’\}õÕ¹í¶Û*VtÒ¤I7®’mR ‚hŸ]“4Vºè²e˲lÙ²ŠÕ{öÙg+V‹êÜÀF(늖«®º*·ÞzkµÛ B7›×¶IFV» :d›$Ùu×]ÓØXñ…7Ö§OŸj·@ n6¯ÞI~]í&èV»Íá©§žÊg?ûÙ<öØcùð‡?œ;ï¼³Õc\Ú•Hï¤ÒýnŠß_pÓqMÕnØ"¬J2»ÚMP««ÝÀæpÝu×¥OŸ>ùõ¯šššÍ:vQY³fM¶Ùf›Í:nG{î¹Ùo¿ýªÝlÕ¾“¤øÎw¾S”ÑäÉ“‹¶ô÷ /_ÿú׋]wݵ>|xqË-·Ûo¿}QEñÙÏ~¶èÞ½{±Ã;}ûö-n¼ñÆ¢(ŠâŠ+®(úõëWì°ÃÅGQüä'?Y¯fcccqË-·lpÌýèGÅG>ò‘¢gÏžÅ>ðâÒK/mÞÖÐÐP|ûÛß.FŒQôïß¿¸ÿþû‹†††âûßÿ~qøá‡;î¸c1jÔ¨bÅŠÅ÷¿ÿý¢¡¡¡4hPqûí·op¼†††â’K.)>ò‘ûì³O1iÒ¤béÒ¥ìwçw.æÌ™ÓüzÞ¼yÍsÒÚœ½S½†††bêÔ©ÅG?úÑ¢_¿~Å©§žZü×ý×û-Š¢8餓Š$E’“+n`«ô¹Ï}.]»vÍC=”%K–äóŸÿ|ó¶o¼1555éÙ³g.¿üòæ÷kkksï½÷¦¶¶6³fÍʉ'ž˜Áƒ§_¿~­Ž÷â‹/fÒ¤I¹ï¾û2xðàüÏÿüO/^¼Þ>7ÜpC¦OŸžAƒ5¿wÅWdÚ´iÙ{ï½3nܸrÈ!:thî»ï¾Ì;7§Ÿ~zŽ:ê¨tëÖíǽ馛r÷Ýwg¯½öÊe—]–Ñ£Gç÷¿ÿ}{§+IËs¶!7ß|s~ñ‹_¤¾¾>çœsN¦Nšn¸¡Íc¾k£:¶X«V­Ê¬Y³rñÅg÷Ýwψ#Út]–ã?>{ì±G¶Ùf›Œ5*£GÎôéÓÛ4fMMM^{íµ,X° ¯¼òJzôè‘8`½}ÆŒ³^hóæ˜ŸúÔ§Ò·oßœxâ‰yì±Çòío;}ûöÍ 'œ÷½ï}™3gÎÇ=úè£3`À€tíÚ5'NÌ£>ºQ·]ߨ9;vlöÚk¯téÒ%'žxbî¹çžv+¸€­ÌÿøÇ$É€šß2dH«Çýö·¿Íi§–d÷ÝwÏwÞ™‡~¸McöêÕ+3gÎÌwÜ‘|à3fÌÛV¾|øÃ~Ûqoík—]vÉž{î™^½z­÷^KAÌ>ûìÓüÕy£µ£IDAT|ûí·O}}}|ðÁ6õüV;gl~Þ»wï,_¾ó™Ï¬·½½sTÆyãÖ«m¿Í°5ë·ÿG—\rIqúé§o¢®ª£¡¡¡˜1cÆ&«¿)æÌíÀ ®¾úêÜvÛmÕnãmÚzǤyóæ¥W¯^Ùc=rß}÷åÇ?þq¦Nu©¯–TcÎ7°–-[¶Q·•.‹eË–åØcÍŠ+ràæßøFŽ<òÈj·UjÕ˜³šMZ¶ gäÓ¤nLrf•{ʯ6Éά71ÉÉ'NÌÉ'Ÿ\±¢µµµÙyçJ¶Éæ0vìØüô§?M’±I~jÅ ´Ï²uJy.y#hill¬`Y:w•()Á @I nJJpPR‚€’Ü””à ¤7·ãº@Eu­vÀKë~ÖTµ  Ó±â ¤¬¸€ö™”d\ëÕ&ÉÕW_Ûn»­bE'Mš”qã*Ù&Õ ¸€öÙ5Ic¥‹.[¶,Ë–-«X½gŸ}¶bµ¨Á $w$¹?É+ÕnØr”uEËUW]•[o½µÚmP!‚x#°Úí²ë®»¦±±â o:¬OŸ>Õn rqb€’Ü””à ¤7%%¸()Á @I nJJpPR‚€’Ü”T×j7[¢«¯¾:·Ýv[µÛx›eË–U»*HpaÙ²eB69Á ´ÏÕI*¹Ôfb’“'Nœ˜“O>¹bEkkk+V‹êÜt\Sµ`³Z¶îQ)Ï%o-,Kg ¸é¸^ÕnèœÜU  ¤7%%¸()Á $Ç%Yœdjµ€·Ü@²C’ú$;U»x+Á @I nJJpPR‚€’êZí€äꫯÎm·ÝVí6¨²¿þõ¯ë½Ü@ ,[¶,Ë–-«v”Œàªëê$–Úðþšn Ú–­{ÀÛ¸81@I nJJpPR‚€’Ü””à¦ãv\÷¨(·︗Öý¬©j@§cÅ @I nJJp@§U¬{°åzo’ú$½«ÝPY‚`“pª@I nJJpPR‚€’Ü””à ¤7%%¸()Á @I nJJpPR‚€’Ü”T×j7Ð 4U»Úç¸$‹“L­v#ðVnÉIê“ìTíFà­7%%¸()Á @I nJJpPR‚€’Ü””à ¤7%%¸()Á @I nJJpPR‚›ŽÛqÝ ¢ºV»Nà¥u?kªÚÐéXqPR‚€’ÜÐiël¹Þ›¤>Iïj7T–àØ$œ*PR‚€’Ü””à ¤7%%¸()Á @I nJJpPR‚€’Ü””à ¤7%ÕµÚ tMÕn€ö9.Éâ$S«Ý¼•Û@²C’ú$;U»x+·¯ŽaI®©`½¹I>_ÁzúëýuŒþ:F£¿ŽÑ_Çè¯c:ÚŸÀ€RÜTÇI+XïÅ ÖJô×QúëýuŒþ:F£¿ŽÑ_ÇTº?(…ÿÂbô«§hIEND®B`‚gfal2-2.3.0/doc/diagrams/gfal_diagram.dia0000644000175000017500000000541112164561703017465 0ustar ellertellert‹í]Ý’£¸¾ï§ <·Ý²$„„ÖÛ³5³É$©šM¶’ë.ld7Y .ûç&Ï“÷È‹EÚmlpcó³v\5Ó–uà Î÷Ã9‡zZ†ÖƒIG·#àÈÑ,öƒhq;úöÛ—wôÓÇ«ýÀûAý[Hoi©_D‰Þºݧéê‡ñøññ„ω—Æ„Á$bü/ ½±4}¼²¬í |/õô¾b¯—¦2˜®SaEÞRÜŽ¦Þì÷…Œ×‘?ÊGãfqKëÁ oGæÙg4.¦—æ90÷Ê[ˆ©ÞïõSCõáü”©WBîN»\ÅI †¤Ï«½!5óèÿ·Æ£5(Z|üð‰|È©Øñ:WÕÖ I—ž\Ѿ¥›0W.ÆX)Ãá.‡Œ0ô¢“ãÅM‡+N+.HîV±L¥¤û"§q /Ê¥¦r-N—“̼P-±C§Õâ,æAšÆoÿÜ “&'ïÞÜmÇÞ¹ ø‡oÜÒˆšY?½¿{êI]ùìÏ=Íþ$Á4UGDigÓ?w3ýîÕɬ÷ëÏ[®†|¶Zxð]áçxxX¬_$o,³ò˜š™î‹aã·´¾;®©bò];`‰½g!‹é?Iüï¿RܬB/YÅ5.ŒŽåÍÒàáekK-ñôßb–çûí—¯Öõ³> HDé蕇(ø·£À²ÂvOQͦlážÆVñfYaðõ r”ýuv5±oGêdL§»"¤: /Z„b#9¹æL0ˆèM 0;QìR¤Þè…ï³ô´ÙE(–w³XFû|¤Såer2Ûµ¯À»¥¦ç„o}h Y÷"XܧõÂlpâ™((wÚ¬åþe)³GO1°ˆ2÷=ND’ )b½zv%¼ÌJzyŒˆT<¥o-Ü1µ+wùÇÎÁ.C°ôÌO5¬ø”Ô]„8J«DêýÖÜ[á³:2/JFV’>kƒ§lUþÓ¿ŠðA¤ÁÌÛ6ÍÇÁÞ®XƸ°ü!í„–­h¥1À€*c@€c·U؆÷Ñ)‚}]DKQ}=E´^ºl(¥>ë(ÀøìNG?Ôýle[7°Ô#üi9™Ž QÎŽú›ÁŸ/þ:Ð^ü£€s¼ €ÌàŸÁ¿æø§&_Æ‘À¾ÐvAfÕº{@@ë‹ðÒµ[Hˆ $Ä­ý@ ϯì ±ÏQÃaÛÎýBõç<ÁX¦÷w™žNÑ^ÅH ŠYÇCmZ_<}¢± Ê7áaç;tà;Øâ˜¼uËXíÜ=¬C¡Ð3Cn©ŽtÔDsç ¤Ã¢§‚ë8Yy3±¡?««ù>´0†ðòí~ùŠz@зÅ[n_µ¢I™ÅQ¤€Ln²w˽|cÝ{‘_¬Ö4΢³Öë··#²g!+~‹Šß’òoá~˜z瀺%veD8˰Ýî•Q´SGa'˜KÅ€\4£¨SßþPµŒ)áî±CéÁ‘ü…—Ñï“O” _€†N:‘›<舱a=²‰j=÷M&ÐÐŒ€´¶Ó<\LêõY³r†aN›Ø °w`¨Ñ]%µåG3‘à xçªh|f‘ ,ôX¨Vtç\•¹€Ý ø—Qß“¾â¿é»{Ÿ8P…:˜öœmVˆqw]{â0`ÛÎä"zÁÖ¿|ùôÕÂZ¾HÔMð>¹t÷]Þ|ŽC¿+™'„cŒM!·Ñ6²biš§—GÝ%Ù!Õû›¯¹Çò÷8A´uØ’e|—žî.4{ Êôj£ÚeÔù@LgŽ5÷Ï2¶µâšä)?„õ™þJ€ËKŸ6Ù@oœ h‡¢ï9õhH„½±þ,¥:ê_¼È[mB¯n¬oÿüjI‘ÄáZ'µã×p½"+Œ=¼Žôµó³cë!^ÎÍÁD¤Û™H¬ù:Ê—Æ õËÅë>ãæ ðtbyp“€;P.k ·Íb§8½:J +RÓ˜3¡¶Î(ÕÛ°ùàsÄÜöÚk‚¹ RÊ¿Å&ÿÖäß6Ï¿ ç3k•A©ÉÁížU¤Ù ÝÖÈ€æþ×7L—‡ô‹‚Ü)iTL‰kÏ“œž s(Øþšá 'l]ƒƒ›ã ?óV‡B’ ¨Â wàæ…ì a!(‡BBtN÷¤ÎÄl­¾fH¨´µ};Û 6GB9bƒ„Ã!¡˜AÂNp+SâsüTÕ˜ u_Ý@Ùqåšõ ƒº“‰!b׆î5‚§»ƒÍ`ªõ¹5Á(â*lç„p̈{í@Ýv OlK_Èæá!ŠNŒÈ&÷ñã]E;É> ,3£{z d7 LuP'¦ërXß-³6’\@ðd[0e§J~¿©ßeË¡ºÅhÀýìÒ–§öM\ $: û­±Ø’Dµ½Ù¦À¥Æ4ÓT»iÔ4µÊ2ß)9sJ3Gí‹ÏmàdÀ¨kóú4ƒ9X!1BÚº˜Ú™`ÛÅîù›Â0˜ê˜ þÎL"ŒÚ®ú`åK9êÜ»E¬^“Æži†ùŸÄJD¾ˆfÏU&ª}5,.¡8ïÙwóIìæ1°3Ñr¹¶Pôô2ܳ¨ˆ­Óß¡¼Ünº²£¥.j:®M•@“¢Ø†…¯]5”¦ÝVVF×ïc™žüì¼…¤Û2<óñ¥÷xçI?vu»(d¤ÇtH¢; :ì‡PS]„Z@"d>Q¯Î¹îäh)¶ŽRE9l€.÷©v[5ª+²Aöú™¶¥8 ‹Œ`¹ÈˆQdÔòY)2:¾ÈèWÝyßú[¤ÌùÜ›‰«›¼bH¦yO~eƬ@é.Å^ª‰7é³Ï­ô^XkfÕDêKKiGXËMÁ’©( Š¥ÌËŠ•h\¶î’ÈûV´ƒðÉß.Ó'ÊràÐ\Š3ѳ…â^pËÁ ­Õâ€î/„!Ð9'Mǵ`D—íHÞ]ÈøQäG5¿ÌG¹Q/®rLzó…šô†C­ AõKQ¢=A€“¢c,Ôí .t³n —k¼kõW1”Û¦ô¨¡  ƒãœ¤.SéƒÍ ßa-tñ*ÅM)´Áú!2úµàs£ÇS¿|tö_¾zÏB~¼Ê7Ô¿…ô–¯þGÔ9l¬gfal2-2.3.0/doc/diagrams/surls_get_endpoint_activity_diagram.svg0000644000175000017500000003226012164561703024443 0ustar ellertellert Activity Diagram of the SRM resolution SYSTEM : Extract endpoint from first surl {first url contain a full endpoint} {no bdii option specified and no full endpoint} { unable to extract the endpoint from the first surl} {successfull get endpoint} Force Srm type to srmv2 Request bdii to get endpoint set Error and return parse surls Search Endpoint { url is valid } { url is not a surl or surl is empty } Execute SRM to TURLS convertion bdii allowed and no full endpoint found in surl set Error and return { no response or bad response} { se_types contain se_default type specified ( srmv2)} Force SRM tp SRMv1 {else } gfal2-2.3.0/doc/diagrams/gfal_access.png0000644000175000017500000037067112164561703017366 0ustar ellertellert‰PNG  IHDR¿WTRsBIT|dˆ IDATxœìÝw|O÷ÿÿÿû+D"ví=ƒØ{–Vo«-­w©–ö­ÞZ­¶ÞmùtСFkÕ ªDcMÚ ˆ³B"C„Ddœßùå|ó’Èàáåv½\\.g<Ïó<Î+'iåîù|Z Ã0؇ü.°Â/Ø Â/Ø Â/Ø Â/Øù]îŸ[·n)**JQQQŠ—“““\\\T±bE(p÷ÿkxòäIýðÃ:pà€®^½ª˜˜¥¤¤H’öîÝ«2eÊØê2˜1c†/^,I9r¤¦M›–g÷‚} SXX˜U²dIUªTéž¾îVJJŠÂÃÃ&GGGyzzªtéÒ÷½ŽGÍü¡Q£FI’Ê•+§íÛ·ß·{¿ýöÛZ¶l™$iôèÑš2eÊ}»7ð( ü°súñÇåëë«]»v)...Cggg5jÔH;vÔˆ#T·nÝ÷ÿÍ7ßh„ JJJÊôüŽÛJxx¸Nžùäýøã:þ¼Õ¹FéùçŸ×رcó%{ÄÅÅ™?;nÞ¼y_ïfÞûÊ•+÷õÞÀ£€¿EØ©¸¸8Íš5K³gÏVlll–mãããµoß>íÛ·O3gÎTÛ¶m5mÚ4õèÑ#ËëvìØ¡ñãÇ›£¼ ,¨Ç{L*TƒCê Û… ²Íw)::Z#FŒ¯¯¯îØîúõëÚ²e‹¶lÙ¢Y³fiÉ’%jРAžÔtàÀ Û7ò¹àáAø`g.\¸ –-[*44Ô|¸æÌ™#IZ·n¾üòKY,›Ô“†aÈßß_›7oÖ¡C‡töìY†¡B… ÉÍÍMÞÞÞzâ‰'îz}´¨¨(ùøøhË–-ºxñ¢®_¿.)uZÈZµj©k×®êÑ£‡ .l^søðaýñǺråŠU_ß}÷]¦Ó¦MÕ¬Y3s?44Ô 6‹+f5âO’¶nݪ3gÎH’ªV­ª®]»æøyþúë/ók]²dI=ýôÓVç÷ìÙ£cÇŽI’6l¨-Z˜ç¢££µråJIÒµk×Ìã¿ýö›.]º”á^zê©§©U«V™Ç,WW×Õ›œœ¬~øÁ\ñ{÷îzì±Çrt-ð@2`æÏŸoH2ÿÌŸ?ßæ÷·ºGv¶nÝjuýðáÃR¥Je{ƒƒƒ1bÄãÚµkÙÖôÒK/™×M˜0ÁæÏ|»gŸ}ÖpssËÑ3 :Ô¸zõjŽûŽŽŽ6^|ñE£P¡BÙöïééi?~<Ëþ–-[fT®\9Ë~ ,h¼öÚkFBBB–}%$$ãÇ7rôµ8pàûZµj•ááá‘£~Š)bDFFæø3´•N:™5tïÞÝ&}þðÃVÏvñâÅl¯Ù°aƒÕ5‡²I-¹ñꫯžžžÙ~­,‹Ñ§O#,,,Ç}߸qØËô ÃÐÔ©S5dÈ;wÎ<^ªT)³Ö´‘1·nÝÒ'Ÿ|¢^½z)>>þŽõ oܸ¡>}ú˜Ó Y,1BþþþŠÕ™3g¢«W¯êðáÚ>}ºUèp»/¾øB3gÎ4÷û÷﯀€«Z###õÞ{ï™!Øï¿ÿ®W_}5Óþ|||´víZI’£££¦L™¢Ó§OëÒ¥K:xð üýý¬ØØXmܸQÇÏtªÂ[·niüøñf€Ö±cGùùùéêÕ«:vì˜üýýõ÷ß+&&F‡ÒôéÓ3L›y?ìØ±Ãjz¹îݻۤßôZ•*UrtMéÒ¥­ÂÀô}ÜO:tЗ_~©àà`EEE™ïÑ¥K—ªiÓ¦™_ósçÎé…^Ȳ¿ÄÄD 0ÀœZR’žzê)íÙ³G×®]Ó¹sç¢èèh?~\~øa†rÒ¤I2 C§N²:~óæÍ ?‹ ÃÐ{ï½—«g.^¼¸žzê)sáÂ…9ºnÑ¢EfèÔ¤IÕ¯_?W÷­W¯žYsµjÕÌãëׯÏô¹öíÛg¶yþùçU¨P!IÒñãǵk×®lïwîÜ9ýúë¯æþرcsU/ð@ºƒÌW¢££­¦ÁºÓÿEDDXÝóòåËÙ^sâĉõ½lÙ2³_ggg#""âŽmï÷´‡9}†U«V‹Åd*T(ËÏç•W^±š:î»ï¾Ë¶ÿ¸¸¸L§…>^7nÌ˲r%§Ïп=þøã’¤„„ùøødÚ.""BóçÏ7÷ÇŸ£iÒœ­F¥ùä“OÌi»té¢wÞy'Ë~úõë§áÇKJ¶nîܹÚ\¸pÁÜnÛ¶m¶µIRáÂ…3;þ¼¹Ý¬Y39;;gÛ“““ÕtŠyíƒ>Ðþýû­ö3{–»‘~j¿bÅŠåøºôms2…¦­åôïØ±£Õ»´jÕªLÛÅÇÇkΜ9æþ Aƒôúë¯gÛÁ‚U²dÉÕb+]ºtQ¥J•$¥ŽVûù石lïççgN5êää¤ýë_y^ãí^|ñEsû—_~Ñ•+WîØ611Q ,0÷³±<,¿ìÀíáWñâų½Æ0 ;6Û?7oÞÌ«²³Ô£Gs;ý´^“œ<ÃêÕ«')õ—ûÓ¦M»ëû%&&jÉ’%æþþóŸ]—>lóõõÍp>ý†w]_ÚtlRêúWIIIwÝW^ðññ±  ¤aÆ٬ÿÛ׵ʩ´u§¤ü ¿r#'ïüo¿ýf2‹%×ÓÞO1b„¹ŸÝÔ‡éÏ÷îÝ;_þ!BÛ¶mÕ°aCI©ÁûâÅ‹ïØvãÆæŸÅ‹·éûä§ù]îñÿ¯/“Æb±äèšyóæeÛî£>²ÙÈ—Û]¾|YÁÁÁŠŽŽVtt´UdnÿóÏ?yr[ Ó±cÇ­«W¯*11ÑU’½cÇŽé³Ï>Ó† îøËñÛ=hÏsâÄ Í™3G6l°š0+W¯^ÍôøñãÇÍífÍšÝS]‡2· .¬éÓ§çøZ'''3¸‹ˆˆ° ¿žþyÍž=[111JLLÔ”)SôÎ;ï¨C‡êÞ½»š7o®–-[ª@¬ÿzQ½zuõë×OkÖ¬‘$­_¿^ëׯW£FÔ³gOµlÙRíÚµ“››[nûžmß¾]½{÷6GàÕ­[W~~~*Q¢„Mï“>,ŒÏñuiuÝÞÇýtáÂ}úé§òññQHHHŽ®¹ïüýP£F µnÝZ{öì‘$-Z´HŸ|òI†v+W®4ÃgwwwõîÝû¾Ö™Þˆ#ôßÿþW×®]ÓñãǵsçNuèÐÁªÍÙ³gõÛo¿™ûia`¿ìÀíëàdµÆKùûûg8¾iÓ&½ýöÛ6«-½¹sçêÕW_µ)’¹mŸ—æÍ›§—_~Ù\W+§îô ‘‘‘涇‡Ç=ÕenÇÆÆjÖ¬YwÕÏíac¹rå´jÕ* 4ȼG||¼6oެ͛7KJ}{öì©¡C‡ê‰'ž¸cß ,PDD„víÚe;xð 9JÎÑÑQmÚ´Ñ“O>©çŸ>GSxÞ‹]»v©OŸ>fÀT­Z5mÙ²%O¦«+Z´¨¹>ÐÊNZ "ån­0[Y¹r¥ž}öY«:râ~¼ó÷˨Q£ÌðkÉ’%š9s¦œœœ¬Ú¤ŸòpذaÎßOÅŠÓðáÃõÕW_IJý¹u{øµ`Ás¤c³fÍ2Í<¬¿ì@‰%T±bEsR@@@Ž®K? ]š£GÚ´¶4k֬ф Ì)+T¨ Áƒ«iÓ¦òðð‡‡‡J—.m®…´|ùr½øâ‹yRËÝÚ°aƒþýï›ÏP®\9 2Ä|†2eÊX=Ú5k4zôè,ûL?Mbv#§²“>œ(\¸°Ê•+wWýdöKû.]º($$D?üðƒV¯^­½{÷š¿8—R×[ºt©–.]ªN:iñâÅ*_¾|†~J•*¥;vhÆ Zºt©6mÚd¶%''kçÎÚ¹s§þïÿþOß}÷úôésWÏ‘C‡©_¿~æçV®\9ýú믙Öm eË–5·s:êñö¶wû5½[üñ‡þõ¯™S’–.]ZC† QóæÍU¦LóO övíÚ¥¾}ûfÙ§-ßùûeðàÁš8q¢âââ®Í›7[…¼!!!Vn~Ny˜füøñúúë¯e†~ùåÍ™3Ç uõÝwß™mÇŽ›_eyâáø›²Õ¦M-[¶LRêHšøøx3„Éo†ahòäÉfh4tèPýðÃ*T¨P–×üZ´h‘ùýÞ¸qc5nÜ8_êL¯nݺjÛ¶­víÚ¥[·niñâÅzõÕW%I>>>º|ù²¤Ôg:th~– ØœC~ÛèÒ¥‹¹}ãÆ 3{:tÈ\'ÈÙÙY_ýu–Á—”»‘1÷ÃÑ£G,I*X° ¾ùæ›lÃÅœ£¾Ò¤=;oÞ<3 ›7ožy|ذaVSrö€ð ÀN :TnnnæþG}¤›7oæcEÿÏéÓ§ÍíZµjÉÕÕ5ÛkÒÖ×yPœ9sÆÜ®^½ºÕ(«;ÉÉ3´iÓÆÜÞ¾}»’““ï®@ImÛ¶5·oܸa5 [^kÕª•6nܨ¦M›šÇvìØ‘ë~Ê”)£>ø@ÿûßÿÌcüñ‡Í‚¼#GލK—.fpáéé©ßÿ=OG|¥éÚµ«ÕÈ(??¿l¯ùý÷ßÍíòåË«~ýúyR[fΞ=kŽÂsssSµjÕ²½&·ïü¾}ûr½–Øí¬ÿZ{/ßCYéܹ³*Uª$)u=³´`°}ûv;wNRꔡÆ ³Ù=Ó?ÛÝ<×€T¦LIÒñãǵsçN:uJ[¶l1Ûüûßÿ¾÷B€ á€(Z´¨&L˜`î;vLS¦LÉÇŠþŸ„„sûÚµkÙ¶ÖÎ;ó²¤\Ëí3„„„hÛ¶mÙ¶K¿žÕÅ‹õË/¿Ü]JQ“~ºµO>ùä®ûºNNNêÚµ«¹}×}õìÙÓÜNJJRllì=Õ&¥~OtîÜYW®\‘”º~Õ–-[T«V­{î;'*T¨ fÍš™ûßÿ}–í­FÏõíÛ7GÓ ÚJúwþÆÙ†/Z½zu¶ýöìÙÓ\ë+666ÛÏ!;ÅŠ³ÚO›ÊÒÖ4räHs?m´WúQ_½{÷6×Õ²…ô#²îæ¹ ,hµîà¼yóôý÷ß›#À¼½½Õ°aÃ{/xÀ~Ø‘)S¦¨I“&æþ矮ñãÇ›köä—råÊ™ÛgΜѥK—îØ611QcÇŽ5Gœ<(Ò?Ã?ÿücµÆÕí’““5vìØÔhܸ±:wîlîOœ8ñž¦||ã7ÌíM›6é»ï¾ËÕõ™ÌÍ´u„$™#NôS*TH%J”Èñµ™ Q·nÝÌ©K•*%___5hÐàžú•¤ùóçkܸq7n\¶sÚšK’´uëÖ,â÷ßßü< ( W^y%˾¿ùæ;VcÇŽÕ¤I“rñ™KÿÎÇÇÇ+00ðŽm ÃÐøñã—m¿•*UÒÀÍýiÓ¦éøñãw]gÉ’%­Ö–ËézjwcÔ¨Qféïï¯={öhÕªUVçm)ý´¨i£ËrkôèÑæ²5kÖè‡~0Ï3æÞ P„_v¤páÂZ¹r¥Õô‡_}õ•êÕ«§eË–éúõëw¼öÚµkZ²d‰fΜi󺼽½Í© ÃШQ£“¡]DD„ú÷ï¯;wÊÑÑÑæuÜ ///«©G¥«W¯fh¥jÛ¶m9~†9sæ¨H‘"’RãvíÚ™k-eæâÅ‹zýõ×uðàÁ ç  Þ½{›ûcÇŽÕôéÓ³ýÚ/[¶L]ºtѧŸ~šá|Ó¦M5aÂdùË—/×Ò¥KÍýôuHÒ{ï½§îÝ»kÕªUYa§OŸ¶ ‰zõê•aj»Ü¸té’ºwïn†Šš>}º’’’íŸC‡eÙÿæÍ›õõ×_ë믿ÎvÓ AƒÔ¨Q#sÿù矷šÚ0Íüùóõþûï›ûÆ SÍš5³ì{ëÖ­š7ožæÍ›g5énU­ZUÕ«W7÷_xá…L×)»~ýºž{î9­X±"Çïü‡~h~?]»vM:tЯ¿þzÇöáááz÷Ýwµ}ûö ç ( ///súôéV!¬-U¯^]-[¶4÷Ÿ{î9sÚF777õêÕ˦÷kÑ¢…¹=þ|ùûû纪U«šß‹ñññægS²dI›NÑ©àà`IÒ‰'4tèP(P@7V… äîî®ÄÄDEFFêôéÓ:qâD†u•žxâ «w«P¡BzõÕW5}útI©¿¤¯Y³¦  ÚµkË0 :tHkÖ¬Qtt´\\\4aÂ}ðÁ÷|o[qrrÒäÉ“5uêTI©ë5Õ¨QCTíÚµe±Xtøða­^½ZQQQ*Z´¨&MšdµvÕ4hÐ@ ,ÐÈ‘#•””¤3gΨ]»vòòòR›6mäéé)]¾|Yо}û”’’¢þýûgèËÁÁA?ýô“:vì¨ÀÀ@%''ë½÷ÞÓ_|¡=z¨aÆf­½{÷êÀæwéG¡¥‰Õ—_~©/¿üRÕªUSË–-U§N•.]Z ºté’|||täÈóš:d¨Ï0 mݺU[·n•«««Zµj¥¦M›ÊÓÓS TXX˜þúë/mذÁ5çìì¬?ü0‡_¥Ìùûû[­;—’’’í(ªôÊ”)c³0ÅÁÁAK—.UË–-uíÚ5EEE©K—.êÖ­›4h äädíÞ½Û*h¬U«–æÌ™c“ûçÖÔ©SÍióþúë/Õ¬YSƒ R:uäää¤àà`­^½Z—/_–“““Þzë-½ýöÛÙöûØcéçŸV¿~ý¯°°0=þøãª_¿¾:tè ²e˪@ŠŒŒÔŸþ©Ý»w+))IëÖ­Ë´¿±cÇšëùùù©lÙ²rvv¶úùõŸÿüÇjdäÝ=z´þøã\… ºçþÓ5j”>üðCݼyS—/_VóæÍåääd5Õ£———¶nÝše?/¾ø¢|||¬Ž 6LÎÎÎ6­xP~Ø¡5jhß¾}z÷Ýwõí·ßšS‘%%%Éßß?ÛÑ^^^zçw¬Ö£ºWo¾ù¦Ž9¢+VHJÉñõ×_ghWªT)-]º4Ó&ùíõ×_WPP~úé'I©#Õ¾ùæ› íJ”(¡Ÿ~ú)WëT :T¥J•Òˆ#Ì5©ÒFå–«««víÚ¥1cÆhùòå’Rƒ®eË–iÙ²ew¼Îb±XnËLHHˆBBB²lÓ©S'­^½:ËÑZ111Ú¼y³6oÞ|Ç6îîîZ±b…j×®åý6uêÔѺuë4|øps4ZZ(x»&MšhåÊ•9šö1ýZté§,¼Ï=÷œ:¤Ï>û̼ǂ 2´+R¤ˆæÏŸ¯²eËæ¸ï=zhÛ¶mP`` Õz|%K–Tß¾}õú믫N::xð ùY—.]:Û¾[µj¥'N諯¾ÒêÕ«uàÀ #PË”)£6mÚhÀ€êÞ½{¦ýX,}þùçz饗´jÕ*'á\N¥Mï—&–+W.W£É¹¤¤$U®\Y¡¡¡’¤ï¿ÿ^Ï>ûl>WäÂ/xȽûî»zçw$Iëׯ×O<‘¿á²|ùr 2DRêÔ².\P‘"Eò¹* ïäîŸx8~~~’¤–-[|ÁŠaúøãÍýqãÆ|Àî~ÀC,99YIIIòòòһロßåàb†f̘!I©S”N˜0!Ÿ«ò^ü.p÷µ{÷îü.ˆeË–iõêÕJIIщ'tøðaóÜ„ äáá‘Õ÷áìR`` vîÜyÏý”+WN´AE÷Ž9¢•+Wf8Þ¶m[Fà‘Aø»´}ûvMš4éžûiÓ¦ ဇR‘"ET½zu 0@“'OVáÂ…ó»$ྠüÀN̘1C3fÌÈï2€|e1 ÃÈï"[3 C)))÷ÜÅb‘ƒƒƒ *÷áìÿ„vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð vƒð v£@~Àƒ(99Yþþþ:sæŒ.]º$I*W®œªT©"///9::æs…2Cø@:AAAš={¶|||tåÊ•LÛ¸»»ëÉ'ŸÔ¤I“T¯^½û\!€¬X Ã0ò»ò[DD„^{í5-Y²D)))9ºÆÑÑQ#FŒÐÇ,77·<®@N~yþþþêÛ·¯BCCïêúòåËkíÚµjÖ¬™+[„_€GÚ‘#GÔ¦MÅÄÄÜS?®®®Ú»w¯êÖ­k£ÊÜ Â/À#+<<\-Z´Ð¹sçlÒ_åÊ•uàÀyxxؤ?¹çß_&Ožl³àK’Î;§)S¦Ø¬?¹ÇÈ/À#iïÞ½jÛ¶­lýŸA‹Å¢ýû÷«yóæ6í@Î0ò ðHúꫯl|I’aúâ‹/lÞ/€œaäà‘sëÖ-yxx(&&&Oú/Y²¤ÂÃÃU @<éÀ1ò ðÈñ÷÷ϳàK’¢££gý¸3Â/À#çìÙ³y~3gÎäù=dDøxä\ºt)Ïïšç÷áà‘s?–»dIM ~9åÊ•Ëó{T¨P!Ïï #Â/À#§J•*y~Ç{,Ïï #‹Á¼L€GLrr²Ê–-«+W®äIÿžžžºxñ¢ø7&ÀýÆoåGGGõîÝ;ÏúüñÇ ¾€|ÂÈ/À#éøñãª_¿¾’’’lÚ¯“““‚‚‚T³fM›ö gøgé€GR­Zµ4bÄ›÷;räH‚/ 1ò ðÈŠU«V­täÈ›ôW¯^=ýñÇrqq±Ir‘_€G–‹‹‹–/_.WW×{îËÕÕU+V¬ øòáà‘V¯^=ùûû«N:wÝGݺuåïﯺuëÚ°2wƒð ðÈ«^½ºvîÜ©‘#GÊÁ!çÿitttÔ3Ï<£;wªzõêyX!€œbÍ/Ò ÒìÙ³åãã£+W®dÚÆÝÝ]O>ù¤&Mš¤zõêÝç d…ð €L$''Ëßß_û÷ï׺uë$IO=õ”¼½½ååå%GGÇ|®@f¿ÈÂöíÛÕ©S'I’ŸŸŸ:v옿Èk~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~Àn~`§öîÝ«æÍ›ËÕÕU‹EçÎËñµzë­·ò°º‡ËsÏ=§§Ÿ~Ú꘿¿¿¼½½U¼xqY,;vLÏ<óŒêÕ«g¶Ù¶m› ,¨ÀÀÀû]òíé§ŸÖ³Ï>›ße;U ¿ ¶g†† ¢êÕ«kݺurqqQÙ²es|ý­[·””””‡><<¨Å‹g°žyæ•(QBëÖ­SñâÅU¥J¹»»«B… f›””%&&*%%å~—ý@›>}ºš4i¢W^yE7Îïr€!üÀ………éÂ… š9s¦:vì˜ßå<Ô>üðCuìØÑjDWll¬Ž9¢ùóç«S§Næñ>ú(?J|èÔ¯__í۷ׇ~¨åË—çw9ÀÎ~ð ÖܹsuòäIÕ¨QC'NÔž={týúu7N›6mÒúõë%I+W®Ô¡C‡T£F =ZgΜњ5k ¨¨(U©REýû÷W×®]辶«W¯ÊÇÇG;vìÐ?ÿü#OOOµmÛVÏ<óŒ °þߨ¨(ÍŸ?_þù§nÞ¼©ºuëjàÀjÑ¢…ÙæÔ©Súþûïuøða999©I“&6l˜ªV­j¶Ù±c‡V¬X¡•/_^ Ðã?nu¯mÛ¶é§Ÿ~ÒÅ‹åìì¬ h̘1ª\¹²$éܹsš;w®Ž=*Ã0T±bE <Ø ´"##µvíZÍ;×ìsëÖ­Z·n$iíÚµ:uê”Õ==<<ôꫯfùy9sFóçÏסC‡äì쬮]»ê™gžQ¡B…²¼núôéjÓ¦\\\ôí·ß*<<\M›6Õ¤I“äææfÕöâÅ‹š7ožþþûo(P@;vÔèÑ£U´hQ³ÍÛo¿­¶mÛªD‰Z°`Ο?¯Ù³gëðáúxñ¢FŽ©?þX*_¾¼Þ|óMU©RE'NœÐ'Ÿ|¢óçÏ«E‹š:uª .lö{üøq}õÕW:uê”,‹ªT©¢áÇËÛÛÛl3hÐ ½òÊ+ŠˆˆPéÒ¥³|n€Ü`Í/"jÑ¢…6mÚ¤š5k*&&FíÚµÓ矮%K–H’âãã#Iºqㆢ££+IzóÍ7µtéR¹¸¸¨^½z:v옺uë¦o¾ùæžêZµj•¦M›¦ÄÄD5nÜXñññ7nœ†jÕ.88X 4Ðÿýßÿ©D‰ªY³¦õöÛo›m6lØ  håÊ•ªT©’Ê•+'}÷Ýwf›O>ùD;vÔáÇU¯^=]¾|Y½{÷ÖŒ3Ì6ß}÷ºvíªèèh5iÒD•+WÖöíÛõ믿JJ  š4i¢M›6©nݺªS§Ž"##5{öl³mÛ¶)!!ÁjôÜÍ›7ÍÏ7..NÑÑÑæŸ5kÖXÕ™™={ö¨aÆúå—_ôØc©X±bš8q¢z÷î­ÄÄÄ,¯={¶>üðCõíÛW… VÅŠõÅ_¨mÛ¶ºvíšÙîàÁƒjÔ¨‘.\¨òåËËÍÍMÓ¦MS§NgÕßǬ=z(::ZžžžJHHÐÆõÅ_¨S§N:~ü¸<==µ~ýzµmÛV[¶lQÇŽ¯%Jèƒ>аaÃÌ>Õ¤IíÝ»Wõë×W­Zµtþüù ïX§N” mÛ¶eù̹f€;òóó3$’ ??¿ü.Çèܹ³Q¡B#22Ò<¶lÙ2C’ѪU+óØ©S§ IÆÊ•+­®O]š_|Ñpww7RRRÌc®®®Æÿûß×uõêU#99ÙêØªU« IF`` yÌÛÛÛpss3NŸ>mÕ6..Îì§D‰FóæÍk×®eÚ&00Ðppp0Þÿ}«óÿûßÿ ãÔ©S†aFÛ¶m~ýúe¨5))É0 Ø={¶Q¸paãÆ™ž7 Ø4i’áââbõÙ†a„††’Œ… Z5j”Q·n]sË–-†$# À0 ÃHHH0*V¬htïÞÝHLL4ÛíÙ³Çptt4æÏŸŸ¡Þô\\\ cÿþýæ±½{÷‹Åxã7 Ã0Œ””£^½zF‹-Œ›7oší>l*TȘ9s¦y¬X±b†“““Õ×È0 cäÈ‘†$cÞ¼yæ±ýû÷’Œ"EЇ2Ïš5˰X,ƹsç Ã0Œ©S§eË–µz>ðþ\Óê,Z´¨1iÒ¤,Ÿ ·ùÀC"))I»víÒ³Ï>«R¥J™Ç dNã—R¥JÉ0 ]ºtI¯¯¯Ê—/¯+W®(,,ì®ksuu•ƒƒƒ¢££uøðaùúúªpá²X,:|ø°$éôéÓÚ¿¿^yåU©RÅêzgggIÒ¯¿þª«W¯jÆŒrqqÉ´ÍÏ?ÿ¬B… éµ×^³:ÿòË/Ë0 íÝ»W’T¨P!8qB´jçèè(I*X° nݺ¥_ýU·nÝÊp^’BCCåææ&‹ÅrןMzÛ·o×… 4eÊ«é [·n­æÍ›k×®]ÙöÑ­[7«)"[µj¥Î;kóæÍ’¤¿þúKGŽÑþó«iëׯ¯®]»f¸GŸ>}Ô¨Q£ ÷)^¼¸ÆŒcî·hÑB...êÒ¥‹4h`ïÞ½» ÃPpp°¤ÔÏ5&&FÛ¶mSrr²Ù.ýç*I‹Eîîîºxñb¶Ï ¬ùÀCâŸþQbb¢ªW¯nuÜb±¨FºqãF¶}üúë¯zíµ×tâÄ /^\ÅŠ3ŠÐÐPyzzÞUm!!!zñÅåëë+WWW9;;›aUhh¨¤ÔðKR¦AKšœ´9qâ„T¶lÙ,û˜1c†žzê)5nÜX5jÔPŸ>}4lØ0yyyI’FŽ©¥K—jàÀ*Y²¤zôè¡~ýúiàÀrpHý÷AqqqVkYÝ«“'OJ’ú÷ïoÞ#Íõë×3¬–™Úµkg8V§NsÚË´{Œ3FcÇŽµjgµnš¤ ïSšòåËgý\]]U±bŠǤÔuß$iܸqZ»v­zöì)õêÕK PŸ>}2ôçììl5 #€-~ð(Z´¨$eä$øŠÕàÁƒÕ«W/mß¾]’R±Ç\)))w]ÛØ±cõÏ?ÿ˜kpIRBB‚Š)bö›|¤ t»´@(«6’Ì5¨îtNJuúôiùùùióæÍZ¹r¥>ûì3}ûí·3fŒŠ+¦;v( @[¶lÑúõë5xð`õîÝ[>>>æÈ¤?ÿü3wF,\¸P*TÈp<íkœ•¤¤¤ Ç3gŸþ¹êׯŸ¡múÑ`’îîÝÎ¥¹}×í<<< }ûöé·ß~ÓúõëµpáB=óÌ3úᇬÚFFFªeË–Yö[L{ÀCÂÝÝ]%J”ЬŽÇÆÆêèÑ£Ù^¨ØØXMœ8Ñ ¾¤ÔiòîEJJŠöîÝ«áÇ›ÁWÚýÒjõêÕ“ÅbѾ}ûîØWZX“U›ºuëêòå˪X±¢¼¼¼2ü)_¾¼Ù¶hÑ¢êÓ§¾üòK={VÞÞÞúâ‹/ÌójÞ¼¹Þ|óMíß¿_3gÎÔÆuêÔ)IR­ZµtåÊ•…‹9Q·n]IR|||¦µg6ªëv·Oã˜v¬ZµjV÷¸~ýz¦÷È,³5GGGµiÓFï½÷žõꫯjáÂ…æè0)õ½ˆˆÈÑ3äá‘Ñ£GëçŸÖÚµk%¥Ž{ùå—uýúõl¯M›ž. À<¬Ù³gßSMrqqQ@@€ ÔlLž<Ùª§§§úöí«¹sçjçÎVçΟ?/)uý¨Ç{LS§N5§/”RG;¥­ õì³ÏÊÉÉIÏ?ÿ¼bcc­úÙ¿¿"""$I¿ýö›­Î†¡âÅ‹›m¯\¹’é3¥µéСƒ’““åïïŸó$ íÛ·W:u4uêT…„„X;þ¼¹>š$Í›7Oƒ ʼíÞ½ÛjÔÛš5k´oß> 8P’Ô°aCµnÝZï½÷ž‚‚‚¬®½|ù²Õ×?/ìÚµK111Ž;99Y2ûóÏ?•’’¢öíÛçi=àÑCøÀCdÆŒêÖ­›úõë'www•*UJÑÑÑêÒ¥K¶kS5hÐ@½zõÒË/¿¬.]º¨W¯^jÕª•šÜ‹É“'kíÚµjÔ¨‘úõë§:uê¨víÚ*X° U»¹sçªJ•*êܹ³Z¶l©§žzJÕ«W×èÑ£%I ÔÒ¥K­ ¨sçÎzüñÇU¡B}õÕW’RרZ²d‰|}}U½zuõîÝ[O>ù¤j×®­V­Z™ÖsÏ=§Š+ª{÷î4h6l¨¿þúKo½õ–$é§Ÿ~RÅŠÕ¦M=ýôÓêÚµ«Þ|óM½ôÒK*S¦Œ$©E‹ªU«–6Þ+GGG­^½Zæóõïß_ÞÞÞªZµªvìØa¶ýóÏ?µjÕ*3PLóÔSOi̘1êÞ½»ºuë¦Áƒ«]»vzùå—Í6K—.•»»»š6mª:hÀ€jÕª•*W®¬ 6ØäYîdîܹ*_¾¼Ú·o¯Aƒ©}ûöš={¶¦M›fõŽ®]»VµjÕ’··wžÖ=ãöߨÓöÿ½;ª²Nü8þa•M6QLq§ÔrDÍRL+sm*[M,ô˜K©¸æ2•Yš556V6eé¸ûRjæ–[®¥¹¢"²Éþüþp¸?¯,A).ï×9žÃ}î÷ù>ŸçzÏ©ã‡ï÷ÙºU:u’$mÙ²E;v´l ÿÙ¹s§.\¸ ÀÀ@µk×NááájÓ¦>þøcI7·¼[³fÚµkgöl©œœ-\¸P”···{ì1Õ©SG[·nU—.]äåå%Iú÷¿ÿ­°°0µlÙ²Ô™Ö®]«õë×Kº¹bêÏþ³¾ùæ5iÒÄlk»ììl-]ºT{öìQnn®š4ib*¸ $%%iÉ’%:r䈜œœÔ¢E uïÞ]žžž¦1ñññZºt©Nœ8!;;;5hÐ@<òˆ‚ƒƒ%I§OŸÖwß}§cÇŽ)==]ÁÁÁêׯŸêÔ©#IJNNÖöíÛõã?*..N¾¾¾êÒ¥K¡•Ho¿ý¶fÏž­³gÏÊÁÁA’”™™©•+Wê¾ûî3]OºYX%%%©k×®¦Œ6lP=äíím—™™©¥K—êÇTff¦õàƒ*""Âôl´æÍ›«yóæZ´h‘éýôS%&&ªU«V8p`¡¢1''GË—/מ={”––&uìØQíÚµ3=ÏkÙ²ejذ¡Ùv•’´{÷n]»vÍtV­Z¥€€³ïEzzºþûßÿªmÛ¶ªS§Ž®\¹¢mÛ¶éÀJHH¿¿¿zôè¡Ö­[›e Ò¨Q£4bÄÜI”_” ¢•_yyÐ^ŒÇ IDATyÊÏÏ7•0ÒÍÒ)**J ,ÐàÁƒ-˜Î:egg«I“&Љ‰ÑСCËåš—.]R:utôèQ…††šŽ”_S¦L)—w˼yóôöÛoëèÑ£…J;€?ÊÞÒ@é%&&*""B½zõR@@€~þùg}þùçºï¾ûô׿þÕÒñ¬’£££.\¨3gΔÛ5]]]µÿ~³âËšxxxháÂ…_à® ü ñòòÒÈ‘#µgÏ>ÞÒ1”åŘ:uªþò—¿X:€2 ü€Õ üà7¸ººê«¯¾R“&M,Ào°·t*:=ùä“–Ž Xù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«Aù«AùÀÿäååÝÑqÊå Ê;uê”þú׿*<<\¹¹¹¿9~Ê”)jÑ¢…–,YRé”å Ê[¾|¹>ýôS?~\_~ùe‰cSRRôî»ïêàÁƒš6mš Ã(§”Jƒò På :T’¤‰'–¸úë­·ÞRRR’¤›+ÀlllÊ%#€Ò¡üTyNNN=z´¤›[ ~öÙgEŽ»víšæÌ™#Iºï¾ûÔ³gÏrË t(¿ôâ‹/*00P’4uêÔ"W½óÎ;º~ýº$iüøñåš@éP~ ©ZµjzõÕW%½ú+))ÉlÕW=Ê=#€ßFùÀÿܾú+??ßôÞ­«¾&L˜`‘|~åÿS­Z5³g;vL’d†Ùª¯GyÄb”ÌÆ0 ÃÒ!¨(²²²ª .ÈÃÃCׯ_—“““233%I«V­¢ü*0V~p‹jÕªi̘1’dÚæ0++K’Ô¦MŠ/ ‚cå·¹qã†êׯ¯øøxÙÚÚšžýµ|ùr=úè£N $¬üà6ÎÎÎzíµ×$ÉT|µiӆ⠨Xù@nܸ¡ÐÐPÅÅÅIbÕPY°ò €"8;;kôèÑ’¤Ö­[«gÏžN 4ì-P9¤§§ëÔ©S:yò¤’’’”œœ¬ëׯ+//ÏÒÑîš¼¼]cÇŽµp*TU”_PE†¡ÈÈHmÛ¶M666Z½zµ¢¢¢, VâúõëjݺµN:%GGG:tHaaa–Ž€*ˆ=‰ ŠX´h‘¶mÛ&I1bÅî(ýûßÿ–²³³méH¨¢XùU@VV–BBB§   =zT®®®–Ž+4|øp½ûî»’¤µkתk×®N€ª†•_P,Z´Hqqq’¤©S§R|á®™±XTM”_`åþóŸÿH’ìììÔ¿ÿ2ŸŸ––¦¹sç*22Rµk×–···î¿ÿ~Íž=[×®]“$egg롇ÒÒ¥Kïhö’ìÛ·O=ô~þùçr»æ0yòdEGGß±ùæÍ›'___µoß^}úôQŸ>}¥1cÆÜ±k”•¿¿¿"##%IË—/·XTM”_`å6oÞ,IjݺµÊtî¹sç¡#FÈßß_&LÐäɓդI½ñÆêÑ£Ç݈ŒRJIIÑÈ‘#£´´4%%%)))ÉTû¬F¥””M›6M<ð€<¨êÕ«K’† ¢üãzæ™g4nÜ8åååiË–-:yò¤Z¶lYèÚçÏŸW÷îÝegg§ÿþ÷¿òõõ-6çtñâEyyyiìØ±ÊËËÓ„ Ô§O5jÔH999š2eŠNŸ>­©S§ªV­ZŠ•$ÅÇÇ«C‡rttÔôéÓåîî®wß}WݺuÓš5kÔ¥KIÒ¦M›ôè£*22R¯¿þº._¾¬!C†ÈÁÁAµjÕ2e¹zõªÚ´i#[[[?^AAAZ½zµžzê)¥¥¥éÅ_,ò¢¢¢äàà ±cǪ_¿~ W:uŠ{üøq%$$èÕW_U@@€4mÚ4uîÜYG5}æË–-ÓÀÕµkWMš4Iñññzþùçåàà ºuë–ü—[[[…††êðáÕî¹l¨Ü(¿ÀŠ]ºtÉôsíÚµËtî™3gäì쬠  RŸccc£­[·šŠ.uïÞ]ßÿ½:tè +W®hìØ±1b„fÏžm:¯C‡jÔ¨‘.\¨áÇkçÎúðÃ5aÂMš4É4îÉ'Ÿ,òº‡RTT”BCCµ|ùryzzþfÖŒŒ üðÃzøá‡ÍŽuìØQõêÕÓêÕ«Õ¯_?IÒ¸qãÔºuk­ZµJvvv¦ë´mÛ¶Ìå—tóïÿðáÃfßCàncÛC°b©©©¦ŸÝÝÝËtnVVV™Ÿ#õøã›ŠI¦Z¿þú«$iݺuÊÈÈPÇŽuúôiÓŸ¼¼<………iïÞ½’¤+VH’^yå•ß¼æîݻեKµjÕJkÖ¬)Uñ%Ý,˜ Š/IjÖ¬™$©wïÞfãš7o®óçÏ+//O’´~ýzuèÐÁT|I’£££  C‡)>>^¹¹¹Ú³g `öy´nÝZáááfó/[¶LmÚ´Ñ7Ì>“ûî»O—.]Ò… Ju?¿%;;[+W®Ô;ï¼£±cÇjþüùrqqщ'$Ýü®?~\ 0_’Ô¦MÝsÏ=¿ëšß¹”””?~@)±ò ¬XÁó¾$•¹ÈòññQZZš222äââRªsnßj°à¼ŒŒ IÒÅ‹%I=zô(ò|///I7·ôòò2½.ILLŒÜÝÝõù矗:§$Õ¬YÓìuAæããSèxnn®rrrdgg§K—.©mÛ¶…æ«W¯ž$)!!AÙÙÙÊÍÍU```¡qAAAºråŠéõ… tæÌÕ¯_¿ÈœçÎ+v;ÃÒÚ·oŸüq¥¤¤¨U«Vª]»¶\]]ecc£«W¯Júÿ¿›¢VúûûzîYi|çnýw+¿Àй¹¹™~NKK+Ó¹mÛ¶U~~¾¾ûî»;–§ `:uê” Ã(ôgË–-¦Ü©©©¥*M/^¬êÕ««sçΦ"§4ŠÚJ°4\\\”œœ\èøµk×$I®®®òöö6;v«¤¤¤Bó=÷ÜsE~†aèø]9oõÚk¯ÉÝÝ]qqqÚ´i“>ûì3-X°ÀlŒŸŸŸ$™s._¾ü»®[°ò°à™b@y ü+æááaú¹¨Â¦$ùË_äêêª)S¦(77·È1§OŸ.ÓœíÚµ“$­^½ºÄq÷Þ{¯rssµnݺߜ388X[¶lQjjª:tè ¸¸¸2e*«–-[ê‡~PVV–Ùñ7ÊÓÓSõë×WõêÕåïï¯mÛ¶™¹víš>lv¬]»vÚ´i“nܸq×2;vL:t0ÛæqïÞ½fÛbzyy©N:…þnN:¥#GŽü®ë”·~€»ò ¬Ø­[éù¤êÕ«§èèhíܹS†aH’8 ƒš·N:úî»ïdgg§Î;ëüùóeÊUÆ SBB‚FŒ¡ÌÌLåååiþüùZ·n†jz^Ö‹/¾¨+Vè³Ï>S~~¾ÒÓÓõÒK/)33Ól¾qãÆéüùóêß¿¿)wnn®:¤3fܑ̡¡¡Z¿~½$I'NœÐàÁƒ m…9jÔ(­]»VãÆÓ‘#G´mÛ6=ùä“¥~ŽÚí ¾sÅméÜ ”_`Å4h`úùøñãe>àÀZ¶l™~ùåuêÔIööö²±±Qxx¸Ö¯_¯èèè2ÏùÅ_¨S§N8p \]]åîî.OOO½ôÒKº~ýº¤›[®[·N5jÔÐý÷ß/WWW¹¸¸(""B¿üòK‘óúùùéÛo¿•‡‡‡þô§?;îêÚµ«fÍš¥?þXÕ«W—›››† ¦þýûkâĉ¦qcÆŒQ¯^½ôÔSOÉÍÍMJKKS÷îÝÍæëСƒ>ýôSíØ±CAAArww—³³³Z´h¡M›6Ý‘Ìo¼ñ†®]»¦àà`yxx¨I“&zâ‰' =“lذa7nœÞyç…‡‡ë‘GÑSO=¥-Z”yõÖ•+W”˜˜(Éü{Üm6FÁ¯Ó¬’¿¿¿âããÕ»wo-Y²äwÍ‘ŸŸ¯£GêôéÓ²±±QHHˆ5jdZåd†’““åââ¢jÕª™Î+î¸$={V{÷½½Õ¼ysÙÛÛ›1 C{öìÑÙ³gåâ⢖-[Êßß_’”““£´´4¹»»›rHRvv¶ÒÓÓåääd¶Íß­’““U­Z5³÷óòò”’’"777³QYYYÊÈȧ§§Ùs®^½ªï¾ûN¹¹¹jÙ²¥BCC‹¼Ö®]»tþüy………©iÓ¦JOOW~~~¡ç`eeeiÇŽºzõªjÔ¨¡{î¹Gµk×.rι¹¹JMMUõêÕÍ>»ÔÔTÙØØ˜=ó-99Y»wïVVV–î½÷^ÕªUKׯ_—ƒƒƒ\\\Ìæ-ø ]]]eoo¯àà`=öØcš;wn‰ynµlÙ2=þøã’¤ 6¨K—.¥>ø#(¿ÀÊ 0@‹/V5”P¨` ddd(..ÎTäåççkúôé?~¼V¯^]hÕZI†ª÷ß_NNNJJJ*¶ˆî4¶=+×­[7I7W*­[·ÎÂiP‘]½zU 4P£FÔ¹sgÕ«WOãÇWttt™Š¯œœ}ýõ×’nnëHñ€òįÿ€•{ì±ÇäêêªôôtýóŸÿÔ#7(Ol{UÀ³Ï>«O>ùD¶¶¶:vì˜6lhéH°bíÚµÓ?ü ]¸pÁìÙcÀÝÆ¶‡PŒ5J¶¶¶ÊÏÏפI“,VlõêÕúá‡$IÆ £ø@¹cåT}ûöÕW_}%mÞ¼Y;v´t$X™ÌÌL…‡‡ëÔ©Sª^½º~ýõWÕ¨QÃÒ±PŰò ªˆ™3gÊÅÅE†ahÈ!JOO·t$X™I“&éÔ©S’¤ØØXŠ/XåTuëÖ5myxüøqýío‹q§¬^½Z³fÍ’$µnÝZÑÑÑN€ªŠm  1 C<òˆÖ¬Y#I3fŒÞxã §Be÷Ã?¨K—.JOO—‡‡‡öíÛ§úõë[:ª(V~@bcc£E‹),,L’4cÆ Ê/ü!û÷ïWÏž=•žž.{{{}öÙg_°(Ê/¨bjÖ¬©uëÖ) @’4nÜ89RyyyN†ÊfÓ¦MêÔ©“®\¹"}ðÁêÑ£‡¥c Š£ü€*(88XëׯWPP$é­·ÞÒƒ>¨ .X8*ƒÜÜ\Mœ8Q]»vÕõë×ekk«9sæhРA–ŽðÌ/¨ÊâââÔ­[7>|X’äîî®I“&iذa²···p:TD;vìÐСCuèÐ!I’‹‹‹>úè#õïßßÂÉ€›XùU˜¿¿¿víÚ¥_|Q’”’’¢˜˜5hÐ@óçÏWVV–…¢¢Ø¶m›ºuë¦öíÛ›Š¯¦M›jÏž=_¨PXù$mܸQ/½ô’NžœœœT·n]¹ººy VÍš5ÍÞËÊÊRFF†<==e†Nž<©ììl5mÚTÉÉɦ,qqq:{ö¬Z·n-GGGIRZZšNœ8!{{{5nÜXEf¼víšNŸ>-'''Õ«WO...ÊÍÍUJJŠižk×®I’ÜÜÜÌæiذ¡$)>>¾ŒŸ&@ÕÃÊ/Šáîîné  ÉÏÏ/¶x*ÊÖ­[åíí­Ï?ÿ\7VXX˜7n¬V­ZéÒ¥KZ²d‰Ô¼ysùúú꥗^’a¦óóòòôꫯÊÏÏOjÚ´©ÂÂÂôÝwß™]'!!AíÛ·WãÆÕ´iSùûûkÕªU…ò†¡éÓ§Ë××W­[·V«V­äçç§… –ù³¸pႼ½½õÑG顇RPP7n,___­\¹ÒllZZšž{î9ùúú*""BáááòññÑâÅ‹McöíÛ§ððp5nÜXª]»¶†ª¬¬,Ó˜… ÊÛÛ[K—.UPPî¹ç½ð º|ù²¼½½õöÛo«cÇŽ Ðý÷߯ÄÄDåäähôèѦk·hÑBúÏþc–155Uƒ *”ñ‹/¾Ð·ß~«ÈÈHIRïÞ½åíí}9~ IDAT-ooomܸÑl;;;ÓßJFù¨ò ÃÐÊ•+5dȳã666EŽß°aƒF­„„„òˆªˆìììWTgôèÑ7nœ.]º¤U«Véøñã0`€&Nœ¨o¾ùF‰‰‰š2eŠæÏŸoVZ½þúëzóÍ75mÚ4]¼xQ‡’§§§¢¢¢Ìž=Õ¯_?8qB«W¯Ö¥K—ôÉ'Ÿèå—_.”cúôéš8q¢¦L™¢¸¸8ÅÅÅiðàÁzî¹çôí·ßþ®ÏdܸqŠŒŒÔ¹sçtâÄ Õ­[׬´2 C½zõÒ’%K4þ|?^ñññZ²d‰ieW\\œzè!988hïÞ½JHHЛo¾©?üPÑÑÑ…®ùòË/kÊ”):qâ„>úè#Óñ©S§ªE‹:pà€8 5jhäÈ‘zï½÷4oÞ<ÅÇÇëüùóêÙ³§úô食~úÉ,ã×_­ ˜2~ùå—ªY³¦"##MŸÏ×_­¤¤$%%%©K—.f¹ ʯÜÜÜßõYT)Uܼyó I†$cÍš5¦ã'N4¿U›6m IF@@€‘““SÞq€•êÒ¥‹Ñ¸qãR_¿~½!ɘ:uªÙñÞ½{’ŒmÛ¶™Žåååµk×6† f†addd®®®FïÞ½ÍÎ=}ú´aooo·ÿ~C’1þ|³qï¿ÿ¾!ɘ9s¦a†‘––fT¯^݈‰‰1—ŸŸo4oÞÜèÛ·o‰÷Ò­[7#00ÐôúìÙ³†$£ÿþfãV­ZeH2öíÛg†alÞ¼ÙdÌ™3§Ø¹ccc ã§Ÿ~2;>hÐ ÃÞÞÞHHH0»§ ˜»té’!Éxøá‡ÍŽÇÅÅÆŒ3ÌŽggguêÔ1†n†alܸÑdÌ;·ØŒŸóÚµk‹c†Q£F cРA%Ž€aðÌ/@•÷ôÓO+66V—/_Ök¯½¦®]»»êkÅŠÚµk—$)::úwýv6À­†ªC‡騱czÿý÷Ë|þŸþô'³×uëÖ•£££Úµkg:fkk«   ]¼xQ’tøða¥§§«GfçÖ«WOÍ›7×Î;Mã$)**ÊlÜí¯÷íÛ§ÔÔTeeeéÃ?4{ÏÍÍMÇŽ+ó}IR§NÌ^‡„„Hº¹-b«V­´mÛ6IRß¾}‹c×®]ªW¯žš4ibv¼W¯^úç?ÿ©={ö˜}=ôP‘óÜ~|ûöíÊÉÉQrrr¡{öôô4Ýsi2–Ö”)S4fÌ?^­[·Öo¼ñ‡ç°Fü‹ ÊsuuULLŒÆ§üQ«V­RÏž= 3 C±±±’$___ 6¬œ“käää$Ã0äèè(GGÇ2ŸïææföÚÁÁA...¦mòn=^°e^JJŠ$ÉÇǧÐ|¾¾¾¦m/]ºTä8___³×III’¤½{÷šm™(IÎÎÎò÷÷/Ó=(êÞ$)''G’”œœ,[[ÛByn•’’Rì}Ìq«5j9ÏíÇ îyûöíÚ»w¯Ù{~~~ªW¯ži~;;»"3”Õ­ß''§?<€µ¢ü@ÒðáÃõöÛoëòåËš8qb¡ß‚–n®úÚ¿¿$)&&F®®®åX¡·ÞzK’Ô¹sg½þúëêÕ«×]¿¦···¤ÿ/·nuñâESÑ`W°êJR¡gŸŒ9r¤úôésW2ÅÇÇGùùùŠ‹‹S```‘c¼¼¼L+ØnU° ®¸²ë·œ7uêTEFF–˜1//Oñññ¿»,0zôh=òÈ#ú׿þõ‡æ°v¶–@EP°úK’öï߯•+Wš½o†&Mš$éæ?`õpt€?¢U«V:wî\¹\+<<\5jÔÐ7ß|cvüرc:|ø°i»ÁÖ­[K’¾þúk³q·Ÿ!///}òÉ'w/tºté"IZ¸pa±c"##uöìÙB«³¾úê+9;;«mÛ¶¿ëÚúÓŸäääô›÷\šŒ’¤ôôôbÇdffêêÕ«jÑ¢EÙÃT1¬üࢣ£M«¿bccõ裚ÞcÕ¸ÛœœœLÛÞmŽŽŽzõÕW5zôh 6LýúõÓÕ«W5jÔ(yxxhøðá’¤† ªwïÞŠ•›››:vì¨-[¶èwÞ1›ÏÙÙY³fÍÒ /¼ 'žxBÏ>û¬üüü¯Í›7Ë××WãÆ»ã÷qï½÷ª_¿~šó+$$Äì‘þõ¯)((H}ô‘Þxã IRHHˆæÎkú<6oÞ¬#F¨ÿþÊËË“&Nœh–ËÝÝ]!!!²µ5ß$ÇÎÎN!!!ª^½z¡Ü¯½öš|||4wî\Ó 0;;;µoß^4[´h‘‚ƒƒõüCÓ§O7e|ï½÷L÷µlÙ2MŸ>]o½õ–rrrfV~|7n– ³1 ðt*Š´´4…„„èòå˪U«V¡çYLŸ>]cÇŽµP:`ÍæÍ›§aÆ)!!A~~~åvÝüü|]¿~]…ʦ[¥§§+;;[žžž²±±)qÎÔÔTåææÊÃãP™t·äåå)%%EÎÎÎrrr*rLFF†²²²äîî~ÇK¤””åå啸’¬4‹sðàAµhÑBË–-+—çÂTf”_ÜfÚ´iEþv²NŸ>]â? ü^¿þú«5j¤àà`µhÑBcÇŽUË–-- ¶yóf-X°@?üðƒRSSuúôéß½U#@UQ>¿~@%òÒK/™¶ð¹u{›aÆQ|€»¦^½zúùçŸõꫯªuëÖòðð°t$T5kÖTDD„&Mš¤ãÇS|”+¿(Âí«¿XõT¬ü ·®þ*xMñT|”_ÁÓÓS/¿ür¡ŸTl”_cĈrvvÖ3ÏÊ/@•U–â«P±Q~ª¤ßS| *.Ê/@•óGН`@ÅDù¨RîDñU€ ¨x(¿UÆ,¾ P€ å J¸ÅW 0 â üX½»Y| *Ê/€U+â«`y”_«UžÅW 0À²(¿VÉÅW 0Àr(¿VÇ’ÅW 0À2(¿V¥"_(À€òGù°©ø*@”/Ê/€U¨ˆÅW 0 ü؆aX:DE.¾n«I“&I’|}}¬={ö¨aÆ9r¤…ÓÀšÙÙÙé¹çž³tŒrAù¨Ô*KñUàÖÌÑÑQÙÙÙN€ªÀÉÉI7nܰtŒrÁ¶‡€J«²_’ùˆ_Àgoéü•±ø*+I¦`>>>Z¾|¹5jdÁT°F“'OÖœ9s,£\Q~*¥ &˜Š¯ÀÀ@­[·®R_bcc•™™©™3gêòåËêÛ·¯¶mÛ¦àà`KG€qrr²t„rǶ‡€J)++ËÒî(Ã0¬îžK üTJ³fÍ2=;ëÂ… zàtäÈ §*Ã0ôÊ+¯hæÌ™’nnÙ¸cÇ5lØÐÂÉ€Êò PiÅÆÆš °ÄÄDuîܹÂ`•ùYe@e@ù¨Ô*SFñÜ}”_€J¯2`_@ù üX…Š\€Q|å‡ò `5*bFñ”/Ê/€U©HÅPþ(¿V§"`_€eP~¬’% 0Š/Àr(¿VËÅ`Y”_«VžÅ`y”_«WÅP1P~ª„»Y€Q|å Ê¸ÅP±P~ª”;Y€Q|å Ê¹ÅP1Q~ª¤?R€Q|å Êú=ÅP±Q~ª´²`_@ÅGù¨òJS€Q|•å*¹£ø*Ê/þ§¨ì§Ÿ~¢ø*{K "‰Uff¦fΜ©ÄÄDµk×Niii’¤ÀÀ@­[·Žâ ¨ÀXùÀmf̘¡Ñ£GK’YñµeË…††Z2€ß@ùÀ*¥¤¤èÈ‘#úñÇ-¥D¿þú«6mÚdé¥räÈ>|XW¯^µt”r1cÆ =ðÀ¦×_@å@ùÀê,^¼XjÞ¼¹Ægé8%Z¼x±ºuëvG猋‹Ó˜1cÔ¬Y3y{{«~ýúzñÅuøðáBcçΫ‡zHùùùfÇ/_¾¬Þ½{«wïÞJLL”$ÍŸ?_ò÷÷׌3îh抪K—.¦Ÿ)¾€Êò €Õ™4i’Ú´i£ÔÔT­]»ÖÒqÊÕÁƒÕ¬Y3}ðÁêÞ½»f̘¡çž{N6lPëÖ­µtéR³ñÇׯe†éØ©S§tß}÷i×®]š2eŠ|}}%IóæÍSzzºž}öYMœ8Q¹¹¹åzoPö–wÚ¹sçÔ·o_9;;[:J¹JKKS¯^½T­Z5}ÿý÷ 6½7|øpuéÒEO=õ”š4i¢°°°"ç8|ø°ºví*777mݺÕlI²··WÇŽõÁ(..NAAAwõž ¬XùÀêdeeÉÁÁ¡Ô㇠¢èèh­_¿^­Zµ’···Ú¶m«mÛ¶I’Þ{ï=5nÜX¾¾¾êÑ£‡®\¹bvþÕ«WõüóÏ+00PÞÞÞ ×|Pè:‡Öƒ>(oooÕ­[WsæÌ)2Off¦&Ož¬† ÊÛÛ[¡¡¡š>}ºòòòJ¼O?ýTgΜÑ[o½U¨´rssÓ¿þõ/effêïÿ{‘çïÚµK;v”ŸŸŸ¶mÛVhŽŽŽŽ’n~ÎPѰò €U)xv•­mé»ý“'OêÔ©SZ»v­¢££ååå¥Ù³gëÑGUtt´6oÞ¬‘#G*33SãÇ× Aƒ´bÅ IRvv¶ºwï®#GŽh„ Ó—_~©¿ýíoÊÈÈPLLŒ¤›«Ñ:tè ???Í™3G¶¶¶š={¶RRR̲äåå©{÷î:pà€F­fÍšéÇÔ´iÓtîÜ9-X° ØûX·nlmmÕ«W¯"ß Sxx¸Ö¬YSè½íÛ·ëÏþ³ÂÃõjÕ*yzz{I2Û** Ê/Våüùó2 C5jÔ(Óyqqq:zô¨BCC%I 6TÛ¶mõÅ_èèÑ£¦•d=z´®]»&///}ñÅÚ½{·¾ùæ=þøã’¤?ÿùÏJKK3eš5k–²³³µuëVÕªUK’Ô£GÕ«WÏ,ÇâÅ‹µuëVíØ±CíÚµ“$EEEÉËËKÑÑÑ7n\±[ ž:uJµk×VµjÕŠ½ÏúõëëСCºqã†Ù¶=zôPÆ µfÍU¯^½ÄÏÊËËK’tñâE5lذıPÞØö€U8qâ„-Z¤§žzJ5kÖT=Êt~Ó¦MMÅWÁkéf‘uëŠÍ›7—a:{ö¬$iýúõòööÖc=f6ß³Ï>«ôôtmß¾]’´sçNuíÚÕT|I’§§§}ôQ³ó–-[¦:uêÈÏÏO§OŸ6ýiÞ¼¹òóóµÿþbï!;;[nnn%Þ§«««¤Â[Ö©SGGÕÎ;K<_’Ú¶m« høðáúøãµoß¾ß<Ê å«°{÷n3F;vìÐСCP¦ó}||Ì^»¸¸y¼`µTFF†$éÒ¥K 4mX nݺ’¤„„IÒ™3gT§NB×½}×Å‹uîÜ9Õ¯_ßìOûöí%ÝÜ>±85jÔ0­|+ÎÙ³gU­Z5yxx˜ß¶m›ÂÃÃÕ³gOÓ–ŽÅqrrÒ˜1côË/¿hìØ±Z½zu‰ã ù¤V®\YìuNŸ>­çŸ^#GŽÔ¥K—4a„bÇ@y£ü`Uúöí+Iúé§ŸÊåz-[¶Ô… þ½ûޝùþÿÿ?IN–D1CÌ”V«Jl±Û7j륔V[Jé;FÔªM­ÚT?FZ¥K­P£´¨¢F¬Ô-BDöxýþðËùJ“8·ëåârqž¯çxœ#ëžçó©3gΤiß²e‹$©J•*’¤gžyF»víRrr²¥aúùçŸÓŒó÷÷×Ñ£G–íZzöì){{{5*ÃÝ_Ó¦MÓÍ›7õÎ;ïd8>5«\¹²Úµk—ivüøq†¡víÚ¥ ÑÀÚ¿Øwww™L&ÅÅÅ=’õÞ|óM¹¸¸èí·ßÖµk×$ݹlæÌ™jÖ¬™|}}%I½{÷Ö¹s礄„%&&jܸq:yòdšùÞ{ï=¹»»«M›6–û½ ÃÐÙ³g5nÜ8ݺu+ÓZ*Uª¤¡C‡jõêÕêÒ¥‹Îž=+Iºvíš‚‚‚4|øpýç?ÿÑÿûßLçÈ—/Ÿ6mÚd À¾ûî»t}Rï KÝÕÂ/x¥J•Òš5ktäÈyyyÉÍÍMM›6ÕË/¿¬eË–YúµhÑBÆ Ó¤I“äîî.777­\¹Rï¾ûnšùŠ/®Í›7+!!AUªT‘«««\\\T¶lY-^¼øž÷yIÒèÑ£5uêTmذAeË–•Éd’———&L˜ >}úè믿¾ïn­`™ÝéÅ®/#“q¿ÿI€'Œ———:wî¬éÓ§g©TT”L&“ÜÜÜҴ߸qC...rvv¶´%%%)**Jîîîrpp°´ÇÄÄhûö튎ŽVéÒ¥UµjÕ × Õü¡âÅ‹«zõêJLLTll¬<==ÓôKIIÑo¿ý¦óçÏËÝÝ]åË—WÙ²e³ú(..NÔ¥K—äé驪U«*_¾|éúÅÄÄ(>>>Ýú’” èèh988ÈÝÝÝÒ¾páBõîÝ[޳%#GŽÔ¨Q£$é¾Á#ð82dˆ&L˜ gggÅÆÆZ»œGÂáþ]àÉâïï¯àà`ùøø¨dÉ’jÛ¶í=ûßìÜ-£`ÇÁÁ!ÃvWWW½òÊ+÷­Í×××r¢$ÙÛÛ§ ×RÙÙÙ©zõêª^½ú}ç̈³³³jÖ¬yß~®®®ruuÍ𙣣£-¯·lÙ¢“'OjæÌ™ªX±¢Í_žL{Àæ,\¸PÝ»w×¶mÛ´yófk—c3öîÝ«~øA5Ò† ¬]dˆ_lNáÂ…5iÒ$k—as‚‚‚¬]Ü;¿`3¿`3¿`3¿`3¿`3¿`3¿`3¿`3¬]À¶„……©téÒÖ.ÀSŠ_°ìüäšöíÛËÏÏÏÚexŠ~rÍ+¯¼¢îÝ»[» OŽ=€Í ü€Í ü€Í ü€Í ü€Í ü€Í ü€Í ü<”³gÏ*...K};–ËÕxÚ~Hdd¤Þzë-U¨PA‹-ºoÿÇ«R¥JjÔ¨!€\Cøx nnnÚ½{·5vìXÅÄÄܳÿÇ,Ã0´sçN¹¹¹=¢*’<}¿ìõ×_W… $I'NTlll†ýÆŽ+IrttTPPÐ#«ÀÓ‡ð ðÀìíí-aVf»¿öï߯ 6H’ºwïή/¹Šð ðP:uêdÙý5aÂÅÅÅ¥y>vìX†!GGGË1‰[¿ÅÞÞ^Ç—tg÷×W_}eyf¹ë‹]_Â/ÀCëØ±£*V¬(Iš;w®¥ý»ï¾c×€GŠð ðÐî¾ûëŸþ±´Ðĉ%IEŠÑöíÛ5|øp™Íf+W†ÇQ‡tèÐ!U«VM’ôÓO?©I“&`@. ü€l=z´fÍš%I*S¦ŒvîÜ©ZµjY¹*<îJ–,©mÛ¶©I“&’¤={ö¨C‡–;Áä Â/:B–Í IDATȆµk×jĈ’î_»wïV¹rå¬\žnnnúî»ïôÊ+¯H’~øá <ØÊU¶…ð ²èÂ… êÙ³§$ÉÃÃC7nT‘"E¬\ž4f³Y«V­RåÊ•%IÓ¦MÓ?ü`åªÛAøY4`ÀݼyS’´páB•/_ÞÊáI•'O­ZµJîîî2 Cï½÷žbbb¬]`¿ 6nܨ5kÖH’ºwï®öíÛ[¹"<é|}}õé§ŸJ’ÂÂÂ4~üx+WØÂ/È‚   IR¾|ù4iÒ$+W[Ñ£GU¯^]Òã¯_¿n劀'áÜÇÖ­[uàÀIRß¾}åååeåŠ`+ììì4fÌIRtt´fÍše劀'áÜÇ¢E‹$ݹ§éƒ>°r5°57VµjÕ$IŸþ¹RRR¬\ðd#ü€{ˆŒŒÔúõë%I­[·Vhžøøx={VgÏžUTTTºç“'OÖÚµkªÖ숊ŠÒàÁƒuðàÁG¶&2÷Ö[oI’.\¸ íÛ·[·à Gø÷°qãFÅÆÆJ’ºvíšíñW®\QïÞ½U°`A•-[VeË–U¾|ùT£F ­Y³ÆÒoÁ‚Ú¸qcŽÕ}?·oßÖĉuôèÑlíܹ³L&“L&“ìììT¬X1ùûûëóÏ?O×÷¯¿þ’½½½œœœtíÚ5K{‰%d6›ïûãâÅ‹3fŒÌf³._¾œnþëׯËl6køðá÷¬ùý÷ß—ÉdRLLL†5šL&9ÒÒÖ¡C‡ ßã¼yódFšñƒ ’ÙlÎpî¬êر£%IëÖ­{àyHÖ.gÛ¶m“tçÈÃúõëgkìéÓ§U¯^=ÅÅÅiذajР<==uêÔ)ë7ÞPÛ¶ms¡êÜçì쬥K—Ê0 …‡‡kñâÅêÙ³§ôÎ;ïXú}ñÅrrrRBB‚V¬Xa96rÒ¤Ii¢3fèÂ… š2eJšu<==•œœ¬¤¤¤t¡“$†¡¤¤$%''çø{Ì“'–,YbyË—/WŸ>}«XúÝ«¾¬òððPÍš5µ}ûvmݺ5'ÊžZ„_p¿þú«$Éßßß²3'«zôè¡Û·okß¾}ªP¡‚¥Ý××W¯¾úªBBB2wãÆ ?^åÊ•Sž“'OÖСC5bÄ]ºtIááázÿý÷Õ»womÙ²ÅÒï­·ÞÒìÙ³5vìX………éï¿ÿÖ?þ(Ÿ ×>|ø°jÔ¨¡ ($$DÅŠËÖûMHHÐÉ“'U¢D KÛ’%KTºtiÕ¯__­ZµR´dÉ’lÍ{·ððp?>ÍK—.=ð|ÙuóæM=z4Ó0óa•/_ÞòóÓ§OçÊÀÓ€c 7nܰü¼P¡BÙ.Ii ûÉ—/Ÿ‚ƒƒåìì,éÎ=XK—.Õ¦M›ô /(..NãÇWŸ>}ôá‡ZÆ;V›7oÖܹsÕ¨Q#8qBË—/×G}”¦_@@@†ëîÛ·O-Z´P5ôÕW_Ýó¸ÃT))):pà€$éúõëúì³ÏtñâE˱…7nÜкuë4pà@™L&9::ªcÇŽZ±b…¦Nšé1÷R­Zµlyqqq–w111Z¹r¥4~üø\Yïˆˆˆ\Yx~@&¢¢¢,?wssËÖX;»;kSRR²<¦fÍš–àK’ÜÝÝU¨P!]¼xQ’ôûï¿ëæÍ›JLLÔ‚ ÒŒuuuµÜ¶k×.†¡Ž;ÞwÍ7ªOŸ>êܹ³æÌ™#‡¬ý±£ªU«Z^*THÿûßÿ$Iúꫯ¯nݺYútëÖMsæÌÑ7ß|“îί¬øæ›oT°`Á4m‘‘‘zõÕW³=WVÄÇÇkÁ‚JHHÐõë×§E‹©nݺ¹²ž»»»åçwíÈÂ/ÈÅ‹—$………©téÒYswø‘Êl6+))IÒV’tàÀ4wkI’£££å8¾ÔûºŠ)rß5·oß®„„uêÔ)ËÁ—$åÉ“G.\$9;;§ÛɵlÙ2¹¹¹iñâÅ–6Ã0äè訥K—>PøU­ZµtÇ1^»v-KcSÃÈøøøt;Ûâââ$)Ýû÷ðð°|Îqqqêß¿¿z÷î­çž{NÕ«WÏvý Â/ÈÄÃìÄI=bðÛo¿Uƒ r¤žÔ]Oýû÷WçÎ3íçåå%éÎe÷»»kܸqÚ¹s§š7o®/¿üRmÚ´ÉR-&“Ižžž>;~ü¸~ùå•/_>Í=dÒc 7oÞ¬‹/ÊÛÛ;Kkå„ÔÏîâÅ‹éêN ñîu´¥³³³f̘¡-[¶¨W¯^úý÷ßeooŸ£5ÞºuËòó¼yóæèÜÀÓÄÎÚÀãêîäêÕ«ÙûüóÏ«I“&š;w®ån¬ûæ›o²5çK/½¤‚ êÿþïÿîÙ¯Aƒ²··×çŸ~ß9íìì´hÑ"õéÓG:tвe˲USF/^,³Ù¬={öhÿþýi~üüóÏ’¤%K–<ô:ÙQ§NIÒêÕ«Ó=ûúë¯ÓôÉŒ“““>ùä9rDË—/ÏñïþË,Xpìü€Lx{{ËÍÍM·oßÖÉ“'³=~Ñ¢EjРêÕ«§÷Þ{OuëÖ•“““®\¹¢àà`…„„(666Ëó999iÊ”)êÞ½»^{í5õìÙSE‹ÕåË—µmÛ6yzzêã?VÉ’%õÁhÚ´i²··WÛ¶måâ⢣GÊ0 õêÕ+ͼ&“IÓ§OWÞ¼yõæ›o*))Io¾ùf¶ß¯$%&&jÙ²ejÒ¤Iºû¹$©X±bªS§Ž–,Y¢   ™L¦Z'»êׯ¯ÚµkkâĉJNNV@@€’““µnÝ:-\¸PmÚ´QÅŠï;O‡4vìX3F;wNsTâÔ©Se6›Óô/R¤H–?Ë»¿Æžyæ™,¾3ÿFø™0™L*W®œ:¤£Gf{|‰%´ÿ~?^K—.Õ¤I“$I P­Zµ’¦oFaQÉ’%U @ËënݺÉÕÕU“'OV«V­d†L&“ªU«¦aÆYúMžþøã,½G;;; :TAAAÚ¶m›š4i¢üùóËÇÇ'Ãv•*UÊrøuäÈK­åË—ÏÒé™ Ã0¬]<®úöí«Ï>ûLÎÎΊˆˆ‹‹ËÍc†nÞ¼)³Ù,77·©íöíÛJLL”‡‡‡ìì2>Å6u]'''¹ººæÈºOº””EFFJz¼Ž¬S§Žvíڥʕ+ëСCÖ.6bÈ!š0a‚œ³uÕ“Œ;¿àêÕ«'IŠ‹‹ÓÎ;x“É$OOÏ ¾$ÉÍÍMžžž™_w¯KðõÿØÙÙÉÓÓó± ¾"""ô믿Jºsg€Gø÷иqcËn¯eË–Y¹تU«V)!!A’Ô¢E +W<Ù¿à<<<ÔªU+IÒºuëaåŠ`‹Rï +Q¢„êׯoÝb€'áÜG¯^½$IÑÑÑš1c†•«­Ù¼y³~ûí7IRÏž=ïyŒ%€ûãØà>äïï/Iš6mš.]ºdåŠ`+’““õ¿ÿýO’”7o^õë×ÏÊO>Â/È‚Q£FI’¢¢¢4pà@+W[1gÎ:tH’Ô¿yzzZ¹"àÉGøYиqcµmÛV’´råJ­^½ÚÊáIªaÆI’J•*¥ÀÀ@+WØÂ/È¢™3gªP¡B’îÜväÈ+W„'Udd¤Úµk§¨¨(ÙÙÙiÑ¢EruuµvY€M ü€,*V¬˜–.]*;;;EFFªY³f ³vYxÂ$&&ª]»v–ðtøðájذ¡•«ládCÓ¦M5räHIRxx¸6l¨3gÎX·(<1¢££Õ¢E mÙ²E’Ô¼ysY¹*À¶~@6 >\ï¿ÿ¾$éìÙ³ª]»¶vïÞmåªð¸;þ¼ôÓO?I’jÖ¬©Õ«WËÁÁÁÊ•¶…ð ÀÌ™35xð`IÒ•+WT¿~}3F‰‰‰V®Ìº¬Áƒ[v6áŽU«VéÅ_Ô¯¿þ*IjÖ¬™6mÚ¤}:ËsÇÅÅ騱cúã?2=199YGŽÑtóæÍLçrqqQ‰%žåõÀ£GøÈ³Ù¬?þøC111š={ö}ï¿?~¼bbb´ÿ~v~ÈPrr²$ÉÎ.㿚ž?^M›6U‰%TµjU•/_^5jÔйsçî9ï¨Q£T°`A=÷ÜszñÅU¸pa5kÖ,MŸ•+WÊÇÇG/¼ð‚ªV­*/// :T)))ÎiooŸé3ðx üdÛ¨Q£$ÝÙQ1eÊ”Lû]ºtIóçÏ—$5nÜXþþþ¤>O–„„I’ƒCú¹cbbÔ¨Q#…‡‡kçκ~ýºöï߯èèhµjÕÊœýÛ/¿ü¢‘#GjèСúçŸtíÚ5:tHmÛ¶µôùá‡ôúë¯ëµ×^SXX˜þþûoÍ›7O“'OÖÌ™33œ×ÞÞ^‰‰‰9ð®@n!üd[Íš5Õ¨Q#IÒ¼yó2=lòäÉŠ‹‹“ôÿ3ø·C‡Él6«hÑ¢éž-_¾\§OŸÖš5kT»vmåÏŸ_~~~š?¾Ž9¢]»ve8çÉ“'%I½{÷–——— ( Ê•+«W¯^–>#FŒP½zõôÙgŸÉÇÇG… RÏž=ÕµkWÍ™3'Ãy‹+¦£GÊ0Œxç 7¤ÿöZ²`ôèÑÚ²e‹e÷×§Ÿ~šæùÝ»¾š4i®/éŒ?^{öìѶmÛôñÇ+Ož<éúlß¾]Ú¾}»¶oßniOJJ’ÉdÒñãÇU¯^½tãjÖ¬)³Ù,õèÑCMš4ÑK/½d9Z1**JЫ¯¾ª ¤§³gÏ*>>^NNNiž}ôÑGêܹ³ªV­ª*UªhòäÉÊ—/_| §~ˆ¿¿¿7n¬Í›7kîܹ4hPšçS¦L±ìú9r¤*ð¸sqq‘tç.AGGÇ û\¿~])))Z½zuºg 6Ì00“$___íØ±CS¦LÑ'Ÿ|¢¡C‡ªX±búì³ÏÔºukEDDÈ0 >}:ù4h ¨¨¨tá—Ùl¶´9::fzO°Â/À5j”6oÞœî¨(Í›7O»¾d®ÿþêß¿¿¨áÇë½÷ÞKf,XPf³Y›6m’ÉdÊÖüþþþZ³fâããµoß>©cÇŽ:uê”òçÏ/;;;µjÕJ&LÈòœãÇ—ÙlÖþýû³]x4øVUÀó÷÷W“&M$Isçε´ïÙ³‡»¾dY•*U” Ë—/§{Ö¨Q#]¿~]ß}÷ÝÏïä䤺uëj̘1JLLÔéÓ§åîî®5jhÕªUЉ‰Éò\—.]Ò /¼@ðÀcŒ_€‡2räHmÚ´ÉvIÒþýû%IM›6U5¬U€'Dê1‚IIIéžuéÒEóçÏ×o¼¡ÀÀ@ÕªUK&“I¡¡¡Zµj•fÏž­²e˦7gÎ>}Z-[¶TñâÅuùòe3F P•*U$IS§NUݺu ¨L™2ºvíš~ûí7………éóÏ?O7orrr¦G4€Ç;¿Åßß_’$;;;¹»»[þ;((Èš¥xB¤Þ›•’’’î™ÙlÖO?ý¤®]»Zª:uêhÀ€*P €<==%ݹ?ÌÇÇÇL•(QB!!!jذ¡|}}Õ¸qc%''ëÇ´Œ©Q£†BBB”7o^uéÒE/¿ü²^yåËÏÏ/ÃZ“““¹ç €ÇœÉ0 ÃÚEÀ¶œ:uJ'OžTþüùU³fÍ4ÏnÞ¼©}ûöéüùóªR¥ŠŠ+¦]»v©I“&òðð$­[·NeÊ”QåÊ•­Q~ŽÛµk—âââÔ¨Q£{öÛ¾}»bbbT¡B•)SæU䌽{÷¦»×«Y³fúñÇ­T€'Éž={T«V-ýøãjÖ¬Y¦ý’““uëÖ-™Íf¹¹¹eiî””EFF*oÞ¼²··Ï´_ll¬âââäææ&³ÙœaŸ„„.\X½{÷Öĉ³´>Ö6dÈM˜0AÎÎΊµv9ß¶ŠÕ¡CùúújРA–cÏR=zT¾¾¾jӦƧݻwëàÁƒêСƒ.\¸`é׳gOçxmmÛ¶Õ˜1cÒ´­ZµJ•+WÎ𘥜2eÊ >ü¾ývîÜ©>ø@e˖ջロkõ¹¡FjÚ´iš¶#FX©Oš*Uª¨D‰zã7Ô¡C­]»6Ã~öööòôôÌrð%ÝÙUæééyÏàKº³sÌÓÓ3ÃàëâÅ‹êСƒªW¯®›7oªU«VY^\§NÒG}¤ùóç§¹? xÜ}Äa£F¸ë @–9;;ë?þÐÔ©SõòË/«hÑ¢Ö.) gggùùù©wïÞ:vìXºíàñbýÿñ‡Í¸té’$Y.‘ÿ·°°0ùúúZ.µ—¤²eË*000Ëkܾ}[‰‰‰Ê—/ŸL&S–Ç}ÿý÷òððP½zõ,m111Ú´i“.\˜åy²êÖ­[Š———W¶ÇV«VM))) çøC}Z§NRTT”nݺ¥ÈÈHk—•'OåÍ›Wnnn*Uª”|}}U¬X±ûÞùÛDø…sòäIIJw—‹‹‹üüüäææ&ùùùYž]¹rå¾ó:T¾¾¾Z¿~½eWÔ¨Q£ªI“&Y¯bÅŠ©GªP¡Bšñ›6mRJJJš^ÉÉÉúöÛo5|øð{³™hÓ¦fΜùPs*TH’tæÌ=ûì³9QëFŽ©Q£FY^‡……€ð”ILLÔ?ü 7jÓ¦M:{ö¬µKÂS®@jÔ¨‘7n¬víÚÝó`[¿ðÐÖ®]«½{÷jñâÅzíµ×Ò…O#!!A!!!jÕª•vìØ‘æYáÂ…ªØØX¹¸¸¨B… –]'w[¿~½êׯ/777KÛÞ½{uõêUµlÙ2Çj•î„_«Zµjª_¿¾ÞyçíÝ»Wµk×VóæÍs : wÜ|•*UJ¯½öš¦OŸN°oñ IDATÀSâÂ… š>}º‚ƒƒ³ôÍmÀ£rýúu­\¹R+W®T¿~ýôÚk¯©ÿþªV­šµK@.#üÂC ÕæÍ›•˜˜¨FåèÜ–ìÀéž—*UJׯ_Ïô~¡¤¤$}÷Ýw3fLšöõë×ëÅ_TÉ’%s´ÞÔ][ÃÞÞ^7Ö¯¿þª-[¶¨xñâ9P; ¤©S§J’*V¬¨mÛ¶©H‘"òööÖ Aƒ¦:uê($$$ÃûóÀ“+""BAAAZ¼xqš#¿óäÉ#Õ­[W/½ô’|}}ååå%Iòôô´V¹°qQQQJJJÒíÛ·ª?ÿüS?ÿü³vîÜ©þùG111 Vpp°š6mªéÓ§çè7nàñBø…‡6xð` .ËH±bÅ©ˆˆK[JJŠvíÚ•Íw’u©Ÿ_ݺusm àaÝ+øJ5pà@M™2E’,ØéÓ§y­ çÄÇÇë½÷ÞÓ믿n ¾š6mª}ûö)$$D;w&øÂcÅÎÎNZ±b…NŸ>­>}úÈÞÞ^ 3fŒ5jÄq6ˆð 9ÆÕÕU’Òy’ƧãÇ«}ûöúõ×_uýúu…††*88Xƒ¶ôÛ¶m›´`ÁKÛúõëÓ…\ëׯWéÒ¥õâ‹/Þw퀀ÙÛÛkàÀ שS§Ô»wo]¸p!çÞ࿤†|ÎÎι¶ð0²|¥"ÀvܺuKÍ›7ל9s$I^^^Z½zµ6nܨ—_~ÙÊÕ÷W²dIÍ™3G¿þú«*W®,IÚ±c‡ªW¯®'NX¹:ä$Â/ä˜Ô#ÿîÞy•š4i¢•+WêØ±cª^½º ,¨gžyF|ðÁ=üóÏ?uæÌ™ ïÿüç?YZ»|ùò3fŒ‚ƒƒU¼xqU¬XQIIIêÙ³çC½§{IýürâE §e'øJEÀ“ïÆ PHHˆ$©zõê:pà€ÚµkgåÊ€ì«R¥Š~ùåuïÞ]’tþüyÕ©SG´naÈ1&#§“ <µÎœ9£råÊiÅŠúïÿ›+k„††***J… VÑ¢EeooŸiß±cÇêóÏ?×™3g,m—/_–···6mÚ¤† fyÝØØX…††ÊÛÛ[ x¨÷p?³gÏÖû￯›7oÊÃÃ#WײãA‚¯»M:Uƒ ’$y{{sOˆØØX5nÜX»wï–$µmÛVË–-ãxCØ„‰'jÈ!2 C… Ö®]»ø;*°9C† Ñ„ äìì¬ØØXk—óH~!Ç$%%©B… JLLTÇŽU«V­,Ý«•[Ö¬Y#GGGµhÑÂÒvúôi­Y³F £££ÕjËÈ—_~©hùòåòööÖþýû­]`ñ°ÁW*0ž<íÛ·××_-Iêܹ³–.]*;;í˜7ožúôé#I*W®œöïßÏ7"›ò4†_ü‹9ÆÁÁA[¶lÑÛo¿­˜˜ÅÄÄXµž¶mÛ¦ ¾¤;ÿ |ì‚/IŠŽŽV||¼>üðC}ûí·Ö.°È©àKâDž4³g϶_7Ö’%K¾`sÞyç >\Òo˜ìÕ«—•+ÀÃbç S9|Ý`<þ.\¸ Š+*::ZÅ‹×ï¿ÿ.///k—䊔”5oÞ\›6m’$­]»V­[·¶rU9ƒ_üÿr+ø’ØÀ“`À€ŠŽŽ–ÉdÒŠ+¾`Óììì´lÙ2Ë×yÿþýmåªð ¿éäf𕊠€Ç×îÝ»µfÍIR÷îÝU¯^=+Wä¾B… iâĉ’¤óçÏkÖ¬YV®Šð Æ£¾R€ðxJ œ5nÜ8+W<:Ý»w×K/½$Iš>}úSs,€­!üX<Êà+—3gÎè»ï¾“$½ù曹þwàqb2™4xð`IÒßÿ­àà`+W€á`ík_©h©!5 Q¹råÉúØšäädÙÛÛ?ÐØ/¾øB†aÈd2iÀ€9\Ù—.]ÒñãÇU¯^=™Íæ\Yãߎ=ªÛ·o«F92_JJжmÛ¦gžyF%J”È‘9ïµÖ¹sçô×_©xñâòööÖ‰'ôÌ3ÏÈÍÍ-W×~P—/_Ö_ý•cŸwFNœ8!Ã0T±bÅ·]»vòööÖÅ‹õÅ_¨gÏž9:?^DD„Î;'Iºuë–’““­\³Ùlù}¯B… Ê“'•+<®¿V ¾R€szõê¥ÐÐP5J 6ÌÖØo¾ùF’TµjU•/_>ÛkŸ|8[ã._¾¬]»v©I“&òðð°´ÇÇÇ«qãÆš1c†úõë—ÓåZ\»vMM›6ÕÁƒ•7o^½ûî»jÙ²¥jÖ¬©;v¨nݺ½Æ×_­çž{.GC¤eË–)00P)))2™L96ïÝúöí+Ã0´eË–×ÎÎN:tЧŸ~ª={öèêÕ«òòòÊÑ5u Ú²e‹BBBôË/¿èÔ©Sú矬]ÞÞÞ*_¾¼êÔ©£€€Õ©SGvvtàØCxê=ÁW*Ž@àá>> Ô… ¬]ÀÊØùO±Ç)øJÅ0NþüùÕ·o_ÍŸ?_±±±Ú½{·Z¶l©fÍšéã?–¿¿¦c÷ìÙ#Ã0$IõêÕËÖºGU=äïï¯o¿ýVyóæµ< ÔÞ½{uåÊ•{SO±“'OÊ××W¥K—¶´•)SFóçÏ·bU‡ÀÀÀ\›»ZµjrqqQll¬víÚ¥N:åÚZHëØ±c Òúõë•’’bi···×Ë/¿¬çž{NåË——òåË'Gv|*¬/>>^‘‘‘ºqã†ÂªC‡éðáÃ2 C/^Ô¤I“4}útuíÚU£FRñâÅ­]6À ÀSiàÀ†$C’Q±bEãòåËÖ.))S¦Xêóöö6N:eí’x¢\»vÍ1b„áááaù3U’Q³fMcÆ Ž5j”!ɰ³³3bbb²µ^ÇŽ ãÂ… ÷í;þ|C’qüøq£sçÎFþüù’%K}ûö5bccÓô½}û¶d”)SÆðôô4Ê—/oLž<ÙHNNNÓïÂ… Æ»ï¾k”(QÂÒ¯wïÞ–~]ºt1žþù4cöîÝkÔ¨QÃ=z´‘’’’®Îï¿ÿÞ(W®œ!ÉxöÙg ???ÃÏÏÏ 5bbb IÆôéÓiÓ¦>>>†———Q¿~}ãøñãéæZ·nQ«V-ÃÓÓÓ(\¸°Ñ¹sg#<<<ÓÏèêÕ«†ŸŸŸ‘/_>ÃÍÍͲöÝ?}º"##µgϵlÙRþþþ2dˆZ´ha“zܰ···\\\²¼VJJŠ~úé'ÕªUKÞÞÞY×®];Õ¯__Ÿ}ö™Ž=ªI“&ÉÓÓS£F’$%&&ªqãÆ:uꔬgŸ}VûöíSPP._¾lùûÌßÿ­ÚµkëöíÛ T¥J•tñâE}ùå—JIIÉðþ—àà`õèÑCƒVPPP†÷R=÷Üsjß¾½Æ¯=z¨dÉ’’”æþ§¹sçÊËËË2Ç'Ÿ|¢–-[êØ±crp¸óOî3fèÃ?Ô›o¾©>úH·nÝÒ'Ÿ|¢ÚµkëСCrwwO·¶›››5iÒ$EEE¥Ù媠  EEEYÚ>¬3gÎÈÞÞ^|ðÌf³Š/®AƒiÅŠ9r¤*V¬¨›7oj×®] WåÊ•¨N:©nݺ–£þ*Uª”é¯Ù¹sç´uëVmÙ²E}ô‘Ê•+§¥K—ê7ÞPrr²ºwïžá¸¸¸88p@‘‘‘iÚcccÓµ÷îÝ[+W®Ô AƒT³fM…„„¨Y³f:sæŒþþûoK¿#GŽXv*JÒ7tàÀuèÐAþþþ–##?ù乸¸hÖ¬Y™¾¯Œøúújß¾}:uêT¶Æ!ûŽ=ªN:YŽ]uppP—.]¨ *X¹:< Š-ªwÞyGï¼óŽöíÛ§qãÆiÆ ŠŠŠÒ‡~¨ 6hùòå쀧‰µÓ7À£õ¸ïøú7v€32Û V£F cÆ FJJŠÑ´iSC’Q½zõlÏ-ÉèÝ»w–ú§îü=ztšöN:¥J•²¼ž;w®aooŸf‡“aƤI“ ³Ùlüý÷߆aÆÛo¿m˜Íæ w\¥º{ç׈# ³Ùl,\¸ð¾µ~ÿý÷†$ãðáÃiÚSw~U¬XÑHLLL×ÿçŸ6 ãÎ.ã£>J3þܹs†“““1sæÌ{®ßªU+£fÍšiÚöìÙcH2vìØai+Z´¨áîîn\½z5MßgŸ}Öxûí·ï¹†½½½1vìØ{öIÕ©S'C’ñõ×_[ÚRRþ?öî;®êúÿÿÿý°TDEAÜ{¯Ì-¥©¹Í‘¦™ššöVËU¦¶œiYŽ¬ÞŽÔ>RÎÚHýºW9nq±d×ï~œ·*xo×Ë…Ë…×ó<_Ï×ãu8"œ;ÏçÓl4oÞÜ(Y²¤e¦Ý?g~;vÌdüüóÏiÆ;tè!Éøå—_ Ã0ŒÃ‡’ŒY³f¥é÷î»ï’Œ¹sçZÚZ·nm´jÕÊrüý÷ß’ÒÌ3 Ã6l˜áââ’©û»×¸qã I†ƒƒC–ÏEæmÞ¼ÙÈŸ?¿å{R£FŒƒZ»,ä¿ÿþ»Q¾|yËk«xñâÆ¡C‡¬]XÅÓ8ó+ýŸ¿ò¬'aÆ×?3F³gÏ–$Ë °Ô¿JûyyyÉd2ñÁ¹àÃÃÃCS§NµÌ°1™Rf:íܹS/¾ø¢Z¶l©ˆˆIÊp&ÒƒÄÇÇK’²t^=ÒתUKçÏŸWRR’$iýúõ*W®œ\]]nù¨Y³¦õ×_I’6nܨ¶mÛ>t†ˆÙlÖèÑ£5}út}ûí·zíµ×²ToFºtéb™á•zRÊ )IÚ´i“âââÔ¬Y³4÷`6›U¡BíÝ»÷_×Êßß_iÚÊ”)£õë×ë³Ï>³|}ÿ-Ë,1)åµÔ¯_??^çÎûWc§>/½ôRšö^½zezŒŒ^WwîÜQddd–jIÝ·.!!AwïÞÍҹȜï¾ûNíÛ·WLLŒlmm5eÊmݺU5jÔ°viÈZµj¥X¾×_¼xQMš4QHHˆ•+<,{ˆÇ¢wïÞ ³vÀSíâÅ‹ºté’$É××W¿üòK®¾R3FQQQš:uª"""T»vmùúúfù 6_Vßhðø8;;+&&Ær¬B… I’ìíí³4–»»»lmmÓ,I—žžžéjJNNV||¼ììì¡ÐÐP•)S&ÃóÏ;'Ã0tåÊ•.]ú¡×;qℎ=ª¦ WUF÷ I±±±’¤ .H’Ú·oŸáù… Ζ:$e¸œ×‚ 4hÐ =ZÿùÏT«V-õë×OÇÏò×ùÞëüs)É’%KJ’Μ9#__ßGWúßóõÏŸS³²TÙƒ¾&Yy¾ïýY311QŽŽŽ™>·yófõïß_‰‰‰rrrÒêÕ«Ó,à dggg}õÕWªU«–FŒ¡;wî¨S§N QõêÕ­] ~á±8v옘L&uëÖMï½÷žªV­*é˼ݺu+Ë×4h^ýu-Z´Ho¼ñFºÇ“““!ŸLÙ¨Q#}ýõ׺xñ¢Š/~ß~õë××–-[t÷î݇ÎÎyùå—egg§~ýú)::Z_|ñEºYL÷Jýy#!!!Óuÿó$éçŸÎðyy\Š/®®]»ªk×®ò÷÷×æÍ›-á—““S–îïÊ•+:~ü¸*T¨`i ‘ƒƒƒüüü2<'5ȺxñbšöÝ»w§9®V­š$é§Ÿ~J³,å?þ˜éú²Kj W°`Á¾F5·oßV=-;;;­^½šà EŸ>}©7ß|S—.]RïÞ½µeË–lûƒ @îÂwwøàõíÛW#GŽÌô˜o¾ù¦–.]ª.]ºè믿VÕªUe†N:¥•+WjüøñÊ—/ŸÞ~ûm½ð 0`€¾øâ .\X‰‰‰Z³fzôè‘î>zöì© ¨{÷îJJJÒ¢E‹î{¯~~~2™LZ·nÜÜÜ$)K3êÕ«§6mÚhâĉ*\¸°ºví*ݾ}[?þø£¼½½Õ¼yóL—UÓ¦MÓË/¿lY–ðäÉ“:~ü¸š4ibéS¦L©W¯^²··—»»»e ÌŒØÙÙièСúþûïåîî®ÀÀ@-Y²D}úô¹ï )U­ZUŸ}ö™:wî,m۶Ͳ·kªúõë«Y³f7nœ ,¨š5kj×®]úüóϳáÙÈšÔ¥ûï·ì&͈#têÔ)I)¿Ÿ°Ô!§‘#GêäÉ“úüóϵuëV}ôÑGšV¯^­víÚYÂ!*THo¼ñ†îܹ“¥±²jéÒ¥*Uª”òçÏ/wwwU¨PAžžžš5k–¥ÏÌ™3uòäIU¬XQeÊ”Ñ_|ñÀ1«V­ªråÊ©H‘"*X° Úµk§:uêX~f»ŸO>ùDgΜ‘——— ( Î;kìØ±éú¨^½zêÝ»·*V¬¨>ø@‹/–¤†rÙíèÑ£’þ÷ïÿ^pp°V¬X!)åßàˆ#¬\žF³fͲì÷5}úô\ÿ;1àјŒûý&d£ZµjéàÁƒêÔ©3¿€\ u˜”ò—˹uÁY·gÏ=ûì³i–±ó÷÷×”)SôÌ3Ï<ðÜÝ»w«Aƒ’¤åË—«oß¾TCLLŒ8 K—.ÉÃÃCåË—W‰%,ÇÇÇ+66V… ’Édzh{rr²víÚ¥ .ÈÅÅEåË—Ïpÿ¬èèh…„„(66Vžžžjذ¡òåËg©)99Ù²´ã½ç$&&ÊÅÅ%Ã=³î•º ž‹‹‹llltëÖ-9;;[®!I†adØ.IgÏžÕÞ½{egg'oooÕ¨Qã¡ËmEGGË0 ,XÐÒ–””¤¨¨(,XÐrþíÛ·eoo/ggçtcüý÷ß:}ú´Ìf³J—.}ߥèSŸ ''§û.Ù«W/?~\û÷ïWXX˜>,=ûì³ifÏݹsG7nÜH·ÌöÍ›7µgÏ™Íf5iÒDŽŽŽºsçŽ ( {{û4}cbb” 777íØ±CÏ<󌂃ƒ-Kä]¹rEÒÿö KHHPLLŒ\]]ÓÔr¿ö9}ú´e Ç™3gêí·ßÎÔy¸?Ã0T¯^=íÛ·OÎÎÎ:räȵ ;ò–mÛ¶©iÓ¦2 C/½ô’þïÿþÏÚ%@Žš0a‚¦OŸ.GGGÅÅÅY»œÇ‚ð áûäöŒà €Gc†jÔ¨¡Ã‡«[·nz÷Ýw-áþ0ÉÉÉ*\¸°nß¾­¾}ûjùòå9\-ž4÷†_9åìÙ³*T¨\]]%¥f]ºtÑßÿ­³gÏÞwiÅìôÕW_iðàÁ’¤}ûö©víÚ9~ͼî—_~Q»ví$I“'OÖ”)S¬[žz/¿ü²V®\)[[[>|X+V´vIcžÆð‹eà)•›—@$øàÑ™L&Í™3Gþù§2|I)KúûûK’Ö¯_¯ØØØœ*¸¯uëÖÉËËKõêÕÓ³Ï>+___íÚµKß~ûíc ¾$é»ï¾“$+VL5kÖ|,×ÌëæÎ+I*X°`–öþrÊ;ï¼#%''ëÓO?µv9€lFøO±Ü€|ðïµnÝZÏ>ûì#›ºÔaTT”¾ÿþûì, y@¯^½r<¸-V¯^-³Ù,Izå•WiŒ;wê½÷ÞÓË/¿¬=zhìØ±Ú¹s§åñØØX™L&}þùçÙRsflÚ´I&“I‡zl×ü7¢££­cîß¿_ŽŽŽ ÎÖqï5{öl999åÈØýúõ“”²¼êæÍ›³|þÎ;Õ±cGË„€Üƒð +0‚/r{{{5J’täÈX¹"àñ ×’%K$I/¼ðB–– Åýýþûï’$??¿,¾}ûªQ£Fúúë¯-û”üüóÏjÔ¨‘˜íõæU]ºtQçγuL³Ù¬øøx%''gë¸÷rvvV‘"Erdì_|Qùòå“$ýöÛo™>ï÷ß׳Ï>«FiãÆš>}zŽÔxt„_IÖ À¾È]† &I)?#DEEY¹"àñxóÍ7u÷î]™L&Mš4ÉÚåäEGÚ IDAT IIIÚ¶m›$©E‹Y>РAZ¹r¥>þøc={VkÖ¬Q@@€Ž9¢_ýU111Ù]2r™aÆéܹs92¶“““6l(I zhÿ]»vé…^¿¿¿¶oß.)åF˜% ¹µ äcÆŒ‘”F¥`AAA*[¶lŽ]“à €Ü§@š6mš ¤ .hüøñš?¾µËrT@@€~úé'IRŸ>}Ô A+W”7œ>}Ú²Ô^£F²tî¾}ûôí·ßjèСš0aBºÇýýý3 Ô8 ùóç+66VUªTј1cäè蘦OXX˜¾ùæ>}ZjÑ¢…úõë'{{û4ýöîÝ«•+WêÂ… rrrR5ôòË/ËÓÓó¾uóÍ7 ×þóŸûÎXšÓ­[·T¶lY½ýöÛrqqIÓ÷üùóúꫯ*[[[5nÜX¯¾úªœ%I .Ôõë×5aÂÙÙýï­¾eË–éĉš8q¢¾ùæ8qB’4~üxIR™2e4hР ëÛ½{·Ö®]«‰'jñâÅÚ½{·Õ©S'uéÒå¾÷.Iü±jÔ¨¡víÚ¥iÿàƒT§N½ð –¶hñâÅŠŒŒTÉ’%5zôhýøãrrr²,‘¹uëVýöÛozÿý÷%Iqqqš:uªºté"“ɤ… *>>^ÕªUÓ¨Q£,3¹2ë™gžQHHˆŽ?®„„988¤ëóÇhòäÉ–ÀKJ ÎFŽ©Ñ£G?ðõ°f~Òxœ3À¾È½^}õU5mÚT’´`Á­^½ÚÊ9çøñã«yóæY¾ö’´}ûv}ðÁ–ã»wïjÆŒúè£ÔµkW™Íf%%%iÒ¤IêÑ£ÇkËHêë2))I§NJóØü¡gŸ}V­[·¶_NNN7nœÎœ9£éÓ§|@neAÍš5 IF§N¬] €Lš={¶!Édx{{'NœÈÖñÇŒc¿R¥JÆ¥K—²u|ðïEDDEŠ1$ùòå3¶lÙbí’€laøøø’ cóæÍÖ.)OY¸p¡åçþ .déÜ:FrròCûÆÄÄ’ 4×Y°`!É8pà€¥Ÿ§§§Ñ¦M#>>ÞÒï?þ0L&“±råJÃ0 ãÔ©S†½½½Ñ¥K#!!!͵bcc Ã0ŒÀÀ@C’qðàAãæÍ›FË–-’%Kÿý÷Cë-X° áììl„††ZÚÖ¬YcH26mÚd†a$%%åË—7êׯoDGG[ú8pÀppp0æÌ™ci›?¾a2™Œµk×§OŸ6ÜÜÜŒŽ;f³ÙÒÇßßßhݺõCk3 ÃøòË/ IF«V­ŒÄÄDÃ0 Ãl6/½ô’‘/_>ãâÅ‹†aÆž={ IÆï¿ÿn9·D‰Ƙ1cÒY¤Hã­·Þ²W¯^ݨT©’eiûâ‹/ IF‡,mÓ¦M3î} óƆ$£X±bÆåË—-ísçÎ5$GÍÔ=¦úóÏ?-¯Ñ_ýÕ0Œ”×CãÆ-í’ '''cܸqÆ•+W²4>äãÇ7$ŽŽŽÖ.å±aÙC@†rr Df|ðd(Q¢„V¯^­¶mÛ*>>^:uR`` žyæk—d‹Ë—/«M›6:{ö¬$éÃ?ÔsÏ=g媞\‹/ÖâÅ‹%¥,()Íì¢.ç÷0ÑÑÑ*P €ll2¿pQ¿~ýT¼xqËqÛ¶m%I'NœPÍš5õ믿êêÕ«š4iRšåíZ¶l©*UªhëÖ­êÝ»·¾ûî;%&&jöìÙé–BtrrJs|éÒ%½ú꫊‰‰QHHˆJ—.©Z;wî¬ *XŽÛ´i#“ɤ'NèùçŸ×îÝ»¦µk×*þü–~5kÖT“&M´uëV5J’4tèPýöÛo­[·¾o¿J•*)&&F‡VµjÕ8f¯^½Ô¬Y3uíÚU‘‘‘úöÛoe¥V[[ÛÖ*¥,×7tèP˲‡ãÆSƒ Ò,ãigg§»wïf©†C‡ÉÏÏÏrü×_IR†a\ªÂ… §›}uõêUݺuËrìëë+;;;íÞ½[ݺu³´_¾|YgÏžM7ã,'ݹsÇòyÍš5õöÛoëÈ‘#š1c†V­Z¥ääd]¼xQ—/_V×®]õþûï?Öú€'Å”)S4uêTk—XdÏŸHò¼1cÆhöìÙ’d ÀNž<™©s ¾ÈžþyíÛ·OuêÔ‘$;vL-[¶TË–-Ù¹Zhh¨^yåU®\Ù|-ZTš:u*ÁW*Y²¤åóÔ¥î2«råÊ9r¤–/_®±cǦ™¡“œœ¬€€õìÙ3Kc>÷ÜsòóóÓ[o½eÙë-Õ… ,¿ãôìÙSNNN6lXšåîtíÚµtã¶mÛV›6mÒÏ?ÿ¬^½z¥™åô¨êÔ©£ºuëê½÷ÞÓ±cÇÒ|XsçÎU“&MT¹re-_¾\‰‰‰²±±Ñ!CtôèÑ4³b3îÝÓéøñãY>Ö¬Y9r¤æÎ+5lØPM›6•§§§zöì©J•*ei<{{{­_¿^wïÞU•*UÔªU+uîÜYõêÕ“þüóOI)¡Ýòå˵oß>•+WNmÛ¶U‡äã㣟þ9ñ›6mªÀÀ@ýöÛoêÔ©S–gYý“ÉdR@@€\]]U³fM5oÞ\]»vU£Fäíí­ 6HJÙìÊ•+ £££eÿ/'''õîÝÛ&½ú꫺v횊)¢2eÊèå—_~h Õ«WWµjÕÔ¹sgU«VMÁÁÁúòË/-ûkedüøñŠŠŠRåʕթS'U©REwïÞM·ÚܹsU±bEµnÝZE‹•‡‡‡\]]U·n]9::þ‹g.kR_—vvvéö#€'—ÉÈh^ ›ÕªUKT§N´nÝ:k—à_úä“O,.{{{ßw D‚/ò¶‹/jÖ¬YúꫯÒíÑâää$???•/_^E‹•«««•ªÄÓ"66V‘‘‘ Ó©S§tóæÍ4󯯬S§NzçwT»vm+U™·Ý»äUêÛMIIIrssStt´¨¯¿þú‘Æ>wîœ6lØ °°0ÙØØÈÏÏOÏ?ÿ¼eù¹ääd­]»VµjÕJó»Ibb¢Ö¯_¯:uê¤Y¾/66Vk×®Õ” oooùûû§{mœ?^k֬щ'T¨P!Õ¯__Ï=÷œœœœtùòemݺUþþþi ÇëØ±cªW¯ž|}}3¼ŸuëÖ©\¹rªZµjšö5kÖ¨R¥J–%¥”Ùfëׯ×Þ½{£%J¨E‹jذ¡âããõã?Ê××WõêÕK3ÖÑ£GuäȵlÙÒ<]¼xQû÷ïW\\œ<==Õ¬Y³ ë[¼x±† ¢7n(((H!!!*P €ºtéb™ý+I‘‘‘úñÇõüóÏËËË+͵øá]»vM5RÏž=õÓO?É××WÕ«W·ô3›ÍÚ¶m›®\¹"???Õ©SG^^^êׯŸf̘!Iúû￵ÿ~½òÊ+–çcÆ 龦wïÞÕ?þøÀç=#Í›7WHHˆªT©¢Ã‡?°ï®]»4uêTZÚìíí5lØ0}úé§™¾&eôr &húôérttÌÒ à'á Â/ ïyXFðÀÓãúõëZµj•V¬X¡={öX» ___õéÓG}ûöU… ¬]Nžv¿7>S—ôóóÓ©S§¬U²àÞðËÍÍ-G®‘ ;;;ÙØüoaª5kÖ¨[·núá‡Ôµk×¹î½âââäææ¦øøx½ñÆúüóÏ3uÞáÇõþûïë‡~a?~¼¦M›–ÃÕ¹áWîö4†_ÿ~÷MÀSi̘1’RB®Ô%S0‚/ž.9r¤FŽ© .(88X‡RXX˜>¬+W®(::ÚÚe"stt”»»»ªT©¢òåË«jÕª–%ÙÓ˺Z·n­M›6)<<\û÷ïgæ$¥,7رcGuèÐAžžž:vì˜V¯^-uìØñ±Ô°qãFÅÇÇKÒ÷1û§ªU«* @;wîÔ´iÓôŸÿü'§J<"Â/À#3fŒ¢¢¢4uêTEDDÈßß_:u²,÷àëë«_~ù…à €§H‰%Ô§OõéÓÇÚ¥<±^}õU-Y²D>>>:s挵Ëþµ—^zIcÇŽ•ÙlÖ²eË¿ž%J”PëÖ­eooŸc×(Uª”¬ýû÷ëèÑ£rvvÖ§Ÿ~ªÁƒËÎîñ¼e¹|ùrI’›››žþù,Ÿß°aCËÞk€Ü…ð ð¯L™2E’4uêT9s&M𔥵Öä=©ûimÞ¼YK–,Ñ”)Srl)=dvíÚ©]»v9z WWW?>G¯ñ ÇŽÓ¦M›$I={öT¾|ù¬V ûÙ<¼ 6eÊMž<ÙrLðà^©ûGEEiÞ¼yV®>úè#™ÍfÙÚÚjôèÑÖ.Í¿ÙbÊ”)š2eŠJ—.Mð Ö­[«~ýú’¤™3g²¤'¬jÛ¶mZµj•¤”e9Ë–-kåŠÙð m&Ož¬ƒ|HgÞ¼y²±±Qll¬† "³Ùlí’ðJ}ý†¡üùókúôéÖ. ¿ÙÊÅÅÅÚ%È…4h J’~ýõWBXÅðáÃuôèQIÒ¤I“T²dI+WÈ „_x,fÍš¥2eÊHJY9âÇ´rExš|öÙgZºt©$©I“&3fŒu äÂ/<®®® Pþüù•””¤—^zIÁÁÁÖ. O+VhôèÑ’$///­ZµJvvvV® S¿ðØÔ®][?üðƒìíí§6mÚhõêÕÖ. yجY³Ô¯_?™Íf¹ºº*00PÞÞÞÖ. ƒ¿ðX¥^ùòåS||¼zõê¥ñãÇ+))ÉÚ¥!‰‰‰QŸ>}4vìX†!mܸQ5jÔ°vi€Fø€Ç®sçÎ ”««« ÃÐŒ3Ô¤I:tÈÚ¥!øã?T»vm­ZµJ’TªT)mÛ¶MM›6µre€Çð VÑ¢E íÝ»×2gçΪ[·®  ÐÐP+W‡'Ñ®]»Ô±cGµnÝZaaa’$íÝ»WÕªU³ru€Ç…ð VS¶lYíØ±CãÆ“½½½’’’´téRU©RE­ZµÒÊ•+uíÚ5k—‰\,""B‹-RýúõÕ°aCmܸQ’T°`AÍ™3G*R¤ˆ•«]ýúõӻᆱ 6Èl6kË–-Ú²e‹L&“*W®¬† ª|ùòòññQ¡B…dkkkíÒñ˜%&&êæÍ›:s挎;¦;vèÔ©Siú888èå—_Öû￯%JX©R€5~ W¨\¹²Ö®]«£Gê‹/¾P@@€"##e†Ž9¢#GŽX»Däb%K–T¯^½ôÆo¨dÉ’Ö.`E„_ÈU*W®¬ è³Ï>ÓÎ;µyófmݺU¡¡¡ºzõªµËC.áíí­Š+ªE‹zî¹çT»vmÙØ°Ë €ð ¹”½½½š4i¢&MšXÚîܹ£ëׯëÖ­[2 ÊÕÁlmmåââ"///999Y»@.Eø€'†‹‹‹\\\¬]ÈŘ €<ƒð yáò Â/ä„_È3¿g~ Ï ü@žAø€<ƒð yáò Â/ä„_È3¿g~ Ï ü@žAø€<ƒð yáò Â/ä„_È3¿g~ Ï ü@žAø€<ƒð yáò Â/ä„_È3¿g~ Ï ü@žAø€<ƒð yáò Â/ä„_È3¿g~!ÛÅÄÄèìÙ³™ê{âÄ %&&æpEàiAø…lõÅ_ÈÏÏO|hßäädµoß^åË—W@@Àc¨äu„_ÈVgÏžÕÕ«WõÇ(88ø}—/_®°°09sF×®]{<€<ð Ùjܸq*P €$iêÔ©÷í—””¤>úH’äíí­×^{í±Ôò6Â/d+½þúë’¤àà`…„„dØoÅŠ:uê”$i„ Ê—/ßc«ä]„_Èv›ý•””¤?üP’äããì/m¿í<<<4tèPIRPPPºÙ_÷Îú;v¬{ o²³vțƎ«E‹)***Íì/Ã0,³¾|}}™õÑ¡Cmß¾ÝÚegí$~!‡¤Îþš9s¦‚‚‚T¶lYIÒùóç™õY­›7oZ» à‰Aø…óöÛokáÂ…ŠŠŠÒåË—%IÇ—Ĭ/È*///uèÐÁÚe¹árŒ‡‡‡ ¤9sæ(::Z®®®º}û¶$i̘1²···r…{%%%)<<ܲ”œ¯¯¯¾üòK+Wä~6Ö.yÛĉU°`AI²_¾¾¾2dˆ5Ë€\ïÂ… *S¦ŒvíÚ%I:v옕+ž „_ÈQ… Ö°aÃÒ´7ŽY_ G~!Ç5JÎÎÎ’$ooo 0ÀÊ@î5tèPX>òçÏoí’€' ár\Ñ¢E5tèPI)³¾òåËgåŠ ÷ªW¯žºwïnù`å kì²k ððpmݺUaaa:}ú´¢££uçÎEGGg×%ðKJJ’“““–,Y¢¥K—Z»ä...rqqQÁ‚U¶lYU¨PAÍš5“———µK<Á9ü2›ÍÚ²e‹–-[¦àà`EDDdg]È£öïßoíË•/_^-[¶Ô€T¿~}k—xÂd9üJHHЊ+4cÆ ………¥ÐÎN¥K—–‹‹‹lmmåââ’-…È[nݺ%Ã0©sçÎÉl6K’¦E‹©nݺš8q¢:vì(Vi<\–¯7êÍ7ßÔ™3g,mjÓ¦ž{î95kÖL*T`=rY¯C‡iëÖ­úùçŸ"³Ù¬½{÷ªK—.ªU«–,X † Z»T@.—©©‘‘‘êÒ¥‹:vìh ¾üüü´`Á]ºtI6lÐðáÃUµjU‚/Y–/_>Õ¯__cƌі-[tîÜ9͘1C%J”$8p@7Öo¼¡¸¸8+W ÈÍ~mÛ¶M5jÔкuë$IîîîZ¸p¡BCC5tèP¹»»çx‘ž.%J”ÐØ±cuêÔ)}øá‡rrr’ÙlÖüùóU¿~}?~ÜÚ%r©†_ëׯ—¿¿¿.\¸ IêÞ½»BCCõúë¯3à @ŽË—/ŸÞyç>|XMš4‘$>|X7Ö®]»¬\ 7ºoø nݺéîÝ»²··×¢E‹ "EŠ<Îú@~~~ Òĉ%¥,ÅÚªU+mß¾ÝÊ•r› ïßÿ]}ûöUrr²œµnÝ: 2äq×¶¶¶ú裴hÑ"ÙÚÚ*&&F:tÐáÇ­] I~…‡‡«{÷îJHH£££Õ®];kÔé 2DË–-“ÉdÒÍ›7Õ±cGݺuËÚer‰4áWrr²zõêey#yÙ²ejÚ´©U €ûéÓ§>øàI)=3S©Ò„_ ,ÐîÝ»%IÇW=¬R<Ì„ Ô¦MI){Z¹"@n` ¿._¾¬I“&I’*V¬¨O>ùÄjEÀÃØØØhÙ²erww—$9RwïÞµrUk³„_³gÏÖíÛ·%IóæÍS¾|ù¬Vd†§§§eùÓ'OjÙ²eV®`m6’tëÖ--^¼X’Ô¤Iùûû[µ(ȬAƒÉÇÇG’4sæL%''[¹"€5ÙHÒêÕ«%Iš8q¢U €¬°··×رc%Iááá ²rEk²‘¤åË—K’J•*¥çž{Ϊ=‰‚ƒƒ5aÂk—ñHBB!Ý™ IDATBôé§Ÿfû¸—/_Vxx¸e)MdÍ¥K—4}út;wÎÒ¶råJ­Y³ÆŠUå^}úô‘“““¤ÿ}?€§˜Í–-[d†$©]»vYÀÑÑQQQQúé§ŸÒ=¶téR*Tè_ù(¾üòKmÞ¼9[Ç Ðÿýßÿeë˜ÖÖµkW}ñÅÙ2Ö{ï½§É“'«wïÞÚ»w¯Nœ8¡àà`õèÑCgϞ͖kÜkóæÍúòË/³}\<™Ú¶m+)eÃ}ûöY¹€µØíÙ³G’äìì¬zõêey'''=ÿüóúæ›oÔ¥KKûéÓ§õÛo¿ièСZ°`Aºó¢££uöìY™Íf•-[Ö²dY*³Ù¬Û·o+þürppÐéÓ§uóæMU©REùòå{`M·nÝ’ÙlV||¼nÞ¼)IÊ—/Ÿœ-}bbb*;;;U­ZU¶¶¶óÎ;JLLTbb¢eL;;;,X0M¿¤¤$…††ÊÍÍM%J”¸ïx'NœÐ;wT¬X±ö{TÑÑÑ2 C TLLŒNž<)Ÿtad:uT»vmËñ;wd†\]]Óô‹Wll¬ ( {{û ¯¹fÍ5oÞ\óçÏ·´•-[VÍš5K7Ž««kºY† Љ‰QÁ‚egg'IŠUxx¸Ìf³Š/.I)_¿øøx™ÍfË×ÃÆÆ&]ÝaaaŠŠŠÊðyŽ‹‹S||¼ *¤„„?~\...òññ±ô¹yó¦Î;§²eË*þüÞwFbcc-¯/ŸtuݺuKçÏŸ—­­­Ê–-+‡L—/_ÖåË—åââ"__ßÎè ULLŒ<==U²dÉt'%%éÈ‘#2›ÍòööV‘"EÒõ¹sçŽNœ8!{{{U®\ÙòõûgŸ³gÏÊd2ÉÛÛ;Ýk111QgΜQtt´<==³üï¢yóæ–ÏwíÚ¥úõëgé|@Þ`sìØ1IR¥J•ù øþýûkóæÍºxñ¢¥mÅŠòóóK|¤2dˆ<<ûì³t}ýõWU¨PA•*URݺuUªT)U©R%MŸ ÈËËK5kÖTíÚµU´hQ½òÊ+–Çããã5räH)RDuëÖU5äãã“fÖeRR’ú÷ï¯Â… «zõêªV­š .¬Ñ£G[úü÷¿ÿUñâÅU¾|yÕ®][ÞÞÞòóóËÒ½ßî¦~_<}lNž<))e†Î£ò÷÷WñâŵbÅ I)Ó’%KÔ·o_™L¦týK—.­-[¶èòå˺té’V®\©ß~ûM&LH×wêÔ©j×®"""tøða•/_^]ºtyà2z§OŸVéÒ¥õÊ+¯èƺqã†åÍÿO?ýTï¼óŽF¥sçÎ)44T*TPçε{÷îûŽùǨeË–jÒ¤‰eÌ{"Ã0ôúë¯ë«¯¾ÒÕ«Wµ~ýzíܹS~ø¡¥Ï™3gÔºukyzzêï¿ÿVdd¤6oÞ¬­[·êõ×_øEýõ—V¬X¡?ÿüSW¯^Õ‡~¨Å‹ë‡~¸ï9#GŽT§N4`À;wN’4~üx>^K—.ÕK/½¤‚ êçŸÖœ9s4{öl]¿~]W¯^ÕÞ½{Õ¦MI)!]ÿþýåëëkùzѤI“®+W®è·ß~KäÔªUK»wïÖµk×táÂÍ™3Gß|óæÍ›÷À±3Ãl6륗^Rhh¨nܸ¡S§N©oß¾5jTš}÷¶mÛ¦víÚ©T©RÚ·oŸ"##ª>}úXúÌ›7OÇW÷îÝuüøq]¿~]{öìQÆ -}† ¢åË—kÉ’%º|ù²Îœ9£¦M›ªsçÎ —”l­ZµJË—/Wdd¤®\¹¢­[·ªQ£F’Rf©½þúëêÚµ«"""tãÆ =zT#FŒÈòý§~Ký¾x ¹¹¹’Œ#FYõÚk¯nnn†aÆÄ‰Ê•+†aþù§acccœ9sÆ0$Û¶m{àX'N4|||,ÇgÏž5$-Z´HÓïܹs†1qâÄŽW¦LcðàÁiÚÌf³áååe4mÚ4Mûõë× =zôxà˜Ï?ÿ¼Ñ²eËtíÓ¦M3$7nLÓÞ»wo£bÅŠ–ãáÇEŠ1¢¢¢Òô[¸p¡accc\»ví¾×ž2eŠ!É8}útºÇbcc IưaÃ,m:t0 .XÚÌf³áëëk 8ÐÒ6~üxÃÕÕ5Íx7oÞ4J—.m4mÚÔøá‡ “Éd,\¸ð¾µ¥ºxñ¢ÑºukC’!Épvv6Úµkg¬^½:M¿eË–&“É8~ü¸¥í»ï¾3${öì1 Ã0>ùäÃÁÁÁ¸{÷î}¯7dÈÃÏÏ/]ûСC OOÏtÏóüùó #22Ò0 Ãxï½÷ IFHHˆ¥Orr²áååe¸¹¹7oÞ´´‡††’ÒÝ˽NŸ>mØØØ<Ò¿¥^½zÍš5³ïÚµËdlÙ²ÅÒÖ¸qc£}ûöYÛl6~~~Ƹqã,m­Zµ2Š-jDGGgxNBB‚áîîžîßß½Nœ8a˜L&cÁ‚iÚcbb ãÝwß5 Ã0Fm”(QÂHNNÎpœmÛ¶’ŒíÛ·gõÖÒi×®!ɨS§Î¿ È- *dH2 *díR24yòdËûÂÈ}ÆoH2­]Êcc—ºÔ`þUˆÖ¿M›6M»wïÖ²eËÔ¬Y3ùøød8›*..NK–,ÑÞ½{©ØØX]¸pAçÏŸWBBBšåÛ¶m›æÜ’%KªZµjú믿²\ãÙ³guéÒ%5*M{áÂ…Õ¤IíØ±#ËcÞ«E‹iŽË”)£ 6XŽƒƒƒåéé©U«V¥éwþüy™Íf?~ܲ§Uv¨P¡‚Š/n96™LòóóÓùóçx^¡B…´téRµlÙR;vìPÇŽ5dȇ^ÏËËK¿ýö›BCC¨íÛ·kÓ¦MúùçŸbÙ ¬G=z´¾þúkÍœ9S’ôÕW_©víÚª[·®$©I“&JJJRíÚµ5pà@µjÕJÕ«WÏp&á?ÝïyŽˆˆ°<Ï©³Žììì,ŸK)û†•*UJNNNiö¤*]º´$éÂ… ÷½îöíÛ-3¯äöíÛZ´h‘Ž=ªÈÈHÅÇÇëÔ©Sٲ졔2ÃpÑ¢EŠˆˆPdd¤’’’tëÖ-ËL,Ã0´}ûvõîÝû¾3ùŽ=ª7n<ð^BBBd†®^½ªÅ‹§yÌÍÍͲô`³fÍ4gÎ5lØP PóæÍU©R%KߪU«ÊÃÃC]»vUÿþýÕ®];5hÐà¾{Ë=Hê|QQQY>7Øe×@åÊ•Ó3Ï<£ùóçkíÚµZ°`A†ýbccU¯^=]½zU}úôQ… äââ¢;vèØ±cŠ‹‹K~)R$Ýžžžº|ùr–kLÝïé~cÞºu+Ëc¦2™LéD;;»4Fdd¤lllôý÷ß§;¿uëÖ2 ã¾ãÛÚÚJJY¦ïŸîÞ½›¦OªÔ à^öööJLL|À¤¨S§Ž¼½½uöìY 0 S¡SªŠ+ªbÅŠ5j”"##Õ¾}{-\¸Po¾ù¦Ê—//GGGõïß_K–,Ñ| sçÎ)((H .´ŒQ¯^=ýúë¯úôÓO5qâDÅÇÇË××W‹/–¿¿ÿ¯);;»L=ÏùòåK²ØÛÛ§{îRû<è¹K}ý+Vì¾}.^¼¨ºuëÊÞÞ^½zõRåÊ•åææ¦õë×k×®]¼¯ÌV›6mT¹reuêÔIÎÎÎrqqQDD„bbb$¥„ÏwïÞ}`7oÞ|è½Ü¸qÃrM;»´ßJ|||T²dIIÒ‹/¾¨5kÖhÁ‚9r¤’’’T¥J-Y²DõêÕ“«««¶mÛ¦iÓ¦iÑ¢Eš>}º\]]õÁ<ÒÒ‡€§›]Á‚uãÆl™)Ñ·o_ :TùóçWçÎ3줣Gj×®]ª_¿¾¥ýêÕ«ö¿råJº¶K—.©L™2Y®ÏÝÝý¾cþìÝw\ÕåÿÿñCDAʼnâ6ÎÔÄ=Kû¤„ZΜ¹5wB6(5µ2S–‰+Ór––«\©iÔ‘\i* *ûüþðÇùzd œ£>ï··:×u½_ïs<¹®ëüùó.\8Ûsf‡»»;îîîlÞ¼ù¡ÆÂÝÕK*T0ù\êJ®"EŠÿüsÊ”)ÃÞ½{MB½Y³fÿÝÑÑ''§LW±¥¾—2ë“úõòá‡R³fÍLëzñÅyñʼn‰‰aÛ¶mŒ3†:páÂlll¨P¡‹-"99™C‡ñþûï3lØ0ªU«FÓ¦M³rëÀÿÜÎÎÎY#""""""""""OkWWW®\¹òÈ“ðÆoðÑGe¸âÅ‹(]º´±-99™U«V¥ÛÿþöS§NqôèQj×®i-ÎÎΤné˜ÊÛÛŸ4s^¼x‘;w¦Ù¶0+sfG‹-ؽ{7§NÊöØÆ¤»šé»ï¾ I“&]Û½¾øâ ¾þúk¾ýö[~üñGlllèÞ½;)))™ŽË((I½ß{Ã3š4i‚ øæ›ox饗2|Ï888мys&NœÈ­[·8{ö,ñëÑ¢E víÚÅßÿ¥ûÍ)Mš4ÁÎÎŽ/¿ü2Ã>—.]ÂÑÑOOOc[LL ›6mÊ‘.^¼HñâÅM‚¯?ÿü3Í{®yóæüðÃ\½z5Ýy*V¬ˆ··7‹-ÊpE¢¿¿?¶¶¶,Z´(Ëõ,XŽ;2tèP._¾œæú666Ô®]›9sæ·N̪Ô=õûšˆˆˆˆˆˆˆˆˆˆ<}l}}} çäÉ“<™‹‹ !!!™öiР666¼þúëL™2…èèhBBBøï¿ÿÒíNïÞ½:t(W®\aøðḺºÒ¿ÿL¯ãççǪU«˜={6ŽŽŽT¬X‘&Mš0yòdz÷îÍ«¯¾Jß¾}¹}û6“&MÂÊÊŠ7Þxãs®^½šÜÜÜ(Z´(;vÌüI¹ÇĉY±b­Zµb„ T¯^¸¸8Ž=Êwß}ÇöíÛ3[¥J:uêÄ矎ƒƒmÛ¶ÅÖÖ–72{öl7nl ÈÅáÇyýõ×øàºwïN»ví>|8… &22’¿þú‹iÓ¦Q¦LFÅÌ™3‰çÅ_¤P¡Bœ;wŽõë×ãïïÏ+¯¼Âرc)T¨Íš5ÃÓÓ“'N0oÞ<žyæŠ)ºuëøþûï  téÒܼy“9sæ`ggÇsÏ=—å{7 Æïc÷¯Ž‘§‡m… ظq#§N"!!Áä¼­qww7YÁ•'''Ê–-‹½½=p7Ä™7ož1 °··§OŸ>œ&xûí·Ùºu+uêÔ!%%…Zµj±lÙ²tÏíº×»ï¾‹­­-_ý57oÞ¤k×®4iÒ„^½z‘@HH‹/îr?ÿü3+VÌtΡC‡rýúu¾ÿþ{®^½J½zõèØ±#...”-[6MWWWÊ”)c|ìááÁï¿ÿΤI“=z´ñ &///c”™¥K—ÌçŸÎìÙ³(T¨ƒ âí·ß69—ËÓÓ‡4sxyy™œCæêêJÉ’%HII!88˜ºuëòÁû4iÒ„‰'²hÑ"^zé¥ ·ô7n6l`Ô¨Qܾ}¸»5^÷îÝyÿý÷ÓœIÖ±cGÜÜÜ(Y²dš•|%K–äÛo¿åý÷ßÇ`0?~üýýÙ´iùóçॗ^"$$„~ø+VàííM`` EŠ1>Ï£F2yž»víjrï齋+–î¶yeË–ÅÅÅ%Ý{O5mÚ4\\\øøãY¸p¡ñºÓ¦M mÛ¶3sæL>þøcœ1bÎÎ΄††çÉŸ??¥J•2y ‹-J¡B…2½þ¸qãgøðá$$$P¼xq¦OŸÎÆMVƒU«V-[¶0aÂHIIÁÎÎÎä<µÀÀ@¬­­yûí·iÛ¶-p÷ývoPBñâÅùôÓO™?>p÷¬»¦M›¿žJ–,É'Ÿ|”)S€»+ùÚ·oÏŒ3ŒÏÏÉ“'騱#‰‰‰ØØØðÌ3ϰzõjcЙQQQÆí[S·×‘§ÕÊ•+ ]ºt`Û¶mÙZiñ¨nܸ]º!MTT¥J•"44”ÀÀ@bccIJJz`øׯ_ÇÖÖ–‚ æØœY•À­[·°··O÷þäúõëÀÝ0"§V 夛7obggg =Ósúôi*T¨Àܹs8p`º}’““¹yó&...&á^V=êóü(®_¿Ž ÈðóŽŽŽÆ0/'%%%ƒ³³sšÐñ~·nÝ"!!!Ó­³r–Ö70 ~&&&›éu¢££)P €IP—U_|ñýúõînõX£FlÏ!""""b‰\]]‰ŽŽÆÅÅÅø³ ˆˆˆˆ% "88 ÃcTÄ|&L˜@HHöööܹsÇÜåä Û&Mš`ee…Á`à§Ÿ~ÊÓðëA«Xî•ÑyPœçÙÙÙek•Ýý,ýL£ÌB¸„Lœ8‘Â… óꫯfØÏÆÆæ‘îõQŸçGñ ºsó5´µµÍòü È0 Kõ ×üõœ/_¾Öô(áöÆpss£zõê=ˆˆˆˆˆˆˆˆˆˆ<Þ¬‹)b<‹iÉ’%¤¤¤˜¹$yÒõë×;;;Ö®]Ëܹsqtt4wIò˜‹ŽŽfýúõtèÐÁ"WCŠˆˆˆˆˆˆˆˆˆHÞ°Œ+o¢¢¢Ø¼y³Y JåååÅþýûiݺµ¹K‘6eÊöïßÏ… HÝrSäQ,Y²„¸¸8^yå3W#""""""""""æd `ÜÖìÝwß5kA©ììì¨]»6nnnæ.ErX©R¥¨]»¶ÅoÝ(‡ÄÄD¦OŸ€þþþf®HDDDDDDDDDDÌÉîž³3dÈvìØÁÚµkÍZ”ˆHV}ôÑGœ={€‰'bcccæŠDDDDDDDDDDÄœŒãŒ9’B… 0|øpîܹc¶¢DD²âÂ… P®\9my(""""""""""ÿ~yxx0mÚ4Μ9ÃØ±cÍV”ˆÈƒ¤¤¤Ð·o_bbb€»+ÀòåËgæªDDDDDDDDDDÄܬï}0xð`ž{î9æÎË7ß|c–¢DD$88˜M›6гgOÚ¶mkæŠDDDDDDDDDDĘ„_666„††âáá@¿~ýX¿~½Y ÉÈW_}Å[o½@åÊ•™;w®™+Ka}C±bÅXºt)vvv$&&ÒµkW`"b1,XÀk¯½€««++V¬ @f®JDDDDDR Μ9ÃÞ½{¹víš¹Ë1»ýû÷óÏ?ÿäÚü·nÝbÏž=ܼy3×®‘ÛâããÙ³gÏß/ñññìÚµ‹S§N‘”””GÕ‰ˆˆÈã(Møмys¾ùælmm¹}û6;wfþüùy]›ˆˆQrr2“&MbÀ€$''S @~üñGªT©bîÒDDDDDäÿ»yó&~~~”-[–¶mÛròäÉ<½þÙ³gY¹r%wîÜÉÓëf¦E‹|úé§¹6ÿñãÇiРû÷ïÏöØ9sæ0f̘\¨*{Ο?Oƒ øå—_2íÍ‹/¾H… ðõõ%<<<*‘ÇMºá@@@+W®ÄÞÞžÄÄDH×®]¹råJ^Ö'"BDDþþþ¼û»»ó믿ҨQ#3W&"""""÷ åàÁƒÆU< 4ÈÓëïܹ“®]»>U+ÎÜÝÝéÑ£^^^ÙÆü‘ UåOOO.]ºÄ?ÿüõkט7ož¹K •aøЩS'6oÞLñâÅX¹r%+VdÞ¼y$&&æI"òôŠå­·Þ¢jÕªìܹ€ªU«òÛo¿Q·n]3W'"""""÷‹ŠŠÂÉɉzõê™»”§F™2eX¼x1•+W6w)yÆÛÛ› *iîRDDDÄBe~4jԈÇÓ¹sg®]»ÆàÁƒ©P¡óæÍ{ªþšJDòÆùóç ¡lÙ²L:•;wî`mmÍ!CØ·o*T0w‰"""""’Ž„„òåË—åþ;wîÄÏÏC‡1hÐ <<<ðöö¦[·nDGG›ô½zõ*ýúõÃÛÛ777ªV­jrDòeËxóÍ7h×®~~~øùùñï¿ÿfxý?ü† R´hQŠ+F³fÍX²dÉë>þ<~~~¬_¿ž7Þx/// .L@@çÏŸÏtìÔ©SéÖ­[šö‰'Ò½{w“¶íÛ·S·n]ÜÜÜ(S¦ Ÿ|ò óçÏ7Ùãĉ4nܘƒÛzôèÁ„ ذa5jÔÀÍÍ5jðý÷ßgZ[BB“&MÂÇÇ777J”(A‹-ŒŒ˜‘† ²hÑ¢4íuêÔ1i4hC‡å§Ÿ~ÂÏÏ‚ òñÇg:wFòçÏO||üC‘'ŸmV:.\˜ï¿ÿžü‘áÇÉ™3gúƒÁÀ‡~Htt4—/_6ö‹‰‰á·ß~3 ÃÂÂØ»w/+W®dèС¸»»³páB9uê¥J•îþ¬„Xïh IDATåááa7uêT>ùä¦L™BµjÕˆ‰‰a÷îÝœ;w.ÃçààÁƒ\¼x1Mû¸té’ññ©S§gõêÕŒ9c-Ùeeeeòs£ˆˆˆÈ½²~¥zþùçiÓ¦ ‹/æƒ>àÔ©S$$$ðã?òã?ÞÐÖ–âÅ‹ãàà@r¥hy|ü÷߯sâ<==?|ˆÀÝðïܹÅ Òý¡ÅÏω'ò /`mýÀ…ª"""""bfgÏžÅÝÝ=ÛãüýýùôÓO¯\¹Â¼yóøì³Ï°¶¶féÒ¥ìÛ·U«Vñâ‹/ð /Ë”)SèÓ§åË—7nÞ¡Cã™Y·nÉã:pùòeæÏŸŸiø•ª@lܸ[Û»¿^©Y³&Ï>û,_}õC† Éòý§gÚ´iäÏŸŸíÛ·¼^xÒ¥Kgiü¹sç8yò$%K– U«V/^œ¥K—2~üx `2fûöítìØ‘7ÞxÃØÖµk×GºûEEEqàÀjÖ¬il‹ˆˆÈö<®®®ÚöPDDD2”­ð ÀÎÎŽ¾}ûÒ§O~ÿýw–,Yºu댔””ÄÙ³gs¼Pyü9s†3gΘ» ±p¾¾¾<ÿüóôèуgžyÆÜ刈ˆˆˆÈ V®\É‘#GX»v-AAAÙžãþ€¥fÍšÄÅÅqéÒ%Š+ÆÏ?ÿŒ›››ñH†T½{÷fíÚµüöÛo´oßþ¡ê?tèàŸþ!..Ž˜˜¢¢¢²4¶GÆà înÿW®\9víÚõÈá×þýûi×®ÉÊ5gggÚ·oÿÀí êׯo ¾<<<(Q¢D¦?—ûøø°~ýzf̘ÁK/½”å -;*Uªd|=¬îÝ»À°aÃhذ!íÚµÃÙÙ9*‘'A¶Ã¯TVVV4jÔˆF1oÞ<ÂÃÃùí·ß8uêgÏž5®è§[DD„ñ/¸ªW¯N‘"EÌ\‘X’ P¨P!Ê–-K… hÒ¤ ÅŠ3wY"""""’ ƒ   """¨\¹2/¿ür¶ç¸ÿgÅÔ-oß¾ À¿ÿþ‹··wš-SÙ{·Ö˪ÄÄDY³f 5jÔ D‰xxx˜˜ÈÕ«W³4‡··wš¶’%KæÈФóçÏS´hÑ4íYý™ÉÓÓ3M›££c¦¿«™9s&±±±Œ?ž±cÇRµjUzôèÁˆ#ÈŸ?Ö‹ÏDNýÌ×¢E Z¶lÉgŸ}ÆÆ©W¯žÂ/1zèðë~>>>øøøäÔtò„ "88€Ã‡›¹ÉiÖÖÖ?~œ«W¯R§N ÄO?ý”£×ptt49Ó*UjÛûðÃ?°jÕ*~ýõWüýýí#GŽäèÑ£YšãúõëiÚ®]»F‰%2cmmî¶ï©A_*OOOþûï¿4ýRÈ EŠaõêÕüûï¿ìÙ³‡åË—3a¢¢¢˜;wn†ãÒ»§;wî`0Òôµ±±É‘Z§NÊîÝ»9yò$eʔɑ9EDDäÉ¡CtDDDDDDDä‘.\˜-ZpäÈ‘Ÿ»fÍšœ;wŽððp“ö-[¶P«V-HHHxàœaaaäÏŸŸ¦M›Û Û¶mËr];wî4y|ùòe¨X±b†c¼¼¼¸xñ¢IX”˜˜ÈŸþiÒ¯zõêlÞ¼Ùä^âããsúè#Ú´iƒ¯¯/€qGšU«V·áOJJJwÎråÊÏ’%K€»+•&L˜À±cDz\׺uëXºt))))ÄÄÄ0hÐ ’““éÝ»w†c6lÈ•+W˜1cIIIÄÆÆ2jÔ¨4[7Ž=šóçÏÓ½{w<ÈÁƒéÖ­ñññY®/»f̘a<º **Š¿þú+Ó0îÞÓ²eËØ¿?'Ožd̘1¹V'Ü œœrõ"""òøRø%""""""búöí‹»»;íÛ·Ow[¼{¥¤¤Ð®];ÜÝÝéÛ·oUh>¥K—fÕªU9rœœœhݺ5uëÖeñâÅÆ~5jÔ`ĈL˜0Áx<Ãŋӳk×®¼ð ¼òÊ+¸ººR°`A~ýõW†šåºÆŽ˘1cprrÂÕÕ• 60þ|*Uª”á˜:о}{Ƈ³³3… ââÅ‹¼ð &ý5jÄ7ß|ÃöíÛ©]»6õë×ÇÃÞ={âââ’å³cÅŠøøøàè舛›eË–%þü|üñÇ™Ž{óÍ7±··§N:899ñÌ3Ï0xðà4g´å¤ô¶TI•cg~‰ˆˆˆˆˆˆÈÃ;{ö,ÉÉÉܺu‹I“&ñÞ{ïeØwâĉÆ3¢¢¢¢òªÄrss#&&†„„ìììØ¿M›6\»v ggg“öŽ;ríÚ5 *dlkݺ5gΜaÛ¶mܺu‹2eÊàçç—fÎY³f1sæLnܸ`2ǽlllX³f û÷ïçìÙ³”)S†š5kÏ”)S²t¿ÕªU#<<œß~ûèèhž}öYŠ-jÒ篿þ2¹?+++Ö­[ÇÑ£Gùûï¿ñõõ¥J•*ܺu‹ääd“±=zô [·nܸq{{{èØ±£ÉVÏ<ó gΜÁËËËØ¶uëÖtÏÖúý÷ß3=skß¾}?~œððp’’’(Uª5kÖ|`ˆåëëKxx8û÷ïçúõë4lØwww^xáãV”kÖ¬Iw®’%KræÌŠ)’éuîuõêUÊ•+—åþ"""òtQø%""""""b¾þúkJ”(Á``Μ9¼óÎ;X[§Ý°%%%…>úkkk¾ýöÛ¼.5C 6$))‰þýûÓ°aC:tè@±bÅ2ìŸ/_>\]]Ó´ÛÙÙ¥ž9::Ò®]»Öammî¼éñóó3 Ñìíí±··ÏÒØÔþ-Z´Èðó%K–L·½jÕªT­ZÕø¸@iúüõ×_T¯^Ýx/ëÖ­cÆ ûØÙÙQºti“q÷‡‰j¿WåÊ•©\¹òûÝÏÁÁÆ›´Ýÿ,X0ݱ¶¶¶iî!=·nÝbÉ’%„‡‡ÆÈ‘#³]§ˆˆˆ<´í¡ˆˆˆˆˆˆˆ(^¼8Í›7îž?5yòätûMš4‰;wîмys<==ó¬ÆiÚ´)Ë–-ãÎ;¬\¹’Ë—/›»¤ÇZË–-)Y²$Íš5£R¥JtìØ‘¦M›2vìXs—f©ï«¿ÿþ›O>ù$Ó³ÕDDDä馕_"""""""âÛo¿¥X±b¤¤¤0{ölÞ~ûm“ϧ¤¤0gÎàîê¦{Ï»²˜»Œ\åææFHHÕªUËÕëìÚµ‹Ý»wsñâE¬¬¬¨U«þþþ¹z––%swwgóæÍæ.CDDD ¿DDDDDDD,„§§'Íš5cË–-é®þ²äU_OÆ—ë×ñññÁÇÇ'ׯ#"""ò¤Ñ¶‡"""""""äÛo¿5žõ5{öl“ÏYúª/K ðKDDDDDDÄ‚xzzšœý@\\œqÕW‹-´êKDDDD$ ¿DDDDDDD,ÌâÅ‹«¿âããMþ©U_"""""™Sø%""""""ba<==iÚ´)ƒ+++ þþþ)RČՉˆˆˆˆX6…_"""""""héÒ¥ÆÕ_©Á—µµ5¡¡¡æ,KDDDDÄâ)ü±@EŠ¡E‹&m-[¶Ôª/‘Pø%""""""b¡¾üòK¬¬¬°²²â‹/¾0sE"""""–Oá—ˆˆˆˆˆˆˆ…*^¼8Íš5 yóæ/^Ü̉ˆˆˆˆX>…_"""""""¬oß¾ôë×ÏÌ•ˆˆˆˆ¤/::ÚÜ%ˆ˜°5w"""""""’¾M›6ѧOzõê…‹‹ ­[·6sU"bn)))\¼x‘S§NqæÌbcc¹yó&±±±æ.MÄl (€³³3 ¤T©RøúúR¬X1lllÌ]Ú/22’åË—3uêT3V$¢ðKDDDDDDÄ"mÚ´‰Î;@\\:ubÍš5 ÀDžB±±±¬ZµŠŸþ™Í›7såÊs—$bñ .LË–-iÙ²%ÿûßÿ(T¨¹KzâDFFâïïÏ¥K—ŒmAAA ÀĬ´í¡ˆˆˆˆˆˆˆ…¹7ø²··'(({{{cöÓO?™»DÉ#‡¢W¯^-Z”^½zªàK$‹®^½Ê²eËèÛ·/ÅŠ£{÷îüñÇæ.뉑|EFF0bÄJ—. Ü À‚ƒƒÍWœ<õ´òKDDDDDDÄ‚¬Y³†®]»’˜˜ˆ““6l qãÆ4kÖŒvíÚËóÏ?ÏòåËéÔ©“¹Ë‘\ΨQ£X»v-ƒÁØîîîN£Fxî¹ç¨Zµ*åË—ÇÙÙœÍX±ˆyÅÄÄ””Dll,§NâØ±cìØ±ƒ;wrùòenß¾Mhh(¡¡¡´iÓ†Ù³gS¡Bs—ýØ £Y³fÆ_3fÌ`ôèÑŒ=NŸ>MPP111̘1ÃÌÕÊÓH+¿DDDDDDD,DFÁ@ãÆÙ°aNNN$$$Àš5kÌ\±ˆä´””Þ}÷]ªV­Ê?þˆÁ`ÀÖÖ–.]º°qãFþý÷_V¯^͈#hÑ¢¥J•ÂÕÕUÁ—<õ ,ˆ««+%J” yóæ 6Œï¾ûŽ‹/²e˺uëF¾|ù€»+¬«W¯ÎÔ©SIJJ2s埌‚/ooo¶nÝJ¹rå˜9s&cÆŒ1[­òôRø%""""""b2 ¾R)y²ý÷ß´mÛ–I“&‡µµ5}ûöåäÉ“¬X±‚6mÚ`m­_ç‰d‡µµ5Í›7gÉ’%œ>}šbccCBBo½õ-[¶49¯J2—Yð•J˜Xý×RDDDDDDÄ̲|¥R&òdŠˆˆ ~ýúüüóÏT®\™]»vñùçŸS¶lY3W'òd(Y²$óæÍcß¾}<óÌ3lÛ¶úõësâÄ 3Wgù²|¥R&æ¦ðKDDDDDDÄŒ²|¥R&òd £Q£F„‡‡ðòË/³wï^êÕ«gæÊDžLµjÕb÷îÝôêÕ €³gÏÒ¸qcþüóOófÁ²|¥R&æ¤ðKDDDDDDÄL&øJ¥LäÉðÏ?ÿкuk.^¼À”)S ÅÉÉÉÌ•‰<Ùøê«¯ ÁÊÊʸíhj-ÿça‚¯T ÀÄ\~‰ˆˆˆˆˆˆ˜Á£_©€‰<Þnß¾M»víøçŸ˜>}:o½õVVVf®Läé1nÜ8æÎ À¿ÿþKÛ¶m¹y󦙫²|¥R&æ ðKDDDDDD$åDð•J˜ÈãkèС=z€‘#Gê—Á"f2hÐ &Ož ÀßÿÍk¯½fæŠ,CN_©€I^Sø%""""""’‡r2øJ¥Läñ³e˾üòK5jÄ|`æŠDžnÁÁÁ´jÕ €+V<õÿÍÉà+•0ÉK ¿DDDDDDDòHn_©€‰<>âããyýõ×pqqaéÒ¥ØÚÚš¹*‘§›µµ5‹/ÆÃÀ#Fpûöm3We¹|¥R&yEá—ˆˆˆˆˆˆHÈÍà+•0‘Ç 8yò$Ó¦MÃÛÛÛ̉@‘"E àìÙ³|üñÇf®(ïåfð•J˜ä…_"""""""¹,/‚¯T ÀD,[bb"3gΠ|ùò 4È̉Ƚz÷îM5˜={6qqqf®(ïäEð•J˜ä6…_"""""""¹(/ƒ¯T ÀD,×?üÀÙ³g;v,666f®HDîeeeÅøñã¸té¡¡¡f®(oäeð•J˜ä&…_"""""""¹ÄÁW*`"¹'99ù¡Ç~õÕW¸»»Ó³gÏœ*ÉÄÑ£GÙ»wo®Ì‘;w·rÌŽþù‡ýû÷§iOJJâÔ©SüòË/üóÏ?éŽýï¿ÿسg‰‰‰Ù¾nN c×®]¹zŒž+KuéÒ%öìÙƒÁ`ȵkœøkkÓ_éYYYѧOÊ—/oÒ¾ÿ~7nŒ››+VLwÅRdd$½zõ¢hÑ¢¸¹¹Q¯^=6nܘ¦ßž={x饗(R¤îîîÔ¬Y“?þ8Óº?ÿüsêԩúuë2ì³`ÁÚ¶m ÀáÇñóóãøñãüôÓOøùùáççÇ;wÒûóÏ?Ó¸qcþûï?RRRðóó#&&†¯¾úÊ86£ããã™8q">>>¸¹¹Q¢D Z¶li (ÓãïïϹsçøþûïó¿ýöÛ&}þúë/š5k†››*T`Μ9iμ:þ<¯½öÅŠÃÍÍÚµk?ô÷ã©S§R§N<==)Q¢­ZµbíÚµ&}âââ?~Ì… èß¿šà+#—.]¢K—.ôë×Áƒ³fÍ €¯¯/M›6àÌ™3Ô­[—¢E‹òÞ{ïQ¸paV®\IûöíY³fqkÆíÛ·Óºuk|}}y÷Ýw)^¼8GåСCé^;%%…‘#G²páB–,YB‡2¬322’]»vP¼xqÆǘ1c(UªC‡ _¾|鎽|ù2¿ýöñññXYY1nÜ8z÷îMýúõéÖ­+V V­Z+VÌ8vÊ”)Ì;—   ªV­ÊÍ›7Ù½{7çÎ˰ÖáÇFµjÕŒçL•)SÆøùëׯӹsg^}õU^{í56nÜȈ#(W®íÛ·î_~~~¸¸¸0mÚ4¼¼¼X½z5/¾ø"¡¡¡i¶€|­[·Ò½{wÊ—/Orr2_|ñ:uâ—_~1¾Î'NdÁ‚Æ{½qã»víâüùóÔ­[—qãÆñÊ+¯ðì³ÏÒµkW*Uª”á5Ïž=ËÖ­[Ù±c£F¢bÅŠ„††Ò¯_?3k|¼víZ`8p ÉØQ£Fìíí ÉÉÉYºÇTo¼ñ†0äÏŸ?[ãòBDDD†ßsöïߟî˜ãǼ¼¼Œýg̘‘ÇUgÏ?ÿüc(W®œ±ÞÑ£G›»¤ÇÖøñã €ÁÞÞÞÜ¥äm{(""""""ò‡_÷kܸ1!!!æ.C‘¿¿?VVVú°2eʰ`Á’’’€»[ Ö­[gÜšìÆ,X0[¯uBBvvvYS¬X1“ïE¶¶¶T¯^ÈÈHàîjk×®¥iÓ¦\¹r…ˆˆãGƒ 8räñññüý÷ßœ8q‚booŸé5¯_¿NûöíÙ¿?¿üò õë×ÏÖ}æ%6nÜÈÌ™39{ölŽÌY¨P!Z·nm|lmmM5ŒÏ9ÀêÕ«iܸ1ׯ_7yÎëׯÏßÿí­ùàî–” ,àÍ7ßdâĉ¤¤¤pòäIãç}||X¿~=~ø!QQQt©ìííÓ¬R{õÕWù÷ß ¤¹8€Á` À¤=000Ës¤®`KU³fMâââ¸xñb¶jqvv0®.Ìí¸¸¸,×V¦LæÏŸÏ©S§Œ[°¦~Ï©S§Nš-X‡_÷Óˆò(´í¡ˆˆˆˆˆˆÈCÚ´i$&&booÏwß}gñÁWªÞ½{ceeŘ1cHHHÀÎÎŽ™3gÒ As—&™8pà 0w’...ÆíØRRRøî»ïŒÁXFÛøeÄÃÀÿý7ËcŠ)’¦ÍÑÑ‘«W¯píÚ5n߾͢E‹LÎPº×… ŒaÁ½ÛûedåÊ•ÄÇdzxñbãYI–jÖ¬Yôïß߸ÍbµjÕèÑ£#FŒÈVÈx¯ŒžóÛ·opëÖ-®_¿ÎŠ+X±bEºsDEEQµjÕ,]/66–Î;³mÛ6üüü(V¬îîî$%%™l!8gÎú÷ïÏØ±c=z4Õ«Wç•W^aذa}¯E‹ÅÆÆÆ¤­D‰ÀÝ­,S·›|çÏŸÀËËˤýÞm+äþ×ÂÑÑÀøZdÕÃ>?«aÆYÞÚô~¾¾¾\¸pèèhc¶qãFéÓ§}úô1_AAA|¥òööfóæÍøûûÉÌ™3)X° S§N5wibá~‰ˆˆˆˆˆˆ<„k×®`ü+íñãÇ›üÅ¿¥+X° C‡åêÕ«“ÀäÉ“‰ˆˆÀÍÍÍÜåI<<<´jÏ‚?ž-[¶pâÄ cðekkK=˜Š˜˜àîJÎwß}++«¿Æ¶mÛØ´iþùgŽÌimmMJJ ÉÉÉ|ûí·„††Ÿ÷¦M›>vÁQéÒ¥ùꫯð÷÷î†w7¦Y³ff®L,™Â/‘‡àææÆòåËéܹ3qqq„„„P¿~ýÇ*Û´iï¿ÿ>pw «åË—+ø²p%K–dܸqæ.Cî³uëV¦L™Âï¿ÿnl³··§ÿþŒ3Ƹ"ÆÙÙ™7n˜¬ÊÉ WWWþ÷¿ÿñý÷ßsèÐ!jÔ¨‘¦Ojðàêꚥ9 ,HµjÕØ°aAAA®6©R¥ ŽŽŽ¬_¿ž>}úd:§ Ÿþ9 ¤k×®|õÕW¼òÊ+Yª'§888ŸåþžžžtêÔ‰N:ÇO?ý”£óßËÖÖ–:uêðÓO?’í€÷ £X±b&ÁWBB¿ÿþ{º¯§——;w¦sçÎܾ}Ûä^³{_ÑÑÑüõ×_T¯^ÝØ¶}ûvlmm)_¾|ºc<==±²²âÂ… &íûöí3yœ:çºuëxýõ×ík×®Ír}9%õëªP¡BŒ?>W®QªT)ãªÐGÙ3g¸|ù²1è²±±1YùɶmÛ~¬°ÈÈHz÷îm|¤àKHg~‰ˆˆˆˆˆˆ<¤6mÚðóÏ?ãääD\\Ï?ÿ}:gΜ1>>{ö,G}àv}eË–eÏž==z”ˆˆˆl¯FšøÀäܱÈÈHŽ;fr¯>>>lß¾'Ndú¼¥Ê—/C† áòåËlÞ¼™ Ð¥K\\\Ò“?~j×®Íܹs÷¾{÷î4«Y«W¯NëÖ­™ ¿DDDDDDDAãÆÙ°aNNN$$$`ñØš5kèÚµ+‰‰‰899±aÃ†Çæ¬2Kzùûû§ ½Nž<™&ôJ•º"æäÉ“ †l]ÓËË‹]»vQ¯^=ú÷ï››VVV¸ºº2zôhžþyJ—.­9»téÂÂ… ùá‡(R¤… ÂÁÁ† òÇûM›6aÆ1a (€‹‹ nnn|ùå—Î=mÚ4ÞyçúöíË'Ÿ|’­ºÅ{ï½ÇåË—©\¹2>>>|ðÁéö[¶leË–ÅÑÑ777|||ppp`Μ9™ÎDJJ ÕªUÃÇLJ‰'f«¾öíÛóÍ7ß°yófŠ-j|ÎëÖ­k²r0+H£FhÛ¶-nnn¸ººIÏž=Mú-Y²„2eʘܫ³³3³fÍ2öyï½÷8wî•*UÂÇÇÇäsé)W®µjÕÂÓÓ'''ZµjEÕªU¸eäôéÓ¹páÅ‹ÇÉɉvíÚ1vìØ4ý–,YB£FxõÕW©X±"“'OfáÂ…†k¹áøñã®f3§}ûöѲeKêׯϖ-[€ÿ ½R¿•,YÒØßÛÛ›­[·°™3gZ|F³fÍŒaéŒ3›³ÊÄü¬ Ùý/­H6 íÿ©yœìܹ“víÚ‹Ë—/§S§Næ.+ _"fÑ¢EôéÓÇø{ºuëÆ”)Sø òùóç3pà@Ž=J•*Uª†Ë—/sèÐ!bbb(^¼8+V4 nݺErr2ÎÎÎ&ãnݺEJJŠÉ9Jp÷Ì¥;vƒ§§'•+WÆÝÝ=Íu/\¸Àž={€»[µÕªUËxÒ7È—/ŽŽŽ&c®_¿Žµµ5… J÷^¢££¹yó¦É/éoÞ¼‰  Èôy¸uëW®\¡D‰ØØØ¤ù\BBöööÆóÍîwüøqÂÃÃIJJ¢T©RÔ¬Y3Ëg:ݾ}›øøxòçÏ££#·oß&111Í}fôZܹs‡ß~ûèèh<<<¨\¹²ñ¬«Œ¤÷\¥¤¤°gÏ.]ºDùòå©V­Zºµ;vŒˆˆ’““)Uª5jÔH÷^cccILLÌôyëÝ»7{÷îåøñãœ>}š#GŽàêêJ“&ML¶[Œ‰‰áêÕ«”*UÊäZ7nÜ`ß¾}$%%Ѹqc¸yó&NNNi¶‚L}]\\8tèµjÕbÓ¦Mƕʩ[üyyywWÑÅÆÆâììlòžHm/T¨P†[|Þ/""¸âkúôéíÛ·I“&/¸z 0€Q£FQªT©LÇŸ;wNŸ> ÀèÑ£™1cF®Öü0|å¬ &‚½½=wîÜ1w9yBá—ä*…_"""""ò4±ôLÁ—È£»zõ*eÊ”!!!0zôh“0"3§N¢B… Ìš5‹#Fäf©"¹âÞð+·DEEáììl uoܸA×®]Ù»w/gÏžÍ0LÍI ,`À€|˜jÕª™»¤\c)[ *øÊ]ÚöPDDDDDDDr„%¬Sð%byÊ–-K—.]X¶lY®ž›$"Ù΢E‹hß¾ý|e¬Sð%¹Aá—ˆˆˆˆˆˆH.1g¦àKÄrMš4 ’’’xýõ×µ[Žˆ>|8qqqXYY1eÊs—“'Ì€)ø’Ü¢ðKDDDDDD$™#Sð%bÙªV­Jÿþýغu+_~ù¥™+€åË—³~ýzàîù|uëÖ5sEyǘ‚/ÉM ¿DDDDDDDrY^` ¾Dï¼óÞÞÞ 6ŒÃ‡›¹"‘§Û‰'Œ¡t‘"EøàƒÌ\QÞËËLÁ—ä6…_"""""""y /0_"WWW–.]Š­­-·oߦmÛ¶œ9sÆÜe‰<•Ο?OëÖ­¹yó&ÖÖÖ,^¼///s—ey€)ø’¼ ðKDDDDDD$äf¦àKäñÓ¨Q#fÍšÀÅ‹iÕªQQQf®JäéréÒ%Z·nmüÚ{çwhÕª•™«2¯Ü À|I^Qø%""""""’‡r#Sð%òøzýõ×™4i§OŸæÙgŸåÈ‘#f®JäépòäIž}öYŽ;ÜÝ‚tüøñf®Ê2äF¦àKò’Â/‘<–“˜‚/‘Çß´iÓŒ¿T>wîõêÕcÁ‚f®JäÉöõ×_ãççGDD¯½ö~ø¡™«²,9€)ø’¼¦ðKDDDDDDÄ r"Sð%òd°²²búôéÌž=îܹÀhÞ¼9aaaæ.Oä‰rúôiÚ¶mK¯^½ˆÅÚÚš©S§2þ|lllÌ]žÅɉLÁ—˜ƒÂ/3y”LÁ—È“gøðáüòË/x{{ð믿R­Z5µ¢È#:qâ={ö¤råÊlÚ´ ///6mÚDPPVVVf®Ðr=J¦àKÌEá—ˆˆˆˆˆˆˆ=L¦àKäÉõÜsÏqôèQ†Š ÉÉÉ,[¶ŒêÕ«Ó Af̘ÁáÇ1 æ.UÄâ=z”Y³fѸqc*W®Ì7ß|Cbb"ÖÖÖ 0€cǎѲeKs—ùXx˜LÁ—˜“­¹ yÚ¥`íÚµ#66–€€–/_N§NÒôUð%òä+T¨}ô¯½öï¾û.+W®$99™={ö°gÏcŸråÊQ¾|yÜÝÝ)P €™«1¿Û·osõêUN:ÅéÓ§‰ŽŽ6ù¼µµ5;wfÒ¤IÔ¬YÓLU>¾R0NŸ>ÍÌ™3»¡Öý|‰¹Yôg"’‹‚‚‚Ð_$‰ˆˆˆˆˆ<ÀÎ;˜]šLÁ—ÈÓ)""‚o¾ù†%K–púôis—#òØ)]º4Ý»wçÕW_Å×××Üå<öÎ;g ÀFm€)ø²<&L $${{{îܹcîrò„V~‰ˆˆˆˆˆˆXˆÌV€)øyz•-[–   ‚‚‚8qâ;wîäÈ‘#œ:uŠcÇŽqõêÕ§æ—™"™±··ÇÍÍ*UªàëëKÕªUiÒ¤ •*UÒ™^9(³` ¾ÄR(ü± 7fåÊ•tîÜ™¸¸8?~}šgÛõë×ãÒ¥KŸ2<ÀÖ­[qòäI•2…BÐÐPôîÝÞÞÞŸ<"""""R/ u@DDDDDDùsïÞ=räH :TÚÞ°aììì°nÝ:T©Rnnn˜5kVžÇ—ËåÒ5$""""¢’‹É/"""""¢b"11 ¥¥•¯ú¸zõ*nܸ¡R¾qãFèééÁÝÝP¾|ylݺ‰‰‰ˆ‹‹C\\:vìˆàåË—бÿþˆ‹‹ÃåË—ñæÍDFFbË–-ˆ/ÐqòÃßß§N‚R©Äo¿ý–g} $''zDDDDDT´0ùEDDDDDTL\¸pr¹æææùªß½{wèëëcÆ RYZZ6oÞŒnݺ¡L™2têÔ :::€²eËbñâÅxûö-Ο?ŸïøÂÃÃqüøqLž<7XZZâ§Ÿ~BZZZ¾“_¿üò  P(`llœg}sssüóÏ?ˆˆˆ(ôXˆˆˆˆˆ¨è`ò‹ˆˆˆˆˆ¨ˆ›2e Z¶l‰Å‹ÃÏÏ&&&ùjWªT)ôèÑ›6m‚R©#::R½´´4lÚ´ :u‚½½=¬­­áàà™L†ä;Î[·nœœœTÊœœò=UcA4kÖ¬@õû÷ïÎ;ÃÑÑ®®®Ò´DDDDDT²0ùEDDDDDTÄ9::¢iÓ¦Ëå +P[ÄÆÆâÈ‘#€õë×ÃÌÌ ...R1cÆÀÓÓ666?~<-Z„•+WB&“IS-æÇ«W¯*åÚÚÚÒ¨²Âôa?yy÷îBCCQµjU´nÝ…©Ÿ†º """""¢Ü¹¹¹ÁÍÍ fff5j|||`ii™¯¶­[·†••Ö¯_fÍšaÏž=3f äòÿýrëÖ­>|8.\(•EEE!==½@qš™™?~¬’XzñâE¾’h:::ÙÖ‹•¦hü76mÚ„¨¨(\¾|9_Ó$QñÄ‘_DDDDDDÅD­Zµ111ùn#“ÉЯ_?üñÇøïÿ‹ääd 0@ÚŸžžŽ7oÞ téÒ*í~ýõ×Ç× Aèèè`ݺu*åëׯÏW{ „‡‡#!!A* GhhhcÉNll,Œ™ø"""""*á8ò‹ˆˆˆˆˆ¨˜ÐÔÔ€ÈêÛ·/fΜ‰3fÀÞÞÕ«W—öÉår´oßK–,‰‰ ¬­­qôèQìÝ»WetX~c„ ˜9s&444ЩS'\ºt ëÖ­ƒ®®n¾âüùçŸÑ«W/ôíÛÑÑÑX¶lªT©R 8r"„€†?•tü«Ÿˆˆˆˆˆ¨˜ÈLܤ¥¥¨ Œ‡bðàÁYö¯Zµ ãÆƒ¿¿?àââ‚ãÇÃËËKezźuë¢B… Ò¶Z·n­²ö–J—.eË–aÛ¶mhÔ¨‚‚‚0mÚ4T«V-×8mmmˆùóçcøðá°²²B`` ‚ƒƒ‘’’"Õ³´´DÛ¶m³=FÓ¦MQ£Fl÷¥¦¦2ùEDDDDô !„ºƒ ’ËÇǾ¾¾2~eIDDDDD/""666X±b¾ÿþ{u‡S¬!ЦM$&&âÂ… ê§@œqòäI899áĉꇈˆˆ( ~\´Mž<~~~9®±[qÍ/"""""¢b¢Zµjhݺ5FŒFaáÂ…ê©Xhß¾=ªW¯Ž?ÿüSe½3"""""*™8ßQ1!“Épüøq\ºt yN#Hú÷ï===4lØU«VUw8DDDDDô‰1ùEDDDDDTŒÈår888ÀÁÁAÝ¡ýúõSwDDDDDôqÚC""""""""""""*1˜ü""""""""""""¢ƒÉ/""""""""""""*1˜ü""""""""""""¢ƒÉ/""""""""""""*1˜ü""""""""""""¢ƒÉ/""""""""""""*1˜ü""""""""""""¢ƒÉ/""""""""""""*1˜ü""""""""""""¢ƒÉ/""""""""""""*1˜ü"""""""*ššªî0ˆˆˆˆˆŠ< u@DDDDDDDy{þü9ÒÓÓÕQ®d2™ºC $%%©;„φ#¿ˆˆˆˆˆˆˆŠ0]]]u‡@DDDDT¬päQÖ²eK:tHÝaå¨mÛ¶üÁN¶|ùrDEE©;ŒÏŠÉ/"""""""""""úh-Z´@‹-Ôå`Ïž=_\ò‹ÓQ‰Áä•L~Q‰Áä•L~Q‰Áä•L~Q‰Áä•L~Q‰ÁäXjj*Ö¬Yƒ⫯¾BJJŠºCú"Œ9sçÎýdÇûö-:tè€C‡}²>ˆ({^^^ðððÀÏ?ÿŒ7oÞ¨;œbÉ/"""""""""*°€€ 2úúúpqqB¡PwH_„sçÎáêÕ«Ÿìø©©© £G>YôñΟ?;;;„‡‡«;”…††ÂÎÎ!!!êEí† †~ø!ßõ[¶l 333Ìš5 £Fú„‘•|ꀈˆˆˆˆˆˆˆˆŠŸ“'O¢I“&X¼x±ºC¡Bd``€{÷î¡B… ê…²ñúõk„„„ !!AÝ¡äèÝ»w áÈ%Édù®ß¿ÀóçÏü©Âú"0ùEDDDDDDDDDöâÅ ç»þ½{÷ðøñc899áÆ8vìÊ—/WWW˜˜˜d©íÚ5=ziii°··G›6m ÔǹsçpñâE”-[½{÷†®®.RRRpðàADFF¢nݺhß¾}–cÄÇÇc÷î݈…±±1ºwï###iÿ»wïpþüyÔ¯_J¥‡B||¡3f‚ÑÇ™;w®ô¹*))IÝáIEçÎó]òäÉÂÐÐPLŸ>]ˆzõê mmmadd$îß¿/ÕKOO?üðƒÉdÂÂÂBØØØ¹\.:vì(Þ¾}›¯>Æ/ E:u„B¡õë×OŸ>M›6UªTVVV€6l˜Jû³gÏŠ *ˆR¥J [[[Q¦LQ¶lY,Õ¹uë– Æ'ôõõ…‰‰‰(W®œHHHQQQ¢N:BOOOØÚÚŠÊ•+ …B!~úé§<¯\. &&&¢ZµjÂÒÒRƒ R©×¸qcѳgOiÛ××W”.]:Ëñ¦M›&ôõõUÊF%333Q£F Q¾|y1zôh@<à¥, IDATyòD!D\\œ V­Z%µsww 6ß}÷066uêÔ¢jÕª">>>×óJMMŽŽŽÂ××7Ïkp÷î]amm-J—.-êׯ/LLL„¦¦¦J,€;v¬000®||¼¨_¿¾pssvvv¢téÒÂÂÂB¬]»Vøúú mmm1wî\Q¦LQ¯^=¡££#Ê”)#îܹ£Ø1c„L&“®‘B¡...yžgf#GŽeÊ”¶¶¶BOOO‹«W¯Jõ¶mÛ&ˆéÓ§ aff&5j$„b×®]¢téÒÂÐÐPØÚÚ ]]]aff&®_¿.„bïÞ½¢R¥J€055VVVÂÊÊJ„†† !„ †††Rÿ¥J•&&&âüùó¹Æ~ûöm@L™2ETªTIÔ¬YST¨PA‹/V©›W'NœUªTD¥J•¤Ï;—mß)))¢}ûöB.—‹úõ닆 Š *[[[©NŸ>}„½½}–¶=zôMš4‘¶1~üxQºtiakk+ôõõ…¾¾¾8}ú´T/88X£Gzzz¢^½zÂÈÈHhjjŠ7ªô±mÛ6¡§§'Ê–-+lmm…ŽŽŽ°´´”®¹BìܹSÞÞÞBSSS˜šš [[[Ñ¥K¡««+tuu¥ëЯ_¿\ïE&ooïl_×ËÁÁá‹ûžþË9SR &¿ˆˆˆˆˆˆþ&¿ˆ¨¨ªW¯žèÞ½{¾ëOž,%||}}EzzºBˆI“& ¹\."""„B¼{÷NT¬XQÔªUKÄÄÄ!„xùò¥hܸ±044/_¾Bü/ù¥¯¯/Nž<)„B©TŠ´´4agg'j×®-¢¢¢„‰<!“ÉÄÙ³gs].— ™L&Ö­['•eþ?`ëÖ­RÙÇ&¿8 ˆ3fHeÇZZZùJ~Éd2áéé)RRR„Bœ>}ZÈår1gΜ\Ï+99YÈóKÿ””acc#ìííÅÓ§O…×uÔ¨QBCCCJ6d&¿J•*%Ž;&„"--M¤§§‹úõë ™L&&Nœ(ÒÒÒ¤cøúú ÂÉÉIüóÏ?B!.\¸ ˆ'NäzÍ„ÈHèPy}¤¥¥‰7nHÛM~Õ¨QCz ?{öLÔ«WO˜ššJGe&¿ŒÅÍ›7…B$&&Š:===ñèÑ#!„÷ïß:::ÂÅÅEz?¹wïž0555kÖ”îifòËÂÂBܺuK‘qO…¢mÛ¶ÂÕÕ5Ïëð¡™3g ©ëKL~É?Á`2"""""""""*ÁîÝ»‡»wï¢fÍšj'„ÀòåË¥)ÚªW¯ŽÎ;KÓ¤@`` ªU«†)S¦HeݺuC—.]°víZ¤¥¥åÙÇ’%K¤iÉÚ·oKKKhjjbÚ´iÒôuÆ Czz:._¾ cZ²§OŸbÞ¼y¨X±"€Œ)Ê~ùå¼zõ ;vìPégðàÁhݺ5@¡PàÌ™3¸|ù2üýý¥éÚd2¼½½ajjŠ]»våy}¥éï`âĉ°¶¶Æ† òl›—mÛ¶¡råʘ:uªTæììŒ^½z嫽žž ©© hÑ¢7n,]¿œhjjâÏ?ÿ„··w®õ8€ððp,Z´HšS¡Pà§Ÿ~B©R¥°wï^•úžžžÒT˜r¹\º¯¦¦¦˜={6är¹tŒL044XZZâ믿Îòì™››ÃÇÇG*ëܹ3zôè 6 %%%×s”-[VŠeúôé¸}ûv–ë4mÚ4Ô¨QCŠñ·ß~CBBPºti)ÆéÓ§ãÞ½{8yòd®ýîÚµ ¯^½Â‚ ¤þ+Uª„9sæ &&È3ö‘#GÂÞÞ ¥¥…aÆ!>>ááá…ÖLJ^½z*SCÊårÔ«W¯ÀÇÊäëë+½†Ë—/9sæàñãÇ8qâ„J½#F nݺ,Y² Òk}Ë–-HJJ²eˤ÷kkkL:wîÜÁ™3gTŽ7eÊÔªU €ês÷1lll T*¥é©à˜ü"""""""""¢|ù믿`mm [[[¸¸¸`ܸqj¯§§+++•²J•*!66VÚ ƒƒƒC–/›7oŽ×¯_ãï¿ÿγKKK•²òåË£V­ZRBÈXSÈXG """Íš5Siëàà¹\Ž›7oª”¸nÏ•+W+W®„»»»ôÏ7ß|ƒ¤¤$éø¹ù°o¹\ަM›âîÝ»y¶Í˽{÷`kk+%¯2e&;òRµjUií©LÞ»ìÈd2´lÙ2Ûµ”Þ—yýæÏŸ¯rýúöí Y®_Në&ÙÚÚBCC#K¹B¡9ņ&Mšd¹FÍ›7Gbb"îÝ»—ë9 Ì÷eÞÓ;w¸–Vhh(ôõõ³$}2Ûøü}(44r¹ÕêÔ©£²¹NVæ5*Œ>>Ô¹sgT©RuêÔAÇŽ±bÅ DEEø8ïËï=ø°^õêÕQ®\9éõ ccc)Iùáñ><ßìÖGûXÝ»wÇþótéÒÖÖÖØ´iS¡ûK‘õ]€ˆˆˆˆˆˆˆˆˆ(Õ«WǼyópàÀlݺ¡¡¡hÙ²e¾ÛkiiI#t2Éår!¤í””i”Åû2Ëò}£¥¥•¥L.—C[[[¥,3ŽÌ¾ß½{§ÒÏûÇÓÐÐÈÒo™2eT¶d|þá17n ssó\ã]]Ý,ezzzHHHȳí‡ÒÓÓU¶SSS³$ud[–¯õÞý‰‰‰Ëå°··WIR×ïÃć×?“A¶åYª…ýìe÷œeÞÓïá‡ñ§¦¦þ«¾SSS¥gõcÚYïñ‡¯‘ÂèãCÆÆÆ¸víÖ¯_#GŽ`„ >|8Æ??¿\Ûæôì}ø:ÊéäôzË|/(è=Éé™ü111ضmœñÝwßI£L)ÿ˜ü"""""""""¢|144„»»;zôè   ¬_¿¾@ɯü¨\¹2îß¿Ÿ¥üÞ½{Ëå¨\¹r¡ö—©jÕª€û÷頻¾yôèRRR`jjšk{ €««+Z´hñQ1dwÞ‘‘‘RlÙÑ××GRRÒÒÒT’;ÑÑÑ*õ¬­­¥ÑUï»uëÖGÅZØ,,,žžŽ¯¿þµk×VK ¹={P¥J•\Û§§§ãáǨ^½ºT ¹ÞÃ̾Ÿ?Ž7oÞHÓ‚¾ß>óùû0!õ~û¤¤$DGG«Äùaû#¿}äcNÊ•+‡±cÇbìØ±HIIÁ¸qãàïï~ýú¡nݺ(]º´”zß“'O²=Þýû÷U¦QÌéÜ¿_åý+11ÑÑÑÒèÔÊ•+#&&‰‰‰*‰²‚\S™LöQ â={ö ..›7oF¹rå Üž8í!B¡€……EžSÞ}Œ:àĉ*Sнxñ›6mBóæÍ utÅûš5k™L†%K–¨”/\¸ЩS§\Û·oߥJ•œ9s²¬K&„@|||ž1ìÞ½=’¶oܸS§N¡U«V9¶±²²‚R©ÄÅ‹¥²gÏžá?þP©×¥K„‡‡cëÖ­RYddä'ŸN-==kÖ¬Á©S§r­çææMMMÌž=;K² -- ¯_¿þ”aÈxöΞ=‹©ìÕ«WX¿~=ìííU*9 þ[¥K—BWW7Ïé%;tè€ôôt,]ºT¥ý’%K ¥¥ÿ›®óÃ×^‡ Ëó»xñbÈåriÿ¿‘ß>rŠ1;™k~eÒÒÒ’^k™÷ÜÊÊ ‘‘‘Ò¥píÚ5•ûô¾÷ïAæ¶B¡@óæÍUÊW®\‰ÔÔTi{ÅŠP*•RB¬C‡P*•X¾|¹T'==K–,ŽŽœó<¿òåËÔûäË—/¡§§ÇÄ׿À‘_DDDDDDDDDT` …¢Ð¦¼{ß´iÓ°wï^899aذaÐÕÕÅš5kœœŒ z™¬­­1aÂøûûãùóçhÓ¦ Μ9ƒíÛ·cèСy®çcllŒ•+WÂÓÓM›6EÏž=¡¯¯Çc×®]7n† ’ë1ªW¯ŽæÍ›ÃËË )))X¶lÌÍÍ1~üøÛtìØæææèÙ³'¼¼¼ „ÀÆQ£F „††Jõúôéƒ;v _¿~XµjôôôpñâE´k×Û·oÏv¬Â T*1xð`ôë×/שÛ,,,°`ÁŒ9QQQøê«¯ §§‡¿ÿþ;vìÀüùóÑ£GOc¦I“&açÎpqqÁ°aÃP¦Lâõë×X´hQží555qüøqôîÝÍš5ÃáÇqøðaüòË/022ʵmÛ¶mÑ«W/L:wïÞEÆ qàÀÃßß+VÔªU æææðòò’ÖÞò÷÷‡† ‚Ÿ~ú QQQpttDpp0öïßÉ“'ÃÚÚú__Ÿüöaff†ZµjaôèÑØµk`úôé¨[·n–c`ÇŽpssƒ©©)Þ¾}‹eË–¡víÚÒºnß}÷fΜ‰¶mÛ¢wïÞHHHÀ¦M›r!Н¾ú mÛ¶ÅÉ“'±{÷nL:5ËÔ£‰‰‰prrBÏž=qûöm¬Y³=zô;vD×®]1aÂܺu õêÕþ}ûpüøq,\¸0_‰©öíÛcË–-puuEÙ²eQ·n]LŸ>=ÏvBˆ,ÓRÁ0ùEDDDDDDDDD¦©©©2j"/öööÒºXïËü?“‰‰ .^¼ˆyóæáÈ‘#HKKC‹-0qâÄ<§ÃË©®]»ÂÐÐP¥L.—ÃËËKeŠC???ÔªU [¶lÁ† ```€•+WÂËËKªchh///išÃ÷õë×5jÔÀÒ¥K±k×.!P®\9 <_}õU®±@ïÞ½ajjŠÕ«W#!!]ºtÁ¼yó`ll,ÕqssS¤¥¥…   øúúâСCÐ××G@@”J%Ž?®r¾;wîÄæÍ›qæÌ”+WóæÍÃáDZÿ~é˜ÚÚÚðððPYcËÅŶ¶¶Yâm×®]ž#² <<<²ŒºÉÎðáÃQ¿~}¬\¹¿ÿþ;är9*T¨€Q£FÁÉÉ @ƺJ^^^ÙN#Ø£Gl§Ålܸ1 ”¥ÜÎΞžžÒ¶±±1.\¸€yóæáøñãP*•hÒ¤ &Nœ¨òœäD.—ãèÑ£˜4i6n܈R¥JaíÚµ0`€TÇÚÚ^^^*SfÚ²e ±wï^„††¢B… ؾ};zöì)ÕÑÖÖÆÙ³g±uëV<|øJ¥RšîråÊ•hذ!vìØ 6ÀØØ6l@ÿþýs;ó™¶´´T)766†——ÌÌ̤²üô¡P(pâÄ lÙ²‘‘‘9®7d¼6_¿~‹/âðáÃÐÓÓCÏž=1vìXèèèȘ~0((¿üò öî݋ʕ+c÷îÝ A\\\–cîÛ·sæÌÁ†  ££ƒ¥K—â‡~ÈRoùòåÒú…2™ Ó¦MÃÔ©S¥ý2™ ¿ÿþ;–,Y‚}ûöáúõë011ÁîݻѵkW©^ÕªUáåå•ízsýúõC¹råpúôiÄÅÅe{ß³“œœœíú…”2ñ)~žAôÿ|||àëë ÿs¼ÑÿÌ›7S¦L$%%eYŒžˆH]úöí‹“'O",,,Kb‰ N¡P`öìÙ˜>×®]+”c:::âÂ… ¾œïé9ò‹ˆˆˆˆˆˆ¨IKK“~Á›ôôtÈd2iQy"¢ÏmøðáFÅŠ¡§§‡˜˜&苸üuêÔ¥¥%’’’ˆóçÏcÛ¶mêˆ1ñöíÛÉdXµj•ºÃ)Ö˜ü"""""""*bbbàããƒýû÷ãÎ;yN‹³jÕ*,]º'ND¿~ý¸.}vŽŽŽxôè"""ðôéÓ§5£¢£L™2˜7ož} ˜4i …Zb#"""¢¢íÃÑ_ÑÑÑÒ¾÷G}­[·Ná}L~12™ ÞÞÞ€„„•}666õEDDDôÿ’““©î0Šœ÷G=yòD*ÿF}L~IÝ»wGíÚµrùÿ>¾7Ž£¾ˆˆˆˆþߪU«`cc777\»vMÝáfffhÑ¢ --Me_Iõ0ùEDDDDDDT$ÉårøúúÒÓÓdŒú8p :Ã""""*2”J%~ù大§cÿþý°··ÇÀqÿþ}u‡V$üúë¯Òè¯Ì@ûöíKô¨/€É/""""""¢"ëýÑ_G}½OCCDÿþý¡P( T*±víZT¯^îîî¸}û¶ºCT+4oÞ „1êkóæÍê ë³`ò‹ˆˆˆˆˆˆ¨ˆ’Ëå˜>}:ÀÒÒ Po@DDDDEL:u°aÃܸqCJ‚¥§§cûöí¨[·.ÜÝÝqçÎu‡©6kÖ¬QõÕ®]»?ê d"3ÝGô øøøHÓtðQ#"""¢¢æÝ»wˆŒŒDxx8âââðêÕ+ÄÇÇg™ŸHÝagg[[[u‡B¤¢T©R(S¦ ôõõaaaT®\™#‰ˆHmîß¿B©TÈøAQ=0sæLÔ¬YSÍ~~ŽŽŽ¸páär9¢££abb¢î>9&¿è“bò‹ˆˆˆˆŠš«W¯b×®]ÆåË—™è""*dÆÆÆpuu…««+zôèu‡DÅ@HHþùçu‡AD%Èýû÷±yófœ>}ZúnZSS˜:u*,-- ½Ï¸¸8ªU«¹¼ð&+dò‹>)&¿ˆˆˆˆ¨(HLLÄš5k°fÍ\»vMÝá}1ôôôеkWŒ5 öööꇊ0gggœžF!ÆFDDDDDT¤¤§§cÕªUðññQù ªP(`kk‹Ö­[£iÓ¦°±±……är9J—. MMM5FMDT|¼yóJ¥oß¾Exx8ÂÂÂðçŸâôéÓxöì°eËlÙ²:tÀ¢E‹P£F u‡MDD„¤¤$¼{÷®Àínß¾%K–`ûöíxùòå'ˆìË”œœŒ°°0„……aË–-Ëåhݺ5 „Þ½{CC£`é,Žü¢OŠ#¿ˆˆˆˆH]nݺ…௿þ’ʬ¬¬0xð`xxx råÊjŒŽˆ¨dKOOlj'ˆíÛ·#55 ¥¥…I“&ÁÛÛ»À_bQÉ–9ò«qãÆXµj•ºÃ!¢ ""¿þú+Nœ8¡2âëc§=¼uë¦M›†½{÷JÇ2~XפIÔ©SÕ«W‡…… a``ÀÕå!>>¯_¿ÆóçÏŽððpœ={6KRÑÊÊ S§NÅ€ò=5"“_ôI1ùEDDDDê°uëVxyyáíÛ·€ªU«bÖ¬Yõ‹A""úw¢¢¢0oÞ<¬^½ZZûÄÉÉ [·nEÅŠÕ™É/'''œ8qBÝáQ1váÂx{{ãèÑ£R™®®.Fމ1cÆ B… :^bb"|}}±`ÁéÇr¹NNN8p :uꄲeËê9|ÉÒÒÒpùòelÞ¼›7oF\\œ´ÏÁÁ+W®Dýúõó]]]¬]»~~~Édxñâ:vìˆÈÈHu‡FDDÅR©„§§§”ôÒÐЀ§§'ÂÂÂàçç“:îÖ­[Ñ¥K¼{÷ …>>>8}út¾¦Û£Â§§§‡¹sçâÌ™3°²²¬_¿]ºtARRR¶m˜ü"""""¢boÆ Òˆ/kkkœ9s666ê Šˆˆr4qâD,[¶ ‹Ž;âõë×jŽŠˆˆŠ L::::9r$îß¿ÀÀ@)Aò1‚‚‚0`À¤¦¦BWW»wïÆŒ3 P( 1rúMš4Áå˗ѬY3£óúõë'­)ú>&¿ˆˆˆˆˆ¨X»}û6† (_¾<‚‚‚P±bE5GEDDyùÏþƒiÓ¦"""0dÈ5GDDDÅ‘‡‡BCC±xñbim¨uåÊôìÙ)))ÐÕÕÅ¡C‡àææVH‘Ra([¶,‚ƒƒáìì Ø¹s'F¥“_DDDDDTl !0tèP¼{÷2™ ëׯ‡µµµºÃ""¢|òõõ•¦¨ýý÷ß±gÏ5GDDDŶ¶v¡|ˆ‡»»;Þ¾} lÛ¶ ­[·.„©°éééaÏž=hР Û¶mS©Ãä[6lÀéÓ§cÆŒAÇŽÕ„\.ÇÆQ¾|yÀ¨Q£ æ¨ˆˆèK4bÄi Ê_~ù…#¾Š¸2eÊààÁƒÒºnC† Á£G¤ýL~Q±”œœŒ)S¦ÌÍÍáëë«æˆˆˆècT¨P~~~€¿ÿþjŽˆˆˆ¾4'OžÄ¦M›]ºtÁˆ#ÔåG¥J•°víZÀ›7o0fÌi“_DDDDDT,mذÑÑÑ€Ù³g£T©RjŽˆˆˆ>–§§§4uÑ¢E‹””¤æˆˆˆèK!„À¸qã „€žž “ÉÔåSÇŽѳgOÀŽ;páÂL~Q1µxñb€……¾ùæ5GCDDÿ†L&äI“OŸ>Å–-[Ô}):„Àøñãaii©Þ€¨À,XÀ¬Y³0ùEDDDDDÅÐ¥K—>|8455Õ«•éÌ IDATQáº|ù2®]»¦î0J¬°°0„‡‡«;Œ"'227nÜP[ÿ½zõ‚©©)`ݺuj‹ƒˆˆ¾, .èëëcäÈ‘jކ>†™™ 8xð nß¾ õ†DDDDDDTp{öì( ôéÓ'ßíðõ×_ç¸øðá¹îW·§OŸâôéÓpuu…¡¡a¡·}ûöHOOhiiÁÔÔµjÕ‚‡‡Ê–-[hý¨ÛÇñ×_ÁÍÍMúe¨: !°cÇÔ¯_666*ûÆŒìÛ·OMÑ•lD•*U°k×®µ»qã>|ˆ¯¾úêEöïœÖèÑ£±jÕ*!°qãF&¿ˆˆˆˆˆ¨øÉü€Ú¸qcT©R%ßí”J%Ž=ŠÚµk£Q£FYöëééZŒŸÂõë×áîW¯Jkã†cÇŽ¡N:èØ±#RRRŽ_ý .Ä•+W`ll\h}©Ó©S§0`ÀÄÄÄ bÅŠêiiipwwÇüùó1vìXu‡óEéÔ©ÓG%v7n܈õë×ãÙ³gŸ ªÏ×׺ººü* ºu놅 "==ÇŽCïÞ½Õ•`Û¶m“~æáá¡æh>wïÞ!-- eʔɳnLL sÜÿí·ß¢jÕª…^¡±±±ƒƒΟ?ß~ûÉ/"""""*^qåÊ@«V­>ê;vÄüùó 3¬bÏÞÞ~~~Òöš5k0xð`lذ£GVcdD…oÆŒêr`oo]]]$&&âÌ™3L~Ñ'uôèQ€••U¶?Ž+  „ˆˆi]³Ü<~üÓ¦MCÙ²eQªT©,û[¶lYd“_гgOœ?<àš_DDDDDT¼Ü½{©©©2¾$ý–/_Ž&MšàÖ­[*å3fÌ@óæÍñäÉÓÖ­\¹ 4€‘‘ÌÌÌ0räH¼}ûV¥]BB|||P«V-ÁÜÜîîîÒq–.] WW×,q,Z´íÚµ>|#FŒñ‹K;;;ØÙÙáÎ;R,hܸ1ŒŒŒ`jjŠaÆáõë×u 2§uË<~¦+W® k×®(W®Œáêê*%#3 !ðÓO?ÁÂÂFFFh×®îܹ''',[¶Lªçéé‰É“'gé»_¿~YÊ###Ñ¿˜˜˜ÀÈÈÍš5“¾¬ÈtíÚ5´oß•*U‚±±1jÕª…6oÞ Ó}úÀØØÍ›7 :Ó¦M“êÆÄÄ`ذa¨]»6Œaccƒo¾ùFå=À××7nÄ?ÿü#Ý/iÿÛ·o1eÊXYYÁÈÈ5kÖÌSNbcc1jÔ(T­ZFFF°¶¶Æ Aƒ”” ã9ûöÛo¥c7hÐßÿ=^¾|)ã›o¾AHHÎ;'Å—ùžq÷î]xzz¢zõê022B:uàéé‰Çç[LL †ŠÊ•+ÃÈÈŽŽŽøý÷ß³Ô;~ü8add„jÕªaõêÕ*ïaù¥££ƒzõênß¾] ¶DDD¡T*qæÌ€³³³š£)ZüýýñèÑ£,ÿ|ì?—6mÚHÿÍ‘_DDDDDT¬Ü»wOúï×I*,ƒ B`` ºvíŠèëëc÷îݘ9s&V¬X!MµøÃ? 00#GŽ„““>|___\¿~'Nœ€\.Gjj*ÜÜÜpúôiŒ5 ­ZµB||<öíÛ‡èèhT©RÑÑѸ~ýz–8?~,•×®]îîî˜3g<==aii 011Œ;K—.ň#0sæL<~ü¾¾¾¸zõ*Μ9…BQ k*SþùçŸh×®š7oŽeË–ASS+W®D‹-péÒ%Ô­[àíí9sæ`ذaèС.^¼WWW¼xñBJ>‰µ„„„,}ß¾}J¥RÚ¾{÷.`ee…ùóçÃÀÀ[·nE‡pðàA´k×oÞ¼A»ví`ccƒùóçÃØØ>”Ö̲··GçαlÙ2 >\Z3­téÒ9^ƒ¾}ûâ?þÀ„ ààà€#GŽ`âĉˆŠŠB@@àÍ›7 ‡‡6lˆùóç#66¾¾¾Bà·ß~ËöØzzz?~<úôéƒ6mÚ K—.[[[©NXX¼¼¼0|øp˜˜˜`ýúõpwwGXXjÔ¨¸|ù2œœœÐ A,Y²ºººX³f œœœpúôi4iÒ$Çó;{ö,¬¬¬ðÍ7ßÀÐÐW®\ÁܹsñäÉlÚ´IªwãÆ Ü¾}ššš˜>}:444ðóÏ?ÃÙÙýõêÔ©ÇÝ»w±}ûvx{{£bÅŠX¹r%ºw{÷JçøèÑ#œ={_ý5ˆAƒAWWÏž=CëÖ­!„À¬Y³P¶lY,_¾;wÆüN:ž¡3f|Ôˆˆˆˆ¨,]ºTúóéÓ§j/QµjÕ,ÿ„……IuïÝ»' „‡‡‡xðà044}ûö•ö‡„„bõêÕ*}œ|ø° ®^½ªR/44TÈd2 R~áÂ@ìÝ»7×ë¢P(D‡Dpp°ëׯuêÔeÊ”wïÞ•êÙÚÚŠV­Z‰´´4©,%%EØØØˆ>}ú!„xùò¥ÐÑÑC‡UéÃßß_S¦L‘Ê„»»{–x5j$z÷î-mõÕWÂÆÆF¼{÷N¥ž³³³pttT9×óçÏçxžëÖ­DLLL®×C!N:%ˆùóç«”ÿøãB&“I×%ó~¿ÿl‘ñYH.—‹„„„ûHMMͶ!„hÙ²¥ÐÔÔT¹þ¯^½zzzbÚ´iRYóæÍEãÆEJJŠT–––&4h ºté’çy~hÅŠB¡PˆW¯^Ie•+WÚÚÚâÑ£G*±”-[V|óÍ7RY›6mñçŸJeJ¥RÔ«WO4hÐ@*6lX¶¯‰ñãÇ …B!nݺ%•¥¦¦ Q³fM©lܸq€X´h‘Jû¾}ûŠÒ¥K‹×¯_ !„X½zµ ÆŸå<›4i"ºuë–뵈‰‰ZZZbÍš5*}g÷Z]¼x±ÐÔÔ7nÜP)Ÿ={¶ÐÖÖ/_¾Ì±ŸñãÇ ¹\.BBBrçC™ïï÷éää$:v옯öW¯^Dpp°TÖ·o_Q·n]i{Á‚€8qâ„T–žž.Z´h!Ê—//’““…¯ÑJ•*‰ÄÄD©ÞóçÏE©R¥TÞÃòk„ €ÐÖÖ.p[*¾œœœáää¤îPˆè ±oß>ésŹsç ÔöСC€èܹ³¨Zµªððð B±qãF¡P(DÆ ŨQ£DÏž=…\.ßÿ½ÔþÊ•+€puuÕªU?þø£pww2™Låï+!„ðññ„‹‹‹5j”°µµr¹\¬ZµJª“ù7içÎ…¹¹¹øî»ïDß¾}ÅÂ… …µµµ(W®œðòò^^^bÖ¬Y9ž×¥K—ñßÿþ7×ó?þ¼ÔŸ™™™èß¿¿ô÷{•*U„³³³044ݺužžžâÌ™3âúõëÂÈÈH˜››‹áÇ‹ž={ …B!Z¶l)þ½{³©ìÿ8þÙs>1f4ŒsÇQO3HFÑ8 ù©yJ…¤ò„Š‘_ ŸåIJB¥œk4Õ0Î9ŸÇ™aÌyfïû÷‡kÖÏnŽ„a{¿®Ëu™µïµÖw­µ÷ì=û³îûÎÌÌ´¶]»vmÓ¢E l:vìhz÷îm–-[VâkÓ¨Q##ÉÐó ÀuåܹsÖÿK2isAn»í6Ý{ï½ù–_ØË),,L|ðüq­ZµJVoIš7ožÜÝÝÕ´iSíÙ³ÇZ^­Z5(!!AmÛ¶Õ÷߯J•*]ÑykæÏŸ/Iºë®»œj Qùòå•` cX˜E‹iÑ¢EÖÏåË—Wll¬Õ»n÷îÝÚ¸q£ÆŒ£}ûö9­e ³·nÝ:effZ=Bò<þøãVo”‹‘‘‘¡E‹©wïÞ:zô¨ÓcÍš5ÓÛo¿-‡Ã¡jÕªÉËËK#FŒÐsÏ=§¶mÛÊÇÇç¢÷—géÒ¥’d ›˜§W¯^zÿý÷µxñb§ž‡Ýºusj)‡Ã¡ýû÷«^½z—TCdd¤Ó>fÿcÇŽY½‹<è´n³fÍ4oÞ¼b÷qüøq-]ºT‡Rrr²Ž=*»Ý®]»v©Q£FV»Ö­[«jÕªNµtìØQ?ÿü³ÓöjÖ¬©æÍ›[?»»»ë‘GÑË/¿¬´´4kîOOO=ôÐCNë.Y²DM›6Uýúõ­eêÙ³§FŒ¡}ûöY=%øûꫯ´aÃÝ}÷ÝÖòþóŸÅžéüÐG‹/ÖîÝ»uôèQ9ùùùiûöíÅ®;þ|Õ«WOþþþN¯ÁÈÈHeeeióæÍ…ôý÷ß«E‹ÅÎ3rîÜ9ýôÓO:tèNœ8a ‰¸}ûvk˜À¢dddháÂ…:pà€õZrww×öíÛÕ¦M›×Y²d‰jÖ¬©èèhk™ÍfÓO<¡'Ÿ|Rk×®UTT”Ô±cG§×ÜM7ݤ˜˜­Y³¦ØÚþ*ïw{VV–²²²äíí}ÑÛ 8ÿ[£FKÚÆñãǵiÓ&ë3NRR’úöí«^½ziòäÉrs;?óÔÔ©SÕ»woõìÙÓ©Ó¶mÛ”˜˜hýÒ¸qc½ôÒKzâ‰'Ô®];mݺU¯½öšüqM:U6›ÍYbÀ€êر£5„t¾‡ýæÍ›U¦LkY||¼vîܩɓ'—ø¸¦M›Và0Ú“&MrꥵgÏmÚ´INíV¬X¡¸¸8§c½ûî»åîî®øøxUªTI’4cÆ ýóŸÿÔ‡~¨_|Ñj»råJ-[¶Ìiˆé’ºù曵víZ†=p}É›ïKR¡CuçÎ;ïÔðáËm÷ØcéÝwßÕúõëõÍ7ß(((Èz,))Iv»½Ð/ó† ú¨>øà={Vqqqú׿þ¥ÿûßZ¼x±l6›õåÀˆ#4bĈ|ëç}é½ÿ~Ir J$©B… —ôöñãÇ•­I“&iÒ¤I…¶©\¹²fΜ©Aƒ©cÇŽòóóSëÖ­5tèÐ ‘òWÇŽS@@€Ó5—d…/ â*T¨àô³ŸŸŸ$]Òo…m3o»yÛÌ»îo¾ù¦Þ|óÍ·‘““Sèëdâĉ2dˆ*V¬¨úõë«B… Ö¶Ož<éÔ¶ZµjùÖ¯^½º:¤ÜÜ\yxxÚ®Zµj2Æhÿþý —t~¸Î¿ÅyìØ1ëñ åMª~ôèQëü—)S&ß—,yûÞ·oŸSøU¹råÿB›6mRÇŽuêÔ)5jÔH•*UR@@€l6›Ó¼Z…9tèvîÜ©°°°/ê5xäÈ‘bŸ£óæÍSŸ>}äíí­ˆˆU¨PÁ:ç½V‰ÕÃ?,»Ý®ÈÈHU¬XQ~~~rss+rýcÇŽ©zõêù–_ø:°Ûí:zô¨õ%Ö…Jrî rá—j999„_€+ârÜT7hÐ +ø’¤9sæ(33S£G¶‚/éüM;ƒ Êõë×Ïé¼çž{NcƌѢE‹Ô®];}ÿý÷r8zõÕW­¿'<==5|øp-^¼X?ýô“zõêe­?`À§àëR>}:ßÍU’òÍeú¯ý+ßg2IŠŽŽv:Î'NhõêÕzùå—>3ôèÑC£GÖܹs¯¦M›^Rð%ýÿµ$üp]¹pަÔÔTkî¦+aêÔ©Z¿~½*Uª¤7ÞxC<ð€òøúúÊÏÏOgÏžµ¾„.¬Þ¤¤¤"÷ãææ&‡Ã‘oyIƒ___yyy)%%å’¿$öööVPP‚‚‚¬/¶{ì1MŸ>]={ö´Âœ¯¿þZ=zô(t;ÁÁÁ’ÎÏcta–ššª¬¬,§¶nnn²Ûíù¶qáqçí÷7ÞÐË/¿\ä1tîÜY:uÒÆõË/¿hâÄ‰ŠŽŽVbb¢5/UIå…LÙÙÙN_ÄŸ9sF’œ¾ä(-yçfòäÉzê©§.jÝôôt=ÿüózúé§õþûï[ËW¬X¡Ù³gçkŸœœœoÙéÓ§èôü/¨]Þ² ¿Ø)h:???ëü´þ…ç<---ßµ)h?…íë¯FŽ)%%%9ýŽÉëUY???µjÕJË—//Qû èôéÓE¶8p Z´h¡yóæY_|íß¿_Ÿ}öY‰ö1dÈÕªUK±±±ÖõÊÈÈД)SŠ\¯°kráëÀÝÝ]7ÝtS!Ú‰'JTß_å}éæævM¼Ö®)##Ãú¿¯¯ï%m£V­ZN?ïØ±C6›Í©'ü…û»°‡¸¤|#øøøè–[n±Úíß¿ßZv¡¼žò{÷î-²žKõüóÏ«o߾Ŷ+l]žwƒÜ…=üóÔ¯__¿ýö[‰¶[yŸ‘ÝŠi×” ï,,èKÙËeݺuzöÙgõüóÏkåʕڻw¯ú÷ïo=¥ôôtýòË/En§I“&Úµk—vìØQh›Š+*999_Øõûï¿;ýœ÷Gyvv¶Óò¨¨(eggkÉ’%%:¶’xôÑG©áÇ+++K·Ýv›´`Á‚"×Ëû~åÊ•NËãââòµ ÕáÇ–ŸŠ“d–-[öŠöšÜØòBéÒ{ëtã™———&Mš¤É“';ýûé§Ÿ4`À§¶¹¹¹ùÖÏÉɱ޳m6›G¾ÏÁyï¹ö.+¬ž+©°ýýuøñ¼÷ó‚n|³ÛíùŽãï _ž––&‰ð ÀuæÂaÅŠ ”ŠräÈýúë¯ùþåÍ¥”’’¢îÝ»«aÆ7nœjÕª¥O?ýTŸ}ö™¾øâ IÒC=¤zõê©wïÞZ¶l™õ‡Ü±cÇ4qâDýù矒¤§Ÿ~ZþþþzôÑGêýù短¡Ðš5k&‡Ã¡Q£FI’2335fÌmܸѩî[n¹Ennnš7ožöìÙ£={ö(++K;vÔ?þñõë×O‹-²þˆ>~ü¸&Ožœo;%a³Ùôúë¯ëàÁƒš4i’|||4dÈ}ýõ×=z´RSS%¿ƒuÉ’%š>}º¤ównÞ}÷Ýzã7”˜˜(éü©C‡Í×§Y³fŠ×?þhÕûä“Oæûã~ĈZ½zµž}öYkºììl­Y³F'N”$%$$諯¾²¾øw8Z¸p¡$Y¡IÞsgΜ9Öù+èpIêÒ¥‹*W®¬^xÁz^$&&ê•W^Qxxø%Ãr!›Í¦š5kjùòåÚ±c‡öìÙsQ®»»»† ¦~øAÿþ÷¿uöìYIçŸ?¿üòK‘½‚ªW¯.///MŸ>]ÙÙÙr8úá‡ôÑGØþرc:t¨²³³•““£±cÇjãÆùzœ9=óÌ3:wfΜ©yóæ©o߾ņýû÷×éÓ§5`ÀeddÈn·kÊ”)úþûïõôÓO;õòòððЋ/¾h½†~ýõW½óÎ;Љ‰ÉwgtI„……iÉ’%Öðž»wïVïÞ½ó Y³fM¥¤¤hÁ‚Ú³guóóÏ?/cŒºt颭[·ZçbÇŽ5jT¡Ï3IzñÅuæÌõìÙÓ ív»¾ýö[¥§§+ @¡¡¡š5k–õº[µj•Fo[5kÖÔÆµnÝ:íÙ³GGŽ‘tþîéùóç[=ÌÖ¯_¯_|±Ø^qO=õ”Œ1êׯŸÎž=+cŒæÎ«©S§ª{÷îV 9xð`íÚµK½zõÒúõë•oN·‹‘÷»²°a$¸.°°›P.Vxx¸²²²T±bEµiÓ&ß¿¿ŽFð×ÏégÏžÕ¾}û¬÷ÀÚµk+;;Ûú|‘'ïsö…óÃÆÃãÈÏ"WC­Zµäææ¦ 68-·ÛíÚ°aƒÓMN—u- p9ÒH2<Õp¹$%%YŸ1ßÿý‹Z÷ìÙ³Öºý8p 1Ƙnݺ™òåË›8­ß§Oãïïo¶nÝjŒ1æÀ¦eË–F’ñöö6~~~F’©X±¢Y¿~½µ^\\œ¹å–[Œ$`¼¼¼ŒS›'Ÿ|ÒH2¾¾¾ÆÃÃÃÜsÏ=¦_¿~¦B… N5¼öÚkÆÛÛÛªyíÚµÆc>lÚ¶mk$///«–óûï¿y^ÜÝÝMŸ>} |¬yóæ&44Ô¤¥¥»Ýn^}õUãããc$™råÊYû=z´µÎž={L½zõ¬ãuss3&L0fذaV»sçΙˆˆ#É”)SÆØl63xð`Ó°aCÓ½{w§:>úè#h$™ÀÀ@c³ÙŒ»»»yòÉ'1Æ,[¶ÌøúúZuOOO3dȧí<÷ÜsÆÃÃÃ:III…ž—uëÖ™š5kZÇ!ÉÜ~ûíf×®]V›ØØX#Éüúë¯Në.Y²ÄéúfÁ‚¦bÅŠV=ãÇ·Îû}÷Ý—¯ýwÞiºtébýìp8ÌØ±c¿¿¿Ó5ñôô4/½ôR‘ûþøã§§§ñ÷÷7>>>¦|ùòæÃ?4’Ì¢E‹¬v•+W6½zõ2Mš41žžžÆÛÛÛØl6Ó¿c·Û­v­Zµ2mÚ´1>ø qss³®Ç}÷ÝgÒÒÒ¬vÏ>û¬©Q£F5Mž<Ùøûûwwwãëëkl6›yüñÇMff¦ÕfðàÁ&$$ÄŒ=ÚØl6ëÚÜvÛmN¯ÙO?ýÔH2'OžÌ·Ÿ&Mš˜Î;[?oÙ²ÅT­ZÕxzzš²eË›Íf†n4hàôÚÈÈÈ0÷ÝwŸu½Ê—/o=gjÕªe$ãååe$™:uê˜ÜÜÜ"¯ÅÌ™3ÍM7Ýd=¿ÝÝÝM`` 9{ö¬1Ƙï¾ûÎ___ãïïoüüüÌgŸ}f$™?þØÚÎÞ½{ö )_ IDATMdd¤U_»víŒ1Ƭ\¹ÒoooëµñÑG™2eʘQ£FYë?òÈ#æÖ[ouªmöìÙ&((ȸ¹¹Y¿Wxà«¶<Ÿ|ò‰ ¶~8Ð<ýôÓ¦N:E{AªV­j$™‡~ø¢×Åõ+::ÚH2ÑÑÑ¥] €Ä?þh½gÆÅÅ]Ôº .4’œ>ÏcÌÉ“'M¹råÌ]wÝeNœ8áôØŽ;¬ÏžëÖ­³>K\øÙrРAÆf³™øøxcŒ1ûöí3^^^¦C‡&##ÃcLrr²¹ãŽ;L¹råÌ™3gŒ1…&5Ƙ—^zÉå{ï.Èï¿ÿn$™O>ù¤Èv¿þú«‘dbccó=V¥J3`À€|Ë;tè`Ê–-k6lØ`-7nœ‘d¦L™b-«]»¶õÿRä}²S‚q#€K4jÔ(ën4žj¸\*W®¬#Gލk×®ÎOTcŒÕS£ eË–UPPΜ9#OOO§!ФóÃ’œ;wN¾¾¾NCqlݺU[¶l±ÆãÏ7tGNNŽV­Z¥“'OªL™2jÚ´i¾ùÊvìØ¡-[¶¨Fjذ¡222”••Uà¼f vaïmÛ¶iÓ¦MòññÑÍ7߬ ä«¥ my{{; ý’'##C™™™Nû9}ú´V­Z¥œœ…††êöÛoÏw®²³³õóÏ?+++K7V•*UT®\9õïß_¯¿þºÕÎn·+11QTDD„n¹å¥¤¤ÈÝÝ=ß\?iiiZ¹r¥RSSª XsŒåÕš7ô\Ù²euÛm·9M¨ÇápX½¤‹­ÐÐP5kÖÌé|ç='Ê”)ã4¤\NNŽRSSó]ŸÂœ;wN¹¹¹Ösëܹs²ÙlùÎkaËÏž=«¸¸8eff*44T·Ýv[“ÿÕþýûµ~ýz¨Y³fÖÜqV¯§*Uªè¡‡Ò;ï¼£„„íß¿_õë××­·Þê´­Ö­[ËÓÓS‹-ÒæÍ›µ}ûvU®\YQQQNíÒÓÓ•““Sh}§OŸÖÊ•+•““£Ûo¿=ßÍC† Ñ´iÓtüøqíß¿_‰‰‰ò÷÷WË–-®AVV–ÒÓÓU®\¹|½ÎŽ9"…„„8Ûøøxedd¨Q£FªR¥ŠRRRäáá‘ﵑw}m6›ÓëÓn·+>>^‡V`` êÔ©cÍ¡Wœôôt­X±B©©©*_¾¼¢¢¢œæ9zô¨äáᡨ¨(•-[VgΜ‘ŸŸ_¾!‡233•‘‘áô{ìÔ©Súý÷ßåp8Ô´iS•/_^gΜ‘õûìäÉ“ÊÎÎVåÊ•¶wîÜ9ÅÆÆ*33SuëÖÕ?þñÁn·+%%E>>>òõõU«V­äåå¥E‹•èHÒž={¬»Ý'L˜ Áƒ—x]\ßZ¶l©ØØXEGG;¤0\;wî´>gL™2E}úô)ñº‹-Rûöíµ~ýzÝ~ûíNýòË/êÚµ«Œ1jÒ¤‰¼½½µoß>mÚ´IË–-S«V­”˜˜¨† ªgÏžZ¸p¡¢¢¢täÈ%$$hÈ!?~¼µ½Ï>ûLýúõS¥J•¡ß~ûMçÎÓ7ß|£ûï¿_Òù៣££õ믿ªiÓ¦NõlÙ²EM›6•ÝnW¥J•T¿~ýB‡Íþã?Ô¤Iyxxøù?ÿùžzê)ÅÇÇ+**J±±±ºçž{œÚT­ZU>ø Ó¼²’tàÀµjÕJ‡ÖÝwß­S§NiݺuêÑ£‡¦OŸní¯N:ºçž{ôé§Ÿ–ðjü?‡Ã¡ÀÀÀóŸÓ¿p%~àJxä‘Gôõ×_«|ùò:zô¨ÓÞ¸v~áÚ—~½÷Þ{E¶»0üº’. ¿píØ¸q£S(öÍ7ߨGzûí·õüóÏ—x;Ÿ|ò‰úõë'éüÜ‹‘‘‘—½V\›¿\m¹¹¹ Rjjªúôé£)S¦”xÝ£G*..N111…Þ¨öí·ßjÓ¦M’Î_Þ¾}{kx¿¼ðkñâÅ*S¦ŒæÎ+»Ý®˜˜µoß>ßö¶nݪùóçëàÁƒ S×®]n°9qâ„bccÕªU+•/_>ßú'NœÐï¿ÿnÝSàq:uJ?üðC¡Ç¥ºuëêÔ©SúùçŸít3‘$-X°@U«Vµæ½PZZšfΜ© 6È××W­[·VÛ¶mÚ,\¸P!!!jܸq¡ufýúõÖgþBpݹ÷Þ{õõ×_ëÔ©SZ¼x±:tèPÚ%À -**J!!!ªY³¦:¤;wªC‡ú׿þuQÛ™1c†$©R¥Jùî¤àròððÐÝwß­E‹]tèZäü–AAAzòÉ'K´­¨¨¨|=åÿ*<<\ááá…>Rd=!!!%ú›©|ùòzâ‰'JÔ®°ýÝwß}…®çïï_l»‚¿’úù短ÿ~¸îtîÜYþþþJKKÓgŸ}Føu5j”6lXÚeà" 6LõêÕ+¶]ß¾}‹bórøŸÿùU¯^ýŠï'11Qñññ:vì˜ÜÜÜtÇw¨yóæù†œ,ÊîÝ»µråJIR=®Êó pckÓ¦-Z¤={öhݺu|V½ÎÍ™3GÒùžv„_®;z衇ôùçŸkþüùÚ±cG¾ypí4hPi—€Kпÿµ{øá‡¯p%çµlÙR-[¶¼*ûBÉÕ©Sçoÿ~ë­·äp8d³ÙJt×9W÷îÝõÒK/ÉáphÚ´iW-ü*S¦ŒÚ´iSà…¸4;vìP||¼¤óŸK¹…ÀuiÈ!rss“Ãá°æ™\ŸvïÞ­Ï?ÿ\’Ô¡CÝvÛm¥[à†PµjUkþ«©S§*99ùªì·V­ZZºt©5jtUöw#x÷ÝweŒ‘ÍfÓc=Føàú®®]»J:?GLlllé¸dTff¦l6›FŒQÚån ƒ–$;wN|ðA)WƒKqðàAë&šx@õêÕ#üpý7nœüüüdŒÑ3Ï<£´´´Ò. p‘¾ùæýøã’¤G}TMš4)åŠ7’6mÚXï=ãÇ×¾}ûJ· \´^xÁº‰fذa’DøàúuóÍ7[CnÛ¶MO?ý´Œ1¥\ ¤¶mÛ¦§žzJ’T¡B?¾”+܈>øà¹¹¹)==]ýúõ“Ãá(í’PBóçÏל9s$I={ö´‚LÂ/×µ_|QíÛ·—$MŸ>ݺÓpmKJJR»ví”’’"777}ùå— -í²7 ;ï¼S}úô‘$-Y²Do¾ùf)W„’Ø·oŸz÷î-I tº‰†ð ÀuÍf³é‹/¾Pݺu%Io¾ù¦ÆŽ[ÊUŠrôèQµk×N$½þúëjÛ¶m)W¸‘M˜0Aaaa’¤‘#Gê‡~(åŠP”³gϪS§NJNN–$Mž>>®CøÀåøúújòäÉZºt©êÔ©#IÚ·oŸú÷ï¯J•*©oß¾š;w®Îž=[Ê•€ëÙ¼y³Þ}÷]5oÞ\áááúâ‹/”““#777õë×O[¶lQLLLi— @‘Z¶l©„„Ý~ûí’¤øøx5nÜX½zõÒ¶mÛJ¹ºCFF†>üðCÕ«WOcÇŽUNN޼½½5iÒ$M™2Ežžž…®k3Ƙ«X+n0£FÒèÑ£%I<ÕP²²²ôßÿþW&Lо}ûœóððPÕªUU»vmÕ¨QCåÊ•cø-¸Hééé:uê”vìØ¡]»véÌ™3N»¹¹©sçÎ>|¸"##K©J\ëZ¶l©ØØX§y\àZ‘‘¡Ñ£GëwÞQNNޤóïmÑÑÑêÝ»·Ú¶m«R®Òuäææê?þÐŒ3ôÕW_éôéÓÖcM›6Õ¤I“¬@²(„_¸¢¿p­ÈÍÍÕ÷߯éÓ§ëÇTvvvi—.íæ›oÖ#<¢Ç{Ìê… †ð ÀµnëÖ­zå•WôÝwßÉápXËm6›ÂÃÃÕ´iSÕ©S‡›ê.RjjªNœ8¡;vhãÆZ³fRSSÚÜrË->|¸zõê%7·’ hèq%Š€k‡‡‡ºté¢.]º(55U«W¯Öo¿ý¦íÛ·kÛ¶mÚ»w¯Îœ9ÃM[p‘|||¬ ¨N:ºõÖ[Õ¢E Õ¯_Ÿ9½.#<<\sçÎÕÖ­[õá‡jÖ¬Y:uꔌ1Ú²e‹¶lÙRÚ%º” {×uïÞ]g~¸á¨]»vj×®]i—ëÍ7ßÔË/¿,éü°;…Mê €+/<<\'NÔû￯øøx-^¼XqqqÚ¶m›Ž?^Úå]·¼½½U§NEDD¨]»vjÓ¦*V¬xÉÛ#ü¸žžžjÞ¼¹š7on-KIIÑÉ“'¯¹%>üðC}þùçòòòÒš5kJ»'~~~ Thhh‰‡4, Â/€¿©lÙ²*[¶li—‘Ohh¨¤óC 6jÔ¨”«¹:._Œ”2Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Â/¸ Ò.”ÌÞ½{åíí-I RPPP)W\{èùÀu"<<\aaa Óûï¿_Úå×$Â/¸ †=àÖ©S'………Y?wëÖ­«®}„_\ÃêÕ«§zõê•vÀuƒaà2¿à2¿à2¿à2¿à2¿à2¿à2¿à2¿à2¿à2]ÙÙÙ¥]Ž$)66V³gϾìÛMIIÑÌ™3uøðábÛ®[·NS¦L¹ì5\mqqqZ¾|y‰Ú®_¿^ß}÷6mÚt…«\m„_¸!ÄÅÅ©J•*ºÿþûõñÇ+''§´K’$}þùç5jÔeßîÁƒÕ£G­[·ÎZ6cÆ Íš5+_ÛüQýû÷¿ì5\m&LЫ¯¾jý¼oß>7NÇŽË×vÛ¶mzå•W¡æÍ›Ën·_ÍRWánS¦L‘¿¿¿:¤Õ«WËßß¿´Kº¢BBBôÊ+¯¨N:Ö²O?ýTS§N-Ū®®;wjèСJJJÊ÷ØÃ?¬M›6éË/¿ÔªU«´víÚR¨p%~à†pøðaÕ­[÷’B¯ÔÔT%''ËápÙÎn·+99¹È6¹¹¹JNNVVVÖE×q1*T¨ 1cÆ8…_%aŒQrrò%÷„JIIщ'œ–åszzz±ûÍÌ̼¤ý^ª;î¸C’tèС«º_À•Cø€Bnn®<==/jµkתeË– Tpp°*V¬¨ÿüç?Nmúôé£èèh-^¼X·Ür‹‚ƒƒ¬—^zIƧ¶Ÿþ¹ªT©¢àà`U¨PAo¾ùf±5äää¨J•*zûí·­eIII VTT”SÛN:éÁ”$íØ±CÕªU³æÀjÞ¼¹5'V^ymólÞ¼Y V`` zôè¡´´´"ëËÛÞO?ý¤˜˜êÖ[o•$eggkذa Upp°Ê–-«öíÛëàÁƒÖúÙÙÙzê©§äíí­àà`ùúúªjÕªúꫯ¬6•+WÖ;3oß!!!z÷Ýw ¬kîܹêÒ¥‹$©eË–Ö1¯_¿Þ©]ÞsâZð÷~à†››+7·’üÝ´i“š7o.OOOýüóÏÚ²e‹  AƒiÒ¤IV»´´4mÞ¼YƒÖøñã¯>}úh„ úþûï­v ,PïÞ½ÕªU+ýñÇš;w®fΜ© Y‡§§§4h … ZË~þùg¥¥¥é·ß~ÓÑ£G%I™™™Z²d‰7n,é|˜sèÐ!eddH’&Ož¬ˆˆ5nÜXK—.ÕÒ¥KÂ7»Ý®‡~XÏ<óŒâããõÆohöìÙzï½÷Ь/''GÉÉÉêÝ»·êÖ­« Xçç‘GÑĉõÚk¯iëÖ­Z¸p¡8 6mÚX=߯¯¯¾úJS¦LÑŸþ©uëÖéÕW_•»»»µ3gÎXÇq¡äää—KRtt´Æ'Iš8q¢uÌí —÷œ`Î/p¥]p¥åææj÷îÝŠ‰‰)ñ:¯¼òŠjÔ¨¡~øAÞÞÞ’¤ððpíÞ½[ãÇ×ÓO?mµMNNÖŠ+Ô AIR“&M4wî\}ûí·êر£$iìØ± ××_-›Í&IúñÇU³fMU¬X±ÈZÚ´i£W_}UòõõÕÒ¥KÕµkW-_¾\K—.UÏž=µzõjeddzŒááá*S¦Œ¼½½Õ¨Q£|Ûív9R=ô$éÎ;ïÔÒ¥Kõí·ßjøðáÅž¯N:éÃ?´~^³fæÌ™£o¾ùFݺu“$Õ¯__sæÌQxx¸æÏŸ¯îÝ»ë?þPÓ¦MõØcYëFFF»¿â«víÚÖ~6lX`»òåËËÝÝ]»wïþÛû\èù—uäȽþúëjß¾½ÒÓÓõÌ3Ï”h=»Ý®eË–©^½zŠ‹‹Ó²eˬ!!!Ú»w¯RRR¬ö5jÔ°‚/I²ÙlªW¯ž8 éü|V‰‰‰êÒ¥‹|IR•*UÔ´iÓbëiÕª•²²²´zõjIç‡lݺµ¢££­a —/_®   KŽl6›Ú·oï´¬~ýúÖ1'oˆÁ<‹/–Íf“¯¯¯ÓùKJJRPP6nÜ(IŠˆˆÐŠ+Ô¯_?­ZµêªÏùåïï¯gžyFãÇ×À5mÚ´«ºÀåGÏ/¸¬´´4ÅÆÆjíÚµjذ¡ªW¯^¢õRRR”žž®¸¸8+¤¹PÍš5uòäI•-[V’”¯···NŸ>-I:yò¤222 ìáU©R%|¸z÷îít^*W®¬½{÷:µ_±b…Œ1EnÓßß_’Š<æ'N(55U-Z´(QÀÕ’““£Áƒ+,,Lo¼ñF±í;¦Æ«I“&Z³fÍU¨%qîÜ9mÛ¶MÏ<óŒyä‘BçÄ•—••¥äääbß;®”°°0uëÖM#GŽ´žàÊ¡çnþþþÖP{%ñú믫uëÖzðÁõÊ+¯¨V­ZJNNÖºuë”  &\Ôþ¨Þ½{ëå—_Ö!CtöìY=ûì³%þ.&&F¹¹¹Z¶l™¾ùæ§åŸ}ö™*Uªä4ïXA4h >úHsæÌQ¹råT¾|ùKž#¬8÷ÝwŸî¾ûn 0@éé銉‰‘···öíÛ§¹sçªk×®jÒ¤‰†ªæÍ›ëÎ;ïTPPµhÑ"ÝqÇNÇ8uêT=üðÃjÔ¨‘Ö®]«¡C‡Û»¥víÚòòòÒäÉ“•žž.IjÒ¤‰Ó°TyÏ Ÿ+p€Kçéé© 6(==]}ô‘žþyU©R¥ÐöcÇŽUzzºèùu 9sæŒ$©L™2µ^JJŠfÍš¥7Ê××WmÚ´Q›6m¬këp84eÊEEEÉ××W3fÌÐÑ£GõꫯjýúõÊÊÊR«V­4}útmÚ´I:uRLLŒìv»æÏŸ¯5kÖÈáp¨I“&êÚµ«<==­}/_¾\gÏžUûöíõå—_jãÆjß¾½:tè¯Î¼:š6m*???Íœ9SGŽш#ªŒŒ Í™3GëÖ­“›››Z´h¡ûï¿_nnÿ/ö_|¡ºuë*44T_~ù¥Ž9¢ÈÈHõìÙSÞÞÞNû;uê”f̘¡mÛ¶)88XíÛ·WTT”S›)S¦¨Q£F*W®œf̘¡C‡éP\\œ$iÚ´iÖÍ=ö˜õû÷îÝš7ožöìÙ£*Uª¨sçÎ wÚ¶Ýn׬Y³´fÍ•+WN=zô¸¨ë*Éêí•742¸2èù€‚Íf»¨»½£££õí·ßj×®]ŠŠŠRHHˆêÔ©sQÕ…žxâ ½úê«zûí·U¾|yÕ®][Õ«W׃>X¢õëׯ¯*UªÈf³Y=¿$©uëÖ’¤V­Zû…÷àÁƒÕ®];õë×O111:tèEGI¹¹¹iþüùº÷Þ{Õ¿Ý|óͪT©’îºë.­X±ÂúâñðáÃêܹ³BBBäáá¡;î¸CÕ«W×Ô©S­m >\uëÖUûöíU¡BõêÕKãÇwúò´ !!!úôÓO¯öíÛ+&&F;vìpj“w-‹ÛPòæôËÌÌÔ[o½Uh»¤¤$Mžû¬Æ¯Fiîܹڴi“• Iúî»ï4{ölÍž=ÛêÝ=sæLÕ¯__~ø¡Ž9¢¯¾úJÿøÇ?4mÚ4k»ÆuïÞ]>ú¨6oÞ¬„„ÝsÏ=Z¹råß¼âàŠ0À4räH#ÉðT¥­[·n¦Aƒ—´îŽ;LBB‚9pà€ÉÍÍý[u;vÌ$$$˜S§Ný­í\ORRRLBB‚Ù¼y³IIIÉ÷xjjªÙºu«ILL4Ç/t;‡2›6m2999—­¶U«VI&66ö²m¸œÚ´ic$“””dŒ1ÖßX#GŽ4Æ3pà@kÙš5kJ±ZüÕÆ$3kÖ¬µ·ÛíæÖ[o5 6tzŸ˜={¶‘dfΜiŒ1&++ËH2žžžfõêÕNÛ¸ÿþû$3tèPãp8¬å#FŒ0’Ìܹs­eË—/7nnn¦ÿþÖ²îÝ»IfàÀÆn·YoNNŽUG\\œÓc­[·6·Ür‹9|ø°µlÅŠÆÃÃü÷Þ{Ö²òåËIföìÙÖ²~øÁH2¯¿þº1ƇÃan½õVSµjUsðàA«Ý€Œ$³lÙ2k™§§§qwwwZfŒ1Ÿ|ò‰‘”ïýw×®]ÆÇÇÇ<ûì³Öû‹Ýn7O?ý´ñññ±êŸ>}º‘d>þøckÝøøxãééi$™äää"ÏUž;v8]Kü¿èèh#ÉDGG—v)®AóæÍ³>ï$&&–v9¸p{#n­ZµÒ–-[ôÈ#hèС5÷UíÚµÕ¨Q#U«VMîî *¨Q£F þ[Û¹ž”)SF5Rƒ úËßß_õë×WDD„BBB ÝN•*Utë­·ÊÃãïÞ«¡C‡ªoß¾ ¾bÃ?×k¯½&©ðÞ_öújÛ¶-½¾®!v»]S§N•ÍfSDDD‰ÖY³f6oÞ¬Q£F9½OtíÚU‘‘‘Z²d‰Sû®]»ªY³fù¶S¶lY9Ò©GðŒ3Ô¼ysuîÜÙZÖªU+uèÐA_ýµS¯fýïÿþo‰{ÅvéÒEwß}·õóîÝ»µ|ùr½üò˪T©’µ¼E‹jÛ¶­/^ì´~Þð‹yî»ï>µhÑBsæÌ‘$mÞ¼Y›7oÖ /¼ ªU«ZíÆŒ#???}ýõ×NÛëСƒÕ3º8Ó¦M“Ýn׸qã¬÷777½öÚkÊÌÌ´zvÍ;Waaazê©§¬uï¼óNuéÒ¥DûÉS½zukHÆŒŒŒ‹Z”án}úôѬY³T©R¥Rð׆ÌÌL={VݺuÓªU«œæ®%QQQЉ‰‘$}üñÇ:|ø°Óão½õ–æ5êj—‡Büûßÿ–¿¿¿>úè#ý÷¿ÿUíÚµK´^Þð‚Æ SãÆþíÝ»W»vírj_Ø\aaaNs:íÞ½»À ¿aÆJNNÖñãÇ­e5jÔP@@@‰j.¨Ž¼ãxûí·óÇü¡Ý»w;µ/¬®;wÊc Yû×veË–UXX˜¶oß^d=EÙ²e‹ÜÜÜíTgûöíåææfó]»v)"""_ x±7Ox{{kîܹÖ{Ïý÷ßQ뀒ùû·L×=ôÐCz衇J»\î½÷^Ý{ï½ÿÇÞÝÇ}=ßÿÿ¿w"¨)­P‘³ÌÉ Ra|ظ8?7¶Hß1')æ¬r2† ›Š}B3¶˜9)çÆ˜ 3sN‹"b%E)ÇÑï¿ãýÑŠNÇñ>z×ëåâréý:}¼Žr¹¸¸õ|½Ë=,—áÇç¾ûî[bõל9s2zôè$V}Õ5ƒ J¿~ýrÞyçåÌ3Ï̾ûî›o|ãË<ï³Ï>K’ 80íÚµ[bÿ¯nÞ¼ùR¯Sõ½ŠUªþÂÇÒV/Wm«¬¬üÒó—å¿ç¨zŽÃ?<›l²ÉÇ7kÖl±ÏK[aÖ°aÃÒÜËšÿ‹³/mž¯²pá´nÝ:C‡]êþÍ6Û,Éç?Ÿ/›sEqÆiÓ¦M®½öÚtéÒe…Ï–Mü€:¬{÷îÙm·Ýrï½÷fÔ¨Q¥í?þxiÕ×ðáÃË5KÑ©S§têÔ)­ZµJ=òè£f¯½öZæyU!dýõׯÖA5JÇŽóòË//±ïÅ_Ìk¬±Ôض²ªž£]»vËõ—N–6×K/½” 6Ø 4H§NJÇõîÝ»tÌüùó3yòäåúÙ.-òUÍzÏ=÷d=öøÊÕnl°Á—ι"¦Nš'Ÿ|2cÆŒÉ÷¿ÿý:X~^{u\Õ+ ¿ø}…“&MJ’|÷»ßÍŽ;îXޱX†:$IfΜ¹\Ç÷ë×/;vÌÙgŸ?üp±}Ÿ|òIÞ|óÍ•žeŸ}öÉĉó·¿ý­´íŸÿügþô§?åûßÿþ×þNË/Új«­²ÕV[å /ÌôéÓÛ·`Á‚%^{øðÃç¯ýkéó¤I“rï½÷–Vèn»í¶YýõsÅWdöìÙ¥ã~ùË_æ£>Zì{̾ÌÚk¯$™6mÚbÛ8âˆTTTdðàÁ©¨¨Xlß;3>ú(Éçÿž=ÿüó¹óÎ;KûßxãŒ7n™÷þ¢ªùÛ·o¿Bç+ÆÊ/¨ãºwïž~ýúåÁLÆ Ó¢E‹Ì™3'IrÖYg•y:¾Lƒ ’d¹¿grõÕWÏþð‡|ï{ß˦›nš½öÚ+k®¹fÞ~ûíLœ81gŸ}vN>ù䕚eذa¹ÿþûÓ¿ÿì·ß~iܸqþøÇ?fÝu×ÍÏþó•ºæ—iРAn¼ñÆì¶ÛnÙ|óͳ÷Þ{§]»vyçwòÀäÈ#ÌÅ_\:¾wïÞÙgŸ}²ï¾û¦Aƒ7n\6ÜpÜyæ™I>_µUµRj›m¶Éž{î™×_=&LÈA”ýöÛo™3õéÓ'k¯½vúõë—­¶ÚªôüÛn»m.»ì² <8O<ñDúôé“FåÕW_Íý÷ߟgŸ}6[l±EŽ=öØÜtÓM9è ƒr衇¦iÓ¦¹ýöÛÓ«W¯Ü{ï½Ëý³©ú³Põg¨â¬.¸à‚tïÞ=•••¥ðµûî»§W¯^ežŒ/Ó´iÓ$ɧŸ~ºÜçôìÙ3/¾øbÆŒ“gžy&ï¼óN:vì˜Q£FeÏ=÷Lòy ºè¢‹–ú{ÔQG-¶B°J›6mòä“OfôèÑyüñÇSYY™¡C‡fРAiݺué¸C9$³fÍZ®Y6l˜‹.º(}úôYbß[l‘ýë_¹öÚkóä“OæŸÿügÖ]wÝ\tÑEK¼îoÇwÌ%—\’Ñ£Ggúôé9þøãsòÉ'gÍ5×,³Ë.»äé§ŸÎo~ó›¼üòËYk­µò»ßý.‡rÈb!é‚ .HÏž=—˜g5ÖÈóÏ?ŸÛn»­´¯I“&I’“O>9}úôÉM7Ý”—_~97Îæ›ož!C†dÓM7M’¬¶Új™8qb®¸âŠ<þøãYsÍ53vìØ´mÛ6ýúõ[â{̼̾yó’,ù½g@õj°hyÿú¬„aÆ•Þ=ïÀ׳ûî»gâĉ¥ÏO<ñ„WÖa‹-Ê7¾ñôíÛ7×_ýb‘‰ÏµmÛ6?üá[ VTŸ|òIÎ9çœüâ¿È¿ÿýïÒw™ñ¹¾}ûæá‡ÎÎ;z¨ÜãuÌí·ß^zÍí³Ï>›­·ÞºÌQ×ùÎ/XE|ñ‡»ì²‹ðUÇ5hÐ —]vYzè¡´iÓ&{ï½w¹G¢LÎ:무hÑ"W^yeN;í4á j˜×À*¢W¯^éß¿xàœ{î¹å‡å0`À€qÄùàƒÒ¸±ÿ óß:uê”6mÚ”{ŒwÊ)§dÀ€iÛ¶mZ´hQîq ðüW¬B:wîœfÍš¥cÇŽå…åÔ´iS¿__âé§Ÿ.÷µ¢M›6õ"ò@]ᵇ°Š6lXÆŒ“yóæ¥oß¾™2eJ¹G€:Gü€UÀ°aÃ2|øðÒç)S¦`°âÔq_ _;wÎI'”D€¥¿ |U9õÔS3gΜ ><Ó¦M˶Ûn›Î;§I“&å ¨^}õÕr@ˆ_@½TQQ‘§Ÿ~ºÜcP`×_}:wî\î1VȰaÃòÈ#äá‡Μ9sòüóÏ—{$XaâPïuíÚ5믿~¹Ç &OžœÉ“''I~ðƒ䡇Z¥ذaÃòðÃ'IZµj•-·Ü2Íš5+ïP@½²ÕV[•{ @üê½ã?>'tR¹Ç  .»ì² <8S¦LIïÞ½óÐCe£6*÷XË´*~W,MÃrErê©§æÒK/M’L›6-}ûöÍ믿^橾šð@‘ˆ_PÍV¥&|P4âÔ€U!€ _‘ø5¤.0á €¢¿ ÕÅ&|PdâÔ°ºÀ„/ŠNü€ZP˜ð@} ~@-)g¾¨/Ä/¨Eå`Âõ‰øµ¬6˜ð@}#~@ÔF¾¨Ä/(“š `Âõ•øeTLø >¿ Ìª3€ _ÔwâÔÕÀ„/¿ Îø:Lø€Ï‰_P‡¬L¾àÿˆ_PǬH¾`qâÔAËÀ„/X’øuÔW0á –®q¹¾Ü©§žš9sædøðá™6mZvÝu×ì³Ï>¹üòË“$;wÎøñã…/øÿYùuܰaÃrî¹ç&I¦L™²Xøz衇ҹsç2Nu‹ø«€/°Dø€/㵇°Š6lX4h±cÇæÁ¾`)¬ü€Uȹ瞛üãÂ| ñ V1­Zµ*÷Pg‰_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@aˆ_†ø@a4.÷õÍ5×\Sîj\·nÝÒ£GZ¿¯øPËŽ;î¸rPãš4i’›o¾9{ï½w­Þ×k¨v ,Ș;Vïkå@™ :4C‡-÷Õ®OŸ>y饗J¬6W€‰_eÒ´iÓ´nݺÜcT»¶mÛæÐCÍÿøÇÌ›7/ûí·_ÆŽ›Ã;¬Æïíµ‡T» 7Ü0wÜqGš5k–ŠŠŠuÔQ¹ñÆkü¾âPgL:u¹Ž«¬¬Ì´iÓjx¾®]wݵÖ˜ø”ÝäÉ“³ß~û¥sçÎyê©§–yü­·Þš.]ºä‡?üa>øàƒZ˜•UÛLüÊ®U«V¹÷Þ{SYY™³Ï>û+­¨¨È™gž™ äÞ{ïMË–-kiJVVm0ñ (»¶mÛæ¸ãŽK’Lœ81=öØ—;nܸ¼öÚkI’¡C‡fõÕW¯•ùzj+€‰_@pÚi§¥yóæI’óÎ;o©Ç|öÙg6lX’¤cÇŽ0`@mG5¨&~uBûöí3pàÀ$ɽ÷Þ›G}t‰c¬úZõÕt¿€:cÈ!¥Õ_çŸþbû***2|øð$V}­êj2€‰_@ñß«¿^|ñÅÒ¾‰'–V} 2ΝU\M0ñ ¨S¾¸úëæ›o.m¿úê«“$:t°ê« j"€‰_@Ò¾}ûwÜqI’çž{®´ý­·ÞJòykÚ´iYf£úíºë®7n\š4i’ŠŠŠsÌ1¹ãŽ;Vúz«q6€jqê©§fÔ¨Q™?~V[mµTVV¦¢¢"íÛ·Ï~ô£rÇr¸æškr×]w-÷ñ믿~Þxã,X° x`¦NšvíÚ­ð}Å/ ÎéСC˜Ë/¿< .,m?ãŒ3J¯D¤î:öØcK+õVÄ_þò—Œ?> ,È'Ÿ|²R÷¿€:ièС¹æškJ¤C‡¥×!R·rÈ!+u^ûöí3~üø¯uoßùÔIk¯½vŽ>úèÒç“O>Ùw}±LâPg~úéiÚ´iÚ·oŸ–{V^{ÔY;vÌ AƒÒ¹sç´hÑ¢Üã”ÅØ±csþùç/uß!‡’#FÔòDu›øÔiC† I«V­Ê=FÙÌš5+¯¿þz˜¶mÛ.¶ï;ßùN™¦ª»Ä/ Îš1cFÞ{ï½¼ÿþûéСCZ·n]î‘Êæ„NÈæ›o¾Bç|òÉ'iܸqš4iò•ÇÍš5k©?ÛÊÊÊÌž=;«¯¾zš7o¾\÷œ3gNš5k–ÆË“¡|çPgÌž=;W]uUöÚk¯´hÑ"íÛ·ÏV[m•-·Ü2mÚ´IëÖ­sÀäºë®ËüùóË=nsá…f½õÖËäɓӫW¯´hÑ"Íš5Ë 'œ°ØqݺuËСCsà 7¤}ûöiÓ¦MÚ¶m›x tÌÈ‘#Ó®]»´iÓ&-[¶Ìn»í–·ß~{‰{0 ;í´Sþþ÷¿§[·niÕªUZ´h‘Ë.»¬ÆŸwiÄ/ ì***2räÈl´ÑFùñœ»ï¾;Ÿ|òÉÇ}øá‡ùãÿ˜cŽ9&›m¶Yn¾ùæ2L[wÍŸ??ÿùϲÏ>û¤W¯^¹ûî»3f̘TVV.vÜìÙ³sÿý÷çœsÎÉ…^˜{î¹'?þñóÁ$IþôžTBÕ IDAT§?åÿý¿ÿ—=÷Ü3ÿøÇ?2nܸ<óÌ3ùÞ÷¾·Äµ>þøã¼õÖ[9à€rÄGäž{îÉ/~ñ‹Ì™3§Öžû‹¼ö(«3fdß}÷Í_ÿú×:oÊ”)9è ƒrë­·æºë®[î×ò­ªºuë¶Ä¶n¸!‡vØbÛæÍ›—C9$gœqFiÛ~ðƒ%Î}á…òÊ+¯¤S§NI’Ýwß½´ïòË/φn˜ë®». 6ÌV[m•¹sçæè£Î_þò—ì¼ó΋]kÊ”)¹ùæ›sÀ|'¬âP63fÌÈÎ;^zi¥¯qóÍ7gúôé™0aB¡ØE]”:,¶­gÏžK=öè£^æõú÷ï_ _ÿí¥—^Ê~ûí—† ÿï%‚»í¶[’Ï£ÙǯV­Zeÿý÷_æ=kƒø”ÅÇœ=öØãk…¯*>úhößÿüùÏN£Fªaººg¯½öÊæ›o¾Ìãš6mšöíÛ/ó¸õ×_©Û.\˜>ø mÛ¶]lû7¿ùÍ$ÉôéÓ—8g½õÖKƒ –yÏÚà;¿€²øéOšgžy¦Ú®wÏ=÷ä׿þuµ]oUÕ¸qãå Q«­¶Ú—noݺufÍšµØöªÏíÚµ[îk•ƒøÔº—^z)W]uUµ_wذa™9sfµ_·¾éÒ¥K{ì±Å¶U}ÞxãË1ÒróÚC Ö]vÙe©¨¨¨öë~øá‡=zt~úÓŸVûµËmüøñyî¹çÛÖ¾}ûôëׯÚï5`À€wÜq6lXŽ=öØL›6-C† ÉlþýûWûýª“øÔª… æÖ[o­±ëß|óÍ…Œ_§vÚÛvÚi§‹_¯¾újÎ;ï¼ ><Éç+¾n»í¶4iÒ¤ÚïW¼ö¨UO<ñD>üðûþ?ÿùÏL›6­Æ®_ÛN:é¤,Z´h©ÿ<üðË;bĈ̙3g™×œ:uj®¼òÊ/Ýß Aƒ\z饙1cF&Mš”^x!/¿ür¶ÜrË%޽馛òì³Ï®ðsÕ+¿€ZõÊ+¯Ôèõ-Z”W^y%;v¬ÑûÔk­µVÖZk­r±B¬üjÕôéÓküï¼óN߃ºIüjÕ'Ÿ|Rˆ{P7‰_@­Zgu qê&ñ ¨Uë®»nߣC‡5~ê&ñ ¨U;í´S5jTc×oÛ¶m¶Þzë»>u›øÔªvíÚ¥G5vý=÷ܳFãu›øÔºýèG«äµ©ûÄ/ ÖqÄùö·¿]í×Ýo¿ýÒ«W¯j¿.«ŽÆå¨4h+®¸"ýúõË‚ ªåš­[·ÎE]T-ת-_|q®¼òÊrQgTÇŸñ (‹ž={æÿ÷sä‘G~ík5iÒ$wÞyg6Úh£j˜¬öÌŸ??óçÏ/÷…"~esÄGdæÌ™9õÔSSQQ±R×hÞ¼yÆŽ»J½îðØc-÷u^Ë–-Wê<ñ («Ÿüä'Ùd“Mò£ý(o¿ýö »é¦›æ¦›nÊ6ÛlSCÓÕŒ«¯¾ºÜ#VÃr°ûî»çµ×^ËÅ_œu×]w™Ço¼ñÆùÍo~“çŸ~• _Ô,+¿€:¡Y³f2dHN;í´<õÔS™0aB¦L™’wß}7 6L‡²á†fÏ=÷L·nÝÊ=.u”øÔ) 4ÈöÛoŸí·ß¾Ü£° òÚC Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cü 0Ä/ Cüê…¿ýío™1cÆr{Ï=÷dÁ‚5<5Aü íã?Ξ{î™îÝ»çâ‹/^æñÏ=÷\öÜsÏtíÚ5<òH-L@u¿€BkÑ¢Ei×È‘#óöÛoåñçœsN-Z”éÓ§gƒ 6¨¨FâPxÇO’ÌŸ??—\rÉ—÷ÔSOåÎ;ïL’uÔQYýõke>ªø^=²Ë.»$I®¾úê/]ýuþùç'Iš4i’³Î:«Öæ úˆ_@½ðÅÕ_—^zéû¿¸êëÈ#´ê `%~õB=Ò¿ÿ$ÉèÑ£3}úôÅö_pÁI¬úXÕ‰_@½1bĈ$Ÿ¯þúÕ¯~UÚ>uêÔÜqÇI>_õÕ©S§²ÌÀ×'~õF=Ò¯_¿$ɵ×^[Ú~ß}÷%±ê  Ä/ ^©Zýõé§Ÿ–¶ýë_ÿJ’qÄV}¬âÄ/ ^éÙ³gz÷î$iÔ¨QÚ´i“E‹¥Q£F:th™§àë¿€zçg?ûY’¤¢¢"3gÎL’uÔQÙxãË9Õ@üêž={¦oß¾¥Ï«­¶ZÎ<óÌ2N@u¿€z鋱ëàƒΆnXÆi¨.âP/õïß?½{÷NãÆsÖYg•{ªIãr¬Úf̘‘‡~8“&MÊ«¯¾šiÓ¦eîܹ™={v>ýôÓr÷•>ûì³4jÔ(;î¸c¹GùJ 4Èšk®™5×\3ßøÆ7Òµk×l±Åéׯ_6ß|ó4hРÜ#Ôâ°Â¦M›–ßÿþ÷¹é¦›òÜsÏeÑ¢Eåék©ë‘.IfΜYúõC=Túõ7¿ùÍpÀ9ôÐCÓ£G! ¨÷Ä/`¹½ð ¹øâ‹óûßÿ>Ÿ}öÙbûV_}õl´ÑFYguÒ¼yó´jÕ*Í›7/Ó¤ÅRQQ‘Ù³gçÃ?Ìܹsóꫯ–bØû￟‘#GfäÈ‘Ùf›mrÆgd¿ýöKÆÞn ÔOâ°L³fÍÊ™gž™«¯¾:•••¥íݺuËÁœ~ýúe»í¶Ëj«­VÆ)ë—É“'ç‘GÉm·Ý– &dáÂ…yöÙgsàf»í¶Ë¨Q£²ÝvÛ•{L€Zç¯_iüøñÙl³Í2jÔ¨TVV¦aÆ9à€2iÒ¤<ÿüó9óÌ3Ó½{wá«–m¸á†9úè£sçwfúôé¹ì²ËÒ¾}û$ɤI“²Ã;dÈ!Y¸pa™'¨]â°T•••9í´Ó²×^{å½÷ÞK’|÷»ßÍ /¼›o¾9ßþö·ËyõÕWË<@Í¿€Å 4(·ß~{’dûí·Ï£>š.]º”y*VT“&M2zôèœ{î¹I’÷ß?ßýîw3cÆŒ2OP³Ä/ ä·¿ým®¹æš$É6Ûl“‰'f­µÖ*óT|Æ Ë™gž™$™2eJŽ<òÈTVV–y*€š#~I’—_~9ƒ J’tèÐ!&LÈšk®Y橨çŸ~Ž:ê¨$ÉĉsñÅ—y"€š#~Y´hQ˜?þ85ÊM7Ý”víÚ•{,ªÑÈ‘#³ùæ›'I†ž×^{­ÌÔ ñ ȸqãòÈ#$I~üã§OŸ>ežˆêÖ¼yóŒ3& 6̧Ÿ~šO<±Ü#Ôñ ê¹ÊÊÊŒ1"I²Î:ëä¼óÎ+óDÔ”wÜ1 H’L˜0!ûÛßÊ<@õ¿ ž»ãŽ;òÒK/%IN;í´´lÙ²ÌQ“Î:묬¾úêI’Ÿÿüçež ú‰_PÏ]{íµI’Ö­[çØc-ó4Ô´Ž;æðÃO’Üu×]™1cF™'¨^âÀÝwßÏ>ûl…Ï›1cF&L˜$9è ƒÒ¢E‹å>wÊ”)™˜Ç|…Ï«Ï&L˜I“&­ðy 4È{ì‘$yì±Ç2oÞ¼ê  lÄ/XÅýö·¿Íرc³ÑF%IÞxã}ôÑ˵ì©§žJ’ôèÑ#5Zá{·iÓ&ßþö·Ó½{÷~øá7n\-Z”»îºk‰cß{ï½üéOÊ-·Ü’7ß|s±}S§NÍüùóóñÇ—^¥øî»ï&IÞÿýL›6m‰ë͘1c±ísæÌÉäÉ“SQQ‘Y³feüøñ¹ÿþûSYY™É“'ç£>JEEE}ôÑüùÏÎÛo¿½\Ï8uêÔÒj«çž{.·Þzëb¯œ1cFn»í¶ÜrË-ù÷¿ÿ½ÔkLŸ>=&LÈ­·ÞšÇ{,Ÿ|òIißÌ™3—øy$ÉþóŸ¥n¯òæ›ofáÂ…¥çž;ë­·^=ôÐR˜ûÉO~’ÊÊÊ$É.»ì’gŸ}6÷Ýw_éUŠÇw\’äôÓO/­Rú¢SO=5ÿó?ÿSú8G}t6Úh£ 4¨ô\IrÞyç¥sçÎ9à€2`À€ôîÝ;:u*í¿øâ‹—ºêîüóÏO÷îÝ¿t®í¶Û.“'OÎ-·ÜRú™ 2d™ÏS¥[·n¥_¿üòËË}@]'~@AüwÛxã“ü_Ûd“M‹`Ó¦MË‚ ’$]ºt©–î¼óÎ$ŸX•+®¸"^xaFyóæeîܹ¹ñÆóë_ÿ:W]uU’ä•W^I÷îݳÏ>ûdÑ¢EY´hQî¸ãŽ•šá¼óÎËÝwß äÞ{ï-mÿÙÏ~–O<1sçÎÍþóŸì±Ç9ýôÓ3sæÌe^sܸqYwÝuóÞ{ïeáÂ…Ù}÷Ý3jÔ¨ 6,W^yeæÏŸŸ¹sçææ›oÎ5×\“_üâ¥ç:çœsrþùççÃ?ÌÌ™33oÞ¼Œ3f¥ží‹Þÿýl²É&9æ˜cJ?³ë®»n¹ÏïÒ¥K4h$™øàÜ~ûí;vlN8ᄯñ”K:÷ÜsÓ·oß$Ÿ?׬Y³’$ûî»o~øÃ&IZµj•sÎ9';ì°Cž}öÙôïßÿ+¯Ù¾}ûŒ5*Mš4)ÁäÀ,=’ì·ß~9ì°Ã2vìØ <¸ôZÆ>}ú”^+Ù´iÓ|ÿû߯Ög^M›6M‹-2wîÜÒÏ Ä/jÍÿç µ¯U«Vùè£òÚk¯åÈ#Ìúë¯_Ú·Æk¬Ô5çΛɓ'ç“O>É+¯¼’-Zäâ‹/NË–-“$¯¿þzf̘‘wß}7§Ÿ~úbç¾óÎ;yõÕW³hÑ¢Ò ¤êЧOŸ¥nÿÎw¾³ØçŽ;–æX–vØ¡¾’ä­·ÞÊÛo¿>ø`‰çzë­·òú믧²²2Ûo¿}:tèÝwß=ûì³OöÞ{ïìºë®iѢŊ>VhÙ²eæÎ›¹sç–{€j#~@=1gΜү›4i’o}ë[yë­·’$+uÍwÞ9øÃ’|ÂöÞ{ïì³Ï>yñÅÓ¾}ûÒ=+++—X]´Ùf›e³Í6KEEE7^ñÿ$Y´hÑR·¯¹æšKÝÞ¼yóÅ>W­ÄZžgoݺõbŸ¿ê¹ºvíš®]»fÁ‚iÙ²ežyæ™üú׿.­t[}õÕ3tèÐ 6ì+ïùeÏWªž½êgPâ5jèСùÉO~Rî1ê¥gŸ}6#FŒÈ#<’äó˜Ò¬Y³œxâ‰9õÔSóî»ïæ®»îJ²x[Yk¬±F®½öÚlºé¦9í´ÓòÛßþ6묳N’¤oß¾ùéOºÌk,-ø4mÚ4óæÍ[bûŒ3¾öÌ+kíµ×Nƒ Ò»wï >ü+m×®]FŒ‘#Fäƒ>ȹ瞛áǧwïÞéß¿ÿ×~¾¯ɪ~ß«VêøEjÖ¬Yš5kVî1ê•§Ÿ~:§Ÿ~zî¿ÿþÒ¶ªèuÊ)§¤]»vI’Ï>û¬´ÿÝwß­–{wêÔ)ƒ Ê/ùË <8ßúÖ·²Í6Ûd̘19餓–X}UQQQZuÔ¦M›¥~÷T§N2uêÔ|ðÁiÛ¶m’Ï_UøÄOdƒ 6¨–¹WTÛ¶m³Ã;äºë®ËàÁƒ—ˆGUÏõÅç«:ïä“OÎÈ‘#K¯[ìÔ©SfÏžÿûߥç™={vxàe®Èú²ŸÙòøðÃKÑ­êç P Ë=P=ž~úé|ï{ßËw¾óRøjÖ¬Y†š)S¦ä¢‹.*…¯$YguJ¯|å•WªmŽ!C†¤Y³f¹à‚ ’$¿úÕ¯2}úôì°Ã3fLî»ï¾Üpà 0`@Ž9æ˜Òy;í´Süñüñ9ýôÓ3vìØ$ÉA”E‹eÿý÷Ï7Þ˜+®¸"}úô)­*+—+®¸"3gÎÌöÛoŸßüæ7¹ï¾ûò»ßý.Ìᇞ$¹ñƳË.»äꫯ΄ r×]weàÀYsÍ5³óÎ;'IöÞ{ï´lÙ2p@n¸á†Œ92=zôH›6m–9ÃN;픉'æ„NÈé§Ÿž[n¹e¹çÿâïù¦›nºbP‡Yù«¸§Ÿ~:Æ ËÝwß]zÞÒVz-M×®]ó÷¿ÿ=Ï=÷Ü ßwçwΖ[n¹ÄööíÛçì³ÏÎÃ?œY³f¥gÏžyòÉ'3|øðœ}öÙ™?~Z¶l™m·Ý6,Wµ2ì‘GÉ믿ž&Mš$ù|eÔm·Ý–3Ï<3'žxb:tèË/¿<ÿú׿2yòäÒù:tÈ.»ì’ÿ¯½; ®²¼ß|'Aˆ B@ª üë6ƒUÔ â†E@¥T­vZ·RÔZ—ªã‚Ûh%:ŽuúA´uÔ:â6 UTêR@*VıBA@‘Bþ¬Ñ¥`“<¹®™ É›çýåÎáKfîó<ïV[mU+ÏV[m•>}údÇw¬u½iÓ¦éÓ§O:tè°ÑßóÀL—.]6¸Þ½{÷L›6-•••©¬¬ÌªU«Ò²eËtëÖ-gžyf’¤[·n™8qbn¼ñÆ,^¼8åååÙgŸ}òì³Ï¦cÇŽI’¶mÛfܸq¹øâ‹sá…f»í¶Ë!C²lÙ²<óÌ35?¯¢¢"‡zh­]fW_}uÚµk—çŸ>+V¬HÛ¶m7ú»|ÕÌ™3k>ïÔ©Ó&ß°¥+©nˆ§©õæôÓOÏŸþô§$Ÿ=Ì•W^¹IG^zé¥>|xš4i’%K–dÛm·­ï¸l!~ö³ŸåÁÌ;ì… ¦¤¤¤Ð‘ê„cà;®²²2­[·Îe—]– äöÛoßägaõêÕ+ÉçÏÿúê3Â(n«W¯ÎSO=•$9äC_@Qqì!|ÇuìØ1o¾ùf***6ûÞ¾}û¦mÛ¶Y²dIî¸ãŽwÜqõ-Íc=–eË–%IN8á„§¨[v~@ø6ÅWòùs¯¾(¼&Mš” Ôe,¶P·ß~{’¤uëÖéß¿ÓÔ-å4rgžyf’dÍš5>|xÓPߦNš‰'&I ”òòò'¨[%ÕÕÕÕ…Vÿþýóøã§¼¼<¯¾újvß}÷BG¢TWW§wïÞyæ™gR^^žùóç§C‡…ŽP§ìüríµ×¦´´4UUU9çœsâ½1ÅéÎ;ïÌ3Ï<“$9ûì³_@Q²ó H’œuÖY5jT’äøCÎ?ÿü'¢.½ùæ›Ùwß}³|ùò´oß>sæÌɶÛn[èXuNù$I–/_žýöÛ/óçÏO³fÍòôÓO§gÏž…ŽEX¹rezõê•—_~9¥¥¥7n\Ž:ê¨BǨŽ=’$­ZµÊý÷ߟfÍšeõêÕùÉO~’×^{­Ð±ø­Y³&?ÿùÏóòË/'I.½ôRÅPÔ”_@ýöÛ/·ÞzkJJJ²dÉ’zè¡ùÛßþVèX|Küqú÷ïŸ &$IŽ<òÈ\{íµNP¿”_@-ƒ ʈ#RRR’¥K—¦OŸ>¹ï¾û ‹ÍôÆo¤W¯^yê©§’$|pÆŽ›­¶ÚªÀÉê—ò ØÀE]”Q£F¥¬¬,+W®ÌI'”SO=5K—.-t4þ‹êêêÜ~ûíÙwß}3cÆŒ$É€2qâÄ´hÑ¢ÀéêŸò øZgœqF{ì±´k×.I2f̘tîÜ9·ÞzkÖ¬YSàt|_|1|pÎ8ãŒ|üñÇ)))ÉàÁƒóðçyóæ…ŽÐ Jª««« Ør-\¸0gœqFÍs£’dçwÎyç—N8!:t(`:V¯^ &dôèÑyâ‰'j®wìØ1·Ýv[Ž8∦hxÊ/`“<ôÐC¹øâ‹óöÛo×\+--Í¡‡šýèG9øàƒÓ¥K—´oß¾p!O>ù$sçÎÍôéÓ3eÊ”L˜0!Ë–-«ù~yyyÎ?ÿü\}õÕŽ9%å°ÉÖ®]›{ï½7#FŒÈìÙ³¿vMóæÍÓ¬Y³NÖx|ôÑG_{½¢¢"§Ÿ~z.ºè"$Ш)¿€oeæÌ™¹çž{2iҤ̞=;ëׯ/t¤F§}ûöéÕ«W~ñ‹_䨣ŽR:DùÔýë_yå•W2wîÜ,\¸0+V¬ÈÚµk k£Ö¬Y“1cÆ$Izöì™üà… ´ Z·nŠŠŠì¾ûîéÚµkºtéRèH[åÐ(-[¶,I’›nº)\pAPJ êŠò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿*ºÞ¼IDAT(Ê/Іò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿(M  ÐV­Z•>úh³îiÒ¤IZ¶lYO‰ø¶Jª«««  ¡-[¶,ßúþÃ;,O?ýt& .8ö€¢áØC QjÞ¼yFµÙ÷Ýpà ™;wn=$ .(¿€F©iÓ¦ùÍo~³Ù÷Ýwß}Ê/€-˜c(Ê/Іò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿(Ê/Іò €¢¡ü h(¿Ø¨ÊÊÊ”””øØŒSO=5ëׯ/ô4JÊ/¨ccÆŒQ€@4)t¾;†Zè[¼Ë/¿¼f×׻ĸÜÔ©SóðÃçí·ßNË–-sÐAå˜cŽIEEE¡£EÎÎ/€èÙ³gÍ#GfõêÕI’Õ«WçÖ[oMb×׺ôÒKÓ³gÏŒ7.ëÖ­ËܹsóÛßþ6Ç/t4 °ó à¿øêî¯÷Þ{/IòÞ{ïÙõõ5æÍ›—#Fä’K.ÉСCSRR’$ùðÃóÆo8Ð(¿þ‹ž={¦oß¾ùË_þRóܯ/þíׯŸ]__ñÊ+¯¤ºº:'Ÿ|rMñ•$Ûo¿}¶ß~ûš¯ÿþ÷¿çÞ{ïÍe—]Vsbuuu®¸âŠôïß?‡zh­¹“'O΃>˜Å‹§eË–0`@Ž>ú蔕•Õ¬YµjUî¸ã޼ð Y»vm¾ÿýïç´ÓNKçÎk­ùãÿ˜^x!ëÖ­ËøÃœuÖYiÙ²e­Ÿ÷ÒK/e̘1Y´hQZ´h‘ý÷ß?'žxb­c×®]›»îº+S¦LIUUUÚ·oŸ~ýú¥ÿþuóbߊc6Á•W^™$Y¿~}Z¶l™õë×׺Îçš7ožäó²jc^ýõ 6,Ë—/¯¹V]]aÆeêÔ©µÖþîw¿Ëᇞٳg§cÇŽY±bEN9å”Ì›7¯fÍÒ¥KÓ£G\|ñÅ)++K‡òÜsÏå´ÓN«Yóé§Ÿ¦wïÞ¹ôÒKS^^ž6mÚdèСéÝ»wÍ.¾$yî¹çÒ³gÏÌž=;»îºkJKK3lذL™2¥V®sÏ=7çž{nš6mšÿû¿ÿË;3_ÿú×›ÿ¢uÊÎ/€MЫW¯ôéÓ'O>ùd>þøã$Iß¾}7Ø¡ÔØõíÛ7]ºtÉ…^˜Gy$½{÷ÎÑGnݺ}«y/¾øb®»îºœuÖY¹å–[jv“½õÖ[iÕªUͺ+®¸"ÿøÇ?2eÊ”xà5×_~ùåšÏ¯»îºÌ˜1#Ï?ÿ|öÛo¿$É…^˜=÷Ü3·Ýv[Î;ï¼$É]wÝ•vÚ)“'ONiéçï[·n]>ýôÓšYŸ}öYî¾ûî\vÙeµŽ½\¶lÙ·ú=€ºcçÀ&úÏ]^v}m¨¼¼ûì“C9$ï¼óÎfÏ{àÒ¤I“\ýõµŽQÜe—]Ò¦M›$Ÿï;vlŽ=öØZÅW’š’+Iî½÷Þôï߿ֵ=öØ#Ý»wÏ‹/¾Xs­´´4K—.Íœ9sj®•••Õ:ñ‹,³fÍÊ'Ÿ|Rs½uëÖ›ý;uKù°‰;ì°ôêÕkƒÏ©­U«V>|xÞ}÷ÝÌ™3'C† É+¯¼’ã?>ÕÕÕ›5ëÍ7ßÌŽ;îXëY[ÿiÙ²eYºtiöÜsÏo\³víÚ¼óÎ;™›Gy$wß}wî¼óÎ 8°fÝàÁƒs 'äñÇÏsÏ=—›nº)·Ýv[æÌ™S³+ hxv~l†<0×_}zöìYè(ß);ì°C’¤ªª*É—eÓÊ•+kÖ¼ûî»Ü×¹sç,\¸0 .üÆÙ­[·Î;ì—^zé×4iÒ$»ï¾{ªªªÒ§OŸ >zôèQkýÖ[oÿøÇùýïŸW_}5{ì±GÆŽ»ÁÜvÚ)gœqFî¼óÎŒ7.‹/Î3Ï<óÍ/Pï”_›éŠ+®(t„-ÖŒ32bĈ|úé§5×V¬X‘Ñ£G§¢¢"»í¶[’Ôü;iÒ¤šu#GŽÜ`ÞÉ'ŸœÒÒÒ <8k×®­¹>sæÌ,^¼¸æëAƒå‰'žÈøñãk®­_¿>“'O®µæ‘GÉ„ jýŒyóæeÚ´i5_OŸ>½¦¤K>?2±ªª*Ûm·]͵U«VmP¶}ñì¯víÚ}ík4 ÇüË—/Ï„ 2mÚ´|ðÁY²dIÚ¶m›öíÛ§G9ꨣҪU«BÇÜ"¬\¹2—\rI*++Ó¹sç´hÑ"¯¾új>ùä“Ü~ûí)-ýü½W:uJß¾}3xðàL˜0!+V¬¨)ľªk×®9rdÎ9çœL:5{íµW,X3fäõ×_¯)š† ’3fäè£Î˜6mÚdæÌ™éرcz÷î$¹ä’K2}úô 0 =zôÈŽ;î˜÷Þ{//½ôRn¸á†tïÞ=IrÍ5×ä…^È>ûì“¶mÛfÚ´iùè£2xðàš\üqößÿì±Çéܹsª««3qâÄôë×/tP}¿ÌÀF”ToîSljٳgçê«¯Îøñã³fÍšo\×´iÓ 0 ×^{mºvíÚ€ Feee®¹æš$ɦüé8þü<ñÄ™7o^ª««³Ç{¤ÿþÙe—]j­[µjUFyóæeß}÷ÍÀóðÃg¯½öJ§Nj­}ã7òè£fþüùi×®]~úÓŸ¦[·nµÖ|Q@M™2%+V¬H—.]rÒI'¥¢¢¢Öº'Ÿ|2Ï>ûl–,Y’vÚ)‡~xºwï^óì°>ø ãÆËk¯½–Ï>û,»ì²KN9å”l¿ýöµ~ÖK/½”I“&åý÷ßO‹-Ò½{÷wÜq)++Ûô÷+N=õÔŒ3&;ï¼sÞzë­o5P~l`õêÕ¹à‚ 2zôè¬_¿~“ï+++Ë™gž™o¼1Íš5«Ç„ ksË/¾åÔ ÏüøŠE‹¥wïÞ¹õÖ[7«øJ’uëÖå–[nÉᇞE‹ÕSB6Fùðo+W®L¿~ýò /üOsžþùôë×/+W®¬£dl*åÀ¿yæ™™5kVÌš5kVÎ>ûì:™À¦S~$yâ‰'rÏ=÷ÔéÌ»ï¾;“&MªÓ™lœò hôª««sÕUWÕËì«®º*ÕÕÕõ2€ )¿€FoêÔ©yùå—ëeöôéÓ3}úôz™ À†”_@£÷è£~§çð%åÐèM™2¥^çÿõ¯­×ù|©I¡Ú‚ ¾ÓóÒå—_^èE«¾ŽÞ€ÆFù4z‹-ª×ùÿüç?ëu~C6lX¡#l”c€F¯E‹õ:›m¶©×ù|©¤ººººÐ! i¯½öÊ«¯¾Zoó÷Þ{ïÌœ9³Þæð%;¿€F¯sçÎõ:¿K—.õ:€/)¿€Fï˜cŽ©×ùG}t½ÎàKŽ=½%K–d§vJUUUÏ.//Ïû￟6mÚÔùl6dçÐèµmÛ6_|q½Ì¾ä’K_ ÈÎ/€$Ë—/O§Nòá‡ÖÙÌvØ!sæÌI«V­êl&gç@’V­ZeüøñÙzë­ëd^óæÍ3~üxÅ@S~üÛ~ûí—‘#G¦¬¬ìšÓ¤I“Œ92ûî»o%`S9öà?<÷Üs9þøã³hѢ;÷{ßû^zè¡tÐAõ €ÿÆÎ/€ÿpðÁgÚ´i8p`JK7íÏ¥²²² 4(Ó§OW|_ñúë¯çÏþs}ôÑÌš5kƒïwëÖ-ÇsLN8á„tîܹ ø*åÀ&Z½zu>øàƒ,Y²$mÛ¶MûöíÓ¬Y³BÇà+þâz±!‰SIEND®B`‚gfal2-2.3.0/doc/CMakeLists.txt0000644000175000017500000000072512164561703015365 0ustar ellertellert SET(MAIN_DOC TRUE CACHE STRING "enable installation of the main library documentation") IF(MAIN_DOC) file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/build/html/") addDoxyGeneration("Doxyfile.in") SET( l_doc "${CMAKE_CURRENT_BINARY_DIR}/build/html/") install(DIRECTORY ${l_doc} DESTINATION ${DOC_INSTALL_DIR}/html/) # install examples ENDIF(MAIN_DOC) install(FILES "mans/gfal2_version.1" DESTINATION ${MAN_INSTALL_DIR}/man1/) # install examples gfal2-2.3.0/doc/example0000777000175000017500000000000012164561703017521 2../testing/example/ustar ellertellertgfal2-2.3.0/doc/src/0000755000175000017500000000000012164561703013410 5ustar ellertellertgfal2-2.3.0/doc/src/COMMON_API.c0000644000175000017500000000000012164561703015223 0ustar ellertellertgfal2-2.3.0/doc/src/API_CHANGE2.0.c0000644000175000017500000000177312164561703015422 0ustar ellertellert/** \page api_change

API CHANGE 2.0 :

List of the scheduled changes for the GFal 2.0 API

BRIEF OF THE CHANGES :

- The old POSIX API is still unchanged, some new POSIX functions are added to the old one. - the old non-POSIX functions do not exist anymore, most of them are converted to a POSIX one ( ex : gfal_ls -> gfal_opendir, gfal_readdir; gfal_turlsfromsurls -> gfal_getxattr ) - SRM related API is now in the gfal_plugin_lib. All the generic use case of the SRM API can be done with the POSIX API. - The old confusing error system disappear for a new GError system : \ref gfal_posix_check_error , \ref gfal_posix_print_error, \ref gfal_posix_strerror_r - LRC/EDG legacy support is dropped. - Lots of the old direct dependencies are no more needed and are removed ( globus, gsoap, ccheck )

OTHER DOCS :

- More informations about the GError system : http://developer.gnome.org/glib/stable/glib-Error-Reporting.html */ gfal2-2.3.0/doc/src/POSIX_API.c0000644000175000017500000000014012164561703015142 0ustar ellertellert/* * Doc File for the POSIX API in the 2.X revisions * * author : Devresse Adrien * */ gfal2-2.3.0/doc/src/EXAMPLES.c0000644000175000017500000000252412164561703014775 0ustar ellertellert/** @author Devresse Adrien ( adrien.devresse@cern.ch ) */ /** * @example gfal_testread.c * This exemple show how to open and read a file * ex : use case with LFC plugin : ./gfal_testread lfn:/grid/dteam/test_skywalker * */ /** * @example gfal_testrw.c * This exemple show how to open, write a file and read it after * ex : use case with SRM plugin : ./gfal_testrw srm://grid05.lal.in2p3.fr:8446/dpm/lal.in2p3.fr/home/dteam/test_yoda * */ /** * @example gfal_testget.c * This exemple show how to convert a surl to a turl * ex : use case with SRM plugin : ./gfal_testget srm://grid05.lal.in2p3.fr:8446/dpm/lal.in2p3.fr/home/dteam/test_darkvador * */ /** * @example gfal_testdir.c * This exemple show how to list the files in a directory * ex : use case with SRM plugin : ./gfal_testdir srm://grid05.lal.in2p3.fr:8446/dpm/lal.in2p3.fr/home/dteam/test_r2d2 * */ /** * @example gfal_testchmod.c * This exemple show how to change the right on a file/directory * ex : use case with SRM plugin : ./gfal_testdir srm://grid05.lal.in2p3.fr:8446/dpm/lal.in2p3.fr/home/dteam/test_obiwankenobi * */ /** * @example gfal_testcreatedir.c * This exemple show how to create a directory * ex : use case with SRM plugin : ./gfal_testdir srm://grid05.lal.in2p3.fr:8446/dpm/lal.in2p3.fr/home/dteam/test_tatooin * */ gfal2-2.3.0/doc/src/mainpage.c0000644000175000017500000000214212164561703015334 0ustar ellertellert/** \mainpage GFAL 2.0 Documentation \author lcg-util section, CERN IT-GT-DMS ( lcgutil-support@cern.ch ) \author Devresse Adrien ( adrien.devresse@cern.ch )

FAQ :

- GFAL 2.0 \ref faq

API :

- GFAL 2.0 API: - \ref posix_group - \ref transfer_group - GLOBAL API : \ref gfal_api.h - GFAL API for plugin development : - \ref _gfal_plugin_interface

Examples :

- examples

GFAL 2.0, Library Design :

- \ref page_design

Summary of the changes :

- Changes between 1.X and 2.X are resumed \ref api_change

How to compile locally GFAL 2.0

- Compile : - " 1.svn export http://svnweb.cern.ch/guest/lcgutil/gfal2/trunk gfal2 " - " 2.cd gfal2 " - " 3.mkdir build; cd build" - " 4. cmake ../" - " 5. make " - Compile tests : - " 4. cmake -DUNIT_TESTS=TRUE -DFUNCTIONAL_TESTS=TRUE ../ " - " 5. make; make test" - make RPMS : - ./packaging/bin/packager_rpm.sh ./packaging/rpm/specs/ ./ - mock -r [mycfg] RPMS/gfal2-..... */ gfal2-2.3.0/doc/src/lib_design.c0000644000175000017500000000016012164561703015650 0ustar ellertellert/** \page page_design \author Devresse Adrien ( adrien.devresse@cern.ch ) \image html gfal_diagram.png */ gfal2-2.3.0/doc/src/FAQ.c0000644000175000017500000000022212164561703014157 0ustar ellertellert/** \page faq * Doc File for a FAQ * * \author : Devresse Adrien * See here : https://svnweb.cern.ch/trac/lcgutil/wiki/gfal2-faq */ gfal2-2.3.0/doc/src/SRM_API.c0000644000175000017500000000000012164561703014674 0ustar ellertellertgfal2-2.3.0/doc/src/license.c0000644000175000017500000002173112164561703015202 0ustar ellertellert/** \page apl Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS **/ gfal2-2.3.0/doc/src/LFC_LOW_LEVEL_API.c0000644000175000017500000000000012164561703016307 0ustar ellertellertgfal2-2.3.0/doc/qq0000644000175000017500000000352512164561703013172 0ustar ellertellertGFAL_RENAME(3) Library Functions GFAL_RENAME(3) NNAAMMEE gfal_rename - rename a file or a directory SSYYNNOOPPSSIISS ##iinncclluuddee ""ggffaall__aappii..hh"" iinntt ggffaall__rreennaammee ((ccoonnsstt cchhaarr **_o_l_d___n_a_m_e,, ccoonnsstt cchhaarr **_n_e_w___n_a_m_e));; DDEESSCCRRIIPPTTIIOONN ggffaall__rreennaammee renames a file or a directory _o_l_d___n_a_m_e and _n_e_w___n_a_m_e specify the old and new file names (this can only be a TURL in the current implementation). RREETTUURRNN VVAALLUUEE This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, eerrrrnnoo is set appropriately. EERRRROORRSS EENNOOEENNTT A component of _o_l_d___n_a_m_e prefix does not exist. EEAACCCCEESS Search permission is denied on a component of the file prefixes or write permission on the parent directories is denied or _o_l_d___n_a_m_e is a directory and write permission is denied on _o_l_d___n_a_m_e or _n_e_w___n_a_m_e. EEFFAAUULLTT _o_l_d___n_a_m_e or _n_e_w___n_a_m_e is a NULL pointer. EENNOOTTDDIIRR A component of the file prefixes is not a directory. EEIINNVVAALL _o_l_d___n_a_m_e or _n_e_w___n_a_m_e has an invalid syntax. EECCOOMMMM Communication error. EEPPRROOTTOONNOOSSUUPPPPOORRTT Access method not supported. SSEEEE AALLSSOO ggffaall((33)) GFAL $Date: 2003/11/19 12:56:29 $ GFAL_RENAME(3) gfal2-2.3.0/doc/mans/0000755000175000017500000000000012164561703013557 5ustar ellertellertgfal2-2.3.0/doc/mans/gfal2_version.10000644000175000017500000000065612164561703016410 0ustar ellertellert.\" @(#)$RCSfile: gfal2_version.man,v $ $Revision: 2 $ $Date: 2012/04/13 13:09:16 $ CERN Adrien Devresse .\" Copyright (C) 2012 by CERN .\" All rights reserved .\" .TH GFAL2_VERSION 1 "$Date: 2012/04/13 13:09:16 $" GFAL 2.0 "Library Utility" .SH NAME gfal2_version \- Version tool for gfal2 .SH SYNOPSIS \fBgfal2_version\fR .sp .BI "gfal2_version .SH DESCRIPTION Simple utility printing the current version of the gfal2 library. gfal2-2.3.0/doc/Doxyfile0000644000175000017500000014526712164561703014346 0ustar ellertellert# Doxyfile 1.4.7 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "CERN org.glite.Gfal" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 2.0.1 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = build/ # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, # Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, # Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, # Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, # Swedish, and Ukrainian. OUTPUT_LANGUAGE = English # This tag can be used to specify the encoding used in the generated output. # The encoding is not always determined by the language that is chosen, # but also whether or not the output is meant for Windows or non-Windows users. # In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES # forces the Windows encoding (this is the default for the Windows binary), # whereas setting the tag to NO uses a Unix-style encoding (the default for # all platforms other than Windows). USE_WINDOWS_ENCODING = NO # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explicit @brief command for a brief description. JAVADOC_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for Java. # For instance, namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to # include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from the # version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = src/ ../src/ ../src/common ../src/posix # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py FILE_PATTERNS = *.c *.h # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = *.man # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = example/ # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = diagrams/ # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentstion. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = YES # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = YES #e XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will # generate a call dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected # functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will # generate a caller dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable caller graphs for selected # functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that a graph may be further truncated if the graph's # image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH # and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), # the graph is not depth-constrained. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, which results in a white background. # Warning: Depending on the platform used, enabling this option may lead to # badly anti-aliased labels on the edges of a graph (i.e. they become hard to # read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO gfal2-2.3.0/old_test/0000755000175000017500000000000012164561703013671 5ustar ellertellertgfal2-2.3.0/old_test/gfal_testrw.c0000644000175000017500000000447512164561703016370 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @(#)$RCSfile: gfal_testrw.c,v $ $Revision: 1.2 $ $Date: 2008/05/08 13:16:36 $ CERN Jean-Philippe Baud */ #include #include #include #include "gfal_api.h" #define BLKLEN 65536 main(int argc, char **argv) { int fd; int i; char ibuf[BLKLEN]; char obuf[BLKLEN]; int rc; if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } for (i = 0; i < BLKLEN; i++) obuf[i] = i; printf ("creating file %s\n", argv[1]); if ((fd = gfal_open (argv[1], O_WRONLY|O_CREAT, 0644)) < 0) { perror ("gfal_open"); exit (1); } printf ("open successful, fd = %d\n", fd); if ((rc = gfal_write (fd, obuf, BLKLEN)) != BLKLEN) { if (rc < 0) perror ("gfal_write"); else fprintf (stderr, "gfal_write returns %d\n", rc); (void) gfal_close (fd); exit (1); } printf ("write successful\n"); if ((rc = gfal_close (fd)) < 0) { perror ("gfal_close"); exit (1); } printf ("close successful\n"); printf ("reading back %s\n", argv[1]); if ((fd = gfal_open (argv[1], O_RDONLY, 0)) < 0) { perror ("gfal_open"); exit (1); } printf ("open successful, fd = %d\n", fd); if ((rc = gfal_read (fd, ibuf, BLKLEN)) != BLKLEN) { if (rc < 0) perror ("gfal_read"); else fprintf (stderr, "gfal_read returns %d\n", rc); (void) gfal_close (fd); exit (1); } printf ("read successful\n"); if ((rc = gfal_close (fd)) < 0) { perror ("gfal_close"); exit (1); } printf ("close successful\n"); for (i = 0; i < BLKLEN; i++) { if (ibuf[i] != obuf[i]) { fprintf (stderr, "compare failed at offset %d\n", i); exit (1); } } printf ("compare successful\n"); exit (0); } gfal2-2.3.0/old_test/gfal_testread.c0000644000175000017500000000304412164561703016642 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @(#)$RCSfile: gfal_testread.c,v $ $Revision: 1.4 $ $Date: 2008/05/08 13:16:36 $ CERN Jean-Philippe Baud */ #include #include #include #include #include "gfal_api.h" #define BLKLEN 65536 main(int argc, char **argv) { int fd; char ibuf[BLKLEN]; int rc; if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } printf ("opening %s\n", argv[1]); if ((fd = gfal_open (argv[1], O_RDONLY, 0)) < 0) { perror ("gfal_open"); exit (1); } printf ("open successful, fd = %d (errno = %d)\n", fd, errno); if ((rc = gfal_read (fd, ibuf, BLKLEN)) < 0) { perror ("gfal_read"); (void) gfal_close (fd); exit (1); } printf ("read successful (errno = %d)\n", errno); if ((rc = gfal_close (fd)) < 0) { perror ("gfal_close"); exit (1); } printf ("close successful\n"); exit (0); } gfal2-2.3.0/old_test/gfal_test_checksum.c0000644000175000017500000000466112164561703017676 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @(#)$RCSfile: gfal_test_checksum.c,v $ $Revision: 1.1 $ $Date: 2009/08/26 15:40:06 $ CERN Jean-Philippe Baud */ #include #include #include "gfal_api.h" static void _gfal_test(const char* file, const int line, const int res) { if (!res) { printf("FAILED in file '%s', line %d.\n", file, line); exit(-1); } } #define GFAL_TEST(res) \ _gfal_test(__FILE__, __LINE__, (res)) static void gfal_test__parse_checksum_algname() { enum gfal_cksm_type gct; /* Test the good cases */ gct = gfal_parse_checksum_algname("CRC32"); GFAL_TEST(gct == GFAL_CKSM_CRC32); gct = gfal_parse_checksum_algname("ADLER32"); GFAL_TEST(gct == GFAL_CKSM_ADLER32); gct = gfal_parse_checksum_algname("MD5"); GFAL_TEST(gct == GFAL_CKSM_MD5); gct = gfal_parse_checksum_algname("SHA1"); GFAL_TEST(gct == GFAL_CKSM_SHA1); /* Test garbage */ gct = gfal_parse_checksum_algname("garbage"); GFAL_TEST(gct == GFAL_CKSM_NONE); /* Test null parameter and empty string */ gct = gfal_parse_checksum_algname(NULL); GFAL_TEST(gct == GFAL_CKSM_NONE); gct = gfal_parse_checksum_algname(""); GFAL_TEST(gct == GFAL_CKSM_NONE); /* Test abbreviations (DPM algorithm naming cases) */ gct = gfal_parse_checksum_algname("CR"); GFAL_TEST(gct == GFAL_CKSM_CRC32); gct = gfal_parse_checksum_algname("AD"); GFAL_TEST(gct == GFAL_CKSM_ADLER32); gct = gfal_parse_checksum_algname("MD"); GFAL_TEST(gct == GFAL_CKSM_MD5); /* Test a lowercase standard algorithm name */ gct = gfal_parse_checksum_algname("adler32"); GFAL_TEST(gct == GFAL_CKSM_ADLER32); } int main(int argc, char** argv) { gfal_test__parse_checksum_algname(); printf("PASSED.\n"); return 0; } gfal2-2.3.0/old_test/gfal_testcreatdir.c0000644000175000017500000000306212164561703017524 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @(#)$RCSfile: gfal_testcreatdir.c,v $ $Revision: 1.2 $ $Date: 2008/05/08 13:16:36 $ CERN Remi Mollon */ #include #include #include "gfal_api.h" main(int argc, char **argv) { char *rootdir; char olddir[1024], newdir[1024]; if (argc != 2) { fprintf (stderr, "usage: %s rootdir\n", argv[0]); exit (1); } rootdir = argv[1]; snprintf (olddir, 1024, "%s/olddir", rootdir); snprintf (newdir, 1024, "%s/newdir", rootdir); printf ("Creating directory 'olddir'...\n"); if (gfal_mkdir (olddir, 0700) < 0) { perror ("gfal_mkdir"); exit (1); } printf ("Renaming directory 'olddir' to 'newdir'...\n"); if (gfal_rename (olddir, newdir) < 0) { perror ("gfal_rename"); exit (1); } printf ("Removing directory 'newdir'...\n"); if (gfal_rmdir (newdir) < 0) { perror ("gfal_rmdir"); exit (1); } printf ("All is ok.\n"); exit (0); } gfal2-2.3.0/old_test/gfal_test__gfal_parseturl.c0000644000175000017500000000402412164561703021236 0ustar ellertellert/* * Authors: Zsolt Molnar * * Unit tests for parseturl method in gfal.c * * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gfal_internals.h" #include "gfal_testsuite.h" #include /* WARNING: the test functions may have memory leaks. Due to the nature of the * test application, they are not handled elaborately, do not worry if you find * some... They do not affect the test execution and production.*/ #define __CALL_TEST(test) \ printf("\nTest group: %s\n", #test); \ res = (test); \ if (!res) \ return res; /** * Test for bug 55424: gfal file open problem(gfal_open) * * https://savannah.cern.ch/bugs/?55424 * * The parseturl function crashed when the TURL was NULL. Here, we pass NULL * as turl, the test should not crash and must return error code / error * message. */ static char * _test_parseturl_turl_is_null_55424() { static const int errbufsz = 1024; char errbuf[errbufsz]; int res = 1232532; errbuf[0] = 0; errno = 0; /* White box test. We know that the turl is checked first... */ res = parseturl(NULL /* turl */, NULL, 0, NULL, 0, errbuf, errbufsz); GFAL_TEST_EQUAL(-1, res); GFAL_TEST_EQUAL(EFAULT, errno); return NULL; } char * gfal_test__gfal_parseturl() { char* res = NULL; __CALL_TEST(_test_parseturl_turl_is_null_55424()); return NULL; } gfal2-2.3.0/old_test/gfal_testsuite.h0000644000175000017500000000511712164561703017070 0ustar ellertellert/* * Authors: Zsolt Molnar * * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Inspired by MinUnit -- a minimal unit testing framework for C * (http://www.jera.com/techinfo/jtns/jtn002.html) */ #ifndef GFAL_UNIT_TESTSUITE_H #define GFAL_UNIT_TESTSUITE_H #include #include /** Test the logical condition. If it is logical false, the test execution * stops, error message is displayed. */ #define GFAL_TEST_ASSERT(condition) \ do { \ printf("\t Test at %s:%d... ", __FILE__, __LINE__); \ if (!(condition)) { \ printf("FAILED\n"); \ exit(-1); \ } \ printf("OK\n"); \ } while (0) /** Test equality of two values. The test expects value "expected", compares * with "value". In case of inequality, the test execution stops, error message * is displayed. */ #define GFAL_TEST_EQUAL(expected, value) \ do { \ printf("\t Test at %s:%d... ", __FILE__, __LINE__); \ if ((expected) != (value)) { \ printf("FAILED. Expected: %d, Got: %d\n", (expected), (value)); \ exit(-1); \ } \ printf("OK\n"); \ } while (0) /** Test equality of two string values. The test expects value "expected", * compares with "value". In case of inequality, the test execution stops, * error message is displayed. */ #define GFAL_TEST_EQUAL_STRING(expected, value) \ do { \ printf("\t Test at %s:%d... ", __FILE__, __LINE__); \ if (strcmp(expected, value) != 0) { \ printf("FAILED. Expected: \"%s\", Got: \"%s\"\n", (expected), (value)); \ exit(-1); \ } \ printf("OK\n"); \ } while (0) #define GFAL_TEST_RUN(test) \ do { \ printf("\nRunning: %s...\n", #test); \ test(); \ __gfal_tests_run++; \ } while (0) /** Counts the executed test */ extern int __gfal_tests_run; #endif /* #ifndef GFAL_UNIT_TESTSUITE_H */ gfal2-2.3.0/old_test/gfal_testunlink.c0000644000175000017500000000211312164561703017223 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @(#)$RCSfile: gfal_testunlink.c,v $ $Release$ $Date: 2008/05/08 13:16:36 $ CERN Jean-Philippe Baud */ #include #include #include #include "gfal_api.h" main(int argc, char **argv) { if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } if (gfal_unlink (argv[1]) < 0) { perror ("gfal_unlink"); exit (1); } exit (0); } gfal2-2.3.0/old_test/gfal_test__protocol_list_handling.c0000644000175000017500000004017312164561703022771 0ustar ellertellert/* * Authors: Zsolt Molnar * * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Test if the logic recognizes unknown protocols of wrongly formatted * protocol lists in the transfetParameters property of PrepareToGet. */ #include "srm_dependencies.h" #include "srm2_2_ifce.h" #include "gfal_api.h" #include #include "gfal_testsuite.h" /* WARNING: the test functions may have memory leaks. Due to the nature of the * test application, they are not handled elaborately, do not worry if you find * some... They do not affect the test execution and production.*/ #define __CALL_TEST(test) \ printf("\nTest group: %s\n", #test); \ res = (test); \ if (!res) \ return res; /* The actual scenario to te be tested */ typedef enum _protocol_list_scenario_type { E_UNSUPPORTED_PROTOCOL, E_EMPTY_LIST, E_UNUSED } _protocol_list_scenario_type_t; /* The variable controls the actual scenario. The test function sets it, * then calls the function to be tested. Deep inside, the function will call * the (replaced) SOAP caller. The mock SOAP caller prepares different SRM * responses and return it, without the physical gSOAP/network operation. * The response content is controlled by this variable (the scenario). */ static _protocol_list_scenario_type_t _protocol_list_scenario = E_UNUSED; /* A fixture with a protocol list containing an unsupported protocol name */ static char* _unsupported_protocol[] = {"unsupported_protocol", NULL}; /* Signature for srmv2_turlsfromsurls_get, srmv2_gete, srmv2_prestagee, * srmv2_bringonline. As the signatures are common, we can reuse the same * test function code. */ typedef int (*srmv2_fv_type)(int, const char **, const char *, int, const char *, char **, char **, struct srmv2_pinfilestatus **, char *, int, int); /* There is only 1 file in the requests, and only 1 corresponding file status in * the responses. */ #define NUMBER_OF_FILES 1 /* Set up the common part of the SRM responses. The common part: all the tested * SRM responses have the same fields, and their values are the same in case of * all tests/scenarios. */ static void _prepare_response_common( struct soap* soap, struct srm2__TReturnStatus ** status, int *remainingTotalRequestTime, int* __sizestatusArray) { assert(status); assert(__sizestatusArray); *status = soap_malloc(soap, sizeof(struct srm2__TReturnStatus)); (*status)->explanation = 0; remainingTotalRequestTime = 0; *(__sizestatusArray) = NUMBER_OF_FILES; } /* Create the SRM response for the srmPrepareToGet call, according to the * actual test scenario. */ static void _prepare_response_prepare_to_get( struct soap* soap, struct srm2__srmPrepareToGetResponse_ * rep) { static struct srm2__TGetRequestFileStatus * mock_statuses[NUMBER_OF_FILES]; assert(soap); assert(rep); rep->srmPrepareToGetResponse = soap_malloc( soap, sizeof(struct srm2__srmPrepareToGetResponse)); rep->srmPrepareToGetResponse->arrayOfFileStatuses = soap_malloc( soap, sizeof(struct srm2__ArrayOfTGetRequestFileStatus)); rep->srmPrepareToGetResponse->arrayOfFileStatuses->statusArray = mock_statuses; _prepare_response_common( soap, &(rep->srmPrepareToGetResponse->returnStatus), rep->srmPrepareToGetResponse->remainingTotalRequestTime, &(rep->srmPrepareToGetResponse->arrayOfFileStatuses->__sizestatusArray) ); } /* Create the SRM response for the srmBringOnline call, according to the * actual test scenario. */ static void _prepare_response_bring_online( struct soap* soap, struct srm2__srmBringOnlineResponse_ * rep) { static struct srm2__TBringOnlineRequestFileStatus * mock_statuses[NUMBER_OF_FILES]; assert(soap); assert(rep); rep->srmBringOnlineResponse = soap_malloc( soap, sizeof(struct srm2__srmBringOnlineResponse)); rep->srmBringOnlineResponse->arrayOfFileStatuses = soap_malloc( soap, sizeof(struct srm2__ArrayOfTBringOnlineRequestFileStatus)); rep->srmBringOnlineResponse->arrayOfFileStatuses->statusArray = mock_statuses; _prepare_response_common( soap, &(rep->srmBringOnlineResponse->returnStatus), rep->srmBringOnlineResponse->remainingTotalRequestTime, &(rep->srmBringOnlineResponse->arrayOfFileStatuses->__sizestatusArray) ); } /* Create the SRM response for the srmPrepareToPut call, according to the * actual test scenario. */ static void _prepare_response_prepare_to_put( struct soap* soap, struct srm2__srmPrepareToPutResponse_ * rep) { static struct srm2__TPutRequestFileStatus * mock_statuses[NUMBER_OF_FILES]; assert(soap); assert(rep); rep->srmPrepareToPutResponse = soap_malloc( soap, sizeof(struct srm2__srmPrepareToPutResponse)); rep->srmPrepareToPutResponse->arrayOfFileStatuses = soap_malloc( soap, sizeof(struct srm2__ArrayOfTPutRequestFileStatus)); rep->srmPrepareToPutResponse->arrayOfFileStatuses->statusArray = mock_statuses; _prepare_response_common( soap, &(rep->srmPrepareToPutResponse->returnStatus), rep->srmPrepareToPutResponse->remainingTotalRequestTime, &(rep->srmPrepareToPutResponse->arrayOfFileStatuses->__sizestatusArray) ); } /* The dependency injection comes here. This function replaces the production * version SOAP calls so that no network operation, server, etc be required. * The function directly produces and returns the SRM response objects. * * This is the "SOAP call" for the srmPrepareToGet operation. */ static int _caller_play_scenarios_prepare_to_get( struct soap * soap, const char * srm_endpoint, const char * srmfunc, struct srm2__srmPrepareToGetRequest * req, struct srm2__srmPrepareToGetResponse_ * rep) { _prepare_response_prepare_to_get(soap, rep); switch(_protocol_list_scenario) { case E_EMPTY_LIST: GFAL_TEST_EQUAL(0, req->transferParameters->arrayOfTransferProtocols); /* Pretend that the call itself is successful, and do nothing */ rep->srmPrepareToGetResponse->returnStatus->statusCode = SRM_USCORESUCCESS; return SOAP_OK; case E_UNSUPPORTED_PROTOCOL: /* Check if the function filled in the appropriate fields of the request */ GFAL_TEST_EQUAL(1, req->transferParameters->arrayOfTransferProtocols->__sizestringArray); GFAL_TEST_ASSERT( strcmp(req->transferParameters->arrayOfTransferProtocols->stringArray[0], _unsupported_protocol[0]) == 0 ); /* In case of unsupported protocol, the return status is SRM_NOT_SUPPORTED */ rep->srmPrepareToGetResponse->returnStatus->statusCode = SRM_USCORENOT_USCORESUPPORTED; rep->srmPrepareToGetResponse->arrayOfFileStatuses->__sizestatusArray = 0; return SOAP_OK; default: assert(0); } return 1; } /* The dependency injection comes here. This function replaces the production * version SOAP calls so that no network operation, server, etc be required. * The function directly produces and returns the SRM response objects. * * This is the "SOAP call" for the srmBringOnline operation. */ static int _caller_play_scenarios_bring_online( struct soap * soap, const char * srm_endpoint, const char * srmfunc, struct srm2__srmBringOnlineRequest * req, struct srm2__srmBringOnlineResponse_ * rep) { _prepare_response_bring_online(soap, rep); switch(_protocol_list_scenario) { case E_EMPTY_LIST: GFAL_TEST_EQUAL(0, req->transferParameters->arrayOfTransferProtocols); /* Pretend that the call itself is successful, and do nothing */ rep->srmBringOnlineResponse->returnStatus->statusCode = SRM_USCORESUCCESS; return SOAP_OK; case E_UNSUPPORTED_PROTOCOL: /* Check if the function filled in the appropriate fields of the request */ GFAL_TEST_EQUAL(1, req->transferParameters->arrayOfTransferProtocols->__sizestringArray); GFAL_TEST_ASSERT( strcmp(req->transferParameters->arrayOfTransferProtocols->stringArray[0], _unsupported_protocol[0]) == 0 ); /* In case of unsupported protocol, the return status is SRM_NOT_SUPPORTED */ rep->srmBringOnlineResponse->returnStatus->statusCode = SRM_USCORENOT_USCORESUPPORTED; rep->srmBringOnlineResponse->arrayOfFileStatuses->__sizestatusArray = 0; return SOAP_OK; default: assert(0); } return 1; } /* The dependency injection comes here. This function replaces the production * version SOAP calls so that no network operation, server, etc be required. * The function directly produces and returns the SRM response objects. * * This is the "SOAP call" for the srmPrepareToPut operation. */ static int _caller_play_scenarios_prepare_to_put( struct soap * soap, const char * srm_endpoint, const char * srmfunc, struct srm2__srmPrepareToPutRequest * req, struct srm2__srmPrepareToPutResponse_ * rep) { _prepare_response_prepare_to_put(soap, rep); switch(_protocol_list_scenario) { case E_EMPTY_LIST: GFAL_TEST_EQUAL(0, req->transferParameters->arrayOfTransferProtocols); /* Pretend that the call itself is successful, and do nothing */ rep->srmPrepareToPutResponse->returnStatus->statusCode = SRM_USCORESUCCESS; return SOAP_OK; case E_UNSUPPORTED_PROTOCOL: /* Check if the function filled in the appropriate fields of the request */ GFAL_TEST_EQUAL(1, req->transferParameters->arrayOfTransferProtocols->__sizestringArray); GFAL_TEST_ASSERT( strcmp(req->transferParameters->arrayOfTransferProtocols->stringArray[0], _unsupported_protocol[0]) == 0 ); /* In case of unsupported protocol, the return status is SRM_NOT_SUPPORTED */ rep->srmPrepareToPutResponse->returnStatus->statusCode = SRM_USCORENOT_USCORESUPPORTED; rep->srmPrepareToPutResponse->arrayOfFileStatuses->__sizestatusArray = 0; return SOAP_OK; default: assert(0); } return 1; } /* Inject the dependencies. Replace the SOAP callers to the test ones. */ static void _setup_srm_callers() { gfal_srm_callers_v2.call_prepare_to_get = _caller_play_scenarios_prepare_to_get; gfal_srm_callers_v2.call_bring_online = _caller_play_scenarios_bring_online; gfal_srm_callers_v2.call_prepare_to_put = _caller_play_scenarios_prepare_to_put; } /* General fixtures for the SRM requests*/ static char *mock_surls[] = {"srm://fake_surl/"}; static int mock_nbfiles = 1; static char *mock_srm_endpoint = "httpg://fakeendpoint.cern.ch:8443/srm/managerv2"; static int mock_desiredpintime = 10; static const char *mock_spacetokendesc = NULL; static char ** mock_reqtoken = NULL; static struct srmv2_pinfilestatus * mock_pinfilestatus[3]; static int errbufsz = 1024; static char errbuf[1024]; static int mock_timeout = 100; /* Test the following functions (they have same signatures, so they can be * tested in a generic way): * * srmv2_turlsfromsurls_get, srmv2_gete, srmv2_prestagee, srmv2_bringonline */ static char* _test_protocol_list(srmv2_fv_type fv) { int res; errno = 0; /* SCENARIO 1: empty protocol list. Call must be OK. */ _protocol_list_scenario = E_EMPTY_LIST; res = fv(mock_nbfiles, (const char**)mock_surls, (const char*)mock_srm_endpoint, mock_desiredpintime, mock_spacetokendesc, NULL, /* The empty protocol list */ mock_reqtoken, mock_pinfilestatus, errbuf, errbufsz, mock_timeout); GFAL_TEST_EQUAL(NUMBER_OF_FILES, res); GFAL_TEST_EQUAL(0, errno); errno = 0; errbuf[0] = 0; /* SCENARIO 2: Wrong protocol list. Call must return error. */ _protocol_list_scenario = E_UNSUPPORTED_PROTOCOL; res = fv(mock_nbfiles, (const char**)mock_surls, (const char*)mock_srm_endpoint, mock_desiredpintime, mock_spacetokendesc, _unsupported_protocol, mock_reqtoken, mock_pinfilestatus, errbuf, errbufsz, mock_timeout); GFAL_TEST_EQUAL(-1, res); GFAL_TEST_EQUAL(EOPNOTSUPP, errno); } /* Test the srmv2_turlsfromsurls_put function. */ static char* _test_srmv2_turlsfromsurls_put() { GFAL_LONG64 mock_filesizes[NUMBER_OF_FILES] = {10}; int res; errno = 0; /* SCENARIO 1: empty protocol list. Call must be OK. */ _protocol_list_scenario = E_EMPTY_LIST; res = srmv2_turlsfromsurls_put(mock_nbfiles, (const char**)mock_surls, (const char*)mock_srm_endpoint, mock_filesizes, mock_desiredpintime, mock_spacetokendesc, NULL, /* The empty protocol list */ mock_reqtoken, mock_pinfilestatus, errbuf, errbufsz, mock_timeout); GFAL_TEST_EQUAL(NUMBER_OF_FILES, res); GFAL_TEST_EQUAL(0, errno); errno = 0; errbuf[0] = 0; /* SCENARIO 2: Wrong protocol list. Call must return error. */ _protocol_list_scenario = E_UNSUPPORTED_PROTOCOL; res = srmv2_turlsfromsurls_put(mock_nbfiles, (const char**)mock_surls, (const char*)mock_srm_endpoint, mock_filesizes, mock_desiredpintime, mock_spacetokendesc, _unsupported_protocol, mock_reqtoken, mock_pinfilestatus, errbuf, errbufsz, mock_timeout); GFAL_TEST_EQUAL(-1, res); GFAL_TEST_EQUAL(EOPNOTSUPP, errno); } static char* _test_gfal_turlsfromsurls() { gfal_internal int_req = NULL; gfal_request req = NULL; const errbufsz = 1024; char errbuf[errbufsz]; int res; GFAL_LONG64 mock_filesizes[NUMBER_OF_FILES] = {10}; req = gfal_request_new(); req->nbfiles = mock_nbfiles; req->defaultsetype = TYPE_SRMv2; req->setype = TYPE_SRMv2; req->no_bdii_check = 1; req->srmv2_spacetokendesc = (char*) mock_spacetokendesc; req->surls = mock_surls; req->endpoint = mock_srm_endpoint; /* SCENARIO 1: empty protocol list. Call must be OK. */ /* This will utilize srmv2_turlsfromsurls_get */ req->protocols = NULL; gfal_init (req, &int_req, errbuf, errbufsz); errno = 0; _protocol_list_scenario = E_EMPTY_LIST; res = gfal_turlsfromsurls (int_req, errbuf, errbufsz); GFAL_TEST_EQUAL(0, res); GFAL_TEST_EQUAL(0, errno); /* This will utilize srmv2_turlsfromsurls_put */ req->oflag |= O_ACCMODE; gfal_init (req, &int_req, errbuf, errbufsz); errno = 0; _protocol_list_scenario = E_EMPTY_LIST; res = gfal_turlsfromsurls (int_req, errbuf, errbufsz); GFAL_TEST_EQUAL(0, res); GFAL_TEST_EQUAL(0, errno); /* SCENARIO 1: empty protocol list. Call must be OK. */ /* This will utilize srmv2_turlsfromsurls_get */ req->oflag = 0; req->protocols = _unsupported_protocol; gfal_init (req, &int_req, errbuf, errbufsz); errno = 0; _protocol_list_scenario = E_UNSUPPORTED_PROTOCOL; res = gfal_turlsfromsurls (int_req, errbuf, errbufsz); GFAL_TEST_EQUAL(-1, res); GFAL_TEST_EQUAL(EOPNOTSUPP, errno); /* This will utilize srmv2_turlsfromsurls_put */ req->oflag |= O_ACCMODE; gfal_init (req, &int_req, errbuf, errbufsz); errno = 0; _protocol_list_scenario = E_UNSUPPORTED_PROTOCOL; res = gfal_turlsfromsurls (int_req, errbuf, errbufsz); GFAL_TEST_EQUAL(-1, res); GFAL_TEST_EQUAL(EOPNOTSUPP, errno); return NULL; } char * gfal_test__protocol_list_handling() { char* res = NULL; _setup_srm_callers(); __CALL_TEST(_test_protocol_list(srmv2_turlsfromsurls_get)); __CALL_TEST(_test_protocol_list(srmv2_gete)); __CALL_TEST(_test_protocol_list(srmv2_prestagee)); __CALL_TEST(_test_protocol_list(srmv2_bringonline)); __CALL_TEST(_test_srmv2_turlsfromsurls_put()); __CALL_TEST(_test_gfal_turlsfromsurls()); return NULL; } #undef __CALL_TEST gfal2-2.3.0/old_test/gfal_testdir.c0000644000175000017500000000252012164561703016503 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @(#)$RCSfile: gfal_testdir.c,v $ $Revision: 1.2 $ $Date: 2008/05/08 13:16:36 $ CERN Jean-Philippe Baud */ #include #include #include "gfal_api.h" main(int argc, char **argv) { struct dirent *d; DIR *dir; if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } if ((dir = gfal_opendir (argv[1])) == NULL) { perror ("gfal_opendir"); exit (1); } #if defined(__USE_FILE_OFFSET64) while ((d = gfal_readdir64 (dir))) { #else while ((d = gfal_readdir (dir))) { #endif printf ("%s\n", d->d_name); } if (gfal_closedir (dir) < 0) { perror ("gfal_closedir"); exit (1); } exit (0); } gfal2-2.3.0/old_test/gfal_testchmod.c0000644000175000017500000000274412164561703017027 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @(#)$RCSfile: gfal_testchmod.c,v $ $Revision: 1.3 $ $Date: 2008/05/08 13:16:36 $ CERN Remi Mollon */ #include #include #include #include #include "gfal_api.h" main(int argc, char **argv) { int mode, error = 0; char *file; if (argc != 3) { fprintf (stderr, "usage: %s file mode\n", argv[0]); exit (1); } file = argv[1]; mode = strtol (argv[2], NULL, 8); if (errno > 0) { perror ("strtol"); exit (1); } printf ("Checking RW access to '%s'...\n",file); if (gfal_access (file, R_OK|W_OK) < 0) { error = 1; perror ("gfal_access"); } printf ("Changing mode of '%s' to %o...\n", file, mode); if (gfal_chmod (file, mode) < 0) { error = 1; perror ("gfal_chmod"); } if (error) exit (1); printf ("All is ok.\n"); exit (0); } gfal2-2.3.0/old_test/gfal_test__lfc_mkdirp.c0000644000175000017500000000276312164561703020346 0ustar ellertellert/* * Authors: Zsolt Molnar * * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Test if the logic recognizes unknown protocols of wrongly formatted * protocol lists in the transfetParameters property of PrepareToGet. */ #include "lfc_ifce.h" #include "gfal_testsuite.h" #include #define __CALL_TEST(test) \ printf("\nTest group: %s\n", #test); \ res = (test); \ if (!res) \ return res; /* Fixtures They depend on the test environemnt!!! TODO: make them configurable. */ static char* host = NULL; #define errbufsz 1024 static char errbuf[errbufsz]; static char* _test__ckeck_recursive_directory_creation() { return NULL; } char * gfal_test__lfc_mkdirp() { char* res = NULL; __CALL_TEST(_test__ckeck_recursive_directory_creation()); return res; } #undef __CALL_TEST gfal2-2.3.0/old_test/gfal_testget.c0000644000175000017500000000471712164561703016516 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @(#)$RCSfile: gfal_testget.c,v $ $Revision: 1.7 $ $Date: 2009/04/08 14:21:34 $ CERN Jean-Philippe Baud */ #include #include #include #include #include #include #include "gfal_api.h" #define DEFPOLLINT 10 main(argc, argv) int argc; char **argv; { gfal_request req = NULL; gfal_internal gobj = NULL; gfal_filestatus *filestatuses = NULL; int sav_errno = 0, n = 0, i = 0, nberrors = 0; static char *protos[] = {"rfio", "dcap", "gsiftp"}; if (argc < 2) { fprintf (stderr, "usage: %s SURLs\n", argv[0]); exit (1); } gfal_set_verbose (0); if ((req = gfal_request_new ()) == NULL) exit (1); req->nbfiles = argc - 1; req->surls = argv + 1; req->protocols = protos; if (gfal_init (req, &gobj, NULL, 0) < 0) { sav_errno = errno; free (req); errno = sav_errno; perror (argv[0]); exit (1); } free (req); if (gfal_turlsfromsurls (gobj, NULL, 0) < 0) { sav_errno = errno; gfal_internal_free (gobj); errno = sav_errno; perror (argv[0]); exit (1); } if ((n = gfal_get_results (gobj, &filestatuses)) < 0) { sav_errno = errno; gfal_internal_free (gobj); errno = sav_errno; perror (argv[0]); exit (1); } if (filestatuses == NULL) { fprintf (stderr, "%s: Internal error (memory corruption?)\n", argv[0]); exit (1); } for (i = 0; i < n; ++i) { if (filestatuses[i].status == 0) printf("SURL %s Ready - TURL: %s\n", filestatuses[i].surl, filestatuses[i].turl); else { ++nberrors; if (filestatuses[i].explanation) printf("SURL %s Failed:\n%s\n", filestatuses[i].surl, filestatuses[i].explanation); else printf("SURL %s Failed:\n%s\n", filestatuses[i].surl, strerror (filestatuses[i].status)); } } gfal_internal_free (gobj); exit (nberrors > 0 ? 1 : 0); } gfal2-2.3.0/old_test/gfal_test__mds_ifce.c0000644000175000017500000000417012164561703017777 0ustar ellertellert/* * Authors: Zsolt Molnar * * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Test if the logic recognizes unknown protocols of wrongly formatted * protocol lists in the transfetParameters property of PrepareToGet. */ #include "gfal_internals.h" #include #include "gfal_testsuite.h" #define __CALL_TEST(test) \ printf("\nTest group: %s\n", #test); \ res = (test); \ if (!res) \ return res; /* Fixtures They depend on the test environemnt!!! TODO: make them configurable. */ static char* host = NULL; #define errbufsz 1024 static char errbuf[errbufsz]; static char* _test__get_se_types_and_endpoints_good_case() { char **se_types = NULL; char **se_endpoints = NULL; int ret = -1; ret = get_se_types_and_endpoints (host, &se_types, &se_endpoints, errbuf, errbufsz); GFAL_TEST_EQUAL(0, ret); GFAL_TEST_EQUAL_STRING("srm_v1", *se_types); GFAL_TEST_EQUAL_STRING("srm_v2", *(se_types + 1)); GFAL_TEST_EQUAL_STRING("httpg://lxbra1910.cern.ch:8443/srm/managerv1", *se_endpoints); GFAL_TEST_EQUAL_STRING("httpg://lxbra1910.cern.ch:8446/srm/managerv2", *(se_endpoints + 1)); } char * gfal_test__mds_ifce() { char* res = NULL; host=getenv("SE_ENDPOINT_DPM"); //GFAL_TEST_ASSERT(host != NULL); // TODO: test temporarily disabled. Will ebe enabled when we integrate is_interface //__CALL_TEST(_test__get_se_types_and_endpoints_good_case()); return res; } #undef __CALL_TEST gfal2-2.3.0/old_test/gfal_teststat.c0000644000175000017500000000253512164561703016706 0ustar ellertellert/* * Copyright (c) Members of the EGEE Collaboration. 2004. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @(#)$RCSfile: gfal_teststat.c,v $ $Revision: 1.2 $ $Date: 2008/05/08 13:16:36 $ CERN Jean-Philippe Baud */ #include #include #include #include "gfal_api.h" main(int argc, char **argv) { struct stat statbuf; if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } if (gfal_stat (argv[1], &statbuf) < 0) { perror ("gfal_stat"); exit (1); } printf ("stat successful\n"); printf ("mode = %o\n", statbuf.st_mode); printf ("nlink = %d\n", statbuf.st_nlink); printf ("uid = %d\n", statbuf.st_uid); printf ("gid = %d\n", statbuf.st_gid); printf ("size = %ld\n", statbuf.st_size); exit (0); } gfal2-2.3.0/dist/0000755000175000017500000000000012164561703013017 5ustar ellertellertgfal2-2.3.0/dist/scripts/0000755000175000017500000000000012164561703014506 5ustar ellertellertgfal2-2.3.0/dist/scripts/gfal_plugin_dcap/0000755000175000017500000000000012164561703017764 5ustar ellertellertgfal2-2.3.0/dist/scripts/gfal_plugin_rfio/0000755000175000017500000000000012164561703020014 5ustar ellertellertgfal2-2.3.0/dist/scripts/gfal_plugin_srm/0000755000175000017500000000000012164561703017656 5ustar ellertellertgfal2-2.3.0/dist/scripts/gfal_plugin_lfc/0000755000175000017500000000000012164561703017621 5ustar ellertellertgfal2-2.3.0/dist/usr/0000755000175000017500000000000012164561703013630 5ustar ellertellertgfal2-2.3.0/dist/usr/share/0000755000175000017500000000000012164561703014732 5ustar ellertellertgfal2-2.3.0/dist/usr/share/gfal2/0000755000175000017500000000000012164561703015725 5ustar ellertellertgfal2-2.3.0/dist/usr/share/gfal2/tests/0000755000175000017500000000000012164561703017067 5ustar ellertellertgfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/0000755000175000017500000000000012164561703020331 5ustar ellertellertgfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-lstat-guid0000755000175000017500000000035612164561703026432 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__gfal_posix_lstat_guid gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--readdir-posix-lfc-simple0000755000175000017500000000036112164561703027105 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__readdir_posix_lfc_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-open-posix-lfc-simple0000755000175000017500000000035512164561703026362 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_open_posix_lfc_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--mkdir-posix-lfc-simple0000755000175000017500000000035712164561703026606 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__mkdir_posix_lfc_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--dir-file-descriptor-high0000755000175000017500000000036112164561703027066 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__dir_file_descriptor_high gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-write-posix-srm-simple0000755000175000017500000000035612164561703026611 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_write_posix_srm_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-srm-determine-endpoint-not-fullG0000755000175000017500000000037512164561703031377 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_srm_determine_endpoint_not_fullG gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--opendir-posix-srm-simple-mock0000755000175000017500000000036612164561703030124 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__opendir_posix_srm_simple_mock gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-srm-get-checksum0000755000175000017500000000035012164561703025401 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_srm_get_checksum gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-access-posix-srm-write0000755000175000017500000000035612164561703026561 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_access_posix_srm_write gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-getSURL0000755000175000017500000000035712164561703026456 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_common_lfc_getSURL gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-select-best-protocol-and-endpointG0000755000175000017500000000037712164561703031701 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_select_best_protocol_and_endpointG gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-write-posix-lfc-simple0000755000175000017500000000035612164561703026554 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_write_posix_lfc_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-stat-guid0000755000175000017500000000035512164561703026255 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__gfal_posix_stat_guid gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-access-posix-srm-read0000755000175000017500000000035512164561703026341 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_access_posix_srm_read gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-get-cat-type0000755000175000017500000000034412164561703024531 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_get_cat_type gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-common-lfc-getcomment0000755000175000017500000000035512164561703026422 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_common_lfc_getcomment gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-access-posix-guid-write0000755000175000017500000000035712164561703026711 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_access_posix_guid_write gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-init0000755000175000017500000000035412164561703026131 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_common_lfc_init gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-gfal2-test-check-bdii-endpoints-srm-ng0000755000175000017500000000037112164561703030403 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_gfal2_test_check_bdii_endpoints_srm_ng gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-read-posix-guid-simple0000755000175000017500000000035612164561703026521 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_read_posix_guid_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-define-env0000755000175000017500000000036212164561703027205 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_common_lfc_define_env gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-open-posix-guid-simple0000755000175000017500000000035612164561703026547 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_open_posix_guid_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-get-hostname-from-surl0000755000175000017500000000036312164561703027455 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_get_hostname_from_surl gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/test-posix-set-get-false-parameter0000755000175000017500000000035712164561703027017 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose test_posix_set_get_false_parameter gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-create-srm-handle0000755000175000017500000000035112164561703025517 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_create_srm_handle gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-get-endpoint-and-setype-from-bdiiG0000755000175000017500000000037712164561703031564 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_get_endpoint_and_setype_from_bdiiG gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-open-posix-all-simple0000755000175000017500000000035512164561703026366 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_open_posix_all_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-srm-getTURLS-pipeline-success0000755000175000017500000000037212164561703030617 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_srm_getTURLS_pipeline_success gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/test-gskiplist-insert-get-clean0000755000175000017500000000035412164561703026406 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose test_gskiplist_insert_get_clean gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-lstat-srm0000755000175000017500000000035512164561703026302 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__gfal_posix_lstat_srm gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-access-posix-guid-exist0000755000175000017500000000035712164561703026713 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_access_posix_guid_exist gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-srm-getTURLS-one-success0000755000175000017500000000036512164561703027575 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_srm_getTURLS_one_success gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-access-posix-lfn-exist0000755000175000017500000000035612164561703026541 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_access_posix_lfn_exist gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-stat-lfc0000755000175000017500000000035412164561703026070 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__gfal_posix_stat_lfc gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--gfal-common-lfc-rename0000755000175000017500000000035712164561703026515 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__gfal_common_lfc_rename gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-plugin-url-checker0000755000175000017500000000035212164561703025725 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_plugin_url_checker gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--gfal-common-lfc-statg0000755000175000017500000000035612164561703026367 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__gfal_common_lfc_statg gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/test-gskiplist-insert-len0000755000175000017500000000034612164561703025326 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose test_gskiplist_insert_len gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-common-lfc-setcomment0000755000175000017500000000035512164561703026436 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_common_lfc_setcomment gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-chmod-read-guid0000755000175000017500000000036312164561703027304 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__gfal_posix_chmod_read_guid gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--plugin-stat0000755000175000017500000000034412164561703024552 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__plugin_stat gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-access-posix-lfn-read0000755000175000017500000000035512164561703026317 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_access_posix_lfn_read gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-access-posix-srm-exist0000755000175000017500000000035612164561703026563 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_access_posix_srm_exist gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/test-gskiplist-create-delete0000755000175000017500000000035112164561703025745 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose test_gskiplist_create_delete ././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootgfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-auto-get-srm-endpoint-full-endpoint-with-no-bdiiGgfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-auto-get-srm-endpoint-full-endpoint-wi0000755000175000017500000000041612164561703032472 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_auto_get_srm_endpoint_full_endpoint_with_no_bdiiG gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-access-posix-lfn-write0000755000175000017500000000035612164561703026537 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_access_posix_lfn_write gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-common-lfc-checksum0000755000175000017500000000035312164561703026060 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_common_lfc_checksum gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--mkdir-posix-srm-simple0000755000175000017500000000035712164561703026643 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__mkdir_posix_srm_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-srm-getTURLS-bad-urls0000755000175000017500000000036212164561703027054 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_srm_getTURLS_bad_urls gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-read-posix-srm-simple0000755000175000017500000000035512164561703026371 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_read_posix_srm_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-verbose-set-get0000755000175000017500000000034712164561703025244 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_verbose_set_get gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/test-gskiplist-insert-multi0000755000175000017500000000035012164561703025675 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose test_gskiplist_insert_multi gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-full-endpoint-checkG0000755000175000017500000000036112164561703027076 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_full_endpoint_checkG ././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootgfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-gfal2-test-gfal-common-lfc-access-guid-file-existgfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-gfal2-test-gfal-common-lfc-access-guid-file-exis0000755000175000017500000000040412164561703032225 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_gfal2_test_gfal_common_lfc_access_guid_file_exist gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--gfal-convert-full-surl0000755000175000017500000000035712164561703026621 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__gfal_convert_full_surl gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/test-posix-set-get-parameter0000755000175000017500000000035112164561703025721 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose test_posix_set_get_parameter gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--plugin-lstat0000755000175000017500000000034512164561703024727 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__plugin_lstat gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-plugin-access-file0000755000175000017500000000035212164561703025677 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_plugin_access_file gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-access0000755000175000017500000000035612164561703026431 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_common_lfc_access gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-srm-determine-endpoint-full-endpointG0000755000175000017500000000040212164561703032406 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_srm_determine_endpoint_full_endpointG gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-chmod-write-lfn0000755000175000017500000000036312164561703027352 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__gfal_posix_chmod_write_lfn gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--readdir-posix-srm-simple-mock0000755000175000017500000000036612164561703030076 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__readdir_posix_srm_simple_mock gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/test-posix-set-get-infosys-parameter0000755000175000017500000000036112164561703027412 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose test_posix_set_get_infosys_parameter gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-srm-api-no-glib-full0000755000175000017500000000035412164561703026064 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_srm_api_no_glib_full gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-check-filename0000755000175000017500000000036612164561703030024 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_common_lfc_check_filename gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/test-gskiplist-insert-search-remove0000755000175000017500000000036012164561703027304 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose test_gskiplist_insert_search_remove gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-resolve-sym0000755000175000017500000000036312164561703027453 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_common_lfc_resolve_sym gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-pread-posix-lfc-simple0000755000175000017500000000035612164561703026515 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_pread_posix_lfc_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-access-posix-guid-read0000755000175000017500000000035612164561703026471 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_access_posix_guid_read gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-chmod-srm0000755000175000017500000000035512164561703026245 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__gfal_posix_chmod_srm gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-pread-posix-srm-simple0000755000175000017500000000035612164561703026552 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_pread_posix_srm_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-no-exist0000755000175000017500000000036012164561703026731 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_gfal_common_lfc_no_exist gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-open-posix-srm-simple0000755000175000017500000000035512164561703026417 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_open_posix_srm_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--dir-file-descriptor-low0000755000175000017500000000036012164561703026747 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__dir_file_descriptor_low gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-load-plugin0000755000175000017500000000034312164561703024440 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_load_plugin gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-read-posix-lfc-simple0000755000175000017500000000035512164561703026334 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_read_posix_lfc_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-chmod-read-lfn0000755000175000017500000000036212164561703027132 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__gfal_posix_chmod_read_lfn gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-pwrite-posix-srm-simple0000755000175000017500000000035712164561703026772 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_pwrite_posix_srm_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--opendir-posix-lfc-simple0000755000175000017500000000036112164561703027133 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__opendir_posix_lfc_simple gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-lstat-lfc0000755000175000017500000000035512164561703026245 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__gfal_posix_lstat_lfc gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/test-posix-set-get-lfc-host-parameter0000755000175000017500000000036212164561703027440 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose test_posix_set_get_lfc_host_parameter gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-stat-srm0000755000175000017500000000035412164561703026125 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test__gfal_posix_stat_srm gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-check-bdii-endpoints-srm0000755000175000017500000000036012164561703027006 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_check_bdii_endpoints_srm gfal2-2.3.0/dist/usr/share/gfal2/tests/mocked/gfal2-test-pread-posix-guid-simple0000755000175000017500000000035712164561703026702 0ustar ellertellert#!/bin/bash source /etc/profile export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export LFC_HOST=cvitblfc1.cern.ch export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/lib64/: `dirname $0`/test_verbose gfal2_test_pread_posix_guid_simple gfal2-2.3.0/dist/usr/include/0000755000175000017500000000000012164561703015253 5ustar ellertellertgfal2-2.3.0/dist/usr/include/gfal2/0000755000175000017500000000000012164561703016246 5ustar ellertellertgfal2-2.3.0/dist/usr/include/gfal2/posix/0000755000175000017500000000000012164561703017410 5ustar ellertellertgfal2-2.3.0/dist/usr/include/gfal2/common/0000755000175000017500000000000012164561703017536 5ustar ellertellertgfal2-2.3.0/dist/usr/lib64/0000755000175000017500000000000012164561703014550 5ustar ellertellertgfal2-2.3.0/dist/usr/lib64/pkgconfig/0000755000175000017500000000000012164561703016517 5ustar ellertellertgfal2-2.3.0/dist/etc/0000755000175000017500000000000012164561703013572 5ustar ellertellertgfal2-2.3.0/dist/etc/gfal2.d/0000755000175000017500000000000012164561703015007 5ustar ellertellertgfal2-2.3.0/dist/etc/gfal2.d/dcap_plugin.conf0000644000175000017500000000025712164561703020147 0ustar ellertellert# # basic configuration for the gfal 2 DCAP plugin [DCAP PLUGIN] # set the passive mode enabled or now # active mode can cause troubles with firewalls MODE_PASSIVE=TRUE gfal2-2.3.0/dist/etc/gfal2.d/rfio_plugin.conf0000644000175000017500000000026712164561703020200 0ustar ellertellert# # basic configuration for the gfal 2 rfio plugin [RFIO PLUGIN] # type of RFIO library to use ( cf : rfio castor vs rfio dpm ) # value can be castor or dpm LCG_RFIO_TYPE="dpm" gfal2-2.3.0/dist/etc/gfal2.d/srm_plugin.conf0000644000175000017500000000124712164561703020041 0ustar ellertellert# # basic configuration for the gfal 2 srm plugin [SRM PLUGIN] # timeout for SRM operations in secondes OPERATION_TIMEOUT=180 # timeout for the HTTP connexion in sec CONN_TIMEOUT=60 # default checksum type for transfer check COPY_CHECKSUM_TYPE=ADLER32 # ordered list of turls protocols for remote I/O # the top priority protocol is the first one TURL_PROTOCOLS=rfio;gsidcap;dcap;kdcap;gsiftp # ordered list of turls protocols for third party transfer # only protocol supporting third party copy should be here # the top priority protocol is the first one TURL_3RD_PARTY_PROTOCOLS=gsiftp # enable or disable the srm session re-use # no parameter : disabled KEEP_ALIVE=true gfal2-2.3.0/dist/etc/gfal2.d/bdii.conf0000644000175000017500000000037112164561703016566 0ustar ellertellert# # basic configuration for the gfal 2 BDII related options ( infirmation system for wlcg ) [BDII] # enable or disable bdii query system ( default : enabled ) ENABLED=true # default BDII server to contact LCG_GFAL_INFOSYS=lcg-bdii.cern.ch:2170 gfal2-2.3.0/dist/etc/gfal2.d/http_plugin.conf0000644000175000017500000000012412164561703020210 0ustar ellertellert## configuration file for http plugin ## [HTTP PLUGIN] ## ## I will be back ! gfal2-2.3.0/dist/etc/gfal2.d/gfal2_core.conf0000644000175000017500000000011212164561703017653 0ustar ellertellert# # Core configuration of GFAL 2.0 [CORE] # # nothing special for now gfal2-2.3.0/dist/etc/gfal2.d/lfc_plugin.conf0000644000175000017500000000047212164561703020003 0ustar ellertellert# # basic configuration for the gfal 2 lfc plugin [LFC PLUGIN] # Logical File Catalog hostname # default is the central one, at cern LFC_HOST=prod-lfc-shared-central.cern.ch # connexion timeout in second LFC_CONNTIMEOUT=15 # maximum number of try for opening a connexion LFC_CONRETRY=2 # LFC_CONRETRYINT=1 gfal2-2.3.0/dist/etc/gfal2.d/gsiftp_plugin.conf0000644000175000017500000000163712164561703020537 0ustar ellertellert# # basic configuration for the gfal 2 griftp plugin [GRIDFTP PLUGIN] # enable or disable gridFTPv2 support GRIDFTP_V2=true # enable or disable session re-use support # warning : disable this feature can slow-down a lot the performances SESSION_REUSE=false # default number of streams used for file transfers # 0 means in-order-stream mode RD_NB_STREAM=0 # default checksum algorithm type used for transfer content verification COPY_CHECKSUM_TYPE=ADLER32 # enable or disable the encryption for the data channel DCAU=false # enable or disable the ipv6 support IPV6=false # define the maximum time in s # for a gsiftp checksum request CHECKSUM_CALC_TIMEOUT=1800 # maximum time between two performance markers # disable if equal to 0 PERF_MARKER_TIMEOUT=360 ## enable or disable the delay passive option of gridftpv2 ## this option need to be enabled to support the gridftp redirection features DELAY_PASSV=true gfal2-2.3.0/dist/etc/gfal2/0000755000175000017500000000000012164561703014565 5ustar ellertellertgfal2-2.3.0/dist/include/0000755000175000017500000000000012164561703014442 5ustar ellertellertgfal2-2.3.0/dist/include/gfal2/0000755000175000017500000000000012164561703015435 5ustar ellertellertgfal2-2.3.0/dist/include/gfal2/posix/0000755000175000017500000000000012164561703016577 5ustar ellertellertgfal2-2.3.0/dist/include/gfal2/common/0000755000175000017500000000000012164561703016725 5ustar ellertellertgfal2-2.3.0/dist/lib64/0000755000175000017500000000000012164561703013737 5ustar ellertellertgfal2-2.3.0/dist/lib64/pkgconfig/0000755000175000017500000000000012164561703015706 5ustar ellertellertgfal2-2.3.0/src/0000755000175000017500000000000012164561703012643 5ustar ellertellertgfal2-2.3.0/src/config/0000755000175000017500000000000012164561703014110 5ustar ellertellertgfal2-2.3.0/src/config/CMakeLists.txt0000644000175000017500000000037312164561703016653 0ustar ellertellert## default set of build ## defaults sources FILE(GLOB src_config_f "*.c" ) SET(src_config ${src_config_f} PARENT_SCOPE) FILE(GLOB header_config "gfal_config.h") install(FILES ${header_config} DESTINATION ${INCLUDE_INSTALL_DIR}/gfal2/config) gfal2-2.3.0/src/config/gfal_config.h0000644000175000017500000001515212164561703016523 0ustar ellertellert#pragma once #ifndef GFAL_CONFIG_H #define GFAL_CONFIG_H /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #ifdef __cplusplus extern "C" { #endif // __cplusplus /** * @file gfal_config.h * @brief gfal2 configuration API * set/get option for the running configuration of GFAL 2.0 * @author Adrien Devresse */ /** * @brief get a string parameter in the current GFAL 2.0 configuration * see gfal2.d configuration files or gfal 2.0 documentation to know group/key/values * * @param handle : context of gfal 2.0 * @param group_name : group name of the parameter * @param key : key of the parameter * @param error : GError error report system * @return parameter value **/ gchar * gfal2_get_opt_string(gfal2_context_t handle, const gchar *group_name, const gchar *key, GError **error); /** * @brief set a string parameter in the current GFAL 2.0 configuration * see gfal2.d configuration files or gfal 2.0 documentation to know group/key/values * * @param handle : context of gfal 2.0 * @param group_name : group name of the parameter * @param key : key of the parameter * @param value : value to set * @param error : GError error report system * @return parameter value **/ gint gfal2_set_opt_string(gfal2_context_t handle, const gchar *group_name, const gchar *key, gchar* value, GError **error); /** * @brief get an integer parameter in the current GFAL 2.0 configuration * see gfal2.d configuration files or gfal 2.0 documentation to know group/key/values * * @param handle : context of gfal 2.0 * @param group_name : group name of the parameter * @param key : key of the parameter * @param error : GError error report system * @return parameter value **/ gint gfal2_get_opt_integer(gfal2_context_t handle, const gchar *group_name, const gchar *key, GError **error); /** * @brief similar to \ref gfal2_get_opt_integer but return a default value if * an error occures * * @param handle : context of gfal 2.0 * @param group_name : group name of the parameter * @param key : key of the parameter * @param default_value : default value returned if not present * @return parameter value **/ gint gfal2_get_opt_integer_with_default(gfal2_context_t context, const gchar *group_name, const gchar *key, gint default_value); /** * @brief set an integer parameter in the current GFAL 2.0 configuration * see gfal2.d configuration files or gfal 2.0 documentation to know group/key/values * * @param handle : context of gfal 2.0 * @param group_name : group name of the parameter * @param key : key of the parameter * @param value : value to set * @param error : GError error report system * @return parameter value **/ gint gfal2_set_opt_integer(gfal2_context_t handle, const gchar *group_name, const gchar *key, gint value, GError** error); /** * @brief set a boolean parameter in the current GFAL 2.0 configuration * see gfal2.d configuration files or gfal 2.0 documentation to know group/key/values * * @param handle : context of gfal 2.0 * @param group_name : group name of the parameter * @param key : key of the parameter * @param value : value to set * @param error : GError error report system * @return parameter value **/ gint gfal2_set_opt_boolean(gfal2_context_t handle, const gchar *group_name, const gchar *key, gboolean value, GError **error); /** * @brief get a boolean parameter in the current GFAL 2.0 configuration * see gfal2.d configuration files or gfal 2.0 documentation to know group/key/values * * @param handle : context of gfal 2.0 * @param group_name : group name of the parameter * @param key : key of the parameter * @param error : GError error report system * @return parameter value **/ gboolean gfal2_get_opt_boolean(gfal2_context_t handle, const gchar *group_name, const gchar *key, GError **error); /** * @brief similar to \ref gfal2_get_opt_boolean but return a default value if * an error occures * * @param handle : context of gfal 2.0 * @param group_name : group name of the parameter * @param key : key of the parameter * @param bool : default value returned if not present * @return parameter value **/ gboolean gfal2_get_opt_boolean_with_default(gfal2_context_t handle, const gchar *group_name, const gchar *key, gboolean default_value); /** * @brief set a list of string parameter in the current GFAL 2.0 configuration * see gfal2.d configuration files or gfal 2.0 documentation to know group/key/values * * @param handle : context of gfal 2.0 * @param group_name : group name of the parameter * @param key : key of the parameter * @param value : value to set * @param error : GError error report system * @return parameter value **/ gint gfal2_set_opt_string_list(gfal_handle handle, const gchar *group_name, const gchar *key, const gchar * const list[], gsize length, GError ** error); /** * @brief get a list of string parameter in the current GFAL 2.0 configuration * see gfal2.d configuration files or gfal 2.0 documentation to know group/key/values * * @param handle : context of gfal 2.0 * @param group_name : group name of the parameter * @param key : key of the parameter * @param error : GError error report system * @return parameter value **/ gchar ** gfal2_get_opt_string_list(gfal_handle handle, const gchar *group_name, const gchar *key, gsize *length, GError **error); gchar ** gfal2_get_opt_string_list_with_default(gfal_handle handle, const gchar *group_name, const gchar *key, gsize *length, char** default_value); #ifdef __cplusplus } #endif // __cplusplus #endif /* GFAL_CONFIG_H */ gfal2-2.3.0/src/config/gfal_config.c0000644000175000017500000002615312164561703016521 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #ifndef GFAL_CONFIG_DIR_DEFAULT #error "GFAL_CONFIG_DIR_DEFAULT should be define at compile time" #endif const gchar* config_env_var = GFAL_CONFIG_DIR_ENV; const gchar* default_config_dir = GFAL_CONFIG_DIR_DEFAULT "/" GFAL_CONFIG_DIR_SUFFIX "/"; GQuark gfal_quark_config_loader(){ return g_quark_from_static_string("Gfal2::common_config_loader"); } gfal_conf_t gfal_handle_to_conf(gfal_handle h){ return h->conf; } static gchar* check_configuration_dir(GError ** err){ struct stat st; int res; gchar* dir_config = NULL; const gchar * env_str = g_getenv(config_env_var); if(env_str != NULL){ gfal_log(GFAL_VERBOSE_TRACE, " %s env var found, try to load configuration from %s", config_env_var, env_str); dir_config = g_strdup(env_str); }else{ gfal_log(GFAL_VERBOSE_TRACE, " no %s env var found, try to load configuration from default directory %s", config_env_var, default_config_dir); dir_config = g_strdup(default_config_dir); } res = stat(dir_config, &st); if( res != 0 || S_ISDIR(st.st_mode) == FALSE){ g_set_error(err, gfal_quark_config_loader(),EINVAL, " %s is not a valid directory for " "gfal2 configuration files, please specify %s properly", dir_config, config_env_var); g_free(dir_config); dir_config = NULL; } return dir_config; } int gfal_load_configuration_to_conf_manager(GConfigManager_t manager, const gchar * path, GError ** err){ GKeyFile * conf_file = g_key_file_new(); int res = 0; GError * tmp_err1=NULL, *tmp_err2=NULL; if(g_key_file_load_from_file (conf_file, path, G_KEY_FILE_NONE, &tmp_err1) == FALSE){ res = -1; g_set_error(&tmp_err2, gfal_quark_config_loader(), EFAULT, "Error while loading configuration file %s : %s", path, tmp_err1->message); g_clear_error(&tmp_err1); }else{ g_config_manager_prepend_keyvalue(manager, conf_file); } G_RETURN_ERR(res, tmp_err2, err); } gboolean is_config_dir(const char* conffile){ char* p=NULL; if( (p = strstr(conffile, ".conf")) != NULL){ if( *(p+5) == '\0') return TRUE; } return FALSE; } GConfigManager_t gfal_load_static_configuration(GError ** err){ GError * tmp_err=NULL; gchar* dir_config = NULL; GConfigManager_t res = g_config_manager_new(); if( (dir_config = check_configuration_dir(&tmp_err)) != NULL){ DIR* d = opendir(dir_config); struct dirent* dirinfo; if(d != NULL){ while( (dirinfo = readdir(d)) != NULL){ if( is_config_dir(dirinfo->d_name)){ char buff[strlen(dir_config)+strlen(dirinfo->d_name) +2]; strcpy(buff, dir_config); strcat(buff,"/"); strcat(buff, dirinfo->d_name); gfal_log(GFAL_VERBOSE_TRACE, " try to load configuration file %s ...", buff); if(gfal_load_configuration_to_conf_manager(res, buff, &tmp_err) != 0) break; } } closedir(d); }else{ g_set_error(&tmp_err, gfal_quark_config_loader(), ENOENT, "Unable to open configuration directory %s", dir_config); } g_free(dir_config); } if(tmp_err){ g_config_manager_delete_full(res); res = NULL; } G_RETURN_ERR(res, tmp_err, err); } gfal_conf_t gfal_conf_new(GError ** err){ GError * tmp_err=NULL; gfal_conf_t res = g_new0(struct _gfal_conf, 1); res->running_config= g_key_file_new(); g_key_file_load_from_data(res->running_config, " ", 1, G_KEY_FILE_NONE, NULL); res->running_manager = g_config_manager_new(); res->static_manager= gfal_load_static_configuration(&tmp_err); //g_mutex_init(&(res->mux)); if(tmp_err){ gfal_conf_delete(res); res = NULL; }else{ // add the running config to the configuration manager g_config_manager_prepend_manager(res->running_manager, res->static_manager); g_config_manager_prepend_keyvalue(res->running_manager, res->running_config); } G_RETURN_ERR(res, tmp_err, err); } void gfal_conf_delete(gfal_conf_t conf){ if(conf){ // g_mutex_clear(&(conf->mux)); g_config_manager_delete(conf->static_manager); g_config_manager_delete_full(conf->running_manager); g_free(conf); } } void gfal_config_propagate_error_external(GError ** err, GError ** tmp_err){ if(tmp_err && *tmp_err){ g_set_error(err, gfal_quark_config_loader(), EINVAL, " Configuration Error : %s", (*tmp_err)->message); g_clear_error(tmp_err); } } gchar * gfal2_get_opt_string(gfal_handle handle, const gchar *group_name, const gchar *key, GError **error){ g_assert(handle != NULL); GError * tmp_err=NULL; gfal_conf_t c = gfal_handle_to_conf(handle); gchar * res = g_config_manager_get_string(c->running_manager, group_name, key, &tmp_err); gfal_config_propagate_error_external(error, &tmp_err); return res; } gint gfal2_set_opt_string(gfal_handle handle, const gchar *group_name, const gchar *key, gchar* value, GError **error){ g_assert(handle != NULL); GError * tmp_err=NULL; gfal_conf_t c = gfal_handle_to_conf(handle); gint res = g_config_manager_set_string(c->running_manager, group_name, key, value, &tmp_err); gfal_config_propagate_error_external(error, &tmp_err); return res; } gint gfal2_get_opt_integer(gfal_handle handle, const gchar *group_name, const gchar *key, GError **error){ g_assert(handle != NULL); GError * tmp_err=NULL; gfal_conf_t c = gfal_handle_to_conf(handle); gint res = g_config_manager_get_integer(c->running_manager, group_name, key, &tmp_err); gfal_config_propagate_error_external(error, &tmp_err); return res; } gint gfal2_get_opt_integer_with_default(gfal2_context_t context, const gchar *group_name, const gchar *key, gint default_value){ GError * tmp_err=NULL; gint res = gfal2_get_opt_integer(context, group_name, key, &tmp_err); if(tmp_err){ gfal_log(GFAL_VERBOSE_DEBUG, " impossible to get integer parameter %s:%s, set to default value %d, err %s", group_name, key, default_value, tmp_err->message ); g_clear_error(&tmp_err); res = default_value; } return res; } gint gfal2_set_opt_integer(gfal_handle handle, const gchar *group_name, const gchar *key, gint value, GError** error){ g_assert(handle != NULL); GError * tmp_err=NULL; gfal_conf_t c = gfal_handle_to_conf(handle); gint res = g_config_manager_set_integer(c->running_manager, group_name, key, value, &tmp_err); gfal_config_propagate_error_external(error, &tmp_err); return res; } gboolean gfal2_get_opt_boolean(gfal_handle handle, const gchar *group_name, const gchar *key, GError **error){ g_assert(handle != NULL); GError * tmp_err=NULL; gfal_conf_t c = gfal_handle_to_conf(handle); gboolean res = g_config_manager_get_boolean(c->running_manager, group_name, key, &tmp_err); gfal_config_propagate_error_external(error, &tmp_err); return res; } gboolean gfal2_get_opt_boolean_with_default(gfal2_context_t handle, const gchar *group_name, const gchar *key, gboolean default_value){ GError * tmp_err=NULL; gboolean res = gfal2_get_opt_boolean(handle, group_name, key, &tmp_err); if(tmp_err){ gfal_log(GFAL_VERBOSE_DEBUG, " impossible to get boolean parameter %s:%s, set to default value %s, err %s",group_name, key, ((default_value)?"TRUE":"FALSE"), tmp_err->message ); g_clear_error(&tmp_err); res = default_value; } return res; } gint gfal2_set_opt_boolean(gfal_handle handle, const gchar *group_name, const gchar *key, gboolean value, GError **error){ g_assert(handle != NULL); GError * tmp_err=NULL; gfal_conf_t c = gfal_handle_to_conf(handle); gint res = g_config_manager_set_boolean(c->running_manager, group_name, key, value, &tmp_err); gfal_config_propagate_error_external(error, &tmp_err); return res; } gchar ** gfal2_get_opt_string_list(gfal_handle handle, const gchar *group_name, const gchar *key, gsize *length, GError **error){ g_assert(handle != NULL); GError * tmp_err=NULL; gfal_conf_t c = gfal_handle_to_conf(handle); gchar** res = g_config_manager_get_string_list(c->running_manager, group_name, key, length, &tmp_err); gfal_config_propagate_error_external(error, &tmp_err); return res; } gint gfal2_set_opt_string_list(gfal_handle handle, const gchar *group_name, const gchar *key, const gchar * const list[], gsize length, GError ** error){ g_assert(handle != NULL); GError * tmp_err=NULL; gfal_conf_t c = gfal_handle_to_conf(handle); gint res = g_config_manager_set_string_list(c->running_manager, group_name, key, list, length, &tmp_err); gfal_config_propagate_error_external(error, &tmp_err); return res; } gchar ** gfal2_get_opt_string_list_with_default(gfal_handle handle, const gchar *group_name, const gchar *key, gsize *length, char** default_value){ GError * tmp_err=NULL; gchar** res = gfal2_get_opt_string_list(handle, group_name, key, length, &tmp_err); if(tmp_err){ if(gfal_get_verbose() >= GFAL_VERBOSE_DEBUG){ gchar* list_default = g_strjoinv (",", default_value); gfal_log(GFAL_VERBOSE_DEBUG, " impossible to get string_list parameter %s:%s, set to a default value %s, err %s",group_name, key, list_default, tmp_err->message ); g_free(list_default); } g_clear_error(&tmp_err); res = g_strdupv(default_value); } return res; } gfal2-2.3.0/src/config/gfal_config_internal.h0000644000175000017500000000205312164561703020413 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file gfal_common_config.h * @author Devresse Adrien * @version 1.0 * @date 04/11/2011 * */ #include #include #include // create or delete configuration manager for gfal 2.0, internal gfal_conf_t gfal_conf_new(); void gfal_conf_delete(gfal_conf_t conf); GQuark gfal_quark_config_loader(); gfal2-2.3.0/src/logger/0000755000175000017500000000000012164561703014122 5ustar ellertellertgfal2-2.3.0/src/logger/gfal_logger.h0000644000175000017500000000422612164561703016547 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file gfal_logger.h * @brief log functions * @author Devresse Adrien * */ #include #include #ifdef __cplusplus extern "C" { #endif //! \def GFAL_VERBOSE_NORMAL only errors are printed #define GFAL_VERBOSE_NORMAL 0x00 //! \def GFAL_VERBOSE_VERBOSE a bit more verbose information is printed #define GFAL_VERBOSE_VERBOSE 0x01 //! \def GFAL_VERBOSE_DEBUG extra information is printed #define GFAL_VERBOSE_DEBUG 0x02 //! \def GFAL_VERBOSE_TRACE execution trace internal to GFAL 2.0 #define GFAL_VERBOSE_TRACE 0x08 //! \def GFAL_VERBOSE_TRACE_PLUGIN log all the plugin related debug information #define GFAL_VERBOSE_TRACE_PLUGIN 0x04 /** * \brief print error message with the gfal2 logger */ void gfal_log(int verbose_lvl,const char* msg, ...); /** * \brief set the current log level * log level can be a combinaison of GFAL_VERBOSE_* flags */ int gfal_set_verbose (int value); /** * \brief get the current log level * log level can be a combinaison of GFAL_VERBOSE_* flags */ int gfal_get_verbose(); /** * define a log handler for the gfal messages * see Glib 2.0 message logging system for more informations about log_func * * internally, GFAL 2.0 use the glib 2.0 log system with the "GFAL2" domain : * usual glib 2.0 functions can be used to control the GFAL 2.0 messages flow. **/ guint gfal_log_set_handler(GLogFunc log_func, gpointer user_data); #ifdef __cplusplus } #endif gfal2-2.3.0/src/logger/gfal_logger.c0000644000175000017500000000454712164561703016550 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file gfal_logger.c * @brief log functions * @author Devresse Adrien * */ #include #include #include #include #include "gfal_logger.h" const char* gfal2_log_prefix = "GFAL2"; /* * Verbose level * API mode (no messages on stderr) by default * CLI has to set it to '0' to get normal error messages */ static int gfal_verbose = 0; /** * \brief return verbose mode level */ int gfal_get_verbose(){ return gfal_verbose; } /** * set the verbose level of gfal 2 */ int gfal_set_verbose (int value) { if (value < 0) return (-1); gfal_verbose = value; return (0); } void gfal_internal_logger(const int verbose_lvl, const char* msg, va_list args){ GLogLevelFlags log_level=G_LOG_LEVEL_MESSAGE; g_logv(gfal2_log_prefix, log_level, msg, args); } guint gfal_log_set_handler(GLogFunc log_func, gpointer user_data){ return g_log_set_handler (gfal2_log_prefix, G_LOG_LEVEL_MASK, log_func, user_data); } /** * \brief display a verbose message * * msg is displayed if current verbose level is superior to verbose mode specified * */ void gfal_log(int verbose_lvl, const char* msg, ...){ if(verbose_lvl & gfal_get_verbose() ){ char tab[GFAL_ERRMSG_LEN]; struct timespec current_time; clock_gettime(CLOCK_REALTIME, ¤t_time); double real_time = ( current_time.tv_sec) + ((double) current_time.tv_nsec) / 1000000000.0; snprintf(tab, GFAL_ERRMSG_LEN," %s", real_time, (unsigned long) pthread_self(), msg); va_list args; va_start(args, msg); gfal_internal_logger(verbose_lvl, tab, args); va_end(args); } } gfal2-2.3.0/src/CMakeLists.txt0000644000175000017500000001565212164561703015414 0ustar ellertellert## default set of build SET(IS_IFCE FALSE) # subdir import add_subdirectory(global) add_subdirectory(config) add_subdirectory(file) add_subdirectory(cancel) add_subdirectory(externals/utils) add_subdirectory(externals/g_config_manager) add_subdirectory(fdesc) ## defaults sources FILE(GLOB src_posix "posix/*.c") FILE(GLOB src_common "common/*.c") FILE(GLOB src_gsimplecache "externals/gsimplecache/*.c") #version sources FILE(GLOB src_version "version/*.c") #define lfc sources FILE(GLOB src_lfc "common/lfc/*.c") #define srm sources FILE(GLOB src_srm "common/srm/*.c") #define rfio sources FILE(GLOB src_rfio "common/rfio/*.c") #define dcap sources FILE(GLOB src_dcap "common/dcap/*.c") #define libcpp source FILE(GLOB src_libcpp "libcpp/*.cpp") #define logger source FILE(GLOB src_logger "logger/*.c") #define exceptions source FILE(GLOB src_exceptions "exceptions/*.cpp") # global headers SET(common_dir "common/") SET(posix_dir "posix/") SET(mds_dir "common/mds/") SET(global_dir ".") SET(externals_dir "externals/") # gfal2 link and link dir SET(gfal2_link "gfal2") LIST(APPEND headers_main ${common_dir} ${posix_dir} ${global_dir} ${mds_dir} ${externals_dir}) include_directories(${headers_main} ) add_definitions( -DVERSION="${VERSION_STRING}" -Wall ${GLIB2_PKG_CFLAGS} ${GTHREAD2_PKG_CFLAGS}) LIST(APPEND main_libs ${src_posix} ${src_common} ${src_global} ${src_config} ${src_uri} ${src_logger} ${src_g_shared_map} ${src_file} ${src_cancel}) IF (MAIN_CORE) add_library(gfal2 SHARED ${main_libs} ) target_link_libraries(gfal2 ${UUID_PKG_LIBRARIES} "stdc++" ) # hotfix for libc TLS init bug in EPEL 5 target_link_libraries(gfal2 ${GLIB2_PKG_LIBRARIES} ${GTHREAD2_PKG_LIBRARIES} "dl" ) set_target_properties(gfal2 PROPERTIES VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH} SOVERSION ${VERSION_MAJOR} CLEAN_DIRECT_OUTPUT 1 OUTPUT_NAME ${OUTPUT_NAME_MAIN} ) add_PkgConfigFile_for_Library("gfal2.pc" gfal2 HEADER_DIRS "gfal2" CFLAGS " -D_FILE_OFFSET_BITS=64 " DESCRIPTION "GFAL 2.0 pkgconfig file" REQUIRES "glib-2.0") add_executable(gfal2_version ${src_version}) target_link_libraries(gfal2_version "gfal2") install(TARGETS gfal2 gfal2_version RUNTIME DESTINATION ${BIN_INSTALL_DIR} LIBRARY DESTINATION ${LIB_INSTALL_DIR} ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gfal2.pc DESTINATION ${PKGCONFIG_FILES_DIR}) install(FILES "gfal_api.h" "gfal_plugins_api.h" DESTINATION ${INCLUDE_INSTALL_DIR}/gfal2/ ) # install headers main install(FILES "logger/gfal_logger.h" DESTINATION ${INCLUDE_INSTALL_DIR}/gfal2/logger ) # install headers posix install(FILES "posix/gfal_posix_api.h" DESTINATION ${INCLUDE_INSTALL_DIR}/gfal2/posix ) # install headers posix install(FILES "common/gfal_constants.h" "common/gfal_common_plugin_interface.h" "common/gfal_prototypes.h" "common/gfal_common_plugin.h" "common/gfal_types.h" DESTINATION ${INCLUDE_INSTALL_DIR}/gfal2/common ) # install headers common FILE(GLOB l_examples "../testing/example/*.c") install(FILES ${l_examples} DESTINATION ${DOC_INSTALL_DIR}/examples/ ) # install examples install(FILES "global/gfal_global.h" DESTINATION ${INCLUDE_INSTALL_DIR}/gfal2/global) install(FILES "externals/g_config_manager/g_config_manager.h" DESTINATION ${INCLUDE_INSTALL_DIR}/gfal2/g_config_manager) ENDIF (MAIN_CORE) IF(PLUGIN_LFC) find_package(LFC REQUIRED) find_package(DPM REQUIRED) # lfc headers SET(lfc_dir "common/lfc/") SET(lfc_headers_dir "${LFC_INCLUDE}/lfc/") #lcgdm headers SET(lcgdm_headers_dir "${DPM_INCLUDE}/lcgdm/") add_definitions( -D_REENTRANT) add_library(plugin_lfc SHARED ${src_lfc} ${src_gsimplecache}) target_link_libraries(plugin_lfc ${gfal2_link} ${LFC_LIBRARIES} ${UUID_PKG_LIBRARIES} ) include_directories(${LFC_INCLUDE_DIR} ${LCGDM_INCLUDE_DIR} ${UUID_PKG_INCLUDE_DIR}) set_target_properties(plugin_lfc PROPERTIES CLEAN_DIRECT_OUTPUT 1 OUTPUT_NAME ${OUTPUT_NAME_LFC} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/plugins ) install(TARGETS plugin_lfc LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR} ) install(FILES "common/lfc/README_PLUGIN_LFC" DESTINATION ${DOC_INSTALL_DIR}) ENDIF(PLUGIN_LFC) IF(PLUGIN_SRM) ## link to internal bdii system if IS_IFCE=false else to the is_interface IF (IS_IFCE) SET(is_ifce_link "is_ifce") add_definitions(-DMDS_BDII_EXTERNAL=1) SET(mds_source "common/mds/gfal_common_mds.c") ELSE (IS_IFCE) add_definitions(-DMDS_BDII_EXTERNAL=0) FILE(GLOB mds_source "common/mds/*.c") SET(is_ifce_link "ldap_r") ENDIF(IS_IFCE) add_definitions( ${SRM_IFCE_PKG_CFLAGS} ) include_directories( ${SRM_IFCE_PKG_INCLUDE_DIR} ${is_ifce_link}) add_library(plugin_srm SHARED ${src_srm} ${src_gsimplecache} ${src_uri} ${mds_source} ) target_link_libraries(plugin_srm ${gfal2_link} ${SRM_IFCE_PKG_LIBRARIES} ${is_ifce_link} gomp gfal2_transfer) set_target_properties(plugin_srm PROPERTIES CLEAN_DIRECT_OUTPUT 1 OUTPUT_NAME ${OUTPUT_NAME_SRM} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/plugins ) install(TARGETS plugin_srm LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR} ) install(FILES "common/srm/README_PLUGIN_SRM" DESTINATION ${DOC_INSTALL_DIR}) ENDIF(PLUGIN_SRM) IF(PLUGIN_RFIO) find_package(DPM REQUIRED) add_library(plugin_rfio SHARED ${src_rfio} ${src_gsimplecache} ) target_link_libraries(plugin_rfio ${gfal2_link} ${DPM_LIBRARIES} ) include_directories( ${DPM_INCLUDE_DIR} ) add_definitions( ${DPM_CFLAGS} ) set_target_properties(plugin_rfio PROPERTIES CLEAN_DIRECT_OUTPUT 1 OUTPUT_NAME ${OUTPUT_NAME_RFIO} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/plugins ) install(TARGETS plugin_rfio LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR} ) install(FILES "common/rfio/README_PLUGIN_RFIO" DESTINATION ${DOC_INSTALL_DIR}) ENDIF(PLUGIN_RFIO) IF(PLUGIN_DCAP) find_package(DCAP REQUIRED) add_definitions( -D_REENTRANT) add_library(plugin_dcap SHARED ${src_dcap} ${src_gsimplecache} ) target_link_libraries(plugin_dcap ${gfal2_link} ${DCAP_LIBRARIES}) include_directories( ${DCAP_INCLUDE_DIR} ) add_definitions( ${DCAP_CFLAGS} ) set_target_properties(plugin_dcap PROPERTIES CLEAN_DIRECT_OUTPUT 1 OUTPUT_NAME ${OUTPUT_NAME_DCAP} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/plugins ) install(TARGETS plugin_dcap LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR} ) install(FILES "common/dcap/README_PLUGIN_DCAP" DESTINATION ${DOC_INSTALL_DIR}) ENDIF(PLUGIN_DCAP) add_subdirectory(common/http) add_subdirectory(transfer) add_subdirectory(common/gridftp) add_subdirectory(common/file) gfal2-2.3.0/src/posix/0000755000175000017500000000000012164561703014005 5ustar ellertellertgfal2-2.3.0/src/posix/gfal_posix_open.c0000644000175000017500000000311612164561703017326 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_open.c * @brief file for the internal open function for the posix interface * @author Devresse Adrien * @version 2.0 * @date 31/05/2011 * */ #include #include #include #include #include #include #include #include "gfal_posix_internal.h" /* * Implementation of gfal_open * */ int gfal_posix_internal_open(const char* path, int flag, mode_t mode){ GError* tmp_err=NULL; gfal_handle handle; int key = -1; gfal_log(GFAL_VERBOSE_TRACE, "%s ->",__func__); if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } key = gfal2_open(handle, path, flag, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_open]", tmp_err); errno = tmp_err->code; }else errno=0; return key; } gfal2-2.3.0/src/posix/gfal_posix_rmdir.c0000644000175000017500000000277612164561703017515 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_rmdir.c * @brief file for the internal rmdir func of the posix interface * @author Devresse Adrien * @version 2.0 * @date 23/05/2011 * */ #include #include #include "gfal_posix_api.h" #include #include #include "gfal_posix_internal.h" #include #include /* * Implementation of the rmdir function * * */ int gfal_posix_internal_rmdir(const char* path){ GError* tmp_err=NULL; gfal_handle handle; int res= -1; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } res =gfal2_rmdir(handle, path, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_rmdir]", tmp_err); errno = tmp_err->code; } return res; } gfal2-2.3.0/src/posix/gfal_posix_unlink.c0000644000175000017500000000270412164561703017667 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_unlink.c * @brief file for the internal function of the POSIX unlink function * @author Devresse Adrien * @version 2.0 * @date 26/07/2011 * **/ #include #include #include #include #include #include #include #include "gfal_posix_internal.h" ssize_t gfal_posix_internal_unlink(const char* path){ gfal_handle handle; GError* tmp_err = NULL; ssize_t ret = -1; if( (handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } ret = gfal2_unlink(handle, path, &tmp_err); if(tmp_err){ // error reported gfal_posix_register_internal_error(handle, "[gfal_unlink]", tmp_err); errno = tmp_err->code; } return ret; } gfal2-2.3.0/src/posix/gfal_posix_stat.c0000644000175000017500000000367412164561703017351 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_stat.c * @brief file for the internal function of the POSIX stat/stat64 functions * @author Devresse Adrien * @version 2.0 * @date 13/05/2011 * **/ #include #include #include #include #include #include #include #include /* * internal implementation of gfal_access * */ inline int gfal_posix_internal_stat(const char* path, struct stat* buff){ gfal_handle handle; GError* tmp_err = NULL; int ret = -1; if( (handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } ret = gfal2_stat(handle, path, buff, &tmp_err); if(tmp_err){ // error reported gfal_posix_register_internal_error(handle, "[gfal_stat]", tmp_err); errno = tmp_err->code; } return ret; } inline int gfal_posix_internal_lstat(const char* path, struct stat* buff){ gfal_handle handle; GError* tmp_err = NULL; int ret = -1; if( (handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } ret = gfal2_lstat(handle, path, buff, &tmp_err); if(ret){ // error reported gfal_posix_register_internal_error(handle, "[gfal_lstat]", tmp_err); errno = tmp_err->code; } return ret; } gfal2-2.3.0/src/posix/gfal_posix_listxattr.c0000644000175000017500000000310212164561703020416 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_getxattr.c * @brief file for the internal function of the getxattr function * @author Devresse Adrien * @date 19/07/2011 * **/ #include #include #include #include #include #include #include "gfal_posix_internal.h" /* * list the extended attribute of a file, internal call * */ ssize_t gfal_posix_internal_listxattr (const char *path, char *list, size_t size){ GError* tmp_err=NULL; gfal_handle handle; ssize_t res= -1; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } res = gfal2_listxattr(handle, path, list, size, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_listxattr]", tmp_err); errno = tmp_err->code; } return res; } gfal2-2.3.0/src/posix/gfal_posix_api.h0000644000175000017500000005023712164561703017151 0ustar ellertellert#pragma once #ifndef _GFAL2_POSIX_API_ #define _GFAL2_POSIX_API_ /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file gfal_posix_api.h * @brief main header file for API of the posix lib * @author Devresse Adrien * @version 2.0.1 * @date 30/09/2011 * * */ #include #include #include #include #include #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif /*! \defgroup posix_group POSIX-like API */ /*! \addtogroup posix_group @{ */ /*! * Warnings about POSIX functions : some protocols do not permit a full POSIX support ( ex : no symlinks in srm:// URLs ) * In case of a call to a unsupported function, -1 code is return and an error is set to EPROTONOSUPPORT */ /*! * @brief change file access permissions * * gfal_chmod changes the permissions of each given file according to mode, * Similar behavior to the POSIX chmod ( man 2 chmod ) * * @param url : url of the file or the folder, can be in all supported protocols (lfn, srm, file, guid,..) * @param mode : right to configure * @return return 0 if success else -1 if errors occures. * In case of errors, see @ref gfal_posix_check_error() for error management */ int gfal_chmod(const char* url, mode_t mode); /*! * @brief change the name or location of a file * * gfal_rename will rename the specified files by replacing the first occurrence of from in their name by to. * gfal_rename implies two URL with the same protocols and generally on the same server. * Similar behavior to the POSIX rename ( man 2 rename ) * * @param oldurl : the old url of the file * @param newurl : the new url of the file * @return : return 0 if success, else -1 if errors. * In case of errors, see @ref gfal_posix_check_error() for error management */ int gfal_rename (const char *oldurl, const char * newurl); /** * @brief get the file status, follow links * * return informations about the given files * Similar behavior to the POSIX stat ( man 2 stat ) * * @param url : url of the file * @param st : pointer to an allocated struct stat * @return : return 0 if success, else -1 if errors. * In case of errors, see @ref gfal_posix_check_error() for error management */ int gfal_stat (const char * url, struct stat * st); /** * @brief get the file status, does not follow links * * return informations about the given files and links * Similar behavior to the POSIX lstat ( man 2 lstat ) * * In case of protocols without the support of links, GFAL 2.0 \ * convert this call to @ref gfal_stat * * * @param url : url of the file * @param st : pointer to an allocated struct stat * @return : return 0 if success, else -1 if errors. * In case of errors, see @ref gfal_posix_check_error() for error management */ int gfal_lstat (const char * url, struct stat * st); /** * @brief check user permissions for a file * * Similar behavior to the POSIX access ( man 2 access ) * * @param url : url of the file to access * @param amode : access mode to check (R_OK, W_OK, X_OK or F_OK) * @return This routine return 0 if the operation was successful, or -1 if error occured. * In case of errors, see @ref gfal_posix_check_error() for error management */ int gfal_access (const char * url , int amode); /** * @brief resolve a link destination * * Similar behavior to the POSIX readlink ( man 2 readlink ) * * Some protocols can not support this functionality, \ * check the protocol specification for more information. * * @param url : url of the file to access, can be in supported protocols (lfn, srm, file, guid,..) * @param buff : buffer to fill * @param buffsiz : maximum size of the link destination * @return This routine return the size of the link destination \ * if the operation was successful, or -1 if error occured. * In case of errors, see @ref gfal_posix_check_error() for error management */ ssize_t gfal_readlink(const char* url, char* buff, size_t buffsiz); /** * @brief create a symbolic link * * Similar behavior to the POSIX symlink ( man 2 symlink ) * * Some protocols can not support this functionality, \ * check the protocol specification for more information. * * @param oldurl : url of the original file * @param newurl : url of the symlink * @return This routine return 0 if the operation was successful, or -1 if error occured. * In case of errors, see @ref gfal_posix_check_error() for error management */ int gfal_symlink(const char* oldurl, const char * newurl); /** * @brief unlink a file, delete it * * Similar behavior to the POSIX unlink ( man 2 unlink ) * * @param url : url of the file to delete * @return This routine return 0 if the operation was successful, or -1 if error occured. * In case of errors, see @ref gfal_posix_check_error() for error management */ int gfal_unlink (const char * url); // directory management purpose /** * @brief create a directory * * Similar behavior to the POSIX mkdir( man 2 mkdir ) * * @param url : url of the directory to create * @param mode : initial mode right of the directory * @return This routine return 0 if the operation was successful, or -1 if error occured. * In case of errors, see @ref gfal_posix_check_error() for error management */ int gfal_mkdir (const char * url, mode_t mode); /** * @brief open a directory * * Similar behavior to the POSIX opendir ( man 2 opendir ) * * @param url : url of the directory to list * @return This routine return a directory descriptor if the operation was successful, or -1 if error occured. * In case of errors, see @ref gfal_posix_check_error() for error management */ DIR *gfal_opendir (const char * url); /** * @brief read a directory * * the directory descriptor must be provided by @ref gfal_opendir * Similar behavior to the POSIX readdir ( man 2 readdir ) * * @param d : descriptor of the directory * @return This routine return the directory information if the operation was successful, * NULL if the end of the directory is reached * or if error occured. * In case of errors, see @ref gfal_posix_check_error() for error management */ struct dirent *gfal_readdir (DIR * d); /** * @brief close a directory * * Similar behavior to the POSIX closedir ( man 2 closedir ) * * @param d : descriptor of the directory * @return This routine return 0 if the operation was successful, or -1 if error occured. * In case of errors, see @ref gfal_posix_check_error() for error management */ int gfal_closedir (DIR * d); /** * @brief delete a directory * * Similar behavior to the POSIX rmdir ( man 2 rmdir ) * * @param url : url of the directory to suppress * @return This routine return 0 if the operation was successful, or -1 if error occured. * In case of errors, see @ref gfal_posix_check_error() for error management */ int gfal_rmdir (const char * url); //classical read/write operations /** * @brief creat a file * * Similar behavior to the POSIX creat ( man 2 creat ) * gfal_creat is similar to @ref gfal_open with the flags O_CREAT|O_WRONLY|O_TRUNC * * @param url : url of the file to creat * @param mode : mode of the file. * @return This routine return a valid file descriptor if the operation is a success * or -1 if error occured. * In case of errors, see @ref gfal_posix_check_error() for error management */ int gfal_creat (const char * url , mode_t mode); /** * @brief open a file * * Similar behavior to the POSIX open ( man 2 open ) * gfal_open supports the same flags than the POSIX open call * * O_TRUNC * If the file already exists and is a regular file and the open mode allows writing (i.e., is O_RDWR or O_WRONLY) it will be truncated to length 0. If the file is a FIFO or termi†* nal device file, the O_TRUNC flag is ignored. Otherwise the effect of O_TRUNC is unspecified. * * O_APPEND * The file is opened in append mode. Before each write(2), the file offset is positioned at the end of the file, as if with lseek(2). O_APPEND may lead to corrupted files on NFS * file systems if more than one process appends data to a file at once. This is because NFS does not support appending to a file, so the client kernel has to simulate it, which * can't be done without a race condition. * * O_CREAT * If the file does not exist it will be created. The owner (user ID) of the file is set to the effective user ID of the process. The group ownership (group ID) is set either to * the effective group ID of the process or to the group ID of the parent directory (depending on file system type and mount options, and the mode of the parent directory, see the * mount options bsdgroups and sysvgroups described in mount(8)). * * mode specifies the permissions to use in case a new file is created. This argument must be supplied when O_CREAT is specified in flags; if O_CREAT is not specified, then mode is * ignored. The effective permissions are modified by the process's umask in the usual way: The permissions of the created file are (mode & ~umask). Note that this mode only * applies to future accesses of the newly created file; the open() call that creates a read-only file may well return a read/write file descriptor. * * * * O_DIRECT * Try to minimize cache effects of the I/O to and from this file. In general this will degrade performance, but it is useful in special situations, such as when applications do * their own caching. File I/O is done directly to/from user space buffers. The O_DIRECT flag on its own makes at an effort to transfer data synchronously, but does not give the * guarantees of the O_SYNC that data and necessary metadata are transferred. To guarantee synchronous I/O the O_SYNC must be used in addition to O_DIRECT. See NOTES below for fur†* ther discussion. * * O_LARGEFILE * (LFS) Allow files whose sizes cannot be represented in an off_t (but can be represented in an off64_t) to be opened. The _LARGEFILE64_SOURCE macro must be defined (before includ†* ing any header files) in order to obtain this definition. Setting the _FILE_OFFSET_BITS feature test macro to 64 (rather than using O_LARGEFILE) is the preferred method of * obtaining method of accessing large files on 32-bit systems * * * @param url : url of the file to open * @param flags : flags to use ( similar to open ) * @param mode (optional) : mode of the file in case of a new file. * @return This routine return a valid file descriptor if the operation is a success * or -1 if error occured. * In case of errors, see @ref gfal_posix_check_error() for error management */ int gfal_open(const char * url, int flags, ...); /** * @brief reposition read/write file offset * * Similar behavior to the POSIX lseek ( man 2 lseek ) * * @param fd : gfal file descriptor of the file * @param off : offset to set * @param flags : offset mode * @return This routine return the current offset if the operation is a success * or -1 if error occured. * In case of errors, see @ref gfal_posix_check_error() for error management */ off_t gfal_lseek (int fd , off_t off , int flags ); /** * @brief close a gfal file descriptor * * Similar behavior to the POSIX close ( man 2 close ) * * @param fd : gfal file descriptor of the file * @return This routine return 0 if the operation is a success * or -1 if error occured. * In case of errors, see @ref gfal_posix_check_error() for error management */ int gfal_close (int fd); /** * @brief read from a gfal file descriptor * * Similar behavior to the POSIX read ( man 2 read ) * * @param fd : gfal file descriptor of the file * @param buff : buffer for the read content * @param size : maximum size to read * @return On success, the number of bytes read is returned * (zero indicates end of file), and the file position is advanced * by this number. It is not an error if this number is * smaller than the number of bytes requested.In case of errors, * see @ref gfal_posix_check_error() for error management * In case of errors, see @ref gfal_posix_check_error() for error management */ ssize_t gfal_read (int fd , void * buff , size_t size); /** * @brief write from a gfal file descriptor * * Similar behavior to the POSIX write ( man 2 write ) * * @param fd : gfal file descriptor of the file * @param buff : buffer for the write content * @param size : maximum size to write * @return On success, the number of bytes written is returned. * In case of errors, -1 is returned * see @ref gfal_posix_check_error() for error management */ ssize_t gfal_write (int fd , const void * buff , size_t size); // sync /** * @brief flush the given file descriptor * * flush the current fiel descriptor, clear the cache \ * and commit the changes. * This call is reserved fora futur usage. * * @param fd : gfal file descriptor of the file * @return On success, return 0. * In case of errors, -1 is returned * see @ref gfal_posix_check_error() for error management */ int gfal_flush(int fd); // parallels calls, for read/write /** * @brief parallel read from a gfal file descriptor * * Similar behavior to the POSIX pread ( man 2 pread ) * * In gfal 2.0, this call is thread-safe and allows the usage of \ * parallels read at the same time on the same file descriptor. * * This is the recommended way to execute parallels transfers. * * This gfal_pread is emulated on filesystem that does not support it * explicitely ( ex : rfio ) * * @param fd : gfal file descriptor of the file * @param buff : buffer for the read content * @param size : maximum size to read * @param offset : offset where the read start * @return On success, the number of bytes read is returned * (zero indicates end of file), and the file position is advanced * by this number. It is not an error if this number is * smaller than the number of bytes requested.In case of errors, * see @ref gfal_posix_check_error() for error management * In case of errors, see @ref gfal_posix_check_error() for error management */ ssize_t gfal_pread(int fd, void * buff, size_t size, off_t offset); /** * @brief parallel write from a gfal file descriptor * * Similar behavior to the POSIX pwrite ( man 2 pwrite ) * * In gfal 2.0, this function is thread-safe and allows the usage of * parallels write at the same time on the same file descriptor. * * This is the recommended way to execute parallels transfers. * * This gfal_pwrite is emulated on filesystem that does not support it * explicitely ( ex : rfio ) * * @param fd : gfal file descriptor of the file * @param buff : buffer for the write content * @param size : maximum size to write * @param offset : offset where the write start * @return On success, the number of bytes read is returned * (zero indicates end of file), and the file position is advanced * by this number. It is not an error if this number is * smaller than the number of bytes requested.In case of errors, * see @ref gfal_posix_check_error() for error management * In case of errors, see @ref gfal_posix_check_error() for error management */ ssize_t gfal_pwrite(int fd, const void * buff, size_t size, off_t offset); // advanced use purpose ( set properties, guid, replicas ) /** * @brief retrieve an extended attribute value * * similar to the getxattr function * * In gfal 2.0, this is the standard way to interact \ * with advanced file properties * * ex : gfal_getxattr("srm://myurl/endpoint", "user.replicas", * buff, 256); * * @param url : url of the file * @param name : key of the extended attribute * @param value : buffer for the extended attribute value * @param size : maximum size of the buffer * @return On success, return the size of the extended attribute. * In case of errors, -1 is returned * see @ref gfal_posix_check_error() for error management */ ssize_t gfal_getxattr (const char *url, const char *name, void *value, size_t size); /** * @brief retrieve a list of the extended attributes availables * * similar to the etxattr function * * * @param url : url of the file * @param list : buffer for the list of availables attributes concatened. * @param size : maximum size of the buffer * @return On success, return the size of the list. * In case of errors, -1 is returned * see @ref gfal_posix_check_error() for error management */ ssize_t gfal_listxattr (const char *url, char *list, size_t size); /** * @brief define an extended attribute value * * similar to the listxattr function * * In gfal 2.0, this is the standard way to interact \ * with advanced file properties * * ex : gfal_setxattr("srm://myurl/endpoint", "user.status", * "ONLINE", strlen("ONLINE"),0); * // -> simple brings_online * * @param url : url of the file * @param name : key of the extended attribute * @param value : buffer for the extended attribute value * @param size : size of the attribute value * @param flags : mode * @return On success, return 0 . * In case of errors, -1 is returned * see @ref gfal_posix_check_error() for error management */ int gfal_setxattr (const char *url, const char *name, const void *value, size_t size, int flags); /** * @brief delete a extended attribute value * * similar to the removexattr function * * * @param url : url of the file * @param name : key of the extended attribute * @return On success, return 0. * In case of errors, -1 is returned * see @ref gfal_posix_check_error() for error management */ int gfal_removexattr(const char *url, const char *name); /** * safe and easy error management : * -> if last error * -> print on stderr, return 1 * -> else do nothing * @return 0 if no error, 1 else */ int gfal_posix_check_error(); /** * clear the last error \ * provided for convenience. */ void gfal_posix_clear_error(); /** * display the last error to the standard output \ * and clear it. * provided for convenience. */ void gfal_posix_release_error(); /** * Get the string representation of the last error * @param buff_err : buffer where string representation will be stored. * @param s_err : maximum message size * @return return pointer to buff_err for convenience * */ char* gfal_posix_strerror_r(char* buff_err, size_t s_err); /** * display the last error recorded to the standard output, * provided for convenience. */ void gfal_posix_print_error(); /** * return the code associated with the last error. * In case of POSIX calls and when possible, this code is similar to the local errno * @return last error code or 0 if nothing */ int gfal_posix_code_error(); /** * set the gfal verbose mode * * see gfal_constant.h for details * * */ int gfal_set_verbose (int); /** * get a string representation of the gfal version * @return string of the gfal_version * */ char *gfal_version(); // set/get parameter & options interface // Simple interface for option management /** @brief get context for advanced operation return the gfal2 context used for POSIX operations allow to do advanced operation ( config, checksum, transfer ) on this context @warning Delete this context leads to undefined behavior. */ gfal2_context_t gfal_posix_get_context(); /** @} End of the POSIX group */ #ifdef __cplusplus } #endif #endif // _GFAL2_POSIX_API_ gfal2-2.3.0/src/posix/gfal_posix_write.c0000644000175000017500000000403612164561703017521 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_write.c * @brief file for the internal write function for the posix interface * @author Devresse Adrien * @version 2.0 * @date 05/07/2011 * */ #include #include #include #include "gfal_common_file_handle.h" #include "gfal_posix_internal.h" #include #include #include #include /* * Implementation of the write call * */ int gfal_posix_internal_write(int fd, void* buff, size_t s_buff){ GError* tmp_err=NULL; gfal_handle handle; int res = -1; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } res = gfal2_write(handle, fd, buff, s_buff, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_write]", tmp_err); errno = tmp_err->code; } return res; } // Implementation of the pwrite call ssize_t gfal_posix_internal_pwrite(int fd, void* buff, size_t s_buff, off_t offset){ GError* tmp_err=NULL; gfal_handle handle; int res = -1; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } res= gfal2_pwrite(handle, fd, buff, s_buff,offset , &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_pwrite]", tmp_err); errno = tmp_err->code; } return res; } gfal2-2.3.0/src/posix/gfal_posix_close.c0000644000175000017500000000275212164561703017477 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_close.c * @brief file for the internal close function for the posix interface * @author Devresse Adrien * @version 2.0 * @date 31/05/2011 * */ #include #include #include #include #include #include #include #include #include "gfal_posix_internal.h" int gfal_posix_internal_close(int fd){ GError* tmp_err=NULL; int ret = -1; gfal_handle handle; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } ret = gfal2_close(handle, fd, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_close]", tmp_err); errno = tmp_err->code; } return ret; } gfal2-2.3.0/src/posix/gfal_posix_lseek.c0000644000175000017500000000314212164561703017467 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_lseek.c * @brief file for the internal function of the POSIX lseek function * @author Devresse Adrien * @date 18/07/2011 * **/ #include #include #include #include #include #include #include #include #include #include "gfal_posix_internal.h" /* * * Implementation of the posix lseek */ int gfal_posix_internal_lseek(int fd, off_t offset, int whence){ GError* tmp_err=NULL; gfal_handle handle; int res= -1; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } res = gfal2_lseek(handle, fd, offset, whence, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_lseek]", tmp_err); errno = tmp_err->code; } return res; } gfal2-2.3.0/src/posix/gfal_posix_internal.h0000644000175000017500000000614712164561703020215 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file gfal_posix_local_file.c * @brief header file for the internal func of the posix interface * @author Devresse Adrien * @version 2.0 * @date 06/05/2011 * */ #include #include #include #include gfal_handle gfal_posix_instance(); GError** gfal_posix_get_last_error(); int gfal_posix_internal_access (const char *path, int amode); int gfal_posix_internal_chmod(const char* path, mode_t mode); int gfal_posix_internal_rename(const char* oldpath, const char* newpath); int gfal_posix_internal_stat(const char* path, struct stat* buf); int gfal_posix_internal_lstat(const char* path, struct stat* buf); ssize_t gfal_posix_internal_readlink(const char* path, char* buff, size_t buffsiz); int gfal_posix_internal_mkdir(const char* path, mode_t mode); int gfal_posix_internal_rmdir(const char* path); DIR* gfal_posix_internal_opendir(const char* name); int gfal_posix_internal_open(const char* path, int flag, mode_t mode); int gfal_posix_internal_lseek(int fd, off_t offset, int whence); int gfal_posix_internal_read(int fd, void* buff, size_t s_buff); int gfal_posix_internal_write(int fd, void* buff, size_t s_buff); ssize_t gfal_posix_internal_pwrite(int fd, void* buff, size_t s_buff, off_t offset); ssize_t gfal_posix_internal_pread(int fd, void* buff, size_t s_buff, off_t offset); int gfal_posix_internal_close(int fd); int gfal_posix_internal_closedir(DIR* d); ssize_t gfal_posix_internal_unlink(const char* path); ssize_t gfal_posix_internal_getxattr (const char *path, const char *name, void *value, size_t size); ssize_t gfal_posix_internal_listxattr (const char *path, char *list, size_t size); int gfal_posix_internal_setxattr (const char *path, const char *name, const void *value, size_t size, int flags); struct dirent* gfal_posix_internal_readdir(DIR* dir); int gfal_posix_internal_symlink(const char * oldpath, const char *newpath); void gfal_posix_register_internal_error(gfal_handle handle, const char* prefix, GError * tmp_err); int gfal_get_parameter_boolean_internal(const char* namespace, const char* key); int gfal_set_parameter_boolean_internal(const char* namespace, const char* key, int value); int gfal_set_parameter_string_internal(const char* namespace, const char* key, const char* value); char* gfal_get_parameter_string_internal(const char* namespace, const char* key); gfal2-2.3.0/src/posix/gfal_posix_readdir.c0000644000175000017500000000314612164561703020002 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_readdir.c * @brief file for the readdir posix func * @author Devresse Adrien * @version 2.0 * @date 27/05/2011 * */ #include #include #include #include #include #include #include "gfal_posix_api.h" #include "gfal_posix_internal.h" #include #include #include /* * Implementation of the readdir functions * */ inline struct dirent* gfal_posix_internal_readdir(DIR* dir){ GError* tmp_err=NULL; gfal_handle handle; struct dirent* res= NULL; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return NULL; } res = gfal2_readdir(handle, dir, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_readdir]", tmp_err); errno = tmp_err->code; } return res; } gfal2-2.3.0/src/posix/gfal_posix_chmod.c0000644000175000017500000000262012164561703017456 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_chmod.c * @brief file for the internal function of the POSIX chmod function * @author Devresse Adrien * @version 2.0 * @date 10/05/2011 * **/ #include #include #include #include #include "gfal_posix_internal.h" #include int gfal_posix_internal_chmod(const char* path, mode_t mode){ GError* tmp_err=NULL; gfal_handle handle; int res= -1; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } res = gfal2_chmod(handle, path, mode, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_chmod]", tmp_err); errno = tmp_err->code; } return res; } gfal2-2.3.0/src/posix/gfal_posix_opendir.c0000644000175000017500000000307212164561703020026 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_opendir.c * @brief file for the opendir posix func * @author Devresse Adrien * @version 2.0 * @date 25/05/2011 * */ #include #include #include #include #include #include "gfal_posix_api.h" #include "gfal_posix_internal.h" #include #include #include inline DIR* gfal_posix_internal_opendir(const char* name){ GError* tmp_err=NULL; gfal_handle handle; DIR* key = NULL; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return NULL; } key = gfal2_opendir(handle, name, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_opendir]", tmp_err); errno = tmp_err->code; }else{ errno=0; } return GINT_TO_POINTER(key); } gfal2-2.3.0/src/posix/gfal_posix_ng.c0000644000175000017500000001206212164561703016771 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_ng.c * @brief new file for the posix interface * @author Devresse Adrien * @date 09/05/2011 * */ #include #include "gfal_posix_api.h" #include "gfal_posix_internal.h" // // // int gfal_access (const char *path, int amode){ return gfal_posix_internal_access(path, amode); } // // // int gfal_chmod(const char* path, mode_t mode){ return gfal_posix_internal_chmod(path, mode); } // // // int gfal_rename(const char *oldpath, const char *newpath){ return gfal_posix_internal_rename(oldpath, newpath); } // // // // int gfal_stat(const char* path, struct stat* buff){ return gfal_posix_internal_stat(path, buff); } int gfal_lstat(const char* path, struct stat* buff){ return gfal_posix_internal_lstat(path, buff); } int gfal_mkdirp( const char* path, mode_t mode){ return gfal_posix_internal_mkdir( path, mode); } int gfal_mkdir( const char* path, mode_t mode){ return gfal_mkdirp( path, mode); } int gfal_rmdir(const char* path){ return gfal_posix_internal_rmdir(path); } DIR* gfal_opendir(const char* name){ return gfal_posix_internal_opendir(name); } struct dirent* gfal_readdir(DIR* d){ return gfal_posix_internal_readdir(d); } int gfal_closedir(DIR* d){ return gfal_posix_internal_closedir(d); } int gfal_open(const char * path, int flag, ...){ mode_t mode = S_IRWXU | S_IRGRP | S_IROTH; va_list va; va_start(va, flag); mode = va_arg(va, mode_t); va_end(va); return gfal_posix_internal_open(path, flag, mode); } int gfal_creat (const char *filename, mode_t mode){ return (gfal_open (filename, O_WRONLY|O_CREAT|O_TRUNC, mode)); } ssize_t gfal_read(int fd, void* buff, size_t s_buff){ return (ssize_t) gfal_posix_internal_read(fd, buff, s_buff); } ssize_t gfal_write(int fd, const void *buff, size_t s_buff){ return (ssize_t) gfal_posix_internal_write(fd, (void*) buff, s_buff); } int gfal_close(int fd){ return gfal_posix_internal_close(fd); } int gfal_symlink(const char* oldpath, const char * newpath){ return gfal_posix_internal_symlink(oldpath, newpath); } off_t gfal_lseek (int fd, off_t offset, int whence){ return gfal_posix_internal_lseek(fd, offset, whence); } ssize_t gfal_getxattr (const char *path, const char *name, void *value, size_t size){ return gfal_posix_internal_getxattr(path,name, value, size); } ssize_t gfal_readlink(const char* path, char* buff, size_t buffsiz){ return gfal_posix_internal_readlink(path, buff, buffsiz); } int gfal_unlink(const char* path){ return gfal_posix_internal_unlink(path); } ssize_t gfal_listxattr (const char *path, char *list, size_t size){ return gfal_posix_internal_listxattr(path, list, size); } int gfal_setxattr (const char *path, const char *name, const void *value, size_t size, int flags){ return gfal_posix_internal_setxattr(path, name, value, size, flags); } int gfal_removexattr(const char *path, const char *name){ return -1; } void gfal_posix_print_error(){ gfal_handle handle; GError* err=NULL; if((handle = gfal_posix_instance()) == NULL){ g_printerr("[gfal] Initialisation error gfal_posix_instance() failure\n"); }else if ( (err = *gfal_posix_get_last_error()) != NULL){ g_printerr("[gfal]%s \n", err->message); }else if(errno !=0){ char* sterr = strerror(errno); g_printerr("[gfal] errno reported by external lib : %s", sterr); }else{ g_printerr("[gfal] No gfal error reported\n"); } } int gfal_flush(int fd){ return 0; } void gfal_posix_release_error(){ gfal_posix_print_error(); gfal_posix_clear_error(); } void gfal_posix_clear_error(){ g_clear_error( gfal_posix_get_last_error()); errno =0; } int gfal_posix_code_error(){ GError* err=NULL; const int ret = ((err = *gfal_posix_get_last_error()) != NULL)? err->code :0 ; return ret; } int gfal_posix_check_error(){ GError* err=NULL; if((err = *gfal_posix_get_last_error()) != NULL) { g_printerr("[gfal]%s\n", err->message); return 1; } return 0; } char* gfal_posix_strerror_r(char* buff_err, size_t s_err){ return (char*)gfal_str_GError_r(gfal_posix_get_last_error(), buff_err, s_err); } ssize_t gfal_pread(int fd, void * buffer, size_t count, off_t offset){ return gfal_posix_internal_pread(fd, buffer, count, offset); } ssize_t gfal_pwrite(int fd, const void * buffer, size_t count, off_t offset){ return gfal_posix_internal_pwrite(fd, (void*)buffer, count, offset); } gfal2_context_t gfal_posix_get_context(){ return gfal_posix_instance(); } gfal2-2.3.0/src/posix/gfal_posix_readlink.c0000644000175000017500000000301212164561703020151 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_readlink.c * @brief file for the internal function of the POSIX readlink functions * @author Devresse Adrien * @version 2.0 * @date 20/07/2011 * **/ #include #include #include #include #include "gfal_posix_internal.h" #include #include "gfal_common_plugin.h" /* * internal implementation of gfal_readlink * */ inline ssize_t gfal_posix_internal_readlink(const char* path, char* buf, size_t buffsiz){ gfal_handle handle; GError* tmp_err = NULL; ssize_t ret = -1; if( (handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } ret = gfal2_readlink(handle, path, buf, buffsiz, &tmp_err); if(tmp_err){ // error reported gfal_posix_register_internal_error(handle, "[gfal_readlink]", tmp_err); errno = tmp_err->code; } return ret; } gfal2-2.3.0/src/posix/gfal_posix_read.c0000644000175000017500000000407212164561703017302 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_read.c * @brief file for the internal read function for the posix interface * @author Devresse Adrien * @version 2.0 * @date 01/07/2011 * */ #include #include #include #include #include "gfal_common_file_handle.h" #include "gfal_posix_internal.h" #include #include #include /* * Implementation of the read functions * */ inline int gfal_posix_internal_read(int fd, void* buff, size_t s_buff){ GError* tmp_err=NULL; gfal_handle handle; int res = -1; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } res = gfal2_read(handle, fd, buff, s_buff, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_read]", tmp_err); errno = tmp_err->code; } return res; } /* * Implementation of the pread function * */ inline ssize_t gfal_posix_internal_pread(int fd, void* buff, size_t s_buff, off_t offset){ GError* tmp_err=NULL; gfal_handle handle; ssize_t res = -1; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } res = gfal2_pread(handle,fd,buff, s_buff,offset, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_pread]", tmp_err); errno = tmp_err->code; } return res; } gfal2-2.3.0/src/posix/gfal_posix_setxattr.c0000644000175000017500000000313712164561703020246 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_setxattr.c * @brief file for the internal function of the setxattr function * @author Devresse Adrien * @date 28/09/2011 * **/ #include #include #include #include #include #include #include "gfal_posix_internal.h" /* * set a value to a extended attribute * */ int gfal_posix_internal_setxattr (const char *path, const char *name, const void *value, size_t size, int flags){ GError* tmp_err=NULL; gfal_handle handle; int res= -1; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } res = gfal2_setxattr(handle, path, name, value, size, flags, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_setxattr]", tmp_err); errno = tmp_err->code; } return res; } gfal2-2.3.0/src/posix/gfal_posix_symlink.c0000644000175000017500000000263212164561703020055 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_symlink.c * @brief file for the internal symlink func * @author Devresse Adrien * @date 16/07/2011 * */ #include #include #include #include #include #include "gfal_posix_internal.h" #include "gfal_posix_api.h" int gfal_posix_internal_symlink(const char* oldpath, const char* newpath){ GError* tmp_err = NULL; gfal_handle handle; int ret=-1; if( (handle = gfal_posix_instance() ) ==NULL){ errno = EIO; return -1; } ret = gfal2_symlink(handle, oldpath, newpath,&tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_symlink]", tmp_err); errno = tmp_err->code; } return (ret)?-1:0; } gfal2-2.3.0/src/posix/gfal_posix_rename.c0000644000175000017500000000264312164561703017640 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_rename.c * @brief file for the internal rename func * @author Devresse Adrien * @version 2.0 * @date 11/05/2011 * */ #include #include #include #include #include #include "gfal_posix_internal.h" #include "gfal_posix_api.h" int gfal_posix_internal_rename(const char* oldpath, const char* newpath){ GError* tmp_err = NULL; gfal_handle handle; int ret=-1; if( (handle = gfal_posix_instance() ) ==NULL){ errno = EIO; return -1; } ret = gfal2_rename(handle, oldpath, newpath, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_rename]", tmp_err); errno = tmp_err->code; } return (ret)?-1:0; } gfal2-2.3.0/src/posix/gfal_posix_getxattr.c0000644000175000017500000000306112164561703020226 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_getxattr.c * @brief file for the internal function of the getxattr function * @author Devresse Adrien * @date 19/07/2011 * **/ #include #include #include #include #include #include #include "gfal_posix_internal.h" ssize_t gfal_posix_internal_getxattr (const char *path, const char *name, void *value, size_t size){ GError* tmp_err=NULL; gfal_handle handle; ssize_t res= -1; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } res = gfal2_getxattr(handle, path, name, value, size, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_getxattr]", tmp_err); errno = tmp_err->code; } return res; } gfal2-2.3.0/src/posix/gfal_posix_access.c0000644000175000017500000000273212164561703017631 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_access.c * @brief file for the internal access func of the posix interface * @author Devresse Adrien * @version 2.0 * @date 06/05/2011 * */ #include #include #include "gfal_posix_api.h" #include #include #include #include #include int gfal_posix_internal_access (const char *path, int amode){ int resu = -1; GError* tmp_err=NULL; gfal_handle handle; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } resu = gfal2_access(handle, path, amode, &tmp_err); if(tmp_err){ // error reported gfal_posix_register_internal_error(handle, "[gfal_access]", tmp_err); errno = tmp_err->code; } return (resu)?(-1):0; } gfal2-2.3.0/src/posix/gfal_posix_internal.c0000644000175000017500000000400712164561703020201 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_local_file.c * @brief file for the internal func of the posix interface * @author Devresse Adrien * @version 2.0 * @date 06/05/2011 * */ #include #include #include #include #include #include #include #include #include #include "gfal_posix_internal.h" pthread_mutex_t m_instance =PTHREAD_MUTEX_INITIALIZER; static gfal_handle handle=NULL; static __thread GError* last_error=NULL; inline gfal_handle gfal_posix_instance(){ if(handle == NULL){ pthread_mutex_lock(&m_instance); if(handle == NULL){ handle= gfal_initG(&last_error); } pthread_mutex_unlock(&m_instance); } return handle; } inline GError** gfal_posix_get_last_error(){ return &last_error; } /* * register the last error in the handle and display a VERBOSE warning if an error was registered and not deleted * */ inline void gfal_posix_register_internal_error(gfal_handle mhandle, const char* prefix, GError * tmp_err){ GError** err = gfal_posix_get_last_error(); if(*err != NULL){ gfal_log(GFAL_VERBOSE_NORMAL, "%s Warning : existing registered error replaced ! old err : %s ", prefix, (*err)->message); g_clear_error(err); } g_propagate_prefixed_error(err, tmp_err, "%s", prefix); } gfal2-2.3.0/src/posix/gfal_posix_closedir.c0000644000175000017500000000313712164561703020174 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_closedir.c * @brief file for the closedir posix func * @author Devresse Adrien * @version 2.0 * @date 27/05/2011 * */ #include #include #include "gfal_posix_api.h" #include "gfal_posix_internal.h" #include #include #include #include #include #include int gfal_posix_internal_closedir(DIR* d){ GError* tmp_err=NULL; int ret = -1; gfal_handle handle; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } if(d == NULL){ g_set_error(&tmp_err, 0, EFAULT, "File descriptor is NULL"); }else{ ret = gfal2_closedir(handle, d, &tmp_err); } if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_closedir]", tmp_err); errno = tmp_err->code; } return ret; } gfal2-2.3.0/src/posix/gfal_posix_mkdir.c0000644000175000017500000000275312164561703017501 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_posix_mkdir.c * @brief file for the internal mkdir func of the posix interface * @author Devresse Adrien * @version 2.0 * @date 18/05/2011 * */ #include #include #include "gfal_posix_api.h" #include #include #include "gfal_posix_internal.h" #include #include /* * Implementation of the mkdir function * * */ int gfal_posix_internal_mkdir(const char* path, mode_t mode){ GError* tmp_err=NULL; gfal_handle handle; int res= -1; if((handle = gfal_posix_instance()) == NULL){ errno = EIO; return -1; } res = gfal2_mkdir(handle, path, mode, &tmp_err); if(tmp_err){ gfal_posix_register_internal_error(handle, "[gfal_mkdir]", tmp_err); errno = tmp_err->code; } return res; } gfal2-2.3.0/src/gfal_api.h0000644000175000017500000000255512164561703014565 0ustar ellertellert#pragma once #ifndef _GFAL2_API_ #define _GFAL2_API_ /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file gfal_api.h * @brief Main header file for gfal 2.0 * @author Devresse Adrien * @version 2.0.0 */ // gfal2 uses 64 bits offset size by default #ifndef _FILE_OFFSET_BITS # define _FILE_OFFSET_BITS 64 #endif // // global context operations // #include // // parameter and configuration api // #include // // log api // #include // // main gfal 2.0 API for file operations // #include // // operation control api // #include // // gfal 1.0 compatibility layer // #include #endif //_GFAL2_API_ gfal2-2.3.0/src/transfer/0000755000175000017500000000000012164561703014467 5ustar ellertellertgfal2-2.3.0/src/transfer/test/0000755000175000017500000000000012164561703015446 5ustar ellertellertgfal2-2.3.0/src/transfer/gfal_cpp_wrapper.cpp0000644000175000017500000000176112164561703020513 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include // gfal 2.0 common types #include #include // gfal 2.0 transfer types #include #include #include "gfal_cpp_wrapper.h" using namespace Gfal; using namespace Gfal::Transfer; gfal2-2.3.0/src/transfer/gfal_transfer_filecopy.cpp0000644000175000017500000001427212164561703021710 0ustar ellertellert/* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include static Glib::Quark get_scope_copy(){ return Glib::Quark("FileCopy::start_copy"); } static Glib::Quark get_scope_local_copy(){ return Glib::Quark("FileCopy::local_copy"); } const long default_buffer_size= 200000; namespace Gfal{ namespace Transfer{ FileCopy::FileCopy(gfal2_context_t context){ this->context = context; } FileCopy::~FileCopy() { } void FileCopy::start_copy(gfalt_params_t p, const std::string & src, const std::string & dst){ gfal_log(GFAL_VERBOSE_TRACE, " -> Gfal::Transfer::FileCopy "); GError * tmp_err=NULL; int res = -1; void * plugin_data=NULL; plugin_filecopy_call p_copy = find_copy_plugin(src, dst, &plugin_data); // get the filecopy call of the plugin if(p_copy == NULL){ if(gfalt_get_local_transfer_perm(p,NULL) ){ start_local_copy(p, src, dst); res = 0; }else{ throw Gfal::CoreException(get_scope_copy(), "no plugin is able to support a transfer from %s to %s", EPROTONOSUPPORT); } }else{ res = p_copy(plugin_data, context, p, src.c_str(), dst.c_str(), &tmp_err); } //p->unlock(); if(res <0 ) throw Gfal::CoreException(get_scope_copy(), std::string(tmp_err->message), tmp_err->code); gfal_log(GFAL_VERBOSE_TRACE, " <- Gfal::Transfer::FileCopy "); } void FileCopy::start_local_copy(gfalt_params_t p, const std::string & src, const std::string & dst){ gfal_log(GFAL_VERBOSE_TRACE, " -> Gfal::Transfer::start_local_copy "); GError * tmp_err_src=NULL; GError * tmp_err_dst=NULL; GError * tmp_err_out=NULL; gfal_file_handle f_src =NULL; gfal_file_handle f_dst = NULL; gfal_log(GFAL_VERBOSE_TRACE, " open src file : %s ",src.c_str()); f_src = gfal_plugin_openG(this->context,src.c_str(), O_RDONLY,0, &tmp_err_src); if(!tmp_err_src){ gfal_log(GFAL_VERBOSE_TRACE, " open dst file : %s ",dst.c_str()); f_dst = gfal_plugin_openG(this->context,dst.c_str(), O_WRONLY | O_CREAT,0755, &tmp_err_dst); ssize_t s_file=1; if(!tmp_err_dst){ const unsigned long mbuffer = default_buffer_size; char* buff = (char*) g_malloc(mbuffer); gfal_log(GFAL_VERBOSE_TRACE, " begin local transfer %s -> %s with buffer size %ld",src.c_str(), dst.c_str(), mbuffer); while(s_file > 0 && !tmp_err_src && !tmp_err_dst){ s_file = gfal_plugin_readG(this->context,f_src, buff, mbuffer, &tmp_err_src); if(s_file > 0 && !tmp_err_src) gfal_plugin_writeG(this->context,f_dst, buff, s_file, &tmp_err_dst); } g_free(buff); gfal_plugin_closeG(this->context, f_src, (tmp_err_src)?NULL:(&tmp_err_src)); gfal_plugin_closeG(this->context, f_dst, (tmp_err_dst)?NULL:(&tmp_err_dst)); } } if(tmp_err_src){ g_set_error(&tmp_err_out, get_scope_local_copy().id(),tmp_err_src->code, "Local transfer error on SRC %s : %s",src.c_str(),tmp_err_src->message); g_clear_error(&tmp_err_src); }else if (tmp_err_dst){ g_set_error(&tmp_err_out, get_scope_local_copy().id(),tmp_err_dst->code, "Local transfer error on DST %s : %s",dst.c_str(),tmp_err_dst->message); g_clear_error(&tmp_err_dst); } if(tmp_err_out) throw Glib::Error(tmp_err_out); gfal_log(GFAL_VERBOSE_TRACE, " <- Gfal::Transfer::start_local_copy "); } const plugin_filecopy_call FileCopy::find_copy_plugin(const std::string & src, const std::string & dst, void** plugin_data){ GError * tmp_err=NULL; plugin_pointer_handle start_list, p_list; plugin_filecopy_call resu = NULL; start_list = p_list = gfal_plugins_list_handler(context, &tmp_err); gerror_to_cpp(&tmp_err); while(p_list->dlhandle != NULL){ plugin_url_check2_call check_call = p_list->plugin_api->check_plugin_url_transfer; if(check_call != NULL){ gboolean compatible; if( (compatible = check_call(p_list->plugin_data, src.c_str(), dst.c_str(), GFAL_FILE_COPY) ) == TRUE){ *plugin_data = p_list->plugin_data; resu = p_list->plugin_api->copy_file; break; } } p_list++; } g_free(start_list); return resu; } } //end Transfer } // end Gfal extern "C" { gfalt_transfer_status_t gfalt_transfer_status_create(const gfalt_hook_transfer_plugin_t * hook){ gfalt_transfer_status_t state = g_new0(struct _gfalt_transfer_status,1); state->hook = hook; return state; } void gfalt_transfer_status_delete(gfalt_transfer_status_t state){ if(state) g_free(state); } int gfalt_copy_file(gfal2_context_t handle, gfalt_params_t params, const char* src, const char* dst, GError** err){ g_return_val_err_if_fail( handle && src && dst, -1, err, "invalid source or/and destination values"); GError * tmp_err=NULL; int ret = -1; gfalt_params_t p = NULL; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); CPP_GERROR_TRY Gfal::Transfer::FileCopy f(handle); if(params == NULL){ p = gfalt_params_handle_new(NULL); f.start_copy(p, src, dst); } else{ f.start_copy(params, src, dst); } ret = 0; CPP_GERROR_CATCH(&tmp_err); gfalt_params_handle_delete(p, NULL); GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(ret, tmp_err, err); } } gfal2-2.3.0/src/transfer/gfal_transfer_types_internal.h0000644000175000017500000000552712164561703022606 0ustar ellertellert#pragma once #ifndef _GFAL2_TRANSFER_TYPES_INTERNAL_ #define _GFAL2_TRANSFER_TYPES_INTERNAL_ /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include struct _gfalt_params_t{ gboolean lock; // lock enabled after the start of the transfer uuid_t uuid; // unique id of the transfer guint64 timeout; // connexion timeout guint64 tcp_buffer_size; gboolean replace_existing; // replace destination or not off_t start_offset; // start offset in case of restart guint nb_data_streams; // nb of parallels streams gboolean strict_mode; // state of the strict copy mode gboolean local_transfers; // local transfer authorized gboolean parent_dir_create; // force the creation of the parent dir // spacetoken management for SRM gchar * src_space_token; gchar* dst_space_token; // checksum management gboolean checksum_check; gchar* user_checksum; gchar* user_checksum_type; // performance callback gpointer user_data; // user data information for the monitoring callback gfalt_monitor_func callback; size_t buffer_size; // internal buffer size per flow for non-third party transfer // Event callback gfalt_event_func event_callback; }; struct _gfalt_transfer_status{ const gfalt_hook_transfer_plugin_t* hook; }; namespace Gfal{ namespace Transfer{ class FileCopy { public: FileCopy(gfal2_context_t context); virtual ~FileCopy(); void start_copy(gfalt_params_t p, const std::string & src, const std::string & dst); void start_local_copy(gfalt_params_t p, const std::string & src, const std::string & dst); protected: const plugin_filecopy_call find_copy_plugin(const std::string & src, const std::string & dst, void** plugin_data); gfal2_context_t context; }; } // end Transfer } //end Gfal #endif //_GFAL2_TRANSFER_TYPES_INTERNAL_ gfal2-2.3.0/src/transfer/README_TRANSFER0000644000175000017500000000015312164561703016652 0ustar ellertellert- GFAL 2 TRANSFER : brief : * offers high level API for file transfer and file transfer monitoring gfal2-2.3.0/src/transfer/CMakeLists.txt0000644000175000017500000000314712164561703017234 0ustar ellertellert## default set of build ## defaults sources FILE(GLOB src_trans "*.cpp" ) FILE(GLOB src_libcpp "../libcpp/*.cpp") # gfal2 link and link dir SET(gfal2_link "gfal2") IF (MAIN_TRANSFER) LIST(APPEND header_transfer "gfal_transfer.h" "gfal_transfer_types.h" "gfal_transfer_plugins.h") include_directories( "../ " "../libcpp/" ${GLIB2_PKG_INCLUDE_DIRS} ${GTHREAD2_PKG_INCLUDE_DIRS} ${GLIBMM_PKG_INCLUDE_DIRS}) add_definitions( ${GLIB2_PKG_CFLAGS} ${GTHREAD2_PKG_CFLAGS} ${GLIBMM_PKG_CFLAGS}) add_library(gfal2_transfer SHARED ${src_trans} ${src_libcpp} ${src_exceptions} ) target_link_libraries(gfal2_transfer ${GLIB2_PKG_LIBRARIES} ${GTHREAD2_PKG_LIBRARIES} ${UUID_PKG_LIBRARIES} ${gfal2_link} ${GLIBMM_PKG_LIBRARIES} "dl") set_target_properties(gfal2_transfer PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/src VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH} SOVERSION ${VERSION_MAJOR} CLEAN_DIRECT_OUTPUT 1 OUTPUT_NAME ${OUTPUT_NAME_TRANSFER} ) add_PkgConfigFile_for_Library("gfal_transfer.pc" gfal2_transfer HEADER_DIRS "gfal2" DESCRIPTION "gfal_transfer pkgconfig file" REQUIRES "gfal2") install(TARGETS gfal2_transfer LIBRARY DESTINATION ${LIB_INSTALL_DIR} ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gfal_transfer.pc DESTINATION ${PKGCONFIG_FILES_DIR}) install(FILES ${header_transfer} DESTINATION ${INCLUDE_INSTALL_DIR}/gfal2/transfer) install(FILES "README_TRANSFER" DESTINATION ${DOC_INSTALL_DIR}) ENDIF (MAIN_TRANSFER) link_directories (${CMAKE_BINARY_DIR}/src) gfal2-2.3.0/src/transfer/gfal_cpp_wrapper.h0000644000175000017500000000166412164561703020162 0ustar ellertellert#pragma once #ifndef GFAL_CPP_WRAPPER_H #define GFAL_CPP_WRAPPER_H /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include gfal_handle gfal_init_cpp(); plugin_handle plugin_load(gfal_handle handle, GError ** err); void plugin_unload(plugin_handle); #endif /* GFAL_CPP_WRAPPER_H */ gfal2-2.3.0/src/transfer/gfal_transfer_params.cpp0000644000175000017500000002261512164561703021361 0ustar ellertellert/* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include // external C bindings extern "C" { void gfalt_params_handle_init(gfalt_params_t p, GError ** err){ p->callback = NULL; p->lock = false; p->nb_data_streams = GFALT_DEFAULT_NB_STREAM; p->timeout = GFALT_DEFAULT_TRANSFERT_TIMEOUT; p->start_offset = 0; p->tcp_buffer_size=0; p->replace_existing = false; p->local_transfers=true; p->strict_mode = false; p->parent_dir_create = false; uuid_clear(p->uuid); p->event_callback = NULL; } gfalt_params_t gfalt_params_handle_copy(gfalt_params_t params, GError ** err){ gfalt_params_t p = g_new0(struct _gfalt_params_t,1); memcpy(p, params, sizeof(struct _gfalt_params_t)); p->src_space_token = g_strdup(params->src_space_token); p->dst_space_token = g_strdup(params->dst_space_token); p->user_checksum = g_strdup(params->user_checksum); p->user_checksum_type = g_strdup(params->user_checksum_type); return p; } gfalt_params_t gfalt_params_handle_new(GError ** err){ gfalt_params_t p = g_new0(struct _gfalt_params_t,1); gfalt_params_handle_init(p, err); return p; } void gfalt_params_handle_delete(gfalt_params_t params, GError ** err){ if(params){ params->lock = false; g_free(params->src_space_token); g_free(params->dst_space_token); g_free(params->user_checksum); g_free(params->user_checksum_type); g_free(params); } } gint gfalt_set_timeout(gfalt_params_t params, guint64 timeout, GError** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid parameter handle value"); params->timeout = timeout; return 0; } guint64 gfalt_get_timeout(gfalt_params_t params, GError** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid params handle"); return params->timeout; } gint gfalt_set_nbstreams(gfalt_params_t params, guint nbstreams, GError** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid parameter handle"); params->nb_data_streams = nbstreams; return 0; } // gint gfalt_set_tcp_buffer_size(gfalt_params_t params, guint64 tcp_buffer_size, GError** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid params handle"); params->tcp_buffer_size = tcp_buffer_size; return 0; } // guint64 gfalt_get_tcp_buffer_size(gfalt_params_t params, GError** err){ return params->tcp_buffer_size; } gint gfalt_set_local_transfer_perm(gfalt_params_t params, gboolean local_transfer_status, GError ** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid params handle"); params->local_transfers = local_transfer_status; return 0; } gboolean gfalt_get_local_transfer_perm(gfalt_params_t params, GError ** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid params handle"); return params->local_transfers; } gint gfalt_set_replace_existing_file(gfalt_params_t params, gboolean replace, GError** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid params handle"); params->replace_existing = replace; return 0; } gboolean gfalt_get_replace_existing_file(gfalt_params_t params, GError** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid params handle"); return params->replace_existing; } gint gfalt_set_offset_from_source(gfalt_params_t params, off_t offset, GError** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid params handle"); params->start_offset = offset; return 0; } gint gfalt_set_user_data(gfalt_params_t params, gpointer user_data, GError** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid params handle"); params->user_data = user_data; return 0; } gpointer gfalt_get_user_data(gfalt_params_t params, GError** err){ g_return_val_err_if_fail(params != NULL, NULL, err, "[BUG] invalid params handle"); return params->user_data; } gint gfalt_set_monitor_callback(gfalt_params_t params, gfalt_monitor_func callback, GError** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid params handle"); params->callback = callback; return 0; } gfalt_monitor_func gfalt_get_monitor_callback(gfalt_params_t params, GError** err){ g_return_val_err_if_fail(params != NULL, NULL, err, "[BUG] invalid params handle"); return params->callback; } gint gfalt_set_event_callback(gfalt_params_t params, gfalt_event_func callback, GError** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid params handle"); params->event_callback = callback; return 0; } gfalt_event_func gfalt_get_event_callback (gfalt_params_t params, GError** err){ g_return_val_err_if_fail(params != NULL, NULL, err, "[BUG] invalid params handle"); return params->event_callback; } guint gfalt_get_nbstreams(gfalt_params_t params, GError** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid parameter handle"); return params->nb_data_streams ; } // // gint gfalt_set_strict_copy_mode(gfalt_params_t params, gboolean strict_mode, GError** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid parameter handle"); params->strict_mode = strict_mode; return 0; } // // gboolean gfalt_get_strict_copy_mode(gfalt_params_t params, GError** err){ g_return_val_err_if_fail(params != NULL, -1, err, "[BUG] invalid parameter handle"); return params->strict_mode ; } gint gfalt_set_src_spacetoken(gfalt_params_t params, const char* srm_spacetoken, GError** err){ if(params->src_space_token) g_free(params->src_space_token); params->src_space_token = g_strdup(srm_spacetoken); return 0; } gchar* gfalt_get_src_spacetoken(gfalt_params_t params, GError** err){ return params->src_space_token; } gint gfalt_set_dst_spacetoken(gfalt_params_t params, const char* srm_spacetoken, GError** err){ if(params->dst_space_token) g_free(params->dst_space_token); params->dst_space_token = g_strdup(srm_spacetoken); return 0; } gchar* gfalt_get_dst_spacetoken(gfalt_params_t params, GError** err){ return params->dst_space_token; } gint gfalt_set_checksum_check(gfalt_params_t params, gboolean value, GError** err){ params->checksum_check=value; return 0; } gboolean gfalt_get_checksum_check(gfalt_params_t params, GError** err){ return params->checksum_check; } // gint gfalt_set_create_parent_dir(gfalt_params_t params, gboolean value, GError** err){ params->parent_dir_create=value; return 0; } // gboolean gfalt_get_create_parent_dir(gfalt_params_t params, GError** err){ return params->parent_dir_create; } gint gfalt_set_user_defined_checksum(gfalt_params_t params, const gchar* chktype, const gchar* checksum, GError** err){ g_free(params->user_checksum); g_free(params->user_checksum_type); params->user_checksum= NULL; params->user_checksum_type= NULL; if (chktype) params->user_checksum_type = g_strdup(chktype); if (checksum) params->user_checksum = g_strdup(checksum); return 0; } gint gfalt_get_user_defined_checksum(gfalt_params_t params, gchar* chktype_buff, size_t chk_type_len, gchar* checksum_buff, size_t checksum_len, GError** err){ g_assert(chktype_buff && checksum_buff); if (params->user_checksum) g_strlcpy(checksum_buff, params->user_checksum, checksum_len); else checksum_buff[0] = '\0'; if (params->user_checksum_type) g_strlcpy(chktype_buff, params->user_checksum_type, chk_type_len); else chktype_buff[0] = '\0'; return 0; } gint gfalt_copy_get_status(gfalt_transfer_status_t s, GError ** err){ g_return_val_err_if_fail(s != NULL, -1, err, "[BUG] invalid transfer status handle"); return s->hook->status; } size_t gfalt_copy_get_average_baudrate(gfalt_transfer_status_t s, GError ** err){ g_return_val_err_if_fail(s != NULL, -1, err, "[BUG] invalid transfer status handle"); return s->hook->average_baudrate; } size_t gfalt_copy_get_instant_baudrate(gfalt_transfer_status_t s, GError ** err){ g_return_val_err_if_fail(s != NULL, -1, err, "[BUG] invalid transfer status handle"); return s->hook->instant_baudrate; } size_t gfalt_copy_get_bytes_transfered(gfalt_transfer_status_t s, GError ** err){ g_return_val_err_if_fail(s != NULL, -1, err, "[BUG] invalid transfer status handle"); return s->hook->bytes_transfered; } time_t gfalt_copy_get_elapsed_time(gfalt_transfer_status_t s, GError ** err){ g_return_val_err_if_fail(s != NULL, -1, err, "[BUG] invalid transfer status handle"); return s->hook->transfer_time; } /* int gfalt_set_uuid(gfalt_params_t, uuid_t uuid, GError** err); int gfalt_set_callback_mperiod(gfalt_params_t, unsigned int mtime, GError** err); // time in ms between two callback calls. void gfalt_set_monitor_tfr(gfalt_params_t params, gfalt_monitor_func callback);*/ } gfal2-2.3.0/src/transfer/gfal_transfer_internal.h0000644000175000017500000000205412164561703021352 0ustar ellertellert#pragma once #ifndef _GFAL2_TRANSFER_INTERNAL_ #define _GFAL2_TRANSFER_INTERNAL_ /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include extern "C" void gfalt_params_handle_init(gfalt_params_t handle, GError ** err); #endif //_GFAL2_TRANSFER_INTERNAL_ gfal2-2.3.0/src/transfer/gfal_transfer_util.cpp0000644000175000017500000000422112164561703021044 0ustar ellertellert/* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include GQuark GFAL_EVENT_PREPARE_ENTER = g_quark_from_static_string("PREPARE:ENTER"); GQuark GFAL_EVENT_PREPARE_EXIT = g_quark_from_static_string("PREPARE:EXIT"); GQuark GFAL_EVENT_TRANSFER_ENTER = g_quark_from_static_string("TRANSFER:ENTER"); GQuark GFAL_EVENT_TRANSFER_EXIT = g_quark_from_static_string("TRANSFER:EXIT"); GQuark GFAL_EVENT_CLOSE_ENTER = g_quark_from_static_string("CLOSE:ENTER"); GQuark GFAL_EVENT_CLOSE_EXIT = g_quark_from_static_string("CLOSE:EXIT"); GQuark GFAL_EVENT_CHECKSUM_ENTER = g_quark_from_static_string("CHECKSUM:ENTER"); GQuark GFAL_EVENT_CHECKSUM_EXIT = g_quark_from_static_string("CHECKSUM:EXIT"); GQuark GFAL_EVENT_CANCEL_ENTER = g_quark_from_static_string("CANCEL:ENTER"); GQuark GFAL_EVENT_CANCEL_EXIT = g_quark_from_static_string("CANCEL:EXIT"); int plugin_trigger_event(gfalt_params_t params, GQuark domain, gfal_event_side_t side, GQuark stage, const char* fmt, ...) { if (params->event_callback) { struct _gfalt_event event; char buffer[512] = {0}; GTimeVal tmst; g_get_current_time(&tmst); event.domain = domain; event.side = side; event.stage = stage; event.timestamp = tmst.tv_sec * 1000 + tmst.tv_usec / 1000; va_list msg_args; va_start(msg_args, fmt); vsnprintf(buffer, sizeof(buffer), fmt, msg_args); va_end(msg_args); event.description = buffer; params->event_callback(&event, params->user_data); } return 0; } gfal2-2.3.0/src/transfer/gfal_transfer_types.h0000644000175000017500000000641012164561703020702 0ustar ellertellert#pragma once #ifndef _GFAL2_TRANSFER_TYPES_ #define _GFAL2_TRANSFER_TYPES_ /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #define GFALT_DEFAULT_TRANSFERT_TIMEOUT 3600 #define GFALT_DEFAULT_NB_STREAM 0 #ifdef __cplusplus extern "C" { #endif // __cplusplus /** * @file gfal_transfer_types.h * @author Adrien Devresse */ /** * @brief container for transfer related parameters * */ typedef struct _gfalt_params_t* gfalt_params_t; /** * @brief internal status of a copy file action * */ typedef struct _gfalt_transfer_status* gfalt_transfer_status_t; /** * @brief copy gfalt_monitor_transfer * This function is called callback_mperiod milli-seconds in order to provide informations and a control on the tranfers. * @param src : URL of the source file * @param dst : URL of the dest file * @param user_data : external pointer provided before * */ typedef void (*gfalt_monitor_func)(gfalt_transfer_status_t h, const char* src, const char* dst, gpointer user_data) ; /** * @brief Predefined stages. */ extern GQuark GFAL_EVENT_PREPARE_ENTER; extern GQuark GFAL_EVENT_PREPARE_EXIT; extern GQuark GFAL_EVENT_TRANSFER_ENTER; extern GQuark GFAL_EVENT_TRANSFER_EXIT; extern GQuark GFAL_EVENT_CLOSE_ENTER; extern GQuark GFAL_EVENT_CLOSE_EXIT; extern GQuark GFAL_EVENT_CHECKSUM_ENTER; extern GQuark GFAL_EVENT_CHECKSUM_EXIT; extern GQuark GFAL_EVENT_CANCEL_ENTER; extern GQuark GFAL_EVENT_CANCEL_EXIT; typedef enum {GFAL_EVENT_SOURCE = 0, GFAL_EVENT_DESTINATION, GFAL_EVENT_NONE} gfal_event_side_t; /** * @brief Event message. */ struct _gfalt_event { gfal_event_side_t side; /*< Which side triggered the stage change */ gint64 timestamp; /*< Timestamp in milliseconds */ GQuark stage; /*< Stage. You can check the predefined ones. */ GQuark domain; /*< Domain/protocol of this stage. i.e. SRM*/ const char *description; /*< Additional description */ }; typedef struct _gfalt_event* gfalt_event_t; /** * This function is called when a transfer changes its stage. * @param e : Event message. * @param user_data : external pointer provided before */ typedef void (*gfalt_event_func)(const gfalt_event_t e, gpointer user_data); // plugin reserved API //! @cond typedef struct _gfalt_hook_transfer_plugin{ gpointer plugin_transfer_data; int status; size_t average_baudrate; size_t instant_baudrate; time_t transfer_time; size_t bytes_transfered; void* futur_usage[25]; } gfalt_hook_transfer_plugin_t; //! @endcond #ifdef __cplusplus } #endif // __cplusplus #endif //_GFAL2_TRANSFER_TYPES_ gfal2-2.3.0/src/transfer/gfal_transfer.h0000644000175000017500000002120512164561703017455 0ustar ellertellert#pragma once #ifndef _GFAL2_TRANSFER_ #define _GFAL2_TRANSFER_ /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #ifdef __cplusplus extern "C" { #endif // __cplusplus /** * @file gfal_transfer.h * gfal2 API for file transfers . * This API provide : * - third party file transfers * - monitoring of the transfer * - flow control for the transfer * @author Adrien Devresse */ /*! \defgroup transfer_group File Transfer API */ /*! \addtogroup transfer_group @{ */ /** initiate a new parameter handle */ gfalt_params_t gfalt_params_handle_new(GError ** err); /** delete a created parameters handle */ void gfalt_params_handle_delete(gfalt_params_t params, GError ** err); /** create a copy of a parameter handle */ gfalt_params_t gfalt_params_handle_copy(gfalt_params_t params, GError ** err); // // parameters management functions // these functions provide a way to configure a context for a transfer // they must be called before starting the transfer // // TIMEOUT OPTIONS /** * define the maximum time acceptable for the file tranfer * */ gint gfalt_set_timeout(gfalt_params_t, guint64 timeout, GError** err); /** * get the maximum connexion timeout **/ guint64 gfalt_get_timeout(gfalt_params_t handle, GError** err); // STREAM OPTIONS /** * define the maximum number of parallels connexion to use for the file tranfer * */ gint gfalt_set_nbstreams(gfalt_params_t, guint nbstreams, GError** err); /** * get the maximum number of parallels streams to use for the transfer **/ guint gfalt_get_nbstreams(gfalt_params_t params, GError** err); /** * define the size of the tcp buffer size for network transfer * */ gint gfalt_set_tcp_buffer_size(gfalt_params_t, guint64 tcp_buffer_size, GError** err); /** * get the size of the tcp buffer size for network transfer **/ guint64 gfalt_get_tcp_buffer_size(gfalt_params_t params, GError** err); /** enable or disable the non-third party transfer execution ( default : true ) */ gint gfalt_set_local_transfer_perm(gfalt_params_t, gboolean local_transfer_status, GError ** err); /** get the current authorisation for the non-third party transfer execution */ gboolean gfalt_get_local_transfer_perm(gfalt_params_t, GError ** err); // SRM SPECIFIC OPTIONS /** set the source spacetoken for SRM transfers */ gint gfalt_set_src_spacetoken(gfalt_params_t params, const char* srm_spacetoken, GError** err); /** get the source spacetoken for SRM transfers */ gchar* gfalt_get_src_spacetoken(gfalt_params_t params, GError** err); /** set the destination spacetoken for SRM transfers */ gint gfalt_set_dst_spacetoken(gfalt_params_t params, const char* srm_spacetoken, GError** err); /** get the destination spacetoken for SRM transfers */ gchar* gfalt_get_dst_spacetoken(gfalt_params_t params, GError** err); // CONSISTENCY OPTIONS /** * set the replace/overwritte option. * default : false * when True, if a destination file already exist, it is deleted before the copy. * */ gint gfalt_set_replace_existing_file(gfalt_params_t, gboolean replace, GError** err); /** * get the policy in case of destination file already existing ( replace or cancel ) * default : cancel * */ gboolean gfalt_get_replace_existing_file(gfalt_params_t, GError** err); /** * set the strict copy mode * default : false * In the strict copy mode, the destination/source checks are skipped. * only the minimum of the operations are done * This option can leads to undefined behavior depending of the underlying protocol */ gint gfalt_set_strict_copy_mode(gfalt_params_t, gboolean strict_mode, GError** err); /** * get the strict copy mode value * */ gboolean gfalt_get_strict_copy_mode(gfalt_params_t, GError** err); /** force additional checksum verification between source and destination an Error is return by the copy function is case of checksum failure. @warning for safety reason, even in case of checksum failure the destination file is not removed. */ gint gfalt_set_checksum_check(gfalt_params_t, gboolean value, GError** err); /** get the checksum verification boolean */ gboolean gfalt_get_checksum_check(gfalt_params_t, GError** err); /** set an user-defined checksum for file content verification set NULL & NULL clear the current one. This function requires to enable global checksum verification with \ref gfalt_set_checksum_check @param param : parameter handle @param chktype : checksum type string ( MD5, ADLER32, CRC32, etc... ) @param checksum : value of checksum in string format @param err : GError error report */ gint gfalt_set_user_defined_checksum(gfalt_params_t param, const gchar* chktype, const gchar* checksum, GError** err); /** get the current user-defined checksum for file content verification if current user-defined checksum is NULL, both of the buffer are set to empty string */ gint gfalt_get_user_defined_checksum(gfalt_params_t params, gchar* chktype_buff, size_t chk_type_len, gchar* checksum_buff, size_t checksum_len, GError** err); // Utility functions /** enable or disable the destination parent directory creation */ gint gfalt_set_create_parent_dir(gfalt_params_t, gboolean value, GError** err); /** enable or disable the destination parent directory creation */ gboolean gfalt_get_create_parent_dir(gfalt_params_t, GError** err); // Monitoring functions /** * set the user_data pointer for the monitoring callback * */ gint gfalt_set_user_data(gfalt_params_t, gpointer user_data, GError** err); /** * get the user_data pointer for the monitoring callback * */ gpointer gfalt_get_user_data(gfalt_params_t, GError** err); /** * @brief define a callback for monitoring the current transfer * The default value is NULL and no monitoring will occur */ gint gfalt_set_monitor_callback(gfalt_params_t params, gfalt_monitor_func callback, GError** err); /** * @brief get the current monitor callback */ gfalt_monitor_func gfalt_get_monitor_callback(gfalt_params_t params, GError** err); /** * @brief Define a callback for event monitoring * The default value is NULL and no monitoring will occur */ gint gfalt_set_event_callback(gfalt_params_t params, gfalt_event_func callback, GError** err); /** * @brief Get the current event monitor callback. */ gfalt_event_func gfalt_get_event_callback (gfalt_params_t params, GError** err); // // Main function for transfer launch // /** * @brief copy function * start a synchronous copy of the file * @param context : gfal context * @param params parameter handle ( \ref gfalt_parameters_new ) * @param src source URL supported by GFAL * @param dst destination URL supported by GFAL */ int gfalt_copy_file(gfal2_context_t context, gfalt_params_t params, const char* src, const char* dst, GError** err); // // Monitoring and flow control functions // /** * cancel the current file copy * NOT YET implemented * */ gint gfalt_copy_cancel(gfalt_transfer_status_t, GError** err); /** * get a transfer status indicator * * */ gint gfalt_copy_get_status(gfalt_transfer_status_t, GError ** err); /** * get an estimation of the average baudrate in bytes/s * */ size_t gfalt_copy_get_average_baudrate(gfalt_transfer_status_t, GError ** err); /** * get an estimation of the instant baudrate in bytes/s * */ size_t gfalt_copy_get_instant_baudrate(gfalt_transfer_status_t, GError ** err); /** * get the current number of bytes transfered * */ size_t gfalt_copy_get_bytes_transfered(gfalt_transfer_status_t, GError ** err); /** * get the elapsed tiem since the call to \ref gfalt_copy_file * */ time_t gfalt_copy_get_elapsed_time(gfalt_transfer_status_t, GError ** err); /** @} End of the File Transfer API */ // plugin reserved API //! @cond gfalt_transfer_status_t gfalt_transfer_status_create(const gfalt_hook_transfer_plugin_t * hook); void gfalt_transfer_status_delete(gfalt_transfer_status_t state); //! @endcond #ifdef __cplusplus } #endif // __cplusplus #endif //_GFAL2_TRANSFER_ gfal2-2.3.0/src/transfer/gfal_transfer_plugins.h0000644000175000017500000000412712164561703021222 0ustar ellertellert#pragma once #ifndef GFAL_TRANSFER_PLUGIN_H #define GFAL_TRANSFER_PLUGIN_H /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file gfal_transfer_plugins.h * gfal API for file transfers of the gfal2_transfer shared library. * This API provides specials functions calls reserved for the gfals plugins * @author Adrien Devresse */ #include #include #ifdef __cplusplus extern "C" { #endif // __cplusplus /// Convenience method for event callback /// @param params The transfer parameters. /// @param domain The plugin domain. /// @param side The side that triggered the change, if any. /// @param stage The new stage. /// @param fmt A format string for a message int plugin_trigger_event(gfalt_params_t params, GQuark domain, gfal_event_side_t side, GQuark stage, const char* fmt, ...); // // full list of functions that are re-searched by GFAL 2.0 in the plugins // /** prototype for the url_check entry point : this entry point is mandatory !!! * * */ typedef int(*plugin_url_check2_call)(plugin_handle, const char* src, const char* dst, gfal_url2_check check); // prototype for the filecopy entry point in the plugins typedef int (*plugin_filecopy_call)(plugin_handle, gfal2_context_t, gfalt_params_t, const char* src, const char* dst, GError** ); typedef const char * (*plugin_name_call)(); #ifdef __cplusplus } #endif // __cplusplus #endif //_GFAL2_TRANSFER_ gfal2-2.3.0/src/externals/0000755000175000017500000000000012164561703014650 5ustar ellertellertgfal2-2.3.0/src/externals/gsimplecache/0000755000175000017500000000000012164561703017274 5ustar ellertellertgfal2-2.3.0/src/externals/gsimplecache/SConscript0000644000175000017500000000070512164561703021310 0ustar ellertellert## main build script for simple cache system # Import('*') try: env_libgcache except NameError: env_libgcache = Environment() env_libgcache.Append(LIBS='glib2-0') env_libgcache.Append(CFLAGS=['-pthread','--std=c99']) static_libgcache = env_libgcache.StaticLibrary("libgsimplecache", [Glob("*.c")]) SO_gsimplecache = env_libgcache.SharedObject(target="gsimplecacheOS.os", source =[Glob("*.c")]) Return('static_libgcache', 'SO_gsimplecache') gfal2-2.3.0/src/externals/gsimplecache/gcachemain.h0000644000175000017500000000132412164561703021524 0ustar ellertellert#pragma once /** * @brief header for GCache * @author Adev * @date 27/07/11 * * */ #include #define MAX_LIST_LEN 20000 /** * copy the original object to a new one */ typedef void (*GSimpleCache_CopyConstructor)(gpointer original, gpointer copy); typedef struct _GSimpleCache_Handle GSimpleCache; GSimpleCache* gsimplecache_new(guint64 max_number_item, GSimpleCache_CopyConstructor value_copy, size_t size_item); void gsimplecache_delete(GSimpleCache* cache); void gsimplecache_add_item_kstr(GSimpleCache* cache, const char* key, void* item); int gsimplecache_take_one_kstr(GSimpleCache* cache, const char* key, void* res); gboolean gsimplecache_remove_kstr(GSimpleCache* cache, const char* key); gfal2-2.3.0/src/externals/gsimplecache/gcachemain.c0000644000175000017500000000752512164561703021530 0ustar ellertellert/** * @brief Simple cache system based on Hashmap * @author Adev * @date 27/07/11 * * */ #include #include #include #include #include #include #include "gcachemain.h" static const guint64 max_list_len = MAX_LIST_LEN; typedef struct _Internal_item{ int ref_count; char item[]; } Internal_item; struct _GSimpleCache_Handle{ GHashTable* table; GSimpleCache_CopyConstructor do_copy; size_t size_item; size_t max_number_item; pthread_mutex_t mux; }; static void gsimplecache_destroy_item_internal(gpointer a){ Internal_item* i = (Internal_item*) a; g_free(i); } static gboolean hash_strings_are_equals(gconstpointer a, gconstpointer b){ return (strcmp((char*) a, (char*) b)== 0); } /** * Construct a new cache with a capacity of max_size bytes * */ GSimpleCache* gsimplecache_new(guint64 max_number_item, GSimpleCache_CopyConstructor value_copy, size_t size_item){ GSimpleCache* ret = (GSimpleCache*) g_new(struct _GSimpleCache_Handle,1); ret->table = g_hash_table_new_full(&g_str_hash, &hash_strings_are_equals, &free, &gsimplecache_destroy_item_internal ); ret->do_copy = value_copy; ret->size_item = size_item; ret->max_number_item = max_number_item; pthread_mutex_init(&ret->mux,NULL); return ret; } /** * delete a cache object, all internals object are free * */ void gsimplecache_delete(GSimpleCache* cache){ if(cache != NULL){ pthread_mutex_lock(&cache->mux); g_hash_table_destroy (cache->table); pthread_mutex_unlock(&cache->mux); pthread_mutex_destroy(&cache->mux); g_free(cache); } } Internal_item* gsimplecache_find_kstr_internal(GSimpleCache* cache, const char* key){ Internal_item* ret = (Internal_item*) g_hash_table_lookup(cache->table, (gconstpointer) key); if(ret != NULL ){ return ret; } return NULL; } static gboolean gsimplecache_remove_internal_kstr(GSimpleCache* cache, const char* key){ return g_hash_table_remove(cache->table, (gconstpointer) key); } // simple lazy space maker, can be improved static void gsimplecache_manage_space(GSimpleCache* cache){ size_t len = (size_t) g_hash_table_size (cache->table); if(len >= cache->max_number_item){ g_hash_table_remove_all(cache->table); } } void gsimplecache_add_item_internal(GSimpleCache* cache, const char* key, void* item){ Internal_item* ret = gsimplecache_find_kstr_internal(cache, key); if(ret == NULL){ gsimplecache_manage_space(cache); ret = malloc(sizeof(struct _Internal_item) + cache->size_item); ret->ref_count = 2; cache->do_copy(item, ret->item); g_hash_table_insert(cache->table, strdup(key), ret); }else{ (ret->ref_count)++; } } /** * Add an item to the cache or increment the reference of this item of one if already exist * */ void gsimplecache_add_item_kstr(GSimpleCache* cache, const char* key, void* item){ pthread_mutex_lock(&cache->mux); gsimplecache_add_item_internal(cache, key, item); pthread_mutex_unlock(&cache->mux); } /** * remove the item in the cache, return TRUE if removed else FALSE * destroy the internal item automatically * */ gboolean gsimplecache_remove_kstr(GSimpleCache* cache, const char* key){ pthread_mutex_lock(&cache->mux); gboolean ret = gsimplecache_remove_internal_kstr(cache, key); pthread_mutex_unlock(&cache->mux); return ret; } /** * find the value in the cache, and decrease its internal reference count of 1. * If the item exist, set the item resu to the correct value and return 0 else return -1 * * */ int gsimplecache_take_one_kstr(GSimpleCache* cache, const char* key, void* res){ pthread_mutex_lock(&cache->mux); Internal_item* ret = gsimplecache_find_kstr_internal(cache, key); if(ret){ (ret->ref_count)--; cache->do_copy(ret->item, res); if(ret->ref_count <= 0) gsimplecache_remove_internal_kstr(cache, key); } pthread_mutex_unlock(&cache->mux); return (ret)?0:-1; } gfal2-2.3.0/src/externals/utils/0000755000175000017500000000000012164561703016010 5ustar ellertellertgfal2-2.3.0/src/externals/utils/CMakeLists.txt0000644000175000017500000000013212164561703020544 0ustar ellertellert FILE(GLOB _src_uri "*.c") SET(src_uri ${_src_uri} PARENT_SCOPE) gfal2-2.3.0/src/externals/utils/uri_util.h0000644000175000017500000000207512164561703020021 0ustar ellertellert#pragma once #ifndef GFAL_URI_UTIL_H #define GFAL_URI_UTIL_H /* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #ifdef __cplusplus extern "C" { #endif int gfal_hostname_from_uri(const char * uri, char* buff_hostname, size_t s_buff, GError ** err); /* take the first valid error in the arg list and set it in err_out, all the over ones are cleared properly last argument must be NULL return true if a valid error has been found, else false */ gboolean gfal_error_keep_first_err(GError** err_out, ...); #ifdef __cplusplus } #endif #endif gfal2-2.3.0/src/externals/utils/time_utils.h0000644000175000017500000000472612164561703020350 0ustar ellertellert#pragma once #ifndef _TIME_UTILS_H #define _TIME_UTILS_H /** similar to timeradd, timercmp, etc... function but for timerspec */ #define timespec_cmp(a, b, CMP) \ (((a)->tv_sec == (b)->tv_sec) ? \ ((a)->tv_nsec CMP (b)->tv_nsec) : \ ((a)->tv_sec CMP (b)->tv_sec)) #define timespec_add(a, b, result) \ do { \ (result)->tv_sec = (a)->tv_sec + (b)->tv_sec; \ (result)->tv_nsec = (a)->tv_nsec + (b)->tv_nsec; \ if ((result)->tv_nsec > 1000000000) { \ ++(result)->tv_sec; \ (result)->tv_nsec -= 1000000000; \ } \ } while (0) #define timespec_sub(a, b, result) \ do { \ (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \ (result)->tv_nsec = (a)->tv_nsec - (b)->tv_nsec; \ if ((result)->tv_nsec < 0) { \ --(result)->tv_sec; \ (result)->tv_nsec += 1000000000; \ } \ } while (0) #define timespec_clear(a) \ do { \ (a)->tv_sec = 0; \ (a)->tv_nsec = 0; \ } while (0) #define timespec_isset(a) \ ( !((a)->tv_sec == 0 && (a)->tv_nsec == 0) ) #define timespec_copy(a,b) \ do { \ (a)->tv_sec = (b)->tv_sec; \ (a)->tv_nsec = (b)->tv_nsec; \ } while (0) #endif gfal2-2.3.0/src/externals/utils/uri_util.c0000644000175000017500000000351312164561703020012 0ustar ellertellert /* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include static GQuark scope_uri(){ return g_quark_from_static_string("Gfal::Uri_util"); } int gfal_hostname_from_uri(const char * uri, char* buff_hostname, size_t s_buff, GError ** err){ g_return_val_if_fail (uri != NULL && buff_hostname != NULL && s_buff != 0, -1); char* p1, *p2; p1= strstr(uri, "://"); if( p1 != NULL){ p1+=3; while(*p1 != '\0' && *p1 == '/') // end of initial separators p1++; if( *p1 != '\0' && *(p1+1) != '\0'){ p2 =p1; while(*p2 != '\0' && *p2!= '/') p2++; g_strlcpy(buff_hostname, p1, MIN(p2-p1+1,s_buff)); return 0; } } g_set_error(err, scope_uri(), EINVAL, "Incorrect URI, no hostname"); return -1; } gboolean gfal_error_keep_first_err(GError** err_out, ...){ va_list err_list; GError ** tmp_err=NULL; gboolean done = FALSE; va_start(err_list, err_out); while( (tmp_err = va_arg(err_list,GError**)) != NULL){ if(*tmp_err != NULL){ if(done == FALSE){ g_propagate_error(err_out,*tmp_err); done =TRUE; }else{ g_clear_error(tmp_err); } } } va_end(err_list); return done; } gfal2-2.3.0/src/externals/CMakeLists.txt0000644000175000017500000000006612164561703017412 0ustar ellertellert add_subdirectory(utils) gfal2-2.3.0/src/externals/gwatchdog/0000755000175000017500000000000012164561703016617 5ustar ellertellertgfal2-2.3.0/src/externals/gwatchdog/gwatchdog.c0000644000175000017500000000332612164561703020736 0ustar ellertellert/** * @brief simple thread-safe watchdog system * @author Adev * @date 20/09/11 * * */ #include "gwatchdog.h" #include static gpointer internal_runtime(gpointer data){ GWatchdog* dog = (GWatchdog*) data; while( !cancel){ g_mutex_lock(dog->mutex); if(g_timer_elapsed(time,NULL) >= g_atomic_int_get(&dog->duration)){ dog->started = FALSE; g_mutex_unlock(dog->mutex); dog->func(dog->data); // execute the watchdog functions g_thread_exit(0); } g_mutex_unlock(dog->mutex); usleep(50000); } g_thread_exit(1); } /** * create a new watchdog **/ GWatchdog* gwatchdog_new(int duration, GThreadFunc func, gpointer data){ GWatchdog* dog = g_new(struct _GWatchdog, 1); dog->time = g_timer_new(); dog->duration = duration; dog->func = func; dog->data = data; dog->started = FALSE; dog->mutex = g_mutex_new(); dog->cancel = FALSE; return dog; } /*** * start a new watchdog, return -1 if already started */ int gwatchdog_start(GWatchdog* dog){ g_return_val_if_fail(timer != NULL, -2); int ret = -1; g_mutex_lock(dog->mutex); if(dog->started == FALSE){ g_timer_start(dog->time); dog->thread = g_thread_create(dog->func, dog->data, TRUE, NULL); ret = 0; } g_mutex_unlock(dog->mutex); return ret; } /*** * extend the timer of a duration x * return 0 if success else -1 if already stopped */ int gwatchdog_extend(GWatchdog* dog, int duration){ g_return_val_if_fail(timer != NULL, -2); int ret = -1; if(dog->started == TRUE && dog->cancel == FALSE){ g_atomic_int_add(&dog->duration,duration); ret = 0; } return ret; } void gwatchdog_delete(GWatchdog* dog){ if(dog){ dog->cancel = TRUE; g_thread_join(dog->thread); g_timer_free(dog->time); g_free(dog); } } gfal2-2.3.0/src/externals/gwatchdog/gwatchdog.h0000644000175000017500000000102412164561703020734 0ustar ellertellert#pragma once /** * @brief header for simple thread-safe watchdog system * @author Adev * @date 20/09/11 * * */ #include typedef struct _GWatchdog{ GTimer* time; int duration; gpointer data; GThreadFunc func; GMutex* mutex; gboolean started; gboolean cancel; GThread* thread; } GWatchdog; GWatchdog* gwatchdog_new(gint64 duration, GThreadFunc func, gpointer data); int gwatchdog_start(GWatchdog* dog); int gwatchdog_extend(GWatchdog* dog, int duration); void gwatchdog_delete(GWatchdog* dog); gfal2-2.3.0/src/externals/gskiplist/0000755000175000017500000000000012164561703016661 5ustar ellertellertgfal2-2.3.0/src/externals/gskiplist/SConscript0000644000175000017500000000106212164561703020672 0ustar ellertellert Import('*') try: env_gskiplist # env value to override for settings except: env_gskiplist = Environment() env_gskiplist.Append(LIBS='glib2-0') env_gskiplist.Append(CFLAGS=['-pthread','--std=c99']) static_gskiplist = env_gskiplist.StaticLibrary("libgsimplecache", [Glob("*.c")]) OS_gskiplist = env_gskiplist.SharedObject(target="gsimplecacheOS.os", source =[Glob("*.c")]) env_gskiplist.Depends(OS_gskiplist, Glob("*.h")) env_gskiplist.Depends(static_gskiplist, Glob("*.h")) Alias("OS_gskiplist", OS_gskiplist) Return('static_gskiplist', 'OS_gskiplist')gfal2-2.3.0/src/externals/gskiplist/gskiplist.h0000644000175000017500000000310212164561703021037 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #ifdef __cplusplus extern "C" { #endif typedef struct _GSkiplist GSkiplist; typedef struct _GSkipNode GSkipNode; typedef struct _GSkipLink GSkipLink; const extern int max_size; /** * Thread Safe Skip list */ struct _GSkiplist{ GSkipNode* head_node; GCompareFunc cmp_func; size_t length; GStaticRWLock lock; }; struct _GSkipLink{ GSkipNode* next; }; struct _GSkipNode{ void* key; void* data; guint height; GSkipLink link[]; }; GSkiplist* gskiplist_new(GCompareFunc func); void gskiplist_delete(GSkiplist* sk); gboolean gskiplist_insert(GSkiplist* sk, gpointer key, gpointer value); size_t gskiplist_length(GSkiplist* sk); gpointer gskiplist_remove(GSkiplist* sk, gpointer key); gpointer gskiplist_search(GSkiplist* sk, gpointer key); gpointer gskiplist_get_first_value(GSkiplist* sk); void gskiplist_clean(GSkiplist* sk); #ifdef __cplusplus } #endif gfal2-2.3.0/src/externals/gskiplist/gskiplist.c0000644000175000017500000001676512164561703021055 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "gskiplist.h" // proto gpointer gskiplist_get_first_value_internal(GSkiplist* sk); gpointer gskiplist_remove_internal(GSkiplist* sk, gpointer key); gboolean gskiplist_insert_internal(GSkiplist* sk, gpointer key, gpointer value); gpointer gskiplist_search_internal(GSkiplist* sk, gpointer key); GSkipNode* gskiplist_create_node(GSkiplist* sk, gpointer key, gpointer data, guint size); int gskiplist_compare(GSkiplist* sk, GSkipNode* a, gpointer b); int gskiplist_compare_node(GSkiplist* sk, GSkipNode* a, GSkipNode* b); guint gskiplist_get_random_size(GSkiplist * sk); const int max_size=32; /** * create a new skip list * */ GSkiplist* gskiplist_new(GCompareFunc func){ GSkiplist* skip = g_new0(GSkiplist, 1); skip->cmp_func = func; g_static_rw_lock_init(&skip->lock); skip->head_node = gskiplist_create_node(skip, NULL, NULL, 32); return skip; } /** * delete an existing skip list */ void gskiplist_delete(GSkiplist* sk){ if(sk){ g_static_rw_lock_writer_lock (&sk->lock); GSkipNode* node = sk->head_node->link[0].next; // clear everything while( node != NULL){ GSkipNode* prev_node = node; node = node->link[0].next; g_free(prev_node); } g_static_rw_lock_writer_unlock(&sk->lock); g_free(sk); } } /** * Insert an element in the SkipList sk * replace an existing one if already exist * @return return true if insert else False if replaced */ gboolean gskiplist_insert(GSkiplist* sk, gpointer key, gpointer value) { g_assert(sk != NULL); g_static_rw_lock_writer_lock(&sk->lock); gboolean res = gskiplist_insert_internal(sk, key, value); g_static_rw_lock_writer_unlock(&sk->lock); return res; } size_t gskiplist_length(GSkiplist* sk){ g_assert(sk != NULL); return sk->length; } gboolean gskiplist_insert_internal(GSkiplist* sk, gpointer key, gpointer value){ g_assert(sk != NULL); GSkipNode* new_node = gskiplist_create_node(sk, key, value, gskiplist_get_random_size(sk)); GSkipNode* node, * prec_node; node = prec_node = sk->head_node; int cmp_value; int i; for(i= max_size-1; i >= 0; --i){ cmp_value = gskiplist_compare_node(sk, node, new_node); while(node != NULL && cmp_value <0 ){ // walk in a level list to search a given value prec_node = node; node = node->link[i].next; if(node != NULL) cmp_value = gskiplist_compare_node(sk, node, new_node); } if( ( cmp_value > 0 || node == NULL) && i < new_node->height){ new_node->link[i].next = node; prec_node->link[i].next = new_node; } if( cmp_value == 0){ // equal to the next value to the next value -> insert and delete the old for(; i>= 0; --i){ if( i < new_node->height){ new_node->link[i].next = node->link[i].next; prec_node->link[i].next = new_node; }else{ prec_node->link[i].next = node->link[i].next; } } g_free(node); return FALSE; } node = prec_node; } sk->length++; return TRUE; } /** * remove a element from the list with the given key, * return the value if found else NULL * */ gpointer gskiplist_remove(GSkiplist* sk, gpointer key){ g_assert(sk != NULL); g_static_rw_lock_writer_lock(&sk->lock); gpointer res = gskiplist_remove_internal(sk, key); g_static_rw_lock_writer_unlock(&sk->lock); return res; } gpointer gskiplist_remove_internal(GSkiplist* sk, gpointer key){ GSkipNode* node, * prev_node; node = prev_node = sk->head_node; int cmp_value=0; int i; for(i = max_size-1; i >= 0; --i){ // begin to the high level and decrease lvl by level cmp_value = gskiplist_compare(sk, node, key); while(node != NULL && cmp_value <0 ){ // walk in a level list to search a given value prev_node = node; node = node->link[i].next; if(node != NULL) cmp_value = gskiplist_compare(sk, node, key); } if( cmp_value == 0){ // equal to the current node -> delete it for(; i>= 0; --i){ prev_node->link[i].next = node->link[i].next; } gpointer resu = node->data; sk->length--; g_free(node); return resu; } node = prev_node; // take the inferior nearest one } return NULL; } /** * Search an element and return the value if found else NULL pointer */ gpointer gskiplist_search(GSkiplist* sk, gpointer key) { g_assert(sk != NULL); g_static_rw_lock_reader_lock(&sk->lock); gpointer res= gskiplist_search_internal(sk, key); g_static_rw_lock_reader_lock(&sk->lock); return res; } gpointer gskiplist_search_internal(GSkiplist* sk, gpointer key){ GSkipNode* node,* prev_node; node = prev_node= sk->head_node; int cmp_value=0; int i; for(i = max_size-1; i >= 0; --i){ cmp_value = gskiplist_compare(sk, node, key); while(node != NULL && cmp_value <0 ){ // walk in a level list to search a given value prev_node = node; node = node->link[i].next; if(node != NULL) cmp_value = gskiplist_compare(sk, node, key); } if( cmp_value == 0 && node){ // equal to the next value to the next value -> insert and delete the old return node->data; } node = prev_node; } return NULL; } /** * Return the first value of the list */ gpointer gskiplist_get_first_value(GSkiplist* sk) { g_assert(sk != NULL); g_static_rw_lock_reader_lock(&sk->lock); gpointer res= gskiplist_get_first_value_internal(sk); g_static_rw_lock_reader_lock(&sk->lock); return res; } gpointer gskiplist_get_first_value_internal(GSkiplist* sk){ GSkipNode* firstn = sk->head_node->link[0].next; return (firstn)?(firstn->data):NULL; } /** * clean all value in the SkipList */ void gskiplist_clean(GSkiplist* sk){ g_static_rw_lock_writer_lock (&sk->lock); GSkipNode* node = sk->head_node->link[0].next; // clear everything while( node != NULL){ GSkipNode* prev_node = node; node = node->link[0].next; g_free(prev_node); } sk->length=0; memset(&sk->head_node->link, 0, sizeof(GSkipLink)*max_size); g_static_rw_lock_writer_unlock(&sk->lock); } GSkipNode* gskiplist_create_node(GSkiplist* sk, gpointer key, gpointer data, guint size){ const size_t memsize = sizeof(GSkipNode) + sizeof(GSkipLink)*size; GSkipNode* ret = g_malloc0(memsize); ret->data = data; ret->key = key; ret->height = size; return ret; } int gskiplist_compare_node(GSkiplist* sk, GSkipNode* a, GSkipNode* b){ if( a == sk->head_node) return -1; if( b== sk->head_node) return 1; return sk->cmp_func(a->key, b->key); } int gskiplist_compare(GSkiplist* sk, GSkipNode* a, gpointer b){ return( a == sk->head_node)?(-1):(sk->cmp_func(a->key, b)); } /** * return the height for a skip list point [1..] */ guint gskiplist_get_random_size(GSkiplist * sk){ guint res_rand = g_random_int(); int ret =1; while(res_rand %2){ // improve ret until last bit of rand is 0 ret++; res_rand = g_random_int(); } //printf("%d\n ",ret); return MIN(ret,max_size); } gfal2-2.3.0/src/externals/g_config_manager/0000755000175000017500000000000012164561703020115 5ustar ellertellertgfal2-2.3.0/src/externals/g_config_manager/CMakeLists.txt0000644000175000017500000000014412164561703022654 0ustar ellertellert FILE(GLOB "src_config_manager" "*.c") SET(src_g_shared_map "${src_config_manager}" PARENT_SCOPE) gfal2-2.3.0/src/externals/g_config_manager/g_config_manager.c0000644000175000017500000002574512164561703023543 0ustar ellertellert#include "g_config_manager.h" #include "../../common/gfal_common_errverbose.h" struct _GConfigManager{ GList* configs; }; struct ConfigFuncArgs{ const gchar *group_name; const gchar *key; gsize* length; union{ const gchar* mstring; gint mint; gboolean mbool; gchar** mstrlst; } value; }; const gchar * g_config_manager_no_config_msg = "No configuration are loaded inside this configuration manager"; GConfigManager_t g_config_manager_new(){ GConfigManager_t res = g_new0(struct _GConfigManager,1); return res; } GQuark g_config_manager_quark(){ return g_quark_from_static_string ("g_config_manager::GKeyFileError"); } void config_manager_destroyer(gpointer data){ g_key_file_free((GKeyFile*)data); } gboolean check_kv_exist(GConfigManager_t config_manager){ return (config_manager->configs != NULL); } gboolean check_kv_exist_error(GConfigManager_t config_manager, GError ** err){ gboolean res; if( (res = check_kv_exist(config_manager) )== FALSE){ g_set_error(err, g_config_manager_quark(), G_CONFIG_MANAGER_NO_CONFIG, "%s", g_config_manager_no_config_msg); } return res; } void g_config_manager_prepend_manager(GConfigManager_t config_manager, GConfigManager_t new_config){ g_assert(config_manager != NULL); g_assert(new_config != NULL); if(new_config->configs){ config_manager->configs = g_list_concat( config_manager->configs, g_list_copy(new_config->configs)); } } void g_config_manager_prepend_keyvalue(GConfigManager_t config_manager, GKeyFile * keyvalue_config){ g_assert(config_manager != NULL); config_manager->configs = g_list_prepend(config_manager->configs, keyvalue_config); } void g_config_manager_delete(GConfigManager_t config_manager){ if(config_manager){ g_list_free(config_manager->configs); g_free(config_manager); } } void g_config_manager_delete_full(GConfigManager_t config_manager){ if(config_manager){ g_list_free_full(config_manager->configs, &config_manager_destroyer); g_free(config_manager); } } typedef gpointer (*GConfigFunction)(GKeyFile* keyfile, gpointer userdata, GError** err); gpointer g_config_manager_find_first_valid(GConfigManager_t config_manager, GConfigFunction func, gpointer userdata, GError ** err){ g_assert(config_manager != NULL); GError* tmp_err=NULL; GList* list = g_list_first(config_manager->configs); while(list != NULL){ gpointer res = func((GKeyFile*) list->data, userdata, &tmp_err); if(tmp_err){ if(g_error_matches(tmp_err, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND) || g_error_matches(tmp_err, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND) ){ g_clear_error(&tmp_err); }else{ g_propagate_error(err, tmp_err); return NULL; } }else{ return res; } list = g_list_next(list); } g_set_error(err, g_config_manager_quark(), G_CONFIG_MANAGER_NOT_FOUND, "No configuration parameter with this value found"); return NULL; } gpointer g_config_manager_exec_on_first(GConfigManager_t config_manager, GConfigFunction func, gpointer userdata, GError ** err){ g_assert(config_manager != NULL); if (check_kv_exist_error(config_manager, err)){ return func((GKeyFile*) config_manager->configs->data, userdata, err); } return NULL; } static void propagate_config_manager_error(GError ** err, GError * tmp_err){ if(tmp_err){ g_propagate_error(err, tmp_err); } } gpointer GConfigFunction_get_string(GKeyFile* keyfile, gpointer userdata, GError** err){ struct ConfigFuncArgs *args = userdata; GError * tmp_err=NULL; gchar * res = g_key_file_get_string(keyfile, args->group_name, args->key, &tmp_err); propagate_config_manager_error(err, tmp_err); return res; } gchar * g_config_manager_get_string(GConfigManager_t config_manager, const gchar *group_name, const gchar *key, GError **error){ struct ConfigFuncArgs args = { .group_name = group_name, .key = key }; return (char*) g_config_manager_find_first_valid( config_manager, &GConfigFunction_get_string, &args, error); } gpointer GConfigFunction_get_string_list(GKeyFile* keyfile, gpointer userdata, GError** err){ struct ConfigFuncArgs *args = userdata; GError * tmp_err=NULL; gchar ** res = g_key_file_get_string_list(keyfile, args->group_name, args->key, args->length, &tmp_err); propagate_config_manager_error(err, tmp_err); return res; } gchar ** g_config_manager_get_string_list(GConfigManager_t config_manager,const gchar *group_name, const gchar *key, gsize *length, GError **error){ struct ConfigFuncArgs args = { .group_name = group_name, .key = key, .length = length }; return (gchar**) g_config_manager_find_first_valid( config_manager, &GConfigFunction_get_string_list, &args, error); } gpointer GConfigFunction_set_string_list(GKeyFile* keyfile, gpointer userdata, GError** err){ struct ConfigFuncArgs *args = userdata; g_key_file_set_string_list(keyfile, args->group_name, args->key, (const gchar * const*) args->value.mstrlst, *(args->length)); return NULL; } gint g_config_manager_set_string_list(GConfigManager_t config_manager, const gchar *group_name, const gchar *key, const gchar * const list[], gsize length, GError ** error){ GError * tmp_err=NULL; struct ConfigFuncArgs args = { .group_name = group_name, .key = key, .value = {.mstrlst = (gchar**) list }, .length = &length }; g_config_manager_find_first_valid( config_manager, &GConfigFunction_set_string_list, &args, error); if(tmp_err){ g_propagate_error(error, tmp_err); return -1; } return 0; } gpointer GConfigFunction_set_string(GKeyFile* keyfile, gpointer userdata, GError** err){ struct ConfigFuncArgs *args = userdata; g_key_file_set_string(keyfile, args->group_name, args->key, args->value.mstring); return NULL; } gint g_config_manager_set_string(GConfigManager_t config_manager,const gchar *group_name, const gchar *key, const gchar *string, GError** error){ struct ConfigFuncArgs args = { .group_name = group_name, .key = key, .value = { .mstring = string } }; GError * tmp_err=NULL; g_config_manager_exec_on_first( config_manager, &GConfigFunction_set_string, &args, &tmp_err); if(tmp_err){ g_propagate_error(error, tmp_err); return -1; } return 0; } gpointer GConfigFunction_get_int(GKeyFile* keyfile, gpointer userdata, GError** err){ struct ConfigFuncArgs *args = userdata; GError * tmp_err=NULL; int res = g_key_file_get_integer(keyfile, args->group_name, args->key, &tmp_err); propagate_config_manager_error(err, tmp_err); return GINT_TO_POINTER(res); } gint g_config_manager_get_integer(GConfigManager_t config_manager, const gchar *group_name, const gchar *key, GError **error){ struct ConfigFuncArgs args = { .group_name = group_name, .key = key }; int res = GPOINTER_TO_INT(g_config_manager_find_first_valid( config_manager, &GConfigFunction_get_int, &args, error) ); return res; } gpointer GConfigFunction_set_int(GKeyFile* keyfile, gpointer userdata, GError** err){ struct ConfigFuncArgs *args = userdata; g_key_file_set_integer(keyfile, args->group_name, args->key, args->value.mint); return NULL; } gint g_config_manager_set_integer(GConfigManager_t config_manager, const gchar *group_name, const gchar *key, gint value, GError** error){ GError * tmp_err=NULL; struct ConfigFuncArgs args = { .group_name = group_name, .key = key, .value = { .mint = value} }; g_config_manager_exec_on_first( config_manager, &GConfigFunction_set_int, &args, &tmp_err); if(tmp_err){ g_propagate_error(error, tmp_err); return -1; } return 0; } gpointer GConfigFunction_get_boolean(GKeyFile* keyfile, gpointer userdata, GError** err){ struct ConfigFuncArgs *args = userdata; GError * tmp_err=NULL; int res = g_key_file_get_boolean(keyfile, args->group_name, args->key, &tmp_err); propagate_config_manager_error(err, tmp_err); return GINT_TO_POINTER(res); } gboolean g_config_manager_get_boolean(GConfigManager_t config_manager, const gchar *group_name, const gchar *key, GError **error){ struct ConfigFuncArgs args = { .group_name = group_name, .key = key }; gboolean res = GPOINTER_TO_INT(g_config_manager_find_first_valid( config_manager, &GConfigFunction_get_boolean, &args, error) ); return res; } gpointer GConfigFunction_set_boolean(GKeyFile* keyfile, gpointer userdata, GError** err){ struct ConfigFuncArgs *args = userdata; g_key_file_set_boolean(keyfile, args->group_name, args->key, args->value.mbool); return NULL; } gint g_config_manager_set_boolean(GConfigManager_t config_manager, const gchar *group_name, const gchar *key, gboolean value, GError **error){ GError * tmp_err=NULL; struct ConfigFuncArgs args = { .group_name = group_name, .key = key, .value = { .mbool = value} }; g_config_manager_exec_on_first( config_manager, &GConfigFunction_set_boolean, &args, &tmp_err); if(tmp_err){ g_propagate_error(error, tmp_err); return -1; } return 0; } gfal2-2.3.0/src/externals/g_config_manager/g_config_manager.h0000644000175000017500000000470212164561703023536 0ustar ellertellert#ifndef G_CONFIG_MANAGER_H #define G_CONFIG_MANAGER_H #include #ifdef __cplusplus extern "C"{ #endif typedef struct _GConfigManager* GConfigManager_t; typedef enum _G_CONFIG_MANAGER_ERRORS{ G_CONFIG_MANAGER_NOT_FOUND =G_KEY_FILE_ERROR_NOT_FOUND, /* key/value not found */ G_CONFIG_MANAGER_NO_CONFIG, /* No configuration are loaded inside this configuration manager */ G_CONFIG_MANAGER_UNKNOW } G_CONFIG_MANAGER_ERRORS; GQuark g_config_manager_quark(); GConfigManager_t g_config_manager_new(); void g_config_manager_delete(GConfigManager_t config_manager); void g_config_manager_delete_full(GConfigManager_t config_manager); void g_config_manager_prepend_manager(GConfigManager_t config_manager, GConfigManager_t new_config); void g_config_manager_prepend_keyvalue(GConfigManager_t config_manager, GKeyFile * keyvalue_config); gchar * g_config_manager_get_string(GConfigManager_t config_manager, const gchar *group_name, const gchar *key, GError **error); gint g_config_manager_set_string(GConfigManager_t config_manager,const gchar *group_name, const gchar *key, const gchar *string, GError** error); gchar ** g_config_manager_get_string_list(GConfigManager_t config_manager,const gchar *group_name, const gchar *key, gsize *length, GError **error); gint g_config_manager_set_string_list(GConfigManager_t config_manager, const gchar *group_name, const gchar *key, const gchar * const list[], gsize length, GError ** error); gint g_config_manager_get_integer(GConfigManager_t config_manager, const gchar *group_name, const gchar *key, GError **error); gint g_config_manager_set_integer(GConfigManager_t config_manager, const gchar *group_name, const gchar *key, gint value, GError** err); gboolean g_config_manager_get_boolean(GConfigManager_t config_manager, const gchar *group_name, const gchar *key, GError **error); gint g_config_manager_set_boolean(GConfigManager_t config_manager, const gchar *group_name, const gchar *key, gboolean value, GError **error); #ifdef __cplusplus } #endif #endif // G_CONFIG_MANAGER_H gfal2-2.3.0/src/fdesc/0000755000175000017500000000000012164561703013727 5ustar ellertellertgfal2-2.3.0/src/fdesc/gfal_file_handle.h0000644000175000017500000000412012164561703017320 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * gfal_file_handle.h * gfal file descriptor * author Devresse Adrien **/ #include #include #include #ifdef __cplusplus extern "C" { #endif // convenience funcs /** * @brief create a gfal file handle * @param module_name : module name must be the plugin_name of the plugin creating the gfal_file_handle, \ref _gfal_plugin_interface * @param gpointer : internal file descriptor of the plugin to store* */ gfal_file_handle gfal_file_handle_new(const char* module_name, gpointer fdesc); /** * same than \ref gfal_file_handle_new but allows to store user data in the gfal file descriptor */ gfal_file_handle gfal_file_handle_ext_new(const char* module_name, gpointer fdesc, gpointer user_data); /** * same than \ref gfal_file_handle_new but allows to store user data in the gfal file descriptor */ gfal_file_handle gfal_file_handle_new2(const char *module_name, gpointer fdesc, gpointer user_data, const char *file_path); /** * return the file descriptor of this gfal file handle */ gpointer gfal_file_handle_get_fdesc(gfal_file_handle fh); /** * return the user data of this gfal file descriptor */ gpointer gfal_file_handle_get_user_data(gfal_file_handle user_data); /** * delete an existing gfal file descriptor * a file descriptor must be deleted by the plugin in the "close" functions */ void gfal_file_handle_delete(gfal_file_handle fh); #ifdef __cplusplus } #endif gfal2-2.3.0/src/fdesc/CMakeLists.txt0000644000175000017500000000025312164561703016467 0ustar ellertellert## default set of build ## defaults sources FILE(GLOB header_fdesc "gfal_file_handle.h") install(FILES ${header_fdesc} DESTINATION ${INCLUDE_INSTALL_DIR}/gfal2/fdesc) gfal2-2.3.0/src/cancel/0000755000175000017500000000000012164561703014070 5ustar ellertellertgfal2-2.3.0/src/cancel/gfal_cancel.h0000644000175000017500000000377112164561703016467 0ustar ellertellert#pragma once #ifndef _GFAL_CANCEL_H_ #define _GFAL_CANCEL_H_ /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include /** * @file gfal_cancel.h * * canceling operation for gfal 2.0 * **/ #ifdef __cplusplus extern "C" { #endif typedef struct gfal_cancel_token_s* gfal_cancel_token_t; typedef void (*gfal_cancel_hook_cb)(gfal2_context_t context, void* userdata); /// @brief cancel operation /// /// cancel all pending operation on the given context /// blocking until all operations finish /// all operations will return and trigger an ECANCELED if interrupted. /// Thread safe /// @param context : gfal 2 context /// @return number of operations canceled int gfal2_cancel(gfal2_context_t context); /// @brief cancel status /// return true if \ref gfal2_cancel has been called /// /// @param context /// @return true if success gboolean gfal2_is_canceled(gfal2_context_t context); /// /// register a cancel hook, called in each cancellation /// thread-safe gfal_cancel_token_t gfal2_register_cancel_callback(gfal2_context_t context, gfal_cancel_hook_cb cb, void* userdata); /// /// remove a cancel hook /// thread-safe void gfal2_remove_cancel_callback(gfal2_context_t context, gfal_cancel_token_t token); /// scope of a cancel action GQuark gfal_cancel_quark(); #ifdef __cplusplus } #endif #endif // _GFAL_CANCEL_H_ gfal2-2.3.0/src/cancel/CMakeLists.txt0000644000175000017500000000036612164561703016635 0ustar ellertellert## default set of build ## defaults sources FILE(GLOB src_cancel_f "*.c" ) SET(src_cancel ${src_cancel_f} PARENT_SCOPE) FILE(GLOB header_cancel "gfal_cancel.h") install(FILES ${header_cancel} DESTINATION ${INCLUDE_INSTALL_DIR}/gfal2/cancel) gfal2-2.3.0/src/cancel/gfal_cancel.c0000644000175000017500000000630012164561703016451 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include // // @author : Devresse Adrien // // cancel logic of gfal 2 // int gfal2_cancel(gfal2_context_t context){ if(context && context->cancel == TRUE) // avoid recursive calls return 0; g_mutex_lock(context->mux_cancel); const int n_cancel = g_atomic_int_get(&(context->running_ops)); context->cancel = TRUE; g_hook_list_invoke(&context->cancel_hooks, TRUE); g_mutex_unlock(context->mux_cancel); while( (g_atomic_int_get(&(context->running_ops))) > 0){ usleep(50); } context->cancel = FALSE; return n_cancel; } gboolean gfal2_is_canceled(gfal2_context_t context){ return context->cancel; } // increase number of the running task for the cancel logic // return negative value if task is canceled int gfal2_start_scope_cancel(gfal2_context_t context, GError** err){ if(context && context->cancel){ g_set_error(err, gfal_cancel_quark(), ECANCELED, "[gfal2_cancel] operation canceled by user"); return -1; } g_atomic_int_inc(&(context->running_ops)); return 0; } int gfal2_end_scope_cancel(gfal2_context_t context){ if(context) g_atomic_int_dec_and_test(&(context->running_ops)); return 0; } struct gfal_hook_data_s{ void* userdata; gfal2_context_t context; gfal_cancel_hook_cb cb; }; static void gfal_ghook_cancel_wrapper(gpointer data){ struct gfal_hook_data_s* d = data; d->cb(d->context, d->userdata); } gfal_cancel_token_t gfal2_register_cancel_callback(gfal2_context_t context, gfal_cancel_hook_cb cb, void* userdata){ g_assert(context && cb); g_mutex_lock(context->mux_cancel); GHook* h = g_hook_alloc(&context->cancel_hooks); struct gfal_hook_data_s* d = g_new(struct gfal_hook_data_s,1); d->context = context; d->userdata = userdata; d->cb = cb; h->data = d; h->destroy = &g_free; h->func = &gfal_ghook_cancel_wrapper; g_hook_append(&context->cancel_hooks, h); g_mutex_unlock(context->mux_cancel); return (gfal_cancel_token_t) h; } void gfal2_remove_cancel_callback(gfal2_context_t context, gfal_cancel_token_t token){ g_assert(context && token); g_mutex_lock(context->mux_cancel); GHook* cb = (GHook*) token; g_hook_destroy_link(&context->cancel_hooks, cb); g_mutex_unlock(context->mux_cancel); } /// /// GQuark gfal_cancel_quark(){ return g_quark_from_string("[gfal2_cancel]"); } gfal2-2.3.0/src/exceptions/0000755000175000017500000000000012164561703015024 5ustar ellertellertgfal2-2.3.0/src/exceptions/gerror_to_cpp.cpp0000644000175000017500000000154712164561703020403 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gerror_to_cpp.h" #include #include void Gfal::gerror_to_cpp(GError ** err){ g_return_if_fail(err != NULL); if(*err != NULL){ throw Glib::Error(*err); } } gfal2-2.3.0/src/exceptions/gfalcoreexception.hpp0000644000175000017500000000215712164561703021243 0ustar ellertellert#pragma once #ifndef GFALCOREEXCEPTION_H #define GFALCOREEXCEPTION_H /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include namespace Gfal{ class CoreException: public Glib::Error { public: CoreException(const Glib::Quark & scope, const std::string & msg, int mode); virtual ~CoreException() throw(); virtual const char* message_only() const throw(); private: /* add your private declarations */ }; } #endif /* GFALCOREEXCEPTION_H */ gfal2-2.3.0/src/exceptions/gerror_to_cpp.h0000644000175000017500000000151312164561703020041 0ustar ellertellert#pragma once #ifndef GERROR_TO_CPP_H #define GERROR_TO_CPP_H /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include namespace Gfal{ void gerror_to_cpp(GError ** err); } #endif /* GERROR_TO_CPP_H */ gfal2-2.3.0/src/exceptions/gfalcoreexception.cpp0000644000175000017500000000175012164561703021234 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gfalcoreexception.hpp" Gfal::CoreException::CoreException(const Glib::Quark & scope, const std::string & msg, int code) : Glib::Error(scope.id(), code, msg) { } Gfal::CoreException::~CoreException() throw() { } const char* Gfal::CoreException::message_only() const throw(){ return what().c_str(); } gfal2-2.3.0/src/exceptions/cpp_to_gerror.hpp0000644000175000017500000000245212164561703020404 0ustar ellertellert#pragma once #ifndef CPP_TO_GERROR_HPP #define CPP_TO_GERROR_HPP /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include namespace Gfal{ #define CPP_GERROR_TRY do{ \ try{ #define CPP_GERROR_CATCH(my_err_catched) } \ catch(Glib::Error & e){ \ g_set_error(my_err_catched, e.domain(), e.code(), "%s", e.what().c_str()); \ }catch(std::exception & e){ \ g_set_error(my_err_catched, 0, EPROTONOSUPPORT, "%s", e.what()); \ }catch(...){ \ g_set_error(my_err_catched, 0, EIO, "Undefined Exception catched: Bug found !! "); \ } \ }while(0) } #endif /* CPP_TO_GERROR_HPP */ gfal2-2.3.0/src/exceptions/cpp_to_gerror.cpp0000644000175000017500000000130312164561703020371 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "cpp_to_gerror.hpp" gfal2-2.3.0/src/libcpp/0000755000175000017500000000000012164561703014114 5ustar ellertellertgfal2-2.3.0/src/common/0000755000175000017500000000000012164561703014133 5ustar ellertellertgfal2-2.3.0/src/common/http/0000755000175000017500000000000012164561703015112 5ustar ellertellertgfal2-2.3.0/src/common/http/soapStub.h0000644000175000017500000003177212164561703017075 0ustar ellertellert/* soapStub.h Generated by gSOAP 2.7.13 from /root/build/gfal2/src/common/http/delegation.h Copyright(C) 2000-2009, Robert van Engelen, Genivia Inc. All Rights Reserved. This part of the software is released under one of the following licenses: GPL, the gSOAP public license, or Genivia's license for commercial use. */ #ifndef soapStub_H #define soapStub_H #include #include "stdsoap2.h" /******************************************************************************\ * * * Types with Custom Serializers * * * \******************************************************************************/ /******************************************************************************\ * * * Enumerations * * * \******************************************************************************/ /******************************************************************************\ * * * Classes and Structs * * * \******************************************************************************/ #if 0 /* volatile type: do not redeclare here */ #endif #if 0 /* volatile type: do not redeclare here */ #endif #ifndef SOAP_TYPE_tns__DelegationExceptionType #define SOAP_TYPE_tns__DelegationExceptionType (8) /* tns:DelegationExceptionType */ class SOAP_CMAC tns__DelegationExceptionType { public: std::string *message; /* optional element of type xsd:string */ struct soap *soap; /* transient */ public: virtual int soap_type() const { return 8; } /* = unique id SOAP_TYPE_tns__DelegationExceptionType */ virtual void soap_default(struct soap*); virtual void soap_serialize(struct soap*) const; virtual int soap_put(struct soap*, const char*, const char*) const; virtual int soap_out(struct soap*, const char*, int, const char*) const; virtual void *soap_get(struct soap*, const char*, const char*); virtual void *soap_in(struct soap*, const char*, const char*); tns__DelegationExceptionType() : message(NULL), soap(NULL) { } virtual ~tns__DelegationExceptionType() { } }; #endif #ifndef SOAP_TYPE_tns__NewProxyReq #define SOAP_TYPE_tns__NewProxyReq (9) /* tns:NewProxyReq */ class SOAP_CMAC tns__NewProxyReq { public: std::string *proxyRequest; /* optional element of type xsd:string */ std::string *delegationID; /* optional element of type xsd:string */ struct soap *soap; /* transient */ public: virtual int soap_type() const { return 9; } /* = unique id SOAP_TYPE_tns__NewProxyReq */ virtual void soap_default(struct soap*); virtual void soap_serialize(struct soap*) const; virtual int soap_put(struct soap*, const char*, const char*) const; virtual int soap_out(struct soap*, const char*, int, const char*) const; virtual void *soap_get(struct soap*, const char*, const char*); virtual void *soap_in(struct soap*, const char*, const char*); tns__NewProxyReq() : proxyRequest(NULL), delegationID(NULL), soap(NULL) { } virtual ~tns__NewProxyReq() { } }; #endif #ifndef SOAP_TYPE_SOAP_ENV__Detail #define SOAP_TYPE_SOAP_ENV__Detail (13) /* SOAP-ENV:Detail */ struct SOAP_ENV__Detail { public: tns__DelegationExceptionType *tns__DelegationException; /* optional element of type tns:DelegationExceptionType */ int __type; /* any type of element (defined below) */ void *fault; /* transient */ char *__any; }; #endif #ifndef SOAP_TYPE_tns__getProxyReqResponse #define SOAP_TYPE_tns__getProxyReqResponse (17) /* tns:getProxyReqResponse */ struct tns__getProxyReqResponse { public: std::string _getProxyReqReturn; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:string */ }; #endif #ifndef SOAP_TYPE_tns__getProxyReq #define SOAP_TYPE_tns__getProxyReq (20) /* tns:getProxyReq */ struct tns__getProxyReq { public: std::string _delegationID; /* required element of type xsd:string */ }; #endif #ifndef SOAP_TYPE_tns__getNewProxyReqResponse #define SOAP_TYPE_tns__getNewProxyReqResponse (21) /* tns:getNewProxyReqResponse */ struct tns__getNewProxyReqResponse { public: tns__NewProxyReq *getNewProxyReqReturn; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* optional element of type tns:NewProxyReq */ }; #endif #ifndef SOAP_TYPE_tns__getNewProxyReq #define SOAP_TYPE_tns__getNewProxyReq (25) /* tns:getNewProxyReq */ struct tns__getNewProxyReq { #ifdef WITH_NOEMPTYSTRUCT private: char dummy; /* dummy member to enable compilation */ #endif }; #endif #ifndef SOAP_TYPE_tns__renewProxyReqResponse #define SOAP_TYPE_tns__renewProxyReqResponse (26) /* tns:renewProxyReqResponse */ struct tns__renewProxyReqResponse { public: std::string _renewProxyReqReturn; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:string */ }; #endif #ifndef SOAP_TYPE_tns__renewProxyReq #define SOAP_TYPE_tns__renewProxyReq (29) /* tns:renewProxyReq */ struct tns__renewProxyReq { public: std::string _delegationID; /* required element of type xsd:string */ }; #endif #ifndef SOAP_TYPE_tns__putProxyResponse #define SOAP_TYPE_tns__putProxyResponse (30) /* tns:putProxyResponse */ struct tns__putProxyResponse { #ifdef WITH_NOEMPTYSTRUCT private: char dummy; /* dummy member to enable compilation */ #endif }; #endif #ifndef SOAP_TYPE_tns__putProxy #define SOAP_TYPE_tns__putProxy (33) /* tns:putProxy */ struct tns__putProxy { public: std::string _delegationID; /* required element of type xsd:string */ std::string _proxy; /* required element of type xsd:string */ }; #endif #ifndef SOAP_TYPE_tns__getTerminationTimeResponse #define SOAP_TYPE_tns__getTerminationTimeResponse (34) /* tns:getTerminationTimeResponse */ struct tns__getTerminationTimeResponse { public: time_t _getTerminationTimeReturn; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:dateTime */ }; #endif #ifndef SOAP_TYPE_tns__getTerminationTime #define SOAP_TYPE_tns__getTerminationTime (38) /* tns:getTerminationTime */ struct tns__getTerminationTime { public: std::string _delegationID; /* required element of type xsd:string */ }; #endif #ifndef SOAP_TYPE_tns__destroyResponse #define SOAP_TYPE_tns__destroyResponse (39) /* tns:destroyResponse */ struct tns__destroyResponse { #ifdef WITH_NOEMPTYSTRUCT private: char dummy; /* dummy member to enable compilation */ #endif }; #endif #ifndef SOAP_TYPE_tns__destroy #define SOAP_TYPE_tns__destroy (42) /* tns:destroy */ struct tns__destroy { public: std::string _delegationID; /* required element of type xsd:string */ }; #endif #ifndef SOAP_TYPE_SOAP_ENV__Header #define SOAP_TYPE_SOAP_ENV__Header (43) /* SOAP Header: */ struct SOAP_ENV__Header { #ifdef WITH_NOEMPTYSTRUCT private: char dummy; /* dummy member to enable compilation */ #endif }; #endif #ifndef SOAP_TYPE_SOAP_ENV__Code #define SOAP_TYPE_SOAP_ENV__Code (44) /* SOAP Fault Code: */ struct SOAP_ENV__Code { public: char *SOAP_ENV__Value; /* optional element of type xsd:QName */ struct SOAP_ENV__Code *SOAP_ENV__Subcode; /* optional element of type SOAP-ENV:Code */ }; #endif #ifndef SOAP_TYPE_SOAP_ENV__Reason #define SOAP_TYPE_SOAP_ENV__Reason (46) /* SOAP-ENV:Reason */ struct SOAP_ENV__Reason { public: char *SOAP_ENV__Text; /* optional element of type xsd:string */ }; #endif #ifndef SOAP_TYPE_SOAP_ENV__Fault #define SOAP_TYPE_SOAP_ENV__Fault (47) /* SOAP Fault: */ struct SOAP_ENV__Fault { public: char *faultcode; /* optional element of type xsd:QName */ char *faultstring; /* optional element of type xsd:string */ char *faultactor; /* optional element of type xsd:string */ struct SOAP_ENV__Detail *detail; /* optional element of type SOAP-ENV:Detail */ struct SOAP_ENV__Code *SOAP_ENV__Code; /* optional element of type SOAP-ENV:Code */ struct SOAP_ENV__Reason *SOAP_ENV__Reason; /* optional element of type SOAP-ENV:Reason */ char *SOAP_ENV__Node; /* optional element of type xsd:string */ char *SOAP_ENV__Role; /* optional element of type xsd:string */ struct SOAP_ENV__Detail *SOAP_ENV__Detail; /* optional element of type SOAP-ENV:Detail */ }; #endif /******************************************************************************\ * * * Typedefs * * * \******************************************************************************/ #ifndef SOAP_TYPE__QName #define SOAP_TYPE__QName (5) typedef char *_QName; #endif #ifndef SOAP_TYPE__XML #define SOAP_TYPE__XML (6) typedef char *_XML; #endif /******************************************************************************\ * * * Externals * * * \******************************************************************************/ /******************************************************************************\ * * * Service Operations * * * \******************************************************************************/ SOAP_FMAC5 int SOAP_FMAC6 tns__getProxyReq(struct soap*, std::string _delegationID, struct tns__getProxyReqResponse &_param_1); SOAP_FMAC5 int SOAP_FMAC6 tns__getNewProxyReq(struct soap*, struct tns__getNewProxyReqResponse &_param_2); SOAP_FMAC5 int SOAP_FMAC6 tns__renewProxyReq(struct soap*, std::string _delegationID, struct tns__renewProxyReqResponse &_param_3); SOAP_FMAC5 int SOAP_FMAC6 tns__putProxy(struct soap*, std::string _delegationID, std::string _proxy, struct tns__putProxyResponse &_param_4); SOAP_FMAC5 int SOAP_FMAC6 tns__getTerminationTime(struct soap*, std::string _delegationID, struct tns__getTerminationTimeResponse &_param_5); SOAP_FMAC5 int SOAP_FMAC6 tns__destroy(struct soap*, std::string _delegationID, struct tns__destroyResponse &_param_6); /******************************************************************************\ * * * Stubs * * * \******************************************************************************/ SOAP_FMAC5 int SOAP_FMAC6 soap_call_tns__getProxyReq(struct soap *soap, const char *soap_endpoint, const char *soap_action, std::string _delegationID, struct tns__getProxyReqResponse &_param_1); SOAP_FMAC5 int SOAP_FMAC6 soap_call_tns__getNewProxyReq(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct tns__getNewProxyReqResponse &_param_2); SOAP_FMAC5 int SOAP_FMAC6 soap_call_tns__renewProxyReq(struct soap *soap, const char *soap_endpoint, const char *soap_action, std::string _delegationID, struct tns__renewProxyReqResponse &_param_3); SOAP_FMAC5 int SOAP_FMAC6 soap_call_tns__putProxy(struct soap *soap, const char *soap_endpoint, const char *soap_action, std::string _delegationID, std::string _proxy, struct tns__putProxyResponse &_param_4); SOAP_FMAC5 int SOAP_FMAC6 soap_call_tns__getTerminationTime(struct soap *soap, const char *soap_endpoint, const char *soap_action, std::string _delegationID, struct tns__getTerminationTimeResponse &_param_5); SOAP_FMAC5 int SOAP_FMAC6 soap_call_tns__destroy(struct soap *soap, const char *soap_endpoint, const char *soap_action, std::string _delegationID, struct tns__destroyResponse &_param_6); /******************************************************************************\ * * * Skeletons * * * \******************************************************************************/ SOAP_FMAC5 int SOAP_FMAC6 soap_serve(struct soap*); SOAP_FMAC5 int SOAP_FMAC6 soap_serve_request(struct soap*); SOAP_FMAC5 int SOAP_FMAC6 soap_serve_tns__getProxyReq(struct soap*); SOAP_FMAC5 int SOAP_FMAC6 soap_serve_tns__getNewProxyReq(struct soap*); SOAP_FMAC5 int SOAP_FMAC6 soap_serve_tns__renewProxyReq(struct soap*); SOAP_FMAC5 int SOAP_FMAC6 soap_serve_tns__putProxy(struct soap*); SOAP_FMAC5 int SOAP_FMAC6 soap_serve_tns__getTerminationTime(struct soap*); SOAP_FMAC5 int SOAP_FMAC6 soap_serve_tns__destroy(struct soap*); #endif /* End of soapStub.h */ gfal2-2.3.0/src/common/http/README_PLUGIN_HTTP0000644000175000017500000000007712164561703017713 0ustar ellertellertDAV Plugin: - provides backends for HTTP/S and DAV/S servers. gfal2-2.3.0/src/common/http/gfal_http_3rdcopy.cpp0000644000175000017500000004301112164561703021230 0ustar ellertellert#include #include #include "gfal_http_plugin.h" #include "../transfer/gfal_transfer_plugins.h" struct PerformanceMarker { int index, count; time_t begin, latest; off_t transferred; off_t transferAvg; off_t transferInstant; PerformanceMarker(): index(0), count(0), begin(0), latest(0), transferred(0), transferAvg(0), transferInstant(0) {} }; struct PerformanceData { time_t begin, latest; int markerCount; PerformanceMarker* array; PerformanceData(): begin(0), latest(0), markerCount(0), array(NULL) {} ~PerformanceData() { if(array) delete [] array; } void update(const PerformanceMarker& in) { if (markerCount != in.count) { if(array) delete [] array; markerCount = in.count; array = new PerformanceMarker[markerCount]; } if (in.index < 0 || in.index > markerCount) return; PerformanceMarker& marker = array[in.index]; if (marker.begin == 0) marker.begin = in.latest; // Calculate differences time_t absElapsed = in.latest - marker.begin; time_t diffElapsed = in.latest - marker.latest; off_t diffSize = in.transferred - marker.transferred; // Update marker.index = in.index; marker.count = in.count; marker.latest = in.latest; marker.transferred = in.transferred; if (absElapsed) marker.transferAvg = marker.transferred / absElapsed; if (diffElapsed) marker.transferInstant = diffSize / diffElapsed; if (begin == 0 || begin < marker.begin) begin = marker.begin; if (latest < marker.latest) latest = marker.latest; } time_t absElapsed() const { return latest - begin; } off_t avgTransfer(void) const { off_t total = 0; for (int i = 0; i < markerCount; ++i) total += array[i].transferAvg; return total; } off_t diffTransfer() const { off_t total = 0; for (int i = 0; i < markerCount; ++i) total += array[i].transferInstant; return total; } off_t totalTransferred() const { off_t total = 0; for (int i = 0; i < markerCount; ++i) total += array[i].transferred; return total; } }; std::string gfal_http_3rdcopy_full_url(const std::string ref, const std::string& uri) { std::string final; if (uri.substr(0, 7).compare("http://") == 0) { final = uri; } else if (uri.substr(0, 8).compare("https://") == 0) { final = uri; } else if (uri[0] == '/') { size_t colon = ref.find(':'); size_t slash = std::string::npos; if (colon != std::string::npos) slash = ref.find('/', colon + 3); if (slash != std::string::npos) { std::string base = ref.substr(0, slash); final = base + uri; } } else { final = ref + uri; } return final; } std::string gfal_http_3rdcopy_full_delegation_endpoint(const std::string ref, const std::string& uri, GError** err) { std::string final = gfal_http_3rdcopy_full_url(ref, uri); if (final.substr(7).compare("http://") == 0) { g_error_new(http_plugin_domain, EINVAL, "Plain http can not be used for delegation (%s)", uri.c_str()); final.clear(); } return final; } Davix::HttpRequest* gfal_http_3rdcopy_do_copy(GfalHttpInternal* davix, gfalt_params_t params, const std::string& src, const std::string& dst, std::string &finalSource, GError** err) { Davix::DavixError* daverr = NULL; std::string nextSrc(src), prevSrc(src); std::string delegationEndpoint; Davix::RequestParams requestParams(davix->params); requestParams.setTransparentRedirectionSupport(false); requestParams.setClientCertCallbackX509(&gfal_http_authn_cert_X509, NULL); char nstreams[8]; snprintf(nstreams, sizeof(nstreams), "%d", gfalt_get_nbstreams(params, NULL)); Davix::HttpRequest* request = NULL; do { nextSrc = gfal_http_3rdcopy_full_url(prevSrc, nextSrc); prevSrc = nextSrc; delete request; gfal_log(GFAL_VERBOSE_TRACE, "\t\t%s: Next hop = '%s'", __func__, nextSrc.c_str()); request = davix->context.createRequest(nextSrc, &daverr); if (daverr) break; request->setRequestMethod("COPY"); request->addHeaderField("Destination", dst); request->addHeaderField("X-Number-Of-Streams", nstreams); request->setParameters(requestParams); request->beginRequest(&daverr); if (daverr) break; // If we get a X-Delegate-To, before continuing, delegate if (request->getAnswerHeader("X-Delegate-To", delegationEndpoint)) { delegationEndpoint = gfal_http_3rdcopy_full_delegation_endpoint(src, delegationEndpoint, err); if (*err) break; gfal_log(GFAL_VERBOSE_TRACE, "\t\t%s: Got delegation endpoint %s", __func__, delegationEndpoint.c_str()); char *dlg_id = gfal_http_delegate(delegationEndpoint, err); if (*err){ if(dlg_id){ free(dlg_id); dlg_id = NULL; } break; } if(dlg_id){ free(dlg_id); dlg_id=NULL; } gfal_log(GFAL_VERBOSE_TRACE, "\t\t%s: Delegated successfully", __func__); } } while (request->getAnswerHeader("Location", nextSrc)); finalSource = nextSrc; if (daverr) { davix2gliberr(daverr, err); delete daverr; } else if (!*err && request->getRequestCode() >= 300) { *err = g_error_new(http_plugin_domain, EIO, "Invalid status code: %d", request->getRequestCode()); } if (*err) { delete request; request = NULL; } return request; } void gfal_http_3rdcopy_do_callback(const char* src, const char* dst, gfalt_monitor_func callback, void* udata, const PerformanceData& perfData) { if (callback) { gfalt_hook_transfer_plugin_t hook; hook.average_baudrate = static_cast(perfData.avgTransfer()); hook.bytes_transfered = static_cast(perfData.totalTransferred()); hook.instant_baudrate = static_cast(perfData.diffTransfer()); hook.transfer_time = perfData.absElapsed(); gfalt_transfer_status_t state = gfalt_transfer_status_create(&hook); callback(state, src, dst, udata); gfalt_transfer_status_delete(state); } } int gfal_http_3rdcopy_performance_marks(const char* src, const char* dst, gfalt_params_t params, Davix::HttpRequest* request, GError** err) { Davix::DavixError* daverr = NULL; char buffer[1024], *p; size_t line_len; gfalt_monitor_func callback = gfalt_get_monitor_callback(params, NULL); void* udata = gfalt_get_user_data(params, NULL); PerformanceMarker holder; PerformanceData performance; time_t lastPerfCallback = time(NULL); while ((line_len = request->readLine(buffer, sizeof(buffer), &daverr)) >= 0 && !daverr) { buffer[line_len] = '\0'; // Skip heading whitespaces p = buffer; while (*p && p < buffer+sizeof(buffer) && isspace(*p)) ++p; if (strncasecmp("Perf Marker", p, 11) == 0) { memset(&holder, 0, sizeof(holder)); } else if (strncasecmp("Timestamp:", p, 10) == 0) { holder.latest = atol(p + 10); } else if (strncasecmp("Stripe Index:", p, 13) == 0) { holder.index = atoi(p + 13); } else if (strncasecmp("Stripe Bytes Transferred:", p, 25) == 0) { holder.transferred = atol(p + 26); } else if (strncasecmp("Total Stripe Count:", p, 19) == 0) { holder.count = atoi(p + 20); } else if (strncasecmp("End", p, 3) == 0) { performance.update(holder); time_t now = time(NULL); if (now - lastPerfCallback >= 1) { gfal_http_3rdcopy_do_callback(src, dst, callback, udata, performance); lastPerfCallback = now; } } else if (strncasecmp("success", p, 7) == 0) { break; } else if (strncasecmp("aborted", p, 7) == 0) { g_set_error(err, http_plugin_domain, ECANCELED, "Transfer aborted in the remote end"); break; } else if (strncasecmp("failed", p, 6) == 0) { g_set_error(err, http_plugin_domain, EIO, "Transfer failed: %s", p); break; } else { g_set_error(err, http_plugin_domain, EPROTO, "Unexpected message from remote host: %s", p); break; } } request->endRequest(&daverr); if (!*err && daverr) { davix2gliberr(daverr, err); delete daverr; } return *err != NULL; } int gfal_http_exists(plugin_handle plugin_data, const char *dst, GError** err) { GError *nestedError = NULL; struct stat st; gfal_http_stat(plugin_data, dst, &st, &nestedError); if (nestedError && nestedError->code == ENOENT) { g_error_free(nestedError); return 0; } else if (nestedError) { g_propagate_prefixed_error(err, nestedError, "[%s]", __func__); return -1; } else { return 1; } } int gfal_http_3rdcopy_overwrite(plugin_handle plugin_data, gfalt_params_t params, const char *dst, GError** err) { GError *nestedError = NULL; if (!gfalt_get_replace_existing_file(params,NULL)) return 0; int exists = gfal_http_exists(plugin_data, dst, &nestedError); if (exists < 0) { g_propagate_prefixed_error(err, nestedError, "[%s]", __func__); return -1; } else if (exists == 1) { gfal_http_unlinkG(plugin_data, dst, &nestedError); if (nestedError) { g_propagate_prefixed_error(err, nestedError, "[%s]", __func__); return -1; } gfal_log(GFAL_VERBOSE_TRACE, "File %s deleted with success (overwrite set)", dst); } return 0; } char* gfal_http_get_parent(const char* url) { char *parent = g_strdup(url); char *slash = strrchr(parent, '/'); if (slash) { *slash = '\0'; } else { g_free(parent); parent = NULL; } return parent; } int gfal_http_3rdcopy_make_parent(plugin_handle plugin_data, gfalt_params_t params, const char* dst, GError** err) { GError *nestedError = NULL; if (!gfalt_get_create_parent_dir(params, NULL)) return 0; char *parent = gfal_http_get_parent(dst); if (!parent) { *err = g_error_new(http_plugin_domain, EINVAL, "[%s] Could not get the parent directory of %s", __func__, dst); return -1; } int exists = gfal_http_exists(plugin_data, parent, &nestedError); // Error if (exists < 0) { g_propagate_prefixed_error(err, nestedError, "[%s]", __func__); return -1; } // Does exist else if (exists == 1) { return 0; } // Does not exist else { gfal_http_mkdirpG(plugin_data, parent, 0755, TRUE, &nestedError); if (nestedError) { g_propagate_prefixed_error(err, nestedError, "[%s]", __func__); return -1; } gfal_log(GFAL_VERBOSE_TRACE, "[%s] Created parent directory %s", __func__, parent); return 0; } } // dst may be NULL. In that case, the user-defined checksum // is compared with the source checksum. // If dst != NULL, then user-defined is ignored int gfal_http_3rdcopy_checksum(plugin_handle plugin_data, gfalt_params_t params, const char *src, const char *dst, GError** err) { if (!gfalt_get_checksum_check(params, NULL)) return 0; char checksum_type[1024]; char checksum_value[1024]; gfalt_get_user_defined_checksum(params, checksum_type, sizeof(checksum_type), checksum_value, sizeof(checksum_value), NULL); if (!checksum_type[0]) strcpy(checksum_type, "MD5"); GError *nestedError = NULL; char src_checksum[1024]; gfal_http_checksum(plugin_data, src, checksum_type, src_checksum, sizeof(src_checksum), 0, 0, &nestedError); if (nestedError) { g_propagate_prefixed_error(err, nestedError, "[%s]", __func__); return -1; } if (!dst) { if (checksum_value[0] && strcasecmp(src_checksum, checksum_value) != 0) { *err = g_error_new(http_plugin_domain, EINVAL, "[%s] Source and user-defined %s do not match (%s != %s)", __func__, checksum_type, src_checksum, checksum_value); return -1; } else if (checksum_value[0]) { gfal_log(GFAL_VERBOSE_TRACE, "[%s] Source and user-defined %s match: %s", __func__, checksum_type, checksum_value); } } else { char dst_checksum[1024]; gfal_http_checksum(plugin_data, dst, checksum_type, dst_checksum, sizeof(dst_checksum), 0, 0, &nestedError); if (nestedError) { g_propagate_prefixed_error(err, nestedError, "[%s]", __func__); return -1; } if (strcasecmp(src_checksum, dst_checksum) != 0) { *err = g_error_new(http_plugin_domain, EINVAL, "[%s] Source and destination %s do not match (%s != %s)", __func__, checksum_type, src_checksum, dst_checksum); return -1; } gfal_log(GFAL_VERBOSE_TRACE, "[%s] Source and destination %s match: %s", __func__, checksum_type, src_checksum); } return 0; } int gfal_http_3rdcopy(plugin_handle plugin_data, gfal2_context_t context, gfalt_params_t params, const char* src, const char* dst, GError** err) { GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); plugin_trigger_event(params, http_plugin_domain, GFAL_EVENT_NONE, GFAL_EVENT_PREPARE_ENTER, "%s => %s", src, dst); // When this flag is set, the plugin should handle overwriting, // parent directory creation,... if (!gfalt_get_strict_copy_mode(params, NULL)) { plugin_trigger_event(params, http_plugin_domain, GFAL_EVENT_SOURCE, GFAL_EVENT_CHECKSUM_ENTER, ""); if (gfal_http_3rdcopy_checksum(plugin_data, params, src, NULL, err) != 0) return -1; plugin_trigger_event(params, http_plugin_domain, GFAL_EVENT_SOURCE, GFAL_EVENT_CHECKSUM_EXIT, ""); if (gfal_http_3rdcopy_overwrite(plugin_data, params, dst, err) != 0 || gfal_http_3rdcopy_make_parent(plugin_data, params, dst, err) != 0) return -1; } std::string finalSource; Davix::HttpRequest* request = gfal_http_3rdcopy_do_copy(davix, params, src, dst, finalSource, err); if (!request) return -1; plugin_trigger_event(params, http_plugin_domain, GFAL_EVENT_NONE, GFAL_EVENT_PREPARE_EXIT, "%s => %s", src, dst); plugin_trigger_event(params, http_plugin_domain, GFAL_EVENT_NONE, GFAL_EVENT_TRANSFER_ENTER, "%s => %s", finalSource.c_str(), dst); int r = gfal_http_3rdcopy_performance_marks(src, dst, params, request, err); delete request; if (r != 0) return -1; plugin_trigger_event(params, http_plugin_domain, GFAL_EVENT_NONE, GFAL_EVENT_TRANSFER_EXIT, "%s => %s", finalSource.c_str(), dst); if (!gfalt_get_strict_copy_mode(params, NULL)) { plugin_trigger_event(params, http_plugin_domain, GFAL_EVENT_DESTINATION, GFAL_EVENT_CHECKSUM_ENTER, ""); if (gfal_http_3rdcopy_checksum(plugin_data, params, src, dst, err) != 0) return -1; plugin_trigger_event(params, http_plugin_domain, GFAL_EVENT_DESTINATION, GFAL_EVENT_CHECKSUM_ENTER, ""); } return 0; } int gfal_http_3rdcopy_check(plugin_handle plugin_data, const char* src, const char* dst, gfal_url2_check check) { if (check != GFAL_FILE_COPY) return 0; return (strncmp(src, "https://", 8) == 0 && strncmp(dst, "https://", 8) == 0); } gfal2-2.3.0/src/common/http/delegation.h0000644000175000017500000007260312164561703017406 0ustar ellertellert/* /root/build/gfal2/src/common/http/delegation.h Generated by wsdl2h 1.2.13 from /afs/cern.ch/user/a/aalvarez/Source/gfal2/src/common/http/delegation-1.1.0.wsdl and typemap.dat 2012-11-16 15:20:37 GMT gSOAP XML Web services tools. Copyright (C) 2001-2009 Robert van Engelen, Genivia Inc. All Rights Reserved. Part of this software is released under one of the following licenses: GPL or Genivia's license for commercial use. */ /* NOTE: - Compile this file with soapcpp2 to complete the code generation process. - Use soapcpp2 option -I to specify paths for #import To build with STL, 'stlvector.h' is imported from 'import' dir in package. - Use wsdl2h options -c and -s to generate pure C code or C++ code without STL. - Use 'typemap.dat' to control namespace bindings and type mappings. It is strongly recommended to customize the names of the namespace prefixes generated by wsdl2h. To do so, modify the prefix bindings in the Namespaces section below and add the modified lines to 'typemap.dat' to rerun wsdl2h. - Use Doxygen (www.doxygen.org) to browse this file. - Use wsdl2h option -l to view the software license terms. DO NOT include this file directly into your project. Include only the soapcpp2-generated headers and source code files. */ //gsoapopt w /******************************************************************************\ * * * http://www.gridsite.org/namespaces/delegation-1 * * * \******************************************************************************/ /******************************************************************************\ * * * Import * * * \******************************************************************************/ // STL vector containers (use option -s to disable) #import "stlvector.h" /******************************************************************************\ * * * Schema Namespaces * * * \******************************************************************************/ /* NOTE: It is strongly recommended to customize the names of the namespace prefixes generated by wsdl2h. To do so, modify the prefix bindings below and add the modified lines to typemap.dat to rerun wsdl2h: tns = "http://www.gridsite.org/namespaces/delegation-1" */ //gsoap tns schema namespace: http://www.gridsite.org/namespaces/delegation-1 //gsoap tns schema form: unqualified /******************************************************************************\ * * * Schema Types * * * \******************************************************************************/ // Forward declaration of class tns__DelegationExceptionType. class tns__DelegationExceptionType; // Forward declaration of class tns__NewProxyReq. class tns__NewProxyReq; /// "http://www.gridsite.org/namespaces/delegation-1":DelegationExceptionType is a complexType. class tns__DelegationExceptionType { public: /// @brief The cause of the delegation exception on the server side. /// Element message of type xs:string. std::string* message ; ///< Nullable pointer. /// A handle to the soap struct that manages this instance (automatically set) struct soap *soap ; }; /// "http://www.gridsite.org/namespaces/delegation-1":NewProxyReq is a complexType. /// @brief New proxy certificate request, containing the certificate request and a generated delegation ID. class tns__NewProxyReq { public: /// @brief The new RFC 3280 style proxy certificate request in PEM format with Base64 encoding. /// Element proxyRequest of type xs:string. std::string* proxyRequest ; ///< Nullable pointer. /// @brief The ID associated with the new delegation session. /// Element delegationID of type xs:string. std::string* delegationID ; ///< Nullable pointer. /// A handle to the soap struct that manages this instance (automatically set) struct soap *soap ; }; /// Element "http://www.gridsite.org/namespaces/delegation-1":DelegationException of type "http://www.gridsite.org/namespaces/delegation-1":DelegationExceptionType. /// Note: use wsdl2h option -g to generate this global element declaration. /******************************************************************************\ * * * Services * * * \******************************************************************************/ //gsoap tns service name: DelegationSoapBinding //gsoap tns service type: Delegation //gsoap tns service port: https://localhost:8443/glite-security-delegation //gsoap tns service namespace: http://www.gridsite.org/namespaces/delegation-1 //gsoap tns service transport: http://schemas.xmlsoap.org/soap/http /** @mainpage Service Definitions @section Service_bindings Bindings - @ref DelegationSoapBinding */ /** @page DelegationSoapBinding Binding "DelegationSoapBinding" @section DelegationSoapBinding_operations Operations of Binding "DelegationSoapBinding" - @ref tns__getProxyReq - @ref tns__getNewProxyReq - @ref tns__renewProxyReq - @ref tns__putProxy - @ref tns__getTerminationTime - @ref tns__destroy @section DelegationSoapBinding_ports Endpoints of Binding "DelegationSoapBinding" - https://localhost:8443/glite-security-delegation Note: use wsdl2h option -N to change the service binding prefix name */ /******************************************************************************\ * * * SOAP Fault Detail * * * \******************************************************************************/ /** The SOAP Fault is part of the gSOAP context and its content is accessed through the soap.fault->detail variable (SOAP 1.1) or the soap.fault->SOAP_ENV__Detail variable (SOAP 1.2). Use option -j to omit. */ struct SOAP_ENV__Detail { tns__DelegationExceptionType* tns__DelegationException ; ///< SOAP Fault element ""http://www.gridsite.org/namespaces/delegation-1":DelegationException" part "fault" int __type ; ///< set to SOAP_TYPE_X for a serializable type X void *fault ; ///< points to serializable object X or NULL _XML __any ; ///< Catch any element content in XML string. }; /******************************************************************************\ * * * DelegationSoapBinding * * * \******************************************************************************/ /******************************************************************************\ * * * tns__getProxyReq * * * \******************************************************************************/ /// Operation response struct "tns__getProxyReqResponse" of service binding "DelegationSoapBinding" operation "tns__getProxyReq" struct tns__getProxyReqResponse { /** getProxyReqReturn parameter documentation: The new RFC 3280 style proxy certificate request in PEM format with Base64 encoding. */ std::string _getProxyReqReturn; }; /// Operation "tns__getProxyReq" of service binding "DelegationSoapBinding" /** Operation details: Starts the delegation procedure by asking for a certificate signing request from the server. The server answers with a certificate signing request which includes the public key for the new delegated credentials. putProxy() has to be called to finish the procedure. Check if a delegation ID was provided. If not, generate a delegation id by hashing the client DN and client VOMS attributes. Check if the delegation ID already exists in the storage-area. If it does (a credential renewal is happening), check existing info (DN and VOMS attributes) against client info. Throw exception if they do not match. Create a new private/public key-pair (see also Key Generation Semantics). Generate a new proxy certificate request. Store private key and cert request in storage-cache-area, along with the requesting DN and VOMS attributes. - SOAP RPC literal style - SOAP Fault: "http://www.gridsite.org/namespaces/delegation-1":DelegationException (literal) C stub function (defined in soapClient.c[pp] generated by soapcpp2): @code int soap_call_tns__getProxyReq( struct soap *soap, NULL, // char *endpoint = NULL selects default endpoint for this operation NULL, // char *action = NULL selects default action for this operation // request parameters: std::string delegationID, // response parameters: struct tns__getProxyReqResponse& ); @endcode C server function (called from the service dispatcher defined in soapServer.c[pp]): @code int tns__getProxyReq( struct soap *soap, // request parameters: std::string delegationID, // response parameters: struct tns__getProxyReqResponse& ); @endcode C++ proxy class (defined in soapDelegationSoapBindingProxy.h): class DelegationSoapBinding; Note: use soapcpp2 option '-i' to generate improved proxy and service classes; */ //gsoap tns service method-style: getProxyReq rpc //gsoap tns service method-encoding: getProxyReq literal //gsoap tns service method-action: getProxyReq "" //gsoap tns service method-fault: getProxyReq tns__DelegationException int tns__getProxyReq( /** delegationID parameter documentation: The ID of the new delegation session, specified by the client. The ID can be empty. */ std::string _delegationID, ///< Request parameter struct tns__getProxyReqResponse & ///< Response struct parameter ); /******************************************************************************\ * * * tns__getNewProxyReq * * * \******************************************************************************/ /// Operation response struct "tns__getNewProxyReqResponse" of service binding "DelegationSoapBinding" operation "tns__getNewProxyReq" struct tns__getNewProxyReqResponse { /** getNewProxyReqReturn parameter documentation: The server side generated ID of the new delegation session and the new RFC 3280 style proxy certificate request in PEM format with Base64 encoding. */ tns__NewProxyReq* getNewProxyReqReturn; }; /// Operation "tns__getNewProxyReq" of service binding "DelegationSoapBinding" /** Operation details: Starts the delegation procedure by asking for a certificate signing request from the server. The server answers with a certificate signing request which includes the public key for the new delegated credentials. putProxy() has to be called to finish the procedure. Generate a delegation ID by hashing the client DN and client VOMS attributes. Check if the delegation ID already exists in the storage-area. If it does, check existing info (DN and VOMS attributes) against client info. Throw exception if they do not match, because then this is the rare case of hash collision, i.e. two different clients are mapped to the same delegation ID. Create a new private/public key-pair (see also Key Generation Semantics). Generate a new certificate request. Store private key and cert request in storage-cache-area, along with the requesting DN and VOMS attributes. - SOAP RPC literal style - SOAP Fault: "http://www.gridsite.org/namespaces/delegation-1":DelegationException (literal) C stub function (defined in soapClient.c[pp] generated by soapcpp2): @code int soap_call_tns__getNewProxyReq( struct soap *soap, NULL, // char *endpoint = NULL selects default endpoint for this operation NULL, // char *action = NULL selects default action for this operation // request parameters: // response parameters: struct tns__getNewProxyReqResponse& ); @endcode C server function (called from the service dispatcher defined in soapServer.c[pp]): @code int tns__getNewProxyReq( struct soap *soap, // request parameters: // response parameters: struct tns__getNewProxyReqResponse& ); @endcode C++ proxy class (defined in soapDelegationSoapBindingProxy.h): class DelegationSoapBinding; Note: use soapcpp2 option '-i' to generate improved proxy and service classes; */ //gsoap tns service method-style: getNewProxyReq rpc //gsoap tns service method-encoding: getNewProxyReq literal //gsoap tns service method-action: getNewProxyReq "" //gsoap tns service method-fault: getNewProxyReq tns__DelegationException int tns__getNewProxyReq( struct tns__getNewProxyReqResponse & ///< Response struct parameter ); /******************************************************************************\ * * * tns__renewProxyReq * * * \******************************************************************************/ /// Operation response struct "tns__renewProxyReqResponse" of service binding "DelegationSoapBinding" operation "tns__renewProxyReq" struct tns__renewProxyReqResponse { /** renewProxyReqReturn parameter documentation: The new RFC 3280 style proxy certificate request, which is to replace the existing one, in PEM format with Base64 encoding. */ std::string _renewProxyReqReturn; }; /// Operation "tns__renewProxyReq" of service binding "DelegationSoapBinding" /** Operation details: Restarts the delegation procedure by asking for a certificate signing request from the server for an already existing delegation ID. The server answers with a certificate signing request which includes the public key for new delegated credentials. putProxy() has to be called to finish the procedure. Check if a delegation ID was provided. If not, generate a delegation id by hashing the client DN and client VOMS attributes. Check if the delegation ID already exists in the storage-area. If it does not, then throw an exception. Check if the existing info (DN and VOMS attributes) against client info. Throw exception if they do not match. Create a new private/public key-pair (see also Key Generation Semantics). Generate a new certificate request. Store private key and cert request in storage-cache-area, along with the requesting DN and VOMS attributes. - SOAP RPC literal style - SOAP Fault: "http://www.gridsite.org/namespaces/delegation-1":DelegationException (literal) C stub function (defined in soapClient.c[pp] generated by soapcpp2): @code int soap_call_tns__renewProxyReq( struct soap *soap, NULL, // char *endpoint = NULL selects default endpoint for this operation NULL, // char *action = NULL selects default action for this operation // request parameters: std::string delegationID, // response parameters: struct tns__renewProxyReqResponse& ); @endcode C server function (called from the service dispatcher defined in soapServer.c[pp]): @code int tns__renewProxyReq( struct soap *soap, // request parameters: std::string delegationID, // response parameters: struct tns__renewProxyReqResponse& ); @endcode C++ proxy class (defined in soapDelegationSoapBindingProxy.h): class DelegationSoapBinding; Note: use soapcpp2 option '-i' to generate improved proxy and service classes; */ //gsoap tns service method-style: renewProxyReq rpc //gsoap tns service method-encoding: renewProxyReq literal //gsoap tns service method-action: renewProxyReq "" //gsoap tns service method-fault: renewProxyReq tns__DelegationException int tns__renewProxyReq( /** delegationID parameter documentation: The ID of an already existing delegation session, where the client wants to renew the delegated credential. */ std::string _delegationID, ///< Request parameter struct tns__renewProxyReqResponse & ///< Response struct parameter ); /******************************************************************************\ * * * tns__putProxy * * * \******************************************************************************/ /// Operation response struct "tns__putProxyResponse" of service binding "DelegationSoapBinding" operation "tns__putProxy" struct tns__putProxyResponse { }; /// Operation "tns__putProxy" of service binding "DelegationSoapBinding" /** Operation details: Finishes the delegation procedure by sending the signed proxy certificate to the server. Check if a delegation ID was provided. If not, generate a delegation id by hashing the client DN and client VOMS attributes. Check if the delegation ID already exists in the storage-area. If it does, check existing info (DN and VOMS attributes) against client info. Throw exception if it does not match. Check, if client information matches proxy information. Check given proxy against private key of delegation ID in storage-cache-area. If they do not match, throw exception. Store proxy in storage-area and clean up the storage-cache-area. - SOAP RPC literal style - SOAP Fault: "http://www.gridsite.org/namespaces/delegation-1":DelegationException (literal) C stub function (defined in soapClient.c[pp] generated by soapcpp2): @code int soap_call_tns__putProxy( struct soap *soap, NULL, // char *endpoint = NULL selects default endpoint for this operation NULL, // char *action = NULL selects default action for this operation // request parameters: std::string delegationID, std::string proxy, // response parameters: struct tns__putProxyResponse& ); @endcode C server function (called from the service dispatcher defined in soapServer.c[pp]): @code int tns__putProxy( struct soap *soap, // request parameters: std::string delegationID, std::string proxy, // response parameters: struct tns__putProxyResponse& ); @endcode C++ proxy class (defined in soapDelegationSoapBindingProxy.h): class DelegationSoapBinding; Note: use soapcpp2 option '-i' to generate improved proxy and service classes; */ //gsoap tns service method-style: putProxy rpc //gsoap tns service method-encoding: putProxy literal //gsoap tns service method-action: putProxy "" //gsoap tns service method-fault: putProxy tns__DelegationException int tns__putProxy( /** delegationID parameter documentation: The ID of an already existing delegation session, initiated by getProxyReq() or getNewProxyReq(). */ std::string _delegationID, ///< Request parameter /** proxy parameter documentation: RFC 3280 style proxy certificate, signed by the client, in PEM format with Base64 encoding. */ std::string _proxy, ///< Request parameter struct tns__putProxyResponse & ///< Response struct parameter ); /******************************************************************************\ * * * tns__getTerminationTime * * * \******************************************************************************/ /// Operation response struct "tns__getTerminationTimeResponse" of service binding "DelegationSoapBinding" operation "tns__getTerminationTime" struct tns__getTerminationTimeResponse { /** getTerminationTimeReturn parameter documentation: The date and time when the delegated credentials will expire. */ time_t _getTerminationTimeReturn; }; /// Operation "tns__getTerminationTime" of service binding "DelegationSoapBinding" /** Operation details: Returns the termination (expiration) date and time of the credential, associated with the given delegaion ID. If there was no delegation ID, then generate one by hashing the client DN and client VOMS attributes. - SOAP RPC literal style - SOAP Fault: "http://www.gridsite.org/namespaces/delegation-1":DelegationException (literal) C stub function (defined in soapClient.c[pp] generated by soapcpp2): @code int soap_call_tns__getTerminationTime( struct soap *soap, NULL, // char *endpoint = NULL selects default endpoint for this operation NULL, // char *action = NULL selects default action for this operation // request parameters: std::string delegationID, // response parameters: struct tns__getTerminationTimeResponse& ); @endcode C server function (called from the service dispatcher defined in soapServer.c[pp]): @code int tns__getTerminationTime( struct soap *soap, // request parameters: std::string delegationID, // response parameters: struct tns__getTerminationTimeResponse& ); @endcode C++ proxy class (defined in soapDelegationSoapBindingProxy.h): class DelegationSoapBinding; Note: use soapcpp2 option '-i' to generate improved proxy and service classes; */ //gsoap tns service method-style: getTerminationTime rpc //gsoap tns service method-encoding: getTerminationTime literal //gsoap tns service method-action: getTerminationTime "" //gsoap tns service method-fault: getTerminationTime tns__DelegationException int tns__getTerminationTime( /** delegationID parameter documentation: The ID of an already existing delegation session to be queried. */ std::string _delegationID, ///< Request parameter struct tns__getTerminationTimeResponse& ///< Response struct parameter ); /******************************************************************************\ * * * tns__destroy * * * \******************************************************************************/ /// Operation response struct "tns__destroyResponse" of service binding "DelegationSoapBinding" operation "tns__destroy" struct tns__destroyResponse { }; /// Operation "tns__destroy" of service binding "DelegationSoapBinding" /** Operation details: Destroys the delegated credentials associated with the given delegation ID immediately. If there was no delegation ID, then generate one by hashing the client DN and client VOMS attributes. - SOAP RPC literal style - SOAP Fault: "http://www.gridsite.org/namespaces/delegation-1":DelegationException (literal) C stub function (defined in soapClient.c[pp] generated by soapcpp2): @code int soap_call_tns__destroy( struct soap *soap, NULL, // char *endpoint = NULL selects default endpoint for this operation NULL, // char *action = NULL selects default action for this operation // request parameters: std::string delegationID, // response parameters: struct tns__destroyResponse& ); @endcode C server function (called from the service dispatcher defined in soapServer.c[pp]): @code int tns__destroy( struct soap *soap, // request parameters: std::string delegationID, // response parameters: struct tns__destroyResponse& ); @endcode C++ proxy class (defined in soapDelegationSoapBindingProxy.h): class DelegationSoapBinding; Note: use soapcpp2 option '-i' to generate improved proxy and service classes; */ //gsoap tns service method-style: destroy rpc //gsoap tns service method-encoding: destroy literal //gsoap tns service method-action: destroy "" //gsoap tns service method-fault: destroy tns__DelegationException int tns__destroy( /** delegationID parameter documentation: The ID of an already existing delegation session to be destroyed. */ std::string _delegationID, ///< Request parameter struct tns__destroyResponse & ///< Response struct parameter ); /* End of /root/build/gfal2/src/common/http/delegation.h */ gfal2-2.3.0/src/common/http/CMakeLists.txt0000644000175000017500000000414012164561703017651 0ustar ellertellertcmake_minimum_required (VERSION 2.6) IF(PLUGIN_HTTP) include (CheckLibraryExists) FILE(GLOB src_http "*.cpp") message(STATUS "Using gsoapssl flags ${GSOAP_SSL_PKG_CFLAGS}") # Defaults if (NOT DEFINED DELEGATION_WSDL) set (DELEGATION_WSDL "${CMAKE_CURRENT_SOURCE_DIR}/delegation-1.1.0.wsdl") endif (NOT DEFINED DELEGATION_WSDL) # Compile the WSDL add_custom_command (OUTPUT typemap.dat COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/typemap.dat ${CMAKE_CURRENT_BINARY_DIR}/typemap.dat) add_custom_command (OUTPUT delegation.h COMMAND ${GSOAP_WSDL2H} -I/usr/share/gsoap/import/ -o${CMAKE_CURRENT_BINARY_DIR}/delegation.h ${DELEGATION_WSDL} DEPENDS typemap.dat) add_custom_command (OUTPUT soapC.cpp soapClient.cpp COMMAND ${GSOAP_SOAPCPP2} -I/usr/share/gsoap/import/ ${CMAKE_CURRENT_BINARY_DIR}/delegation.h DEPENDS delegation.h) # Includes include_directories (${CMAKE_CURRENT_BINARY_DIR} ${GRIDSITE_INCLUDE_DIR} ${GSOAP_INCLUDE_DIR}) include_directories(${DAVIX_PKG_INCLUDE_DIRS}) # link link_directories( ${DAVIX_PKG_LIBRARY_DIRS}) add_definitions(${GSOAP_SSL_PKG_CFLAGS}) add_library (plugin_http SHARED ${src_http} ${src_gsimplecache} ${CMAKE_CURRENT_BINARY_DIR}/soapC.cpp ${CMAKE_CURRENT_BINARY_DIR}/soapClient.cpp) target_link_libraries(plugin_http ${gfal2_link} gfal2_transfer ${DAVIX_PKG_LIBRARIES} gsoapssl++ gridsite) set_target_properties(plugin_http PROPERTIES CLEAN_DIRECT_OUTPUT 1 OUTPUT_NAME ${OUTPUT_NAME_HTTP} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/plugins ) install(TARGETS plugin_http LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR}) install(FILES "README_PLUGIN_HTTP" DESTINATION ${DOC_INSTALL_DIR}) ENDIF(PLUGIN_HTTP) gfal2-2.3.0/src/common/http/gfal_http_plugin.h0000644000175000017500000000601312164561703020611 0ustar ellertellert#ifndef _GFAL_HTTP_PLUGIN_H #define _GFAL_HTTP_PLUGIN_H #include "../gfal_common_errverbose.h" #include "../fdesc/gfal_file_handle.h" #include "../gfal_common_internal.h" #include "../gfal_common_plugin.h" #include "../gfal_types.h" #include struct GfalHttpInternal { GfalHttpInternal(); Davix::Context context; Davix::DavPosix posix; Davix::RequestParams params; }; struct GfalHttpPluginData{ GfalHttpPluginData(); ~GfalHttpPluginData(); GfalHttpInternal* davix; GMutex* _init_mux; }; GfalHttpInternal* gfal_http_get_plugin_context(gpointer plugin_data); void gfal_http_context_delete(gpointer plugin_data); extern const char* http_module_name; extern GQuark http_plugin_domain; // Initializes a GError from a DavixError void davix2gliberr(const Davix::DavixError* daverr, GError** err); // X509 callback void gfal_http_get_ucert(std::string& ucert, std::string& ukey); int gfal_http_authn_cert_X509(void* userdata, const Davix::SessionInfo & info, Davix::X509Credential * cert, Davix::DavixError** err); // METADATA OPERATIONS void gfal_http_delete(plugin_handle plugin_data); int gfal_http_stat(plugin_handle plugin_data, const char* url, struct stat* buf, GError** err); int gfal_http_access(plugin_handle plugin_data, const char* url, int mode, GError** err); int gfal_http_mkdirpG(plugin_handle plugin_data, const char* url, mode_t mode, gboolean rec_flag, GError** err); int gfal_http_rmdirG(plugin_handle plugin_data, const char* url, GError** err); int gfal_http_unlinkG(plugin_handle plugin_data, const char* url, GError** err); gfal_file_handle gfal_http_opendir(plugin_handle plugin_data, const char* url, GError** err); struct dirent* gfal_http_readdir(plugin_handle plugin_data, gfal_file_handle dir_desc, GError** err); int gfal_http_closedir(plugin_handle plugin_data, gfal_file_handle dir_desc, GError** err); // IO gfal_file_handle gfal_http_fopen(plugin_handle plugin_data, const char* url, int flag, mode_t mode, GError** err); ssize_t gfal_http_fread(plugin_handle, gfal_file_handle fd, void* buff, size_t count, GError** err); ssize_t gfal_http_fwrite(plugin_handle, gfal_file_handle fd, const void* buff, size_t count, GError** err); int gfal_http_fclose(plugin_handle, gfal_file_handle fd, GError ** err); off_t gfal_http_fseek(plugin_handle, gfal_file_handle fd, off_t offset, int whence, GError** err); // Checksum int gfal_http_checksum(plugin_handle data, const char* url, const char* check_type, char * checksum_buffer, size_t buffer_length, off_t start_offset, size_t data_length, GError ** err); // 3RD PARTY COPY char *gfal_http_delegate(const std::string& urlpp, GError** daverr); int gfal_http_3rdcopy(plugin_handle plugin_data, gfal2_context_t context, gfalt_params_t params, const char* src, const char* dst, GError** err); int gfal_http_3rdcopy_check(plugin_handle plugin_data, const char* src, const char* dst, gfal_url2_check check); #endif //_GFAL_HTTP_PLUGIN_H gfal2-2.3.0/src/common/http/gfal_http_plugin_io.cpp0000644000175000017500000000457412164561703021645 0ustar ellertellert#include #include #include "gfal_http_plugin.h" gfal_file_handle gfal_http_fopen(plugin_handle plugin_data, const char* url, int flag, mode_t mode, GError** err) { GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); Davix::DavixError* daverr = NULL; DAVIX_FD* fd = davix->posix.open(&davix->params, url, flag, &daverr); if (fd == NULL) { davix2gliberr(daverr, err); Davix::DavixError::clearError(&daverr); return NULL; } return gfal_file_handle_new(http_module_name, fd); } ssize_t gfal_http_fread(plugin_handle plugin_data, gfal_file_handle fd, void* buff, size_t count, GError** err) { GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); Davix::DavixError* daverr = NULL; DAVIX_FD* dfd = (DAVIX_FD*)gfal_file_handle_get_fdesc(fd); ssize_t reads = davix->posix.read(dfd, buff, count, &daverr); if (reads < 0) { davix2gliberr(daverr, err); Davix::DavixError::clearError(&daverr); } return reads; } ssize_t gfal_http_fwrite(plugin_handle plugin_data, gfal_file_handle fd, const void* buff, size_t count, GError** err) { GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); Davix::DavixError* daverr = NULL; DAVIX_FD* dfd = (DAVIX_FD*)gfal_file_handle_get_fdesc(fd); ssize_t writes = davix->posix.write(dfd, buff, count, &daverr); if (writes < 0) { davix2gliberr(daverr, err); Davix::DavixError::clearError(&daverr); } return writes; } int gfal_http_fclose(plugin_handle plugin_data, gfal_file_handle fd, GError ** err) { GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); Davix::DavixError* daverr = NULL; DAVIX_FD* dfd = (DAVIX_FD*)gfal_file_handle_get_fdesc(fd); int ret = 0; if (davix->posix.close(dfd, &daverr) != 0) { davix2gliberr(daverr, err); Davix::DavixError::clearError(&daverr); ret = -1; } gfal_file_handle_delete(fd); return ret; } off_t gfal_http_fseek(plugin_handle plugin_data, gfal_file_handle fd, off_t offset, int whence, GError** err) { GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); Davix::DavixError* daverr = NULL; DAVIX_FD* dfd = (DAVIX_FD*)gfal_file_handle_get_fdesc(fd); off_t newOffset = davix->posix.lseek(dfd, offset, whence, &daverr); if (newOffset < 0) { davix2gliberr(daverr, err); Davix::DavixError::clearError(&daverr); } return newOffset; } gfal2-2.3.0/src/common/http/gfal_http_delegate.cpp0000644000175000017500000001171312164561703021423 0ustar ellertellert#include #include #include #include "gfal_http_plugin.h" #include "soapH.h" #include "DelegationSoapBinding.nsmap" const char * default_ca_path= "/etc/grid-security/certificates/"; /// Do the delegation char *gfal_http_delegate(const std::string& urlpp, GError** err) { char *delegation_id = NULL; std::string *reqtxt = NULL; char *certtxt = NULL; char *keycert = NULL; struct soap *soap_get = NULL, *soap_put = NULL; struct tns__getNewProxyReqResponse getNewProxyReqResponse; struct tns__putProxyResponse putProxyResponse; std::string ucert, ukey, capath; int lifetime; const char* url = urlpp.c_str(); char err_buffer[512]; size_t err_aux; // TODO: Get from the environment or something lifetime = 12 * 60 * 60; // 12h // Get certificate gfal_http_get_ucert(ucert, ukey); if (ucert.empty() || ukey.empty()) { *err = g_error_new(http_plugin_domain, EINVAL, "Could not set the user's proxy or certificate"); return NULL; } if (getenv("X509_CA_PATH")) capath = getenv("X509_CA_PATH"); else capath = (char*)default_ca_path ; // Cert and key need to be in the same file if (ucert == ukey) { keycert = strdup(ucert.c_str()); } else { FILE *ifp, *ofp; int fd; int c; keycert = strdup("/tmp/.XXXXXX"); fd = mkstemp(keycert); ofp = fdopen(fd, "w"); ifp = fopen(ukey.c_str(), "r"); while ((c = fgetc(ifp)) != EOF) fputc(c, ofp); fclose(ifp); ifp = fopen(ukey.c_str(), "r"); while ((c = fgetc(ifp)) != EOF) fputc(c, ofp); fclose(ifp); fclose(ofp); } // Initialize SSL ERR_load_crypto_strings (); OpenSSL_add_all_algorithms(); // Request a new delegation ID soap_get = soap_new(); soap_get->keep_alive = 1; if (soap_ssl_client_context(soap_get, SOAP_SSL_DEFAULT, keycert, "", NULL, capath.c_str(), NULL) == 0) { soap_call_tns__getNewProxyReq(soap_get, url, "http://www.gridsite.org/namespaces/delegation-1", getNewProxyReqResponse); if(soap_get->error == 0) { reqtxt = getNewProxyReqResponse.getNewProxyReqReturn->proxyRequest; delegation_id = strdup(getNewProxyReqResponse.getNewProxyReqReturn->delegationID->c_str()); // Generate proxy if (GRSTx509MakeProxyCert(&certtxt, stderr, (char*)reqtxt->c_str(), (char*)ucert.c_str(), (char*)ukey.c_str(), lifetime) == GRST_RET_OK) { // Submit the proxy soap_put = soap_new(); if (soap_ssl_client_context(soap_put, SOAP_SSL_DEFAULT, keycert, "", NULL, capath.c_str(), NULL) == 0) { soap_call_tns__putProxy(soap_put, url, "http://www.gridsite.org/namespaces/delegation-1", delegation_id, certtxt, putProxyResponse); if (soap_put->error) { // Could not PUT err_aux = snprintf(err_buffer, sizeof(err_buffer), "Could not PUT the proxy: "); soap_sprint_fault(soap_put, err_buffer + err_aux, sizeof(err_buffer) - err_aux); *err = g_error_new(http_plugin_domain, EACCES, "Could not send the proxy: %s", err_buffer); } } else { // soap_put ssl error err_aux = snprintf(err_buffer, sizeof(err_buffer), "Connection error on proxy put: "); soap_sprint_fault(soap_put, err_buffer + err_aux, sizeof(err_buffer) - err_aux); *err = g_error_new(http_plugin_domain, EACCES, "Could not connect to the delegation endpoint: %s", err_buffer); } soap_free(soap_put); } else { *err = g_error_new(http_plugin_domain, EACCES, "Could not generate the proxy: %s", err_buffer); } } else { // Could not get ID err_aux = snprintf(err_buffer, sizeof(err_buffer), "Could not get proxy request: "); soap_sprint_fault(soap_get, err_buffer + err_aux, sizeof(err_buffer) - err_aux); *err = g_error_new(http_plugin_domain, EACCES, "Could not get the delegation id: %s", err_buffer); } } else { // soap_get ssl error err_aux = snprintf(err_buffer, sizeof(err_buffer), "Could not connect to get the proxy request: "); soap_sprint_fault(soap_get, err_buffer + err_aux, sizeof(err_buffer) - err_aux); *err = g_error_new(http_plugin_domain, EACCES, "Could not connect to the delegation endpoint: %s", err_buffer); } // Clean soap_get soap_free(soap_get); free(keycert); free(certtxt); // Return delegation ID return delegation_id; } gfal2-2.3.0/src/common/http/soapH.h0000644000175000017500000010367112164561703016345 0ustar ellertellert/* soapH.h Generated by gSOAP 2.7.13 from /root/build/gfal2/src/common/http/delegation.h Copyright(C) 2000-2009, Robert van Engelen, Genivia Inc. All Rights Reserved. This part of the software is released under one of the following licenses: GPL, the gSOAP public license, or Genivia's license for commercial use. */ #ifndef soapH_H #define soapH_H #include "soapStub.h" #ifndef WITH_NOIDREF #ifdef __cplusplus extern "C" { #endif SOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap*, const void*, int); SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap*, const void*, const char*, int, int); SOAP_FMAC3 void *SOAP_FMAC4 soap_getelement(struct soap*, int*); #ifdef __cplusplus } #endif SOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap*); SOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap*); #endif SOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap*); SOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 int SOAP_FMAC4 soap_fdelete(struct soap_clist*); SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap*, const char*, void*, int, size_t, const char*, const char*); SOAP_FMAC3 void* SOAP_FMAC4 soap_container_id_forward(struct soap*, const char*, void*, size_t, int, int, size_t, unsigned int); SOAP_FMAC3 void SOAP_FMAC4 soap_container_insert(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_byte #define SOAP_TYPE_byte (3) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_byte(struct soap*, char *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_byte(struct soap*, const char *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_byte(struct soap*, const char*, int, const char *, const char*); SOAP_FMAC3 char * SOAP_FMAC4 soap_get_byte(struct soap*, char *, const char*, const char*); SOAP_FMAC3 char * SOAP_FMAC4 soap_in_byte(struct soap*, const char*, char *, const char*); #ifndef SOAP_TYPE_int #define SOAP_TYPE_int (1) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_int(struct soap*, int *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_int(struct soap*, const int *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_int(struct soap*, const char*, int, const int *, const char*); SOAP_FMAC3 int * SOAP_FMAC4 soap_get_int(struct soap*, int *, const char*, const char*); SOAP_FMAC3 int * SOAP_FMAC4 soap_in_int(struct soap*, const char*, int *, const char*); #ifndef SOAP_TYPE_time #define SOAP_TYPE_time (35) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_time(struct soap*, time_t *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_time(struct soap*, const time_t *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_time(struct soap*, const char*, int, const time_t *, const char*); SOAP_FMAC3 time_t * SOAP_FMAC4 soap_get_time(struct soap*, time_t *, const char*, const char*); SOAP_FMAC3 time_t * SOAP_FMAC4 soap_in_time(struct soap*, const char*, time_t *, const char*); #ifndef SOAP_TYPE_std__string #define SOAP_TYPE_std__string (10) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_std__string(struct soap*, std::string *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_std__string(struct soap*, const std::string *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_std__string(struct soap*, const std::string *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_std__string(struct soap*, const char*, int, const std::string*, const char*); SOAP_FMAC3 std::string * SOAP_FMAC4 soap_get_std__string(struct soap*, std::string *, const char*, const char*); SOAP_FMAC3 std::string * SOAP_FMAC4 soap_in_std__string(struct soap*, const char*, std::string*, const char*); #define soap_new_std__string(soap, n) soap_instantiate_std__string(soap, n, NULL, NULL, NULL) #define soap_delete_std__string(soap, p) soap_delete(soap, p) SOAP_FMAC3 std::string * SOAP_FMAC4 soap_instantiate_std__string(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_std__string(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_tns__NewProxyReq #define SOAP_TYPE_tns__NewProxyReq (9) #endif SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__NewProxyReq(struct soap*, const char*, int, const tns__NewProxyReq *, const char*); SOAP_FMAC3 tns__NewProxyReq * SOAP_FMAC4 soap_get_tns__NewProxyReq(struct soap*, tns__NewProxyReq *, const char*, const char*); SOAP_FMAC3 tns__NewProxyReq * SOAP_FMAC4 soap_in_tns__NewProxyReq(struct soap*, const char*, tns__NewProxyReq *, const char*); #define soap_new_tns__NewProxyReq(soap, n) soap_instantiate_tns__NewProxyReq(soap, n, NULL, NULL, NULL) #define soap_delete_tns__NewProxyReq(soap, p) soap_delete(soap, p) SOAP_FMAC3 tns__NewProxyReq * SOAP_FMAC4 soap_instantiate_tns__NewProxyReq(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__NewProxyReq(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_tns__DelegationExceptionType #define SOAP_TYPE_tns__DelegationExceptionType (8) #endif SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__DelegationExceptionType(struct soap*, const char*, int, const tns__DelegationExceptionType *, const char*); SOAP_FMAC3 tns__DelegationExceptionType * SOAP_FMAC4 soap_get_tns__DelegationExceptionType(struct soap*, tns__DelegationExceptionType *, const char*, const char*); SOAP_FMAC3 tns__DelegationExceptionType * SOAP_FMAC4 soap_in_tns__DelegationExceptionType(struct soap*, const char*, tns__DelegationExceptionType *, const char*); #define soap_new_tns__DelegationExceptionType(soap, n) soap_instantiate_tns__DelegationExceptionType(soap, n, NULL, NULL, NULL) #define soap_delete_tns__DelegationExceptionType(soap, p) soap_delete(soap, p) SOAP_FMAC3 tns__DelegationExceptionType * SOAP_FMAC4 soap_instantiate_tns__DelegationExceptionType(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__DelegationExceptionType(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef WITH_NOGLOBAL #ifndef SOAP_TYPE_SOAP_ENV__Fault #define SOAP_TYPE_SOAP_ENV__Fault (47) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Fault(struct soap*, const char*, int, const struct SOAP_ENV__Fault *, const char*); SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_get_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *, const char*, const char*); SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap*, const char*, struct SOAP_ENV__Fault *, const char*); #define soap_new_SOAP_ENV__Fault(soap, n) soap_instantiate_SOAP_ENV__Fault(soap, n, NULL, NULL, NULL) #define soap_delete_SOAP_ENV__Fault(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_instantiate_SOAP_ENV__Fault(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Fault(struct soap*, int, int, void*, size_t, const void*, size_t); #endif #ifndef WITH_NOGLOBAL #ifndef SOAP_TYPE_SOAP_ENV__Reason #define SOAP_TYPE_SOAP_ENV__Reason (46) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Reason(struct soap*, const char*, int, const struct SOAP_ENV__Reason *, const char*); SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_get_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *, const char*, const char*); SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_in_SOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason *, const char*); #define soap_new_SOAP_ENV__Reason(soap, n) soap_instantiate_SOAP_ENV__Reason(soap, n, NULL, NULL, NULL) #define soap_delete_SOAP_ENV__Reason(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_instantiate_SOAP_ENV__Reason(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Reason(struct soap*, int, int, void*, size_t, const void*, size_t); #endif #ifndef WITH_NOGLOBAL #ifndef SOAP_TYPE_SOAP_ENV__Code #define SOAP_TYPE_SOAP_ENV__Code (44) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap*, const char*, int, const struct SOAP_ENV__Code *, const char*); SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *, const char*, const char*); SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code *, const char*); #define soap_new_SOAP_ENV__Code(soap, n) soap_instantiate_SOAP_ENV__Code(soap, n, NULL, NULL, NULL) #define soap_delete_SOAP_ENV__Code(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_instantiate_SOAP_ENV__Code(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Code(struct soap*, int, int, void*, size_t, const void*, size_t); #endif #ifndef WITH_NOGLOBAL #ifndef SOAP_TYPE_SOAP_ENV__Header #define SOAP_TYPE_SOAP_ENV__Header (43) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap*, const char*, int, const struct SOAP_ENV__Header *, const char*); SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *, const char*, const char*); SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap*, const char*, struct SOAP_ENV__Header *, const char*); #define soap_new_SOAP_ENV__Header(soap, n) soap_instantiate_SOAP_ENV__Header(soap, n, NULL, NULL, NULL) #define soap_delete_SOAP_ENV__Header(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_instantiate_SOAP_ENV__Header(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Header(struct soap*, int, int, void*, size_t, const void*, size_t); #endif #ifndef SOAP_TYPE_tns__destroy #define SOAP_TYPE_tns__destroy (42) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_tns__destroy(struct soap*, struct tns__destroy *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_tns__destroy(struct soap*, const struct tns__destroy *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_tns__destroy(struct soap*, const struct tns__destroy *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__destroy(struct soap*, const char*, int, const struct tns__destroy *, const char*); SOAP_FMAC3 struct tns__destroy * SOAP_FMAC4 soap_get_tns__destroy(struct soap*, struct tns__destroy *, const char*, const char*); SOAP_FMAC3 struct tns__destroy * SOAP_FMAC4 soap_in_tns__destroy(struct soap*, const char*, struct tns__destroy *, const char*); #define soap_new_tns__destroy(soap, n) soap_instantiate_tns__destroy(soap, n, NULL, NULL, NULL) #define soap_delete_tns__destroy(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct tns__destroy * SOAP_FMAC4 soap_instantiate_tns__destroy(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__destroy(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_tns__destroyResponse #define SOAP_TYPE_tns__destroyResponse (39) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_tns__destroyResponse(struct soap*, struct tns__destroyResponse *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_tns__destroyResponse(struct soap*, const struct tns__destroyResponse *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_tns__destroyResponse(struct soap*, const struct tns__destroyResponse *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__destroyResponse(struct soap*, const char*, int, const struct tns__destroyResponse *, const char*); SOAP_FMAC3 struct tns__destroyResponse * SOAP_FMAC4 soap_get_tns__destroyResponse(struct soap*, struct tns__destroyResponse *, const char*, const char*); SOAP_FMAC3 struct tns__destroyResponse * SOAP_FMAC4 soap_in_tns__destroyResponse(struct soap*, const char*, struct tns__destroyResponse *, const char*); #define soap_new_tns__destroyResponse(soap, n) soap_instantiate_tns__destroyResponse(soap, n, NULL, NULL, NULL) #define soap_delete_tns__destroyResponse(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct tns__destroyResponse * SOAP_FMAC4 soap_instantiate_tns__destroyResponse(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__destroyResponse(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_tns__getTerminationTime #define SOAP_TYPE_tns__getTerminationTime (38) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_tns__getTerminationTime(struct soap*, struct tns__getTerminationTime *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_tns__getTerminationTime(struct soap*, const struct tns__getTerminationTime *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_tns__getTerminationTime(struct soap*, const struct tns__getTerminationTime *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__getTerminationTime(struct soap*, const char*, int, const struct tns__getTerminationTime *, const char*); SOAP_FMAC3 struct tns__getTerminationTime * SOAP_FMAC4 soap_get_tns__getTerminationTime(struct soap*, struct tns__getTerminationTime *, const char*, const char*); SOAP_FMAC3 struct tns__getTerminationTime * SOAP_FMAC4 soap_in_tns__getTerminationTime(struct soap*, const char*, struct tns__getTerminationTime *, const char*); #define soap_new_tns__getTerminationTime(soap, n) soap_instantiate_tns__getTerminationTime(soap, n, NULL, NULL, NULL) #define soap_delete_tns__getTerminationTime(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct tns__getTerminationTime * SOAP_FMAC4 soap_instantiate_tns__getTerminationTime(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__getTerminationTime(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_tns__getTerminationTimeResponse #define SOAP_TYPE_tns__getTerminationTimeResponse (34) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_tns__getTerminationTimeResponse(struct soap*, struct tns__getTerminationTimeResponse *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_tns__getTerminationTimeResponse(struct soap*, const struct tns__getTerminationTimeResponse *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_tns__getTerminationTimeResponse(struct soap*, const struct tns__getTerminationTimeResponse *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__getTerminationTimeResponse(struct soap*, const char*, int, const struct tns__getTerminationTimeResponse *, const char*); SOAP_FMAC3 struct tns__getTerminationTimeResponse * SOAP_FMAC4 soap_get_tns__getTerminationTimeResponse(struct soap*, struct tns__getTerminationTimeResponse *, const char*, const char*); SOAP_FMAC3 struct tns__getTerminationTimeResponse * SOAP_FMAC4 soap_in_tns__getTerminationTimeResponse(struct soap*, const char*, struct tns__getTerminationTimeResponse *, const char*); #define soap_new_tns__getTerminationTimeResponse(soap, n) soap_instantiate_tns__getTerminationTimeResponse(soap, n, NULL, NULL, NULL) #define soap_delete_tns__getTerminationTimeResponse(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct tns__getTerminationTimeResponse * SOAP_FMAC4 soap_instantiate_tns__getTerminationTimeResponse(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__getTerminationTimeResponse(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_tns__putProxy #define SOAP_TYPE_tns__putProxy (33) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_tns__putProxy(struct soap*, struct tns__putProxy *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_tns__putProxy(struct soap*, const struct tns__putProxy *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_tns__putProxy(struct soap*, const struct tns__putProxy *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__putProxy(struct soap*, const char*, int, const struct tns__putProxy *, const char*); SOAP_FMAC3 struct tns__putProxy * SOAP_FMAC4 soap_get_tns__putProxy(struct soap*, struct tns__putProxy *, const char*, const char*); SOAP_FMAC3 struct tns__putProxy * SOAP_FMAC4 soap_in_tns__putProxy(struct soap*, const char*, struct tns__putProxy *, const char*); #define soap_new_tns__putProxy(soap, n) soap_instantiate_tns__putProxy(soap, n, NULL, NULL, NULL) #define soap_delete_tns__putProxy(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct tns__putProxy * SOAP_FMAC4 soap_instantiate_tns__putProxy(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__putProxy(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_tns__putProxyResponse #define SOAP_TYPE_tns__putProxyResponse (30) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_tns__putProxyResponse(struct soap*, struct tns__putProxyResponse *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_tns__putProxyResponse(struct soap*, const struct tns__putProxyResponse *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_tns__putProxyResponse(struct soap*, const struct tns__putProxyResponse *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__putProxyResponse(struct soap*, const char*, int, const struct tns__putProxyResponse *, const char*); SOAP_FMAC3 struct tns__putProxyResponse * SOAP_FMAC4 soap_get_tns__putProxyResponse(struct soap*, struct tns__putProxyResponse *, const char*, const char*); SOAP_FMAC3 struct tns__putProxyResponse * SOAP_FMAC4 soap_in_tns__putProxyResponse(struct soap*, const char*, struct tns__putProxyResponse *, const char*); #define soap_new_tns__putProxyResponse(soap, n) soap_instantiate_tns__putProxyResponse(soap, n, NULL, NULL, NULL) #define soap_delete_tns__putProxyResponse(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct tns__putProxyResponse * SOAP_FMAC4 soap_instantiate_tns__putProxyResponse(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__putProxyResponse(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_tns__renewProxyReq #define SOAP_TYPE_tns__renewProxyReq (29) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_tns__renewProxyReq(struct soap*, struct tns__renewProxyReq *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_tns__renewProxyReq(struct soap*, const struct tns__renewProxyReq *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_tns__renewProxyReq(struct soap*, const struct tns__renewProxyReq *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__renewProxyReq(struct soap*, const char*, int, const struct tns__renewProxyReq *, const char*); SOAP_FMAC3 struct tns__renewProxyReq * SOAP_FMAC4 soap_get_tns__renewProxyReq(struct soap*, struct tns__renewProxyReq *, const char*, const char*); SOAP_FMAC3 struct tns__renewProxyReq * SOAP_FMAC4 soap_in_tns__renewProxyReq(struct soap*, const char*, struct tns__renewProxyReq *, const char*); #define soap_new_tns__renewProxyReq(soap, n) soap_instantiate_tns__renewProxyReq(soap, n, NULL, NULL, NULL) #define soap_delete_tns__renewProxyReq(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct tns__renewProxyReq * SOAP_FMAC4 soap_instantiate_tns__renewProxyReq(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__renewProxyReq(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_tns__renewProxyReqResponse #define SOAP_TYPE_tns__renewProxyReqResponse (26) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_tns__renewProxyReqResponse(struct soap*, struct tns__renewProxyReqResponse *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_tns__renewProxyReqResponse(struct soap*, const struct tns__renewProxyReqResponse *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_tns__renewProxyReqResponse(struct soap*, const struct tns__renewProxyReqResponse *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__renewProxyReqResponse(struct soap*, const char*, int, const struct tns__renewProxyReqResponse *, const char*); SOAP_FMAC3 struct tns__renewProxyReqResponse * SOAP_FMAC4 soap_get_tns__renewProxyReqResponse(struct soap*, struct tns__renewProxyReqResponse *, const char*, const char*); SOAP_FMAC3 struct tns__renewProxyReqResponse * SOAP_FMAC4 soap_in_tns__renewProxyReqResponse(struct soap*, const char*, struct tns__renewProxyReqResponse *, const char*); #define soap_new_tns__renewProxyReqResponse(soap, n) soap_instantiate_tns__renewProxyReqResponse(soap, n, NULL, NULL, NULL) #define soap_delete_tns__renewProxyReqResponse(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct tns__renewProxyReqResponse * SOAP_FMAC4 soap_instantiate_tns__renewProxyReqResponse(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__renewProxyReqResponse(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_tns__getNewProxyReq #define SOAP_TYPE_tns__getNewProxyReq (25) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_tns__getNewProxyReq(struct soap*, struct tns__getNewProxyReq *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_tns__getNewProxyReq(struct soap*, const struct tns__getNewProxyReq *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_tns__getNewProxyReq(struct soap*, const struct tns__getNewProxyReq *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__getNewProxyReq(struct soap*, const char*, int, const struct tns__getNewProxyReq *, const char*); SOAP_FMAC3 struct tns__getNewProxyReq * SOAP_FMAC4 soap_get_tns__getNewProxyReq(struct soap*, struct tns__getNewProxyReq *, const char*, const char*); SOAP_FMAC3 struct tns__getNewProxyReq * SOAP_FMAC4 soap_in_tns__getNewProxyReq(struct soap*, const char*, struct tns__getNewProxyReq *, const char*); #define soap_new_tns__getNewProxyReq(soap, n) soap_instantiate_tns__getNewProxyReq(soap, n, NULL, NULL, NULL) #define soap_delete_tns__getNewProxyReq(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct tns__getNewProxyReq * SOAP_FMAC4 soap_instantiate_tns__getNewProxyReq(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__getNewProxyReq(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_tns__getNewProxyReqResponse #define SOAP_TYPE_tns__getNewProxyReqResponse (21) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_tns__getNewProxyReqResponse(struct soap*, struct tns__getNewProxyReqResponse *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_tns__getNewProxyReqResponse(struct soap*, const struct tns__getNewProxyReqResponse *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_tns__getNewProxyReqResponse(struct soap*, const struct tns__getNewProxyReqResponse *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__getNewProxyReqResponse(struct soap*, const char*, int, const struct tns__getNewProxyReqResponse *, const char*); SOAP_FMAC3 struct tns__getNewProxyReqResponse * SOAP_FMAC4 soap_get_tns__getNewProxyReqResponse(struct soap*, struct tns__getNewProxyReqResponse *, const char*, const char*); SOAP_FMAC3 struct tns__getNewProxyReqResponse * SOAP_FMAC4 soap_in_tns__getNewProxyReqResponse(struct soap*, const char*, struct tns__getNewProxyReqResponse *, const char*); #define soap_new_tns__getNewProxyReqResponse(soap, n) soap_instantiate_tns__getNewProxyReqResponse(soap, n, NULL, NULL, NULL) #define soap_delete_tns__getNewProxyReqResponse(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct tns__getNewProxyReqResponse * SOAP_FMAC4 soap_instantiate_tns__getNewProxyReqResponse(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__getNewProxyReqResponse(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_tns__getProxyReq #define SOAP_TYPE_tns__getProxyReq (20) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_tns__getProxyReq(struct soap*, struct tns__getProxyReq *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_tns__getProxyReq(struct soap*, const struct tns__getProxyReq *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_tns__getProxyReq(struct soap*, const struct tns__getProxyReq *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__getProxyReq(struct soap*, const char*, int, const struct tns__getProxyReq *, const char*); SOAP_FMAC3 struct tns__getProxyReq * SOAP_FMAC4 soap_get_tns__getProxyReq(struct soap*, struct tns__getProxyReq *, const char*, const char*); SOAP_FMAC3 struct tns__getProxyReq * SOAP_FMAC4 soap_in_tns__getProxyReq(struct soap*, const char*, struct tns__getProxyReq *, const char*); #define soap_new_tns__getProxyReq(soap, n) soap_instantiate_tns__getProxyReq(soap, n, NULL, NULL, NULL) #define soap_delete_tns__getProxyReq(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct tns__getProxyReq * SOAP_FMAC4 soap_instantiate_tns__getProxyReq(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__getProxyReq(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef SOAP_TYPE_tns__getProxyReqResponse #define SOAP_TYPE_tns__getProxyReqResponse (17) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_tns__getProxyReqResponse(struct soap*, struct tns__getProxyReqResponse *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_tns__getProxyReqResponse(struct soap*, const struct tns__getProxyReqResponse *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_tns__getProxyReqResponse(struct soap*, const struct tns__getProxyReqResponse *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_tns__getProxyReqResponse(struct soap*, const char*, int, const struct tns__getProxyReqResponse *, const char*); SOAP_FMAC3 struct tns__getProxyReqResponse * SOAP_FMAC4 soap_get_tns__getProxyReqResponse(struct soap*, struct tns__getProxyReqResponse *, const char*, const char*); SOAP_FMAC3 struct tns__getProxyReqResponse * SOAP_FMAC4 soap_in_tns__getProxyReqResponse(struct soap*, const char*, struct tns__getProxyReqResponse *, const char*); #define soap_new_tns__getProxyReqResponse(soap, n) soap_instantiate_tns__getProxyReqResponse(soap, n, NULL, NULL, NULL) #define soap_delete_tns__getProxyReqResponse(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct tns__getProxyReqResponse * SOAP_FMAC4 soap_instantiate_tns__getProxyReqResponse(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_tns__getProxyReqResponse(struct soap*, int, int, void*, size_t, const void*, size_t); #ifndef WITH_NOGLOBAL #ifndef SOAP_TYPE_SOAP_ENV__Detail #define SOAP_TYPE_SOAP_ENV__Detail (13) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *); SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Detail(struct soap*, const char*, int, const struct SOAP_ENV__Detail *, const char*); SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_get_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *, const char*, const char*); SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_in_SOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail *, const char*); #define soap_new_SOAP_ENV__Detail(soap, n) soap_instantiate_SOAP_ENV__Detail(soap, n, NULL, NULL, NULL) #define soap_delete_SOAP_ENV__Detail(soap, p) soap_delete(soap, p) SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_instantiate_SOAP_ENV__Detail(struct soap*, int, const char*, const char*, size_t*); SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Detail(struct soap*, int, int, void*, size_t, const void*, size_t); #endif #ifndef WITH_NOGLOBAL #ifndef SOAP_TYPE_PointerToSOAP_ENV__Reason #define SOAP_TYPE_PointerToSOAP_ENV__Reason (49) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*); SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Reason(struct soap*, const char *, int, struct SOAP_ENV__Reason *const*, const char *); SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason **, const char*, const char*); SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason **, const char*); #endif #ifndef WITH_NOGLOBAL #ifndef SOAP_TYPE_PointerToSOAP_ENV__Detail #define SOAP_TYPE_PointerToSOAP_ENV__Detail (48) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*); SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Detail(struct soap*, const char *, int, struct SOAP_ENV__Detail *const*, const char *); SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail **, const char*, const char*); SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail **, const char*); #endif #ifndef WITH_NOGLOBAL #ifndef SOAP_TYPE_PointerToSOAP_ENV__Code #define SOAP_TYPE_PointerToSOAP_ENV__Code (45) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*); SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap*, const char *, int, struct SOAP_ENV__Code *const*, const char *); SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code **, const char*, const char*); SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code **, const char*); #endif #ifndef SOAP_TYPE_PointerTotns__NewProxyReq #define SOAP_TYPE_PointerTotns__NewProxyReq (22) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerTotns__NewProxyReq(struct soap*, tns__NewProxyReq *const*); SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerTotns__NewProxyReq(struct soap*, tns__NewProxyReq *const*, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerTotns__NewProxyReq(struct soap*, const char *, int, tns__NewProxyReq *const*, const char *); SOAP_FMAC3 tns__NewProxyReq ** SOAP_FMAC4 soap_get_PointerTotns__NewProxyReq(struct soap*, tns__NewProxyReq **, const char*, const char*); SOAP_FMAC3 tns__NewProxyReq ** SOAP_FMAC4 soap_in_PointerTotns__NewProxyReq(struct soap*, const char*, tns__NewProxyReq **, const char*); #ifndef SOAP_TYPE_PointerTotns__DelegationExceptionType #define SOAP_TYPE_PointerTotns__DelegationExceptionType (14) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerTotns__DelegationExceptionType(struct soap*, tns__DelegationExceptionType *const*); SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerTotns__DelegationExceptionType(struct soap*, tns__DelegationExceptionType *const*, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerTotns__DelegationExceptionType(struct soap*, const char *, int, tns__DelegationExceptionType *const*, const char *); SOAP_FMAC3 tns__DelegationExceptionType ** SOAP_FMAC4 soap_get_PointerTotns__DelegationExceptionType(struct soap*, tns__DelegationExceptionType **, const char*, const char*); SOAP_FMAC3 tns__DelegationExceptionType ** SOAP_FMAC4 soap_in_PointerTotns__DelegationExceptionType(struct soap*, const char*, tns__DelegationExceptionType **, const char*); #ifndef SOAP_TYPE_PointerTostd__string #define SOAP_TYPE_PointerTostd__string (11) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerTostd__string(struct soap*, std::string *const*); SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerTostd__string(struct soap*, std::string *const*, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerTostd__string(struct soap*, const char *, int, std::string *const*, const char *); SOAP_FMAC3 std::string ** SOAP_FMAC4 soap_get_PointerTostd__string(struct soap*, std::string **, const char*, const char*); SOAP_FMAC3 std::string ** SOAP_FMAC4 soap_in_PointerTostd__string(struct soap*, const char*, std::string **, const char*); #ifndef SOAP_TYPE__QName #define SOAP_TYPE__QName (5) #endif #define soap_default__QName(soap, a) soap_default_string(soap, a) #define soap_serialize__QName(soap, a) soap_serialize_string(soap, a) SOAP_FMAC3 int SOAP_FMAC4 soap_put__QName(struct soap*, char *const*, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out__QName(struct soap*, const char*, int, char*const*, const char*); SOAP_FMAC3 char ** SOAP_FMAC4 soap_get__QName(struct soap*, char **, const char*, const char*); SOAP_FMAC3 char * * SOAP_FMAC4 soap_in__QName(struct soap*, const char*, char **, const char*); #ifndef SOAP_TYPE_string #define SOAP_TYPE_string (4) #endif SOAP_FMAC3 void SOAP_FMAC4 soap_default_string(struct soap*, char **); SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_string(struct soap*, char *const*); SOAP_FMAC3 int SOAP_FMAC4 soap_put_string(struct soap*, char *const*, const char*, const char*); SOAP_FMAC3 int SOAP_FMAC4 soap_out_string(struct soap*, const char*, int, char*const*, const char*); SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_string(struct soap*, char **, const char*, const char*); SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_string(struct soap*, const char*, char **, const char*); #endif /* End of soapH.h */ gfal2-2.3.0/src/common/http/delegation-1.1.0.wsdl0000644000175000017500000005070212164561703020557 0ustar ellertellert The cause of the delegation exception on the server side. New proxy certificate request, containing the certificate request and a generated delegation ID. The new RFC 3280 style proxy certificate request in PEM format with Base64 encoding. The ID associated with the new delegation session. The ID of the new delegation session, specified by the client. The ID can be empty. The new RFC 3280 style proxy certificate request in PEM format with Base64 encoding. The ID of an already existing delegation session, initiated by getProxyReq() or getNewProxyReq(). RFC 3280 style proxy certificate, signed by the client, in PEM format with Base64 encoding. The ID of an already existing delegation session, where the client wants to renew the delegated credential. The new RFC 3280 style proxy certificate request, which is to replace the existing one, in PEM format with Base64 encoding. The server side generated ID of the new delegation session and the new RFC 3280 style proxy certificate request in PEM format with Base64 encoding. The ID of an already existing delegation session to be queried. The date and time when the delegated credentials will expire. The ID of an already existing delegation session to be destroyed. Delegation interface. Starts the delegation procedure by asking for a certificate signing request from the server. The server answers with a certificate signing request which includes the public key for the new delegated credentials. putProxy() has to be called to finish the procedure. Check if a delegation ID was provided. If not, generate a delegation id by hashing the client DN and client VOMS attributes. Check if the delegation ID already exists in the storage-area. If it does (a credential renewal is happening), check existing info (DN and VOMS attributes) against client info. Throw exception if they do not match. Create a new private/public key-pair (see also Key Generation Semantics). Generate a new proxy certificate request. Store private key and cert request in storage-cache-area, along with the requesting DN and VOMS attributes. The client's DN and VOMS attributes do not match the stored ones, i.e. the client is not authorized. Starts the delegation procedure by asking for a certificate signing request from the server. The server answers with a certificate signing request which includes the public key for the new delegated credentials. putProxy() has to be called to finish the procedure. Generate a delegation ID by hashing the client DN and client VOMS attributes. Check if the delegation ID already exists in the storage-area. If it does, check existing info (DN and VOMS attributes) against client info. Throw exception if they do not match, because then this is the rare case of hash collision, i.e. two different clients are mapped to the same delegation ID. Create a new private/public key-pair (see also Key Generation Semantics). Generate a new certificate request. Store private key and cert request in storage-cache-area, along with the requesting DN and VOMS attributes. There were already credentials associated to the delegation ID. Finishes the delegation procedure by sending the signed proxy certificate to the server. Check if a delegation ID was provided. If not, generate a delegation id by hashing the client DN and client VOMS attributes. Check if the delegation ID already exists in the storage-area. If it does, check existing info (DN and VOMS attributes) against client info. Throw exception if it does not match. Check, if client information matches proxy information. Check given proxy against private key of delegation ID in storage-cache-area. If they do not match, throw exception. Store proxy in storage-area and clean up the storage-cache-area. There were no cached credentials associated to the delegation ID (neither getNewProxyReq() nor renewProxyReq() was called previously), or the client's DN and VOMS attributes do not match the stored ones, i.e. the client is not authorized. Restarts the delegation procedure by asking for a certificate signing request from the server for an already existing delegation ID. The server answers with a certificate signing request which includes the public key for new delegated credentials. putProxy() has to be called to finish the procedure. Check if a delegation ID was provided. If not, generate a delegation id by hashing the client DN and client VOMS attributes. Check if the delegation ID already exists in the storage-area. If it does not, then throw an exception. Check if the existing info (DN and VOMS attributes) against client info. Throw exception if they do not match. Create a new private/public key-pair (see also Key Generation Semantics). Generate a new certificate request. Store private key and cert request in storage-cache-area, along with the requesting DN and VOMS attributes. There were no credentials associated to the delegation ID, or the client's DN and VOMS attributes do not match the stored ones, i.e. the client is not authorized. Returns the termination (expiration) date and time of the credential, associated with the given delegaion ID. If there was no delegation ID, then generate one by hashing the client DN and client VOMS attributes. There were no credentials associated to the delegation ID, or the client's DN and VOMS attributes do not match the stored ones, i.e. the client is not authorized. Destroys the delegated credentials associated with the given delegation ID immediately. If there was no delegation ID, then generate one by hashing the client DN and client VOMS attributes. There were no credentials associated to the delegation ID, or the client's DN and VOMS attributes do not match the stored ones, i.e. the client is not authorized. gfal2-2.3.0/src/common/http/soapDelegationSoapBindingObject.h0000644000175000017500000000622612164561703023474 0ustar ellertellert/* soapDelegationSoapBindingObject.h Generated by gSOAP 2.7.13 from /root/build/gfal2/src/common/http/delegation.h Copyright(C) 2000-2009, Robert van Engelen, Genivia Inc. All Rights Reserved. This part of the software is released under one of the following licenses: GPL, the gSOAP public license, or Genivia's license for commercial use. */ #ifndef soapDelegationSoapBindingObject_H #define soapDelegationSoapBindingObject_H #include "soapH.h" /******************************************************************************\ * * * Service Object * * * \******************************************************************************/ class DelegationSoapBindingService : public soap { public: DelegationSoapBindingService() { static const struct Namespace namespaces[] = { {"SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/", "http://www.w3.org/*/soap-envelope", NULL}, {"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding", NULL}, {"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance", NULL}, {"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema", NULL}, {"tns", "http://www.gridsite.org/namespaces/delegation-1", NULL, NULL}, {NULL, NULL, NULL, NULL} }; if (!this->namespaces) this->namespaces = namespaces; }; virtual ~DelegationSoapBindingService() { }; /// Bind service to port (returns master socket or SOAP_INVALID_SOCKET) virtual SOAP_SOCKET bind(const char *host, int port, int backlog) { return soap_bind(this, host, port, backlog); }; /// Accept next request (returns socket or SOAP_INVALID_SOCKET) virtual SOAP_SOCKET accept() { return soap_accept(this); }; /// Serve this request (returns error code or SOAP_OK) virtual int serve() { return soap_serve(this); }; }; /******************************************************************************\ * * * Service Operations (you should define these globally) * * * \******************************************************************************/ SOAP_FMAC5 int SOAP_FMAC6 tns__getProxyReq(struct soap*, std::string _delegationID, struct tns__getProxyReqResponse &_param_1); SOAP_FMAC5 int SOAP_FMAC6 tns__getNewProxyReq(struct soap*, struct tns__getNewProxyReqResponse &_param_2); SOAP_FMAC5 int SOAP_FMAC6 tns__renewProxyReq(struct soap*, std::string _delegationID, struct tns__renewProxyReqResponse &_param_3); SOAP_FMAC5 int SOAP_FMAC6 tns__putProxy(struct soap*, std::string _delegationID, std::string _proxy, struct tns__putProxyResponse &_param_4); SOAP_FMAC5 int SOAP_FMAC6 tns__getTerminationTime(struct soap*, std::string _delegationID, struct tns__getTerminationTimeResponse &_param_5); SOAP_FMAC5 int SOAP_FMAC6 tns__destroy(struct soap*, std::string _delegationID, struct tns__destroyResponse &_param_6); #endif gfal2-2.3.0/src/common/http/soapDelegationSoapBindingProxy.h0000644000175000017500000000664012164561703023407 0ustar ellertellert/* soapDelegationSoapBindingProxy.h Generated by gSOAP 2.7.13 from /root/build/gfal2/src/common/http/delegation.h Copyright(C) 2000-2009, Robert van Engelen, Genivia Inc. All Rights Reserved. This part of the software is released under one of the following licenses: GPL, the gSOAP public license, or Genivia's license for commercial use. */ #ifndef soapDelegationSoapBindingProxy_H #define soapDelegationSoapBindingProxy_H #include "soapH.h" class DelegationSoapBinding { public: /// Runtime engine context allocated in constructor struct soap *soap; /// Endpoint URL of service 'DelegationSoapBinding' (change as needed) const char *endpoint; /// Constructor allocates soap engine context, sets default endpoint URL, and sets namespace mapping table DelegationSoapBinding() { soap = soap_new(); endpoint = "https://localhost:8443/glite-security-delegation"; if (soap && !soap->namespaces) { static const struct Namespace namespaces[] = { {"SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/", "http://www.w3.org/*/soap-envelope", NULL}, {"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding", NULL}, {"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance", NULL}, {"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema", NULL}, {"tns", "http://www.gridsite.org/namespaces/delegation-1", NULL, NULL}, {NULL, NULL, NULL, NULL} }; soap->namespaces = namespaces; } }; /// Destructor frees deserialized data and soap engine context virtual ~DelegationSoapBinding() { if (soap) { soap_destroy(soap); soap_end(soap); soap_free(soap); } }; /// Invoke 'getProxyReq' of service 'DelegationSoapBinding' and return error code (or SOAP_OK) virtual int tns__getProxyReq(std::string _delegationID, struct tns__getProxyReqResponse &_param_1) { return soap ? soap_call_tns__getProxyReq(soap, endpoint, NULL, _delegationID, _param_1) : SOAP_EOM; }; /// Invoke 'getNewProxyReq' of service 'DelegationSoapBinding' and return error code (or SOAP_OK) virtual int tns__getNewProxyReq(struct tns__getNewProxyReqResponse &_param_2) { return soap ? soap_call_tns__getNewProxyReq(soap, endpoint, NULL, _param_2) : SOAP_EOM; }; /// Invoke 'renewProxyReq' of service 'DelegationSoapBinding' and return error code (or SOAP_OK) virtual int tns__renewProxyReq(std::string _delegationID, struct tns__renewProxyReqResponse &_param_3) { return soap ? soap_call_tns__renewProxyReq(soap, endpoint, NULL, _delegationID, _param_3) : SOAP_EOM; }; /// Invoke 'putProxy' of service 'DelegationSoapBinding' and return error code (or SOAP_OK) virtual int tns__putProxy(std::string _delegationID, std::string _proxy, struct tns__putProxyResponse &_param_4) { return soap ? soap_call_tns__putProxy(soap, endpoint, NULL, _delegationID, _proxy, _param_4) : SOAP_EOM; }; /// Invoke 'getTerminationTime' of service 'DelegationSoapBinding' and return error code (or SOAP_OK) virtual int tns__getTerminationTime(std::string _delegationID, struct tns__getTerminationTimeResponse &_param_5) { return soap ? soap_call_tns__getTerminationTime(soap, endpoint, NULL, _delegationID, _param_5) : SOAP_EOM; }; /// Invoke 'destroy' of service 'DelegationSoapBinding' and return error code (or SOAP_OK) virtual int tns__destroy(std::string _delegationID, struct tns__destroyResponse &_param_6) { return soap ? soap_call_tns__destroy(soap, endpoint, NULL, _delegationID, _param_6) : SOAP_EOM; }; }; #endif gfal2-2.3.0/src/common/http/gfal_http_plugin_metadata.cpp0000644000175000017500000001422212164561703023005 0ustar ellertellert#include #include #include #include "gfal_http_plugin.h" int gfal_http_stat(plugin_handle plugin_data, const char* url, struct stat* buf, GError** err) { GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); Davix::DavixError* daverr = NULL; if (davix->posix.stat(&davix->params, url, buf, &daverr) != 0) { davix2gliberr(daverr, err); Davix::DavixError::clearError(&daverr); return -1; } return 0; } int gfal_http_mkdirpG(plugin_handle plugin_data, const char* url, mode_t mode, gboolean rec_flag, GError** err){ GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); Davix::DavixError* daverr = NULL; if (davix->posix.mkdir(&davix->params, url, mode, &daverr) != 0) { davix2gliberr(daverr, err); Davix::DavixError::clearError(&daverr); return -1; } return 0; } int gfal_http_unlinkG(plugin_handle plugin_data, const char* url, GError** err){ GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); Davix::DavixError* daverr = NULL; if (davix->posix.unlink(&davix->params, url, &daverr) != 0) { davix2gliberr(daverr, err); Davix::DavixError::clearError(&daverr); return -1; } return 0; } int gfal_http_rmdirG(plugin_handle plugin_data, const char* url, GError** err){ GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); Davix::DavixError* daverr = NULL; if (davix->posix.rmdir(&davix->params, url, &daverr) != 0) { davix2gliberr(daverr, err); Davix::DavixError::clearError(&daverr); return -1; } return 0; } int gfal_http_access(plugin_handle plugin_data, const char* url, int mode, GError** err) { struct stat buf; GError* tmp_err = NULL; if (gfal_http_stat(plugin_data, url, &buf, &tmp_err) != 0) { g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return -1; } uid_t real_uid = getuid(); gid_t real_gid = getgid(); int ngroups = getgroups(0, NULL); gid_t additional_gids[ngroups]; getgroups(ngroups, additional_gids); if (real_uid == buf.st_uid) mode <<= 6; else if (real_gid == buf.st_gid) mode <<= 3; else { for (int i = 0; i < ngroups; ++i) { if (additional_gids[i] == buf.st_gid) { mode <<= 3; break; } } } if ((mode & buf.st_mode) != static_cast(mode)) { g_set_error(err, http_plugin_domain, EACCES, "[%s] Does not have enough permissions on '%s'", __func__, url); return -1; } else { return 0; } } gfal_file_handle gfal_http_opendir(plugin_handle plugin_data, const char* url, GError** err) { GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); Davix::DavixError* daverr = NULL; DAVIX_DIR* dir = davix->posix.opendir(&davix->params, url, &daverr); if (dir == NULL) { davix2gliberr(daverr, err); Davix::DavixError::clearError(&daverr); return NULL; } return gfal_file_handle_new(http_module_name, dir); } struct dirent* gfal_http_readdir(plugin_handle plugin_data, gfal_file_handle dir_desc, GError** err) { GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); Davix::DavixError* daverr = NULL; daverr = NULL; struct dirent* de = davix->posix.readdir((DAVIX_DIR*)gfal_file_handle_get_fdesc(dir_desc), &daverr); if (de == NULL && daverr != NULL) { davix2gliberr(daverr, err); Davix::DavixError::clearError(&daverr); } return de; } int gfal_http_closedir(plugin_handle plugin_data, gfal_file_handle dir_desc, GError** err) { GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); Davix::DavixError* daverr = NULL; int ret = 0; if (davix->posix.closedir((DAVIX_DIR*)gfal_file_handle_get_fdesc(dir_desc), &daverr) != 0) { davix2gliberr(daverr, err); Davix::DavixError::clearError(&daverr); ret = -1; } gfal_file_handle_delete(dir_desc); return ret; } int gfal_http_checksum(plugin_handle plugin_data, const char* url, const char* check_type, char * checksum_buffer, size_t buffer_length, off_t start_offset, size_t data_length, GError ** err) { GfalHttpInternal* davix = gfal_http_get_plugin_context(plugin_data); Davix::DavixError* daverr = NULL; if (start_offset != 0 || data_length != 0) { g_set_error(err, http_plugin_domain, ENOTSUP, "[%s] HTTP does not support partial checksums", __func__); return -1; } Davix::HttpRequest* request = davix->context.createRequest(url, &daverr); Davix::RequestParams requestParams(davix->params); request->setRequestMethod("HEAD"); request->addHeaderField("Want-Digest", check_type); requestParams.setTransparentRedirectionSupport(true); request->setParameters(requestParams); request->executeRequest(&daverr); if (daverr) { davix2gliberr(daverr, err); delete daverr; return -1; } std::string digest; request->getAnswerHeader("Digest", digest); delete request; if (digest.empty()) { g_set_error(err, http_plugin_domain, ENOTSUP, "[%s] No Digest header found for '%s'", __func__, url); return -1; } size_t valueOffset = digest.find('='); if (valueOffset == std::string::npos) { g_set_error(err, http_plugin_domain, ENOTSUP, "[%s] Malformed Digest header from '%s': %s", __func__, url, digest.c_str()); return -1; } std::string csumtype = digest.substr(0, valueOffset); std::string csumvalue = digest.substr(valueOffset + 1, std::string::npos); if (strcasecmp(csumtype.c_str(), check_type) != 0) { g_set_error(err, http_plugin_domain, ENOTSUP, "[%s] Asked for checksum %s, got %s: %s", __func__, check_type, csumtype.c_str(), url); return -1; } strncpy(checksum_buffer, csumvalue.c_str(), buffer_length); return 0; } gfal2-2.3.0/src/common/http/typemap.dat0000644000175000017500000000007112164561703017261 0ustar ellertellerttns = "http://www.gridsite.org/namespaces/delegation-1" gfal2-2.3.0/src/common/http/gfal_http_plugin.cpp0000644000175000017500000001452212164561703021150 0ustar ellertellert#include "gfal_http_plugin.h" #include #include const char* http_module_name = "http_plugin"; GQuark http_plugin_domain = g_quark_from_static_string(http_module_name); static const char* gfal_http_get_name(void) { return http_module_name; } GfalHttpInternal::GfalHttpInternal() : context(), posix(&context), params() { char * env_var = NULL; // Configure params params.addCertificateAuthorityPath( // TODO : thix should be configurable with gfal_get_opt system (env_var = (char*) g_getenv("X509_CERT_DIR"))?env_var:"/etc/grid-security/certificates/"); params.setTransparentRedirectionSupport(true); params.setUserAgent("gfal2::http"); params.setClientCertCallbackX509(&gfal_http_authn_cert_X509, NULL); } GfalHttpPluginData::GfalHttpPluginData() : davix(NULL), _init_mux(g_mutex_new()) {} GfalHttpPluginData::~GfalHttpPluginData() { delete davix; g_mutex_free(_init_mux); } GfalHttpInternal* gfal_http_get_plugin_context(gpointer plugin_data){ GfalHttpPluginData* data = static_cast(plugin_data); if(data->davix == NULL){ g_mutex_lock(data->_init_mux); if(data->davix == NULL){ data->davix = new GfalHttpInternal(); } g_mutex_unlock(data->_init_mux); } return data->davix; } void gfal_http_context_delete(gpointer plugin_data){ GfalHttpPluginData* data = static_cast(plugin_data); delete data; } void gfal_http_delete(plugin_handle plugin_data) { gfal_http_context_delete(plugin_data); } static gboolean gfal_http_check_url(plugin_handle plugin_data, const char* url, plugin_mode operation, GError** err) { switch(operation){ case GFAL_PLUGIN_ACCESS: case GFAL_PLUGIN_OPEN: case GFAL_PLUGIN_STAT: case GFAL_PLUGIN_MKDIR: case GFAL_PLUGIN_OPENDIR: case GFAL_PLUGIN_RMDIR: case GFAL_PLUGIN_UNLINK: case GFAL_PLUGIN_CHECKSUM: return (strncmp("http:", url, 5) == 0 || strncmp("https:", url, 6) == 0 || strncmp("dav:", url, 4) == 0 || strncmp("davs:", url, 5) == 0); default: return false; } } static int davix2errno(Davix::StatusCode::Code code) { int errcode; switch (code) { case DAVIX_STATUS_OK: case DAVIX_STATUS_PARTIAL_DONE: errcode = 0; break; case DAVIX_STATUS_WEBDAV_PROPERTIES_PARSING_ERROR: case DAVIX_STATUS_URI_PARSING_ERROR: errcode = EIO; break; case DAVIX_STATUS_SESSION_CREATION_ERROR: errcode = EPERM; break; case DAVIX_STATUS_NAME_RESOLUTION_FAILURE: errcode = EHOSTUNREACH; break; case DAVIX_STATUS_CONNECTION_PROBLEM: errcode = EHOSTDOWN; break; case DAVIX_STATUS_REDIRECTION_NEEDED: errcode = ENOSYS; break; case DAVIX_STATUS_CONNECTION_TIMEOUT: case DAVIX_STATUS_OPERATION_TIMEOUT: errcode = ETIMEDOUT; break; case DAVIX_STATUS_OPERATION_NOT_SUPPORTED: errcode = EPERM; break; case DAVIX_STATUS_IS_NOT_A_DIRECTORY: errcode = ENOTDIR; break; case DAVIX_STATUS_INVALID_FILE_HANDLE: errcode = EBADF; break; case DAVIX_STATUS_AUTHENTIFICATION_ERROR: case DAVIX_STATUS_LOGIN_PASSWORD_ERROR: case DAVIX_STATUS_CREDENTIAL_NOT_FOUND: case DAVIX_STATUS_PERMISSION_REFUSED: errcode = EACCES; break; case DAVIX_STATUS_FILE_NOT_FOUND: errcode = ENOENT; break; default: errcode = EIO; break; } return errcode; } void davix2gliberr(const Davix::DavixError* daverr, GError** err) { g_set_error(err, http_plugin_domain, davix2errno(daverr->getStatus()), "%s", daverr->getErrMsg().c_str()); } /// Authn implementation void gfal_http_get_ucert(std::string& ucert, std::string& ukey) { char default_proxy[64]; // Try explicit environment for proxy first if (getenv("X509_USER_PROXY")) { ucert = ukey = getenv("X509_USER_PROXY"); return; } // Try with default location snprintf(default_proxy, sizeof(default_proxy), "/tmp/x509up_u%d", geteuid()); if (access(default_proxy, R_OK) == 0) { ucert = ukey = default_proxy; return; } // Last, try with X509_* environment if (getenv("X509_USER_CERT")) ucert = getenv("X509_USER_CERT"); if (getenv("X509_USER_KEY")) ukey = getenv("X509_USER_KEY"); } int gfal_http_authn_cert_X509(void* userdata, const Davix::SessionInfo & info, Davix::X509Credential * cert, Davix::DavixError** err) { std::string ucert, ukey; gfal_http_get_ucert(ucert, ukey); // No luck if (ucert.empty() || ukey.empty()) { Davix::DavixError::setupError(err, http_module_name, Davix::StatusCode::AuthentificationError, "Could not set the user's proxy or certificate"); return -1; } // Set certificate return cert->loadFromFilePEM(ukey, ucert, "", err); } /// Init function extern "C" gfal_plugin_interface gfal_plugin_init(gfal_handle handle, GError** err) { gfal_plugin_interface http_plugin; *err = NULL; memset(&http_plugin, 0, sizeof(http_plugin)); // Bind metadata http_plugin.check_plugin_url = &gfal_http_check_url; http_plugin.getName = &gfal_http_get_name; http_plugin.priority = GFAL_PLUGIN_PRIORITY_DATA; http_plugin.plugin_data = new GfalHttpPluginData(); http_plugin.plugin_delete = &gfal_http_delete; http_plugin.statG = &gfal_http_stat; http_plugin.accessG = &gfal_http_access; http_plugin.mkdirpG = &gfal_http_mkdirpG; http_plugin.unlinkG = &gfal_http_unlinkG; http_plugin.rmdirG = &gfal_http_rmdirG; http_plugin.opendirG = &gfal_http_opendir; http_plugin.readdirG = &gfal_http_readdir; http_plugin.closedirG = &gfal_http_closedir; // Bind IO http_plugin.openG = &gfal_http_fopen; http_plugin.readG = &gfal_http_fread; http_plugin.writeG = &gfal_http_fwrite; http_plugin.lseekG = &gfal_http_fseek; http_plugin.closeG = &gfal_http_fclose; // Checksum http_plugin.checksum_calcG = &gfal_http_checksum; // Bind 3rd party copy http_plugin.check_plugin_url_transfer = gfal_http_3rdcopy_check; http_plugin.copy_file = gfal_http_3rdcopy; return http_plugin; } gfal2-2.3.0/src/common/gfal_common_dir_handle.c0000644000175000017500000000356712164561703020744 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_common_dir_handle.c * file for the directory handle management * author Devresse Adrien * */ #include #include #include #include #include "gfal_constants.h" #include "gfal_types.h" #include "gfal_common_filedescriptor.h" #include "gfal_common_dir_handle.h" pthread_mutex_t m_dir_container =PTHREAD_MUTEX_INITIALIZER; // return the singleton of the file descriptor container for the directories gfal_fdesc_container_handle gfal_dir_handle_container_instance(gfal_descriptors_container* fdescs, GError** err){ gfal_fdesc_container_handle dir_handle = fdescs->dir_container; if(dir_handle == NULL){ pthread_mutex_lock(&m_dir_container); if(fdescs->dir_container == NULL){ dir_handle = fdescs->dir_container = gfal_file_descriptor_handle_create(NULL); if(!dir_handle) g_set_error(err, 0, EIO, "[%s] Error while init directories file descriptor container", __func__); } pthread_mutex_unlock(&m_dir_container); } return dir_handle; } void gfal_dir_handle_container_delete(gfal_descriptors_container* fdescs){ pthread_mutex_lock(&m_dir_container); free(fdescs->dir_container); fdescs->dir_container = NULL; pthread_mutex_unlock(&m_dir_container); } gfal2-2.3.0/src/common/gfal_prototypes.h0000644000175000017500000000461712164561703017535 0ustar ellertellert#pragma once #ifndef _GFAL_PROTOTYPES_H #define _GFAL_PROTOTYPES_H /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file contain all the prototypes needed by the gfal common files * @author Devresse Adrien * @version 0.0.1 * @date 04/05/2011 * * */ #include #ifdef __cplusplus extern "C" { #endif /* globals enums list plugin check type */ typedef enum _plugin_mode{ GFAL_PLUGIN_ALL=0, GFAL_PLUGIN_ACCESS, GFAL_PLUGIN_CHMOD, GFAL_PLUGIN_RENAME, GFAL_PLUGIN_SYMLINK, GFAL_PLUGIN_STAT, GFAL_PLUGIN_LSTAT, GFAL_PLUGIN_MKDIR, GFAL_PLUGIN_RMDIR, GFAL_PLUGIN_OPENDIR, /* concat of opendir readdir, closedir*/ GFAL_PLUGIN_OPEN, /* concat of open read, close*/ GFAL_PLUGIN_RESOLVE_GUID, GFAL_PLUGIN_GETXATTR, GFAL_PLUGIN_SETXATTR, GFAL_PLUGIN_LISTXATTR, GFAL_PLUGIN_READLINK, GFAL_PLUGIN_UNLINK, GFAL_PLUGIN_CHECKSUM, GFAL_PLUGIN_MKDIR_REC, GFAL_PLUGIN_BRING_ONLINE } plugin_mode; typedef enum _gfal_url2_check{ GFAL_FILE_COPY } gfal_url2_check; enum _GFAL_TYPE { GFAL_TYPE_INT=0, GFAL_TYPE_STRING=1 }; enum _GFAL_PARAM_FUNC{ GFAL_PARAM_SET=0, GFAL_PARAM_GET=1 }; /* plugin */ typedef struct _plugin_opts plugin_opts; typedef struct _gfal_plugin_interface gfal_plugin_interface; typedef gpointer plugin_handle; /* file descrisptor */ typedef struct _gfal_file_descriptor_container *gfal_fdesc_container_handle; /*typedef enum _gfal_type_desc gfal_type_desc;*/ /* dir part file descriptor*/ typedef struct _gfal_file_handle_* gfal_file_handle; /* main */ typedef struct gfal_handle_* gfal_handle; typedef struct _gfal_descriptors_container gfal_descriptors_container; typedef struct _gfal_conf_container gfal_conf_container; typedef enum _GFAL_TYPE GFAL_TYPE; typedef enum _GFAL_PARAM_FUNC GFAL_PARAM_FUNC; #ifdef __cplusplus } #endif #endif gfal2-2.3.0/src/common/gfal_common_file_handle.c0000644000175000017500000000310512164561703021071 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_common_file_handle.c * file for the file handle management * author Devresse Adrien * */ #include #include #include #include #include "gfal_constants.h" #include "gfal_types.h" #include "gfal_common_filedescriptor.h" #include "gfal_common_file_handle.h" gfal_fdesc_container_handle gfal_file_handle_container_instance(gfal_descriptors_container* fdescs, GError** err){ gfal_fdesc_container_handle file_handle = fdescs->file_container; if(file_handle != NULL) return file_handle; else{ file_handle = fdescs->file_container = gfal_file_descriptor_handle_create(NULL); if(!file_handle) g_set_error(err, 0, EIO, "[%s] Error while init directories file descriptor container", __func__); return file_handle; } } void gfal_file_handle_container_delete(gfal_descriptors_container* fdescs){ free(fdescs->file_container); fdescs->dir_container = NULL; } gfal2-2.3.0/src/common/mds/0000755000175000017500000000000012164561703014716 5ustar ellertellertgfal2-2.3.0/src/common/mds/gfal_common_mds_ldap_internal_layer.h0000644000175000017500000000443412164561703024310 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_mds_ldap_internal_layer.h * @brief interface for mock purpose * @author Adrien Devresse * @date 05/09/2011 * */ #include #include struct _gfal_mds_ldap{ int (*ldap_initialize)(LDAP **ldp, const char *uri); int (*ldap_sasl_bind_s)(LDAP *ld, const char *dn, const char *mechanism, struct berval *cred, LDAPControl *sctrls[], LDAPControl *cctrls[], struct berval **servercredp); int (*ldap_search_ext_s)( LDAP *ld, LDAP_CONST char *base, int scope, LDAP_CONST char *filter, char **attrs, int attrsonly, LDAPControl **serverctrls, LDAPControl **clientctrls, struct timeval *timeout, int sizelimit, LDAPMessage **res ); int (*ldap_unbind_ext_s) ( LDAP *ld, LDAPControl **serverctrls, LDAPControl **clientctrls); LDAPMessage* (*ldap_first_entry)( LDAP *ld, LDAPMessage *result ); LDAPMessage* (*ldap_next_entry)( LDAP *ld, LDAPMessage *entry ); int (*ldap_count_entries)( LDAP *ld, LDAPMessage *result ); char* (*ldap_first_attribute)( LDAP *ld, LDAPMessage *entry, BerElement **berptr ); char* (*ldap_next_attribute)( LDAP *ld, LDAPMessage *entry, BerElement *ber ); struct berval **(*ldap_get_values_len)(LDAP *ld, LDAPMessage *entry, const char *attr); void (*ldap_value_free_len) ( struct berval **vals ); void (*ldap_memfree)(void * p); int (*ldap_msgfree)( LDAPMessage *msg ); void (*ber_free)(BerElement *ber, int freebuf); int (*ldap_set_option)(LDAP *ld, int option, const void *invalue); }; extern struct _gfal_mds_ldap gfal_mds_ldap; gfal2-2.3.0/src/common/mds/gfal_common_mds_ldap_internal_layer.c0000644000175000017500000000307212164561703024300 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_mds_ldap_internal.c * @brief file for the internal ldap query by gfal, without is interface * @author Adrien Devresse * @date 05/09/2011 * */ #include #include #include #include #include "gfal_common_mds_ldap_internal_layer.h" struct _gfal_mds_ldap gfal_mds_ldap={ .ldap_initialize= ldap_initialize, .ldap_sasl_bind_s = ldap_sasl_bind_s, .ldap_search_ext_s = ldap_search_ext_s, .ldap_unbind_ext_s = ldap_unbind_ext_s, .ldap_first_entry= ldap_first_entry, .ldap_next_entry= ldap_next_entry, .ldap_first_attribute = ldap_first_attribute, .ldap_next_attribute = ldap_next_attribute, .ldap_get_values_len= ldap_get_values_len, .ldap_value_free_len = ldap_value_free_len, .ldap_memfree = ldap_memfree, .ldap_msgfree = ldap_msgfree, .ber_free = ber_free, .ldap_count_entries = ldap_count_entries, .ldap_set_option = ldap_set_option }; gfal2-2.3.0/src/common/mds/gfal_common_mds.h0000644000175000017500000000365412164561703020223 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @brief header file for the bdii request part of gfal * @author : Devresse Adrien * @version 2.0.0 * @date 18/04/2011 * */ #define GFAL_MDS_MAX_SRM_ENDPOINT 100 #include #include #include #include #ifndef MDS_BDII_EXTERNAL #define MDS_BDII_EXTERNAL 0 #endif typedef enum { SRMv2=0, SRMv1, WebDav } mds_type_endpoint; /* * @struct gfal_mds_endpoint * represente an endpoint URL and its type */ typedef struct _gfal_mds_endpoint{ char url[GFAL_URL_MAX_LEN]; mds_type_endpoint type; } gfal_mds_endpoint; extern const char* bdii_env_var; extern const char* bdii_config_var; extern const char* bdii_config_group; extern const char* bdii_config_timeout; // int gfal_mds_resolve_srm_endpoint(gfal_context_t handle, const char* base_url, gfal_mds_endpoint* endpoints, size_t s_endpoint, GError** err); // deprecated, use gfal_mds_resolve_srm_endpoint instead int gfal_mds_get_se_types_and_endpoints(gfal_context_t handle, const char *host, char ***se_types, char ***se_endpoints, GError** err); char * gfal_get_lfchost_bdii(gfal_handle handle, GError** err); void gfal_set_nobdiiG(gfal_handle handle, gboolean no_bdii_chk); gboolean gfal_get_nobdiiG(gfal_handle handle); gfal2-2.3.0/src/common/mds/gfal_common_mds_ldap_internal.h0000644000175000017500000000265012164561703023112 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_mds_ldap_internal.ch * @brief header for the internal ldap query by gfal, without is interface * @author Adrien Devresse * @date 05/09/2011 * */ #include #include #include #include #include "gfal_common_mds.h" LDAP* gfal_mds_ldap_connect(gfal2_context_t context, const char* uri, GError** err); int gfal_mds_get_ldapuri(gfal2_context_t context, char* buff, size_t s_buff, GError** err); int gfal_mds_get_srm_types_endpoint(LDAP* ld, LDAPMessage *result, gfal_mds_endpoint* endpoints, size_t s_endpoint, GError** err); int gfal_mds_bdii_get_srm_endpoint(gfal2_context_t handle, const char* base_url, gfal_mds_endpoint* endpoints, size_t s_endpoint, GError** err); gfal2-2.3.0/src/common/mds/gfal_common_mds.c0000644000175000017500000001237012164561703020211 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @brief file for the bdii request part of gfal * @author Devresse Adrien * @version 2.0.0 * @date 18/04/2011 * */ #include #include #include #include #include #include #include #include #include #include #include #include "gfal_common_mds_ldap_internal.h" pthread_mutex_t m_mds =PTHREAD_MUTEX_INITIALIZER; const char* bdii_env_var = "LCG_GFAL_INFOSYS"; const char* bdii_config_var = "LCG_GFAL_INFOSYS"; const char* bdii_config_group = "BDII"; const char* bdii_config_enable = "ENABLED"; const char* bdii_config_timeout = "TIMEOUT"; /* * set the bdii value of the handle specified */ void gfal_set_nobdiiG(gfal_handle handle, gboolean no_bdii_chk){ gfal2_set_opt_boolean(handle, bdii_config_group, bdii_config_enable, !no_bdii_chk, NULL); } gboolean gfal_get_nobdiiG(gfal_handle handle){ return (!gfal2_get_opt_boolean_with_default(handle, bdii_config_group,bdii_config_enable,TRUE)); } /* * define the bdii endpoint for the current handle * same purpose that the old LCG_GFAL_INFOSYS environment variable */ void gfal_mds_set_infosys(gfal_handle handle, const char * infosys, GError** err){ g_return_if_fail(handle && infosys); // no manner to define infosys in is interface currently, just setup the env var, // TODO : change this in is-interface and integrated module g_setenv(bdii_env_var, infosys, TRUE); } void gfal_mds_define_bdii_endpoint(gfal2_context_t handle, GError** err){ if(g_getenv(bdii_env_var) == NULL){ pthread_mutex_lock(&m_mds); gchar * bdii_host = gfal2_get_opt_string(handle,bdii_config_group, bdii_config_var,NULL); if(bdii_host ){ gfal_log(GFAL_VERBOSE_DEBUG, " define LCG_GFAL_INFOSYS : %s", bdii_host); gfal_mds_set_infosys (handle, bdii_host, NULL); } g_free(bdii_host); pthread_mutex_unlock(&m_mds); } } /* * return the srm endpoints and their types, in the old way * */ int gfal_mds_get_se_types_and_endpoints (gfal_context_t handle, const char *host, char ***se_types, char ***se_endpoints, GError** err){ GError* tmp_err=NULL; gfal_mds_endpoint tabend[GFAL_MDS_MAX_SRM_ENDPOINT]; int n = gfal_mds_resolve_srm_endpoint(handle, host, tabend, GFAL_MDS_MAX_SRM_ENDPOINT, &tmp_err); if( n > 0){ int i; *se_types = calloc(n+1, sizeof(char*)); *se_endpoints = calloc(n+1, sizeof(char*)); for(i=0; i< n; ++i){ (*se_endpoints)[i] = strdup(tabend[i].url); (*se_types)[i] = strdup(((tabend[i].type == SRMv2)?"srm_v2":"srm_v1")); } } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return (n >0)?0:-1; } /* * try to get lfc hostname from bdii * @return string if success or NULL & set the err if fail * */ char * gfal_get_lfchost_bdii(gfal_handle handle, GError** err){ size_t s_errbuff = GFAL_ERRMSG_LEN; char errbuff[s_errbuff]; memset(errbuff, '\0', sizeof(char)*s_errbuff); g_set_error(err, 0, EPROTONOSUPPORT, "[%s] disable in gfal 2.0, api broken in is interface",__func__); return NULL; } #if MDS_BDII_EXTERNAL /* * external call to the is interface for external bdii resolution * */ int gfal_mds_isifce_wrapper(const char* base_url, gfal_mds_endpoint* endpoints, size_t s_endpoint, GError** err){ char ** name_endpoints; char** types_endpoints; char errbuff[GFAL_ERRMSG_LEN]= {0}; GError* tmp_err=NULL; int res = -1; if(sd_get_se_types_and_endpoints(base_url, &types_endpoints, &name_endpoints, errbuff, GFAL_ERRMSG_LEN-1) != 0){ g_set_error(&tmp_err, 0, ENXIO, "IS INTERFACE ERROR : %s ", errbuff); }else{ int i; char ** p1 =name_endpoints; char **p2 =types_endpoints; for(i=0; i< s_endpoint && *p1 != NULL && *p2 != NULL; ++i,++p2,++p1){ g_strlcpy(endpoints[i].url, *p1, GFAL_URL_MAX_LEN); endpoints[i].type = (strcmp(*p2, "srm_v2")==0)?SRMv2:SRMv1; } res =i+1; } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return res; } #endif int gfal_mds_resolve_srm_endpoint(gfal2_context_t handle, const char* base_url, gfal_mds_endpoint* endpoints, size_t s_endpoint, GError** err){ // define endpoint #if MDS_BDII_EXTERNAL // call the is interface if configured for gfal_mds_define_bdii_endpoint(handle, err); if(err && *err==NULL) return gfal_mds_isifce_wrapper(base_url, endpoints, s_endpoint, err); return NULL; #else return gfal_mds_bdii_get_srm_endpoint(handle, base_url, endpoints, s_endpoint, err); #endif } gfal2-2.3.0/src/common/mds/gfal_common_mds_ldap_internal.c0000644000175000017500000002326312164561703023110 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_mds_ldap_internal.c * @brief file for the internal ldap query by gfal, without is interface * @author Adrien Devresse * @date 05/09/2011 * */ #include #include #include #include #include #include #include #include #include "gfal_common_mds_ldap_internal.h" #include "gfal_common_mds_ldap_internal_layer.h" static char* tabattr[] = {"GlueServiceVersion", "GlueServiceEndpoint", "GlueServiceType", NULL}; static const char *sbasedn = "o=grid"; static const char* srm_endpoint_filter = "(|(GlueSEUniqueID=*%s*)(&(GlueServiceType=srm*)(GlueServiceEndpoint=*://%s*)))"; static const char* SRM_PREFIX_NAME="SRM"; static pthread_mutex_t mux_init_lap = PTHREAD_MUTEX_INITIALIZER; LDAP* gfal_mds_ldap_connect(gfal2_context_t context, const char* uri, GError** err){ g_return_val_err_if_fail(uri != NULL, NULL, err, "invalid arg uri"); LDAP* ld=NULL; GError* tmp_err=NULL; int rc; pthread_mutex_lock(&mux_init_lap); // libldap suffers of a thread-safety bug inside initialize function if ( (rc = gfal_mds_ldap.ldap_initialize(&ld, uri)) != LDAP_SUCCESS ) { g_set_error(&tmp_err, 0, ECOMM, "Error with contacting ldap %s : %s", uri, ldap_err2string(rc)); }else{ struct timeval timeout = {0}; timeout.tv_sec = gfal2_get_opt_integer_with_default(context, bdii_config_group, bdii_config_timeout, -1); gfal_mds_ldap.ldap_set_option(ld, LDAP_OPT_NETWORK_TIMEOUT, &timeout); gfal_mds_ldap.ldap_set_option(ld, LDAP_OPT_TIMEOUT, &timeout); gfal_log(GFAL_VERBOSE_TRACE, " use BDII TIMEOUT : %ld", timeout.tv_sec); gfal_log(GFAL_VERBOSE_VERBOSE, " Try to bind with the bdii %s", uri); struct berval cred= { .bv_val = NULL, .bv_len = 0 }; if( (rc = gfal_mds_ldap.ldap_sasl_bind_s( ld, NULL, LDAP_SASL_SIMPLE, &cred, NULL, NULL, NULL)) != LDAP_SUCCESS){ g_set_error(&tmp_err, 0, ECOMM, "Error while bind to bdii with %s : %s", uri, ldap_err2string(rc)); ld=NULL; } } pthread_mutex_unlock(&mux_init_lap); G_RETURN_ERR(ld, tmp_err, err); } /* * Execute a ldap query on a connected bdii * */ int gfal_mds_ldap_search(LDAP* ld, const char* basedn, const char* filter, char** tabattr, LDAPMessage **res, GError** err){ GError* tmp_err=NULL; int ret = -1; int rc; if ( ( rc = gfal_mds_ldap.ldap_search_ext_s( ld, basedn, LDAP_SCOPE_SUBTREE, filter, tabattr, 0, NULL, NULL, LDAP_NO_LIMIT, LDAP_NO_LIMIT, res ) ) != LDAP_SUCCESS ) { g_set_error(&tmp_err, 0, ECOMM, "Error while request %s to bdii : %s", filter, ldap_err2string(rc)); }else ret = 0; if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]",__func__); return ret; } /* * convert bdii returned value to a srm_endpoint struct * @return 0 if success else -1 * */ static int gfal_mds_srm_endpoint_struct_builder(char* srm_name, char* srm_version, char* srm_endpoint, gfal_mds_endpoint* endpoints, GError** err){ int ret = 0; GError* tmp_err=NULL; if(strncasecmp(srm_name, SRM_PREFIX_NAME, strlen(SRM_PREFIX_NAME)) != 0){ g_set_error(&tmp_err, 0, EINVAL, "bad value of srm endpoint returned by bdii : %s, excepted : %s ", srm_name, SRM_PREFIX_NAME); ret =-1; }else{ if(strncmp(srm_version, "1.", 2) == 0) endpoints->type= SRMv1; else if(strncmp(srm_version, "2.", 2) == 0) endpoints->type= SRMv2; else{ g_set_error(&tmp_err, 0, EINVAL, "bad value of srm version returned by bdii : %s, excepted 1.x or 2.x ", srm_version); ret = -1; } if(strstr(srm_endpoint, ":/") != NULL) g_strlcpy(endpoints->url, srm_endpoint, GFAL_URL_MAX_LEN); else{ g_set_error(&tmp_err, 0, EINVAL, "bad value of srm endpoint returned by bdii : %s, excepted a correct endpoint url ( httpg://, https://, ... ) ", srm_endpoint); ret = -1; } } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]",__func__); return ret; } /* * Analyse attr fields * return > 0 if success, 0 if not it is an empty entry or -1 if error * */ static int gfal_mds_convert_entry_to_srm_information(LDAP* ld,LDAPMessage * entry, gfal_mds_endpoint* endpoints, GError** err){ struct berval ** vals; char* a; int ret = 0; GError * tmp_err=NULL; BerElement *ber; char srm_name[GFAL_URL_MAX_LEN+1]={0}; char srm_version[GFAL_URL_MAX_LEN+1]={0}; char srm_endpoint[GFAL_URL_MAX_LEN+1]={0}; for ( a = gfal_mds_ldap.ldap_first_attribute( ld, entry, &ber ); a != NULL; a = gfal_mds_ldap.ldap_next_attribute( ld, entry, ber ) ) { // for each attribute if ((vals = gfal_mds_ldap.ldap_get_values_len( ld, entry, a)) != NULL ) { if(strncmp(a, "GlueServiceVersion", GFAL_URL_MAX_LEN) == 0){ *((char*) mempcpy(srm_version,vals[0]->bv_val, MIN(GFAL_URL_MAX_LEN,vals[0]->bv_len) )) = '\0'; ret+=1; }else if (strncmp(a, "GlueServiceEndpoint", GFAL_URL_MAX_LEN) == 0){ *((char*) mempcpy(srm_endpoint,vals[0]->bv_val, MIN(GFAL_URL_MAX_LEN,vals[0]->bv_len) )) = '\0'; ret+=1; }else if (strncmp(a, "GlueServiceType", GFAL_URL_MAX_LEN) == 0){ *((char*) mempcpy(srm_name,vals[0]->bv_val, MIN(GFAL_URL_MAX_LEN,vals[0]->bv_len) )) = '\0'; ret+=1; }else{ g_set_error(&tmp_err, 0, EINVAL, " Bad attribute retrived from bdii "); gfal_mds_ldap.ldap_value_free_len( vals ); gfal_mds_ldap.ldap_memfree( a ); ret = -1; break; } gfal_mds_ldap.ldap_value_free_len( vals ); } gfal_mds_ldap.ldap_memfree(a); } if(ber) gfal_mds_ldap.ber_free(ber,0); if(ret > 0) ret = (gfal_mds_srm_endpoint_struct_builder(srm_name, srm_version, srm_endpoint, endpoints, &tmp_err) ==0 )?ret:-1; if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]",__func__); return ret; } /* * * parse the result of a query to get the srm endpoint */ int gfal_mds_get_srm_types_endpoint(LDAP* ld, LDAPMessage* result, gfal_mds_endpoint* endpoints, size_t s_endpoint, GError** err){ GError* tmp_err=NULL; int ret = 0; int tmp_ret; int i=0; if( (tmp_ret= gfal_mds_ldap.ldap_count_entries(ld, result)) >= 1 ){ LDAPMessage* e = gfal_mds_ldap.ldap_first_entry( ld, result ); while ( e != NULL && i < s_endpoint ) { /* Iterate through each attribute in the entry. */ if( ( tmp_ret = gfal_mds_convert_entry_to_srm_information(ld, e, &endpoints[i], &tmp_err)) < 0){ ret = -1; break; } if(tmp_ret > 0){ // if 0 returned, empty field, try again without increment i++; ret++; } e = gfal_mds_ldap.ldap_next_entry(ld, e); } }else if(tmp_ret == -1){ int myld_errno=0; ldap_get_option(ld, LDAP_OPT_RESULT_CODE,&myld_errno); g_set_error(&tmp_err, 0, EINVAL, " error returned in ldap results : %s", ldap_err2string(myld_errno)); ret = -1; }else { g_set_error(&tmp_err, 0, ENXIO, " no entries for the endpoint returned by the bdii : %d ", tmp_ret); ret = -1; } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]",__func__); return ret; } /* * * get the current ldap URI **/ int gfal_mds_get_ldapuri(gfal2_context_t context, char* buff, size_t s_buff, GError** err){ char *var; GError* tmp_err=NULL; int ret = -1; g_strlcpy(buff, "ldap://", s_buff); if((var = getenv(bdii_env_var)) != NULL){ g_strlcat(buff, var, s_buff); ret = 0; }else{ gchar * internal_bdii_host = gfal2_get_opt_string(context, bdii_config_group, bdii_config_var,NULL); gfal_log(GFAL_VERBOSE_TRACE, " use LCG_GFAL_INFOSYS : %s", internal_bdii_host); g_strlcat(buff, internal_bdii_host, s_buff); g_free(internal_bdii_host); ret =0; } G_RETURN_ERR(ret, tmp_err, err); } void gfal_mds_ldap_disconnect(LDAP* ld){ gfal_mds_ldap.ldap_unbind_ext_s( ld,NULL,NULL ); } /* * resolve the SRM endpoint associated with a given base_url with the bdii * @param base_url : basic url to resolve * @param endpoints : table of gfal_mds_endpoint to set with a size of s_endpoint * @param s_endpoint : maximum number of endpoints to set * @param err: Gerror system for the report of the errors. * @return : number of endpoints set or -1 if error */ int gfal_mds_bdii_get_srm_endpoint(gfal2_context_t context, const char* base_url, gfal_mds_endpoint* endpoints, size_t s_endpoint, GError** err){ int ret =-1; GError* tmp_err=NULL; char uri[GFAL_URL_MAX_LEN]; LDAP* ld; gfal_log(GFAL_VERBOSE_TRACE, " gfal_mds_bdii_get_srm_endpoint ->"); if( gfal_mds_get_ldapuri(context, uri, GFAL_URL_MAX_LEN, &tmp_err) >= 0){ if( (ld = gfal_mds_ldap_connect(context, uri, &tmp_err)) != NULL){ LDAPMessage * res; char buff_filter[GFAL_URL_MAX_LEN]; snprintf(buff_filter, GFAL_URL_MAX_LEN, srm_endpoint_filter, base_url, base_url); // construct the request if(gfal_mds_ldap_search(ld, sbasedn, buff_filter, tabattr, &res, &tmp_err) >= 0){ ret = gfal_mds_get_srm_types_endpoint(ld, res, endpoints, s_endpoint, &tmp_err); gfal_mds_ldap.ldap_msgfree(res); } gfal_mds_ldap_disconnect(ld); } } gfal_log(GFAL_VERBOSE_TRACE, " gfal_mds_bdii_get_srm_endpoint <-"); if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]",__func__); return ret; } gfal2-2.3.0/src/common/gfal_common_plugin.c0000644000175000017500000007201612164561703020144 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_common_plugin.c * common part for the plugin management * author : Devresse Adrien */ #include #include #include #include #include #include #include #include "gfal_types.h" #include "gfal_common_plugin.h" #include "gfal_constants.h" #include "gfal_common_errverbose.h" #include "gfal_common_filedescriptor.h" #ifndef GFAL_PLUGIN_DIR_DEFAULT #error "GFAL_PLUGIN_DIR_DEFAULT should be define at compile time" #endif /* * function to use in order to create a new plugin interface * permit to keep the ABI compatibility * must be use in ALL the plugin's "gfal_plugin_init" functions */ gfal_plugin_interface* gfal_plugin_interface_new(){ size_t s_plugin = sizeof(gfal_plugin_interface)+1; gfal_plugin_interface* ret = malloc( s_plugin); // bigger allocation that needed for futur extensions memset(ret, 0,s_plugin); return ret; } plugin_handle gfal_get_plugin_handle(gfal_plugin_interface* cata_list){ return cata_list->plugin_data; } gboolean gfal_feature_is_supported(void * ptr, GQuark scope, const char* func_name, GError** err){ if(ptr == NULL){ g_set_error(err, scope,EPROTONOSUPPORT, "[%s] Protocol not supported or path/url invalid", func_name); return FALSE; } return TRUE; } //convenience function for safe calls to the plugin checkers gboolean gfal_plugin_checker_safe(gfal_plugin_interface* cata_list, const char* path, plugin_mode call_type, GError** terr ){ if(cata_list->check_plugin_url) return cata_list->check_plugin_url(cata_list->plugin_data, path, call_type, terr); else{ g_set_error(terr, 0, EPROTONOSUPPORT, "[%s] unexcepted NULL \ pointer for a call to the url checker in the \ plugin %s",__func__, cata_list->getName()); return FALSE; } } // // Resolve entry point in a plugin and add it to the current plugin list // static int gfal_module_init(gfal_handle handle, void* dlhandle, const char* module_name, GError** err){ GError* tmp_err=NULL; static gfal_plugin_interface (*constructor)(gfal_handle,GError**); int* n = &handle->plugin_opt.plugin_number; int ret =-1; constructor= (gfal_plugin_interface (*)(gfal_handle,GError**)) dlsym(dlhandle, GFAL_PLUGIN_INIT_SYM); if(constructor == NULL){ g_set_error(&tmp_err, 0, EINVAL, "No symbol %s found in the plugin %s, failure", GFAL_PLUGIN_INIT_SYM, module_name); *n=0; }else{ handle->plugin_opt.plugin_list[*n] = constructor(handle, &tmp_err); handle->plugin_opt.plugin_list[*n].gfal_data = dlhandle; if(tmp_err){ g_prefix_error(&tmp_err, "Unable to load plugin %s : ", module_name); *n=0; }else{ *n+=1; gfal_log(GFAL_VERBOSE_NORMAL, "[gfal_module_load] plugin %s loaded with success ", module_name); ret=0; } } G_RETURN_ERR(ret, tmp_err, err); } // unload each loaded plugin int gfal_plugins_delete(gfal_handle handle, GError** err){ g_return_val_err_if_fail(handle, -1, err, "[gfal_plugins_delete] Invalid value of handle"); const int plugin_number = handle->plugin_opt.plugin_number; if(plugin_number > 0){ int i; for(i=0; i< plugin_number; ++i){ gfal_plugin_interface* p = &(handle->plugin_opt.plugin_list[i]); if(p->plugin_delete) p->plugin_delete(gfal_get_plugin_handle(p)); } handle->plugin_opt.plugin_number =0; } return 0; } // return the proper plugin linked to this file handle gfal_plugin_interface* gfal_plugin_map_file_handle(gfal_handle handle, gfal_file_handle fh, GError** err){ GError* tmp_err=NULL; int i; gfal_plugin_interface* cata_list=NULL; int n = gfal_plugins_instance(handle, &tmp_err); if(n > 0){ cata_list = handle->plugin_opt.plugin_list; for(i=0; i < n; ++i){ if( strncmp(cata_list[i].getName(),fh->module_name, GFAL_MODULE_NAME_SIZE)==0 ) return &(cata_list[i]); } g_set_error(&tmp_err, 0, EBADF, "No gfal_module with the handle name : %s", fh->module_name); }else{ g_set_error(&tmp_err, 0, EINVAL, "No gfal_module loaded"); } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]",__func__); return cata_list; } // external function to get the list of the plugins loaded char** gfal_plugins_get_list(gfal_handle handle, GError** err){ GError* tmp_err=NULL; char** resu =NULL; int n = gfal_plugins_instance(handle, &tmp_err); if(n > 0){ resu =g_new0(char*,n+1); int i; gfal_plugin_interface* cata_list = handle->plugin_opt.plugin_list; for(i=0; i < n; ++i, ++cata_list){ resu[i] = strndup(cata_list->getName(), GFAL_URL_MAX_LEN); } } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return resu; } // external function to return a gfal_plugin_interface from a given plugin name gfal_plugin_interface* gfal_search_plugin_with_name(gfal_handle handle, const char* name, GError** err){ g_return_val_err_if_fail(name && handle, NULL, err, "must be non NULL value"); GError* tmp_err=NULL; gfal_plugin_interface* resu= NULL; int n = gfal_plugins_instance(handle, &tmp_err); if(n > 0){ int i; gfal_plugin_interface* cata_list = handle->plugin_opt.plugin_list; for(i=0; i < n; ++i, ++cata_list){ const char* plugin_name = cata_list->getName(); if(plugin_name != NULL && strcmp(plugin_name, name) ==0){ resu = cata_list; break; } } if(resu ==NULL) g_set_error(&tmp_err, 0, ENOENT, " No plugin loaded with this name %s", name); } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return resu; } // load the gfal_plugins in the listed library static int gfal_module_load(gfal_handle handle, char* module_name, GError** err){ void* dlhandle = dlopen(module_name, RTLD_LAZY); GError * tmp_err=NULL; int ret = -1; if (dlhandle==NULL) g_set_error(&tmp_err, 0, EINVAL, "[%s] Unable to open the %s plugin specified in the plugin directory, failure : %s", __func__, module_name, dlerror()); else ret = gfal_module_init(handle, dlhandle, module_name, &tmp_err); if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } plugin_pointer_handle gfal_plugins_list_handler(gfal_handle handle, GError** err){ GError* tmp_err=NULL; plugin_pointer_handle resu =NULL; int n = gfal_plugins_instance(handle, &tmp_err); if(n > 0){ resu =g_new0(struct _plugin_pointer_handle,n+1); int i; GList * plugin_list = g_list_first(handle->plugin_opt.sorted_plugin); i =0; while(plugin_list != NULL){ gfal_plugin_interface* cata_list = plugin_list->data; resu[i].dlhandle = cata_list->gfal_data; resu[i].plugin_data = cata_list->plugin_data; resu[i].plugin_api = cata_list; g_strlcpy(resu[i].plugin_name, cata_list->getName(), GFAL_URL_MAX_LEN); i++; plugin_list = g_list_next(plugin_list); } } G_RETURN_ERR(resu,tmp_err, err); } /* * Provide a list of the gfal 2.0 plugins path * return NULL terminated table of plugins */ char ** gfal_list_directory_plugins(const char * dir, GError ** err){ GError * tmp_err=NULL; char ** res, ** p_res; res = p_res =NULL; int n = 0; GDir* d = g_dir_open (dir,0, &tmp_err); if(d){ gchar * d_name = NULL; while( (d_name = (char*) g_dir_read_name(d)) != NULL){ if(strstr(d_name, G_MODULE_SUFFIX) != NULL){ GString * strbuff = g_string_new(dir); n++; if(n == 1){ res = malloc(sizeof(char*)*2); p_res = res; }else{ res = realloc(res, sizeof(char*)*(n+1)); p_res = res + n -1; } gfal_log(GFAL_VERBOSE_TRACE, " [gfal_list_directory_plugins] add plugin to list to load %s%s%s ", dir, G_DIR_SEPARATOR_S, d_name); g_string_append (strbuff, G_DIR_SEPARATOR_S); g_string_append (strbuff, d_name); *p_res = g_string_free(strbuff, FALSE); }else{ gfal_log(GFAL_VERBOSE_TRACE, " [gfal_list_directory_plugins] WARNING : File that is not a plugin in the plugin directory %s%s%s ", dir, G_DIR_SEPARATOR_S, d_name); } } if(p_res != NULL){ p_res++; // finish string tab *p_res = NULL; } g_dir_close (d); } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[gfal_list_directory_plugins] Error, gfal 2.0 plugins directory : %s -> ",dir); return res; } // char ** gfal_localize_plugins(GError** err){ GError * tmp_err=NULL; char** res = NULL; char * gfal_plugin_dir = (char*) g_getenv(GFAL_PLUGIN_DIR_ENV); if(gfal_plugin_dir != NULL){ gfal_log(GFAL_VERBOSE_VERBOSE, "... %s environnement variable specified, \ try to load the plugins in given dir : %s",GFAL_PLUGIN_DIR_ENV, gfal_plugin_dir); }else{ /* GFAL_PLUGIN_DIR_DEFAULT defined at compilation time */ gfal_plugin_dir = GFAL_PLUGIN_DIR_DEFAULT G_DIR_SEPARATOR_S; gfal_log(GFAL_VERBOSE_VERBOSE, "... no %s environnement variable specified, try to load plugins in the default directory : %s",GFAL_PLUGIN_DIR_ENV, gfal_plugin_dir); } res = gfal_list_directory_plugins(gfal_plugin_dir, &tmp_err); G_RETURN_ERR(res, tmp_err, err); } // int gfal_modules_resolve(gfal_handle handle, GError** err){ GError* tmp_err = NULL; int ret=-1; char** tab_args; if( (tab_args = gfal_localize_plugins(&tmp_err)) != NULL){ char** p= tab_args; while(*p != NULL ){ if(**p=='\0') break; if( gfal_module_load(handle, *p, &tmp_err) != 0){ ret = -1; break; } gfal_log(GFAL_VERBOSE_VERBOSE, " gfal_plugin loaded succesfully : %s", *p); ret =0; p++; } g_strfreev(tab_args); } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } // // compare of the plugin function // gint gfal_plugin_compare(gconstpointer a, gconstpointer b){ gfal_plugin_interface* pa = (gfal_plugin_interface*) a; gfal_plugin_interface* pb = (gfal_plugin_interface*) b; return ( pa->priority > pb->priority)?(-1):(((pa->priority == pb->priority)?0:1)); } // // Sort plugins by priority // int gfal_plugins_sort(gfal_handle handle, GError ** err){ int i; for(i=0; i < handle->plugin_opt.plugin_number;++i){ handle->plugin_opt.sorted_plugin = g_list_append(handle->plugin_opt.sorted_plugin, &(handle->plugin_opt.plugin_list[i])); } handle->plugin_opt.sorted_plugin= g_list_sort(handle->plugin_opt.sorted_plugin, &gfal_plugin_compare); if(gfal_get_verbose() & GFAL_VERBOSE_TRACE){ // print plugin order GString* strbuff = g_string_new (" plugin priority order: "); GList* l = handle->plugin_opt.sorted_plugin; for(i=0; i < handle->plugin_opt.plugin_number;++i){ strbuff = g_string_append(strbuff, ((gfal_plugin_interface*) l->data)->getName()); strbuff = g_string_append(strbuff, " -> "); l = g_list_next(l); } gfal_log(GFAL_VERBOSE_TRACE, "%s", strbuff->str); g_string_free(strbuff, TRUE); } return 0; } // // Instance all plugins for use if it's not the case // return the number of plugin available // int gfal_plugins_instance(gfal_handle handle, GError** err){ g_return_val_err_if_fail(handle, -1, err, "[gfal_plugins_instance] invalid value of handle"); const int plugin_number = handle->plugin_opt.plugin_number; if(plugin_number <= 0){ GError* tmp_err=NULL; gfal_modules_resolve(handle, &tmp_err); if(tmp_err){ g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); handle->plugin_opt.plugin_number = -1; }else if(handle->plugin_opt.plugin_number > 0){ gfal_plugins_sort(handle, &tmp_err); if(tmp_err){ g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return -1; } } return handle->plugin_opt.plugin_number; } return plugin_number; } gfal_plugin_interface* gfal_find_plugin(gfal_handle handle, const char * url, plugin_mode acc_mode, GError** err){ GError* tmp_err=NULL; gboolean compatible = FALSE; const int n_plugins = gfal_plugins_instance(handle, &tmp_err); if(n_plugins > 0){ GList * plugin_list = g_list_first(handle->plugin_opt.sorted_plugin); while(plugin_list != NULL){ gfal_plugin_interface* cata_list = plugin_list->data; compatible = gfal_plugin_checker_safe(cata_list, url, acc_mode , &tmp_err); if(tmp_err) break; if(compatible) return cata_list; plugin_list = g_list_next(plugin_list); } } if(tmp_err){ g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); }else{ g_set_error(err,0,EPROTONOSUPPORT, "[%s] Protocol not supported or path/url invalid", __func__); } return NULL; } // Execute an access function on the first plugin compatible in the plugin list // return the result of the first valid plugin for a given URL // result of the access method or -1 if error and set GError with the correct value // error : EPROTONOSUPPORT means that the URL is not matched by a plugin int gfal_plugins_accessG(gfal_handle handle, const char* path, int mode, GError** err){ g_return_val_err_if_fail(handle && path, EINVAL, err, "[gfal_plugins_accessG] Invalid arguments"); int res=-1; GError * tmp_err=NULL; gfal_plugin_interface* p = gfal_find_plugin(handle, path, GFAL_PLUGIN_ACCESS, &tmp_err); if(p) res = p->accessG(gfal_get_plugin_handle(p), path, mode, &tmp_err); G_RETURN_ERR(res, tmp_err, err); } // Execute a stat function on the appropriate plugin int gfal_plugin_statG(gfal_handle handle, const char* path, struct stat* st, GError** err){ g_return_val_err_if_fail(handle && path, EINVAL, err, "[gfal_plugin_statG] Invalid arguments"); int ret =-1; GError* tmp_err=NULL; gfal_plugin_interface* p = gfal_find_plugin(handle, path, GFAL_PLUGIN_STAT, &tmp_err); if(p) ret = p->statG(gfal_get_plugin_handle(p), path, st, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } // Execute a stat function on the appropriate plugin int gfal_plugin_lstatG(gfal_handle handle, const char* path, struct stat* st, GError** err){ g_return_val_err_if_fail(handle && path, EINVAL, err, "[gfal_plugin_statG] Invalid arguments"); int ret =-1; GError* tmp_err=NULL; gfal_plugin_interface* p = gfal_find_plugin(handle, path, GFAL_PLUGIN_LSTAT, &tmp_err); if(p) ret = p->lstatG(gfal_get_plugin_handle(p), path, st, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } // Execute a readlink function on the appropriate plugin ssize_t gfal_plugin_readlinkG(gfal_handle handle, const char* path, char* buff, size_t buffsiz, GError** err){ g_return_val_err_if_fail(handle && path, EINVAL, err, "[gfal_plugin_readlinkG] Invalid arguments"); GError* tmp_err=NULL; ssize_t resu=-1; gfal_plugin_interface* p = gfal_find_plugin(handle, path, GFAL_PLUGIN_READLINK, &tmp_err); if(p) resu = p->readlinkG(gfal_get_plugin_handle(p), path, buff, buffsiz, &tmp_err); G_RETURN_ERR(resu, tmp_err, err); } // Execute a chmod function on the appropriate plugin int gfal_plugin_chmodG(gfal_handle handle, const char* path, mode_t mode, GError** err){ g_return_val_err_if_fail(handle && path, -1, err, "[gfal_plugin_chmodG] Invalid arguments"); GError* tmp_err = NULL; int ret = -1; gfal_plugin_interface* p = gfal_find_plugin(handle, path, GFAL_PLUGIN_CHMOD, &tmp_err); if(p) ret = p->chmodG(gfal_get_plugin_handle(p), path, mode, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } // Execute a rename function on the appropriate plugin int gfal_plugin_renameG(gfal_handle handle, const char* oldpath, const char* newpath, GError** err){ g_return_val_err_if_fail(oldpath && newpath, -1, err, "[gfal_plugin_renameG] invalid value in args oldpath, handle or newpath"); GError* tmp_err=NULL; int ret = -1; gfal_plugin_interface* p; if( (p = gfal_find_plugin(handle, oldpath, GFAL_PLUGIN_RENAME, &tmp_err)) != NULL && (p = gfal_find_plugin(handle, newpath, GFAL_PLUGIN_RENAME, &tmp_err)) != NULL){ ret = p->renameG(gfal_get_plugin_handle(p), oldpath, newpath, &tmp_err); } G_RETURN_ERR(ret, tmp_err, err); } // Execute a symlink function on the appropriate plugin int gfal_plugin_symlinkG(gfal_handle handle, const char* oldpath, const char* newpath, GError** err){ g_return_val_err_if_fail(oldpath && newpath, -1, err, "[gfal_plugin_symlinkG] invalid value in args oldpath, handle or newpath"); GError* tmp_err=NULL; int ret = -1; gfal_plugin_interface* p; if( (p = gfal_find_plugin(handle, oldpath, GFAL_PLUGIN_SYMLINK, &tmp_err)) != NULL && (p = gfal_find_plugin(handle, newpath, GFAL_PLUGIN_SYMLINK, &tmp_err)) != NULL){ ret = p->symlinkG(gfal_get_plugin_handle(p), oldpath, newpath, &tmp_err); } G_RETURN_ERR(ret, tmp_err, err); } // Execute a mkdir function on the appropriate plugin int gfal_plugin_mkdirp(gfal_handle handle, const char* path, mode_t mode, gboolean pflag, GError** err){ g_return_val_err_if_fail(handle && path , -1, err, "[gfal_plugin_mkdirp] Invalid argumetns in path or/and handle"); GError* tmp_err=NULL; int ret = -1; gfal_plugin_interface* p = gfal_find_plugin(handle, path, GFAL_PLUGIN_MKDIR, &tmp_err); if(p) ret = p->mkdirpG(gfal_get_plugin_handle(p), path, mode, pflag, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } // Execute a rmdir function on the appropriate plugin int gfal_plugin_rmdirG(gfal_handle handle, const char* path, GError** err){ g_return_val_err_if_fail(handle && path , -1, err, "[gfal_plugin_rmdirp] Invalid arguments in path or/and handle"); GError* tmp_err=NULL; int ret =-1; gfal_plugin_interface* p = gfal_find_plugin(handle, path, GFAL_PLUGIN_RMDIR, &tmp_err); if(p) ret = p->rmdirG(gfal_get_plugin_handle(p), path, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } // Execute a opendir function on the appropriate plugin gfal_file_handle gfal_plugin_opendirG(gfal_handle handle, const char* name, GError** err){ g_return_val_err_if_fail(handle && name, NULL, err, "[gfal_plugin_opendir] invalid value"); GError* tmp_err=NULL; gfal_file_handle resu=NULL; gfal_plugin_interface* p = gfal_find_plugin(handle, name, GFAL_PLUGIN_OPENDIR, &tmp_err); if(p) resu = p->opendirG(gfal_get_plugin_handle(p), name, &tmp_err); G_RETURN_ERR(resu, tmp_err, err); } // Execute a closedir function on the appropriate plugin int gfal_plugin_closedirG(gfal_handle handle, gfal_file_handle fh, GError** err){ g_return_val_err_if_fail(handle && fh, -1,err, "[gfal_plugin_closedirG] Invalid args "); GError* tmp_err=NULL; int ret = -1; gfal_plugin_interface* if_cata = gfal_plugin_map_file_handle(handle, fh, &tmp_err); if(!tmp_err) ret = if_cata->closedirG(if_cata->plugin_data, fh, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } // Execute a open function on the appropriate plugin gfal_file_handle gfal_plugin_openG(gfal_handle handle, const char * path, int flag, mode_t mode, GError ** err){ GError* tmp_err=NULL; gfal_file_handle resu =NULL; gfal_log(GFAL_VERBOSE_TRACE, " %s ->",__func__); gfal_plugin_interface* p = gfal_find_plugin(handle, path, GFAL_PLUGIN_OPEN, &tmp_err); if(p) resu = p->openG(gfal_get_plugin_handle(p), path, flag, mode, &tmp_err); G_RETURN_ERR(resu, tmp_err, err); } // Execute a close function on the appropriate plugin int gfal_plugin_closeG(gfal_handle handle, gfal_file_handle fh, GError** err){ g_return_val_err_if_fail(handle && fh, -1,err, "[gfal_plugin_closeG] Invalid args "); GError* tmp_err=NULL; int ret = -1; gfal_plugin_interface* if_cata = gfal_plugin_map_file_handle(handle, fh, &tmp_err); if(!tmp_err) ret = if_cata->closeG(if_cata->plugin_data, fh, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } // Execute a readdir function on the appropriate plugin struct dirent* gfal_plugin_readdirG(gfal_handle handle, gfal_file_handle fh, GError** err){ g_return_val_err_if_fail(handle && fh, NULL,err, "[gfal_plugin_readdirG] Invalid args "); GError* tmp_err=NULL; struct dirent* ret = NULL; gfal_plugin_interface* if_cata = gfal_plugin_map_file_handle(handle, fh, &tmp_err); if(!tmp_err) ret = if_cata->readdirG(if_cata->plugin_data, fh, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } // Execute a readdir function on the appropriate plugin struct dirent* gfal_plugin_readdirppG(gfal_handle handle, gfal_file_handle fh, struct stat* st, GError** err){ g_return_val_err_if_fail(handle && fh, NULL,err, "[gfal_plugin_readdirppG] Invalid args "); GError* tmp_err=NULL; struct dirent* ret = NULL; gfal_plugin_interface* if_cata = gfal_plugin_map_file_handle(handle, fh, &tmp_err); if(!tmp_err){ if(gfal_feature_is_supported(if_cata->readdirppG, g_quark_from_string(GFAL2_PLUGIN_SCOPE) , __func__, &tmp_err)) ret = if_cata->readdirppG(if_cata->plugin_data, fh, st, &tmp_err); } G_RETURN_ERR(ret, tmp_err, err); } // Execute a getxattr function on the appropriate plugin ssize_t gfal_plugin_getxattrG(gfal_handle handle, const char* path, const char*name, void* buff, size_t s_buff, GError** err){ GError* tmp_err=NULL; ssize_t resu = -1; gfal_plugin_interface* p = gfal_find_plugin(handle, path, GFAL_PLUGIN_GETXATTR, &tmp_err); if(p) resu = p->getxattrG(gfal_get_plugin_handle(p), path, name, buff, s_buff, &tmp_err); G_RETURN_ERR(resu, tmp_err, err); } // Execute a listxattr function on the appropriate plugin ssize_t gfal_plugin_listxattrG(gfal_handle handle, const char* path, char* list, size_t s_list, GError** err){ GError* tmp_err=NULL; ssize_t resu = -1; gfal_plugin_interface* p = gfal_find_plugin(handle, path, GFAL_PLUGIN_LISTXATTR, &tmp_err); if(p) resu = p->listxattrG(gfal_get_plugin_handle(p), path, list, s_list, &tmp_err); G_RETURN_ERR(resu, tmp_err, err); } // Execute a setxattr function on the appropriate plugin int gfal_plugin_setxattrG(gfal_handle handle, const char* path, const char* name, const void* value, size_t size, int flags, GError** err){ GError* tmp_err=NULL; int resu = -1; gfal_plugin_interface* p = gfal_find_plugin(handle, path, GFAL_PLUGIN_SETXATTR, &tmp_err); if(p) resu = p->setxattrG(gfal_get_plugin_handle(p), path, name, value, size, flags, &tmp_err); G_RETURN_ERR(resu, tmp_err, err); } // Execute a read function on the appropriate plugin int gfal_plugin_readG(gfal_handle handle, gfal_file_handle fh, void* buff, size_t s_buff, GError** err){ g_return_val_err_if_fail(handle && fh && buff && s_buff> 0, -1,err, "[gfal_plugin_readG] Invalid args "); GError* tmp_err=NULL; int ret = -1; gfal_plugin_interface* if_cata = gfal_plugin_map_file_handle(handle, fh, &tmp_err); if(!tmp_err) ret = if_cata->readG(if_cata->plugin_data, fh, buff, s_buff, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } // Simulate a pread operation in case of non-parallels read support // this is slower than a normal pread/pwrite operation inline ssize_t gfal_plugin_simulate_preadG(gfal_handle handle, gfal_plugin_interface* if_cata, gfal_file_handle fh, void* buff, size_t s_buff, off_t offset, GError** err){ GError* tmp_err=NULL; ssize_t ret = -1; gfal_file_handle_lock(fh); ret = if_cata->lseekG(if_cata->plugin_data, fh, offset, SEEK_SET, &tmp_err); if(ret == offset){ ret = if_cata->readG(if_cata->plugin_data, fh, buff, s_buff, &tmp_err); }else if( !tmp_err){ g_set_error(&tmp_err, 0, EOVERFLOW, "Unknown return from plugin_lseek call"); ret = -1; } gfal_file_handle_unlock(fh); G_RETURN_ERR(ret, tmp_err, err); } // Execute a pread function on the appropriate plugin ssize_t gfal_plugin_preadG(gfal_handle handle, gfal_file_handle fh, void* buff, size_t s_buff, off_t offset, GError** err){ g_return_val_err_if_fail(handle && fh && buff, -1,err, "[gfal_plugin_preadG] Invalid args "); GError* tmp_err=NULL; ssize_t ret = -1; gfal_plugin_interface* if_cata = gfal_plugin_map_file_handle(handle, fh, &tmp_err); if(!tmp_err){ if(if_cata->preadG) ret = if_cata->preadG(if_cata->plugin_data, fh, buff, s_buff, offset, &tmp_err); else{ ret = gfal_plugin_simulate_preadG(handle, if_cata, fh, buff, s_buff, offset, &tmp_err); } } G_RETURN_ERR(ret, tmp_err, err); } // Simulate a pread operation in case of non-parallels write support // this is slower than a normal pread/pwrite operation inline ssize_t gfal_plugin_simulate_pwriteG(gfal_handle handle, gfal_plugin_interface* if_cata, gfal_file_handle fh, void* buff, size_t s_buff, off_t offset, GError** err){ GError* tmp_err=NULL; ssize_t ret = -1; gfal_file_handle_lock(fh); ret = if_cata->lseekG(if_cata->plugin_data, fh, offset, SEEK_SET, &tmp_err); if(ret == offset){ ret = if_cata->writeG(if_cata->plugin_data, fh, buff, s_buff, &tmp_err); }else if( !tmp_err){ g_set_error(&tmp_err, 0, EOVERFLOW, "Unknown return from plugin_lseek call"); ret = -1; } gfal_file_handle_unlock(fh); G_RETURN_ERR(ret, tmp_err, err); } // Execute a pwrite function on the appropriate plugin ssize_t gfal_plugin_pwriteG(gfal_handle handle, gfal_file_handle fh, void* buff, size_t s_buff, off_t offset, GError** err){ g_return_val_err_if_fail(handle && fh && buff, -1,err, "[gfal_plugin_pwriteG] Invalid args "); GError* tmp_err=NULL; ssize_t ret = -1; gfal_plugin_interface* if_cata = gfal_plugin_map_file_handle(handle, fh, &tmp_err); if(!tmp_err){ if(if_cata->pwriteG) ret = if_cata->pwriteG(if_cata->plugin_data, fh, buff, s_buff, offset, &tmp_err); else{ ret = gfal_plugin_simulate_pwriteG(handle, if_cata, fh, buff, s_buff, offset, &tmp_err); } } G_RETURN_ERR(ret, tmp_err, err); } // Execute a lseek function on the appropriate plugin int gfal_plugin_lseekG(gfal_handle handle, gfal_file_handle fh, off_t offset, int whence, GError** err){ g_return_val_err_if_fail(handle && fh , -1,err, "[gfal_plugin_lseekG] Invalid args "); GError* tmp_err=NULL; int ret = -1; gfal_plugin_interface* if_cata = gfal_plugin_map_file_handle(handle, fh, &tmp_err); if(!tmp_err) ret = if_cata->lseekG(if_cata->plugin_data, fh, offset, whence, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } // Execute a write function on the appropriate plugin int gfal_plugin_writeG(gfal_handle handle, gfal_file_handle fh, void* buff, size_t s_buff, GError** err){ g_return_val_err_if_fail(handle && fh && buff && s_buff> 0, -1,err, "[gfal_plugin_writeG] Invalid args "); GError* tmp_err=NULL; int ret = -1; gfal_plugin_interface* if_cata = gfal_plugin_map_file_handle(handle, fh, &tmp_err); if(!tmp_err) ret = if_cata->writeG(if_cata->plugin_data, fh,buff, s_buff, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } // Execute a unlink function on the appropriate plugin int gfal_plugin_unlinkG(gfal_handle handle, const char* path, GError** err){ GError* tmp_err=NULL; int resu = -1; gfal_plugin_interface* p = gfal_find_plugin(handle, path, GFAL_PLUGIN_UNLINK, &tmp_err); if(p) resu = p->unlinkG(gfal_get_plugin_handle(p), path, &tmp_err); G_RETURN_ERR(resu, tmp_err, err); } int gfal_plugin_bring_onlineG(gfal2_context_t handle, const char* uri, time_t pintime, time_t timeout, char* token, size_t tsize, int async, GError ** err){ GError* tmp_err=NULL; int resu = -1; gfal_plugin_interface* p = gfal_find_plugin(handle, uri, GFAL_PLUGIN_BRING_ONLINE, &tmp_err); if(p) resu = p->bring_online(gfal_get_plugin_handle(p), uri, pintime, timeout, token, tsize, async, &tmp_err); G_RETURN_ERR(resu, tmp_err, err); } int gfal_plugin_bring_online_pollG(gfal2_context_t handle, const char* uri, const char* token, GError ** err) { GError* tmp_err=NULL; int resu = -1; gfal_plugin_interface* p = gfal_find_plugin(handle, uri, GFAL_PLUGIN_BRING_ONLINE, &tmp_err); if(p) resu = p->bring_online_poll(gfal_get_plugin_handle(p), uri, token, &tmp_err); G_RETURN_ERR(resu, tmp_err, err); } int gfal_plugin_release_fileG(gfal2_context_t handle, const char* uri, const char* token, GError ** err) { GError* tmp_err=NULL; int resu = -1; gfal_plugin_interface* p = gfal_find_plugin(handle, uri, GFAL_PLUGIN_BRING_ONLINE, &tmp_err); if(p) resu = p->release_file(gfal_get_plugin_handle(p), uri, token, &tmp_err); G_RETURN_ERR(resu, tmp_err, err); } gfal2-2.3.0/src/common/gfal_types.h0000644000175000017500000000423512164561703016445 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /*** * @brief gfal_types.h * @author Adrien Devresse * types declaration for gfal * */ #ifndef _GFAL_TYPES_H #define _GFAL_TYPES_H #include #include #include #include #include #include #include #include #include #include /* enforce proper calling convention */ #ifdef __cplusplus extern "C" { #endif /** * @enum list the type of the check associated with the url * check_plugin_url send this mode to the plugin to know is this type of operation on it * */ struct _gfal_descriptors_container{ gfal_fdesc_container_handle dir_container; gfal_fdesc_container_handle file_container; }; typedef struct _gfal_conf_elem{ GKeyFile * key_file; } *gfal_conf_elem_t; typedef struct _gfal_conf{ GMutex* mux; GKeyFile* running_config; GConfigManager_t static_manager; GConfigManager_t running_manager; } *gfal_conf_t; struct gfal_handle_ { // define the protocole version of SRM choosen by default gboolean initiated; // 1 if initiated, else error // struct of the plugin opts struct _plugin_opts plugin_opt; //struct for the file descriptors gfal_descriptors_container fdescs; gfal_conf_t conf; // cancel logic volatile gint running_ops; gboolean cancel; GMutex* mux_cancel; GHookList cancel_hooks; }; #ifdef __cplusplus } #endif #endif gfal2-2.3.0/src/common/gfal_common_errverbose.c0000644000175000017500000000720012164561703021015 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file gfal_common_errverbose.c * @brief error management and verbose display * @author Devresse Adrien * */ #include #include #include // internal err buff for print __thread char _gfal_err[GFAL_ERRMSG_LEN]; /** * \brief display the full GError message on stderr and free the memory associated */ void gfal_release_GError(GError** err) { if(err==NULL || *err==NULL){ gfal_log(GFAL_VERBOSE_DEBUG," release NULL error"); return; } g_printerr("[gfal] %s\n", (*err)->message); g_clear_error(err); *err=NULL; } /** * return a valid string of the current error, * @warning Modifications or free() on this string can lead to an undefined behaviors. * @warning : like strerror, not thread safe. * */ char* gfal_str_GError(GError** err){ return gfal_str_GError_r(err, _gfal_err, GFAL_ERRMSG_LEN); } /** * set buff_err to the current gfal error, reentrant function * @return pointer to buff_err for convenience */ char* gfal_str_GError_r(GError** err, char* buff_err, size_t s_err){ if(err==NULL || *err==NULL){ gfal_log(GFAL_VERBOSE_DEBUG,"copy string NULL error"); g_strlcpy(buff_err,"[gfal] No Error reported", s_err); }else{ g_strlcpy(buff_err,"[gfal]", s_err); g_strlcat(buff_err, (*err)->message, s_err); } return buff_err; } /** * @brief convenient way to manage Gerror * If error does not exist, just return FALSE else print error on stderr, clear it and return TRUE * */ gboolean gfal_check_GError(GError** err){ if(err==NULL || *err==NULL) return FALSE; g_printerr("[gfal] %s\n", (*err)->message); g_clear_error(err); return TRUE; } #if (GLIB_CHECK_VERSION(2,16,0) != TRUE) // add code of glib 2.16 for link with a very old glib version static void g_error_add_prefix (gchar **string, const gchar *format, va_list ap) { gchar *oldstring; gchar *prefix; prefix = g_strdup_vprintf (format, ap); oldstring = *string; *string = g_strconcat (prefix, oldstring, NULL); g_free (oldstring); g_free (prefix); } void g_propagate_prefixed_error (GError **dest, GError *src, const gchar *format, ...) { g_propagate_error (dest, src); if (dest && *dest) { va_list ap; va_start (ap, format); g_error_add_prefix (&(*dest)->message, format, ap); va_end (ap); } } void g_prefix_error (GError **err, const gchar *format, ...) { if (err && *err) { va_list ap; va_start (ap, format); g_error_add_prefix (&(*err)->message, format, ap); va_end (ap); } } #endif #if (GLIB_CHECK_VERSION(2,28,0) != TRUE) void g_list_free_full(GList *list, GDestroyNotify free_func) { GList* tmp_list= list; while( tmp_list != NULL){ free_func(tmp_list->data); tmp_list = g_list_next(tmp_list); } g_list_free(list); } #endif gfal2-2.3.0/src/common/gfal_common_plugin.h0000644000175000017500000000536212164561703020151 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // gfal_common_plugin.h // common lib for the plugin management // author : Devresse Adrien #include #include #include #include #include #include #include #include #include #include #define GFAL2_PLUGIN_SCOPE "GFAL2::PLUGIN" #ifdef __cplusplus extern "C" { #endif // __cplusplus typedef struct _plugin_pointer_handle{ gfal_plugin_interface* plugin_api; // plugin official API void* dlhandle; // dlhandle of the plugin void* plugin_data; // plugin internal data char plugin_name[GFAL_URL_MAX_LEN]; // plugin name char plugin_lib[GFAL_URL_MAX_LEN]; // plugin library path } *plugin_pointer_handle; /* * * This API is a plugin reserved API and should be used by GFAL 2.0's plugins only * Backward compatibility of this API is not guarantee * * */ /* * plugins walker * provide a list of plugin handlers, each plugin handler is a reference to an usable plugin * give a NULL-ended table of plugin_pointer_handle, return NULL if error * */ plugin_pointer_handle gfal_plugins_list_handler(gfal_handle, GError** err); plugin_handle gfal_get_plugin_handle(gfal_plugin_interface* p_interface); int gfal_plugins_instance(gfal_handle, GError** err); char** gfal_plugins_get_list(gfal_handle, GError** err); int gfal_plugins_delete(gfal_handle, GError** err); gboolean gfal_feature_is_supported(void * ptr, GQuark scope, const char* func_name, GError** err); // find a compatible catalog or return NULL + error gfal_plugin_interface* gfal_find_plugin(gfal_handle handle, const char * url, plugin_mode acc_mode, GError** err); gfal_plugin_interface* gfal_plugin_map_file_handle(gfal_handle handle, gfal_file_handle fh, GError** err); #ifdef __cplusplus } #endif // __cplusplus gfal2-2.3.0/src/common/gfal_common_plugin_interface.h0000644000175000017500000005275012164561703022174 0ustar ellertellert#pragma once #ifndef _GFAL_PLUGIN_INTERFACE_ #define _GFAL_PLUGIN_INTERFACE_ /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file plugins related API * @author Devresse Adrien * * */ #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif /** classical data access plugin */ #define GFAL_PLUGIN_PRIORITY_DATA 0; #define GFAL_PLUGIN_PRIORITY_CATALOG 100; #define GFAL_PLUGIN_PRIORITY_CACHE 200; /** * Prototype of the plugins entry point * * return gfal_plugin_interface must be allocated with \êef gfal_plugin_interface_new * * @param handle : gfal_handle of the current call * @param err : Error report in case of fatal error while the plugin load. * * */ typedef gfal_plugin_interface* (*gfal_plugin_init_t)(gfal_handle handle, GError** err); /** * @struct _gfal_plugin_interface * * Main interface that MUST be returned the entry point function "gfal_plugin_init" of each GFAL 2.0 plugin. * the minimum calls are : getName, plugin_delete, check_plugin_url * all the unused function pointers must be set to NULL */ struct _gfal_plugin_interface{ //! @cond // internal gfal data : touching this triggers the death of a kitty void * gfal_data; //! @endcond // plugin management /** * plugin reserved pointer, free to use for plugin's internal data, passed to any function * * */ plugin_handle plugin_data; /** * plugin priority * SHOULD be defined to GFAL_PLUGIN_PRIORITY_DATA by default * */ int priority; /** * MANDATORY : return a the string id of the plugin. * string id must be short, constant and unique ( ex : "plugin_gridftp" ) * @return the constant identity string * */ const char* (*getName)(); /** * OPTIONAL : Last call before the unload of the plugin for the associated handle * You can use this to clear your internal context * @param plugin_data : internal plugin data */ void (*plugin_delete)(plugin_handle plugin_data); // FILE API /** * MANDATORY: Main critical function of the plugins, URL checker. * check the availability of the given operation on this plugin for the given URL * * This function is used by gfal 2.0 to determine which plugin need to be contacted for a given operation * * * @warning This function is a key function of GFAL 2.0, It MUST be as fast as possible. * @param plugin_data : internal plugin data * @param url : URL to check for the protocol compatibility * @param operation : operation to check * @param err : error handle, should be used ONLY in case of major failure. * @return must return TRUE if the operation is compatible with this plugin, else FALSE */ gboolean (*check_plugin_url)(plugin_handle plugin_data, const char* url, plugin_mode operation, GError** err); /** * OPTIONAL : gfal_access function support * @param plugin_data : internal plugin data * @param url : URL for access checking * @param mode : mode to check ( see man 2 access ) * @param err : Error report, the code field of err should be set to errno value when possible * @return 0 or -1 if error occures, * err MUST be set in case of error * */ int (*accessG)(plugin_handle plugin_data, const char* url, int mode, GError** err); /** * OPTIONAL : gfal_chmod function support * @param plugin_data : internal plugin data * @param url : URL of the file * @param mode : mode to set * @param err : Error report, the code field of err should be set to errno value when possible * @return 0 or -1 if error occures, * err MUST be set in case of error * */ int (*chmodG)(plugin_handle plugin_data, const char * url, mode_t mode, GError** err); /** * OPTIONAL : gfal_rename function support * @param plugin_data : internal plugin data * @param oldurl : old url of the file * @param urlnew : new url of the file * @param err : Error report, the code field of err should be set to errno value when possible * @return 0 or -1 if error occures, * err MUST be set in case of error * */ int (*renameG)(plugin_handle plugin_data, const char * oldurl, const char * urlnew, GError** err); /** * OPTIONAL : gfal_symlink function support * @param plugin_data : internal plugin data * @param oldurl : old url of the file * @param urlnew : symlink to create * @param err : Error report, the code field of err should be set to errno value when possible * @return 0 or -1 if error occures, * err MUST be set in case of error * */ int (*symlinkG)(plugin_handle plugin_data, const char* oldurl, const char* newold, GError** err); /** * MANDATORY : gfal_stat function support * @param plugin_data : internal plugin data * @param url : url to stat * @param buf : informations of the file * @param err : Error report, the code field of err should be set to errno value when possible * @return 0 or -1 if error occures, * err MUST be set in case of error * */ int (*statG)(plugin_handle plugin_data , const char* url, struct stat *buf, GError** err); /** * OPTIONAL : gfal_lstat function support * In case of non support for this function, calls to @ref gfal_lstat are mapped to @ref gfal_stat. * * @param plugin_data : internal plugin data * @param url : url to stat * @param buf : informations of the file * @param err : Error report, the code field of err should be set to errno value when possible * @return 0 or -1 if error occures, * err MUST be set in case of error * */ int (*lstatG)(plugin_handle plugin_data, const char* url, struct stat *buf, GError** err); /** * OPTIONAL : gfal_readlink function support * * @param plugin_data : internal plugin data * @param url : url to stat * @param buff : buffer for the readlink result * @param size_t : buffsize maximum size to fill in the buffer * @param err : Error report, the code field of err should be set to errno value when possible * @return number of bytes in buff in case of success or -1 if error occures, * err MUST be set in case of error * */ ssize_t (*readlinkG)(plugin_handle plugin_data, const char* url, char* buff, size_t buffsiz, GError** ); /** * OPTIONAL : gfal_opendir function support * * @param plugin_data : internal plugin data * @param url : url of directory to list * @param err : Error report, the code field of err should be set to errno value when possible * @return gfa_file_handle in case of success or NULL if error, * err MUST be set in case of error * */ gfal_file_handle (*opendirG)(plugin_handle plugin_data, const char* url, GError** err); /** * MANDATORY IF OPENDIR : gfal_closedir function support * * @param plugin_data : internal plugin data * @param dir_desc : directory descriptor to use * @param err : Error report, the code field of err should be set to errno value when possible * @return 0 in case of success or -1 if error, * err MUST be set in case of error * */ int (*closedirG)(plugin_handle plugin_data, gfal_file_handle dir_desc, GError** err); /** * MANDATORY IF OPENDIR : gfal_readdir function support * * @param plugin_data : internal plugin data * @param dir_desc : directory descriptor to use * @param err : Error report, the code field of err should be set to errno value when possible * @return dirent information in case of success or NULL if end of listing or error, * err MUST be set in case of error * */ struct dirent* (*readdirG)(plugin_handle plugin_data, gfal_file_handle dir_desc, GError** err); /** * OPTIONAL : gfal_mkdir function support * * @param plugin_data : internal plugin data * @param url : url of the directory to create * @param mode : right mode of the created directory * @param rec_flag : recursive mode, if enabled the plugin MUST create the parent directories if needed, * if the rec_flag is not supported by this plugin, the plugin MUST return a negative value and set the GError errcode to ENOENT * @param err : Error report, the code field of err should be set to errno value when possible * @return 0 in case of success or -1 if error occures, * err MUST be set in case of error * */ int (*mkdirpG)(plugin_handle plugin_data, const char* url, mode_t mode, gboolean rec_flag, GError** err); /** * OPTIONAL : gfal_rmdir function support * * @param plugin_data : internal plugin data * @param url : url of the directory to delete * @param err : Error report, the code field of err should be set to errno value when possible * @return 0 in case of success or -1 if error occures, * err MUST be set in case of error * */ int (*rmdirG)(plugin_handle plugin_data, const char* url, GError** err); // basic file operations /** * OPTIONAL : gfal_open function support * * @param plugin_data : internal plugin data * @param url : url of the directory to open * @param flag : open flags * @param mode : mode of the file, in case of creation * @param err : Error report, the code field of err should be set to errno value when possible * @return gfal_file_handle in case of success or NULL if error occures, * err MUST be set in case of error * */ gfal_file_handle (*openG)(plugin_handle plugin_data, const char* url, int flag, mode_t mode, GError**); /** * MANDATORY IF OPEN : gfal_read function support * * */ ssize_t (*readG)(plugin_handle, gfal_file_handle fd, void* buff, size_t count, GError**); /** * MANDATORY IF OPEN : gfal_write function support * * */ ssize_t (*writeG)(plugin_handle, gfal_file_handle fd, const void* buff, size_t count, GError**); /** * MANDATORY IF OPEN : gfal_close function support * * */ int (*closeG)(plugin_handle, gfal_file_handle fd, GError **); /** * MANDATORY IF OPEN : gfal_lseek function support * * */ off_t (*lseekG)(plugin_handle, gfal_file_handle fd, off_t offset, int whence, GError** err); // vector operations /** * OPTIONAL : gfal_pread function support * * Allow fast parallels read support, If not implemented, this function is simulated by GFAL 2.0 * * */ ssize_t (*preadG)(plugin_handle, gfal_file_handle fd, void* buff, size_t count, off_t offset, GError**); /** * OPTIONAL : gfal_pwriteG function support * * Allow fast parallels write support, If not implemented, this function is simulated by GFAL 2.0 * * */ ssize_t (*pwriteG)(plugin_handle, gfal_file_handle fd, const void* buff, size_t count, off_t offset, GError**); // remove operations /** * OPTIONAL : gfal_unlink function support * * @param plugin_data : internal plugin data * @param url : url of the file * @param err : Error report, the code field of err should be set to errno value when possible * @return 0 in case of success or -1 if error occures, * err MUST be set in case of error * */ int (*unlinkG)(plugin_handle plugin_data, const char* url, GError** err); // advanced attributes management /** * OPTIONAL : gfal_getxattr function support * * @param plugin_data : internal plugin data * @param url : url of the file * @param key : key of the attribute to get * @param buff : buffer for the attribute content * @param s_buff : maximum buffer size * @param err : Error report, the code field of err should be set to errno value when possible * @return size of the attribute in case of success or -1 if error occures, * err MUST be set in case of error * */ ssize_t (*getxattrG)(plugin_handle plugin_data, const char* url, const char* key, void* buff, size_t s_buff, GError** err); /** * OPTIONAL : gfal_listxattr function support * * @param plugin_data : internal plugin data * @param url : url of the file * @param list : buffer for the list attribute content * @param s_buff : maximum buffer size * @param s_list : Error report, the code field of err should be set to errno value when possible * @return size of the list in case of success or -1 if error occures, * err MUST be set in case of error * */ ssize_t (*listxattrG)(plugin_handle plugin_data, const char* url, char* list, size_t s_list, GError** err); /** * OPTIONAL : gfal_setxattr function support * * @param plugin_data : internal plugin data * @param url : url of the file * @param key : key of the attribute to set * @param buff : buffer for the attribute content * @param s_buff : maximum buffer size * @param flas : set/get flags * @param err : Error report, the code field of err should be set to errno value when possible * @return 0 or -1 if error occures, * err MUST be set in case of error * */ int (*setxattrG)(plugin_handle plugin_data, const char* url, const char* key, const void* buff , size_t s_buff, int flags, GError** err); /** * OPTIONAL : checksum calculation function support ( transfer consistency check, gfal_checksum ) * * @param plugin_data : internal plugin data * @param url : url of the file * @param check_type : string of the checksum type ( \ref GFAL_CHKSUM_MD5, \ref GFAL_CHKSUM_SHA1, .. ) * @param start_offset : offset in the file where the checksum calculation will start ( 0 : from begining ) * @param data_length : size of data to compute for the checksum after start_offset ( 0 -: full file ) * @param checksum_buffer : buffer with checksum string as result * @param buffer_length : maximum buffer length * @param err : GError error support * @return dynamically allocated checksum string if success, else NULL and err MUST be set * error code MUST be ENOSUPPORT in case of : * - checksum calculation with offset is not supported * - the specified checksum algorithm is not supported */ int (*checksum_calcG)(plugin_handle data, const char* url, const char* check_type, char * checksum_buffer, size_t buffer_length, off_t start_offset, size_t data_length, GError ** err); // TRANSFER API /** * OPTIONAL: if transfer support, * should return TRUE if the plugin is able to execute third party transfer from src to dst url * */ int(*check_plugin_url_transfer)(plugin_handle plugin_data, const char* src, const char* dst, gfal_url2_check check); /** * * OPTIONAL: if transfer support, * Execute a filecopy operation for the given parameters * @param plugin_data : internal plugin context * @param gfal2_context_t context : gfal 2 handle * @param params: parameters for the current transfer, see gfalt_params calls * @param src : source file to copy * @param dst : destination file * @param err : GError err report * */ int (*copy_file)(plugin_handle plugin_data, gfal2_context_t context, gfalt_params_t params, const char* src, const char* dst, GError** ); /** * * OPTIONAL: Requests to stage a file to the fist layer on a hierarchical SE. * @param plugin_data : internal plugin context * @param url : The url of the file * @param pintime : Time the file should stay in the cache * @param timeout : Operation timeout * @param token Where to put the retrieved token. * @param tsize The size of the buffer pointed by token. * @param async If true (!= 0), the call will not block. The caller will need * to use bring_online_poll later. * @param err: GError error support * @return -1 on error (and err is set). 0 on success. 1 if the file has been staged. */ int (*bring_online)(plugin_handle plugin_data, const char* url, time_t pintime, time_t timeout, char* token, size_t tsize, int async, GError** err); /** * OPTIONAL: Polling the bring_online request (mandatory if bring online is supported) * @param url The same URL as was passed to bring_online_async * @param token The token as returned by bring_online_async * @return -1 on error (and err is set). 0 on success. 1 if the file has been staged. */ int (*bring_online_poll)(plugin_handle plugin_data, const char* url, const char* token, GError** err); /** * OPTIONAL: Releases a previously staged file (mandatory if bring online is supported) * @param plugin_data : internal plugin context * @param url : The url of the file * @param token: The request token. If NULL, * @param err: GError error support */ int (*release_file)(plugin_handle plugin_data, const char* url, const char* token, GError** err); /** * OPTIONAL : gfal_readdirpp function support * Allow directory listing + get meta-data in one operation * * @param plugin_data : internal plugin data * @param dir_desc : directory descriptor to use * @param st : struct stat to fill * @param err : Error report, the code field of err should be set to errno value when possible * @return dirent information in case of success or NULL if end of listing or error, * err MUST be set in case of error * */ struct dirent* (*readdirppG)(plugin_handle plugin_data, gfal_file_handle dir_desc, struct stat* st, GError** err); // reserved for future usage //! @cond void* future[21]; //! @endcond }; //! @cond struct _plugin_opts{ gfal_plugin_interface plugin_list[MAX_PLUGIN_LIST]; GList* sorted_plugin; int plugin_number; }; //! @endcond // internal API for inter plugin communication //! @cond int gfal_plugins_accessG(gfal_handle handle, const char* path, int mode, GError** err); int gfal_plugin_rmdirG(gfal_handle handle, const char* path, GError** err); ssize_t gfal_plugin_readlinkG(gfal_handle handle, const char* path, char* buff, size_t buffsiz, GError** err); int gfal_plugin_chmodG(gfal_handle handle, const char* path, mode_t mode, GError** err); int gfal_plugin_statG(gfal_handle handle,const char* path, struct stat* st, GError** err); int gfal_plugin_renameG(gfal_handle handle, const char* oldpath, const char* newpath, GError** err); int gfal_plugin_symlinkG(gfal_handle handle, const char* oldpath, const char* newpath, GError** err); int gfal_plugin_lstatG(gfal_handle handle,const char* path, struct stat* st, GError** err); int gfal_plugin_mkdirp(gfal_handle handle, const char* path, mode_t mode, gboolean pflag, GError** err); gfal_file_handle gfal_plugin_opendirG(gfal_handle handle, const char* name, GError** err); struct dirent* gfal_plugin_readdirppG(gfal_handle handle, gfal_file_handle fh, struct stat* st, GError** err); int gfal_plugin_closedirG(gfal_handle handle, gfal_file_handle fh, GError** err); struct dirent* gfal_plugin_readdirG(gfal_handle handle, gfal_file_handle fh, GError** err); gfal_file_handle gfal_plugin_openG(gfal_handle handle, const char * path, int flag, mode_t mode, GError ** err); int gfal_plugin_closeG(gfal_handle handle, gfal_file_handle fh, GError** err); int gfal_plugin_writeG(gfal_handle handle, gfal_file_handle fh, void* buff, size_t s_buff, GError** err); int gfal_plugin_lseekG(gfal_handle handle, gfal_file_handle fh, off_t offset, int whence, GError** err); int gfal_plugin_readG(gfal_handle handle, gfal_file_handle fh, void* buff, size_t s_buff, GError** err); ssize_t gfal_plugin_preadG(gfal_handle handle, gfal_file_handle fh, void* buff, size_t s_buff, off_t offset, GError** err); ssize_t gfal_plugin_pwriteG(gfal_handle handle, gfal_file_handle fh, void* buff, size_t s_buff, off_t offset, GError** err); int gfal_plugin_unlinkG(gfal_handle handle, const char* path, GError** err); ssize_t gfal_plugin_getxattrG(gfal_handle, const char*, const char*, void* buff, size_t s_buff, GError** err); ssize_t gfal_plugin_listxattrG(gfal_handle, const char*, char* list, size_t s_list, GError** err); int gfal_plugin_setxattrG(gfal_handle, const char*, const char*, const void*, size_t, int, GError**); int gfal_plugin_bring_onlineG(gfal2_context_t handle, const char* uri, time_t pintime, time_t timeout, char* token, size_t tsize, int async, GError ** err); int gfal_plugin_bring_online_pollG(gfal2_context_t handle, const char* uri, const char* token, GError ** err); int gfal_plugin_release_fileG(gfal2_context_t handle, const char* uri, const char* token, GError ** err); //! @endcond #ifdef __cplusplus } #endif #endif gfal2-2.3.0/src/common/gfal_common_dir_handle.h0000644000175000017500000000203212164561703020733 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_common_dir_handle.h * file for the directory handle management * author Devresse Adrien * */ #include "gfal_constants.h" #include "gfal_prototypes.h" gfal_fdesc_container_handle gfal_dir_handle_container_instance(gfal_descriptors_container* fdescs, GError** err); void gfal_dir_handle_container_delete(gfal_descriptors_container* fdescs); gfal2-2.3.0/src/common/rfio/0000755000175000017500000000000012164561703015072 5ustar ellertellertgfal2-2.3.0/src/common/rfio/gfal_rfio_plugin_bindings.h0000644000175000017500000000363612164561703022436 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_rfio_plugin_main.c * @brief header file for bindings for rfio funcs * @author Devresse Adrien * @version 0.1 * @date 30/06/2011 * **/ #include #include #include #include "../gfal_common_plugin.h" gfal_file_handle gfal_rfio_openG(plugin_handle ch , const char* path, int flag, mode_t mode, GError**); int gfal_rfio_closeG(plugin_handle handle, gfal_file_handle fd, GError ** err); ssize_t gfal_rfio_writeG(plugin_handle handle , gfal_file_handle fd, const void* buff, size_t s_buff, GError** err); ssize_t gfal_rfio_readG(plugin_handle handle , gfal_file_handle fd, void* buff, size_t s_buff, GError** err); off_t gfal_rfio_lseekG(plugin_handle handle , gfal_file_handle fd, off_t offset, int whence, GError** err); int gfal_rfio_statG(plugin_handle handle, const char* name, struct stat* buff, GError ** err); int gfal_rfio_lstatG(plugin_handle handle, const char* name, struct stat* buff, GError ** err); gfal_file_handle gfal_rfio_opendirG(plugin_handle handle, const char* name, GError ** err); struct dirent* gfal_rfio_readdirG(plugin_handle handle, gfal_file_handle fh , GError** err); int gfal_rfio_closedirG(plugin_handle handle, gfal_file_handle fh, GError** err); const char* gfal_rfio_getName(); gfal2-2.3.0/src/common/rfio/gfal_rfio_plugin_layer.h0000644000175000017500000000415012164561703021745 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_rfio_plugin_layer.c * @brief header file for the external call, abstraction layer for mock purpose * @author Devresse Adrien * @version 0.1 * @date 30/06/2011 * **/ #include #include #include #include extern struct rfio_proto_ops * (*gfal_rfio_internal_loader)(GError** err); struct rfio_proto_ops { int (*geterror)(); int (*access)(const char *, int); int (*chmod)(const char *, mode_t); int (*close)(int); int (*closedir)(DIR *); char* (*serror_r)(char* buff, size_t buff_size); off_t (*lseek)(int, off_t, int); #if ! defined(linux) || defined(_LARGEFILE64_SOURCE) off64_t (*lseek64)(int, off64_t, int); #endif int (*lstat)(const char *, struct stat *); #if ! defined(linux) || defined(_LARGEFILE64_SOURCE) int (*lstat64)(const char *, struct stat64 *); #endif int (*mkdir)(const char *, mode_t); int (*open)(const char *, int, ...); DIR *(*opendir)(const char *); ssize_t (*read)(int, void *, size_t); struct dirent *(*readdir)(DIR *); #if ! defined(linux) || defined(_LARGEFILE64_SOURCE) struct dirent64 *(*readdir64)(DIR *); #endif int (*rename)(const char *, const char *); int (*rmdir)(const char *); ssize_t (*setfilchg)(int, const void *, size_t); int (*stat)(const char *, struct stat *); #if ! defined(linux) || defined(_LARGEFILE64_SOURCE) int (*stat64)(const char *, struct stat64 *); #endif int (*unlink)(const char *); ssize_t (*write)(int, const void *, size_t); }; gfal2-2.3.0/src/common/rfio/gfal_rfio_plugin_main.c0000644000175000017500000000757412164561703021565 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_rfio_plugin_main.c * @brief file for the external rfio's plugin for gfal ( based on the old rfio part in gfal legacy ) * @author Devresse Adrien * @version 0.1 * @date 30/06/2011 * **/ #include #include #include #include "../gfal_common_internal.h" #include "../gfal_common_errverbose.h" #include "../gfal_common_plugin.h" #include "../gfal_types.h" #include "gfal_rfio_plugin_layer.h" #include "gfal_rfio_plugin_main.h" #include "gfal_rfio_plugin_bindings.h" gboolean gfal_rfio_check_url(plugin_handle, const char* url, plugin_mode mode, GError** err); gboolean gfal_rfio_internal_check_url(gfal_plugin_rfio_handle rh, const char* surl, GError** err); const char* gfal_rfio_getName(); void gfal_rfio_destroyG(plugin_handle handle); int gfal_rfio_regex_compile(regex_t * rex, GError** err){ int ret = regcomp(rex, "^rfio://([:alnum:]|-|/|.|_)+$",REG_ICASE | REG_EXTENDED); g_return_val_err_if_fail(ret==0,-1,err,"[gfal_rfio_internal_check_url] fail to compile regex, report this bug"); return ret; } /* * Init function, called before all * */ gfal_plugin_interface gfal_plugin_init(gfal_handle handle, GError** err){ gfal_plugin_interface rfio_plugin; GError* tmp_err=NULL; memset(&rfio_plugin,0,sizeof(gfal_plugin_interface)); // clear the plugin gfal_plugin_rfio_handle h = g_new(struct _gfal_plugin_rfio_handle,1); h->handle = handle; h->rf = gfal_rfio_internal_loader(&tmp_err); gfal_rfio_regex_compile(&h->rex, err); rfio_plugin.plugin_data = (void*) h; rfio_plugin.check_plugin_url = &gfal_rfio_check_url; rfio_plugin.getName= &gfal_rfio_getName; rfio_plugin.plugin_delete= &gfal_rfio_destroyG; rfio_plugin.openG= &gfal_rfio_openG; rfio_plugin.closeG= &gfal_rfio_closeG; rfio_plugin.readG= &gfal_rfio_readG; rfio_plugin.writeG= &gfal_rfio_writeG; rfio_plugin.lseekG = &gfal_rfio_lseekG; rfio_plugin.statG = &gfal_rfio_statG; rfio_plugin.lstatG= &gfal_rfio_lstatG; rfio_plugin.opendirG = &gfal_rfio_opendirG; rfio_plugin.readdirG = &gfal_rfio_readdirG; rfio_plugin.closedirG = &gfal_rfio_closedirG; if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return rfio_plugin; } gboolean gfal_rfio_internal_check_url(gfal_plugin_rfio_handle rh, const char* surl, GError** err){ if(surl == NULL || strnlen(surl, GFAL_URL_MAX_LEN) == GFAL_URL_MAX_LEN){ g_set_error(err, 0, EINVAL, "[%s] Invalid surl, surl too long or NULL",__func__); return FALSE; } int ret= regexec(&rh->rex,surl,0,NULL,0); return (ret==0)?TRUE:FALSE; } /* * Check the rfio url in the gfal module way * */ gboolean gfal_rfio_check_url(plugin_handle ch, const char* url, plugin_mode mode, GError** err){ int ret; GError* tmp_err=NULL; gfal_plugin_rfio_handle rh = (gfal_plugin_rfio_handle) ch; switch(mode){ case GFAL_PLUGIN_OPEN: case GFAL_PLUGIN_STAT: case GFAL_PLUGIN_LSTAT: case GFAL_PLUGIN_OPENDIR: ret = gfal_rfio_internal_check_url(rh, url, &tmp_err); break; default: ret = FALSE; break; } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } void gfal_rfio_destroyG(plugin_handle handle){ gfal_plugin_rfio_handle h = (gfal_plugin_rfio_handle) handle; g_free(h->rf); regfree(&h->rex); g_free(h); } gfal2-2.3.0/src/common/rfio/README_PLUGIN_RFIO0000644000175000017500000000010312164561703017641 0ustar ellertellert gfal 2.0 rfio plugin : - features : * data access functions gfal2-2.3.0/src/common/rfio/gfal_rfio_plugin_main.h0000644000175000017500000000243112164561703021555 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file gfal_rfio_plugin_main.c * @brief header file for the external rfio's plugin for gfal ( based on the old rfio part in gfal legacy ) * @author Devresse Adrien * @version 0.1 * @date 30/06/2011 * **/ #include #include #include "../gfal_common_plugin.h" #include "../gfal_types.h" typedef struct _gfal_plugin_rfio_handle{ gfal_handle handle; struct rfio_proto_ops* rf; regex_t rex; }* gfal_plugin_rfio_handle; gboolean gfal_rfio_check_url(plugin_handle, const char* url, plugin_mode mode, GError** err); gfal_plugin_interface gfal_plugin_init(gfal_handle handle, GError** err); gfal2-2.3.0/src/common/rfio/gfal_rfio_plugin_bindings.c0000644000175000017500000001140412164561703022421 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_rfio_plugin_main.c * @brief header file for bindings for rfio funcs * @author Devresse Adrien * @version 0.1 * @date 30/06/2011 * **/ #include #include #include #include #include "../gfal_common_internal.h" #include "../gfal_common_errverbose.h" #include "../gfal_common_plugin.h" #include "../gfal_common_filedescriptor.h" #include "../gfal_types.h" #include "gfal_rfio_plugin_bindings.h" #include "gfal_rfio_plugin_main.h" #include "gfal_rfio_plugin_layer.h" static void rfio_report_error(gfal_plugin_rfio_handle h, const char * func_name, GError** err){ char buff_error[2048]= {0}; int status = h->rf->geterror(); status = (status > 1000)?ECOMM:status; h->rf->serror_r(buff_error, 2048); g_set_error(err, 0, status, "[%s] Error reported by the external library rfio : %s", func_name, buff_error); } gfal_file_handle gfal_rfio_openG(plugin_handle handle , const char* path, int flag, mode_t mode, GError** err){ gfal_plugin_rfio_handle h = (gfal_plugin_rfio_handle) handle; gfal_file_handle ret = NULL; gfal_log(GFAL_VERBOSE_TRACE, " %s -> ",__func__); int fd= h->rf->open(path, flag, mode); if(fd <= 0) rfio_report_error(h, __func__, err); else ret = gfal_file_handle_new(gfal_rfio_getName(), GINT_TO_POINTER(fd)); return ret; } ssize_t gfal_rfio_readG(plugin_handle handle , gfal_file_handle fd, void* buff, size_t s_buff, GError** err){ gfal_plugin_rfio_handle h = (gfal_plugin_rfio_handle) handle; int ret = h->rf->read(GPOINTER_TO_INT(fd->fdesc), buff, s_buff); if(ret <0) rfio_report_error(h, __func__, err); else errno =0; return ret; } off_t gfal_rfio_lseekG(plugin_handle handle , gfal_file_handle fd, off_t offset, int whence, GError** err){ gfal_plugin_rfio_handle h = (gfal_plugin_rfio_handle) handle; off_t ret = h->rf->lseek(GPOINTER_TO_INT(fd->fdesc), offset, (int) whence); if(ret == ((off_t)0)-1) rfio_report_error(h, __func__, err); else errno =0; return (int)ret; } ssize_t gfal_rfio_writeG(plugin_handle handle , gfal_file_handle fd, const void* buff, size_t s_buff, GError** err){ gfal_plugin_rfio_handle h = (gfal_plugin_rfio_handle) handle; int ret = h->rf->write(GPOINTER_TO_INT(fd->fdesc), (void*) buff, s_buff); if(ret <0) rfio_report_error(h, __func__, err); else errno =0; return ret; } int gfal_rfio_closeG(plugin_handle handle, gfal_file_handle fd, GError ** err){ gfal_plugin_rfio_handle h = (gfal_plugin_rfio_handle) handle; int ret= h->rf->close(GPOINTER_TO_INT(fd->fdesc)); if(ret != 0){ rfio_report_error(h, __func__, err); }else gfal_file_handle_delete(fd); return ret; } int gfal_rfio_statG(plugin_handle handle, const char* name, struct stat* buff, GError ** err){ gfal_plugin_rfio_handle h = (gfal_plugin_rfio_handle) handle; int ret= h->rf->stat(name, buff); if(ret != 0){ rfio_report_error(h, __func__, err); } return ret; } int gfal_rfio_lstatG(plugin_handle handle, const char* name, struct stat* buff, GError ** err){ gfal_plugin_rfio_handle h = (gfal_plugin_rfio_handle) handle; int ret= h->rf->lstat(name, buff); if(ret != 0){ rfio_report_error(h, __func__, err); } return ret; } gfal_file_handle gfal_rfio_opendirG(plugin_handle handle, const char* name, GError ** err){ gfal_plugin_rfio_handle h = (gfal_plugin_rfio_handle) handle; DIR * ret = h->rf->opendir(name); if(ret == NULL){ rfio_report_error(h, __func__, err); return NULL; } return gfal_file_handle_new(gfal_rfio_getName(), (gpointer) ret); } struct dirent* gfal_rfio_readdirG(plugin_handle handle, gfal_file_handle fh , GError** err){ gfal_plugin_rfio_handle h = (gfal_plugin_rfio_handle) handle; struct dirent* dir = h->rf->readdir(fh->fdesc); if(dir == NULL && h->rf->geterror() != 0){ rfio_report_error(h, __func__, err); return NULL; } return dir; } int gfal_rfio_closedirG(plugin_handle handle, gfal_file_handle fh, GError** err){ gfal_plugin_rfio_handle h = (gfal_plugin_rfio_handle) handle; int ret = h->rf->closedir(fh->fdesc); if(ret != 0){ rfio_report_error(h, __func__, err); } gfal_file_handle_delete(fh); return ret; } const char* gfal_rfio_getName(){ return "rfio_plugin"; } gfal2-2.3.0/src/common/rfio/gfal_rfio_plugin_layer.c0000644000175000017500000001075512164561703021750 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_rfio_plugin_layer.c * @brief file for the external call, abstraction layer for mock purpose * @author Devresse Adrien * @version 0.1 * @date 30/06/2011 * **/ #include #include #include #include #include #include #include #include #include "gfal_rfio_plugin_layer.h" static char* libdpm_name= "libdpm.so.1"; static char* libcastor_name= "libshift.so.2.1"; struct rfio_proto_ops * gfal_rfio_internal_loader_base(GError** err){ void *dlhandle=NULL; struct rfio_proto_ops * pops = NULL; GError* tmp_err=NULL; char *p; char* libname=NULL; p = getenv ("LCG_RFIO_TYPE"); if (p && strcmp (p, "dpm") == 0) { libname = libdpm_name; } else if (p && strcmp (p, "castor") == 0) { libname= libcastor_name; } if( libname != NULL){ gfal_log(GFAL_VERBOSE_VERBOSE, " lib rfio defined in LCG_RFIO_TYPE : %s", libname); if( (dlhandle = dlopen(libname, RTLD_LAZY)) == NULL){ g_set_error(&tmp_err, 0, EPROTONOSUPPORT, " library %s for the rfio_plugin cannot be loaded properly, failure : %s ", libname, dlerror()); } }else{ gfal_log(GFAL_VERBOSE_VERBOSE, " lib rfio is not defined in LCG_RFIO_TYPE, try to found it "); char* tab_lib[] = { libdpm_name, libcastor_name, NULL}; char** p = tab_lib; while(*p != NULL){ if((dlhandle = dlopen (*p, RTLD_LAZY)) != NULL){ gfal_log(GFAL_VERBOSE_VERBOSE, "rfio library %s found ! configured to us it", *p); break; } p++; } if(!dlhandle){ g_set_error(&tmp_err, 0, EPROTONOSUPPORT, " Unable to find %s or %s, failure : %s ", libcastor_name, libdpm_name, dlerror()); } } if(dlhandle){ pops = g_new0(struct rfio_proto_ops, 1); pops->geterror = (int (*) ()) dlsym (dlhandle, "rfio_serrno"); pops->serror_r = (char* (*) (char*, size_t)) dlsym(dlhandle, "rfio_serror_r"); pops->access = (int (*) (const char *, int)) dlsym (dlhandle, "rfio_access"); pops->chmod = (int (*) (const char *, mode_t)) dlsym (dlhandle, "rfio_chmod"); pops->close = (int (*) (int)) dlsym (dlhandle, "rfio_close"); pops->closedir = (int (*) (DIR *)) dlsym (dlhandle, "rfio_closedir"); pops->lseek = (off_t (*) (int, off_t, int)) dlsym (dlhandle, "rfio_lseek"); pops->lseek64 = (off64_t (*) (int, off64_t, int)) dlsym (dlhandle, "rfio_lseek64"); pops->lstat = (int (*) (const char *, struct stat *)) dlsym (dlhandle, "rfio_lstat"); pops->lstat64 = (int (*) (const char *, struct stat64 *)) dlsym (dlhandle, "rfio_lstat64"); pops->mkdir = (int (*) (const char *, mode_t)) dlsym (dlhandle, "rfio_mkdir"); pops->open = (int (*) (const char *, int, ...)) dlsym (dlhandle, "rfio_open"); pops->opendir = (DIR * (*) (const char *)) dlsym (dlhandle, "rfio_opendir"); pops->read = (ssize_t (*) (int, void *, size_t)) dlsym (dlhandle, "rfio_read"); pops->readdir = (struct dirent * (*) (DIR *)) dlsym (dlhandle, "rfio_readdir"); pops->readdir64 = (struct dirent64 * (*) (DIR *)) dlsym (dlhandle, "rfio_readdir64"); pops->rename = (int (*) (const char *, const char *)) dlsym (dlhandle, "rfio_rename"); pops->rmdir = (int (*) (const char *)) dlsym (dlhandle, "rfio_rmdir"); pops->setfilchg = (ssize_t (*) (int, const void *, size_t)) dlsym (dlhandle, "rfio_HsmIf_FirstWrite"); pops->stat = (int (*) (const char *, struct stat *)) dlsym (dlhandle, "rfio_stat"); pops->stat64 = (int (*) (const char *, struct stat64 *)) dlsym (dlhandle, "rfio_stat64"); pops->unlink = (int (*) (const char *)) dlsym (dlhandle, "rfio_unlink"); pops->write = (ssize_t (*) (int, const void *, size_t)) dlsym (dlhandle, "rfio_write"); } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return pops; } struct rfio_proto_ops * (*gfal_rfio_internal_loader)(GError** err)= &gfal_rfio_internal_loader_base; gfal2-2.3.0/src/common/voms/0000755000175000017500000000000012164561703015117 5ustar ellertellertgfal2-2.3.0/src/common/gridftp/0000755000175000017500000000000012164561703015572 5ustar ellertellertgfal2-2.3.0/src/common/gridftp/test/0000755000175000017500000000000012164561703016551 5ustar ellertellertgfal2-2.3.0/src/common/gridftp/gridftp_ns_opendir.cpp0000644000175000017500000001253712164561703022165 0ustar ellertellert/* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../common/gfal_common_filedescriptor.h" #include "gridftp_namespace.h" #include "gridftp_plugin.h" static Glib::Quark gfal_gridftp_scope_opendir(){ return Glib::Quark("GridftpModule::opendir"); } const size_t readdir_len = 65000; struct GridFTP_Dir_desc{ struct dirent dir; char buff[readdir_len+1]; // buffer used for std::string list; // concated list of dirs std::auto_ptr stream; GridFTP_Dir_desc(GridFTP_stream_state * s) : stream(s){ *(buff+readdir_len)='\0'; memset(&dir, 0, sizeof(struct dirent)); } }; gfal_file_handle GridftpModule::opendir(const char* path) { ssize_t r_size; std::auto_ptr desc(new GridFTP_Dir_desc( new GridFTP_stream_state(_handle_factory->gfal_globus_ftp_take_handle(gridftp_hostname_from_url(path))) )); gfal_log(GFAL_VERBOSE_TRACE," -> [GridftpModule::opendir] "); Glib::Mutex::Lock locker(desc->stream->lock); desc->stream->start(); globus_result_t res = globus_ftp_client_list( // start req desc->stream->sess->get_ftp_handle(), path, NULL, globus_basic_client_callback, static_cast(desc->stream.get())); gfal_globus_check_result(gfal_gridftp_scope_opendir(), res); r_size= gridftp_read_stream(gfal_gridftp_scope_opendir(), (desc->stream.get()), desc->buff, readdir_len); // initiate reading stream *(desc->buff + r_size) = '\0'; desc->list = std::string(desc->buff); gfal_log(GFAL_VERBOSE_TRACE," <- [GridftpModule::opendir] "); return gfal_file_handle_new2(gridftp_plugin_name(), (gpointer) desc.release(), NULL, path); } // try to extract dir information int gridftp_readdir_desc_parser(GridFTP_Dir_desc* desc){ const char * c_list = desc->list.c_str(); char* p,*p1; if( (p = strchr((char*) c_list, '\n')) == NULL) return 0; // no new entry, c'est la fin des haricots p1 = (char*)mempcpy(desc->dir.d_name, c_list, std::min((long)NAME_MAX-1, (long) (p-c_list))); *p1 = '\0'; while( *(--p1) == '\r' || *p1 == '\n') // clear new line madness *p1 = '\0'; desc->list = std::string(p+1); return 1; } struct dirent * GridftpModule::readdir(gfal_file_handle fh){ GridFTP_Dir_desc* desc = static_cast(fh->fdesc); ssize_t r_size; gfal_log(GFAL_VERBOSE_TRACE," -> [GridftpModule::readdir] "); Glib::Mutex::Lock locker(desc->stream->lock); while(gridftp_readdir_desc_parser(desc) == 0){ if( (r_size = gridftp_read_stream(gfal_gridftp_scope_opendir(), (desc->stream.get()), desc->buff, readdir_len)) == 0) // end of stream return NULL; *(desc->buff + r_size) = '\0'; desc->list+= std::string(desc->buff); } gfal_log(GFAL_VERBOSE_VERBOSE," list file %s ", desc->dir.d_name); gfal_log(GFAL_VERBOSE_TRACE," [GridftpModule::readdir] <- "); return &(desc->dir); } int GridftpModule::closedir(gfal_file_handle fh){ gfal_log(GFAL_VERBOSE_TRACE," -> [GridftpModule::closedir]"); GridFTP_Dir_desc* desc = static_cast(fh->fdesc); if(desc){ try{ delete desc; }catch(Glib::Error & e){ // .. make the desctruction "abort" silent } gfal_file_handle_delete(fh); } gfal_log(GFAL_VERBOSE_TRACE," [GridftpModule::closedir] <- "); return 0; } extern "C" gfal_file_handle gfal_gridftp_opendirG(plugin_handle handle , const char* path, GError** err){ g_return_val_err_if_fail( handle != NULL && path != NULL , NULL, err, "[gfal_gridftp_opendirG][gridftp] einval params"); GError * tmp_err=NULL; gfal_file_handle ret = NULL; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_opendirG]"); CPP_GERROR_TRY ret = ((static_cast(handle))->opendir(path)); CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_opendirG]<-"); G_RETURN_ERR(ret, tmp_err, err); } extern "C" struct dirent* gfal_gridftp_readdirG(plugin_handle handle, gfal_file_handle fh, GError** err){ g_return_val_err_if_fail( handle != NULL && fh != NULL , NULL, err, "[gfal_gridftp_readdirG][gridftp] einval params"); GError * tmp_err=NULL; struct dirent* ret = NULL; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_readdirG]"); CPP_GERROR_TRY ret = ((static_cast(handle))->readdir(fh)); CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_readdirG] <-"); G_RETURN_ERR(ret, tmp_err, err); } extern "C" int gfal_gridftp_closedirG(plugin_handle handle, gfal_file_handle fh, GError** err){ g_return_val_err_if_fail( handle != NULL , -1, err, "[gfal_gridftp_readdirG][gridftp] einval params"); GError * tmp_err=NULL; int ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_closedirG]"); CPP_GERROR_TRY ((static_cast(handle))->closedir(fh)); ret =0; CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_closedirG] <-"); G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/common/gridftp/gridftp_io.h0000644000175000017500000000240012164561703020065 0ustar ellertellert#pragma once #ifndef GRIDFTP_RW_MODULE_H #define GRIDFTP_RW_MODULE_H /* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gridftpmodule.h" extern "C" gfal_file_handle gfal_gridftp_openG(plugin_handle ch, const char* url, int flag, mode_t mode, GError** err); extern "C" ssize_t gfal_gridftp_readG(plugin_handle ch , gfal_file_handle fd, void* buff, size_t s_buff, GError** err); extern "C" ssize_t gfal_gridftp_writeG(plugin_handle ch , gfal_file_handle fd, const void* buff, size_t s_buff, GError** err); extern "C" off_t gfal_gridftp_lseekG(plugin_handle ch , gfal_file_handle fd, off_t offset, int whence, GError** err); extern "C" int gfal_gridftp_closeG(plugin_handle ch, gfal_file_handle fd, GError** err); #endif /* GRIDFTP_RW_MODULE_H */ gfal2-2.3.0/src/common/gridftp/gridftp_ns_chmod.cpp0000644000175000017500000000377012164561703021616 0ustar ellertellert/* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gridftp_namespace.h" static Glib::Quark gfal_gridftp_scope_chmod(){ return Glib::Quark("GridftpModule::chmod"); } void GridftpModule::chmod(const char* path, mode_t mode) { if(path== NULL ) throw Glib::Error(gfal_gridftp_scope_chmod(), EINVAL, "Invalid arguments path or mode "); gfal_log(GFAL_VERBOSE_TRACE," -> [GridftpModule::chmod] "); std::auto_ptr req( new GridFTP_Request_state(_handle_factory->gfal_globus_ftp_take_handle(gridftp_hostname_from_url(path)))); // get connexion session req->start(); globus_result_t res = globus_ftp_client_chmod( req->sess->get_ftp_handle(), path, mode, NULL, globus_basic_client_callback, req.get()); gfal_globus_check_result(gfal_gridftp_scope_chmod(), res); // wait for answer req->wait_callback(gfal_gridftp_scope_chmod()); gfal_log(GFAL_VERBOSE_TRACE," <- [GridftpModule::chmod] "); } extern "C" int gfal_gridftp_chmodG(plugin_handle handle, const char* path , mode_t mode, GError** err){ g_return_val_err_if_fail( handle != NULL && path != NULL , -1, err, "[gfal_gridftp_chmodG][gridftp] einval params"); GError * tmp_err=NULL; int ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_chmod]"); CPP_GERROR_TRY (static_cast(handle))->chmod(path, mode); ret = 0; CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_chmod]<-"); G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/common/gridftp/README_PLUGIN_GRIDFTP0000644000175000017500000000011512164561703020704 0ustar ellertellert gfal 2.0 gridftp plugins : - features : * thrid party transfert copy gfal2-2.3.0/src/common/gridftp/gridftp_filecopy.cpp0000644000175000017500000004604312164561703021636 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include "gridftp_namespace.h" #include "gridftp_filecopy.h" #include #include #include #include #include #include #include #include #include #include static Glib::Quark gfal_gridftp_scope_filecopy(){ return Glib::Quark("GridFTP::Filecopy"); } static Glib::Quark gfal_gsiftp_domain(){ return Glib::Quark("GSIFTP"); } /*IPv6 compatible lookup*/ std::string lookup_host (const char *host) { struct addrinfo hints, *res=NULL; int errcode; char addrstr[100]={0}; void *ptr = NULL; if(!host){ return std::string("cant.be.resolved"); } memset (&hints, 0, sizeof (hints)); hints.ai_family = PF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags |= AI_CANONNAME; errcode = getaddrinfo (host, NULL, &hints, &res); if (errcode != 0){ return std::string("cant.be.resolved"); } while (res) { inet_ntop (res->ai_family, res->ai_addr->sa_data, addrstr, 100); switch (res->ai_family) { case AF_INET: ptr = &((struct sockaddr_in *) res->ai_addr)->sin_addr; break; case AF_INET6: ptr = &((struct sockaddr_in6 *) res->ai_addr)->sin6_addr; break; } if(ptr){ inet_ntop (res->ai_family, ptr, addrstr, 100); } res = res->ai_next; } if(res) freeaddrinfo(res); if(strlen(addrstr) < 7) return std::string("cant.be.resolved"); else return std::string(addrstr); } static std::string returnHostname(const std::string &uri){ Uri u0 = Uri::Parse(uri); return lookup_host(u0.Host.c_str()) + ":" + u0.Port; } const char * gridftp_checksum_transfer_config= "COPY_CHECKSUM_TYPE"; const char * gridftp_perf_marker_timeout_config= "PERF_MARKER_TIMEOUT"; void gridftp_filecopy_delete_existing(gfal2_context_t context, GridFTP_session * sess, gfalt_params_t params, const char * url){ const bool replace = gfalt_get_replace_existing_file(params,NULL); bool exist = gridftp_module_file_exist(context, sess, url); if(exist){ if(replace){ gfal_log(GFAL_VERBOSE_TRACE, " File %s already exist, delete it for override ....",url); gridftp_unlink_internal(context, sess, url, false); gfal_log(GFAL_VERBOSE_TRACE, " File %s deleted with success, proceed to copy ....",url); }else{ char err_buff[GFAL_ERRMSG_LEN]; snprintf(err_buff, GFAL_ERRMSG_LEN, " Destination already exist %s, Cancel", url); throw Gfal::CoreException(gfal_gridftp_scope_filecopy(), err_buff, EEXIST); } } } // create the parent directory void gridftp_create_parent_copy(gfal2_context_t handle, gfalt_params_t params, const char * gridftp_url){ const gboolean create_parent = gfalt_get_create_parent_dir(params, NULL); if(create_parent){ gfal_log(GFAL_VERBOSE_TRACE, " -> [gridftp_create_parent_copy]"); GError * tmp_err=NULL; char current_uri[GFAL_URL_MAX_LEN]; g_strlcpy(current_uri, gridftp_url, GFAL_URL_MAX_LEN); const size_t s_uri = strlen(current_uri); char* p_uri = current_uri + s_uri -1; while( p_uri > current_uri && *p_uri == '/' ){ // remove trailing '/' *p_uri = '\0'; p_uri--; } while( p_uri > current_uri && *p_uri != '/'){ // find the parent directory p_uri--; } if(p_uri > current_uri){ struct stat st; *p_uri = '\0'; gfal2_stat(handle, current_uri, &st, &tmp_err); if (tmp_err && tmp_err->code != ENOENT) Gfal::gerror_to_cpp(&tmp_err); else if (tmp_err) g_error_free(tmp_err); else if (!S_ISDIR(st.st_mode)) throw Gfal::CoreException(gfal_gridftp_scope_filecopy(), "The parent of the destination file exists, but it is not a directory", ENOTDIR); else return; tmp_err = NULL; gfal_log(GFAL_VERBOSE_TRACE, "try to create directory %s", current_uri); (void) gfal2_mkdir_rec(handle, current_uri, 0755, &tmp_err); Gfal::gerror_to_cpp(&tmp_err); }else{ throw Gfal::CoreException(gfal_gridftp_scope_filecopy(), "impossible to create directory " + std::string(current_uri) + " : invalid path", EINVAL); } gfal_log(GFAL_VERBOSE_TRACE, " [gridftp_create_parent_copy] <-"); } } void gsiftp_rd3p_callback(void* user_args, globus_gass_copy_handle_t* handle, globus_off_t total_bytes, float throughput, float avg_throughput); // // Performance callback object // contain the performance callback parameter // an the auto cancel logic on performance callback inaticity struct Callback_handler{ Callback_handler(gfal2_context_t context, gfalt_params_t params, GridFTP_Request_state* req, const char* src, const char* dst) : args(NULL){ GError * tmp_err=NULL; gfalt_monitor_func callback = gfalt_get_monitor_callback(params, &tmp_err); Gfal::gerror_to_cpp(&tmp_err); gpointer user_args = gfalt_get_user_data(params, &tmp_err); Gfal::gerror_to_cpp(&tmp_err); if(callback){ args = new callback_args(context, callback, user_args, src, dst, req, &tmp_err); } } static void* func_timer(void* v){ callback_args* args = (callback_args*) v; while( time(NULL) < args->timeout_time){ if( pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL) != 0){ gfal_log(GFAL_VERBOSE_TRACE, " thread setcancelstate error, interrupt perf marker timer"); return NULL; } usleep(500000); if( pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL) != 0){ gfal_log(GFAL_VERBOSE_TRACE, " thread setcancelstate error, interrupt perf marker timer"); return NULL; } } std::stringstream msg; msg << "Transfer canceled because the gsiftp performance marker timeout of " << args->timeout_value << "seconds has been exceeded."; args->req->cancel_operation_async(gfal_gridftp_scope_filecopy(), msg.str()); return NULL; } virtual ~Callback_handler(){ if(args){ delete args; } } struct callback_args{ callback_args(gfal2_context_t context, const gfalt_monitor_func mcallback, gpointer muser_args, const char* msrc, const char* mdst, GridFTP_Request_state* mreq, GError** err) : callback(mcallback), user_args(muser_args), req(mreq), src(msrc), dst(mdst), start_time(time(NULL)), timeout_value(gfal2_get_opt_integer_with_default(context, GRIDFTP_CONFIG_GROUP, gridftp_perf_marker_timeout_config, 180)), timeout_time(time(NULL) + timeout_value), timer_pthread() { Glib::RWLock::ReaderLock l (req->mux_req_state); globus_gass_copy_register_performance_cb(req->sess->get_gass_handle(), gsiftp_rd3p_callback, (gpointer) this); if(timeout_value > 0){ pthread_create(&timer_pthread, NULL, Callback_handler::func_timer, this); } } virtual ~callback_args(){ if(timeout_value > 0){ void * res; pthread_cancel(timer_pthread); pthread_join(timer_pthread, &res); } Glib::RWLock::ReaderLock l (req->mux_req_state); globus_gass_copy_register_performance_cb(req->sess->get_gass_handle(), NULL, NULL); } gfalt_monitor_func callback; gpointer user_args; GridFTP_Request_state* req; const char* src; const char* dst; time_t start_time; int timeout_value; time_t timeout_time; pthread_t timer_pthread; } *args; }; void gsiftp_rd3p_callback(void* user_args, globus_gass_copy_handle_t* handle, globus_off_t total_bytes, float throughput, float avg_throughput){ Callback_handler::callback_args * args = (Callback_handler::callback_args *) user_args; GridFTP_Request_state* req = args->req; Glib::RWLock::ReaderLock l (req->mux_req_state); if(args->timeout_value > 0){ gfal_log(GFAL_VERBOSE_TRACE, "Performance marker received, re-arm timer"); args->timeout_time = time(NULL) + args->timeout_value; } gfalt_hook_transfer_plugin_t hook; hook.bytes_transfered = total_bytes; hook.average_baudrate= (size_t) avg_throughput; hook.instant_baudrate = (size_t) throughput; hook.transfer_time = (time(NULL) - args->start_time); gfalt_transfer_status_t state = gfalt_transfer_status_create(&hook); args->callback(state, args->src, args->dst, args->user_args); gfalt_transfer_status_delete(state); } int gridftp_filecopy_copy_file_internal(GridFTPFactoryInterface * factory, gfalt_params_t params, const char* src, const char* dst){ using namespace Gfal::Transfer; GError * tmp_err=NULL; const time_t timeout = gfalt_get_timeout(params, &tmp_err); Gfal::gerror_to_cpp(&tmp_err); const unsigned int nbstream = gfalt_get_nbstreams(params, &tmp_err); Gfal::gerror_to_cpp(&tmp_err); const guint64 tcp_buffer_size = gfalt_get_tcp_buffer_size(params, &tmp_err); Gfal::gerror_to_cpp(&tmp_err); std::auto_ptr req( new GridFTP_Request_state(factory->gfal_globus_ftp_take_handle(gridftp_hostname_from_url(src)), true, GRIDFTP_REQUEST_GASS) ); GridFTP_session* sess = req->sess.get(); sess->set_nb_stream( nbstream); gfal_log(GFAL_VERBOSE_TRACE, " [GridFTPFileCopyModule::filecopy] setup gsiftp number of streams to %d", nbstream); sess->set_tcp_buffer_size(tcp_buffer_size); gfal_log(GFAL_VERBOSE_TRACE, " [GridFTPFileCopyModule::filecopy] setup gsiftp buffer size to %d", tcp_buffer_size); if( gfalt_get_strict_copy_mode(params, NULL) == false){ gridftp_filecopy_delete_existing(factory->get_handle(), sess, params, dst); gridftp_create_parent_copy(factory->get_handle(), params, dst); } std::auto_ptr gass_attr_src(sess->generate_gass_copy_attr()); std::auto_ptr gass_attr_dst(sess->generate_gass_copy_attr()); Callback_handler callback_handler(factory->get_handle(), params, req.get(), src, dst); req->start(); gfal_log(GFAL_VERBOSE_TRACE, " [GridFTPFileCopyModule::filecopy] start gridftp transfer %s -> %s", src, dst); GridFTPOperationCanceler canceler(factory->get_handle(), req.get()); gfal_globus_result_t res = globus_gass_copy_register_url_to_url( sess->get_gass_handle(), (char*)src, &(gass_attr_src->attr_gass), (char*)dst, &(gass_attr_dst->attr_gass), globus_gass_basic_client_callback, req.get() ); gfal_globus_check_result("GridFTPFileCopyModule::filecopy", res); req->wait_callback(gfal_gridftp_scope_filecopy(), timeout); return 0; } void gridftp_checksum_transfer_verify(const char * src_chk, const char* dst_chk, const char* user_defined_chk){ if(*user_defined_chk == '\0'){ if(strncasecmp(src_chk, dst_chk,GFAL_URL_MAX_LEN) != 0){ std::ostringstream ss; ss << "SRC and DST checksum are different. Source: " << src_chk << " Destination: " << dst_chk ; throw Gfal::CoreException(gfal_gridftp_scope_filecopy(), ss.str(), EIO); } }else{ if(strncasecmp(src_chk, user_defined_chk, GFAL_URL_MAX_LEN) != 0 || strncasecmp(dst_chk, user_defined_chk, GFAL_URL_MAX_LEN) != 0){ std::ostringstream ss; ss << "USER_DEFINE, SRC and DST checksum are different. User defined: " << user_defined_chk << " Source: " << src_chk << " Destination: " << dst_chk; throw Gfal::CoreException(gfal_gridftp_scope_filecopy(), ss.str(),EIO); } } } // clear dest if error occures in transfer, does not clean if dest file if set as already exist before any transfer void GridftpModule::autoCleanFileCopy(gfalt_params_t params, GError* checked_error, const char* dst){ if(checked_error && checked_error->code != EEXIST){ gfal_log(GFAL_VERBOSE_TRACE, "\t\tError in transfer, clean destination file %s ", dst); try{ this->unlink(dst); }catch(...){ gfal_log(GFAL_VERBOSE_TRACE, "\t\tFailure in cleaning ..."); } } } void GridftpModule::filecopy(gfalt_params_t params, const char* src, const char* dst) { char checksum_type[GFAL_URL_MAX_LEN]={0}; char checksum_user_defined[GFAL_URL_MAX_LEN]; char checksum_src[GFAL_URL_MAX_LEN] = { 0 }; char checksum_dst[GFAL_URL_MAX_LEN] = { 0 }; gboolean checksum_check = gfalt_get_checksum_check(params, NULL); if (checksum_check) { gfalt_get_user_defined_checksum(params, checksum_type, sizeof(checksum_type), checksum_user_defined, sizeof(checksum_user_defined), NULL); if (checksum_user_defined[0] == '\0' && checksum_type[0] == '\0') { GError *get_default_error = NULL; char *default_checksum_type; default_checksum_type = gfal2_get_opt_string(_handle_factory->get_handle(), GRIDFTP_CONFIG_GROUP, gridftp_checksum_transfer_config, &get_default_error); Gfal::gerror_to_cpp(&get_default_error); strncpy(checksum_type, default_checksum_type, sizeof(checksum_type)); checksum_type[GFAL_URL_MAX_LEN-1] = '\0'; g_free(default_checksum_type); gfal_log(GFAL_VERBOSE_TRACE, "\t\tNo user defined checksum, fetch the default one from configuration"); } gfal_log(GFAL_VERBOSE_DEBUG, "\t\tChecksum Algorithm for transfer verification %s", checksum_type); } // Retrieving the source checksum and doing the transfer can be, potentially, // done in parallel. But not for now. // (That's why the brackets: they are marking potential parallelizable sections) // But remember to modify the catches when you make them parallel! // Source checksum { try { if (checksum_check) { plugin_trigger_event(params, gfal_gsiftp_domain(), GFAL_EVENT_SOURCE, GFAL_EVENT_CHECKSUM_ENTER, "%s", checksum_type); checksum(src, checksum_type, checksum_src, sizeof(checksum_src), 0, 0); plugin_trigger_event(params, gfal_gsiftp_domain(), GFAL_EVENT_SOURCE, GFAL_EVENT_CHECKSUM_EXIT, "%s=%s", checksum_type, checksum_src); } } catch (const Glib::Error &e) { throw; } catch (...) { throw Glib::Error(gfal_gsiftp_domain(), EIO, "Undefined Exception catched while getting the source checksum!!"); } } // Transfer GError* transfer_error = NULL; { plugin_trigger_event(params, gfal_gsiftp_domain(), GFAL_EVENT_NONE, GFAL_EVENT_TRANSFER_ENTER, "(%s) %s => (%s) %s", returnHostname(src).c_str(), src, returnHostname(dst).c_str(), dst); CPP_GERROR_TRY gridftp_filecopy_copy_file_internal(_handle_factory, params, src, dst); CPP_GERROR_CATCH(&transfer_error); plugin_trigger_event(params, gfal_gsiftp_domain(), GFAL_EVENT_NONE, GFAL_EVENT_TRANSFER_EXIT, "(%s) %s => (%s) %s", returnHostname(src).c_str(), src, returnHostname(dst).c_str(), dst); } // If we got an error, clean the destination and throw if (transfer_error != NULL) { autoCleanFileCopy(params, transfer_error, dst); Gfal::gerror_to_cpp(&transfer_error); } // Validate destination checksum if (checksum_check) { plugin_trigger_event(params, gfal_gsiftp_domain(), GFAL_EVENT_DESTINATION, GFAL_EVENT_CHECKSUM_ENTER, "%s", checksum_type); checksum(dst, checksum_type, checksum_dst, sizeof(checksum_dst), 0, 0); gridftp_checksum_transfer_verify(checksum_src, checksum_dst, checksum_user_defined); plugin_trigger_event(params, gfal_gsiftp_domain(), GFAL_EVENT_DESTINATION, GFAL_EVENT_CHECKSUM_EXIT, "%s", checksum_type); } } extern "C"{ /** * initiaize a file copy from the given source to the given dest with the parameters params */ int plugin_filecopy(plugin_handle handle, gfal2_context_t context, gfalt_params_t params, const char* src, const char* dst, GError ** err){ g_return_val_err_if_fail( handle != NULL && src != NULL && dst != NULL , -1, err, "[plugin_filecopy][gridftp] einval params"); GError * tmp_err=NULL; int ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gridftp_plugin_filecopy]"); CPP_GERROR_TRY ( static_cast(handle))->filecopy(params, src, dst); ret = 0; CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gridftp_plugin_filecopy]<-"); G_RETURN_ERR(ret, tmp_err, err); } int gridftp_plugin_filecopy(plugin_handle handle, gfal2_context_t context, gfalt_params_t params, const char* src, const char* dst, GError ** err){ return plugin_filecopy(handle, context, params, src, dst, err); } } gfal2-2.3.0/src/common/gridftp/gridftp_ns_exist.cpp0000644000175000017500000000331412164561703021652 0ustar ellertellert/* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gridftp_namespace.h" static Glib::Quark gfal_gridftp_scope_exist(){ return Glib::Quark ("GridftpModule::file_exist"); } bool gridftp_module_file_exist(gfal2_context_t context, GridFTP_session* sess, const char * url){ gfal_log(GFAL_VERBOSE_TRACE," -> [gridftp_module_file_exist]"); std::auto_ptr req(new GridFTP_Request_state(sess, false)); GridFTPOperationCanceler canceler(context, req.get()); globus_byte_t *buffer = NULL; globus_size_t buflen = 0; req->start(); globus_result_t res = globus_ftp_client_mlst( req->sess->get_ftp_handle(), url, req->sess->get_op_attr_ftp(), &buffer, &buflen, globus_basic_client_callback, req.get()); gfal_globus_check_result(gfal_gridftp_scope_exist(), res); int error_code = 0; try { req->wait_callback(gfal_gridftp_scope_exist()); globus_free(buffer); } catch (Gfal::CoreException& e) { error_code = e.code(); if (error_code != ENOENT) throw; } gfal_log(GFAL_VERBOSE_TRACE," <- [gridftp_module_file_exist]"); return (error_code == 0); } gfal2-2.3.0/src/common/gridftp/CMakeLists.txt0000644000175000017500000000216312164561703020334 0ustar ellertellert#grid ftp plugin compilation file #define gridftp source FILE(GLOB src_gridftp "*.c*") IF(PLUGIN_GRIDFTP) add_definitions( ${GLOBUS_GASS_COPY_PKG_CFLAGS} ) add_library(plugin_gridftp SHARED ${src_gridftp} ${src_libcpp} ${src_exceptions}) target_link_libraries(plugin_gridftp ${gfal2_link} ${GLOBUS_GASS_COPY_PKG_LIBRARIES} gfal2_transfer gomp ) include_directories( ${GLOBUS_GASS_COPY_PKG_INCLUDE_DIRS} ${GRIDFTP_IFCE_INCLUDE_DIRS} ${GLIBMM_PKG_INCLUDE_DIRS} ) set_target_properties(plugin_gridftp PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/src CLEAN_DIRECT_OUTPUT 1 OUTPUT_NAME ${OUTPUT_NAME_GRIDFTP} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/plugins ) install(TARGETS plugin_gridftp LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR} ) install(FILES "README_PLUGIN_GRIDFTP" DESTINATION ${DOC_INSTALL_DIR}) #install(FILES ${dcap_scripts} DESTINATION ${SYSCONF_INSTALL_DIR}/profile.d/ ) ENDIF(PLUGIN_GRIDFTP) link_directories (${CMAKE_BINARY_DIR}/plugins) link_directories (${CMAKE_BINARY_DIR}/src) gfal2-2.3.0/src/common/gridftp/gridftp_ns_mkdir.cpp0000644000175000017500000000377412164561703021636 0ustar ellertellert/* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gridftp_namespace.h" static Glib::Quark gfal_gridftp_scope_mkdir(){ return Glib::Quark("GridftpModule::mkdir"); } void GridftpModule::mkdir(const char* path, mode_t mode) { if (path == NULL) throw Glib::Error(gfal_gridftp_scope_mkdir(), EINVAL, "Invalid arguments path or mode "); gfal_log(GFAL_VERBOSE_TRACE," -> [GridftpModule::mkdir] "); std::auto_ptr req( new GridFTP_Request_state(_handle_factory->gfal_globus_ftp_take_handle(gridftp_hostname_from_url(path)))); // get connexion session req->start(); globus_result_t res = globus_ftp_client_mkdir( req->sess->get_ftp_handle(), path, NULL, globus_basic_client_callback, req.get()); gfal_globus_check_result("GridftpModule::mkdir", res); // wait for answer req->wait_callback(gfal_gridftp_scope_mkdir()); gfal_log(GFAL_VERBOSE_TRACE," <- [GridftpModule::mkdir] "); } extern "C" int gfal_gridftp_mkdirG(plugin_handle handle , const char* path , mode_t mode , gboolean pflag, GError** err){ g_return_val_err_if_fail( handle != NULL && path != NULL , -1, err, "[gfal_gridftp_mkdirG][gridftp] einval params"); GError * tmp_err=NULL; int ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_mkdirG]"); CPP_GERROR_TRY (static_cast(handle))->mkdir(path, mode); ret = 0; CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_mkdirG]<-"); G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/common/gridftp/gridftp_io.cpp0000644000175000017500000003276312164561703020437 0ustar ellertellert/* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include "../fdesc/gfal_file_handle.h" #include "../gfal_common_filedescriptor.h" #include "gridftp_io.h" #include "gridftp_namespace.h" #include "gridftp_plugin.h" static Glib::Quark gfal_gridftp_scope_open(){ return Glib::Quark ("GridftpModule::open"); } static Glib::Quark gfal_gridftp_scope_read(){ return Glib::Quark("GridftpModule::read"); } static Glib::Quark gfal_gridftp_scope_internal_pread(){ return Glib::Quark("GridftpModule::internal_pread"); } static Glib::Quark gfal_gridftp_scope_write(){ return Glib::Quark("GridftpModule::write"); } static Glib::Quark gfal_gridftp_scope_internal_pwrite(){ return Glib::Quark("GridftpModule::internal_pwrite"); } static Glib::Quark gfal_gridftp_scope_lseek(){ return Glib::Quark("GridftpModule::lseek"); } static Glib::Quark gfal_gridftp_scope_close(){ return Glib::Quark("GridftpModule::close"); } const size_t readdir_len = 65000; struct GridFTP_File_desc{ std::auto_ptr stream; int open_flags; off_t current_offset; std::string url; Glib::Mutex lock; GridFTP_File_desc(GridFTP_stream_state * s, const std::string & _url, int flags) : stream(s){ gfal_log(GFAL_VERBOSE_TRACE, "create descriptor for %s", _url.c_str()); this->open_flags = flags; current_offset = 0; url = _url; } virtual ~GridFTP_File_desc(){ gfal_log(GFAL_VERBOSE_TRACE, "destroy descriptor for %s", url.c_str()); } bool is_not_seeked(){ return (stream.get() != NULL && current_offset == stream->get_offset())?true:false; } bool is_eof(){ return stream->is_eof(); } }; inline bool is_read_only(int open_flags){ return ((open_flags & O_RDONLY) || (( open_flags & (O_WRONLY | O_RDWR)) ==0)); } inline bool is_write_only(int open_flags){ return (open_flags & ( O_WRONLY | O_CREAT )); } inline int gridftp_rw_commit_put(const Glib::Quark & scope, GridFTP_File_desc* desc){ char buffer[2]; if(is_write_only(desc->open_flags)){ gfal_log(GFAL_VERBOSE_TRACE," commit change for the current stream PUT ... "); GridFTP_Request_state* state = desc->stream.get(); state->start(); gridftp_write_stream(gfal_gridftp_scope_write(), (desc->stream.get()), buffer, 0, true); state->wait_callback(gfal_gridftp_scope_write()); gfal_log(GFAL_VERBOSE_TRACE," commited with success ... "); } return 0; } inline int gridftp_rw_valid_get(const Glib::Quark & scope, GridFTP_File_desc* desc){ if(is_read_only(desc->open_flags)){ if(desc->is_eof()){ static_cast(desc->stream.get())->wait_callback(scope); }else{ gfal_log(GFAL_VERBOSE_TRACE,"not a full read -> kill the connexion "); try{ desc->stream->cancel_operation(scope, "Not a full read, connexion killed"); }catch(Glib::Error & e ){ // silent !! } } } return 0; } // internal pread, do a read query with offset on a different descriptor, do not change the position of the current one. ssize_t gridftp_rw_internal_pread(GridFTPFactoryInterface * factory, GridFTP_File_desc* desc, void* buffer, size_t s_buff, off_t offset){ // throw Gfal::CoreException gfal_log(GFAL_VERBOSE_TRACE," -> [GridftpModule::internal_pread]"); std::auto_ptr stream(new GridFTP_stream_state(factory->gfal_globus_ftp_take_handle(gridftp_hostname_from_url(desc->url.c_str())))); globus_result_t res = globus_ftp_client_partial_get( // start req stream->sess->get_ftp_handle(), desc->url.c_str(), stream->sess->get_op_attr_ftp(), NULL, offset, offset + s_buff, globus_basic_client_callback, static_cast(stream.get())); gfal_globus_check_result(gfal_gridftp_scope_internal_pread(), res); ssize_t r_size= gridftp_read_stream(gfal_gridftp_scope_internal_pread(), stream.get(), buffer, s_buff); // read a block static_cast(stream.get())->wait_callback(gfal_gridftp_scope_internal_pread()); gfal_log(GFAL_VERBOSE_TRACE,"[GridftpModule::internal_pread] <-"); return r_size; } // internal pwrite, do a write query with offset on a different descriptor, do not change the position of the current one. ssize_t gridftp_rw_internal_pwrite(GridFTPFactoryInterface * factory, GridFTP_File_desc* desc, const void* buffer, size_t s_buff, off_t offset){ // throw Gfal::CoreException gfal_log(GFAL_VERBOSE_TRACE," -> [GridftpModule::internal_pwrite]"); std::auto_ptr stream(new GridFTP_stream_state(factory->gfal_globus_ftp_take_handle(gridftp_hostname_from_url(desc->url.c_str())))); globus_result_t res = globus_ftp_client_partial_put( // start req stream->sess->get_ftp_handle(), desc->url.c_str(), stream->sess->get_op_attr_ftp(), NULL, offset, offset + s_buff, globus_basic_client_callback, static_cast(stream.get())); gfal_globus_check_result(gfal_gridftp_scope_internal_pwrite(), res); ssize_t r_size= gridftp_write_stream(gfal_gridftp_scope_internal_pwrite(), stream.get(), buffer, s_buff, false); // write block static_cast(stream.get())->wait_callback(gfal_gridftp_scope_internal_pwrite()); gfal_log(GFAL_VERBOSE_TRACE,"[GridftpModule::internal_pwrite] <-"); return r_size; } // gridFTP open is restricted by the protocol : READ or Write but not both // gfal_file_handle GridftpModule::open(const char* url, int flag, mode_t mode) { std::auto_ptr desc(new GridFTP_File_desc( new GridFTP_stream_state(_handle_factory->gfal_globus_ftp_take_handle(gridftp_hostname_from_url(url))), url, flag) ); gfal_log(GFAL_VERBOSE_TRACE," -> [GridftpModule::open] "); globus_result_t res; if(is_read_only(desc->open_flags) // check ENOENT condition for R_ONLY && gridftp_module_file_exist(_handle_factory->get_handle(), desc->stream->sess.get(), url) == false){ char err_buff[2048]; snprintf(err_buff, 2048, " gridftp open error : %s on url %s", strerror(ENOENT), url); throw Gfal::CoreException(gfal_gridftp_scope_open(), err_buff, ENOENT); } if( is_read_only(desc->open_flags) ){ // portability hack for O_RDONLY mask // bet on a full read gfal_log(GFAL_VERBOSE_TRACE," -> initialize FTP GET global operations... "); res = globus_ftp_client_get( // start req desc->stream->sess->get_ftp_handle(), url, desc->stream->sess->get_op_attr_ftp(), NULL, globus_basic_client_callback, static_cast(desc->stream.get())); gfal_globus_check_result(gfal_gridftp_scope_open(), res); }else if( is_write_only(desc->open_flags) ){ gfal_log(GFAL_VERBOSE_TRACE," -> initialize FTP PUT global operations ... "); res = globus_ftp_client_put( // bet on a full write desc->stream->sess->get_ftp_handle(), url, desc->stream->sess->get_op_attr_ftp(), NULL, globus_basic_client_callback, static_cast(desc->stream.get())); gfal_globus_check_result(gfal_gridftp_scope_open(), res); }else{ gfal_log(GFAL_VERBOSE_TRACE," -> no operation initialization, switch to partial read/write mode..."); desc->stream.reset(); } gfal_log(GFAL_VERBOSE_TRACE," <- [GridftpModule::open] "); return gfal_file_handle_ext_new(gridftp_plugin_name(), (gpointer) desc.release(), NULL); } ssize_t GridftpModule::read(gfal_file_handle handle, void* buffer, size_t count){ GridFTP_File_desc* desc = static_cast(handle->fdesc); ssize_t ret; Glib::Mutex::Lock locker(desc->lock); if( desc->is_not_seeked() && is_read_only(desc->open_flags) && desc->stream.get() != NULL){ gfal_log(GFAL_VERBOSE_TRACE," read in the GET main flow ... "); ret = gridftp_read_stream(gfal_gridftp_scope_read(), (desc->stream.get()), buffer, count); }else{ gfal_log(GFAL_VERBOSE_TRACE," read with a pread ... "); ret = gridftp_rw_internal_pread(_handle_factory, desc, buffer, count, desc->current_offset); } desc->current_offset += ret; return ret; } ssize_t GridftpModule::write(gfal_file_handle handle, const void* buffer, size_t count){ GridFTP_File_desc* desc = static_cast(handle->fdesc); ssize_t ret; Glib::Mutex::Lock locker(desc->lock); if( desc->is_not_seeked() && is_write_only(desc->open_flags) && desc->stream.get() != NULL){ gfal_log(GFAL_VERBOSE_TRACE," write in the PUT main flow ... "); ret = gridftp_write_stream(gfal_gridftp_scope_write(), (desc->stream.get()), buffer, count, false); }else{ gfal_log(GFAL_VERBOSE_TRACE," write with a pwrite ... "); ret = gridftp_rw_internal_pwrite(_handle_factory, desc, buffer, count, desc->current_offset); } desc->current_offset += ret; return ret; } ssize_t GridftpModule::pread(gfal_file_handle handle, void* buffer, size_t count, off_t offset){ GridFTP_File_desc* desc = static_cast(handle->fdesc); return gridftp_rw_internal_pread(_handle_factory, desc, buffer, count, offset); } ssize_t GridftpModule::pwrite(gfal_file_handle handle, const void* buffer, size_t count, off_t offset){ GridFTP_File_desc* desc = static_cast(handle->fdesc); return gridftp_rw_internal_pwrite(_handle_factory, desc, buffer, count, offset); } off_t GridftpModule::lseek(gfal_file_handle handle, off_t offset, int whence){ GridFTP_File_desc* desc = static_cast(handle->fdesc); Glib::Mutex::Lock locker(desc->lock); switch(whence){ case SEEK_SET: desc->current_offset = offset; break; case SEEK_CUR: desc->current_offset += offset; break; case SEEK_END: // not supported for now ( no meaning in write-once files ... ) default: std::ostringstream o; throw Gfal::CoreException(gfal_gridftp_scope_lseek(), "Invalid whence", EINVAL); } return desc->current_offset; } int GridftpModule::close(gfal_file_handle handle){ GridFTP_File_desc* desc = static_cast(handle->fdesc); if(desc){ gridftp_rw_commit_put(gfal_gridftp_scope_close(), desc); gridftp_rw_valid_get(gfal_gridftp_scope_close(), desc); gfal_file_handle_delete(handle); delete desc; } return 0; } // open C bind extern "C" gfal_file_handle gfal_gridftp_openG(plugin_handle handle, const char* url, int flag, mode_t mode, GError** err){ g_return_val_err_if_fail( handle != NULL && url != NULL , NULL, err, "[gfal_gridftp_openG][gridftp] einval params"); GError * tmp_err=NULL; gfal_file_handle ret = NULL; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_openG]"); CPP_GERROR_TRY ret = ((static_cast(handle))->open(url,flag, mode)); CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_openG]<-"); G_RETURN_ERR(ret, tmp_err, err); } extern "C" ssize_t gfal_gridftp_readG(plugin_handle ch , gfal_file_handle fd, void* buff, size_t s_buff, GError** err){ g_return_val_err_if_fail( ch != NULL && fd != NULL , -1, err, "[gfal_gridftp_readG][gridftp] einval params"); GError * tmp_err=NULL; int ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_readG]"); CPP_GERROR_TRY ret = (int) ((static_cast(ch))->read(fd, buff, s_buff)); CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_readG]<-"); G_RETURN_ERR(ret, tmp_err, err); } extern "C" ssize_t gfal_gridftp_writeG(plugin_handle ch , gfal_file_handle fd, const void* buff, size_t s_buff, GError** err){ g_return_val_err_if_fail( ch != NULL && fd != NULL , -1, err, "[gfal_gridftp_writeG][gridftp] einval params"); GError * tmp_err=NULL; int ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_writeG]"); CPP_GERROR_TRY ret = (int) ((static_cast(ch))->write(fd, buff, s_buff)); CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_writeG] <-"); G_RETURN_ERR(ret, tmp_err, err); } extern "C" int gfal_gridftp_closeG(plugin_handle ch, gfal_file_handle fd, GError** err){ g_return_val_err_if_fail( ch != NULL && fd != NULL , -1, err, "[gfal_gridftp_closeG][gridftp] einval params"); GError * tmp_err=NULL; int ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_closeG]"); CPP_GERROR_TRY ret = ((static_cast(ch))->close(fd)); CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_closeG]<-"); G_RETURN_ERR(ret, tmp_err, err); } extern "C" off_t gfal_gridftp_lseekG(plugin_handle ch , gfal_file_handle fd, off_t offset, int whence, GError** err){ g_return_val_err_if_fail( ch != NULL && fd != NULL , -1, err, "[gfal_gridftp_lseekG][gridftp] einval params"); GError * tmp_err=NULL; off_t ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_lseekG]"); CPP_GERROR_TRY ret = ((static_cast(ch))->lseek(fd, offset, whence)); CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_lseekG]<-"); G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/common/gridftp/gridftpmodule.cpp0000644000175000017500000000546412164561703021154 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "gridftpmodule.h" //GOnce my_once = G_ONCE_INIT; static Glib::Quark gfal_gridftp_scope_globus_init(){ return Glib::Quark("GridftpModule::init_globus"); } static Glib::Mutex mux_globus_init; // initialization __attribute__((constructor)) void core_init(){ #if (!GLIB_CHECK_VERSION (2, 32, 0)) if (!g_thread_supported()) g_thread_init(NULL); #endif Glib::init(); } // gfunction prototype : gonce static void* init_globus(gpointer data){ Glib::Mutex::Lock l(mux_globus_init); globus_result_t result = GLOBUS_SUCCESS; if( ( result = globus_module_activate(GLOBUS_GASS_COPY_MODULE) ) != GLOBUS_SUCCESS) throw Gfal::CoreException(gfal_gridftp_scope_globus_init(), "Error globus init, globus gass", result); if( ( result = globus_module_activate(GLOBUS_FTP_CLIENT_MODULE)) != GLOBUS_SUCCESS) throw Gfal::CoreException(gfal_gridftp_scope_globus_init(), "Error globus init, globus ftp", result); if( ( result = globus_module_activate(GLOBUS_FTP_CLIENT_DEBUG_PLUGIN_MODULE)) != GLOBUS_SUCCESS) throw Gfal::CoreException(gfal_gridftp_scope_globus_init(), "Error globus init, globus ftp debug", result); return NULL; } static void* deinit_globus(gpointer data){ Glib::Mutex::Lock l(mux_globus_init); globus_result_t result = GLOBUS_SUCCESS; if( ( result = globus_module_deactivate(GLOBUS_GASS_COPY_MODULE) ) != GLOBUS_SUCCESS) throw Gfal::CoreException(gfal_gridftp_scope_globus_init(), "Error globus deinit, globus gass", result); if( ( result = globus_module_deactivate(GLOBUS_FTP_CLIENT_MODULE)) != GLOBUS_SUCCESS) throw Gfal::CoreException(gfal_gridftp_scope_globus_init(), "Error globus deinit, globus ftp", result); if( ( result = globus_module_deactivate(GLOBUS_FTP_CLIENT_DEBUG_PLUGIN_MODULE)) != GLOBUS_SUCCESS) throw Gfal::CoreException(gfal_gridftp_scope_globus_init(), "Error globus deinit, globus ftp debug", result); return NULL; } GridftpModule::GridftpModule(GridFTPFactoryInterface* factory) { init_globus(NULL); _handle_factory = factory; } GridftpModule::~GridftpModule() { delete _handle_factory; deinit_globus(NULL); } gfal2-2.3.0/src/common/gridftp/gridftpinterface.h0000644000175000017500000000444512164561703021272 0ustar ellertellert#pragma once #ifndef GRIDFTPINTERFACE_H #define GRIDFTPINTERFACE_H /* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include typedef globus_gass_copy_handle_t gfal_globus_copy_handle_t; typedef globus_gass_copy_attr_t gfal_globus_copy_attr_t; typedef globus_result_t gfal_globus_result_t; struct Gass_attr_handler{ virtual ~Gass_attr_handler(){}; globus_gass_copy_attr_t attr_gass; globus_ftp_client_operationattr_t operation_attr_ftp_for_gass; }; struct GridFTP_session{ GridFTP_session() : _isDirty(false) {} virtual ~GridFTP_session() {} virtual globus_ftp_client_handle_t* get_ftp_handle()=0; virtual globus_ftp_client_operationattr_t* get_op_attr_ftp()=0; virtual globus_gass_copy_handle_t* get_gass_handle()=0; virtual globus_gass_copy_handleattr_t* get_gass_handle_attr()=0; virtual Gass_attr_handler* generate_gass_copy_attr()=0; virtual void set_nb_stream(const unsigned int nbstream)=0; virtual void set_tcp_buffer_size(const guint64 tcp_buffer_size)=0; virtual void disableReuse(){ _isDirty = true; } bool _isDirty; }; class GridFTPFactoryInterface { public: GridFTPFactoryInterface(){} virtual ~GridFTPFactoryInterface(){} virtual gfal_handle get_handle()=0; virtual GridFTP_session* gfal_globus_ftp_take_handle(const std::string & hostname)=0; virtual void gfal_globus_ftp_release_handle(GridFTP_session* h) =0; protected: }; #endif /* GRIDFTPINTERFACE_H */ gfal2-2.3.0/src/common/gridftp/gridftp_ns_stat.cpp0000644000175000017500000002515112164561703021474 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include "gridftp_namespace.h" #include "gridftpwrapper.h" static Glib::Quark gfal_gridftp_scope_stat(){ return Glib::Quark("Gridftp_stat_module::stat"); } static Glib::Quark gfal_gridftp_scope_access(){ return Glib::Quark("Gridftp_stat_module::access"); } void GridftpModule::stat(const char* path, struct stat * st){ if(path== NULL || st == NULL) throw Glib::Error(gfal_gridftp_scope_stat(), EINVAL, "Invalid arguments path or stat "); gfal_log(GFAL_VERBOSE_TRACE," -> [GridftpModule::stat] "); gfal_globus_stat_t gl_stat; memset(&gl_stat,0, sizeof(gfal_globus_stat_t)); internal_globus_gass_stat(path, &gl_stat); memset(st,0, sizeof(struct stat)); st->st_mode = (mode_t) ((gl_stat.mode != -1)?gl_stat.mode:0); // st->st_mode |= (gl_stat.symlink_target != NULL)?(S_IFLNK):0; st->st_mode |= (gl_stat.type == GLOBUS_GASS_COPY_GLOB_ENTRY_DIR)?(S_IFDIR):(S_IFREG); st->st_size = (off_t) gl_stat.size; st->st_mtime = (time_t) (gl_stat.mdtm != -1)?(gl_stat.mdtm):0; gfal_log(GFAL_VERBOSE_TRACE," <- [GridftpModule::stat] "); } void GridftpModule::access(const char* path, int mode){ if(path== NULL) throw Gfal::CoreException(gfal_gridftp_scope_stat(), "Invalid arguments path or stat ", EINVAL); gfal_log(GFAL_VERBOSE_TRACE," -> [Gridftp_stat_module::access] "); gfal_globus_stat_t gl_stat; memset(&gl_stat,0, sizeof(gfal_globus_stat_t)); internal_globus_gass_stat(path, &gl_stat); if(gl_stat.mode == -1){ // mode not managed by server gfal_log(GFAL_VERBOSE_VERBOSE, "access request is not managed by this server %s , return access authorized by default", path); return; } const mode_t file_mode = (mode_t) gl_stat.mode; if( ((file_mode & ( S_IRUSR | S_IRGRP | S_IROTH)) == FALSE ) && ( mode & R_OK) ) throw Gfal::CoreException(gfal_gridftp_scope_access(), "No read access ", EACCES); if( ((file_mode & ( S_IWUSR | S_IWGRP | S_IWOTH) ) == FALSE) && ( mode & W_OK) ) throw Gfal::CoreException(gfal_gridftp_scope_access(), "No write access ", EACCES); if( ((file_mode & ( S_IXUSR | S_IXGRP | S_IXOTH) ) == FALSE) && ( mode & X_OK) ) throw Gfal::CoreException(gfal_gridftp_scope_access(), "No execute access ", EACCES); gfal_log(GFAL_VERBOSE_TRACE," <- [Gridftp_stat_module::access] "); } // Adapted from http://cvs.globus.org/viewcvs.cgi/gass/copy/source/globus_gass_copy_glob.c static int copy_mdtm_to_timet(char * mdtm_str, int * time_out) { char * p; struct tm tm; struct tm gmt_now_tm; struct tm * gmt_now_tm_p; time_t offset; time_t gmt_now; time_t now; time_t file_time; int rc; p = mdtm_str; memset(&tm, '\0', sizeof(struct tm)); /* 4 digit year */ rc = sscanf(p, "%04d", &tm.tm_year); if (rc != 1) { goto error_exit; } tm.tm_year -= 1900; p += 4; /* 2 digit month [01-12] */ rc = sscanf(p, "%02d", &tm.tm_mon); if (rc != 1) { goto error_exit; } tm.tm_mon--; p += 2; /* 2 digit day/month [01-31] */ rc = sscanf(p, "%02d", &tm.tm_mday); if (rc != 1) { goto error_exit; } p += 2; /* 2 digit hour [00-23] */ rc = sscanf(p, "%02d", &tm.tm_hour); if (rc != 1) { goto error_exit; } p += 2; /* 2 digit minute [00-59] */ rc = sscanf(p, "%02d", &tm.tm_min); if (rc != 1) { goto error_exit; } p += 2; /* 2 digit second [00-60] */ rc = sscanf(p, "%02d", &tm.tm_sec); if (rc != 1) { goto error_exit; } p += 2; file_time = mktime(&tm); if (file_time == (time_t) -1) { goto error_exit; } now = time(&now); if (now == (time_t) -1) { goto error_exit; } memset(&gmt_now_tm, '\0', sizeof(struct tm)); gmt_now_tm_p = globus_libc_gmtime_r(&now, &gmt_now_tm); if (gmt_now_tm_p == NULL) { goto error_exit; } gmt_now = mktime(&gmt_now_tm); if (gmt_now == (time_t) -1) { goto error_exit; } offset = now - gmt_now; *time_out = file_time + offset; return 0; error_exit: return -1; } static globus_result_t parse_mlst_line(char *line, gfal_globus_stat_t *stat_info) { globus_result_t result; int i; char * space; char * filename; char * startline; char * startfact; char * endfact; char * factval; char * unique_id = NULL; char * mode_s = NULL; char * symlink_target = NULL; char * modify_s = NULL; char * size_s = NULL; globus_gass_copy_glob_entry_t type = GLOBUS_GASS_COPY_GLOB_ENTRY_FILE; startline = line; space = strchr(startline, ' '); if (space == GLOBUS_NULL) { result = globus_error_put( globus_error_construct_string(GLOBUS_GASS_COPY_MODULE, GLOBUS_NULL, "[%s]: Bad MLSD response", __func__)); goto error_invalid_mlsd; } *space = '\0'; filename = space + 1; startfact = startline; while (startfact != space) { endfact = strchr(startfact, ';'); if (endfact) { *endfact = '\0'; } else { /* older MLST-draft spec says ending fact can be missing the final semicolon... not a problem to support this, no need to die. (ncftpd does this) result = globus_error_put( globus_error_construct_string( GLOBUS_GASS_COPY_MODULE, GLOBUS_NULL, "[%s]: Bad MLSD response", myname)); goto error_invalid_mlsd; */ endfact = space - 1; } factval = strchr(startfact, '='); if (!factval) { result = globus_error_put( globus_error_construct_string(GLOBUS_GASS_COPY_MODULE, GLOBUS_NULL, "[%s]: Bad MLSD response", __func__)); goto error_invalid_mlsd; } *(factval++) = '\0'; for (i = 0; startfact[i] != '\0'; i++) { startfact[i] = tolower(startfact[i]); } if (strcmp(startfact, "type") == 0) { if (strcasecmp(factval, "dir") == 0) { type = GLOBUS_GASS_COPY_GLOB_ENTRY_DIR; } else if (strcasecmp(factval, "file") == 0) { type = GLOBUS_GASS_COPY_GLOB_ENTRY_FILE; } else { type = GLOBUS_GASS_COPY_GLOB_ENTRY_OTHER; } } if (strcmp(startfact, "unique") == 0) { unique_id = factval; } if (strcmp(startfact, "unix.mode") == 0) { mode_s = factval; } if (strcmp(startfact, "modify") == 0) { modify_s = factval; } if (strcmp(startfact, "size") == 0) { size_s = factval; } if (strcmp(startfact, "unix.slink") == 0) { symlink_target = factval; } startfact = endfact + 1; } stat_info->type = type; stat_info->unique_id = globus_libc_strdup(unique_id); stat_info->symlink_target = globus_libc_strdup(symlink_target); stat_info->mode = -1; stat_info->size = -1; stat_info->mdtm = -1; if (mode_s) { stat_info->mode = strtoul(mode_s, NULL, 0); } if (size_s) { off_t size; int rc; rc = sscanf(size_s, "%ld", &size); if (rc == 1) { stat_info->size = size; } } if (modify_s) { int mdtm; if (copy_mdtm_to_timet(modify_s, &mdtm) == GLOBUS_SUCCESS) { stat_info->mdtm = mdtm; } } return GLOBUS_SUCCESS; error_invalid_mlsd: return result; } void GridftpModule::internal_globus_gass_stat(const char* path, gfal_globus_stat_t * gl_stat){ gfal_log(GFAL_VERBOSE_TRACE," -> [Gridftp_stat_module::globus_gass_stat] "); std::auto_ptr sess(_handle_factory->gfal_globus_ftp_take_handle(gridftp_hostname_from_url(path))); std::auto_ptr gass_attr_src( sess->generate_gass_copy_attr()); globus_byte_t *buffer = NULL; globus_size_t buflen = 0; std::auto_ptr req(new GridFTP_Request_state(sess.get(), false)); globus_result_t res = globus_ftp_client_mlst(sess->get_ftp_handle(), path, sess->get_op_attr_ftp(), &buffer, &buflen, globus_basic_client_callback, req.get()); gfal_globus_check_result(gfal_gridftp_scope_stat(), res); req->wait_callback(gfal_gridftp_scope_stat()); gfal_log(GFAL_VERBOSE_TRACE, " <- [Gridftp_stat_module::internal_globus_gass_stat] Got '%s'", buffer); parse_mlst_line((char*)buffer, gl_stat); globus_free(buffer); gfal_log(GFAL_VERBOSE_TRACE, " <- [Gridftp_stat_module::internal_globus_gass_stat] "); } extern "C" int gfal_gridftp_statG(plugin_handle handle, const char* name, struct stat* buff, GError ** err){ g_return_val_err_if_fail( handle != NULL && name != NULL && buff != NULL , -1, err, "[gfal_gridftp_statG][gridftp] einval params"); GError * tmp_err=NULL; int ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_statG]"); CPP_GERROR_TRY (static_cast(handle))->stat(name, buff); ret = 0; CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_statG]<-"); G_RETURN_ERR(ret, tmp_err, err); } extern "C" int gfal_gridftp_accessG(plugin_handle handle, const char* name, int mode, GError** err){ g_return_val_err_if_fail( handle != NULL && name != NULL , -1, err, "[gfal_gridftp_statG][gridftp] einval params"); GError * tmp_err=NULL; int ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_accessG]"); CPP_GERROR_TRY (static_cast(handle))->access(name, mode); ret = 0; CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_accessG]<-"); G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/common/gridftp/gridftp_ns_unlink.cpp0000644000175000017500000000441312164561703022017 0ustar ellertellert/* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gridftpmodule.h" #include "gridftp_namespace.h" static Glib::Quark gfal_gridftp_scope_unlink(){ return Glib::Quark("GridftpModule::unlink"); } void gridftp_unlink_internal(gfal2_context_t context, GridFTP_session* sess, const char * path, bool own_session){ gfal_log(GFAL_VERBOSE_TRACE," -> [GridftpModule::unlink] "); std::auto_ptr req( new GridFTP_Request_state(sess, own_session)); // get connexion session GridFTPOperationCanceler canceler(context, req.get()); req->start(); globus_result_t res = globus_ftp_client_delete( req->sess->get_ftp_handle(), path, NULL, globus_basic_client_callback, req.get()); gfal_globus_check_result(gfal_gridftp_scope_unlink(), res); // wait for answer req->wait_callback(gfal_gridftp_scope_unlink()); gfal_log(GFAL_VERBOSE_TRACE," <- [GridftpModule::unlink] "); } void GridftpModule::unlink(const char* path) { if(path== NULL ) throw Glib::Error(gfal_gridftp_scope_unlink(), EINVAL, "Invalid arguments path"); gridftp_unlink_internal(_handle_factory->get_handle(), this->_handle_factory->gfal_globus_ftp_take_handle(gridftp_hostname_from_url(path)), path, true); } extern "C" int gfal_gridftp_unlinkG(plugin_handle handle, const char* url , GError** err){ g_return_val_err_if_fail( handle != NULL && url != NULL , -1, err, "[gfal_gridftp_unlinkG][gridftp] einval params"); GError * tmp_err=NULL; int ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_unlinkG]"); CPP_GERROR_TRY (static_cast(handle))->unlink(url); ret = 0; CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_unlinkG] <-"); G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/common/gridftp/gridftp_plugin.cpp0000644000175000017500000001060212164561703021312 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gridftpmodule.h" #include "gridftp_namespace.h" #include "gridftp_io.h" #include "gridftp_plugin.h" extern "C"{ static bool is_gridftp_uri(const char* src) { static const char gridftp_prefix[] = "gsiftp://"; return (strncmp(src, gridftp_prefix, sizeof(gridftp_prefix) - 1) == 0); } gboolean gridftp_check_url_transfer(plugin_handle handle, const char* src, const char* dst, gfal_url2_check type) { g_return_val_if_fail(handle != NULL,FALSE); gboolean res = FALSE; if( src != NULL && dst != NULL){ if (type == GFAL_FILE_COPY && is_gridftp_uri(src) && is_gridftp_uri(dst)) res = TRUE; } return res; } int gridftp_check_url(plugin_handle handle, const char* src, plugin_mode check, GError ** err) { gboolean res = FALSE; if(is_gridftp_uri(src)) { switch(check){ case GFAL_PLUGIN_ACCESS: case GFAL_PLUGIN_STAT: case GFAL_PLUGIN_LSTAT: case GFAL_PLUGIN_MKDIR: case GFAL_PLUGIN_CHMOD: case GFAL_PLUGIN_RMDIR: case GFAL_PLUGIN_OPENDIR: case GFAL_PLUGIN_UNLINK: case GFAL_PLUGIN_OPEN: case GFAL_PLUGIN_CHECKSUM: case GFAL_PLUGIN_RENAME: res = TRUE; break; default: break; } } return res; } plugin_handle gridftp_plugin_load(gfal_handle handle, GError ** err) { GError * tmp_err=NULL; plugin_handle h = NULL; CPP_GERROR_TRY gfal_log(GFAL_VERBOSE_TRACE, " -> [gridftp_plugin] try to load .."); h = static_cast( new GridftpModule( new GridFTPFactory(handle) ) ); gfal_log(GFAL_VERBOSE_TRACE, " -> [gridftp_plugin] loaded .."); CPP_GERROR_CATCH(&tmp_err); G_RETURN_ERR(h, tmp_err, err); } void gridftp_plugin_unload(plugin_handle handle) { if(handle){ try{ delete (static_cast(handle)); }catch(...){ gfal_log(GFAL_VERBOSE_NORMAL, " bug found plugin gridFTP throws error while loading"); } } } const char *gridftp_plugin_name() { return "plugin_gridftp"; } /** * Map function for the gridftp interface * this function provide the generic PLUGIN interface for the gridftp plugin. * lfc_initG do : liblfc shared library load, sym resolve, endpoint check, and plugin function map. * * */ gfal_plugin_interface gfal_plugin_init(gfal_handle handle, GError** err){ GError* tmp_err=NULL; gfal_plugin_interface ret; memset(&ret, 0, sizeof(gfal_plugin_interface)); plugin_handle r = gridftp_plugin_load(handle, &tmp_err); ret.plugin_data = r; ret.check_plugin_url = &gridftp_check_url; ret.plugin_delete = &gridftp_plugin_unload; ret.getName = &gridftp_plugin_name; ret.accessG = &gfal_gridftp_accessG; ret.statG = & gfal_gridftp_statG; ret.lstatG = &gfal_gridftp_statG; ret.unlinkG = &gfal_gridftp_unlinkG; ret.mkdirpG = &gfal_gridftp_mkdirG; ret.chmodG = &gfal_gridftp_chmodG; ret.rmdirG = &gfal_gridftp_rmdirG; ret.opendirG = &gfal_gridftp_opendirG; ret.readdirG = &gfal_gridftp_readdirG; ret.closedirG = &gfal_gridftp_closedirG; ret.openG = &gfal_gridftp_openG; ret.closeG = &gfal_gridftp_closeG; ret.readG = &gfal_gridftp_readG; ret.writeG = &gfal_gridftp_writeG; ret.lseekG = &gfal_gridftp_lseekG; ret.checksum_calcG = &gfal_gridftp_checksumG; ret.copy_file = &gridftp_plugin_filecopy; ret.check_plugin_url_transfer = &gridftp_check_url_transfer; ret.renameG = &gfal_gridftp_renameG; G_RETURN_ERR(ret, tmp_err, err); } /* --> desactivated temporary -> responsible of segfault with globus 5.2 thread problem __attribute__((destructor)) static void gridftp_destructor(){ // try to unload globus globus_module_deactivate_all(); }*/ } gfal2-2.3.0/src/common/gridftp/gridftpmodule.h0000644000175000017500000000673112164561703020617 0ustar ellertellert#pragma once #ifndef GRIDFTOMODULE_H #define GRIDFTOMODULE_H /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include "gridftpinterface.h" #include "gridftpwrapper.h" #include "gridftp_filecopy.h" #include "gridftp_namespace.h" typedef globus_gass_copy_glob_stat_t gfal_globus_stat_t; class GridftpModule { public: GridftpModule(GridFTPFactoryInterface *); virtual ~GridftpModule(); // Execute an access call, map on stat due to protocol restrictions virtual void access(const char* path, int mode); // Execute a chmod query on path virtual void chmod(const char* path, mode_t mode); // Execute a open query on path virtual gfal_file_handle open(const char* url, int flag, mode_t mode); // Execute a read/pread query virtual ssize_t read(gfal_file_handle handle, void* buffer, size_t count); virtual ssize_t pread(gfal_file_handle handle, void* buffer, size_t count, off_t offset); // Execute a read/pread query virtual ssize_t write(gfal_file_handle handle, const void* buffer, size_t count); virtual ssize_t pwrite(gfal_file_handle handle, const void* buffer, size_t count, off_t offset); // seek a file virtual off_t lseek(gfal_file_handle handle, off_t offset, int whence); // close a file virtual int close(gfal_file_handle handle); //Execute a stat call on a gridftp URL virtual void stat(const char* path, struct stat * st); // remove a file entry virtual void unlink(const char* path); // Execute a mkdir query on path virtual void mkdir(const char* path, mode_t mode); virtual void checksum(const char* url, const char* check_type, char * checksum_buffer, size_t buffer_length, off_t start_offset, size_t data_length); // Rename virtual void rename(const char* src, const char* dst); // rmdir query on path virtual void rmdir(const char* path); // opendir query on path virtual gfal_file_handle opendir(const char* path); // readdir a dir descriptor virtual struct dirent* readdir(gfal_file_handle dh); virtual int closedir(gfal_file_handle fh); void autoCleanFileCopy(gfalt_params_t params, GError* checked_error, const char* dst); // Execute a file transfer operation for gridftp URLs virtual void filecopy(gfalt_params_t params, const char* src, const char* dst); void internal_globus_gass_stat(const char* path, gfal_globus_stat_t * gl_stat); private: GridFTPFactoryInterface * _handle_factory; }; void core_init(); #endif /* GRIDFTOMODULE_H */ gfal2-2.3.0/src/common/gridftp/gridftp_filecopy.h0000644000175000017500000000175512164561703021304 0ustar ellertellert#pragma once #ifndef GRIFTP_IFCE_FILECOPY_H #define GRIFTP_IFCE_FILECOPY_H /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gridftpmodule.h" #include "gridftpwrapper.h" extern "C" int gridftp_plugin_filecopy(plugin_handle handle, gfal2_context_t context, gfalt_params_t params, const char* src, const char* dst, GError ** err); #endif /* GRIFTP_IFCE_FILECOPY_H */ gfal2-2.3.0/src/common/gridftp/gridftp_namespace.h0000644000175000017500000000424712164561703021425 0ustar ellertellert#pragma once #ifndef GRIDFTP_NAMESPACE_H #define GRIDFTP_NAMESPACE_H /* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gridftpmodule.h" #ifdef __cplusplus extern "C" { #endif bool gridftp_module_file_exist(gfal2_context_t context, GridFTP_session* sess, const char * url); int gfal_gridftp_statG(plugin_handle handle, const char* name, struct stat* buff, GError ** err); int gfal_gridftp_accessG(plugin_handle handle, const char* name, int mode, GError** err); int gfal_gridftp_chmodG(plugin_handle handle, const char* path, mode_t mode, GError** err); int gfal_gridftp_mkdirG(plugin_handle handle, const char* path, mode_t mode, gboolean pflag, GError** err); int gfal_gridftp_rmdirG(plugin_handle handle, const char* url, GError** err); void gridftp_unlink_internal(gfal2_context_t context, GridFTP_session* sess, const char * path, bool own_session = true); int gfal_gridftp_unlinkG(plugin_handle handle, const char* url, GError** err); int gfal_gridftp_renameG(plugin_handle plugin_data, const char * oldurl, const char * urlnew, GError** err); gfal_file_handle gfal_gridftp_opendirG(plugin_handle handle, const char* path, GError** err); struct dirent* gfal_gridftp_readdirG(plugin_handle handle, gfal_file_handle fh, GError** err); int gfal_gridftp_closedirG(plugin_handle handle, gfal_file_handle fh, GError** err); int gfal_gridftp_checksumG(plugin_handle handle, const char* url, const char* check_type, char * checksum_buffer, size_t buffer_length, off_t start_offset, size_t data_length, GError ** err); #ifdef __cplusplus } #endif #endif /* GRIDFTP_NAMESPACE_H */ gfal2-2.3.0/src/common/gridftp/gridftp_ns_checksum.cpp0000644000175000017500000000702212164561703022320 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gridftp_namespace.h" #include static Glib::Quark gfal_gridftp_scope_checksum(){ return Glib::Quark("Gridftp_checksum_module::checksum"); } const char * gridftp_checksum_calc_timeout= "CHECKSUM_CALC_TIMEOUT"; extern "C" int gfal_gridftp_checksumG(plugin_handle handle, const char* url, const char* check_type, char * checksum_buffer, size_t buffer_length, off_t start_offset, size_t data_length, GError ** err){ g_return_val_err_if_fail( handle != NULL && url != NULL , -1, err, "[gfal_gridftp_checksumG][gridftp] einval params"); GError * tmp_err=NULL; int ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_checksumG]"); CPP_GERROR_TRY (static_cast(handle))->checksum(url, check_type, checksum_buffer, buffer_length, start_offset, data_length); ret = 0; CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_checksumG] <-"); G_RETURN_ERR(ret, tmp_err, err); } void GridftpModule::checksum(const char* url, const char* check_type, char * checksum_buffer, size_t buffer_length, off_t start_offset, size_t data_length){ gfal_log(GFAL_VERBOSE_TRACE," -> [GridftpModule::checksum] "); gfal_log(GFAL_VERBOSE_DEBUG," Checksum calculation %s for url %s", check_type, url); std::auto_ptr req( new GridFTP_Request_state(_handle_factory->gfal_globus_ftp_take_handle(gridftp_hostname_from_url(url)), GRIDFTP_REQUEST_FTP)); if(buffer_length < 16) throw Gfal::CoreException(gfal_gridftp_scope_checksum(),"buffer length for checksum calculation is not enought",ENOBUFS); req->start(); GridFTPOperationCanceler canceler(_handle_factory->get_handle(), req.get()); globus_result_t res = globus_ftp_client_cksm( req->sess->get_ftp_handle(), url, NULL, checksum_buffer, start_offset, ((data_length)?(data_length):(-1)), check_type, globus_basic_client_callback, req.get()); gfal_globus_check_result(gfal_gridftp_scope_checksum(), res); // wait for answer with a timeout const time_t timeout = gfal2_get_opt_integer_with_default(_handle_factory->get_handle(), GRIDFTP_CONFIG_GROUP, gridftp_checksum_calc_timeout, 1800); req->wait_callback(gfal_gridftp_scope_checksum(), timeout); gfal_log(GFAL_VERBOSE_TRACE," <- [GridftpModule::checksum] "); } gfal2-2.3.0/src/common/gridftp/gridftpwrapper.h0000644000175000017500000002356012164561703021011 0ustar ellertellert#ifndef GRIDFTPWRAPPER_H #define GRIDFTPWRAPPER_H /* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include "gridftpmodule.h" #include "gridftpinterface.h" #include #define GRIDFTP_CONFIG_GROUP "GRIDFTP PLUGIN" enum Gridftp_request_status{ GRIDFTP_REQUEST_NOT_LAUNCHED, GRIDFTP_REQUEST_RUNNING, GRIDFTP_REQUEST_FINISHED, }; enum GridFtp_request_type{ GRIDFTP_REQUEST_GASS, GRIDFTP_REQUEST_FTP }; struct Uri { public: std::string QueryString, Path, Protocol, Host, Port; static Uri Parse(const std::string &uri) { Uri result; typedef std::string::const_iterator iterator_t; if (uri.length() == 0) return result; iterator_t uriEnd = uri.end(); // get query start iterator_t queryStart = std::find(uri.begin(), uriEnd, '?'); // protocol iterator_t protocolStart = uri.begin(); iterator_t protocolEnd = std::find(protocolStart, uriEnd, ':'); //"://"); if (protocolEnd != uriEnd) { std::string prot = &*(protocolEnd); if ((prot.length() > 3) && (prot.substr(0, 3) == "://")) { result.Protocol = std::string(protocolStart, protocolEnd); protocolEnd += 3; // :// } else protocolEnd = uri.begin(); // no protocol } else protocolEnd = uri.begin(); // no protocol // host iterator_t hostStart = protocolEnd; iterator_t pathStart = std::find(hostStart, uriEnd, '/'); // get pathStart iterator_t hostEnd = std::find(protocolEnd, (pathStart != uriEnd) ? pathStart : queryStart, ':'); // check for port result.Host = std::string(hostStart, hostEnd); // port if ((hostEnd != uriEnd) && ((&*(hostEnd))[0] == ':')) // we have a port { hostEnd++; iterator_t portEnd = (pathStart != uriEnd) ? pathStart : queryStart; result.Port = std::string(hostEnd, portEnd); } // path if (pathStart != uriEnd) result.Path = std::string(pathStart, queryStart); // query if (queryStart != uriEnd) result.QueryString = std::string(queryStart, uri.end()); return result; } // Parse }; // uri struct GridFTP_Request_state{ protected: Glib::Mutex internal_lock; int errcode; std::string error; Gridftp_request_status req_status; inline void init_timeout(struct timespec * time_offset){ if( time_offset && timespec_isset(time_offset)){ end_time.assign_current_time(); end_time.add_seconds(time_offset->tv_sec); end_time.add_microseconds(time_offset->tv_nsec/1000); }else{ end_time = Glib::TimeVal(0,0); } } inline void set_end_time(struct timespec * my_end_time){ if(my_end_time && timespec_isset(my_end_time)){ end_time = Glib::TimeVal(my_end_time->tv_sec, my_end_time->tv_nsec/1000); }else{ end_time = Glib::TimeVal(0,0); } } void poll_callback(const Glib::Quark & scope); public: GridFTP_Request_state(GridFTP_session * s, bool own_session=true, GridFtp_request_type request_type = GRIDFTP_REQUEST_FTP); virtual ~GridFTP_Request_state(); // cancel token gfal_cancel_token_t cancel_token; // ftp session std::auto_ptr sess; // request type GridFtp_request_type request_type; // params Glib::TimeVal end_time; // timeout trigger -> 0 if not enabled, usage of CLOCK_MONOTONIC is required. // enable/disable destroy when out of scope bool own_session; // bool canceling bool canceling; // mutex for state checking Glib::RWLock mux_req_state; Glib::Mutex mux_callback_lock; Glib::Cond signal_callback_main; inline void start(){ this->req_status = GRIDFTP_REQUEST_RUNNING; } inline int get_error_code(void) { Glib::Mutex::Lock locker(internal_lock); return errcode; } inline void set_error_code(int code) { Glib::Mutex::Lock locker(internal_lock); errcode = code; } inline std::string get_error(void) { Glib::Mutex::Lock locker(internal_lock); return error; } inline void set_error(const std::string & errstr) { Glib::Mutex::Lock locker(internal_lock); error = errstr; } inline Gridftp_request_status get_req_status(void) { Glib::Mutex::Lock locker(internal_lock); return req_status; } inline void set_req_status(const Gridftp_request_status & st) { Glib::Mutex::Lock locker(internal_lock); req_status = st; } void wait_callback(const Glib::Quark & scope, time_t timeout = 300); void err_report(const Glib::Quark &scope); void cancel_operation(const Glib::Quark &scope, const std::string & msg = ""); int cancel_operation_async(const Glib::Quark &scope, const std::string & msg = ""); }; struct GridFTP_stream_state : public GridFTP_Request_state{ protected: off_t offset; // file offset in the stream bool eof; // end of file reached Gridftp_request_status stream_status; Glib::Mutex mux_stream_callback; Glib::Cond cond_stream_callback; public: // ownership lock Glib::Mutex lock; GridFTP_stream_state(GridFTP_session * s) : GridFTP_Request_state(s) { offset =0; eof = false; stream_status = GRIDFTP_REQUEST_NOT_LAUNCHED; } virtual ~GridFTP_stream_state(); bool finished(){ Glib::Mutex::Lock locker(internal_lock); return (stream_status==GRIDFTP_REQUEST_FINISHED); } inline bool is_eof(void) { Glib::Mutex::Lock locker(internal_lock); return eof; } inline void set_eof(bool end) { Glib::Mutex::Lock locker(internal_lock); eof = end; } inline off_t get_offset(void) { Glib::Mutex::Lock locker(internal_lock); return offset; } void set_offset(off_t off) { Glib::Mutex::Lock locker(internal_lock); offset = off; } void increase_offset(off_t diff) { Glib::Mutex::Lock locker(internal_lock); offset += diff; } Gridftp_request_status get_stream_status(void) { Glib::Mutex::Lock locker(internal_lock); return stream_status; } void set_stream_status(const Gridftp_request_status & st) { Glib::Mutex::Lock locker(internal_lock); stream_status = st; } void poll_callback_stream(const Glib::Quark & scope); void wait_callback_stream(const Glib::Quark & scope); friend void gfal_stream_callback_prototype(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, const char* err_msg_offset); }; class GridFTPOperationCanceler{ public: GridFTPOperationCanceler(gfal2_context_t context, GridFTP_Request_state* state); ~GridFTPOperationCanceler(); private: GridFTP_Request_state* _state; gfal_cancel_token_t _cancel_token; gfal2_context_t _context; }; class GridFTPFactory : public GridFTPFactoryInterface { public: GridFTPFactory(gfal_handle handle ); virtual ~GridFTPFactory(); /** * provide session handle for most of the operations * * */ virtual GridFTP_session* gfal_globus_ftp_take_handle(const std::string & hostname); /** * destruct an existing session handle, close the connection and desallocate memory * * */ virtual void gfal_globus_ftp_release_handle(GridFTP_session* h) ; private: gfal_handle _handle; virtual gfal_handle get_handle(); // session re-use management bool session_reuse; unsigned int size_cache; // session cache std::multimap sess_cache; Glib::Mutex mux_cache; void recycle_session(GridFTP_session* sess); void clear_cache(); GridFTP_session* get_recycled_handle(const std::string & hostname); GridFTP_session* get_new_handle(const std::string & hostname); void gfal_globus_ftp_release_handle_internal(GridFTP_session* sess); void configure_gridftp_handle_attr(globus_ftp_client_handleattr_t * attrs); friend struct GridFTP_session_implem; }; void globus_basic_client_callback (void * user_arg, globus_ftp_client_handle_t * handle, globus_object_t * error); void globus_gass_basic_client_callback( void * callback_arg, globus_gass_copy_handle_t * handle, globus_object_t * error); // do atomic read operation from globus async call ssize_t gridftp_read_stream(const Glib::Quark & scope, GridFTP_stream_state* stream, void* buffer, size_t s_read); // do atomic write operation from globus async call ssize_t gridftp_write_stream(const Glib::Quark & scope, GridFTP_stream_state* stream, const void* buffer, size_t s_write, bool eof); // return 0 if no error, or return errno and set the error string properly // error allocation is dynamic int gfal_globus_error_convert(globus_object_t * error, char ** str_error); // throw Glib::Error if error associated with this result void gfal_globus_check_result(const Glib::Quark & scope, gfal_globus_result_t res); // throw Glib::Error if error is present void gfal_globus_check_error(const Glib::Quark & scope, globus_object_t * error); std::string gridftp_hostname_from_url(const char * url); #endif /* GRIDFTPWRAPPER_H */ gfal2-2.3.0/src/common/gridftp/gridftp_ns_rename.cpp0000644000175000017500000000437512164561703021775 0ustar ellertellert/* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gridftp_namespace.h" #include "gridftpwrapper.h" static const Glib::Quark gfal_gridftp_scope_rename("GridftpModule::rmdir"); void GridftpModule::rename(const char* src, const char* dst) { if (src == NULL || dst == NULL) throw Glib::Error(gfal_gridftp_scope_rename, EINVAL, "Invalid source and/or destination"); gfal_log(GFAL_VERBOSE_TRACE," -> [GridftpModule::rename] "); std::auto_ptr req( new GridFTP_Request_state( _handle_factory->gfal_globus_ftp_take_handle( gridftp_hostname_from_url(src)))); // get connexion session req->start(); globus_result_t res = globus_ftp_client_move( req->sess->get_ftp_handle(), src, dst, NULL, globus_basic_client_callback, req.get()); gfal_globus_check_result(gfal_gridftp_scope_rename, res); // wait for answer req->wait_callback(gfal_gridftp_scope_rename); gfal_log(GFAL_VERBOSE_TRACE," <- [GridftpModule::rename] "); } int gfal_gridftp_renameG(plugin_handle handle, const char * oldurl, const char * newurl, GError** err) { g_return_val_err_if_fail(handle != NULL && oldurl != NULL && newurl != NULL, -1, err, "[gfal_gridftp_rename][gridftp] einval params"); GError * tmp_err=NULL; int ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_rename]"); CPP_GERROR_TRY (static_cast(handle))->rename(oldurl, newurl); ret = 0; CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_rename]<-"); G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/common/gridftp/gridftp_ns_rmdir.cpp0000644000175000017500000000417212164561703021636 0ustar ellertellert/* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gridftp_namespace.h" static Glib::Quark gfal_gridftp_scope_rmdir(){ return Glib::Quark("GridftpModule::rmdir"); } void GridftpModule::rmdir(const char* path) { if(path== NULL ) throw Glib::Error(gfal_gridftp_scope_rmdir(), EINVAL, "Invalid arguments path"); gfal_log(GFAL_VERBOSE_TRACE," -> [GridftpModule::rmdir] "); try{ std::auto_ptr req( new GridFTP_Request_state(_handle_factory->gfal_globus_ftp_take_handle(gridftp_hostname_from_url(path)))); // get connexion session req->start(); globus_result_t res = globus_ftp_client_rmdir( req->sess->get_ftp_handle(), path, NULL, globus_basic_client_callback, req.get()); gfal_globus_check_result(gfal_gridftp_scope_rmdir(), res); // wait for answer req->wait_callback(gfal_gridftp_scope_rmdir()); }catch(Glib::Error & e){ if(e.code() == EEXIST) // false ENOTEMPTY errno, do conversion throw Glib::Error(e.domain(), ENOTEMPTY, e.what()); throw e; } gfal_log(GFAL_VERBOSE_TRACE," <- [GridftpModule::rmdir] "); } extern "C" int gfal_gridftp_rmdirG(plugin_handle handle, const char* url , GError** err){ g_return_val_err_if_fail( handle != NULL && url != NULL , -1, err, "[gfal_gridftp_rmdir][gridftp] einval params"); GError * tmp_err=NULL; int ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_gridftp_rmdir]"); CPP_GERROR_TRY (static_cast(handle))->rmdir(url); ret = 0; CPP_GERROR_CATCH(&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, " [gfal_gridftp_rmdir]<-"); G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/common/gridftp/gridftp_plugin.h0000644000175000017500000000202212164561703020754 0ustar ellertellert#pragma once #ifndef GRIDFTP_PLUGIN_H #define GRIDFTP_PLUGIN_H /* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifdef __cplusplus extern "C" { #endif const char *gridftp_plugin_name(); plugin_handle gridftp_plugin_load(gfal_handle handle, GError ** err); void gridftp_plugin_unload(plugin_handle handle); gboolean gridftp_check_url_transfer(plugin_handle handle, const char* src, const char* dst, gfal_url2_check type); #ifdef __cplusplus } #endif #endif /* GRIDFTP_PLUGIN_H */ gfal2-2.3.0/src/common/gridftp/gridftpwrapper.cpp0000644000175000017500000006253212164561703021346 0ustar ellertellert/* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include "gridftpwrapper.h" const char* gridftp_version_config = "GRIDFTP_V2"; const char* gridftp_session_reuse_config= "SESSION_REUSE"; const char* gridftp_dcau_config= "DCAU"; const char* gridftp_ipv6_config= "IPV6"; const char* gridftp_delay_passv_config = "DELAY_PASSV"; struct RwStatus{ off_t init; off_t finish; bool ops_state; }; static Glib::Quark gfal_gridftp_scope_req_state(){ return Glib::Quark("GridftpModule::RequestState"); } struct Gass_attr_handler_implem : public Gass_attr_handler{ Gass_attr_handler_implem(globus_ftp_client_operationattr_t* ftp_operation_attr){ // initialize gass copy attr globus_result_t res = globus_gass_copy_attr_init(&(attr_gass)); gfal_globus_check_result("GridFTPFactory::gfal_globus_ftp_take_handle", res); globus_ftp_client_operationattr_copy(&(operation_attr_ftp_for_gass), ftp_operation_attr); res = globus_gass_copy_attr_set_ftp (&(attr_gass), &operation_attr_ftp_for_gass); gfal_globus_check_result("GridFTPFactory::globus_gass_copy_handleattr_set_ftp_attr", res); } virtual ~Gass_attr_handler_implem(){ // initialize gass copy attr globus_ftp_client_operationattr_destroy(&(operation_attr_ftp_for_gass)); } }; struct GridFTP_session_implem : public GridFTP_session{ GridFTP_session_implem(GridFTPFactory* f, const std::string & thostname) : factory(f), hostname(thostname){ init(); } GridFTP_session_implem( GridFTP_session_implem *src) : factory(src->factory), hostname(src->hostname), _sess(src->_sess) { } virtual ~GridFTP_session_implem(){ if(_sess != NULL){ clean(); if(_isDirty) this->purge(); else factory->gfal_globus_ftp_release_handle_internal(this); } } void init(){ _sess = new Session_handler(); globus_result_t res; // init debug plugin res= globus_ftp_client_debug_plugin_init(&(_sess->debug_ftp_plugin), stderr, "gridftp debug :"); gfal_globus_check_result("GridFTPFactory::gfal_globus_ftp_take_ops_attr", res); // init operation attr res= globus_ftp_client_operationattr_init(&(_sess->operation_attr_ftp)); gfal_globus_check_result("GridFTPFactory::gfal_globus_ftp_take_ops_attr", res); // initialize ftp attributes res = globus_ftp_client_handleattr_init(&(_sess->attr_handle)); gfal_globus_check_result("GridFTPFactory::gfal_globus_ftp_take_handle_attr", res); configure_gridftp_handle_attr(); // create gass handle attribute res = globus_gass_copy_handleattr_init(&(_sess->gass_handle_attr)); gfal_globus_check_result("GridFTPFactory::gfal_globus_ftp_take_handle", res); // associate ftp attributes to gass attributes res = globus_gass_copy_handleattr_set_ftp_attr (&(_sess->gass_handle_attr), &(_sess->attr_handle)); gfal_globus_check_result("GridFTPFactory::gfal_globus_ftp_take_handle", res); // initialize gass handle res = globus_gass_copy_handle_init (&(_sess->gass_handle), &(_sess->gass_handle_attr)); gfal_globus_check_result("GridFTPFactory::gfal_globus_ftp_take_handle", res); configure_default_stream_attributes(); apply_default_stream_attribute(); } void configure_gridftp_handle_attr(){ globus_ftp_client_handleattr_set_cache_all(&(_sess->attr_handle), GLOBUS_TRUE); // enable session re-use if(gfal_get_verbose() & GFAL_VERBOSE_TRACE_PLUGIN){ globus_ftp_client_handleattr_add_plugin(&(_sess->attr_handle), &(_sess->debug_ftp_plugin)); } } void configure_default_stream_attributes(){ _sess->parall.fixed.size = 1; _sess->parall.mode = GLOBUS_FTP_CONTROL_PARALLELISM_NONE; _sess->mode = GLOBUS_FTP_CONTROL_MODE_NONE; } void apply_default_stream_attribute(){ globus_ftp_client_operationattr_set_mode(&(_sess->operation_attr_ftp), _sess->mode); globus_ftp_client_operationattr_set_parallelism(&(_sess->operation_attr_ftp),&(_sess->parall)); } void apply_default_tcp_buffer_attributes(){ globus_ftp_client_operationattr_set_tcp_buffer(&(_sess->operation_attr_ftp), &(_sess->tcp_buffer_size)); } void set_gridftpv2(bool v2){ globus_ftp_client_handleattr_set_gridftp2(&(_sess->attr_handle), v2); // define gridftp 2 } void set_ipv6(bool enable){ globus_ftp_client_operationattr_set_allow_ipv6(&(_sess->operation_attr_ftp), (globus_bool_t) enable); } void set_delayed_pass(bool enable){ globus_ftp_client_operationattr_set_delayed_pasv(&(_sess->operation_attr_ftp), (globus_bool_t) (enable)?GLOBUS_TRUE:GLOBUS_FALSE); } void set_dcau(const globus_ftp_control_dcau_t & _dcau ){ _sess->dcau.mode = _dcau.mode; globus_ftp_client_operationattr_set_dcau(&(_sess->operation_attr_ftp), &(_sess->dcau)); } void set_nb_stream(const unsigned int nbstream){ if(nbstream == 0){ configure_default_stream_attributes(); }else{ _sess->parall.fixed.size = nbstream; _sess->parall.mode = GLOBUS_FTP_CONTROL_PARALLELISM_FIXED; _sess->mode = GLOBUS_FTP_CONTROL_MODE_EXTENDED_BLOCK; } apply_default_stream_attribute(); } virtual void set_tcp_buffer_size(const guint64 tcp_buffer_size){ if(tcp_buffer_size == 0){ _sess->tcp_buffer_size.mode = GLOBUS_FTP_CONTROL_TCPBUFFER_DEFAULT; }else{ _sess->tcp_buffer_size.mode = GLOBUS_FTP_CONTROL_TCPBUFFER_FIXED; _sess->tcp_buffer_size.fixed.size = tcp_buffer_size; } } virtual globus_ftp_client_handle_t* get_ftp_handle(){ globus_result_t res = globus_gass_copy_get_ftp_handle(&(_sess->gass_handle), &(_sess->handle_ftp)); gfal_globus_check_result("GridFTPFactory::GridFTP_session_implem", res); return &(_sess->handle_ftp); } virtual globus_gass_copy_handle_t* get_gass_handle(){ return &(_sess->gass_handle); } virtual globus_ftp_client_operationattr_t* get_op_attr_ftp(){ return &(_sess->operation_attr_ftp); } virtual globus_gass_copy_handleattr_t* get_gass_handle_attr(){ return &(_sess->gass_handle_attr); } virtual Gass_attr_handler* generate_gass_copy_attr(){ Gass_attr_handler_implem* res = new Gass_attr_handler_implem(&(_sess->operation_attr_ftp)); return res; } virtual void clean(){ // clean performance markers globus_result_t res = globus_gass_copy_register_performance_cb(&(_sess->gass_handle), NULL,NULL); gfal_globus_check_result("GridFTPFactory::GridFTP_session_implem", res); configure_default_stream_attributes(); } virtual void purge(){ globus_ftp_client_debug_plugin_destroy(&(_sess->debug_ftp_plugin)); // destruct the debug plugin globus_gass_copy_handle_destroy(&(_sess->gass_handle)); globus_ftp_client_operationattr_destroy (&(_sess->operation_attr_ftp)); globus_gass_copy_handleattr_destroy(&(_sess->gass_handle_attr)); globus_ftp_client_handleattr_destroy(&(_sess->attr_handle)); delete _sess; _sess = NULL; } // handle ftp struct Session_handler{ globus_ftp_client_handle_t handle_ftp; globus_ftp_client_plugin_t debug_ftp_plugin; globus_ftp_client_handleattr_t attr_handle; globus_ftp_client_operationattr_t operation_attr_ftp; globus_gass_copy_handle_t gass_handle; globus_gass_copy_handleattr_t gass_handle_attr; globus_ftp_control_dcau_t dcau; // options globus_ftp_control_parallelism_t parall; globus_ftp_control_mode_t mode; globus_ftp_control_tcpbuffer_t tcp_buffer_size; }; // internal fields GridFTPFactory* factory; std::string hostname; // sess Session_handler* _sess; }; GridFTPFactory::GridFTPFactory(gfal_handle handle) : _handle(handle) { GError * tmp_err=NULL; session_reuse = gfal2_get_opt_boolean(_handle, GRIDFTP_CONFIG_GROUP, gridftp_session_reuse_config, &tmp_err); gfal_log(GFAL_VERBOSE_TRACE," define GSIFTP session re-use to %s",(session_reuse)?"TRUE":"FALSE"); if(tmp_err) throw Glib::Error(tmp_err); size_cache = 400; } GridFTP_Request_state::GridFTP_Request_state(GridFTP_session * s, bool own_session, GridFtp_request_type request_type) : errcode(0), sess(s), end_time(0,0){ req_status=GRIDFTP_REQUEST_NOT_LAUNCHED; this->own_session = own_session; this->request_type = request_type; canceling = false; } GridFTP_Request_state::~GridFTP_Request_state() { if(req_status == GRIDFTP_REQUEST_RUNNING) cancel_operation(gfal_gridftp_scope_req_state(), "ReqState Destroyer"); Glib::RWLock::WriterLock l(mux_req_state); if(!own_session) sess.release(); // cancel the automatic memory management } static void gfal_gridftp_cancel_slot(gfal2_context_t context, void* userdata){ GridFTP_Request_state* r = (GridFTP_Request_state*) userdata; r->cancel_operation_async(g_quark_to_string(gfal_cancel_quark()), "Operation canceled from gfal2_cancel"); } GridFTPOperationCanceler::GridFTPOperationCanceler(gfal2_context_t context, GridFTP_Request_state *state) : _state(state), _cancel_token(gfal2_register_cancel_callback(context, &gfal_gridftp_cancel_slot, state)), _context(context) { } GridFTPOperationCanceler::~GridFTPOperationCanceler() { gfal2_remove_cancel_callback(_context, _cancel_token); } void GridFTPFactory::clear_cache(){ gfal_log(GFAL_VERBOSE_TRACE, "gridftp session cache garbage collection ..."); std::multimap::iterator it; for(it = sess_cache.begin(); it != sess_cache.end(); ++it){ GridFTP_session_implem *sess = static_cast((*it).second); sess->purge(); delete sess; } sess_cache.clear(); } void GridFTPFactory::recycle_session(GridFTP_session* sess){ Glib::Mutex::Lock l(mux_cache); GridFTP_session_implem * my_sess = static_cast(sess); const char* c_hostname = my_sess->hostname.c_str(); if(sess_cache.size() > size_cache) clear_cache(); gfal_log(GFAL_VERBOSE_TRACE, "insert gridftp session for %s in cache ...", c_hostname); sess_cache.insert(std::pair(c_hostname, new GridFTP_session_implem(my_sess ))); } // recycle a gridftp session object from cache if exist, return NULL else GridFTP_session* GridFTPFactory::get_recycled_handle(const std::string & hostname){ Glib::Mutex::Lock l(mux_cache); GridFTP_session* res= NULL; std::multimap::iterator it=sess_cache.find(hostname); // try to find a session explicitely associated with this handle if(it == sess_cache.end()){ // if no session found, take a generic one gfal_log(GFAL_VERBOSE_TRACE, "no session associated with this hostname, try find generic one .... "); it = sess_cache.begin(); } if(it != sess_cache.end()){ gfal_log(GFAL_VERBOSE_TRACE, "gridftp session for: %s found in cache !", hostname.c_str()); res = (*it).second; sess_cache.erase(it); }else{ gfal_log(GFAL_VERBOSE_TRACE, "no session found in cache for %s!", hostname.c_str()); } return res; } GridFTPFactory::~GridFTPFactory() { Glib::Mutex::Lock l(mux_cache); clear_cache(); } gfal_handle GridFTPFactory::get_handle(){ return _handle; } /* * dirty function to convert error code from globus * In the current state, globus provides no way to convert gridftp error code to errno properly.... * */ static int scan_errstring(const char *p) { int ret = ECOMM; if (p == NULL) return ret; if (strstr(p, "o such file") || strstr(p, "not found")) ret = ENOENT; else if (strstr(p, "ermission denied") || strstr(p, "credential")) ret = EACCES; else if (strstr(p, "exists")) ret = EEXIST; else if (strstr(p, "ot a direct")) ret = ENOTDIR; else if (strstr(p, "ation not sup")) ret = ENOTSUP; else if (strstr(p, "Login incorrect") || strstr(p, "Could not get virtual id")) ret = EACCES; return ret; } int gfal_globus_error_convert(globus_object_t * error, char ** str_error){ if(error){ *str_error = globus_error_print_friendly(error); char * p = *str_error; while(*p != '\0'){ // string normalization of carriage return *p = (*p == '\n' || *p == '\r')?' ':*p; ++p; } return scan_errstring(*str_error); // try to get errno } return 0; } void gfal_globus_check_result(const Glib::Quark & scope, gfal_globus_result_t res){ if(res != GLOBUS_SUCCESS){ globus_object_t * error=globus_error_get(res); // get error from result code if(error == NULL) throw Gfal::CoreException(scope, "Unknow error unable to map result code to globus error", ENOENT); gfal_globus_check_error(scope, error); } } void gfal_globus_check_error(const Glib::Quark & scope, globus_object_t * error){ if(error != GLOBUS_SUCCESS){ int globus_errno; char errbuff[GFAL_URL_MAX_LEN]; char * glob_str=NULL; *errbuff='\0'; globus_errno = gfal_globus_error_convert(error, &glob_str); if(glob_str){ // security g_strlcpy( errbuff, glob_str, GFAL_URL_MAX_LEN); g_free(glob_str); } globus_object_free(error); throw Gfal::CoreException(scope, errbuff, globus_errno ); } } GridFTP_session* GridFTPFactory::get_new_handle(const std::string & hostname){ GError * tmp_err=NULL; globus_ftp_control_dcau_t dcau_param; bool gridftp_v2 = gfal2_get_opt_boolean(_handle, GRIDFTP_CONFIG_GROUP, gridftp_version_config, &tmp_err); if(tmp_err) throw Glib::Error(tmp_err); const bool ipv6 = gfal2_get_opt_boolean_with_default(_handle, GRIDFTP_CONFIG_GROUP, gridftp_ipv6_config, false); const bool delay_passv = gfal2_get_opt_boolean_with_default(_handle, GRIDFTP_CONFIG_GROUP, gridftp_delay_passv_config, true); dcau_param.mode = (gfal2_get_opt_boolean(_handle, GRIDFTP_CONFIG_GROUP, gridftp_dcau_config, &tmp_err))?GLOBUS_FTP_CONTROL_DCAU_DEFAULT:GLOBUS_FTP_CONTROL_DCAU_NONE; if(tmp_err) throw Glib::Error(tmp_err); std::auto_ptr sess(new GridFTP_session_implem(this, hostname)); sess->set_gridftpv2(gridftp_v2); sess->set_dcau(dcau_param); sess->set_ipv6(ipv6); sess->set_delayed_pass(delay_passv); return sess.release(); } // store the related globus error to the current handle void gfal_globus_store_error(GridFTP_Request_state * state, globus_object_t *error){ char * glob_str=NULL; state->set_error_code(gfal_globus_error_convert(error, &glob_str)); if(glob_str){ if(state->get_error().empty()) state->set_error(glob_str); g_free(glob_str); }else{ state->set_error("Uknow Globus Error, bad error report"); state->set_error_code(EFAULT); } } GridFTP_session* GridFTPFactory::gfal_globus_ftp_take_handle(const std::string & hostname){ GridFTP_session * res = NULL; if( (res = get_recycled_handle(hostname)) == NULL) res = get_new_handle(hostname); return res; } void GridFTPFactory::gfal_globus_ftp_release_handle_internal(GridFTP_session* sess){ session_reuse = gfal2_get_opt_boolean_with_default(_handle, GRIDFTP_CONFIG_GROUP, gridftp_session_reuse_config, FALSE); if(session_reuse) recycle_session(sess); else{ GridFTP_session_implem * s = static_cast(sess); s->purge(); } } void GridFTPFactory::gfal_globus_ftp_release_handle(GridFTP_session* h){ delete h; } static void gfal_globus_prototype_callback(void* user_args, globus_object_t *error){ GridFTP_Request_state* state = (GridFTP_Request_state*) user_args; Glib::RWLock::ReaderLock l (state->mux_req_state); Glib::Mutex::Lock l_call(state->mux_callback_lock); if(state->get_req_status() == GRIDFTP_REQUEST_FINISHED){ gfal_log(GFAL_VERBOSE_TRACE,"gridFTP operation already finished ! error !"); }else{ if(error != GLOBUS_SUCCESS){ gfal_globus_store_error(state, error); }else if( state->canceling == FALSE ){ state->set_error_code(0); } state->set_req_status(GRIDFTP_REQUEST_FINISHED); state->signal_callback_main.broadcast(); } } // gridftp callback generic implementation void globus_basic_client_callback (void * user_arg, globus_ftp_client_handle_t * handle, globus_object_t * error){ gfal_log(GFAL_VERBOSE_TRACE," gridFTP operation done"); gfal_globus_prototype_callback(user_arg, error); } // gass operation callback implementation void globus_gass_basic_client_callback( void * callback_arg, globus_gass_copy_handle_t * handle, globus_object_t * error){ gfal_log(GFAL_VERBOSE_TRACE,"gass operation done"); gfal_globus_prototype_callback( callback_arg, error); } void GridFTP_Request_state::poll_callback(const Glib::Quark &scope){ gfal_log(GFAL_VERBOSE_TRACE," -> go internal polling for request "); bool timeout= false; Glib::RWLock::ReaderLock l(mux_req_state); { Glib::Mutex::Lock l(mux_callback_lock); // wait for a globus signal or for a timeout // if canceling logic -> wait until end while(this->req_status != GRIDFTP_REQUEST_FINISHED && (timeout == FALSE || this->canceling == TRUE)){ if(end_time == Glib::TimeVal(0,0) || this->canceling == TRUE){ signal_callback_main.wait(mux_callback_lock); } else{ timeout = !(signal_callback_main.timed_wait(mux_callback_lock,end_time)); } } } if(timeout && this->canceling==FALSE){ gfal_log(GFAL_VERBOSE_TRACE,"gfal gridftp operation timeout occurred ! cancel the operation ..."); cancel_operation(scope, "gfal gridftp internal operation timeout, operation canceled"); this->set_error_code(ETIMEDOUT); } gfal_log(GFAL_VERBOSE_TRACE," <- out of gass polling for request "); } void GridFTP_Request_state::err_report(const Glib::Quark &scope){ if(this->get_error_code() != 0) throw Gfal::CoreException(scope, this->get_error(), this->get_error_code()); } void GridFTP_Request_state::wait_callback(const Glib::Quark &scope, time_t timeout){ struct timespec st_timeout; st_timeout.tv_nsec = 0; st_timeout.tv_sec = timeout; gfal_log(GFAL_VERBOSE_TRACE, " [GridFTP_Request_state::wait_callback] setup gsiftp timeout to %ld seconds", timeout); init_timeout(&st_timeout); poll_callback(scope); err_report(scope); } void GridFTP_Request_state::cancel_operation(const Glib::Quark &scope, const std::string &msg){ if( cancel_operation_async(scope, msg) == 0) this->poll_callback(scope); } int GridFTP_Request_state::cancel_operation_async(const Glib::Quark &scope, const std::string & msg){ globus_result_t res; int ret = 0; Glib::RWLock::ReaderLock l(this->mux_req_state); Glib::Mutex::Lock l_call(this->mux_callback_lock); this->canceling = TRUE; if(this->get_req_status() == GRIDFTP_REQUEST_FINISHED) // already finished before cancelling -> return return 0; if(this->request_type == GRIDFTP_REQUEST_GASS){ gfal_log(GFAL_VERBOSE_TRACE," -> gass operation cancel "); res = globus_gass_copy_cancel(this->sess->get_gass_handle(), globus_gass_basic_client_callback, this); gfal_log(GFAL_VERBOSE_TRACE," gass operation cancel <-"); }else{ res = globus_ftp_client_abort(this->sess->get_ftp_handle()); } try { gfal_globus_check_result(scope, res); }catch(Gfal::CoreException & e){ gfal_log(GFAL_VERBOSE_TRACE,"gridftp error trigerred while cancel: %s", e.message_only()); this->sess->disableReuse(); ret = -1; }catch(...){ gfal_log(GFAL_VERBOSE_TRACE,"gridftp error trigerred while cancel: Unknown"); this->sess->disableReuse(); ret = -1; } this->set_error_code(ECANCELED); this->set_error(msg); return ret; } void GridFTP_stream_state::poll_callback_stream(const Glib::Quark & scope){ gfal_log(GFAL_VERBOSE_TRACE," -> go polling for request "); { Glib::Mutex::Lock l(mux_stream_callback); // wait for a globus signal or for a timeout // if canceling logic -> wait until end while(this->get_stream_status() != GRIDFTP_REQUEST_FINISHED){ cond_stream_callback.wait(mux_stream_callback); } } while(this->stream_status != GRIDFTP_REQUEST_FINISHED ) usleep(10); gfal_log(GFAL_VERBOSE_TRACE," <- out of polling for request "); } void GridFTP_stream_state::wait_callback_stream(const Glib::Quark & scope){ poll_callback_stream(scope); err_report(scope); } GridFTP_stream_state::~GridFTP_stream_state(){ if(req_status == GRIDFTP_REQUEST_RUNNING){ cancel_operation(gfal_gridftp_scope_req_state(), "ReqStream Destroyer"); poll_callback(gfal_gridftp_scope_req_state()); } while(this->stream_status == GRIDFTP_REQUEST_RUNNING ) usleep(1); } void gridftp_wait_for_read(const Glib::Quark & scope, GridFTP_stream_state* state, off_t end_read){ state->wait_callback_stream(scope); } void gridftp_wait_for_write(const Glib::Quark & scope, GridFTP_stream_state* state, off_t end_write){ state->wait_callback_stream(scope); } void gfal_stream_callback_prototype(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, const char* err_msg_offset){ GridFTP_stream_state* state = static_cast(user_arg); Glib::Mutex::Lock l(state->mux_stream_callback); if(error != GLOBUS_SUCCESS){ // check error status gfal_globus_store_error(state, error); // gfal_log(GFAL_VERBOSE_TRACE," read error %s , code %d", state->error, state->errcode); }else{ // verify read //gfal_log(GFAL_VERBOSE_TRACE," read %d bytes , eof %d %d,%d", length, eof, state->offset, offset); if(state->get_offset() != offset){ state->set_error(err_msg_offset); state->set_error_code(EIO); }else{ state->increase_offset(length); state->set_eof(eof); state->set_error_code(0); } } state->set_stream_status(GRIDFTP_REQUEST_FINISHED); state->cond_stream_callback.broadcast(); } void gfal_griftp_stream_read_callback(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){ gfal_stream_callback_prototype(user_arg, handle, error, buffer, length, offset, eof, " Invalid read callback call from globus, out of order"); } static void gfal_griftp_stream_write_callback(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){ gfal_stream_callback_prototype(user_arg, handle, error, buffer, length, offset, eof, " Invalid write callback call from globus, out of order"); } ssize_t gridftp_read_stream(const Glib::Quark & scope, GridFTP_stream_state* stream, void* buffer, size_t s_read ){ gfal_log(GFAL_VERBOSE_TRACE," -> [gridftp_read_stream]"); off_t initial_offset = stream->get_offset(); if(stream->is_eof()) return 0; stream->set_stream_status(GRIDFTP_REQUEST_RUNNING); globus_result_t res = globus_ftp_client_register_read( stream->sess->get_ftp_handle(), (globus_byte_t*) buffer, s_read, gfal_griftp_stream_read_callback, stream ); gfal_globus_check_result(scope, res); gridftp_wait_for_read(scope, stream, initial_offset + s_read); stream->set_stream_status(GRIDFTP_REQUEST_NOT_LAUNCHED); return stream->get_offset() - initial_offset; } ssize_t gridftp_write_stream(const Glib::Quark & scope, GridFTP_stream_state* stream, const void* buffer, size_t s_write, bool eof ){ gfal_log(GFAL_VERBOSE_TRACE," -> [gridftp_write_stream]"); off_t initial_offset = stream->get_offset(); stream->set_stream_status(GRIDFTP_REQUEST_RUNNING); globus_result_t res = globus_ftp_client_register_write( stream->sess->get_ftp_handle(), (globus_byte_t*) buffer, s_write, initial_offset, eof, gfal_griftp_stream_write_callback, stream ); gfal_globus_check_result(scope, res); gridftp_wait_for_write(scope, stream, initial_offset + s_write); stream->set_stream_status(GRIDFTP_REQUEST_NOT_LAUNCHED); return stream->get_offset() - initial_offset; } std::string gridftp_hostname_from_url(const char * url){ GError * tmp_err=NULL; char buffer[GFAL_URL_MAX_LEN]; buffer[0] ='\0'; const int res = gfal_hostname_from_uri(url, buffer, GFAL_URL_MAX_LEN, &tmp_err); if(res < 0) throw Glib::Error(tmp_err); return std::string(buffer); } gfal2-2.3.0/src/common/gfal_common_filedescriptor.c0000644000175000017500000001360712164561703021665 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_common_filedescriptor.c * @file for the file descriptor management * author Devresse Adrien * */ #include #include #include #include #include "gfal_common_errverbose.h" #include "gfal_types.h" #include "gfal_common_filedescriptor.h" // generate a new unique key static int gfal_file_key_generatorG(gfal_fdesc_container_handle fhandle, GError** err){ g_return_val_err_if_fail(fhandle, 0, err, "[gfal_file_descriptor_generatorG] Invalid arg file handle"); int ret= rand(); GHashTable* c = fhandle->container; if(g_hash_table_size(c) > G_MAXINT/2 ){ g_set_error(err, 0, EMFILE, " [%s] too many files open", __func__); ret = 0; }else { while(ret ==0 || g_hash_table_lookup(c, GINT_TO_POINTER(ret)) != NULL){ ret = rand(); } } return ret; } /* * Add the given file handle to the and return a file descriptor * return the associated key if success else 0 and set err */ int gfal_add_new_file_desc(gfal_fdesc_container_handle fhandle, gpointer pfile, GError** err){ g_return_val_err_if_fail(fhandle && pfile, 0, err, "[gfal_add_new_file_desc] Invalid arg fhandle and/or pfile"); pthread_mutex_lock(&(fhandle->m_container)); GError* tmp_err=NULL; GHashTable* c = fhandle->container; int key = gfal_file_key_generatorG(fhandle, &tmp_err); if(key !=0){ g_hash_table_insert(c, GINT_TO_POINTER(key), pfile); } if(tmp_err){ g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); } pthread_mutex_unlock(&(fhandle->m_container)); return key; } //return the associated file handle for the given file descriptor or NULL if the key is not present and err is set gpointer gfal_get_file_desc(gfal_fdesc_container_handle fhandle, int key, GError** err){ pthread_mutex_lock(&(fhandle->m_container)); GHashTable* c = fhandle->container; gpointer p = g_hash_table_lookup(c, GINT_TO_POINTER(key)); if(!p) g_set_error(err,0, EBADF, "[%s] bad file descriptor",__func__); pthread_mutex_unlock(&(fhandle->m_container)); return p; } // remove the associated file handle associated with the given file descriptor // return true if success else false gboolean gfal_remove_file_desc(gfal_fdesc_container_handle fhandle, int key, GError** err){ pthread_mutex_lock(&(fhandle->m_container)); GHashTable* c = fhandle->container; gboolean p = g_hash_table_remove(c, GINT_TO_POINTER(key)); if(!p) g_set_error(err,0, EBADF, "[%s] bad file descriptor",__func__); pthread_mutex_unlock(&(fhandle->m_container)); return p; } //create a new file descriptor container with the given destroyer function to an element of the container gfal_fdesc_container_handle gfal_file_descriptor_handle_create(GDestroyNotify destroyer){ gfal_fdesc_container_handle d = calloc(1, sizeof(struct _gfal_file_descriptor_container)); d->container = g_hash_table_new_full(NULL, NULL, NULL, destroyer); pthread_mutex_init(&(d->m_container),NULL); return d; } /* * Create a new gfal_file_handle * a gfal_handle is a rich file handle with additional information for the internal purpose * @param id_module : id of the module which create the handle ( <10 -> gfal internal module, >=10 : plugin, plugin, external module ( ex : lfc ) * @param fdesc : original descriptor * @warning need to be free manually * */ gfal_file_handle gfal_file_handle_new(const char* module_name, gpointer fdesc){ gfal_file_handle f = g_new(struct _gfal_file_handle_,1); g_strlcpy(f->module_name, module_name, GFAL_MODULE_NAME_SIZE); f->lock = g_mutex_new (); f->offset = 0; f->fdesc = fdesc; f->ext_data = NULL; f->path = NULL; return f; } /* * same than gfal_file_handle but with external data storage support */ gfal_file_handle gfal_file_handle_ext_new(const char* module_name, gpointer fdesc, gpointer ext_data){ gfal_file_handle f = gfal_file_handle_new(module_name, fdesc); f->ext_data = ext_data; return f; } gfal_file_handle gfal_file_handle_new2(const char *module_name, gpointer fdesc, gpointer user_data, const char *file_path){ gfal_file_handle f = gfal_file_handle_ext_new(module_name, fdesc, user_data); if(file_path) f->path = g_strdup(file_path); return f; } /** * return the file descriptor of this gfal file handle */ gpointer gfal_file_handle_get_fdesc(gfal_file_handle fh){ return fh->fdesc; } /** * return the user data of this gfal file descriptor */ gpointer gfal_file_handle_get_user_data(gfal_file_handle fh){ return fh->ext_data; } /* * * return the file handle associated with the file_desc * @warning does not free the handle * * */ gfal_file_handle gfal_file_handle_bind(gfal_fdesc_container_handle h, int file_desc, GError** err){ g_return_val_err_if_fail(file_desc, 0, err, "[gfal_dir_handle_bind] invalid dir descriptor"); GError* tmp_err = NULL; gfal_file_handle resu=NULL; resu = gfal_get_file_desc(h, file_desc, &tmp_err); if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return resu; } void gfal_file_handle_lock(gfal_file_handle fh){ g_assert(fh); g_mutex_lock(fh->lock); } void gfal_file_handle_unlock(gfal_file_handle fh){ g_assert(fh); g_mutex_unlock(fh->lock); } // Delete a gfal_file handle void gfal_file_handle_delete(gfal_file_handle fh){ if(fh){ g_mutex_free(fh->lock); g_free(fh->path); g_free(fh); } } gfal2-2.3.0/src/common/dcap/0000755000175000017500000000000012164561703015042 5ustar ellertellertgfal2-2.3.0/src/common/dcap/README_PLUGIN_DCAP0000644000175000017500000000010212164561703017560 0ustar ellertellert gfal 2.0 lfc plugin : - features : * data access functions gfal2-2.3.0/src/common/dcap/gfal_dcap_plugin_main.h0000644000175000017500000000231612164561703021477 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_dcap_plugin_main.h * header for the external dcap plugin for gfal ( based on the old dcap part in gfal legacy ) * author Devresse Adrien */ #include #include "../gfal_common_internal.h" #include "../gfal_common_errverbose.h" #include "../gfal_common_plugin.h" #include "../gfal_types.h" typedef struct _gfal_plugin_dcap_handle{ gfal_handle handle; struct dcap_proto_ops* ops; regex_t rex; }* gfal_plugin_dcap_handle; // Entry point of the plugin gfal_plugin_interface gfal_plugin_init(gfal_handle handle, GError** err); gfal2-2.3.0/src/common/dcap/gfal_dcap_plugin_main.c0000644000175000017500000001037512164561703021476 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_dcap_plugin_main.c * file for the external dcap plugin for gfal ( based on the old dcap part in gfal legacy ) * author Devresse Adrien */ #include #include #include #include #include #include #include #include #include "gfal_dcap_plugin_layer.h" #include "gfal_dcap_plugin_main.h" #include "gfal_dcap_plugin_bindings.h" void gfal_dcap_destroyG(plugin_handle handle); gboolean gfal_dcap_check_url(plugin_handle ch, const char* url, plugin_mode mode, GError** err); static int gfal_dcap_regex_compile(regex_t * rex, GError** err){ int ret = regcomp(rex, "^(dcap|gsidcap)://([:alnum:]|-|/|.|_)+$",REG_ICASE | REG_EXTENDED); g_return_val_err_if_fail(ret==0,-1,err,"[gfal_dcap_regex_compile] fail to compile regex, report this bug"); return ret; } static gfal_plugin_dcap_handle gfal_dcap_init_handle(gfal_handle handle, GError** err){ gfal_plugin_dcap_handle ret = g_new0(struct _gfal_plugin_dcap_handle, 1); ret->ops = gfal_dcap_internal_loader(err); ret->handle = handle; gfal_dcap_regex_compile(&(ret->rex), err); return ret; } /* * Init function, called before all * */ gfal_plugin_interface gfal_plugin_init(gfal_handle handle, GError** err){ gfal_plugin_interface dcap_plugin; GError* tmp_err=NULL; memset(&dcap_plugin,0,sizeof(gfal_plugin_interface)); // clear the plugin dcap_plugin.plugin_data = (plugin_handle) gfal_dcap_init_handle(handle, &tmp_err); dcap_plugin.plugin_delete = &gfal_dcap_destroyG; dcap_plugin.getName= &gfal_dcap_getName; dcap_plugin.openG = &gfal_dcap_openG; dcap_plugin.closeG = &gfal_dcap_closeG; dcap_plugin.readG = &gfal_dcap_readG; dcap_plugin.preadG= &gfal_dcap_preadG; dcap_plugin.writeG= &gfal_dcap_writeG; dcap_plugin.pwriteG = &gfal_dcap_pwriteG; dcap_plugin.lseekG= &gfal_dcap_lseekG; dcap_plugin.check_plugin_url = &gfal_dcap_check_url; dcap_plugin.statG= &gfal_dcap_statG; dcap_plugin.lstatG = &gfal_dcap_lstatG; dcap_plugin.mkdirpG = &gfal_dcap_mkdirG; dcap_plugin.chmodG = &gfal_dcap_chmodG; dcap_plugin.rmdirG = &gfal_dcap_rmdirG; dcap_plugin.closedirG= &gfal_dcap_closedirG; dcap_plugin.opendirG= &gfal_dcap_opendirG; dcap_plugin.readdirG= &gfal_dcap_readdirG; dcap_plugin.accessG = &gfal_dcap_accessG; if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return dcap_plugin; } void gfal_dcap_destroyG(plugin_handle handle){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; free(h->ops); regfree(&(h->rex)); free(h); } gboolean gfal_dcap_internal_check_url(gfal_plugin_dcap_handle dh, const char* surl, GError** err){ if(surl == NULL || strnlen(surl, GFAL_URL_MAX_LEN) == GFAL_URL_MAX_LEN){ g_set_error(err, 0, EINVAL, "[%s] Invalid surl, surl too long or NULL",__func__); return FALSE; } int ret= regexec(&dh->rex,surl,0,NULL,0); return (ret==0)?TRUE:FALSE; } /* * Check the dcap url in the gfal module way * */ gboolean gfal_dcap_check_url(plugin_handle ch, const char* url, plugin_mode mode, GError** err){ int ret; GError* tmp_err=NULL; gfal_plugin_dcap_handle rh = (gfal_plugin_dcap_handle) ch; switch(mode){ case GFAL_PLUGIN_OPEN: case GFAL_PLUGIN_LSTAT: case GFAL_PLUGIN_STAT: case GFAL_PLUGIN_MKDIR: case GFAL_PLUGIN_CHMOD: case GFAL_PLUGIN_RMDIR: case GFAL_PLUGIN_OPENDIR: case GFAL_PLUGIN_ACCESS: ret = gfal_dcap_internal_check_url(rh, url, &tmp_err); break; default: ret = FALSE; break; } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } gfal2-2.3.0/src/common/dcap/gfal_dcap_plugin_layer.c0000644000175000017500000000462612164561703021670 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_dcap_plugin_layer.c * file for the external call, abstraction layer for mock purpose * author Devresse Adrien */ #if defined __i386__ || defined _M_IX86 #define __USE_LARGEFILE64 1 #endif #include #include #include #include #include #include #include #include #include #include #include #include "gfal_dcap_plugin_layer.h" struct dcap_proto_ops * gfal_dcap_internal_loader_base(GError** err){ struct dcap_proto_ops * pops = NULL; GError* tmp_err=NULL; gfal_log(GFAL_VERBOSE_VERBOSE, " -> load dcap library "); pops = g_new0(struct dcap_proto_ops, 1); pops->geterror = &__dc_errno; pops->strerror = &dc_strerror; pops->access = &dc_access; pops->chmod = &dc_chmod; pops->close = &dc_close; pops->closedir = &dc_closedir; pops->lseek = &dc_lseek; pops->lstat = &dc_lstat; pops->mkdir = &dc_mkdir; pops->open = &dc_open; pops->opendir = &dc_opendir; pops->read = &dc_read; pops->pread = &dc_pread; pops->readdir = &dc_readdir; pops->rename = NULL; pops->rmdir = &dc_rmdir; pops->stat = &dc_stat; pops->unlink = &dc_unlink; pops->write = &dc_write; pops->pwrite = &dc_pwrite; pops->debug_level= &dc_setDebugLevel; pops->active_mode = &dc_setClientActive; // pops->active_mode(); // switch to active mode to avoid firewalls problems if( (gfal_get_verbose() & GFAL_VERBOSE_TRACE ) ) pops->debug_level(8 |6 | 32); gfal_log(GFAL_VERBOSE_VERBOSE, " end load dcap library <-"); G_RETURN_ERR(pops, tmp_err, err); } struct dcap_proto_ops * (*gfal_dcap_internal_loader)(GError** err)= &gfal_dcap_internal_loader_base; gfal2-2.3.0/src/common/dcap/gfal_dcap_plugin_layer.h0000644000175000017500000000404012164561703021663 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_dcap_plugin_layer.h * file for the external call, abstraction layer for mock purpose * author: Devresse Adrien * **/ #include #include #include #include #include #include #include #include #include #include struct dcap_proto_ops { int* (*geterror)(); const char*(*strerror)(int); int (*access)(const char *, int); int (*chmod)(const char *, mode_t); int (*close)(int); int (*closedir)(DIR *); void (*debug_level)(unsigned int); void (*active_mode)(); off_t (*lseek)(int, off_t, int); int (*lstat)(const char *, struct stat *); int (*mkdir)(const char *, mode_t); int (*open)(const char *, int, ...); DIR *(*opendir)(const char *); ssize_t (*read)(int, void *, size_t); ssize_t (*pread)(int fildes, void *buf, size_t nbytes, off_t offset); ssize_t (*pwrite)(int fildes, const void *buf, size_t nbytes, off_t offset); struct dirent *(*readdir)(DIR *); int (*rename)(const char *, const char *); int (*rmdir)(const char *); ssize_t (*setfilchg)(int, const void *, size_t); int (*stat)(const char *, struct stat *); int (*unlink)(const char *); ssize_t (*write)(int, const void *, size_t); }; extern struct dcap_proto_ops * (*gfal_dcap_internal_loader)(GError** err); gfal2-2.3.0/src/common/dcap/gfal_dcap_plugin_bindings.c0000644000175000017500000001633112164561703022345 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_dcap_plugin_main.c * file for bindings for dcap funcs * author Devresse Adrien */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "gfal_dcap_plugin_layer.h" #include "gfal_dcap_plugin_bindings.h" #include "gfal_dcap_plugin_main.h" // errno conversion for dcap non-complete error messages static int dcap_errno_conversion( const char * msg, int old_err){ int ret; ret = old_err; switch(old_err){ case EIO: if(strstr(msg, "o such")) ret = ENOENT; break; case EACCES: if(strstr(msg, "ectory not empty")) ret = ENOTEMPTY; break; default: ret = old_err; } return ret; } static void dcap_report_error(gfal_plugin_dcap_handle h, const char * func_name, GError** err){ char buff_error[2048]; const int status = *(h->ops->geterror()); g_strlcpy(buff_error, h->ops->strerror(status), 2048); // errno conversion errno = dcap_errno_conversion(buff_error, errno); g_set_error(err, 0, errno, "[%s] Error reported by the external library dcap : %s, number : %d ", func_name, buff_error, status); } gfal_file_handle gfal_dcap_openG(plugin_handle handle , const char* path, int flag, mode_t mode, GError** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; gfal_file_handle ret = NULL; const int internal_flag = flag & (~ 0100000) ; // filter non supported flags int fd= h->ops->open(path, internal_flag, mode); if(fd == -1) dcap_report_error(h, __func__, err); else ret = gfal_file_handle_new(gfal_dcap_getName(), GINT_TO_POINTER(fd)); return ret; } /* * map to the libdcap read call * */ ssize_t gfal_dcap_readG(plugin_handle handle , gfal_file_handle fd, void* buff, size_t s_buff, GError** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; ssize_t ret = h->ops->read(GPOINTER_TO_INT(fd->fdesc), buff, s_buff); if(ret <0) dcap_report_error(h, __func__, err); else errno =0; return ret; } /* * map to the libdcap pread call */ ssize_t gfal_dcap_preadG(plugin_handle handle , gfal_file_handle fd, void* buff, size_t s_buff, off_t offset, GError** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; ssize_t ret = h->ops->pread(GPOINTER_TO_INT(fd->fdesc), buff, s_buff, offset); if(ret <0) dcap_report_error(h, __func__, err); else errno =0; return ret; } /* * map to the libdcap pwrite call */ ssize_t gfal_dcap_pwriteG(plugin_handle handle , gfal_file_handle fd, const void* buff, size_t s_buff, off_t offset, GError** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; ssize_t ret = h->ops->pwrite(GPOINTER_TO_INT(fd->fdesc), buff, s_buff, offset); if(ret <0) dcap_report_error(h, __func__, err); else errno =0; return ret; } off_t gfal_dcap_lseekG(plugin_handle handle , gfal_file_handle fd, off_t offset, int whence, GError** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; off_t ret = h->ops->lseek(GPOINTER_TO_INT(fd->fdesc), offset, (int) whence); if(ret == ((off_t)0)-1) dcap_report_error(h, __func__, err); else errno =0; return ret; } ssize_t gfal_dcap_writeG(plugin_handle handle , gfal_file_handle fd, const void* buff, size_t s_buff, GError** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; ssize_t ret = h->ops->write(GPOINTER_TO_INT(fd->fdesc), buff, s_buff); if(ret <0) dcap_report_error(h, __func__, err); else errno =0; return ret; } int gfal_dcap_closeG(plugin_handle handle, gfal_file_handle fd, GError ** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; int ret= h->ops->close(GPOINTER_TO_INT(fd->fdesc)); if(ret != 0){ dcap_report_error(h, __func__, err); } gfal_file_handle_delete(fd); return ret; } int gfal_dcap_statG(plugin_handle handle, const char* name, struct stat* buff, GError ** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; int ret= h->ops->stat(name, buff); if(ret != 0){ dcap_report_error(h, __func__, err); } return ret; } int gfal_dcap_lstatG(plugin_handle handle, const char* name, struct stat* buff, GError ** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; int ret= h->ops->lstat(name, buff); if(ret != 0){ dcap_report_error(h, __func__, err); } return ret; } int gfal_dcap_accessG(plugin_handle plugin_data, const char* url, int mode, GError** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) plugin_data; ssize_t ret = h->ops->access(url, mode); if(ret <0) dcap_report_error(h, __func__, err); else errno =0; return ret; } int gfal_dcap_mkdirG(plugin_handle handle, const char* name, mode_t mode, gboolean pflag, GError** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; int ret = h->ops->mkdir(name, mode); if(ret !=0){ dcap_report_error(h, __func__, err); } return ret; } int gfal_dcap_chmodG(plugin_handle handle, const char* name, mode_t mode, GError** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; int ret = h->ops->chmod(name, mode); if(ret !=0){ dcap_report_error(h, __func__, err); } return ret; } int gfal_dcap_rmdirG(plugin_handle handle, const char* name, GError** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; int ret = h->ops->rmdir(name); if(ret !=0){ dcap_report_error(h, __func__, err); } return ret; } gfal_file_handle gfal_dcap_opendirG(plugin_handle handle, const char* path, GError ** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; DIR * d = h->ops->opendir(path); gfal_file_handle ret = NULL; if(d == NULL){ dcap_report_error(h, __func__, err); }else{ ret = gfal_file_handle_ext_new(gfal_dcap_getName(), (gpointer) d, NULL); } return ret; } int gfal_dcap_closedirG(plugin_handle handle, gfal_file_handle fh, GError** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; int ret = h->ops->closedir(fh->fdesc); if(ret !=0){ dcap_report_error(h, __func__, err); }else{ gfal_file_handle_delete(fh); } return ret; } struct dirent* gfal_dcap_readdirG(plugin_handle handle, gfal_file_handle fh, GError** err){ gfal_plugin_dcap_handle h = (gfal_plugin_dcap_handle) handle; struct dirent* ret = h->ops->readdir(fh->fdesc); if(ret == NULL && *(h->ops->geterror()) != 0){ dcap_report_error(h, __func__, err); } return ret; } const char* gfal_dcap_getName(){ return "dcap_plugin"; } gfal2-2.3.0/src/common/dcap/gfal_dcap_plugin_bindings.h0000644000175000017500000000517612164561703022357 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_dcap_plugin_main.c * headers for bindings for dcap funcs * Devresse Adrien * */ #include #include #include #include #include #include #include #include gfal_file_handle gfal_dcap_openG(plugin_handle handle , const char* path, int flag, mode_t mode, GError** err); ssize_t gfal_dcap_readG(plugin_handle handle , gfal_file_handle fd, void* buff, size_t s_buff, GError** err); ssize_t gfal_dcap_preadG(plugin_handle handle , gfal_file_handle fd, void* buff, size_t s_buff, off_t offset, GError** err); ssize_t gfal_dcap_pwriteG(plugin_handle handle , gfal_file_handle fd, const void* buff, size_t s_buff, off_t offset, GError** err); off_t gfal_dcap_lseekG(plugin_handle handle , gfal_file_handle fd, off_t offset, int whence, GError** err); ssize_t gfal_dcap_writeG(plugin_handle handle , gfal_file_handle fd, const void* buff, size_t s_buff, GError** err); int gfal_dcap_accessG(plugin_handle plugin_data, const char* url, int mode, GError** err); int gfal_dcap_closeG(plugin_handle handle, gfal_file_handle fd, GError ** err); int gfal_dcap_statG(plugin_handle handle, const char* name, struct stat* buff, GError ** err); int gfal_dcap_lstatG(plugin_handle handle, const char* name, struct stat* buff, GError ** err); int gfal_dcap_mkdirG(plugin_handle handle, const char* name, mode_t mode, gboolean pflag, GError** err); int gfal_dcap_chmodG(plugin_handle handle, const char* name, mode_t mode, GError** err); int gfal_dcap_rmdirG(plugin_handle handle, const char* name, GError** err); gfal_file_handle gfal_dcap_opendirG(plugin_handle handle, const char* path, GError ** err); int gfal_dcap_closedirG(plugin_handle handle, gfal_file_handle fh, GError** err); struct dirent* gfal_dcap_readdirG(plugin_handle handle, gfal_file_handle fh, GError** err); const char* gfal_dcap_getName(); gfal2-2.3.0/src/common/gfal_common_file_handle.h0000644000175000017500000000203612164561703021100 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_common_file_handle.h * header file for the file handle management * author Devresse Adrien * */ #include "gfal_constants.h" #include "gfal_prototypes.h" gfal_fdesc_container_handle gfal_file_handle_container_instance(gfal_descriptors_container* fdescs, GError** err); void gfal_file_handle_container_delete(gfal_descriptors_container* fdescs); gfal2-2.3.0/src/common/gfal_constants.h0000644000175000017500000000736112164561703017320 0ustar ellertellert#pragma once #ifndef _GFAL_CONSTANTS_H #define _GFAL_CONSTANTS_H /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file gfal_constants.h * the global constant declarations of gfal core * @author Devresse Adrien , Baud Jean-Philippe */ #ifdef __cplusplus extern "C" { #endif #define MAX_PLUGIN_LIST 15 #define GFAL_MODULE_NAME_SIZE 1024 #define GFAL_NEWFILE_SIZE 1024 /* GFAL error level for gfal_errmsg */ //! maximum error string length #define GFAL_ERRMSG_LEN 2048 //! maximum error string length #define GFAL_ERRLEVEL_ERROR 0 #define GFAL_ERRLEVEL_WARN 1 #define GFAL_ERRLEVEL_INFO 2 //! guid prefix url #define GFAL_GUID_PREFIX "guid:" // default buffer size for address #define GFAL_URL_MAX_LEN 2048 #define GFAL_MODULEID_LOCAL "local_file_module" #define GFAL_MODULEID_SRM 2 #define GFAL_EXTERNAL_MODULE_OFFSET 10 // plugin related #define GFAL_PLUGIN_DIR_ENV "GFAL_PLUGIN_DIR" /**< environment variable for personnalized plugin directory */ #define GFAL_PLUGIN_DIR_SUFFIX "gfal2-plugins" /**< default directory name for gfal 2 plugin search */ #define GFAL_PLUGIN_INIT_SYM "gfal_plugin_init" #define GFAL_MAX_PLUGIN_LIST 2048 // configuration loader related #define GFAL_CONFIG_DIR_ENV "GFAL_CONFIG_DIR" /**< environment variable for personnalized configuration directory */ #define GFAL_CONFIG_DIR_SUFFIX "gfal2.d" //! xattr standard keys for getxattr / setxattr //! replicas listing #define GFAL_XATTR_REPLICA "user.replicas" // global key of replicas for the extended attributes //! xattr standard keys for getxattr / setxattr //! guid information #define GFAL_XATTR_GUID "user.guid" // global key for the guid of a file //! xattr standard keys for getxattr / setxattr //! file comment #define GFAL_XATTR_COMMENT "user.comment" // global key for the comments of a file //! xattr standard keys for getxattr / setxattr //! file checksum type #define GFAL_XATTR_CHKSUM_TYPE "user.chksumtype" //! xattr standard keys for getxattr / setxattr //! file checksum #define GFAL_XATTR_CHKSUM_VALUE "user.checksum" //! xattr standard keys for getxattr / setxattr //! file availability status //! this key can be used to check or set the stage status of a file #define GFAL_XATTR_STATUS "user.status" // xattr standard values // list of standard values return by getxattr for status key //! string value to use/compare for extended attribute user.status //! user.status possible value, similar to SRM meaning of status ( brings_online ) #define GFAL_XATTR_STATUS_ONLINE "ONLINE" #define GFAL_XATTR_STATUS_NEARLINE "NEARLINE " #define GFAL_XATTR_STATUS_NEARLINE_ONLINE "ONLINE_AND_NEARLINE" #define GFAL_XATTR_STATUS_UNKNOW "UNKNOW" #define GFAL_XATTR_STATUS_LOST "LOST" #define GFAL_XATTR_STATUS_UNAVAILABLE "UNAVAILABLE" // plugins entry points for the new system of plugins #define GFAL_PLUGIN_URL_TRANSFER_CHECK "plugin_url_transfer_check" //! gfal checksum type key //! note : checksum type support depends of the plugin implementation #define GFAL_CHKSUM_MD5 "MD5" #define GFAL_CHKSUM_SHA1 "SHA1" #define GFAL_CHKSUM_ADLER32 "ADLER32" #define GFAL_CHKSUM_CRC32 "CRC32" #ifdef __cplusplus } #endif #endif gfal2-2.3.0/src/common/lfc/0000755000175000017500000000000012164561703014677 5ustar ellertellertgfal2-2.3.0/src/common/lfc/README_PLUGIN_LFC0000644000175000017500000000016412164561703017322 0ustar ellertellert gfal 2.0 lfc plugin : - features : * meta-data management * redirection to dcap / rfio for the data access gfal2-2.3.0/src/common/lfc/lfc_ifce_ng.c0000644000175000017500000004445712164561703017277 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * * lfc_ifce_ng.c * main internal file of the lfc plugin module * author : Adrien Devresse */ #define GFAL_LFN_MAX_LEN 2048 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "lfc_ifce_ng.h" int _Cthread_addcid(char *, int, char *, int, Cth_pid_t *, unsigned, void *(*)(void *), int); // hack in order to use the internal CThread API ( DPNS limitation ) static __thread int _local_thread_init=FALSE; static volatile time_t session_timestamp= 0; static long session_duration = 20; static pthread_mutex_t m_session = PTHREAD_MUTEX_INITIALIZER; int gfal_lfc_regex_compile(regex_t* rex, GError** err){ int ret = regcomp(rex, "^(lfn:/|lfc://)([:alnum:]|-|/|.|_)+", REG_ICASE | REG_EXTENDED); g_return_val_err_if_fail(ret ==0,-1,err,"[gfal_lfc_check_lfn_url] fail to compile regex, report this bug"); return ret; } static void lfc_plugin_set_lfc_env(struct lfc_ops* ops,const char* var_name, const char* var_value ){ if(ops->set_env){ // if new lfc library with set_env call, set at runtime ops->set_env(var_name, var_value,TRUE); }else{ // else set it as env var !! NOT THREAD SAFE g_setenv(var_name, var_value,TRUE); } } int lfc_configure_environment(struct lfc_ops * ops, const char* host, GError** err){ GError * tmp_err=NULL; const char * tab_envar[] = { ops->lfc_endpoint_predefined, ops->lfc_conn_timeout, ops->lfc_conn_retry, ops->lfc_conn_try_int}; const char * tab_envar_name[] = { LFC_ENV_VAR_HOST , LFC_ENV_VAR_CONNTIMEOUT, LFC_ENV_VAR_CONRETRY, LFC_ENV_VAR_CONRETRYINT}; const int tab_type[] = { 0, 1, 1, 1}; const char* tab_override[] = { host, NULL, NULL, NULL, NULL }; const int n_var =4; const char * plugin_group = LFC_ENV_VAR_GROUP_PLUGIN; int i,ret; ret = 0; for(i = 0; i < n_var;++i){ if(tab_envar[i] == NULL){ switch(tab_type[i]){ case 0:{ char* v1 = NULL; char* value = NULL; if(tab_override[i] != NULL){ value = (char*) tab_override[i]; }else{ value= v1 =gfal2_get_opt_string(ops->handle, plugin_group, tab_envar_name[i], &tmp_err); } if(!tmp_err){ gfal_log(GFAL_VERBOSE_TRACE, "lfc plugin : setup env var value %s to %s", tab_envar_name[i],value); lfc_plugin_set_lfc_env(ops, tab_envar_name[i],value); g_free(v1); }else{ ret = -1; } break; } case 1:{ int v2; v2 =gfal2_get_opt_integer(ops->handle, plugin_group, tab_envar_name[i], &tmp_err); if(!tmp_err){ char v_str[20]; snprintf(v_str,20, "%d",v2); gfal_log(GFAL_VERBOSE_TRACE, "lfc plugin : setup env var value %s to %d",tab_envar_name[i],v2); lfc_plugin_set_lfc_env(ops, tab_envar_name[i],v_str); }else{ ret = -1; } break; } default: ret =-1; g_set_error(&tmp_err,0,EINVAL, "Invalid value %s in configuration file ", tab_envar_name[i]); } } if(tmp_err) break; } G_RETURN_ERR(ret, tmp_err, err); } // Routine for internal lfc hack, need to be call for the thread safety void gfal_lfc_init_thread(struct lfc_ops* ops){ if(_local_thread_init==FALSE){ ops->_Cthread_addcid (NULL, 0, NULL, 0, (void*)pthread_self(), 0, NULL, 0); _local_thread_init= TRUE; } } int gfal_lfc_startSession(struct lfc_ops* ops, GError ** err){ /*if (ops->startsess (ops->lfc_endpoint, "gfal 2.0 auto-session") < 0){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(err,0,sav_errno,"[%s] Error while start session with lfc, lfc_endpoint: %s, Error : %s ", __func__, ops->lfc_endpoint, gfal_lfc_get_strerror(ops)); return -1; }*/ return 0; } /* --> session reused disabled -> bugged in liblfc static int gfal_lfc_endSession(struct lfc_ops* ops, GError ** err){ if (ops->endsess() < 0){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(err,0,sav_errno,"[%s] Error while start transaction with lfc, Error : %s ", __func__, gfal_lfc_get_strerror(ops)); return -1; } return 0; }*/ // session re-use void gfal_auto_maintain_session(struct lfc_ops* ops, GError ** err){ /*time_t current = time(NULL); --> disabled, thread safety problem in liblfc inthe current state if(session_timestamp < current){ pthread_mutex_lock(&m_session); if(session_timestamp < current){ gfal_lfc_endSession(ops, NULL); gfal_lfc_startSession(ops, err); current = time(NULL); session_timestamp = current + session_duration; } pthread_mutex_unlock(&m_session); }*/ } void lfc_set_session_timeout(int timeout){ pthread_mutex_lock(&m_session); session_duration = timeout; pthread_mutex_unlock(&m_session); } static int gfal_lfc_startTransaction(struct lfc_ops* ops, GError ** err){ /*if (ops->starttrans(ops->lfc_endpoint, "gfal 2.0 auto-trans")){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(err,0,sav_errno,"[%s] Error while start transaction with lfc, lfc_endpoint: %s, Error : %s ", __func__, ops->lfc_endpoint, gfal_lfc_get_strerror(ops)); return -1; }*/ return 0; } static int gfal_lfc_endTransaction(struct lfc_ops* ops, GError ** err){ if (ops->endtrans() < 0){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(err,0,sav_errno,"[%s] Error while start transaction with lfc, Error : %s ", __func__, gfal_lfc_get_strerror(ops)); return -1; } return 0; } static int gfal_lfc_abortTransaction(struct lfc_ops* ops, GError ** err){ if (ops->aborttrans() < 0){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(err,0,sav_errno,"[%s] Error while abort transaction with lfc, Error : %s ", __func__, gfal_lfc_get_strerror(ops)); return -1; } return 0; } /* * convert a guid to a lfn link with a call to the lfclib in a reantrant( buffer mode ) * @param handle plugin handle * @param guid string of the guid * @param buff_lfn buffer for the lfn result * @param sbuff_lfn size of the buffer * @param err : Error report system * @return : 0 else -1 if error and err is set * */ int gfal_convert_guid_to_lfn_r(plugin_handle handle, const char* guid, char* buff_lfn, size_t sbuff_lfn, GError ** err){ GError* tmp_err=NULL; int ret; int size = 0; struct lfc_ops* ops = (struct lfc_ops*) handle; gfal_lfc_init_thread(ops); struct lfc_linkinfo* links = NULL; if(ops->getlinks(NULL, guid, &size, &links) <0){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(err,0,sav_errno, " Error while getlinks() with lfclib, guid : %s, Error : %s ", guid, gfal_lfc_get_strerror(ops)); ret = -1; }else{ if(!links || strnlen(links[0].path, GFAL_LFN_MAX_LEN) >= GFAL_LFN_MAX_LEN){ g_set_error(err,0,EINVAL, "Error no links associated with this guid or corrupted one : %s", guid); ret = -1; }else{ g_strlcpy(buff_lfn, links[0].path, sbuff_lfn); ret =0; } } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); free(links); return ret; } /* * load the shared library and link the symbol for the LFC usage * @param name : name of the library * @param err: error report */ struct lfc_ops* gfal_load_lfc(const char* name, GError** err){ struct lfc_ops* lfc_sym=NULL; GError * tmp_err=NULL; lfc_sym = calloc(1, sizeof(struct lfc_ops)); // static resolution lfc_sym->addreplica = &lfc_addreplica; lfc_sym->get_serrno = &C__serrno; lfc_sym->sstrerror = &sstrerror; lfc_sym->creatg= &lfc_creatg; lfc_sym->delreplica = &lfc_delreplica; lfc_sym->aborttrans = &lfc_aborttrans; lfc_sym->endtrans = &lfc_endtrans; lfc_sym->getpath = &lfc_getpath; lfc_sym->getlinks = &lfc_getlinks; lfc_sym->getreplica = &lfc_getreplica; lfc_sym->lstat = &lfc_lstat; lfc_sym->mkdirg = &lfc_mkdirg; lfc_sym->seterrbuf = &lfc_seterrbuf; lfc_sym->setfsizeg = &lfc_setfsizeg; lfc_sym->setfsize = &lfc_setfsize; lfc_sym->starttrans = &lfc_starttrans; lfc_sym->statg = &lfc_statg; lfc_sym->statr = &lfc_statr; lfc_sym->symlink = &lfc_symlink; lfc_sym->unlink = &lfc_unlink; lfc_sym->access = &lfc_access; lfc_sym->chmod = &lfc_chmod; lfc_sym->rename = &lfc_rename; lfc_sym->opendirg = &lfc_opendirg; lfc_sym->rmdir = &lfc_rmdir; lfc_sym->startsess = &lfc_startsess; lfc_sym->endsess = &lfc_endsess; lfc_sym->closedir = &lfc_closedir; lfc_sym->readdir= &lfc_readdir; lfc_sym->Cthread_init = &Cthread_init; lfc_sym->readlink = &lfc_readlink; lfc_sym->readdirx= &lfc_readdirx; lfc_sym->getcomment = &lfc_getcomment; lfc_sym->setcomment = &lfc_setcomment; lfc_sym->_Cthread_addcid =&_Cthread_addcid; // dyn resolution void* lib_handle = dlopen("liblfc.so.1", RTLD_LAZY); lfc_sym->set_env = dlsym(lib_handle,"lfc_setenv"); if(lib_handle) dlclose(lib_handle); errno =0; G_RETURN_ERR(lfc_sym, tmp_err, err); } /* * convert a internal lfc statg to a POSIX lfc stat * struct must be already allocated */ int gfal_lfc_convert_statg(struct stat* output, struct lfc_filestatg* input, GError** err){ g_return_val_err_if_fail(output && input, -1, err, "[gfal_lfc_convert_statg] Invalid args statg/stat"); output->st_mode = input->filemode; output->st_nlink = input->nlink; output->st_uid = input->uid; output->st_gid = input->gid; output->st_size = input->filesize; output->st_atime = input->atime; output->st_ctime = input->ctime; output->st_mtime = input->mtime; return 0; } /* * convert a internal lfc lstat to a POSIX lfc stat * struct must be already allocated */ int gfal_lfc_convert_lstat(struct stat* output, struct lfc_filestat* input, GError** err){ g_return_val_err_if_fail(output && input, -1, err, "[gfal_lfc_convert_lstat] Invalid args statg/stat"); output->st_mode = input->filemode; output->st_nlink = input->nlink; output->st_uid = input->uid; output->st_gid = input->gid; output->st_size = input->filesize; output->st_atime = input->atime; output->st_ctime = input->ctime; output->st_mtime = input->mtime; return 0; } /* * basic wrapper mkdir to the lfc api */ static int gfal_lfc_mkdir(struct lfc_ops* ops, const char* path, mode_t mode, GError** err){ char struid[37]; gfal_generate_guidG(struid,NULL); if(ops->mkdirg (path, struid, mode)){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(err,0,sav_errno,"[%s] Error while mkdir call in the lfc %s", __func__,strerror(sav_errno)); return -1; } return 0; } /* * Begin a recursive call on mkdir to create a full tree path * @warning not safe, please ensure that string begin by "/" * */ int gfal_lfc_mkdir_rec(struct lfc_ops* ops, char* browser_path, const char* full_path, mode_t mode, GError** err){ int ret=-1; char* next_sep= strchr(browser_path, G_DIR_SEPARATOR); if( next_sep == NULL || *(next_sep+1) == '\0'){ // last folder return gfal_lfc_mkdir(ops, full_path, mode, err); }else{ const int path_size =next_sep - full_path; GError* tmp_err = NULL; char path[ path_size+1]; *((char*) mempcpy(path, full_path, path_size )) = '\0'; ret = gfal_lfc_mkdir(ops, path, ( 0700 | mode) , &tmp_err); if( ret== 0 || tmp_err->code == EEXIST || tmp_err->code == EACCES){ g_clear_error(&tmp_err); return gfal_lfc_mkdir_rec(ops, next_sep+1, full_path, mode, err); } g_propagate_error(err, tmp_err); return ret; } } /* * Implementation of mkdir -p call on the lfc * * */ int gfal_lfc_ifce_mkdirpG(struct lfc_ops* ops,const char* path, mode_t mode, gboolean pflag, GError** err){ g_return_val_err_if_fail( ops && path, -1, err, "[gfal_lfc_ifce_mkdirpG] Invalid args in ops or/and path"); int ret; GError* tmp_err = NULL; ret = gfal_lfc_startTransaction(ops, &tmp_err); if(ret >=0 ){ ret = gfal_lfc_mkdir(ops, path, mode, &tmp_err); // try to create the directory, suppose the non-recursive case if( tmp_err && tmp_err->code == ENOENT && pflag){ // failure on the simple call, try to do a recursive create errno = 0; g_clear_error(&tmp_err); ret = gfal_lfc_mkdir_rec(ops, (char*)path+1, path, mode, &tmp_err); } if( ret == 0) ret =gfal_lfc_endTransaction(ops,&tmp_err); else gfal_lfc_abortTransaction(ops,NULL); } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); else errno = 0; return ret; } /* * return a list of surls from a getreplica request * */ char ** gfal_lfc_getSURL(struct lfc_ops* ops, const char* path, GError** err){ struct lfc_filereplica* list = NULL; char **replicas = NULL; int size=0,i; if (ops->getreplica (path, NULL, NULL, &size, &list) < 0) { int myerrno = gfal_lfc_get_errno(ops); g_set_error(err, 0, myerrno, "[%s] error reported from lfc : %s", __func__, gfal_lfc_get_strerror(ops)); return NULL; } replicas = malloc( sizeof(char*)* (size+1)); replicas[size]= NULL; for(i=0; i< size; ++i){ replicas[i] = strndup(list[i].sfn, GFAL_URL_MAX_LEN); } free(list); return replicas; } /* * return the comment associated with this path * follow the xattr behavior, if buff==NULL, return only the appropriate buffer size for the call * @return the size of the comment or -1 if error */ int gfal_lfc_getComment(struct lfc_ops *ops, const char* lfn, char* buff, size_t s_buff, GError** err){ g_return_val_err_if_fail(lfn, -1, err, "bad path"); const size_t req_size = CA_MAXCOMMENTLEN+1; char local_buff[CA_MAXCOMMENTLEN+1]; int ret, resu_len; if(buff == NULL || s_buff == 0) return req_size; else{ ret = ops->getcomment(lfn, local_buff); if(ret < 0){ const int sav_errno = gfal_lfc_get_errno(ops); if(sav_errno == ENOENT){ // no comments is define or not file exist, can be ambigous resu_len = 0; *buff = '\0'; ret = 0; }else g_set_error(err,0,sav_errno, "[%s] Error report from LFC : %s",__func__, gfal_lfc_get_strerror(ops) ); }else{ resu_len = strnlen(local_buff, MIN(s_buff, req_size)); *((char*)mempcpy(buff, local_buff,resu_len )) = '\0'; } return (ret==0)?(resu_len):-1; } } int gfal_lfc_setComment(struct lfc_ops * ops, const char* lfn, const char* buff, size_t s_buff, GError** err){ g_return_val_err_if_fail(lfn, -1, err, "bad path"); int res = -1; char internal_buff[GFAL_URL_MAX_LEN]; GError* tmp_err=NULL; if(s_buff > 0 && buff != NULL){ *((char*)mempcpy(internal_buff, buff, MIN(s_buff, GFAL_URL_MAX_LEN-1))) = '\0'; if( (res = ops->setcomment(lfn, internal_buff)) !=0 ){ const int sav_errno = gfal_lfc_get_errno(ops); g_set_error(err,0,sav_errno, "[%s] Error report from LFC : %s",__func__, gfal_lfc_get_strerror(ops) ); } }else{ g_set_error(&tmp_err, 0, EINVAL, "sizeof the buffer incorrect"); } return res; } /* * provide the checksum for a given file * @return the size of the checksum string or -1 if error */ int gfal_lfc_getChecksum(struct lfc_ops* ops, const char* lfn, lfc_checksum* checksum, GError** err){ g_return_val_err_if_fail(ops && checksum, -1, err, " inval args") GError * tmp_err=NULL; struct lfc_filestatg statbuf; memset(&statbuf, 0, sizeof(struct lfc_filestatg)); int ret; if( (ret = gfal_lfc_statg(ops, lfn, &statbuf, &tmp_err)) == 0){ *((char*) mempcpy(checksum->type, statbuf.csumtype, sizeof(char)*3)) = '\0'; *((char*) mempcpy(checksum->value, statbuf.csumvalue, sizeof(char)*33)) = '\0'; } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]",__func__); return ret; } int gfal_lfc_statg(struct lfc_ops* ops, const char* lfn, struct lfc_filestatg* statbuf, GError** err){ int ret = ops->statg(lfn, NULL, statbuf); if(ret != 0){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(err,0,sav_errno, "[%s] Error report from LFC : %s",__func__, gfal_lfc_get_strerror(ops) ); } return ret; } ssize_t g_strv_catbuff(char** strv, char* buff, size_t size){ if(strv == NULL) return -1; const size_t sbuff = g_strv_length(strv); ssize_t resu=0; size_t i; char* p = buff; for(i=0; i < sbuff; ++i){ const size_t s_str= strnlen(strv[i], GFAL_URL_MAX_LEN); resu += s_str+1; if(buff && size){ *(p = (char*) mempcpy(p,strv[i], MIN(size, s_str) ))= '\0'; ++p; } size = (size >= s_str+1)?(size-s_str-1):0; } return resu; } int gfal_lfc_get_errno(struct lfc_ops* ops){ int lfc_error; #if defined(_REENTRANT) || defined(_THREAD_SAFE) || (defined(_WIN32) && (defined(_MT) || defined(_DLL))) lfc_error = *(ops->get_serrno()); #else lfc_error = *ops->get_serrno ; #endif switch(lfc_error){ case ESEC_BAD_CREDENTIALS: lfc_error = EPERM; break; default: lfc_error = (lfc_error < 1000)?lfc_error:ECOMM; } return lfc_error; } char* gfal_lfc_get_strerror(struct lfc_ops* ops){ #if defined(_REENTRANT) || defined(_THREAD_SAFE) || (defined(_WIN32) && (defined(_MT) || defined(_DLL))) return ops->sstrerror (*(ops->get_serrno())); #else return ops->sstrerror (*ops->get_serrno); #endif } /* * @brief generate an uiid string * Generate a uuid string and copy it in the buf, * @warning buff must be > uuid size ( 37 bytes ) * * */ void gfal_generate_guidG(char* buf, GError** err){ uuid_t myuid; uuid_generate_random(myuid); uuid_unparse (myuid, buf); uuid_clear(myuid); } gfal2-2.3.0/src/common/lfc/gfal_common_lfc_open.h0000644000175000017500000000202112164561703021171 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * file gfal_common_lfc_open.c brief header for lfc implementation for open/read/write/close author Adrien Devresse date 06/07/2011 */ #include #include #include "gfal_common_lfc.h" #include "lfc_ifce_ng.h" gfal_file_handle lfc_openG(plugin_handle ch, const char* path, int flag, mode_t mode, GError** err); gfal2-2.3.0/src/common/lfc/gfal_common_lfc.h0000644000175000017500000000345012164561703020157 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * file gfal_common_lfc.h brief header file for the lfc plugin module author Adrien Devresse */ #define GFAL_LFC_LIBRARY_NAME "liblfc.so.1" #define GFAL_LFC_PREFIX "lfn:" #define GFAL_LFC_PREFIX2 "lfc://" #define GFAL_LFC_GUID_PREFIX "guid:" #define GFAL_LFC_GUID_PREFIX_LEN 5 #define GFAL_LFC_PREFIX_LEN 4 #define LFC_XATTR_GUID "user.guid" #define LFC_XATTR_SURLS "user.replicas" #define LFC_MAX_XATTR_LEN 2048 #define LFC_BUFF_SIZE 2048 #define LFC_PARAMETER_NAMESPACE "lfc" #define LFC_PARAMETER_HOST "host" #include #include #include #include #include #include #include "../../externals/gsimplecache/gcachemain.h" // protos gboolean gfal_checker_guid(const char* guid, GError** err); gfal_plugin_interface lfc_initG(gfal_handle, GError**); gboolean gfal_lfc_check_lfn_url(plugin_handle handle, const char* lfn_url, plugin_mode mode, GError** err); char ** lfc_getSURLG(plugin_handle handle, const char * path, GError** err); void lfc_set_session_timeout(int timeout); gfal2-2.3.0/src/common/lfc/lfc_ifce_ng.h0000644000175000017500000001224112164561703017266 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * lfc_ifce_ng.h * internal header of the lfc plugin module * author Adrien Devresse */ #define GFAL_MAX_LFCHOST_LEN 1024 #include #include #include #include #include #include #include #include #include #define LFC_ENV_VAR_HOST "LFC_HOST" #define LFC_GROUP_CONFIG_VAR "LFC PLUGIN" #define LFC_HOST_CONFIG_VAR LFC_ENV_VAR_HOST #define LFC_ENV_VAR_CONNTIMEOUT "LFC_CONNTIMEOUT" #define LFC_ENV_VAR_CONRETRY "LFC_CONRETRY" #define LFC_ENV_VAR_CONRETRYINT "LFC_CONRETRYINT" #define LFC_ENV_VAR_GROUP_PLUGIN "LFC PLUGIN" typedef struct _lfc_checksum{ char type[255]; char value[GFAL_URL_MAX_LEN]; } lfc_checksum; struct lfc_ops { char* lfc_endpoint_predefined; // default lfc env var char* lfc_conn_retry; char* lfc_conn_try_int; char* lfc_conn_timeout; regex_t rex; // regular expression compiled gfal_handle handle; GSimpleCache* cache_stat; #if defined(_REENTRANT) || defined(_THREAD_SAFE) || (defined(_WIN32) && (defined(_MT) || defined(_DLL))) int* (*get_serrno)(void); #else int value_serrno; #endif char *(*sstrerror)(int); int (*addreplica)(const char *, struct lfc_fileid *, const char *, const char *, const char, const char, const char *, const char *); int (*creatg)(const char *, const char *, mode_t); int (*delreplica)(const char *, struct lfc_fileid *, const char *); int (*aborttrans)(); int (*endtrans)(); int (*getpath)(char *, u_signed64, char *); int (*getlinks)(const char *, const char *, int *, struct lfc_linkinfo **); int (*getreplica)(const char *, const char *, const char *, int *, struct lfc_filereplica **); int (*setcomment) (const char * path, char * comment ); int (*getcomment) (const char * path, char * comment); int (*lstat)(const char *, struct lfc_filestat *); int (*readlink)(const char *, char *, size_t); int (*mkdirg)(const char *, const char *, mode_t); int (*seterrbuf)(char *, int); int (*setfsizeg)(const char *, u_signed64, const char *, char *); int (*setfsize)(const char *, struct lfc_fileid *, u_signed64); int (*starttrans)(char *, char *); int (*statg)(const char *, const char *, struct lfc_filestatg *); int (*statr)(const char *, struct lfc_filestatg *); int (*symlink)(const char *, const char *); int (*unlink)(const char *); int (*access)(const char *, int); int (*chmod)(const char *, mode_t); int (*closedir)(lfc_DIR*); int (*rename)(const char *, const char *); lfc_DIR *(*opendirg)(const char *, const char *); struct dirent* (*readdir)(lfc_DIR *); struct lfc_direnstat* (*readdirx)(lfc_DIR *dirp); int (*rmdir)(const char *); int (*startsess) (char *, char *); int (*endsess) (); int (*Cthread_init)(); int (*_Cthread_addcid)(char *, int, char *, int, Cth_pid_t *, unsigned, void *(*)(void *), int); int (*set_env)(const char*, const char*, int); }; int lfc_configure_environment(struct lfc_ops * ops, const char* host, GError** err); int gfal_lfc_get_errno(struct lfc_ops* ops); int gfal_lfc_regex_compile(regex_t* rex, GError** err); char* gfal_lfc_get_strerror(struct lfc_ops* ops); char* gfal_convert_guid_to_lfn(plugin_handle handle, char* guid, GError ** err); int gfal_convert_guid_to_lfn_r(plugin_handle handle, const char* guid, char* buff_lfn, size_t sbuff_lfn, GError ** err); int gfal_lfc_statg(struct lfc_ops* ops, const char*, struct lfc_filestatg* resu, GError** err); int gfal_lfc_getComment(struct lfc_ops *ops, const char* lfn, char* buff, size_t s_buff, GError** err); int gfal_lfc_setComment(struct lfc_ops * ops, const char* lfn, const char* buff, size_t s_buff, GError** err); int gfal_lfc_getChecksum(struct lfc_ops* ops, const char* lfn, lfc_checksum* checksum, GError** err); int gfal_lfc_convert_statg(struct stat* output, struct lfc_filestatg* input, GError** err); int gfal_lfc_ifce_mkdirpG(struct lfc_ops* ops,const char* path, mode_t mode, gboolean pflag, GError** err); char ** gfal_lfc_getSURL(struct lfc_ops* ops, const char* path, GError** err); void gfal_lfc_init_thread(struct lfc_ops* ops); int gfal_lfc_startSession(struct lfc_ops* ops, GError ** err); void gfal_auto_maintain_session(struct lfc_ops* ops, GError ** err); ssize_t g_strv_catbuff(char** strv, char* buff, size_t size); int gfal_lfc_convert_lstat(struct stat* output, struct lfc_filestat* input, GError** err); void gfal_generate_guidG(char* buf, GError** err); struct lfc_ops* gfal_load_lfc(const char* name, GError** err); gfal2-2.3.0/src/common/lfc/gfal_common_lfc_open.c0000644000175000017500000000353512164561703021177 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* @file gfal_common_lfc_open.c @brief lfc implementation for open/read/write/close @author Adrien Devresse @date 29/04/2011 */ #include #include #include #include #include #include #include #include "gfal_common_lfc.h" #include "lfc_ifce_ng.h" /* * open function for the srm plugin */ gfal_file_handle lfc_openG(plugin_handle ch, const char* path, int flag, mode_t mode, GError** err){ gfal_handle handle = ((struct lfc_ops*)ch)->handle; GError* tmp_err=NULL; gfal_file_handle res=NULL; gfal_log(GFAL_VERBOSE_TRACE, " %s ->",__func__); char** surls = lfc_getSURLG(ch, path, &tmp_err); if(surls != 0 && tmp_err == NULL){ char** p = surls; while( *p != NULL){ gfal_log(GFAL_VERBOSE_VERBOSE, " LFC resolution %s -> %s ", path, *p); res = gfal_plugin_openG(handle, *p, flag, mode, &tmp_err); if(res || ( tmp_err && tmp_err->code!=ECOMM)) break; p++; } } g_strfreev(surls); if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return res; } gfal2-2.3.0/src/common/lfc/gfal_common_lfc.c0000644000175000017500000007400012164561703020151 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * file gfal_common_lfc.c brief file for the lfc plugin module author Adrien Devresse version 0.0.1 date 06/07/2011 */ #include #include #include #include #include #include #include #include #include #include "gfal_common_lfc.h" #include "gfal_common_lfc_open.h" #include #include #include "lfc_ifce_ng.h" static gboolean init_thread = FALSE; pthread_mutex_t m_lfcinit=PTHREAD_MUTEX_INITIALIZER; typedef struct _lfc_opendir_handle{ char url[GFAL_URL_MAX_LEN]; struct dirent current_dir; } *lfc_opendir_handle; static char* file_xattr[] = { GFAL_XATTR_GUID, GFAL_XATTR_REPLICA, GFAL_XATTR_COMMENT, NULL }; //GFAL_XATTR_CHKSUM_TYPE, GFAL_XATTR_CHKSUM_VALUE removed attributes, no checksum is correctly set on LFC /* * just return the name of the layer */ const char* lfc_getName(){ return "lfc_plugin"; } /* * convert the lfn url for internal usage * result must be free */ static inline char* lfc_urlconverter(const char * lfn_url, const char* prefix){ const int pref_len = strlen(prefix); const int strsize = strnlen(lfn_url, GFAL_URL_MAX_LEN-1); const int res_len = strsize-pref_len; char* p, *pdest, *porg; p = pdest = g_malloc(sizeof(char) * (res_len+1)); porg = (char*)lfn_url + pref_len; while((pdest - p) < res_len && (porg - lfn_url) < strsize){ // remove double sep, remove end sep if((*porg == '/' && *(porg+1) == '/') == FALSE && (*porg == '/' && *(porg+1) == '\0') == FALSE ){ *pdest = *porg; ++pdest; } ++porg; } *(pdest) = '\0'; return p; } /* * convert the lfc type url "lfc://" to an url * result must be free */ static inline int lfc_full_urlconverter(const char * lfn_url, char** host, char** path, GError** err){ GError* tmp_err=NULL; int res = -1; const int pref_len = strlen(GFAL_LFC_PREFIX2); const int strsize = strnlen(lfn_url, GFAL_URL_MAX_LEN-1); const int res_len = strsize-pref_len; char *p_org, *p_end, *p; p= (char*)lfn_url + pref_len; p_end = (char*)lfn_url + strsize; if(res_len > 0){ while(p < p_end && *p =='/') ++p; p_org = p; while(p < p_end && *p !='/') ++p; if(p_org < p && p < p_end){ if(host) *host = g_strndup(p_org, p-p_org); if(path) *path = g_strndup(p, p_end - p); res =0; } } if(res !=0){ g_set_error(&tmp_err, 0, EINVAL, "Invalid lfc:// url"); } return res; } /// manage convertion for all lfc url type : lfc://, lfn://, guid: /// return 0 if success, or -1 if bad url static int url_converter(plugin_handle handle, const char * url, char** host, char** path, GError** err){ GError* tmp_err=NULL; int res = -1; if(strnlen(url, 5) != 5){ // bad string size, return empty string gfal_log(GFAL_VERBOSE_VERBOSE, "lfc url converter -> bad url size"); return res; } if(strncmp(url, "lfn", 3) == 0){ if(path) *path= lfc_urlconverter(url, GFAL_LFC_PREFIX); res =0; }else if(strncmp(url, "lfc",3) ==0){ res= lfc_full_urlconverter(url, host, path, &tmp_err); }else{ char buff_lfn[GFAL_URL_MAX_LEN]; res = gfal_convert_guid_to_lfn_r(handle, url + GFAL_LFC_GUID_PREFIX_LEN, buff_lfn, GFAL_URL_MAX_LEN, &tmp_err); if(path) *path= g_strdup(buff_lfn); } G_RETURN_ERR(res, tmp_err, err); } /* * Deleter to unload the lfc part * */ static void lfc_destroyG(plugin_handle handle){ struct lfc_ops* ops = (struct lfc_ops*) handle; if(ops){ gsimplecache_delete(ops->cache_stat); regfree(&(ops->rex)); free(ops); } } /* * Implementation of the chmod function with the LFC plugin * return 0 or the errno if error, or set GError if serious error */ int lfc_chmodG(plugin_handle handle, const char* path, mode_t mode, GError** err){ g_return_val_err_if_fail(handle && path, -1, err, "[lfc_chmodG] Invalid valid value in handle/path "); GError* tmp_err=NULL; struct lfc_ops* ops = (struct lfc_ops*) handle; int ret=-1; char *url_path=NULL, *url_host=NULL; if( (ret = url_converter(handle, path, &url_host, &url_path, &tmp_err)) ==0){ ret= lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ gfal_lfc_init_thread(ops); gfal_auto_maintain_session(ops, &tmp_err); ret = ops->chmod(url_path, mode); if(ret < 0){ const int myerrno = gfal_lfc_get_errno(ops); g_set_error(&tmp_err, 0, myerrno, "Errno reported from lfc : %s ", gfal_lfc_get_strerror(ops)); }else{ errno =0; gsimplecache_remove_kstr(ops->cache_stat, url_path); } } } g_free(url_path); g_free(url_host); G_RETURN_ERR(ret, tmp_err, err); } /* * * implementation of the access call with the lfc plugin * return 0 or -1 if error and report GError** with error code and message */ int lfc_accessG(plugin_handle handle, const char* lfn, int mode, GError** err){ g_return_val_err_if_fail(handle && lfn, -1, err, "[lfc_accessG] Invalid value in arguments handle or/and path"); GError* tmp_err=NULL; int ret =-1; struct lfc_ops* ops = (struct lfc_ops*) handle; char *url_path=NULL, *url_host=NULL; if( (ret = url_converter(handle, lfn, &url_host, &url_path, &tmp_err)) ==0){ ret= lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ gfal_lfc_init_thread(ops); gfal_auto_maintain_session(ops, &tmp_err); ret = ops->access(url_path, mode); if(ret <0){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(&tmp_err, 0, sav_errno, "lfc access error, file : %s, error : %s", lfn, gfal_lfc_get_strerror(ops) ); }else errno=0; } } g_free(url_path); g_free(url_host); G_RETURN_ERR(ret, tmp_err, err); } /* * Implementation of the rename call for the lfc plugin * return 0 if success else -1 if error and set GError * * */ int lfc_renameG(plugin_handle handle, const char* oldpath, const char* newpath, GError** err){ g_return_val_err_if_fail(handle && oldpath && newpath, -1, err, "[lfc_renameG] Invalid value in args handle/oldpath/newpath"); struct lfc_ops* ops = (struct lfc_ops*) handle; GError* tmp_err=NULL; int ret =-1; char *source_url_path=NULL, *source_url_host=NULL; char *dest_url_path=NULL, *dest_url_host=NULL; if( (ret = url_converter(handle, oldpath, &source_url_host, &source_url_path, &tmp_err)) ==0 && (ret = url_converter(handle, newpath, &dest_url_host, &dest_url_path, &tmp_err)) ==0){ ret= lfc_configure_environment(ops, source_url_host, &tmp_err); if(!tmp_err){ gfal_lfc_init_thread(ops); gfal_auto_maintain_session(ops, &tmp_err); ret = ops->rename(source_url_path, dest_url_path); if(ret <0){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(&tmp_err,0,sav_errno, "Error report from LFC : %s", gfal_lfc_get_strerror(ops) ); }else{ gsimplecache_remove_kstr(ops->cache_stat, source_url_path); } } } g_free(source_url_path); g_free(source_url_host); g_free(dest_url_path); g_free(dest_url_host); G_RETURN_ERR(ret, tmp_err, err); } /* * Implementation of the symlinkG call for the lfc plugin * return 0 if success else -1 if error and set GError * * */ int lfc_symlinkG(plugin_handle handle, const char* oldpath, const char* newpath, GError** err){ g_return_val_err_if_fail(handle && oldpath && newpath, -1, err, "[lfc_symlinkG] Invalid value in args handle/oldpath/newpath"); struct lfc_ops* ops = (struct lfc_ops*) handle; GError* tmp_err=NULL; int ret =-1; char *url_path=NULL, *url_host=NULL; char *link_url_path=NULL, *link_url_host=NULL; if( (ret = url_converter(handle, oldpath, &url_host, &url_path, &tmp_err)) ==0 && (ret = url_converter(handle, newpath, &link_url_host, &link_url_path, &tmp_err)) ==0 ){ ret= lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ gfal_lfc_init_thread(ops); gfal_auto_maintain_session(ops, &tmp_err); ret = ops->symlink(url_path, link_url_path); if(ret <0){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(&tmp_err,0,sav_errno, "Error report from LFC : %s", gfal_lfc_get_strerror(ops) ); } } } g_free(url_path); g_free(url_host); G_RETURN_ERR(ret, tmp_err, err); } /* * execute a posix stat request on the lfc * return 0 and set struct if correct answer, else return negative value and set GError * */ int lfc_statG(plugin_handle handle, const char* path, struct stat* st, GError** err){ g_return_val_err_if_fail(handle && path && st, -1, err, "[lfc_statG] Invalid value in args handle/path/stat"); GError* tmp_err=NULL; int ret=-1; struct lfc_ops* ops = (struct lfc_ops*) handle; char *url_path=NULL, *url_host=NULL; if( (ret = url_converter(handle, path, &url_host, &url_path, &tmp_err)) ==0){ ret= lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ gfal_lfc_init_thread(ops); gfal_auto_maintain_session(ops, &tmp_err); struct lfc_filestatg statbuf; ret = gfal_lfc_statg(ops, url_path, &statbuf, &tmp_err); if(ret == 0){ ret= gfal_lfc_convert_statg(st, &statbuf, err); errno=0; } } } g_free(url_path); g_free(url_host); G_RETURN_ERR(ret, tmp_err, err); } /* * execute a posix lstat request on the lfc ( stat request with link information) * return 0 if success and set the struct buf else return negative value and set GError */ static int lfc_lstatG(plugin_handle handle, const char* path, struct stat* st, GError** err){ g_return_val_err_if_fail(handle && path && st, -1, err, "[lfc_lstatG] Invalid value in args handle/path/stat"); GError* tmp_err=NULL; struct lfc_ops* ops = (struct lfc_ops*) handle; int ret=-1; char *url_path=NULL, *url_host=NULL; if( (ret = url_converter(handle, path, &url_host, &url_path, &tmp_err)) ==0){ ret= lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ struct lfc_filestat statbuf; if( ( ret= gsimplecache_take_one_kstr(ops->cache_stat, url_path, st)) == 0){ // take the version of the buffer gfal_log(GFAL_VERBOSE_TRACE, " lfc_lstatG -> value taken from cache"); }else{ gfal_log(GFAL_VERBOSE_TRACE, " lfc_lstatG -> value not in cache, do normal call"); gfal_lfc_init_thread(ops); gfal_auto_maintain_session(ops, &tmp_err); if(!tmp_err){ ret = ops->lstat(url_path, &statbuf); if(ret != 0){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(&tmp_err,0,sav_errno, "Error report from LFC : %s", gfal_lfc_get_strerror(ops) ); }else{ ret= gfal_lfc_convert_lstat(st, &statbuf, err); errno=0; } } } } } g_free(url_path); g_free(url_host); G_RETURN_ERR(ret, tmp_err, err); } /* * Execute a posix mkdir on the lfc * return 0 on success else -1 and err is set with the correct value * */ static int lfc_mkdirpG(plugin_handle handle, const char* path, mode_t mode, gboolean pflag, GError** err){ g_return_val_err_if_fail(handle && path , -1, err, "[lfc_mkdirpG] Invalid value in args handle/path"); GError* tmp_err = NULL; int ret= -1; struct lfc_ops* ops = (struct lfc_ops*) handle; char *url_path=NULL, *url_host=NULL; if( (ret = url_converter(handle, path, &url_host, &url_path, &tmp_err)) ==0){ ret= lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ gfal_lfc_init_thread(ops); gfal_auto_maintain_session(ops, &tmp_err); ret =gfal_lfc_ifce_mkdirpG(ops, url_path, mode, pflag, &tmp_err); } } g_free(url_path); g_free(url_host); G_RETURN_ERR(ret, tmp_err, err); } /* * Execute a rmdir on the lfc * return 0 on success else -1 and err is set with the correct value * */ static int lfc_rmdirG(plugin_handle handle, const char* path, GError** err){ g_return_val_err_if_fail( handle && path , -1, err, "[lfc_rmdirG] Invalid value in args handle/path"); GError* tmp_err=NULL; int ret = -1; struct lfc_ops* ops = (struct lfc_ops*) handle; gfal_lfc_init_thread(ops); char *url_path=NULL, *url_host=NULL; if( (ret = url_converter(handle, path, &url_host, &url_path, &tmp_err)) ==0){ ret= lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ ret = ops->rmdir(url_path); if( ret < 0){ int sav_errno = gfal_lfc_get_errno(ops); sav_errno = (sav_errno==EEXIST)?ENOTEMPTY:sav_errno; // convert wrong reponse code g_set_error(err,0, sav_errno, "Error report from LFC %s", gfal_lfc_get_strerror(ops) ); } } } g_free(url_path); g_free(url_host); G_RETURN_ERR(ret, tmp_err, err); } /* * execute an opendir func to the lfc * */ static gfal_file_handle lfc_opendirG(plugin_handle handle, const char* path, GError** err){ g_return_val_err_if_fail( handle && path , NULL, err, "[lfc_rmdirG] Invalid value in args handle/path"); GError* tmp_err=NULL; struct lfc_ops* ops = (struct lfc_ops*) handle; lfc_opendir_handle oh=NULL; DIR* d = NULL; char *url_path=NULL, *url_host=NULL; if( url_converter(handle, path, &url_host, &url_path, &tmp_err) ==0 ){ lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ gfal_lfc_init_thread(ops); gfal_auto_maintain_session(ops, &tmp_err); d = (DIR*) ops->opendirg(url_path,NULL); if(d==NULL){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(err,0, sav_errno, "Error report from LFC %s", gfal_lfc_get_strerror(ops) ); }else{ oh = g_new0(struct _lfc_opendir_handle,1); g_strlcpy(oh->url, url_path, GFAL_URL_MAX_LEN ); } } } g_free(url_path); g_free(url_host); G_RETURN_ERR(((d)?(gfal_file_handle_new2(lfc_getName(), (gpointer) d, (gpointer) oh, path)):NULL), tmp_err, err); } static struct dirent* lfc_convert_dirent_struct(struct lfc_ops *ops , struct dirent* dir , struct stat* st, struct Cns_direnstat* filestat, const char* url){ struct stat st2; if(st == NULL) st = &st2; if(filestat == NULL) return NULL; GSimpleCache* cache = ops->cache_stat; char fullurl[GFAL_URL_MAX_LEN]; g_strlcpy(fullurl, url, GFAL_URL_MAX_LEN); g_strlcat(fullurl, "/", GFAL_URL_MAX_LEN); g_strlcat(fullurl, filestat->d_name, GFAL_URL_MAX_LEN); st->st_mode = (mode_t) filestat->filemode; st->st_nlink = (nlink_t) filestat->nlink; st->st_uid = (uid_t)filestat->uid; st->st_gid = (gid_t)filestat->gid; st->st_size = (off_t) filestat->filesize; st->st_blocks = 0; st->st_blksize = 0; gsimplecache_add_item_kstr(cache, fullurl, (void*) st); dir->d_off +=1; g_strlcpy(dir->d_name, filestat->d_name, NAME_MAX); return dir; } /* * Execute a readdirpp func on the lfc * */ static struct dirent* lfc_readdirppG(plugin_handle handle, gfal_file_handle fh, struct stat* st, GError** err){ g_return_val_err_if_fail( handle && fh , NULL, err, "[lfc_rmdirG] Invalid value in args handle/path"); GError* tmp_err=NULL; int sav_errno =0; struct lfc_ops *ops = (struct lfc_ops*) handle; gfal_lfc_init_thread(ops); gfal_auto_maintain_session(ops, &tmp_err); lfc_opendir_handle oh = (lfc_opendir_handle )fh->ext_data; struct dirent* ret= lfc_convert_dirent_struct(ops, ((struct dirent*) &oh->current_dir), st, (ops->readdirx( (lfc_DIR*)fh->fdesc)), oh->url); if(ret ==NULL && (sav_errno =gfal_lfc_get_errno(ops)) ){ g_set_error(err,0, sav_errno, "[%s] Error report from LFC %s", __func__, gfal_lfc_get_strerror(ops) ); } return ret; } /* * Execute a readdir func on the lfc * */ static struct dirent* lfc_readdirG(plugin_handle handle, gfal_file_handle fh, GError** err){ return lfc_readdirppG(handle, fh, NULL, err); } /* * execute an closedir func on the lfc * */ static int lfc_closedirG(plugin_handle handle, gfal_file_handle fh, GError** err){ g_return_val_err_if_fail( handle && fh , -1, err, "[lfc_rmdirG] Invalid value in args handle/path"); struct lfc_ops* ops = (struct lfc_ops*) handle; gfal_lfc_init_thread(ops); int ret = ops->closedir(fh->fdesc); if(ret != 0){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(err,0, sav_errno, "[%s] Error report from LFC %s", __func__, gfal_lfc_get_strerror(ops) ); }else{ g_free(fh->ext_data); gfal_file_handle_delete(fh); } return ret; } /* * resolve the lfc link to the surls */ char ** lfc_getSURLG(plugin_handle handle, const char * path, GError** err){ g_return_val_err_if_fail( handle && path , NULL, err, "[lfc_getSURLG] Invalid value in args handle/path"); GError* tmp_err=NULL; char** resu = NULL; struct lfc_ops* ops = (struct lfc_ops*) handle; gfal_lfc_init_thread(ops); char *url_path=NULL, *url_host=NULL; if( (url_converter(handle, path, &url_host, &url_path, &tmp_err)) ==0){ (void) lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ resu = gfal_lfc_getSURL(ops, url_path, &tmp_err); } } g_free(url_path); g_free(url_host); G_RETURN_ERR(resu, tmp_err, err); } /* * lfc getxattr for the path -> surls resolution * */ ssize_t lfc_getxattr_getsurl(plugin_handle handle, const char* path, void* buff, size_t size, GError** err){ GError* tmp_err=NULL; ssize_t res = -1; char** tmp_ret = lfc_getSURLG(handle, path, &tmp_err); if(tmp_ret != NULL){ res = g_strv_catbuff(tmp_ret, buff, size); g_strfreev(tmp_ret); } G_RETURN_ERR(res, tmp_err, err); } /* * lfc getxattr for the path -> guid resolution * */ ssize_t lfc_getxattr_getguid(plugin_handle handle, const char* path, void* buff, size_t size, GError** err){ GError* tmp_err=NULL; ssize_t res = -1; struct lfc_ops* ops = (struct lfc_ops*) handle; char *url_path=NULL, *url_host=NULL; if( ( res = url_converter(handle, path, &url_host, &url_path, &tmp_err)) ==0){ res= lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ if(size == 0 || buff ==NULL){ // just return the size of a guid res = sizeof(char) * 36; // strng uuid are 36 bytes long }else{ struct lfc_filestatg statbuf; int tmp_ret = gfal_lfc_statg(ops, url_path, &statbuf, &tmp_err); if(tmp_ret == 0){ res = strnlen(statbuf.guid, GFAL_URL_MAX_LEN); g_strlcpy(buff,statbuf.guid, size); errno=0; } } } } g_free(url_path); g_free(url_host); G_RETURN_ERR(res, tmp_err, err); } /* * lfc getxattr for path -> comment resolution * * */ ssize_t lfc_getxattr_comment(plugin_handle handle, const char* path, void* buff, size_t size, GError** err){ GError* tmp_err=NULL; ssize_t res = -1; struct lfc_ops* ops = (struct lfc_ops*) handle; char *url_path=NULL, *url_host=NULL; if( ( res = url_converter(handle, path, &url_host, &url_path, &tmp_err)) ==0){ res= lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ res = gfal_lfc_getComment(ops, url_path, buff, size, &tmp_err); } } g_free(url_path); g_free(url_host); G_RETURN_ERR(res, tmp_err, err); } /* * lfc getxattr implem * */ ssize_t lfc_getxattrG(plugin_handle handle, const char* path, const char* name, void* buff, size_t size, GError** err){ GError* tmp_err=NULL; ssize_t res = -1; struct lfc_ops* ops = (struct lfc_ops*) handle; gfal_lfc_init_thread(ops); gfal_auto_maintain_session(ops, &tmp_err); if( strncmp(name, GFAL_XATTR_GUID, LFC_MAX_XATTR_LEN) == 0){ res = lfc_getxattr_getguid(handle, path, buff, size, &tmp_err ); }else if(strncmp(name, GFAL_XATTR_REPLICA, LFC_MAX_XATTR_LEN) == 0){ res = lfc_getxattr_getsurl(handle, path, buff, size, &tmp_err); }else if(strncmp(name, GFAL_XATTR_COMMENT, LFC_MAX_XATTR_LEN) == 0){ res= lfc_getxattr_comment(handle, path, buff, size, &tmp_err); }else{ g_set_error(&tmp_err,0, ENOATTR, "axttr not found"); res = -1; } G_RETURN_ERR(res, tmp_err, err); } /* * lfc getxattr implem * */ ssize_t lfc_listxattrG(plugin_handle handle, const char* path, char* list, size_t size, GError** err){ ssize_t res = 0; char** p= file_xattr; char* plist= list; GError* tmp_err=NULL; struct stat st; if( lfc_lstatG(handle, path, &st, &tmp_err) < 0){ res = -1; }else{ if( S_ISDIR(st.st_mode) == FALSE){ while(*p != NULL){ const int size_str = strlen(*p)+1; if( size > res && size - res >= size_str) plist = mempcpy(plist, *p, size_str* sizeof(char) ); res += size_str; p++; } } } G_RETURN_ERR(res, tmp_err, err); } /* * setxattr function special for comments * */ int lfc_setxattr_comment(plugin_handle handle, const char* path, const char* name, const void* value, size_t size, int flags, GError** err){ GError* tmp_err=NULL; struct lfc_ops* ops = (struct lfc_ops*) handle; int res = -1; char *url_path=NULL, *url_host=NULL; if( ( res = url_converter(handle, path, &url_host, &url_path, &tmp_err)) ==0){ res= lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ res = gfal_lfc_setComment(ops, url_path, value, size, &tmp_err); } } g_free(url_path); g_free(url_host); return res; } /* * lfc setxattr implem * */ int lfc_setxattrG(plugin_handle handle, const char *path, const char *name, const void *value, size_t size, int flags, GError** err){ g_return_val_err_if_fail(path && name, -1, err, "invalid name/path"); int res = -1; GError* tmp_err=NULL; if(strcmp(name, GFAL_XATTR_COMMENT)==0){ res = lfc_setxattr_comment(handle, path, name, value, size, flags, err); }else{ g_set_error(&tmp_err, 0, ENOATTR, " unable to set this attribute on this file"); } G_RETURN_ERR(res, tmp_err, err); } /* * Convert a guid to a plugin url if possible * return the link in a plugin's url string or err and NULL if not found */ char* lfc_resolve_guid(plugin_handle handle, const char* guid, GError** err){ g_return_val_err_if_fail( handle && guid, NULL, err, "[lfc_resolve_guid] Invalid args in handle and/or guid "); GError * tmp_err=NULL; char *url_path=NULL, *url_host=NULL, *res = NULL; struct lfc_ops* ops = (struct lfc_ops*) handle; if( url_converter(handle, guid, &url_host, &url_path, &tmp_err) ==0){ lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ res = url_path; } } g_free(url_host); G_RETURN_ERR(res, tmp_err, err); } static int lfc_unlinkG(plugin_handle handle, const char* path, GError** err){ g_return_val_err_if_fail(path, -1, err, "[lfc_unlink] Invalid value in args handle/path/stat"); GError* tmp_err=NULL; struct lfc_ops* ops = (struct lfc_ops*) handle; char *url_path=NULL, *url_host=NULL; int ret = -1; if( ( ret = url_converter(handle, path, &url_host, &url_path, &tmp_err)) ==0){ ret= lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ ret = ops->unlink(url_path); if(ret != 0){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(&tmp_err,0,sav_errno, "Error report from LFC : %s", gfal_lfc_get_strerror(ops) ); }else{ gsimplecache_remove_kstr(ops->cache_stat, url_path); // remove the key associated in the buffer errno=0; } } } g_free(url_path); g_free(url_host); G_RETURN_ERR(ret, tmp_err, err); } /* * execute a posix readlink request on the lfc * return size of the buffer if success and set the struct buf else return negative value and set GError */ static ssize_t lfc_readlinkG(plugin_handle handle, const char* path, char* buff, size_t buffsiz, GError** err){ g_return_val_err_if_fail(handle && path && buff, -1, err, "[lfc_readlinkG] Invalid value in args handle/path/stat"); struct lfc_ops* ops = (struct lfc_ops*) handle; GError* tmp_err=NULL; ssize_t ret=-1; char res_buff[LFC_BUFF_SIZE]; gfal_lfc_init_thread(ops); gfal_auto_maintain_session(ops, &tmp_err); char *url_path=NULL, *url_host=NULL; if( ( ret = url_converter(handle, path, &url_host, &url_path, &tmp_err)) ==0){ ret= lfc_configure_environment(ops, url_host, &tmp_err); if(!tmp_err){ ret = ops->readlink(url_path, res_buff, LFC_BUFF_SIZE ); if(ret == -1){ int sav_errno = gfal_lfc_get_errno(ops); g_set_error(err,0,sav_errno, "Error report from LFC : %s", gfal_lfc_get_strerror(ops) ); }else{ errno=0; if(buffsiz > 0) memcpy(buff, GFAL_LFC_PREFIX, MIN(buffsiz,GFAL_LFC_PREFIX_LEN) ); if(buffsiz - GFAL_LFC_PREFIX_LEN > 0) memcpy(buff+ GFAL_LFC_PREFIX_LEN, res_buff, MIN(ret,buffsiz-GFAL_LFC_PREFIX_LEN) ); ret += GFAL_LFC_PREFIX_LEN; } } } g_free(url_path); g_free(url_host); G_RETURN_ERR(ret, tmp_err, err); } static void internal_stat_copy(gpointer original, gpointer copy){ memcpy(copy, original, sizeof(struct stat)); } /* * Map function for the lfc interface * this function provide the generic PLUGIN interface for the LFC plugin. * lfc_initG do : liblfc shared library load, sym resolve, endpoint check, and plugin function map. * * */ gfal_plugin_interface gfal_plugin_init(gfal_handle handle, GError** err){ pthread_mutex_lock(&m_lfcinit); gfal_plugin_interface lfc_plugin; GError* tmp_err=NULL; memset(&lfc_plugin,0,sizeof(gfal_plugin_interface)); // clear the plugin struct lfc_ops* ops = gfal_load_lfc(GFAL_LFC_LIBRARY_NAME, &tmp_err); // load library if(ops ==NULL){ g_propagate_prefixed_error(err, tmp_err,"[%s]", __func__); pthread_mutex_unlock(&m_lfcinit); return lfc_plugin; } ops->lfc_endpoint_predefined = (char*) g_getenv(LFC_ENV_VAR_HOST); ops->lfc_conn_retry = (char*) g_getenv(LFC_ENV_VAR_CONRETRY) ; ops->lfc_conn_try_int = (char*) g_getenv(LFC_ENV_VAR_CONRETRYINT); ops->lfc_conn_timeout =(char*) g_getenv(LFC_ENV_VAR_CONNTIMEOUT); ops->handle = handle; lfc_configure_environment(ops, NULL, err); ops->cache_stat = gsimplecache_new(5000,&internal_stat_copy, sizeof(struct stat) ); gfal_lfc_regex_compile(&(ops->rex), err); lfc_plugin.plugin_data = (void*) ops; lfc_plugin.priority =GFAL_PLUGIN_PRIORITY_CATALOG; lfc_plugin.check_plugin_url= &gfal_lfc_check_lfn_url; lfc_plugin.plugin_delete = &lfc_destroyG; lfc_plugin.accessG = &lfc_accessG; lfc_plugin.chmodG = &lfc_chmodG; lfc_plugin.renameG = &lfc_renameG; lfc_plugin.statG = &lfc_statG; lfc_plugin.lstatG = &lfc_lstatG; lfc_plugin.mkdirpG = &lfc_mkdirpG; lfc_plugin.rmdirG = &lfc_rmdirG; lfc_plugin.opendirG = &lfc_opendirG; lfc_plugin.closedirG = &lfc_closedirG; lfc_plugin.readdirG = &lfc_readdirG; lfc_plugin.getName = &lfc_getName; lfc_plugin.openG = &lfc_openG; lfc_plugin.symlinkG= &lfc_symlinkG; lfc_plugin.getxattrG= &lfc_getxattrG; lfc_plugin.setxattrG= &lfc_setxattrG; lfc_plugin.listxattrG = &lfc_listxattrG; lfc_plugin.readlinkG = &lfc_readlinkG; lfc_plugin.unlinkG = &lfc_unlinkG; lfc_plugin.readdirppG= &lfc_readdirppG; if(init_thread== FALSE){ // initiate Cthread system ops->Cthread_init(); // must be called one time for DPM thread safety init_thread = TRUE; } gfal_lfc_init_thread(ops); pthread_mutex_unlock(&m_lfcinit); return lfc_plugin; } /* * parse a guid to check the validity */ gboolean gfal_checker_guid(const char* guid, GError** err){ g_return_val_err_if_fail(guid != NULL,FALSE,err,"[gfal_checker_guid] check URL failed : guid is empty"); const size_t sguid = strnlen(guid, GFAL_URL_MAX_LEN); return ( sguid < GFAL_URL_MAX_LEN && sguid > 5 && strncmp(guid, "guid:",5)== 0); } /* * Check if the passed url and operation is compatible with lfc * * */ gboolean gfal_lfc_check_lfn_url(plugin_handle handle, const char* url, plugin_mode mode, GError** err){ struct lfc_ops* ops = (struct lfc_ops*) handle; int ret; switch(mode){ case GFAL_PLUGIN_RESOLVE_GUID: return TRUE; case GFAL_PLUGIN_ACCESS: case GFAL_PLUGIN_CHMOD: case GFAL_PLUGIN_STAT: case GFAL_PLUGIN_LSTAT: case GFAL_PLUGIN_OPEN: case GFAL_PLUGIN_GETXATTR: case GFAL_PLUGIN_LISTXATTR: case GFAL_PLUGIN_SETXATTR: case GFAL_PLUGIN_UNLINK: ret= regexec(&(ops->rex), url, 0, NULL, 0); return (!ret || gfal_checker_guid(url, err ))?TRUE:FALSE; case GFAL_PLUGIN_RENAME: case GFAL_PLUGIN_MKDIR: case GFAL_PLUGIN_RMDIR: case GFAL_PLUGIN_OPENDIR: case GFAL_PLUGIN_SYMLINK: case GFAL_PLUGIN_READLINK: ret= regexec(&(ops->rex), url, 0, NULL, 0); return (!ret)?TRUE:FALSE; default: return FALSE; } } gfal2-2.3.0/src/common/gfal_common_internal.h0000644000175000017500000000336412164561703020467 0ustar ellertellert#pragma once #ifndef _GFAL_COMMON_INTERNAL_H_ #define _GFAL_COMMON_INTERNAL_H_ /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_common_internal.h * internal declaration for gfal 2.0 * do not use this in external programs * author Devresse Adrien * */ #include #include #ifdef __cplusplus extern "C" { #endif #define GFAL2_BEGIN_SCOPE_CANCEL(context, ret_err_value, err) \ do{ \ if(gfal2_start_scope_cancel(context, err) < 0){ \ return ret_err_value; \ } \ }while(0) #define GFAL2_END_SCOPE_CANCEL(context) \ gfal2_end_scope_cancel(context) /// init function gfal_handle gfal_initG(GError** err); /// free gfal handle void gfal_handle_freeG(gfal_handle handle); GQuark gfal_cancel_quark(); int gfal2_start_scope_cancel(gfal2_context_t context, GError** err); int gfal2_end_scope_cancel(gfal2_context_t context); #ifdef __cplusplus } #endif // __cplusplus #endif // _GFAL_COMMON_INTERNAL_H_ gfal2-2.3.0/src/common/srm/0000755000175000017500000000000012164561703014734 5ustar ellertellertgfal2-2.3.0/src/common/srm/test/0000755000175000017500000000000012164561703015713 5ustar ellertellertgfal2-2.3.0/src/common/srm/gfal_common_srm_checksum.h0000644000175000017500000000255512164561703022140 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_checksum.h * @brief header funtion to get the checksum of a file * @author Devresse Adrien * @version 2.0 * @date 29/09/2011 * */ #include "gfal_common_srm.h" #include #include int gfal_srm_cheksumG_internal(plugin_handle ch, const char* surl, char* buf_checksum, size_t s_checksum, char* buf_chktype, size_t s_chktype, GError** err); int gfal_srm_checksumG(plugin_handle handle, const char* url, const char* check_type, char * checksum_buffer, size_t buffer_length, off_t start_offset, size_t data_length, GError ** err); gfal2-2.3.0/src/common/srm/gfal_common_srm_url_check.h0000644000175000017500000000216312164561703022270 0ustar ellertellert#pragma once #ifndef GFAL_COMMON_SRM_URL_CHECK_H #define GFAL_COMMON_SRM_URL_CHECK_H /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gfal_common_srm.h" gboolean srm_check_url(const char * surl); /* * * implementation of the plugi_url_transfer_check for the srm plugin * Check if the srm plugin is able to handle a given type of URL. * * */ gboolean plugin_url_check2(plugin_handle handle, const char* src, const char* dst, gfal_url2_check type ); #endif /* GFAL_COMMON_SRM_URL_CHECK_H */ gfal2-2.3.0/src/common/srm/gfal_common_srm_getxattr.h0000644000175000017500000000244612164561703022177 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_getxattr.h * @brief header for the getxattr function on the srm url type * @author Devresse Adrien * @date 02/08/2011 * */ #include #include #include #include "gfal_common_srm.h" ssize_t gfal_srm_getxattrG(plugin_handle handle, const char* path, const char* name , void* buff, size_t s_buff, GError** err); ssize_t gfal_srm_status_getxattrG(plugin_handle handle, const char* path, const char* name , void* buff, size_t s_buff, GError** err); ssize_t gfal_srm_listxattrG(plugin_handle handle, const char* path, char* list, size_t size, GError** err); gfal2-2.3.0/src/common/srm/gfal_common_srm_readdir.c0000644000175000017500000001424412164561703021741 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_readdir.c * @brief file for the readdir function on the srm url type * @author Devresse Adrien * @version 2.0 * @date 14/06/2011 * */ #define GFAL_FILENAME_MAX FILENAME_MAX #include #include #include #include "gfal_common_srm_readdir.h" #include "gfal_common_srm_opendir.h" #include "gfal_common_srm_internal_layer.h" #include "gfal_common_srm_internal_ls.h" void gfal_srm_bufferize_request(plugin_handle ch, const char* surl, struct srmv2_mdfilestatus * statuses){ struct stat st; if(sizeof(struct stat64) == sizeof(struct stat)) memcpy(&st, &statuses->stat, sizeof(struct stat)); else{ const struct stat64* stat_statuses = &statuses->stat; st.st_dev = (dev_t) stat_statuses->st_dev; st.st_ino = (ino_t) stat_statuses->st_ino; st.st_mode = (mode_t) stat_statuses->st_mode; st.st_nlink = (nlink_t) stat_statuses->st_nlink; st.st_uid = (uid_t) stat_statuses->st_uid; st.st_gid = (gid_t) stat_statuses->st_gid; st.st_rdev = (dev_t) stat_statuses->st_rdev; st.st_size = (off_t) stat_statuses->st_size; st.st_blksize = (blkcnt_t) stat_statuses->st_blksize; st.st_blocks = (blkcnt_t) stat_statuses->st_blocks; st.st_atime = (time_t) stat_statuses->st_atime; st.st_mtime = (time_t) stat_statuses->st_mtime; st.st_ctime = (time_t) stat_statuses->st_ctime; } gfal_srm_cache_stat_add(ch, surl, &st); } inline static struct dirent* gfal_srm_readdir_convert_result(plugin_handle ch, const char* surl, struct srmv2_mdfilestatus * statuses, struct dirent* output, GError ** err){ struct dirent* resu = NULL; resu = output; char buff_surlfull[GFAL_URL_MAX_LEN]; char* p = strrchr(statuses->surl,'/'); // keep only the file name + / if(p!=NULL){ g_strlcpy(buff_surlfull, surl, GFAL_URL_MAX_LEN); g_strlcat(buff_surlfull, p, GFAL_URL_MAX_LEN); gfal_srm_bufferize_request(ch, buff_surlfull, statuses); g_strlcpy(resu->d_name, p+1, GFAL_URL_MAX_LEN); // without '/' } else g_strlcpy(resu->d_name, statuses->surl, GFAL_URL_MAX_LEN); return resu; } int gfal_srm_readdir_internal(plugin_handle ch, gfal_srm_opendir_handle oh, int nb_files, GError** err){ g_return_val_err_if_fail(ch && oh, -1, err, "[gfal_srmv2_opendir_internal] invaldi args"); GError* tmp_err=NULL; int resu =-1; srm_context_t context; struct srm_ls_input input; struct srm_ls_output output; struct srmv2_mdfilestatus *srmv2_mdstatuses=NULL; gfal_srmv2_opt* opts = (gfal_srmv2_opt*)ch; char errbuf[GFAL_ERRMSG_LEN]={0}; int ret =-1; int offset = oh->dir_offset; char* tab_surl[] = { (char*) oh->surl, NULL}; if( (context = gfal_srm_ifce_context_setup(opts->handle, oh->endpoint, errbuf, GFAL_ERRMSG_LEN, &tmp_err)) != NULL){ // init context input.nbfiles = 1; input.surls = tab_surl; input.numlevels = 1; input.offset = &offset; input.count = nb_files; ret = gfal_srm_external_call.srm_ls(context,&input,&output); // execute ls if(ret >=0){ srmv2_mdstatuses = output.statuses; if(srmv2_mdstatuses[0].status != 0){ g_set_error(err, 0, srmv2_mdstatuses->status, "[%s] Error reported from srm_ifce : %d %s", __func__, srmv2_mdstatuses->status, srmv2_mdstatuses->explanation); resu = -1; }else { oh->resu_offset = oh->dir_offset; oh->srm_ls_resu = &srmv2_mdstatuses[0]; //cache system resu = 0; } }else{ gfal_srm_report_error(errbuf, &tmp_err); resu=-1; } gfal_srm_external_call.srm_srm2__TReturnStatus_delete(output.retstatus); gfal_srm_ifce_context_release(context); } G_RETURN_ERR(resu, tmp_err, err); } struct dirent* gfal_srm_readdir_pipeline(plugin_handle ch, gfal_srm_opendir_handle oh, GError** err){ struct dirent* ret = NULL; GError* tmp_err=NULL; int max_resu_per_req= 0; if(oh->srm_ls_resu == NULL){ gfal_srm_readdir_internal(ch, oh, max_resu_per_req, &tmp_err); if(tmp_err && tmp_err->code == EINVAL){// fix in the case of short size SRMLs support, ( dcap ) g_clear_error(&tmp_err); gfal_srm_readdir_internal(ch, oh, 1000, &tmp_err); } }else if(oh->dir_offset >= (oh->resu_offset+ oh->srm_ls_resu->nbsubpaths) ){ return NULL; // limited mode in order to not overload the srm server ( slow ) /* gfal_srm_external_call.srm_srmv2_mdfilestatus_delete(oh->srm_ls_resu,1); gfal_srm_readdir_internal(ch, oh, max_resu_per_req, &tmp_err);*/ } if(!tmp_err){ if(oh->srm_ls_resu->nbsubpaths == 0) // end of the list !! return NULL; const off_t myoffset = oh->dir_offset - oh->resu_offset; ret = gfal_srm_readdir_convert_result(ch, oh->surl, &oh->srm_ls_resu->subpaths[myoffset], &oh->current_readdir, &tmp_err); oh->dir_offset += 1; } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } struct dirent* gfal_srm_readdirG(plugin_handle ch, gfal_file_handle fh, GError** err){ g_return_val_err_if_fail( ch && fh, NULL, err, "[gfal_srm_readdirG] Invalid args"); GError* tmp_err=NULL; struct dirent* ret = NULL; if(fh != NULL){ gfal_srm_opendir_handle oh = (gfal_srm_opendir_handle) fh->fdesc; ret = gfal_srm_readdir_pipeline(ch, oh, &tmp_err); }else{ g_set_error(&tmp_err, 0, EBADF, "bad dir descriptor"); ret = NULL; } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } gfal2-2.3.0/src/common/srm/gfal_common_srm_getput.h0000644000175000017500000000263212164561703021642 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include int gfal_srm_put_rd3_turl(plugin_handle ch, gfalt_params_t p, const char* surl, size_t surl_file_size, char* buff_turl, int size_turl, char** reqtoken, GError** err); int gfal_srm_get_rd3_turl(plugin_handle ch, gfalt_params_t params, const char* surl, char* buff_turl, int size_turl, char** reqtoken, GError** err); int gfal_srm_getTURL_checksum(plugin_handle ch, const char* surl, char* buff_turl, int size_turl, GError** err); int gfal_srm_putdone_simple(plugin_handle * handle , const char* surl, char* token, GError** err); int srm_abort_request_plugin (plugin_handle * handle , const char* surl, char *reqtoken, GError** err); gfal2-2.3.0/src/common/srm/gfal_common_srm_getput.c0000644000175000017500000004355512164561703021646 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include "gfal_common_srm.h" #include "gfal_srm_request.h" #include #include #include #include "gfal_common_srm_internal_layer.h" #include "gfal_common_srm_endpoint.h" static int gfal_srm_convert_filestatuses_to_srm_result(struct srmv2_pinfilestatus* statuses, char* reqtoken, int n, gfal_srm_result** resu, GError** err){ g_return_val_err_if_fail(statuses && n && resu, -1, err, "[gfal_srm_convert_filestatuses_to_srm_result] args invalids"); *resu = calloc(n, sizeof(gfal_srm_result)); int i=0; for(i=0; i< n; ++i){ if(statuses[i].turl) g_strlcpy((*resu)[i].turl, statuses[i].turl, GFAL_URL_MAX_LEN); if(statuses[i].explanation) g_strlcpy((*resu)[i].err_str, statuses[i].explanation, GFAL_URL_MAX_LEN); (*resu)[i].err_code = statuses[i].status; (*resu)[i].reqtoken = g_strdup(reqtoken); } return 0; } int gfal_srmv2_get_global(gfal_srm_plugin_t handle, gfal_srm_params_t params, struct srm_context* context, struct srm_preparetoget_input* input, gfal_srm_result** resu, GError** err){ g_return_val_err_if_fail(handle != NULL && input != NULL && resu != NULL,-1,err,"[gfal_srmv2_get_global] tab null "); GError* tmp_err=NULL; int ret=0; struct srm_preparetoget_output preparetoget_output; memset(&preparetoget_output, 0, sizeof(preparetoget_output)); ret = gfal_srm_external_call.srm_prepare_to_get(context,input,&preparetoget_output); if(ret < 0){ gfal_srm_report_error(context->errbuf, &tmp_err); } else{ gfal_srm_convert_filestatuses_to_srm_result(preparetoget_output.filestatuses, preparetoget_output.token, ret, resu, &tmp_err); } if (preparetoget_output.filestatuses != NULL) gfal_srm_external_call.srm_srmv2_pinfilestatus_delete(preparetoget_output.filestatuses, ret); if (preparetoget_output.retstatus != NULL) gfal_srm_external_call.srm_srm2__TReturnStatus_delete(preparetoget_output.retstatus); free(preparetoget_output.token); G_RETURN_ERR(ret, tmp_err, err); } int gfal_srmv2_put_global(gfal_srm_plugin_t handle, gfal_srm_params_t params, struct srm_context* context, struct srm_preparetoput_input* input, gfal_srm_result** resu, GError** err){ g_return_val_err_if_fail(handle != NULL && input != NULL && resu != NULL,-1,err,"[gfal_srmv2_put_global] tab null "); GError* tmp_err=NULL; int ret=0; struct srm_preparetoput_output preparetoput_output; memset(&preparetoput_output, 0, sizeof(preparetoput_output)); ret = gfal_srm_external_call.srm_prepare_to_put(context, input, &preparetoput_output); if(ret < 0){ gfal_srm_report_error(context->errbuf, &tmp_err); } else{ gfal_srm_convert_filestatuses_to_srm_result(preparetoput_output.filestatuses, preparetoput_output.token, ret, resu, &tmp_err); } if (preparetoput_output.filestatuses != NULL) gfal_srm_external_call.srm_srmv2_pinfilestatus_delete(preparetoput_output.filestatuses, ret); if (preparetoput_output.retstatus != NULL) gfal_srm_external_call.srm_srm2__TReturnStatus_delete(preparetoput_output.retstatus); free(preparetoput_output.token); G_RETURN_ERR(ret, tmp_err, err); } // @brief execute a srmv2 request sync "GET" on the srm_ifce int gfal_srm_getTURLS_srmv2_internal(gfal_srmv2_opt* opts, gfal_srm_params_t params, char* endpoint, char** surls, gfal_srm_result** resu, GError** err){ g_return_val_err_if_fail(surls!=NULL,-1,err,"[gfal_srmv2_getasync] tab null "); GError* tmp_err=NULL; int ret=-1; struct srm_preparetoget_input preparetoget_input; const int err_size = 2048; char errbuf[err_size]; errbuf[0]='\0'; size_t n_surl = g_strv_length (surls); // n of surls // set the structures datafields preparetoget_input.desiredpintime = opts->opt_srmv2_desiredpintime; preparetoget_input.nbfiles = n_surl; preparetoget_input.protocols = gfal_srm_params_get_protocols(params); preparetoget_input.spacetokendesc = gfal_srm_params_get_spacetoken(params); preparetoget_input.surls = surls; srm_context_t context = gfal_srm_ifce_context_setup(opts->handle, endpoint, errbuf, err_size, &tmp_err); if(context) ret = gfal_srmv2_get_global(opts, params, context, &preparetoget_input, resu, &tmp_err); gfal_srm_ifce_context_release(context); G_RETURN_ERR(ret, tmp_err, err); } // execute a srmv2 request sync "PUT" on the srm_ifce int gfal_srm_putTURLS_srmv2_internal(gfal_srmv2_opt* opts , gfal_srm_params_t params, char* endpoint, char** surls, gfal_srm_result** resu, GError** err){ g_return_val_err_if_fail(surls!=NULL,-1,err,"[gfal_srm_putTURLS_srmv2_internal] GList passed null"); GError* tmp_err=NULL; int ret=-1,i=0; struct srm_preparetoput_input preparetoput_input; const int err_size = 2048; char errbuf[err_size]; errbuf[0]='\0'; size_t n_surl = g_strv_length (surls); // n of surls SRM_LONG64 filesize_tab[n_surl]; for(i=0; i < n_surl;++i) filesize_tab[i] = params->file_size; // set the structures datafields preparetoput_input.desiredpintime = opts->opt_srmv2_desiredpintime; preparetoput_input.nbfiles = n_surl; preparetoput_input.protocols = gfal_srm_params_get_protocols(params); preparetoput_input.spacetokendesc = gfal_srm_params_get_spacetoken(params); preparetoput_input.surls = surls; preparetoput_input.filesizes = filesize_tab; srm_context_t context = gfal_srm_ifce_context_setup(opts->handle, endpoint, errbuf, err_size, &tmp_err); if(context) ret = gfal_srmv2_put_global(opts, params, context, &preparetoput_input, resu, &tmp_err); gfal_srm_ifce_context_release(context); G_RETURN_ERR(ret, tmp_err, err); } // Internal function of gfal_srm_getTurls without argument check for internal usage int gfal_srm_mTURLS_internal(gfal_srmv2_opt* opts, gfal_srm_params_t params, srm_req_type req_type, char** surls, gfal_srm_result** resu, GError** err){ GError* tmp_err=NULL; int ret=-1; char full_endpoint[GFAL_URL_MAX_LEN]; enum gfal_srm_proto srm_types; if((gfal_srm_determine_endpoint(opts, *surls, full_endpoint, GFAL_URL_MAX_LEN, &srm_types, &tmp_err)) == 0){ // check & get endpoint if (srm_types == PROTO_SRMv2){ if(req_type == SRM_GET) ret= gfal_srm_getTURLS_srmv2_internal(opts, params, full_endpoint, surls, resu, &tmp_err); else ret= gfal_srm_putTURLS_srmv2_internal(opts, params, full_endpoint, surls, resu, &tmp_err); } else if(srm_types == PROTO_SRM){ g_set_error(&tmp_err,0, EPROTONOSUPPORT, "support for SRMv1 is removed in gfal 2.0, failure"); } else{ g_set_error(&tmp_err,0,EPROTONOSUPPORT, "Unknow SRM protocol, failure "); } } G_RETURN_ERR(ret, tmp_err, err); } // simple wrapper to getTURLs for the gfal_module layer int gfal_srm_getTURLS_plugin(plugin_handle ch, const char* surl, char* buff_turl, int size_turl, char** reqtoken, GError** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*)ch; gfal_srm_result* resu=NULL; GError* tmp_err=NULL; char* surls[]= { (char*)surl, NULL }; int ret = -1; gfal_srm_params_t params = gfal_srm_params_new(opts, & tmp_err); if(params != NULL){ ret= gfal_srm_mTURLS_internal(opts, params, SRM_GET, surls, &resu, &tmp_err); if(ret >0){ if(resu[0].err_code == 0){ g_strlcpy(buff_turl, resu[0].turl, size_turl); if(reqtoken) *reqtoken = resu[0].reqtoken; ret=0; }else{ g_set_error(&tmp_err,0 , resu[0].err_code, " error on the turl request : %s ", resu[0].err_str); ret = -1; g_free(resu->reqtoken); } free(resu); } gfal_srm_params_free(params); } G_RETURN_ERR(ret, tmp_err, err); } // special call for TURL resolution for checksum fallback solution int gfal_srm_getTURL_checksum(plugin_handle ch, const char* surl, char* buff_turl, int size_turl, GError** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*)ch; gfal_srm_result* resu=NULL; GError* tmp_err=NULL; char* surls[]= { (char*)surl, NULL }; int ret = -1; gfal_srm_params_t params = gfal_srm_params_new(opts, & tmp_err); gfal_srm_params_set_protocols(params, srm_get_3rdparty_turls_sup_protocol(opts->handle)); if(params != NULL){ ret= gfal_srm_mTURLS_internal(opts, params, SRM_GET, surls, &resu, &tmp_err); if(ret >0){ if(resu[0].err_code == 0){ g_strlcpy(buff_turl, resu[0].turl, size_turl); ret=0; }else{ g_set_error(&tmp_err,0 , resu[0].err_code, " error on the turl request : %s ", resu[0].err_str); ret = -1; } free(resu); } gfal_srm_params_free(params); } G_RETURN_ERR(ret, tmp_err, err); } // execute a get for thirdparty transfer turl int gfal_srm_get_rd3_turl(plugin_handle ch, gfalt_params_t p, const char* surl, char* buff_turl, int size_turl, char** reqtoken, GError** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*)ch; gfal_srm_result* resu=NULL; GError* tmp_err=NULL; char* surls[]= { (char*)surl, NULL }; int ret = -1; gfal_srm_params_t params = gfal_srm_params_new(opts, & tmp_err); gfal_srm_params_set_spacetoken(params, gfalt_get_src_spacetoken(p, NULL)); gfal_srm_params_set_protocols(params, srm_get_3rdparty_turls_sup_protocol(opts->handle)); if(params != NULL){ ret= gfal_srm_mTURLS_internal(opts, params, SRM_GET, surls, &resu, &tmp_err); if(ret >=0){ if(resu[0].err_code == 0){ g_strlcpy(buff_turl, resu[0].turl, size_turl); if(reqtoken) *reqtoken = resu[0].reqtoken; ret=0; }else{ g_set_error(&tmp_err,0 , resu[0].err_code, " error on the turl request : %s ", resu[0].err_str); ret = -1; } free(resu); } gfal_srm_params_free(params); } G_RETURN_ERR(ret, tmp_err, err); } // launch a surls-> turls translation in the synchronous mode int gfal_srm_getTURLS(gfal_srmv2_opt* opts, char** surls, gfal_srm_result** resu, GError** err){ g_return_val_err_if_fail(opts!=NULL,-1,err,"[gfal_srm_getTURLS] handle passed is null"); GError* tmp_err=NULL; int ret=-1; gfal_srm_params_t params = gfal_srm_params_new(opts, & tmp_err); if(params != NULL){ if( gfal_srm_surl_group_checker (opts, surls, &tmp_err) == TRUE){ ret = gfal_srm_mTURLS_internal(opts, params, SRM_GET, surls, resu, &tmp_err); } gfal_srm_params_free(params); } G_RETURN_ERR(ret, tmp_err, err); } // execute a put for thirdparty transfer turl int gfal_srm_put_rd3_turl(plugin_handle ch, gfalt_params_t p, const char* surl, size_t surl_file_size, char* buff_turl, int size_turl, char** reqtoken, GError** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*)ch; gfal_srm_result* resu=NULL; GError* tmp_err=NULL; char* surls[]= { (char*)surl, NULL }; int ret = -1; gfal_srm_params_t params = gfal_srm_params_new(opts, & tmp_err); gfal_srm_params_set_spacetoken(params, gfalt_get_dst_spacetoken(p, NULL)); gfal_srm_params_set_protocols(params, srm_get_3rdparty_turls_sup_protocol(opts->handle)); gfal_srm_params_set_size(params, surl_file_size); if(params != NULL){ ret= gfal_srm_mTURLS_internal(opts, params, SRM_PUT, surls, &resu, &tmp_err); if(ret >=0){ if(resu[0].err_code == 0){ g_strlcpy(buff_turl, resu[0].turl, size_turl); if(reqtoken) *reqtoken = resu[0].reqtoken; ret=0; }else{ g_set_error(&tmp_err,0 , resu[0].err_code, " error on the turl request : %s ", resu[0].err_str); ret = -1; } } gfal_srm_params_free(params); } G_RETURN_ERR(ret, tmp_err, err); } // simple wrapper to putTURLs for the gfal_module layer int gfal_srm_putTURLS_plugin(plugin_handle ch, const char* surl, char* buff_turl, int size_turl, char** reqtoken, GError** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*)ch; gfal_srm_result* resu=NULL; GError* tmp_err=NULL; char* surls[]= { (char*)surl, NULL }; int ret = -1; gfal_srm_params_t params = gfal_srm_params_new(opts, & tmp_err); if(params != NULL){ ret= gfal_srm_mTURLS_internal(opts, params, SRM_PUT, surls, &resu, &tmp_err); if(ret >0){ if(resu[0].err_code == 0){ g_strlcpy(buff_turl, resu[0].turl, size_turl); if(reqtoken) *reqtoken = resu[0].reqtoken; ret=0; }else{ g_set_error(&tmp_err,0 , resu[0].err_code, " error on the turl request : %s ", resu[0].err_str); ret = -1; } free(resu); } gfal_srm_params_free(params); } G_RETURN_ERR(ret, tmp_err, err); } // @brief launch a surls-> turls translation in the synchronous mode for file creation int gfal_srm_putTURLS(gfal_srmv2_opt* opts , char** surls, gfal_srm_result** resu, GError** err){ g_return_val_err_if_fail(opts!=NULL,-1,err,"[gfal_srm_putTURLS] handle passed is null"); GError* tmp_err=NULL; int ret=-1; gfal_srm_params_t params = gfal_srm_params_new(opts, & tmp_err); if(params != NULL){ if( gfal_srm_surl_group_checker (opts, surls, &tmp_err) == TRUE){ ret = gfal_srm_mTURLS_internal(opts, params, SRM_PUT, surls, resu, &tmp_err); } gfal_srm_params_free(params); } G_RETURN_ERR(ret, tmp_err, err); } // execute a srm put done on the specified surl and token, return 0 if success else -1 and errno is set static int gfal_srm_putdone_srmv2_internal(gfal_srmv2_opt* opts, char* endpoint, char** surls, char* token, GError** err){ g_return_val_err_if_fail(surls!=NULL,-1,err,"[gfal_srm_putdone_srmv2_internal] invalid args "); GError* tmp_err=NULL; int ret=0; struct srm_putdone_input putdone_input; struct srmv2_filestatus *statuses; const int err_size = 2048; char errbuf[err_size] ; memset(errbuf,0,err_size*sizeof(char)); size_t n_surl = g_strv_length (surls); // n of surls // set the structures datafields putdone_input.nbfiles = n_surl; putdone_input.reqtoken = token; putdone_input.surls = surls; srm_context_t context = gfal_srm_ifce_context_setup(opts->handle, endpoint, errbuf, GFAL_URL_MAX_LEN, &tmp_err); if(context){ gfal_log(GFAL_VERBOSE_TRACE, " [gfal_srm_putdone_srmv2_internal] start srm put done on %s", surls[0]); ret = gfal_srm_external_call.srm_put_done(context,&putdone_input, &statuses); if(ret < 0){ g_set_error(&tmp_err,0,errno,"call to srm_ifce error: %s",errbuf); } else{ ret = gfal_srm_convert_filestatuses_to_GError(statuses, ret, &tmp_err); gfal_srm_external_call.srm_srmv2_filestatus_delete(statuses, n_surl); } } gfal_srm_ifce_context_release(context); G_RETURN_ERR(ret, tmp_err, err); } int gfal_srm_putdone(gfal_srmv2_opt* opts , char** surls, char* token, GError** err){ GError* tmp_err=NULL; int ret=-1; char full_endpoint[GFAL_URL_MAX_LEN]; enum gfal_srm_proto srm_types; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_srm_putdone] "); if((gfal_srm_determine_endpoint(opts, *surls, full_endpoint, GFAL_URL_MAX_LEN, &srm_types, &tmp_err)) == 0){ // check & get endpoint gfal_log(GFAL_VERBOSE_NORMAL, "[gfal_srm_putdone] endpoint %s", full_endpoint); if (srm_types == PROTO_SRMv2){ ret = gfal_srm_putdone_srmv2_internal(opts, full_endpoint, surls, token, &tmp_err); } else if(srm_types == PROTO_SRM){ g_set_error(&tmp_err,0, EPROTONOSUPPORT, "support for SRMv1 is removed in gfal 2.0, failure"); } else{ g_set_error(&tmp_err,0,EPROTONOSUPPORT, "Unknow SRM protocol, failure "); } } gfal_log(GFAL_VERBOSE_TRACE, " [gfal_srm_putdone] <-"); G_RETURN_ERR(ret, tmp_err, err); } int gfal_srm_putdone_simple(plugin_handle * handle , const char* surl, char* token, GError** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*)handle; char* surls[]= { (char*)surl, NULL }; return gfal_srm_putdone(opts, surls, token, err); } int srmv2_abort_request_internal(gfal_srmv2_opt* opts , char* endpoint, char* req_token, GError** err){ GError* tmp_err=NULL; int ret=-1; char errbuf[GFAL_URL_MAX_LEN] = {0}; srm_context_t context = gfal_srm_ifce_context_setup(opts->handle, endpoint, errbuf, GFAL_URL_MAX_LEN, &tmp_err); if(context){ if((ret = srm_abort_request(context, req_token)) < 0){ g_set_error(&tmp_err,0,errno,"SRMv2 abort request error : %s",errbuf); } } gfal_srm_ifce_context_release(context); G_RETURN_ERR(ret, tmp_err, err); } int srm_abort_request_plugin (plugin_handle * handle , const char* surl, char *reqtoken, GError** err){ g_return_val_err_if_fail(handle != NULL && reqtoken != NULL, -1, err, "[srm_abort_request_plugin] invalid values for token/handle"); gfal_srmv2_opt* opts = (gfal_srmv2_opt*)handle; GError* tmp_err=NULL; int ret=-1; char full_endpoint[GFAL_URL_MAX_LEN]; enum gfal_srm_proto srm_types; gfal_log(GFAL_VERBOSE_TRACE, " -> [srm_abort_request] "); if((gfal_srm_determine_endpoint(opts, surl, full_endpoint, GFAL_URL_MAX_LEN, &srm_types, &tmp_err)) == 0){ // check & get endpoint gfal_log(GFAL_VERBOSE_NORMAL, "[srm_abort_request] endpoint %s", full_endpoint); if (srm_types == PROTO_SRMv2){ ret = srmv2_abort_request_internal(opts, full_endpoint, reqtoken, &tmp_err); } else if(srm_types == PROTO_SRM){ g_set_error(&tmp_err,0, EPROTONOSUPPORT, "support for SRMv1 is removed in gfal 2.0, failure"); } else{ g_set_error(&tmp_err,0,EPROTONOSUPPORT, "Unknow SRM protocol, failure "); } } gfal_log(GFAL_VERBOSE_TRACE, " [srm_abort_request] <-"); G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/common/srm/gfal_common_srm_rm.c0000644000175000017500000000773712164561703020756 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common.c * @brief file for the gfal's plugin unlink function * @author Devresse Adrien * @version 2.0 * @date 12/06/2011 * */ #include #include #include "gfal_common_srm.h" #include "gfal_common_srm_internal_layer.h" #include "gfal_common_srm_internal_ls.h" #include #include #include #include "gfal_common_srm_endpoint.h" static int gfal_srm_rm_srmv2_internal(gfal_srmv2_opt* opts, const char* full_endpoint, char** surls, GError** err){ GError* tmp_err=NULL; srm_context_t context; struct srm_rm_input input; struct srm_rm_output output; const int nb_request=1; char errbuf[GFAL_ERRMSG_LEN]={0}; int i; int ret=-1; if( (context = gfal_srm_ifce_context_setup(opts->handle, full_endpoint, errbuf, GFAL_ERRMSG_LEN, &tmp_err)) != NULL){ input.nbfiles = nb_request; input.surls = surls; ret = gfal_srm_external_call.srm_rm(context,&input, &output); if(ret == nb_request){ ret =0; struct srmv2_filestatus* statuses = output.statuses; for(i=0; i < nb_request;++i){ if(statuses[i].status!=0){ if(statuses[i].explanation != NULL) g_set_error(&tmp_err, 0, statuses[i].status," error reported from srm_ifce, %s ", statuses[i].explanation ); else g_set_error(&tmp_err, 0, EINVAL ," error reported from srm_ifce with corrputed memory ! "); ret = -1; break; } } gfal_srm_external_call.srm_srm2__TReturnStatus_delete(output.retstatus); gfal_srm_external_call.srm_srmv2_filestatus_delete(output.statuses, ret); }else{ gfal_srm_report_error(errbuf, &tmp_err); ret= -1; } gfal_srm_ifce_context_release(context); } G_RETURN_ERR(ret, tmp_err, err); } int gfal_srm_rm_internal(gfal_srmv2_opt* opts, char** surls, GError** err){ GError* tmp_err=NULL; int ret=-1; char full_endpoint[GFAL_URL_MAX_LEN]; enum gfal_srm_proto srm_types; if((gfal_srm_determine_endpoint(opts, *surls, full_endpoint, GFAL_URL_MAX_LEN, &srm_types, &tmp_err)) == 0){ // check & get endpoint gfal_log(GFAL_VERBOSE_NORMAL, "gfal_srm_rm_internal -> endpoint %s", full_endpoint); if (srm_types == PROTO_SRMv2){ ret= gfal_srm_rm_srmv2_internal(opts, full_endpoint, surls, &tmp_err); } else if(srm_types == PROTO_SRM){ g_set_error(&tmp_err,0, EPROTONOSUPPORT, "support for SRMv1 is removed in gfal 2.0, failure"); } else{ g_set_error(&tmp_err,0,EPROTONOSUPPORT, "Unknow SRM protocol, failure "); } } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } /** * * bindings of the unlink plugin call */ int gfal_srm_unlinkG(plugin_handle ch, const char * path, GError** err){ g_return_val_err_if_fail( ch && path, -1, err, "[gfal_srm_unlinkG] incorrects args"); GError* tmp_err=NULL; gfal_srmv2_opt* opts = (gfal_srmv2_opt*)ch; char* surls[] = { (char*) path, NULL}; gfal_srm_cache_stat_remove(ch, path); int ret = gfal_srm_rm_internal(opts, surls, &tmp_err); if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } gfal2-2.3.0/src/common/srm/gfal_common_srm_endpoint.h0000644000175000017500000000346212164561703022154 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_endpoint.h * @brief header file for internal use in the srm part, endpoint determination * @author Devresse Adrien * @version 2.0 * @date 22/06/2011 * */ #include #include #include "gfal_common_srm.h" #include #include int gfal_srm_determine_endpoint(gfal_srmv2_opt* opts, const char* surl, char* buff_endpoint, size_t s_buff, enum gfal_srm_proto* srm_type, GError** err); gboolean gfal_check_fullendpoint_in_surlG(gfal_srmv2_opt* opts, const char* surl, GError** err); int gfal_get_fullendpointG(const char* surl, char* buff_endpoint, size_t s_buff, GError** err); int gfal_select_best_protocol_and_endpointG(gfal_srmv2_opt* opts, char** tab_se_type, char** tab_endpoint, char* buff_endpoint, size_t s_buff, enum gfal_srm_proto* srm_type, GError** err); int gfal_get_endpoint_and_setype_from_bdiiG(gfal_srmv2_opt* opts, const char* surl, char* buff_endpoint, size_t s_buff, enum gfal_srm_proto* srm_type, GError** err); int gfal_get_hostname_from_surlG(const char * surl, char* buff_hostname, size_t s_buff, GError** err); gfal2-2.3.0/src/common/srm/gfal_common_srm_status.c0000644000175000017500000000200612164561703021643 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_status.c * @brief status / pin functions layer from srm * @author Devresse Adrien * @version 2.0 * @date 19/12/2011 * */ #include #include #include "gfal_common_srm.h" #include #include #include gfal2-2.3.0/src/common/srm/gfal_common_srm_url_check.c0000644000175000017500000000442312164561703022264 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "gfal_common_srm_url_check.h" #include #include #include const char * surl_prefix = GFAL_PREFIX_SRM; gboolean srm_check_url(const char * surl){ gboolean res =FALSE; const size_t prefix_len = strlen(surl_prefix) ; size_t surl_len = strnlen(surl, GFAL_URL_MAX_LEN); if( ( surl_len < GFAL_URL_MAX_LEN ) && (strncmp(surl, surl_prefix, prefix_len) == 0)){ res = TRUE; } return res; } gboolean srm_check_url_transport_compatible(plugin_handle handle, const char* url){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*) handle; char** p_proto = srm_get_3rdparty_turls_sup_protocol(opts->handle); while(*p_proto != NULL){ const int proto_len = strlen(*p_proto); if(strncmp(url, *p_proto, proto_len) == 0) return TRUE; ++p_proto; } return FALSE; } gboolean plugin_url_check2(plugin_handle handle, const char* src, const char* dst, gfal_url2_check type ){ g_return_val_if_fail(handle != NULL && src != NULL && dst != NULL,FALSE); gboolean res = FALSE; gboolean src_srm = srm_check_url(src); gboolean dst_srm = srm_check_url(dst); gboolean src_3rd = srm_check_url_transport_compatible(handle, src); gboolean dst_3rd = srm_check_url_transport_compatible(handle, dst); if( src != NULL && dst != NULL){ if( type == GFAL_FILE_COPY && ( ( src_srm && dst_srm) || ( src_srm && dst_3rd) || ( dst_srm && src_3rd) ) ){ res= TRUE; } } return res; } gfal2-2.3.0/src/common/srm/gfal_common_srm_readdir.h0000644000175000017500000000201712164561703021741 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_readdir.h * @brief header file for the readdir function on the srm url type * @author Devresse Adrien * @version 2.0 * @date 14/06/2011 * */ #include #include #include "../gfal_common_filedescriptor.h" struct dirent* gfal_srm_readdirG(plugin_handle handle, gfal_file_handle fh, GError** err); gfal2-2.3.0/src/common/srm/gfal_common_srm_mkdir.c0000644000175000017500000001200112164561703021422 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_mkdir.c * @brief file for the mkdir function on the srm url type * @author Devresse Adrien * @version 2.0 * @date 19/05/2011 * */ #include "gfal_common_srm.h" #include "gfal_common_srm_mkdir.h" #include "gfal_common_srm_stat.h" #include "gfal_common_srm_internal_layer.h" #include "gfal_common_srm_endpoint.h" #include int gfal_mkdir_srmv2_internal(gfal_srmv2_opt* opts, char* endpoint, const char* path, mode_t mode, GError** err){ struct srm_mkdir_input mkdir_input; srm_context_t context; int res = -1; GError* tmp_err=NULL; char errbuf[GFAL_ERRMSG_LEN]={0}; errno =0; if( (context = gfal_srm_ifce_context_setup(opts->handle, endpoint, errbuf, GFAL_ERRMSG_LEN, &tmp_err)) != NULL){ mkdir_input.dir_name = (char*) path; res = gfal_srm_external_call.srm_mkdir(context, &mkdir_input); if(res <0){ gfal_srm_report_error(errbuf, &tmp_err); res = -1; } gfal_srm_ifce_context_release(context); } G_RETURN_ERR(res, tmp_err, err); } int gfal_srm_mkdir_recG(plugin_handle ch, const char* surl, mode_t mode, GError** err){ int ret = -1; char full_endpoint[GFAL_URL_MAX_LEN]; GError* tmp_err=NULL; enum gfal_srm_proto srm_types; gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_srm_mkdir_rec] "); ret =gfal_srm_determine_endpoint(opts, surl, full_endpoint, GFAL_URL_MAX_LEN, &srm_types, &tmp_err); if(ret >=0){ if (srm_types == PROTO_SRMv2){ // check the proto version struct stat stat_dir; gfal_log(GFAL_VERBOSE_VERBOSE, " [gfal_srm_mkdir_rec] check if directory %s already exist...", surl); if( gfal_srm_statG(ch, surl, &stat_dir, &tmp_err) == 0 && S_ISDIR(stat_dir.st_mode) ){ ret =0; }else{ g_clear_error(&tmp_err); gfal_log(GFAL_VERBOSE_VERBOSE, " [gfal_srm_mkdir_rec] try to create directory %s", surl); if( (ret= gfal_mkdir_srmv2_internal(opts, full_endpoint, (char*)surl, mode, &tmp_err)) !=0){ if(tmp_err && tmp_err->code == EEXIST){ g_clear_error(&tmp_err); ret = 0; } } } } else if(srm_types == PROTO_SRM){ g_set_error(&tmp_err,0, EPROTONOSUPPORT, "support for SRMv1 is removed in 2.0, failure"); ret = -1; } else{ g_set_error(&tmp_err,0,EPROTONOSUPPORT, "Unknow version of the protocol SRM , failure "); ret=-1; } gfal_log(GFAL_VERBOSE_TRACE, " [gfal_srm_mkdir_rec] <-"); } G_RETURN_ERR(ret, tmp_err, err); } int gfal_srm_mkdirG(plugin_handle ch, const char* surl, mode_t mode, gboolean pflag, GError** err){ int ret = -1; char full_endpoint[GFAL_URL_MAX_LEN]; GError* tmp_err=NULL; enum gfal_srm_proto srm_types; gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; if(pflag){ // pflag set : behavior similar to mkdir -p requested ret = gfal_srm_mkdir_recG(ch, surl, mode, &tmp_err); }else{ gfal_log(GFAL_VERBOSE_TRACE, " -> [gfal_srm_mkdirG] "); ret =gfal_srm_determine_endpoint(opts, surl, full_endpoint, GFAL_URL_MAX_LEN, &srm_types, &tmp_err); if(ret >=0){ if (srm_types == PROTO_SRMv2){ // check the proto version gfal_log(GFAL_VERBOSE_VERBOSE, " [gfal_srm_mkdirG] try to create directory %s", surl); // verify if directory already exist struct stat st; if( gfal_statG_srmv2_internal(opts, &st, full_endpoint, (char*) surl, &tmp_err) !=0){ g_clear_error(&tmp_err); ret= gfal_mkdir_srmv2_internal(opts, full_endpoint, (char*)surl, mode, &tmp_err); // execute the SRMv2 access test }else{ g_set_error(&tmp_err,0, EEXIST, "directory already exist"); ret = -1; } } else if(srm_types == PROTO_SRM){ g_set_error(&tmp_err,0, EPROTONOSUPPORT, "support for SRMv1 is removed in 2.0, failure"); ret = -1; } else{ g_set_error(&tmp_err,0,EPROTONOSUPPORT, "Unknow version of the protocol SRM , failure "); ret=-1; } gfal_log(GFAL_VERBOSE_TRACE, " [gfal_srm_mkdirG] <-"); } } G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/common/srm/gfal_common_srm_access.c0000644000175000017500000001067412164561703021573 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_access.c * @brief file for the access function on the srm url type * @author Devresse Adrien * @version 2.0 * @date 05/05/2011 * */ #include #include #include #include #include #include #include int gfal_access_srmv2_internal(gfal_srmv2_opt* opts, char* endpoint, const char* surl, int mode, GError** err){ GError* tmp_err=NULL; srm_context_t context; struct srm_checkpermission_input checkpermission_input; struct srmv2_filestatus *resu; const int nb_request=1; char errbuf[GFAL_ERRMSG_LEN]; int i; int ret=-1; char* tab_surl[] = { (char*)surl, NULL}; if ( (context = gfal_srm_ifce_context_setup(opts->handle, endpoint, errbuf, GFAL_ERRMSG_LEN, &tmp_err)) != NULL){ checkpermission_input.nbfiles = nb_request; checkpermission_input.amode = mode; checkpermission_input.surls = tab_surl; ret = gfal_srm_external_call.srm_check_permission(context,&checkpermission_input, &resu); if(ret != nb_request){ gfal_srm_report_error(errbuf, &tmp_err); gfal_srm_ifce_context_release(context); return -1; } for(i=0; i< nb_request; ++i){ if( resu[i].status ){ if( strnlen(resu[i].surl, GFAL_URL_MAX_LEN) >= GFAL_URL_MAX_LEN || strnlen(resu[i].explanation, GFAL_URL_MAX_LEN) >= GFAL_URL_MAX_LEN){ g_set_error(&tmp_err, 0, resu[i].status, " Memory corruption in the libgfal_srm_ifce answer, fatal"); }else{ g_set_error(&tmp_err, 0, resu[i].status, "Error %d : %s \ , file %s: %s", resu[i].status, strerror(resu[i].status), resu[i].surl, resu[i].explanation); } ret= -1; break; } ret = 0; } errno = 0; //g_printerr(" resu : %d , status %d, strerror : %s, explanation : %s \n", ret, resu[0].status, strerror(resu[0].status), resu[0].explanation); gfal_srm_external_call.srm_srmv2_filestatus_delete(resu, nb_request); } gfal_srm_ifce_context_release(context); G_RETURN_ERR(ret, tmp_err,err); } /* * @brief access method for SRMv2 * check the right for a given SRM url, work only for SRMv2, V1 deprecated. * @param ch the handle of the plugin * @param surl srm url of a given file * @param mode access mode to check * @param err : GError error reprot system * @warning : not safe, surl must be verified */ int gfal_srm_accessG(plugin_handle ch, const char* surl, int mode, GError** err){ // execute an access method on a srm url g_return_val_err_if_fail(ch && surl, EINVAL, err, "[gfal_srm_accessG] Invalid value handle and/or surl"); GError* tmp_err=NULL; gfal_srmv2_opt* opts= (gfal_srmv2_opt*) ch; int ret=-1; char full_endpoint[GFAL_URL_MAX_LEN]; enum gfal_srm_proto srm_types; ret =gfal_srm_determine_endpoint(opts, surl, full_endpoint, GFAL_URL_MAX_LEN, &srm_types, &tmp_err); // get the associated endpoint if( ret != 0){ // check & get endpoint g_propagate_prefixed_error(err,tmp_err, "[%s]", __func__); return -1; } if (srm_types == PROTO_SRMv2){ // check the proto version ret= gfal_access_srmv2_internal(opts, full_endpoint, surl, mode,&tmp_err); // execute the SRMv2 access test if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); } else if(srm_types == PROTO_SRM){ g_set_error(err,0, EPROTONOSUPPORT, "[%s] support for SRMv1 is removed in 2.0, failure", __func__); ret = -1; } else{ g_set_error(err,0,EPROTONOSUPPORT, "[%s] Unknow version of the protocol SRM , failure ", __func__); ret=-1; } return ret; } gfal2-2.3.0/src/common/srm/gfal_common_srm_endpoint.c0000644000175000017500000002343312164561703022147 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_endpoint.c * @brief file for internal use in the srm part, endpoint determination * @author Devresse Adrien * @version 2.0 * @date 22/06/2011 * */ #include #include #include #include #include #include #include #include #include #include "gfal_common_srm_endpoint.h" static enum gfal_srm_proto gfal_proto_list_prefG[]= { PROTO_SRMv2, PROTO_SRM, PROTO_ERROR_UNKNOW }; // construct a default service endpoint format, Guessing that the service endpoint follows the default DPM/dCache convention int gfal_srm_guess_service_endpoint(gfal_srmv2_opt* opts, const char* surl, char* buff_endpoint, size_t s_buff, enum gfal_srm_proto* srm_type, GError** err ){ guint msize =0; GError* tmp_err=NULL; int ret =0; msize = g_strlcpy(buff_endpoint, GFAL_ENDPOINT_DEFAULT_PREFIX, s_buff); char* p,* org_p; p = org_p = ((char*)surl) + strlen(GFAL_PREFIX_SRM); const int surl_len = strlen(surl); while(p < surl + surl_len && *p != '/' && *p != '\0') p++; if( org_p +1 > p || msize >= s_buff || p - org_p + msize + strlen(GFAL_DEFAULT_SERVICE_ENDPOINT_SUFFIX) > s_buff){ g_set_error(&tmp_err,0, EINVAL, "Impossible to setup default service endpoint from %s : bad URI format", surl); ret = -1; }else{ strncat(buff_endpoint, org_p, p-org_p); g_strlcat(buff_endpoint, GFAL_DEFAULT_SERVICE_ENDPOINT_SUFFIX, s_buff); *srm_type= opts->srm_proto_type; ret =0; } G_RETURN_ERR(ret, tmp_err, err); } /* * extract endpoint and srm_type from a surl * determine the best endpoint associated with the surl and the param of the actual handle (no bdii check or not) * see the diagram in doc/diagrams/surls_get_endpoint_activity_diagram.svg for more informations * @return return 0 with endpoint and types set if success else -1 and set Error * */ int gfal_srm_determine_endpoint(gfal_srmv2_opt* opts, const char* surl, char* buff_endpoint, size_t s_buff, enum gfal_srm_proto* srm_type, GError** err){ g_return_val_err_if_fail(opts && buff_endpoint && srm_type && surl && s_buff,-1, err, "[gfal_srm_determine_endpoint] invalid value in params"); // check params GError* tmp_err=NULL; int ret = -1; gboolean isFullEndpoint = gfal_check_fullendpoint_in_surlG(opts, surl, &tmp_err); // check if a full endpoint exist if(!tmp_err){ if( isFullEndpoint == TRUE ){ // if full endpoint contained in url, get it and set type to default type if( gfal_get_fullendpointG(surl, buff_endpoint, s_buff, &tmp_err) == 0){ *srm_type= opts->srm_proto_type; ret = 0; gfal_log(GFAL_VERBOSE_DEBUG, "Service endpoint resolution, resolved from FULL SURL %s -> %s",surl, buff_endpoint); } }else{ if( gfal_get_nobdiiG(opts->handle) == TRUE || (( ret= gfal_get_endpoint_and_setype_from_bdiiG(opts, surl, buff_endpoint, s_buff, srm_type, &tmp_err)) != 0)){ if(tmp_err){ gfal_log(GFAL_VERBOSE_VERBOSE, "WARNING : Error while bdii SRM service resolution : %s, fallback on the default service path." "This can lead to wrong service path, you should use FULL SURL format or register your endpoint into the BDII", tmp_err->message); g_clear_error(&tmp_err); }else{ gfal_log(GFAL_VERBOSE_VERBOSE, "WARNING : BDII usage disabled, fallback on the default service path." "This can lead to wrong service path, you should use FULL SURL format or register your endpoint into the BDII"); } ret = gfal_srm_guess_service_endpoint(opts, surl, buff_endpoint, s_buff, srm_type, &tmp_err); if(ret ==0){ gfal_log(GFAL_VERBOSE_DEBUG, "Service endpoint resolution, set to default path %s -> %s",surl, buff_endpoint); } }else{ gfal_log(GFAL_VERBOSE_DEBUG, "Service endpoint resolution, resolved from BDII %s -> %s",surl, buff_endpoint); } } } G_RETURN_ERR(ret, tmp_err, err); } /* * return TRUE if a full endpoint is contained in surl else FALSE * */ gboolean gfal_check_fullendpoint_in_surlG(gfal_srmv2_opt* opts,const char * surl, GError ** err){ const int ret= regexec(&(opts->rex_full),surl,0,NULL,0); return (ret==0)?TRUE:FALSE; } /* * @brief create a full endpoint from a "full-surl" * */ int gfal_get_fullendpointG(const char* surl, char* buff_endpoint, size_t s_buff, GError** err){ char* p = strstr(surl,"?SFN="); const int len_prefix = strlen(GFAL_PREFIX_SRM); // get the srm prefix length const int len_endpoint_prefix = strlen(GFAL_ENDPOINT_DEFAULT_PREFIX); // get the endpoint protocol prefix len g_return_val_err_if_fail(p && len_prefix && (p>(surl+len_prefix)) && len_endpoint_prefix, -1,err,"[gfal_get_fullendpoint] full surl must contain ?SFN= and a valid prefix, fatal error"); // assertion on params size_t need_size = p- surl-len_prefix +len_endpoint_prefix; if(s_buff > need_size){ memcpy(buff_endpoint, GFAL_ENDPOINT_DEFAULT_PREFIX, len_endpoint_prefix); // copy prefix *((char*)mempcpy(buff_endpoint + len_endpoint_prefix, surl+len_prefix, p- surl-len_prefix))= '\0'; // copy endpoint return 0; } g_set_error(err, 0, ENOBUFS, "[%s] buffer too small", __func__); return -1; } /* * map a bdii se protocol type to a gfal protocol type */ static enum gfal_srm_proto gfal_convert_proto_from_bdii(const char* se_type_bdii){ enum gfal_srm_proto resu; if( strcmp(se_type_bdii,"srm_v1") == 0){ resu = PROTO_SRM; }else if( strcmp(se_type_bdii,"srm_v2") == 0){ resu = PROTO_SRMv2; }else{ resu = PROTO_ERROR_UNKNOW; } return resu; } /* * select the best protocol choice and the best endpoint choice from a list of protocol and endpoints obtained by the bdii * */ int gfal_select_best_protocol_and_endpointG(gfal_srmv2_opt* opts, char** tab_se_type, char** tab_endpoint, char* buff_endpoint, size_t s_buff, enum gfal_srm_proto* srm_type, GError** err){ g_return_val_err_if_fail(opts && buff_endpoint && s_buff && srm_type && tab_se_type && tab_endpoint, -1, err, "[gfal_select_best_protocol_and_endpoint] Invalid value"); char** pse =tab_se_type; enum gfal_srm_proto* p_pref = &(opts->srm_proto_type); while( *p_pref != PROTO_ERROR_UNKNOW){ while(*pse != NULL && *tab_endpoint != NULL ){ if( *p_pref == gfal_convert_proto_from_bdii(*pse) ){ // test if the response is the actual preferred response g_strlcpy(buff_endpoint, *tab_endpoint, s_buff); *srm_type = *p_pref; return 0; } tab_endpoint++; pse++; } if(p_pref == &(opts->srm_proto_type)) // switch desired proto to the list if the default choice is not in the list p_pref=gfal_proto_list_prefG; else p_pref++; } g_set_error(err,0, EINVAL, "[gfal_select_best_protocol_and_endpoint] cannot obtain a valid protocol from the bdii response, fatal error"); return -2; } /* * @brief get the hostname from a surl * @return return 0 if success else -1 and err is set */ int gfal_get_hostname_from_surlG(const char * surl, char* buff_hostname, size_t s_buff, GError** err){ const int srm_prefix_len = strlen(GFAL_PREFIX_SRM); const int surl_len = strnlen(surl,GFAL_URL_MAX_LEN); g_return_val_err_if_fail(surl && (srm_prefix_len < surl_len) && (surl_len < GFAL_URL_MAX_LEN),-1, err, "[gfal_get_hostname_from_surl] invalid value in params"); char* p; if((p = strchr(surl+srm_prefix_len,'/')) ==NULL){ g_set_error(err, 0, EINVAL, "[%s] url invalid",__func__); return -1; } if(s_buff > (p-surl-srm_prefix_len)){ *((char*) mempcpy(buff_hostname, surl+srm_prefix_len, p-surl-srm_prefix_len)) = '\0'; if(*buff_hostname =='\0'){ g_set_error(err, 0, EINVAL, "[%s] url invalid",__func__); return -1; } return 0; } g_set_error(err, 0, ENOBUFS, "[%s] buffer size too small",__func__); return -1; } /* * get endpoint from the bdii system only * 0 == success * < 0 error * > 0 : bddi disabled * * */ int gfal_get_endpoint_and_setype_from_bdiiG(gfal_srmv2_opt* opts, const char* surl, char* buff_endpoint, size_t s_buff, enum gfal_srm_proto* srm_type, GError** err){ g_return_val_err_if_fail(opts && buff_endpoint && srm_type && surl && s_buff, -1, err, "[gfal_get_endpoint_and_setype_from_bdiiG] invalid parameters"); char** tab_endpoint=NULL; char** tab_se_type=NULL; char hostname[GFAL_URL_MAX_LEN]; int ret =-1; GError* tmp_err=NULL; if( (ret = gfal_get_hostname_from_surlG(surl, hostname, GFAL_URL_MAX_LEN, &tmp_err)) == 0){ // get the hostname if( (ret =gfal_mds_get_se_types_and_endpoints(opts->handle, hostname, &tab_se_type, &tab_endpoint, &tmp_err)) == 0){ // questioning the bdii gfal_select_best_protocol_and_endpointG(opts, tab_se_type, tab_endpoint, buff_endpoint, GFAL_URL_MAX_LEN, srm_type, &tmp_err); // map the response if correct g_strfreev(tab_endpoint); g_strfreev(tab_se_type); ret = 0; } } G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/common/srm/gfal_common_srm_opendir.h0000644000175000017500000000255312164561703021774 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_opendir.h * @brief header file for the opendir function on the srm url type * @author Devresse Adrien * @version 2.0 * @date 09/06/2011 * */ #include #include #include #include typedef struct _gfal_srm_opendir_handle{ char surl[GFAL_URL_MAX_LEN]; char endpoint[GFAL_URL_MAX_LEN]; off_t resu_offset; struct srmv2_mdfilestatus *srm_ls_resu; struct dirent current_readdir; off_t dir_offset; }* gfal_srm_opendir_handle; gfal_file_handle gfal_srm_opendirG(plugin_handle handle, const char* path, GError ** err); int gfal_srm_closedirG(plugin_handle handle, gfal_file_handle fh, GError** err); gfal2-2.3.0/src/common/srm/README_PLUGIN_SRM0000644000175000017500000000047112164561703017415 0ustar ellertellert gfal 2.0 srm plugin : - features : * thrid party transfert copy * all the posix related call excepted rename - warnings : * SRM uses SOAP, it inherits of the advantages and the inconvenients of this technology. SRM is portable, but can be slow for little files/ entry or for big directory listing gfal2-2.3.0/src/common/srm/gfal_common_srm.h0000644000175000017500000000775112164561703020261 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_common_srm.h * the header file with the main srm funcs of the common API * author Devresse Adrien */ #include #include #include #include #include #include #define GFAL_PREFIX_SRM "srm://" #define GFAL_PREFIX_SRM_LEN 6 #define GFAL_ENDPOINT_DEFAULT_PREFIX "httpg://" #define GFAL_DEFAULT_SERVICE_ENDPOINT_SUFFIX "/srm/managerv2" #define SRM_XATTR_GETURL "user.replicas" #define GFAL_SRM_LSTAT_PREFIX "lstat_" //typedef struct srm_spacemd gfal_spacemd; enum status_type {DEFAULT_STATUS = 0, MD_STATUS, PIN_STATUS}; enum se_type {TYPE_NONE = 0, TYPE_SRM, TYPE_SRMv2, TYPE_SE}; enum gfal_srm_proto {PROTO_SRM=0, PROTO_SRMv2, PROTO_ERROR_UNKNOW}; /* * the state of the last request -> depreciated * needed to get the response */ typedef struct _gfal_request_state{ char * srmv2_token; struct srmv2_filestatus * srmv2_statuses; struct srmv2_pinfilestatus *srmv2_pinstatuses; enum gfal_srm_proto current_request_proto; char * request_endpoint; gboolean finished; // finished or not int number; // number of files in request } gfal_request_state; /* * @struct structure for the srmv2 option management * set to 0 by default */ typedef struct _gfal_srmv2_opt{ enum gfal_srm_proto srm_proto_type; // default protocol version int opt_srmv2_desiredpintime; // optional desired default endpoint char * opt_srmv2_spacetokendesc; // optional spacetokens desc for srmv2 regex_t rexurl; regex_t rex_full; gfal_handle handle; gfal_request_state* last_request_state; GSimpleCache* cache; } gfal_srmv2_opt; typedef gfal_srmv2_opt* gfal_srm_plugin_t; typedef struct _gfal_srm_result{ char turl[GFAL_URL_MAX_LEN+1]; // turl associated with the request ( main result ) char *reqtoken; // token of the request ( common to all result of a request ) int err_code; // errcode, !=0 if error char err_str[GFAL_ERRMSG_LEN+1]; // explanation about the error } gfal_srm_result; typedef struct _gfal_srm_params{ char** protocols; // optional protocols list for manual set enum gfal_srm_proto proto_version; // default protocol version char * spacetokendesc; // optional spacetokens desc for srmv2 int desiredpintime; // optional desired default endpoint size_t file_size; }* gfal_srm_params_t; typedef void* srm_request_handle; // default set of protocols for TURL in case of remote IO char** srm_get_turls_sup_protocol(gfal2_context_t context); // default set of protocols for TURL in case of third party transfer char** srm_get_3rdparty_turls_sup_protocol(gfal2_context_t context); const char* gfal_srm_getName(); gfal_plugin_interface gfal_srm_initG(gfal_handle handle, GError** err); void gfal_srm_destroyG(plugin_handle ch); void gfal_srm_opt_initG(gfal_srmv2_opt* opts, gfal_handle handle); inline char* gfal_srm_construct_key(const char* url, const char* prefix, char* buff, const size_t s_buff); void gfal_set_default_storageG(gfal_srmv2_opt* opts, enum gfal_srm_proto proto); int gfal_srm_convert_filestatuses_to_GError(struct srmv2_filestatus* statuses, int n, GError** err); gboolean gfal_srm_check_cancel(gfal2_context_t context, GError** err); int gfal_surl_checker(plugin_handle ch, const char* surl, GError** err); gfal2-2.3.0/src/common/srm/gfal_common_srm.c0000644000175000017500000002532012164561703020244 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * file gfal_common.c * brief the header file with the main srm funcs of the common API * author Devresse Adrien */ #include #include #include "gfal_common_srm.h" #include "gfal_common_srm_access.h" #include "gfal_common_srm_bringonline.h" #include "gfal_common_srm_internal_layer.h" #include "gfal_common_srm_access.h" #include "gfal_common_srm_mkdir.h" #include "gfal_common_srm_stat.h" #include "gfal_common_srm_rmdir.h" #include "gfal_common_srm_opendir.h" #include "gfal_common_srm_open.h" #include "gfal_common_srm_readdir.h" #include "gfal_common_srm_rename.h" #include "gfal_common_srm_chmod.h" #include "gfal_common_srm_getxattr.h" #include "gfal_common_srm_checksum.h" #include "gfal_common_srm_copy.h" #include "gfal_common_srm_url_check.h" #include #include #include #include /* * * list of the turls supported protocols */ static char* srm_turls_sup_protocols_default[] = { "rfio", "gsidcap", "dcap", "kdcap", "gsiftp", NULL }; /* * list of protocols supporting third party transfer */ char* srm_turls_thirdparty_protocols_default[] = { "gsiftp", NULL }; char** srm_get_turls_sup_protocol(gfal2_context_t context){ gsize len; return gfal2_get_opt_string_list_with_default(context, srm_config_group, srm_config_turl_protocols, &len, srm_turls_sup_protocols_default); } char** srm_get_3rdparty_turls_sup_protocol(gfal2_context_t context){ gsize len; return gfal2_get_opt_string_list_with_default(context, srm_config_group, srm_config_3rd_party_turl_protocols, &len, srm_turls_thirdparty_protocols_default); } /* * * srm plugin id */ const char* gfal_srm_getName(){ return "srm_plugin"; } int gfal_checker_compile(gfal_srmv2_opt* opts, GError** err){ int ret = regcomp(&opts->rexurl, "^srm://([:alnum:]|-|/|.|_)+$",REG_ICASE | REG_EXTENDED); g_return_val_err_if_fail(ret==0,-1,err,"[gfal_surl_checker_] fail to compile regex for srm checking, report this bug"); ret = regcomp(&(opts->rex_full), "^srm://([:alnum:]|-|/|.|_)+:[0-9]+/([:alnum:]|-|/|.|_)+?SFN=",REG_ICASE | REG_EXTENDED); g_return_val_err_if_fail(ret==0,-1,err,"[gfal_surl_checker_] fail to compile regex for the full SURL srm checking, report this bug"); return ret; } /* * parse a surl to check the validity */ int gfal_surl_checker(plugin_handle ch, const char* surl, GError** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; if(surl == NULL || strnlen(surl, GFAL_URL_MAX_LEN) == GFAL_URL_MAX_LEN){ g_set_error(err, 0, EINVAL, "[%s] Invalid surl, surl too long or NULL",__func__); return -1; } return regexec(&opts->rexurl,surl,0,NULL,0); } /* * * convenience func for a group of surls * */ gboolean gfal_srm_surl_group_checker(gfal_srmv2_opt* opts,char** surls, GError** err){ GError* tmp_err=NULL; if(surls == NULL ){ g_set_error(err, 0, EINVAL, "[%s] Invalid argument surls ", __func__); return FALSE; } while(*surls != NULL){ if( gfal_surl_checker(opts, *surls, &tmp_err) != 0){ g_propagate_prefixed_error(err,tmp_err,"[%s]",__func__); return FALSE; } surls++; } return TRUE; } /* * url checker for the srm module, surl part * * */ static gboolean gfal_srm_check_url(plugin_handle handle, const char* url, plugin_mode mode, GError** err){ switch(mode){ case GFAL_PLUGIN_ACCESS: case GFAL_PLUGIN_MKDIR: case GFAL_PLUGIN_STAT: case GFAL_PLUGIN_LSTAT: case GFAL_PLUGIN_RMDIR: case GFAL_PLUGIN_OPENDIR: case GFAL_PLUGIN_OPEN: case GFAL_PLUGIN_CHMOD: case GFAL_PLUGIN_UNLINK: case GFAL_PLUGIN_GETXATTR: case GFAL_PLUGIN_LISTXATTR: case GFAL_PLUGIN_CHECKSUM: case GFAL_PLUGIN_MKDIR_REC: case GFAL_PLUGIN_BRING_ONLINE: case GFAL_PLUGIN_RENAME: return (gfal_surl_checker(handle, url, err)==0); default: return FALSE; } } /* * destroyer function, call when the module is unload * */ void gfal_srm_destroyG(plugin_handle ch){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; regfree(&opts->rexurl); regfree(&opts->rex_full); gsimplecache_delete(opts->cache); free(opts); } static void srm_internal_copy_stat(gpointer origin, gpointer copy){ memcpy(copy, origin, sizeof(struct stat)); } /* * Init an opts struct with the default parameters * */ void gfal_srm_opt_initG(gfal_srmv2_opt* opts, gfal_handle handle){ memset(opts, 0, sizeof(gfal_srmv2_opt)); gfal_checker_compile(opts, NULL); opts->opt_srmv2_desiredpintime = 0; opts->srm_proto_type = PROTO_SRMv2; opts->handle = handle; opts->cache = gsimplecache_new(5000, &srm_internal_copy_stat, sizeof(struct stat)); } /* * Init function, called before all * */ gfal_plugin_interface gfal_plugin_init(gfal_handle handle, GError** err){ gfal_plugin_interface srm_plugin; memset(&srm_plugin,0,sizeof(gfal_plugin_interface)); // clear the plugin gfal_srmv2_opt* opts = g_new(struct _gfal_srmv2_opt,1); // define the srmv2 option struct and clear it gfal_srm_opt_initG(opts, handle); srm_plugin.plugin_data = (void*) opts; srm_plugin.check_plugin_url = &gfal_srm_check_url; srm_plugin.plugin_delete = &gfal_srm_destroyG; srm_plugin.accessG = &gfal_srm_accessG; srm_plugin.mkdirpG = &gfal_srm_mkdirG; srm_plugin.statG= &gfal_srm_statG; srm_plugin.lstatG = &gfal_srm_statG; // no management for symlink in srm protocol/srm-ifce, just map to stat srm_plugin.rmdirG = &gfal_srm_rmdirG; srm_plugin.opendirG = &gfal_srm_opendirG; srm_plugin.readdirG = &gfal_srm_readdirG; srm_plugin.closedirG = &gfal_srm_closedirG; srm_plugin.getName= &gfal_srm_getName; srm_plugin.openG = &gfal_srm_openG; srm_plugin.closeG = &gfal_srm_closeG; srm_plugin.readG= &gfal_srm_readG; srm_plugin.preadG = &gfal_srm_preadG; srm_plugin.writeG= &gfal_srm_writeG; srm_plugin.chmodG= &gfal_srm_chmodG; srm_plugin.lseekG= &gfal_srm_lseekG; srm_plugin.unlinkG = &gfal_srm_unlinkG; srm_plugin.getxattrG = &gfal_srm_getxattrG; srm_plugin.listxattrG = &gfal_srm_listxattrG; srm_plugin.checksum_calcG = &gfal_srm_checksumG; srm_plugin.copy_file = &srm_plugin_filecopy; srm_plugin.check_plugin_url_transfer =&plugin_url_check2; srm_plugin.bring_online = &gfal_srmv2_bring_onlineG; srm_plugin.bring_online_poll = &gfal_srmv2_bring_online_pollG; srm_plugin.release_file = &gfal_srmv2_release_fileG; srm_plugin.renameG = &gfal_srm_renameG; return srm_plugin; } /* * Construct a key for the cache system from a url and a prefix * */ inline char* gfal_srm_construct_key(const char* url, const char* prefix, char* buff, const size_t s_buff){ g_strlcpy(buff, prefix, s_buff); g_strlcat(buff, url, s_buff); char* p2 = buff + strlen(prefix) + strlen(GFAL_PREFIX_SRM) + 2; while(*p2 != '\0'){ //remove the duplicate // if(*p2 == '/' && *(p2+1) == '/' ){ memmove(p2,p2+1,strlen(p2+1)+1); }else p2++; } return buff; } /* * brief create a full endpath from a surl with full endpath * */ char* gfal_get_fullendpoint(const char* surl, GError** err){ char* p = strstr(surl,"?SFN="); const int len_prefix = strlen(GFAL_PREFIX_SRM); // get the srm prefix length const int len_endpoint_prefix = strlen(GFAL_ENDPOINT_DEFAULT_PREFIX); // get the endpoint protocol prefix len g_return_val_err_if_fail(p && len_prefix && (p>(surl+len_prefix)) && len_endpoint_prefix,NULL,err,"[gfal_get_fullendpoint] full surl must contain ?SFN= and a valid prefix, fatal error"); // assertion on params char* resu = calloc(p-surl-len_prefix+len_endpoint_prefix, sizeof(char)); strncpy(resu, GFAL_ENDPOINT_DEFAULT_PREFIX, len_endpoint_prefix); // copy prefix strncpy(resu + len_endpoint_prefix, surl+len_prefix, p- surl-len_prefix); // copy endpoint return resu; } /* * brief get the hostname from a surl * return return NULL if error and set err else return the hostname value */ char* gfal_get_hostname_from_surl(const char * surl, GError** err){ const int srm_prefix_len = strlen(GFAL_PREFIX_SRM); const int surl_len = strnlen(surl,2048); g_return_val_err_if_fail(surl && (srm_prefix_len < surl_len) && (surl_len < 2048),NULL, err, "[gfal_get_hostname_from_surl] invalid value in params"); char* p = strchr(surl+srm_prefix_len,'/'); char* prep = strstr(surl, GFAL_PREFIX_SRM); if(prep != surl){ g_set_error(err,0, EINVAL, "[gfal_get_hostname_from_surl not a valid surl"); return NULL; } return strndup(surl+srm_prefix_len, p-surl-srm_prefix_len); } /* * map a bdii se protocol type to a gfal protocol type */ /* static enum gfal_srm_proto gfal_get_proto_from_bdii(const char* se_type_bdii){ enum gfal_srm_proto resu; if( strcmp(se_type_bdii,"srm_v1") == 0){ resu = PROTO_SRM; }else if( strcmp(se_type_bdii,"srm_v2") == 0){ resu = PROTO_SRMv2; }else{ resu = PROTO_ERROR_UNKNOW; } return resu; } */ /* * brief accessor for the default storage type definition * */ void gfal_set_default_storageG(gfal_srmv2_opt* opts, enum gfal_srm_proto proto){ opts->srm_proto_type = proto; } int gfal_srm_convert_filestatuses_to_GError(struct srmv2_filestatus* statuses, int n, GError** err){ g_return_val_err_if_fail(statuses && n, -1, err, "[gfal_srm_convert_filestatuses_to_GError] args invalids"); int i; int ret =0; for(i=0; i< n; ++i){ if(statuses[i].status != 0){ g_set_error(err, 0, statuses[i].status, "[%s] Error on the surl %s while putdone : %s", __func__, statuses[i].surl, statuses[i].explanation); ret = -1; } } return ret; } void gfal_srm_report_error(char* errbuff, GError** err){ int errcode = (errno != ECOMM && errno != 0)?errno:ECOMM; g_set_error(err,0, errcode, "srm-ifce err: %s, err: %s", strerror(errcode), errbuff); } gboolean gfal_srm_check_cancel(gfal2_context_t context, GError** err){ if(gfal2_is_canceled(context)){ g_set_error(err, 0, ECANCELED, "SRM operation canceled"); return TRUE; } return FALSE; } gfal2-2.3.0/src/common/srm/gfal_common_srm_bringonline.c0000644000175000017500000003006112164561703022630 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2013. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_bringonline.c * @brief brings online functions layer from srm * @author Devresse Adrien, Alejandro Ãlvarez Ayllón * @version 2.0 * @date 19/12/2011 * */ #include #include #include #include #include #include "gfal_common_srm.h" #include "gfal_common_srm_endpoint.h" #include "gfal_common_srm_internal_layer.h" #include "gfal_srm_request.h" static int gfal_srmv2_bring_online_internal(gfal_srmv2_opt* opts, const char* endpoint, const char* surl, time_t pintime, time_t timeout, char* token, size_t tsize, int async, GError** err){ struct srm_bringonline_input input; struct srm_bringonline_output output; GError *tmp_err = NULL; gfal_srm_params_t params = gfal_srm_params_new(opts, &tmp_err); int status = 0; memset(&output, 0, sizeof(output)); if (params != NULL) { char error_buffer[2048]; srm_context_t context = gfal_srm_ifce_context_setup(opts->handle, endpoint, error_buffer, sizeof(error_buffer), &tmp_err); if (context) { context->timeout = timeout; context->timeout_conn = timeout; context->timeout_ops = timeout; input.nbfiles = 1; input.surls = (char**)&surl; input.desiredpintime = pintime; input.protocols = gfal_srm_params_get_protocols(params); input.spacetokendesc = gfal_srm_params_get_spacetoken(params); int ret = 0; if (async) ret = gfal_srm_external_call.srm_bring_online_async(context, &input, &output); else ret = gfal_srm_external_call.srm_bring_online(context, &input, &output); if (ret < 0) { gfal_srm_report_error(context->errbuf, &tmp_err); } else { status = output.filestatuses[0].status; switch (status) { case 0: case 22: if (token) strncpy(token, output.token, tsize); break; default: g_set_error(&tmp_err, 0, output.filestatuses[0].status, " error on the bring online request : %s ", output.filestatuses[0].explanation); break; } } gfal_srm_external_call.srm_srmv2_pinfilestatus_delete(output.filestatuses, ret); gfal_srm_external_call.srm_srm2__TReturnStatus_delete(output.retstatus); free(output.token); gfal_srm_ifce_context_release(context); } } gfal_srm_params_free(params); if (tmp_err != NULL) { g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return -1; } else { return status == 0; } } int gfal_srmv2_bring_onlineG(plugin_handle ch, const char* surl, time_t pintime, time_t timeout, char* token, size_t tsize, int async, GError** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; char full_endpoint[GFAL_URL_MAX_LEN]; enum gfal_srm_proto srm_type; int ret = 0; GError *tmp_err = NULL; ret = gfal_srm_determine_endpoint(opts, surl, full_endpoint, sizeof(full_endpoint), &srm_type, &tmp_err); if (ret >= 0) { switch (srm_type) { case PROTO_SRMv2: ret = gfal_srmv2_bring_online_internal(opts, full_endpoint, surl, pintime, timeout, token, tsize, async, &tmp_err); break; case PROTO_SRM: g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "support for SRMv1 is removed in 2.0, failure"); break; default: g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "Unknow version of the protocol SRM , failure"); break; } } if (tmp_err != NULL) { g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return -1; } else { return ret; } } static int gfal_srmv2_bring_online_poll_internal(gfal_srmv2_opt* opts, const char* endpoint, const char* surl, const char* token, GError ** err) { struct srm_bringonline_input input; struct srm_bringonline_output output; char error_buffer[1024]; GError *tmp_err = NULL; int status = 0; memset(&input, 0, sizeof(input)); memset(&output, 0, sizeof(output)); input.nbfiles = 1; input.surls = (char**)&surl; output.token = (char*)token; srm_context_t context = gfal_srm_ifce_context_setup(opts->handle, endpoint, error_buffer, sizeof(error_buffer), &tmp_err); if (context) { int ret = gfal_srm_external_call.srm_bring_online_status(context, &input, &output); if (ret < 0) { gfal_srm_report_error(context->errbuf, &tmp_err); } else { status = output.filestatuses[0].status; switch (status) { case 0: case 22: break; default: g_set_error(&tmp_err, 0, output.filestatuses[0].status, " error on the bring online request : %s ", output.filestatuses[0].explanation); break; } } gfal_srm_external_call.srm_srmv2_pinfilestatus_delete(output.filestatuses, ret); gfal_srm_external_call.srm_srm2__TReturnStatus_delete(output.retstatus); gfal_srm_ifce_context_release(context); } if (tmp_err != NULL) { g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return -1; } else { return status == 0; } } int gfal_srmv2_bring_online_pollG(plugin_handle ch, const char* surl, const char* token, GError** err) { gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; char full_endpoint[GFAL_URL_MAX_LEN]; enum gfal_srm_proto srm_type; GError *tmp_err = NULL; int ret; ret = gfal_srm_determine_endpoint(opts, surl, full_endpoint, sizeof(full_endpoint), &srm_type, &tmp_err); if (ret >= 0) { switch (srm_type) { case PROTO_SRMv2: ret = gfal_srmv2_bring_online_poll_internal(opts, full_endpoint, surl, token, &tmp_err); break; case PROTO_SRM: g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "support for SRMv1 is removed in 2.0, failure"); break; default: g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "Unknow version of the protocol SRM , failure"); break; } } if (tmp_err != NULL) { g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return -1; } else { return ret; } } static int gfal_srmv2_release_file_internal(gfal_srmv2_opt* opts, const char* endpoint, const char* surl, const char* token, GError** err) { struct srm_releasefiles_input input; struct srmv2_filestatus *statuses; GError *tmp_err = NULL; gfal_srm_params_t params = gfal_srm_params_new(opts, &tmp_err); if (params != NULL) { char error_buffer[2048]; srm_context_t context = gfal_srm_ifce_context_setup(opts->handle, endpoint, error_buffer, sizeof(error_buffer), &tmp_err); if (token) gfal_log(GFAL_VERBOSE_VERBOSE, "Release file with token %s", token); else gfal_log(GFAL_VERBOSE_VERBOSE, "Release file without token"); // Perform if (context ) { input.nbfiles = 1; input.reqtoken = NULL; input.surls = (char**)&surl; if(token) input.reqtoken = (char*)token; int ret = gfal_srm_external_call.srm_release_files(context, &input, &statuses); if (ret < 0) { gfal_srm_report_error(context->errbuf, &tmp_err); } else { if (statuses[0].status != 0) { g_set_error(&tmp_err, 0, statuses[0].status, "error on the release request : %s ", statuses[0].explanation); } gfal_srm_external_call.srm_srmv2_filestatus_delete(statuses, 1); } } else { g_set_error(&tmp_err, 0, errno, "[%s] %s", __func__, error_buffer); } } if (tmp_err != NULL) { g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return -1; } else { return 0; } } int gfal_srmv2_release_fileG(plugin_handle ch, const char* surl, const char* token, GError** err) { gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; char full_endpoint[GFAL_URL_MAX_LEN]; enum gfal_srm_proto srm_type; GError *tmp_err = NULL; int ret; ret = gfal_srm_determine_endpoint(opts, surl, full_endpoint, sizeof(full_endpoint), &srm_type, &tmp_err); if (ret >= 0) { switch (srm_type) { case PROTO_SRMv2: ret = gfal_srmv2_release_file_internal(opts, full_endpoint, surl, token, &tmp_err); break; case PROTO_SRM: g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "support for SRMv1 is removed in 2.0, failure"); break; default: g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "Unknow version of the protocol SRM , failure"); break; } } if (tmp_err != NULL) { g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return -1; } else { return ret; } } gfal2-2.3.0/src/common/srm/gfal_common_srm_internal_ls.h0000644000175000017500000000303212164561703022637 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_internal_ls.c * @brief srm ls operation concentrator * @author Devresse Adrien * @version 2.0 * @date 21/12/2011 * */ #include "gfal_common_srm.h" #include "gfal_common_srm_internal_layer.h" int gfal_srm_ls_internal(gfal_srmv2_opt* opts, const char* endpoint, struct srm_ls_input* input, struct srm_ls_output* output, GError** err); int gfal_statG_srmv2__generic_internal(gfal_srmv2_opt* opts, struct stat* buf, const char* endpoint, const char* surl, GError** err); int gfal_Locality_srmv2_generic_internal( gfal_srmv2_opt* opts, const char* endpoint, const char* surl, TFileLocality* loc, GError** err); int gfal_srm_cache_stat_add(plugin_handle ch, const char* surl, struct stat * value); void gfal_srm_cache_stat_remove(plugin_handle ch, const char* surl); gfal2-2.3.0/src/common/srm/gfal_common_srm_stat.c0000644000175000017500000000567512164561703021312 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_stat.c * @brief file for the stat function on the srm url type * @author Devresse Adrien * @version 2.0 * @date 16/05/2011 * */ #include #include #include "gfal_common_srm.h" #include "gfal_common_srm_internal_ls.h" #include "gfal_common_srm_access.h" #include "gfal_common_srm_internal_layer.h" #include "gfal_common_srm_endpoint.h" int gfal_statG_srmv2_internal(gfal_srmv2_opt* opts, struct stat* buf, const char* endpoint, const char* surl, GError** err){ return gfal_statG_srmv2__generic_internal(opts, buf, endpoint, surl, err); } /* * stat call, for the srm interface stat and lstat are the same call !! the default behavior is similar to stat by default and ignore links * * */ int gfal_srm_statG(plugin_handle ch, const char* surl, struct stat* buf, GError** err){ g_return_val_err_if_fail( ch && surl && buf, -1, err, "[gfal_srm_statG] Invalid args in handle/surl/bugg"); GError* tmp_err = NULL; int ret =-1; char full_endpoint[GFAL_URL_MAX_LEN]; char key_buff[GFAL_URL_MAX_LEN]; enum gfal_srm_proto srm_type; gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; gfal_srm_construct_key(surl, GFAL_SRM_LSTAT_PREFIX, key_buff, GFAL_URL_MAX_LEN); if (gsimplecache_take_one_kstr(opts->cache, key_buff, buf) ==0){ gfal_log(GFAL_VERBOSE_DEBUG, " srm_statG -> value taken from the cache"); ret = 0; }else{ ret =gfal_srm_determine_endpoint(opts, surl, full_endpoint, GFAL_URL_MAX_LEN, &srm_type, &tmp_err); if( ret >=0 ){ if(srm_type == PROTO_SRMv2){ gfal_log(GFAL_VERBOSE_VERBOSE, " [gfal_srm_statG] try to stat file %s", surl); ret = gfal_statG_srmv2_internal(opts, buf, full_endpoint, surl, &tmp_err); if( ret ==0){ gfal_log(GFAL_VERBOSE_TRACE, " [gfal_srm_statG] store %s stat info in cache", surl); gfal_srm_cache_stat_add(ch, surl, buf); } }else if (srm_type == PROTO_SRM){ g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "support for SRMv1 is removed in 2.0, failure"); ret = -1; }else { g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "Unknow version of the protocol SRM , failure"); ret = -1; } } } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } gfal2-2.3.0/src/common/srm/gfal_srm_request.h0000644000175000017500000000244012164561703020447 0ustar ellertellert#pragma once #ifndef GFAL_SRM_REQUEST_H #define GFAL_SRM_REQUEST_H /* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "gfal_common_srm.h" /* * Next gen request srm system for gfal 2.0 * Come with srm-ifce 2.0 * */ gfal_srm_params_t gfal_srm_params_new(gfal_srm_plugin_t handle, GError ** err ); void gfal_srm_params_free(gfal_srm_params_t params); char ** gfal_srm_params_get_protocols(gfal_srm_params_t params); void gfal_srm_params_set_protocols(gfal_srm_params_t params, char** protocols); gchar* gfal_srm_params_get_spacetoken(gfal_srm_params_t params); void gfal_srm_params_set_spacetoken(gfal_srm_params_t params, const char* spacetoken); void gfal_srm_params_set_size(gfal_srm_params_t params, size_t file_size); #endif /* GFAL_SRM_REQUEST_H */ gfal2-2.3.0/src/common/srm/gfal_common_srm_checksum.c0000644000175000017500000001524612164561703022134 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_checksum.c * @brief funtion to get the checksum of a file * @author Devresse Adrien * @version 2.0 * @date 29/09/2011 * */ #include #include #include #include "gfal_common_srm_internal_layer.h" #include "gfal_common_srm_getput.h" #include "gfal_common_srm_url_check.h" GQuark srm_checksum_quark(){ return g_quark_from_static_string("gfal_srm_cheksumG"); } static int gfal_checksumG_srmv2_internal(gfal_srmv2_opt* opts, const char* endpoint, const char* surl, char* buf_checksum, size_t s_checksum, char* buf_chktype, size_t s_chktype, GError** err){ g_return_val_err_if_fail( opts && endpoint && surl && buf_checksum && buf_chktype, -1, err, "[gfal_checksumG_srmv2_internal] Invalid input parameters : endpoint, surl, checksum, checksum_type"); GError* tmp_err=NULL; srm_context_t context; struct srm_ls_input input; struct srm_ls_output output; struct srmv2_mdfilestatus *srmv2_mdstatuses=NULL; const int nb_request=1; char errbuf[GFAL_ERRMSG_LEN]={0}; int ret=-1; char* tab_surl[] = { (char*)surl, NULL}; if( (context = gfal_srm_ifce_context_setup(opts->handle, endpoint, errbuf, GFAL_ERRMSG_LEN, &tmp_err)) != NULL){ input.nbfiles = nb_request; input.surls = tab_surl; input.numlevels = 0; input.offset = 0; input.count = 0; ret = gfal_srm_external_call.srm_ls(context,&input,&output); // execute ls if(ret >=0){ srmv2_mdstatuses = output.statuses; if(srmv2_mdstatuses->status != 0){ g_set_error(&tmp_err, srm_checksum_quark(), errno, "Error reported from srm_ifce : %d %s", srmv2_mdstatuses->status, srmv2_mdstatuses->explanation); ret = -1; }else{ if(srmv2_mdstatuses->checksum && srmv2_mdstatuses->checksumtype){ g_strlcpy(buf_checksum, srmv2_mdstatuses->checksum, s_checksum); g_strlcpy(buf_chktype, srmv2_mdstatuses->checksumtype, s_chktype); }else{ if(s_checksum > 0) buf_checksum='\0'; if(s_chktype > 0) buf_chktype ='\0'; } ret = 0; } }else{ gfal_srm_report_error(errbuf, &tmp_err); ret=-1; } gfal_srm_external_call.srm_srmv2_mdfilestatus_delete(srmv2_mdstatuses, 1); gfal_srm_external_call.srm_srm2__TReturnStatus_delete(output.retstatus); gfal_srm_ifce_context_release(context); } G_RETURN_ERR(ret, tmp_err, err); } /* * get checksum from a remote SRM URL * * */ int gfal_srm_cheksumG_internal(plugin_handle ch, const char* surl, char* buf_checksum, size_t s_checksum, char* buf_chktype, size_t s_chktype, GError** err){ g_return_val_err_if_fail( ch && surl && buf_checksum && buf_chktype, -1, err, "[gfal_srm_cheksumG] Invalid args in handle/surl/bugg"); GError* tmp_err = NULL; int ret =-1; char full_endpoint[GFAL_URL_MAX_LEN]; enum gfal_srm_proto srm_type; gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; ret =gfal_srm_determine_endpoint(opts, surl, full_endpoint, GFAL_URL_MAX_LEN, &srm_type, &tmp_err); if( ret >=0 ){ if(srm_type == PROTO_SRMv2){ ret = gfal_checksumG_srmv2_internal(opts, full_endpoint, surl, buf_checksum, s_checksum, buf_chktype, s_chktype, &tmp_err); }else if (srm_type == PROTO_SRM){ g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "support for SRMv1 is removed in 2.0, failure"); ret = -1; }else { g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "Unknow version of the protocol SRM , failure"); ret = -1; } } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } int gfal_srm_checksumG(plugin_handle handle, const char* url, const char* check_type, char * checksum_buffer, size_t buffer_length, off_t start_offset, size_t data_length, GError ** err){ gfal_log(GFAL_VERBOSE_TRACE, " [gfal_srm_checksumG] ->"); gfal_log(GFAL_VERBOSE_DEBUG, "[gfal_srm_checksumG] try to get checksum %s for %s", check_type, url); char buffer_type[GFAL_URL_MAX_LEN]={0}; GError * tmp_err=NULL; gfal_srmv2_opt* opts = (gfal_srmv2_opt*)handle; const gboolean srm_url = srm_check_url(url); int res = -1; if(srm_url && start_offset==0 && data_length==0 ){ // try SRM checksum only if full file checksum is requested res= gfal_srm_cheksumG_internal(handle, url, checksum_buffer, buffer_length, buffer_type, GFAL_URL_MAX_LEN, &tmp_err); } if(res == 0){ gfal_log(GFAL_VERBOSE_DEBUG, "registered checksum type %s", buffer_type); if(strncasecmp(check_type, buffer_type,GFAL_URL_MAX_LEN) != 0){ // does not match the correct type // this can be because checksum is nto populated on DPM server, cause the first gsiftp checksum calculation res = -1; // cancel result } } if(res != 0 && !tmp_err){ gfal_log(GFAL_VERBOSE_TRACE, "\t\tNo valid SRM checksum, fallback to the TURL checksum"); char buff_turl[GFAL_URL_MAX_LEN]; char *res_turl; if(srm_url){ // SRM URL do TURL resolution if( (res = gfal_srm_getTURL_checksum(handle, url, buff_turl, GFAL_URL_MAX_LEN, &tmp_err)) >= 0){ res_turl = buff_turl; }else{ res = -1; } }else{ // native protocol -> act like this res_turl = (char*)url; res =0; } if(res == 0){ gfal_log(GFAL_VERBOSE_TRACE, "\t\t\tExecute checksum on turl %s", res_turl); res= gfal2_checksum(opts->handle, res_turl, check_type, 0,0, checksum_buffer, buffer_length, &tmp_err); } } G_RETURN_ERR(res, tmp_err, err); } gfal2-2.3.0/src/common/srm/gfal_common_srm_rmdir.c0000644000175000017500000000724612164561703021450 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_rmdir.c * @brief file for the rmdir function on the srm url type * @author Devresse Adrien * @version 2.0 * @date 24/05/2011 * */ #include "gfal_common_srm.h" #include "gfal_common_srm_rmdir.h" #include "gfal_common_srm_internal_layer.h" #include "gfal_common_srm_stat.h" #include "gfal_common_srm_endpoint.h" #include "gfal_common_srm_internal_ls.h" #include #include int gfal_srmv2_rmdir_internal(gfal_srmv2_opt* opts, char* endpoint, const char* surl, GError** err){ srm_context_t context; struct srm_rmdir_input rmdir_input; struct srm_rmdir_output rmdir_output; GError* tmp_err=NULL; char errbuf[GFAL_ERRMSG_LEN]={0}; int ret = -1; if( (context = gfal_srm_ifce_context_setup(opts->handle, endpoint, errbuf, GFAL_ERRMSG_LEN, &tmp_err)) != NULL){ rmdir_input.recursive = 0; rmdir_input.surl = (char*)surl; if( gfal_srm_external_call.srm_rmdir(context, &rmdir_input, &rmdir_output) >=0){ const int sav_errno = rmdir_output.statuses[0].status; if( sav_errno ){ g_set_error(&tmp_err, 0, sav_errno, " Error report from the srm_ifce %s ", strerror(sav_errno)); ret = -1; }else{ ret =0; } gfal_srm_external_call.srm_srmv2_filestatus_delete(rmdir_output.statuses,1); gfal_srm_external_call.srm_srm2__TReturnStatus_delete (rmdir_output.retstatus); }else{ gfal_srm_report_error(errbuf, &tmp_err); ret=-1; } gfal_srm_ifce_context_release(context); } G_RETURN_ERR(ret, tmp_err, err); } int gfal_srm_rmdirG(plugin_handle ch, const char* surl, GError** err){ int ret = -1; char full_endpoint[GFAL_URL_MAX_LEN]; GError* tmp_err=NULL; gfal_srmv2_opt* opts = (gfal_srmv2_opt*)ch; enum gfal_srm_proto srm_type; gfal_log(GFAL_VERBOSE_VERBOSE, " -> [gfal_srm_rmdirG]"); gfal_srm_cache_stat_remove(ch, surl); ret = gfal_srm_determine_endpoint(opts, surl, full_endpoint, GFAL_URL_MAX_LEN, &srm_type, &tmp_err); if( ret >=0 ){ if(srm_type == PROTO_SRMv2){ struct stat st; gfal_log(GFAL_VERBOSE_VERBOSE, " [gfal_srm_rmdirG] try to delete directory %s", surl); if( (ret = gfal_statG_srmv2_internal(opts, &st, full_endpoint, (char*) surl, &tmp_err)) ==0){ // stat file in order to verify if directory or not if( S_ISDIR(st.st_mode) ){ ret = gfal_srmv2_rmdir_internal(opts, full_endpoint, surl, &tmp_err); }else{ ret = -1; g_set_error(&tmp_err,0, ENOTDIR, " This file is not a directory, impossible to use rmdir on it"); } } }else if (srm_type == PROTO_SRM){ g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "support for SRMv1 is removed in 2.0, failure"); ret = -1; }else { g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "Unknow version of the protocol SRM , failure"); ret = -1; } } gfal_log(GFAL_VERBOSE_VERBOSE, " [gfal_srm_rmdirG] <-"); G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/common/srm/gfal_common_srm_rename.c0000644000175000017500000000717512164561703021603 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_rename.c * @brief file for the rename function on the srm url type * @author Devresse Adrien * @version 2.0 * @date 24/0/2013 * */ #include "gfal_common_srm.h" #include "gfal_common_srm_endpoint.h" #include "gfal_common_srm_internal_ls.h" #include "gfal_common_srm_rename.h" #include #include #include #include int gfal_srm_rename_internal_srmv2(gfal_srmv2_opt* opts, char* endpoint, const char* src, const char* dst, GError** err) { GError* tmp_err = NULL; char errbuf[GFAL_ERRMSG_LEN]={0}; int ret = -1; srm_context_t context; context = gfal_srm_ifce_context_setup(opts->handle, endpoint, errbuf, GFAL_ERRMSG_LEN, &tmp_err); if (context != NULL) { struct srm_mv_input input; input.from = (char*)src; input.to = (char*)dst; ret = gfal_srm_external_call.srm_mv(context, &input); if (ret != 0) { gfal_srm_report_error(errbuf, &tmp_err); ret = -1; } gfal_srm_ifce_context_release(context); } G_RETURN_ERR(ret, tmp_err, err); } int gfal_srm_rename_internal(gfal_srmv2_opt* opts, const char* src, const char *dst, GError** err) { GError* tmp_err = NULL; int ret = -1; char full_endpoint[GFAL_URL_MAX_LEN]; enum gfal_srm_proto srm_types; if ((gfal_srm_determine_endpoint(opts, src, full_endpoint, GFAL_URL_MAX_LEN, &srm_types, &tmp_err)) == 0) { gfal_log(GFAL_VERBOSE_NORMAL, "gfal_srm_rm_internal -> endpoint %s", full_endpoint); if (srm_types == PROTO_SRMv2) { ret = gfal_srm_rename_internal_srmv2(opts, full_endpoint, src, dst, &tmp_err); } else if (srm_types == PROTO_SRM) { g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "support for SRMv1 is removed in gfal 2.0, failure"); } else { g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "Unknown SRM protocol, failure "); } } if (tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } int gfal_srm_renameG(plugin_handle plugin_data, const char* oldurl, const char* urlnew, GError** err) { g_return_val_err_if_fail(plugin_data && oldurl && urlnew, -1, err, "[gfal_srm_renameG] Incorrect args"); GError* tmp_err = NULL; gfal_srmv2_opt* opts = (gfal_srmv2_opt*)plugin_data; // If we rename, it doesn't make sense to keep cached the entry gfal_srm_cache_stat_remove(plugin_data, oldurl); int ret = gfal_srm_rename_internal(opts, oldurl, urlnew, &tmp_err); if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } gfal2-2.3.0/src/common/srm/gfal_common_srm_opendir.c0000644000175000017500000000706412164561703021771 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_opendir.c * @brief file for the opendir function on the srm url type * @author Devresse Adrien * @version 2.0 * @date 09/06/2011 * */ #include #include #include #include "gfal_common_srm.h" #include "gfal_common_srm_opendir.h" #include #include #include "gfal_common_srm_stat.h" #include "gfal_common_srm_endpoint.h" #include "gfal_common_srm_internal_layer.h" gfal_file_handle gfal_srm_opendir_internal(gfal_srmv2_opt* opts, char* endpoint, const char* surl, GError** err){ g_return_val_err_if_fail(opts && endpoint && surl, NULL, err, "[gfal_srmv2_opendir_internal] invalid args"); GError* tmp_err=NULL; gfal_file_handle resu = NULL; struct stat st; int exist = gfal_statG_srmv2_internal(opts, &st, endpoint, surl, &tmp_err); if(exist == 0){ if( S_ISDIR(st.st_mode) ){ gfal_srm_opendir_handle h = g_new0(struct _gfal_srm_opendir_handle,1); const size_t s = strnlen(surl, GFAL_URL_MAX_LEN); char* p = (char*) mempcpy(h->surl, surl, MIN(s,GFAL_URL_MAX_LEN)); while( *(p-1) == '/') //remove last '/' char *(p-1) = '\0'; g_strlcpy(h->endpoint, endpoint, GFAL_URL_MAX_LEN); h->dir_offset = 0; resu = gfal_file_handle_new2(gfal_srm_getName(), (gpointer) h, NULL, surl); }else{ g_set_error(&tmp_err, 0, ENOTDIR, "srm-plugin: %s is not a directory, impossible to list content", surl); } } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return resu; } gfal_file_handle gfal_srm_opendirG(plugin_handle ch, const char* surl, GError ** err){ g_return_val_err_if_fail(ch && surl, NULL, err, "[gfal_srm_opendirG] Invalid args"); gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; gfal_file_handle resu = NULL; char endpoint[GFAL_URL_MAX_LEN]; GError* tmp_err=NULL; int ret = -1; enum gfal_srm_proto srm_type; ret = gfal_srm_determine_endpoint(opts, surl, endpoint, GFAL_URL_MAX_LEN, &srm_type, &tmp_err); if( ret >=0 ){ if(srm_type == PROTO_SRMv2){ resu = gfal_srm_opendir_internal(opts, endpoint, surl, &tmp_err); }else if (srm_type == PROTO_SRM){ g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "support for SRMv1 is removed in 2.0, failure"); resu = NULL; }else { g_set_error(&tmp_err, 0, EPROTONOSUPPORT, "Unknow version of the protocol SRM , failure"); resu = NULL; } } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return resu; } int gfal_srm_closedirG(plugin_handle handle, gfal_file_handle fh, GError** err){ g_return_val_err_if_fail(handle && fh, -1, err, "[gfal_srm_opendirG] Invalid args"); gfal_srm_opendir_handle oh = (gfal_srm_opendir_handle) fh->fdesc; //gfal_srm_external_call.srm_srmv2_mdfilestatus_delete(oh->srm_ls_resu, 1); --> disable because of error in memory management in srm-ifce g_free(oh); gfal_file_handle_delete(fh); return 0; } gfal2-2.3.0/src/common/srm/gfal_common_srm_internal_layer.h0000644000175000017500000001175212164561703023345 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_internal_layer.h * @brief header file for the srm external function mapping for mocking purpose * @author Devresse Adrien * @version 2.0 * @date 09/06/2011 * */ #include #include #include #include #include #include #include #include "gfal_common_srm_endpoint.h" #include "gfal_common_srm.h" extern const char * srm_config_group; extern const char * srm_config_transfer_checksum; extern const char * srm_config_turl_protocols; extern const char * srm_config_3rd_party_turl_protocols; // request type for surl <-> turl translation typedef enum _srm_req_type{ SRM_GET, SRM_PUT } srm_req_type; /* * structure for mock abylity in the srm part * */ struct _gfal_srm_external_call{ int (*srm_ls)(struct srm_context *context, struct srm_ls_input *input,struct srm_ls_output *output); int (*srm_rm)(struct srm_context *context, struct srm_rm_input *input,struct srm_rm_output *output); int (*srm_rmdir)(struct srm_context *context, struct srm_rmdir_input *input,struct srm_rmdir_output *output); int (*srm_mkdir)(struct srm_context *context, struct srm_mkdir_input *input); int (*srm_getpermission) (struct srm_context *context, struct srm_getpermission_input *input,struct srm_getpermission_output *output); int (*srm_check_permission)(struct srm_context *context, struct srm_checkpermission_input *input,struct srmv2_filestatus **statuses); int (*srm_prepare_to_get)(struct srm_context *context, struct srm_preparetoget_input *input,struct srm_preparetoget_output *output); void (*srm_srmv2_pinfilestatus_delete)(struct srmv2_pinfilestatus* srmv2_pinstatuses, int n); void (*srm_srmv2_mdfilestatus_delete)(struct srmv2_mdfilestatus* mdfilestatus, int n); void (*srm_srmv2_filestatus_delete)(struct srmv2_filestatus* srmv2_statuses, int n); void (*srm_srm2__TReturnStatus_delete)(struct srm2__TReturnStatus* status); int (*srm_prepare_to_put)(struct srm_context *context, struct srm_preparetoput_input *input,struct srm_preparetoput_output *output); int (*srm_put_done)(struct srm_context *context, struct srm_putdone_input *input, struct srmv2_filestatus **statuses); int (*srm_setpermission) (struct srm_context *context, struct srm_setpermission_input *input); void (*srm_set_timeout_connect) (int); int (*srm_bring_online)(struct srm_context *context, struct srm_bringonline_input *input, struct srm_bringonline_output *output); int (*srm_bring_online_async)(struct srm_context *context, struct srm_bringonline_input *input, struct srm_bringonline_output *output); int (*srm_bring_online_status)(struct srm_context *context, struct srm_bringonline_input *input,struct srm_bringonline_output *output); int (*srm_release_files)(struct srm_context *context, struct srm_releasefiles_input *input, struct srmv2_filestatus **statuses); int (*srm_mv)(struct srm_context *context, struct srm_mv_input *input); }; extern struct _gfal_srm_external_call gfal_srm_external_call; int gfal_check_fullendpoint_in_surl(const char * surl, GError ** err); gboolean gfal_srm_surl_group_checker(gfal_srmv2_opt* opts,char** surls, GError** err); int gfal_srm_getTURLS_plugin(plugin_handle ch, const char* surl, char* buff_turl, int size_turl, char** reqtoken, GError** err); int gfal_srm_putTURLS_plugin(plugin_handle ch, const char* surl, char* buff_turl, int size_turl, char** reqtoken, GError** err); int gfal_srm_getTURLS(gfal_srmv2_opt* opts, char** surls, gfal_srm_result** resu, GError** err); int gfal_srm_putTURLS(gfal_srmv2_opt* opts , char** surls, gfal_srm_result** resu, GError** err); int gfal_srm_putdone(gfal_srmv2_opt* opts, char** surls, char* token, GError** err); int gfal_srm_unlinkG(plugin_handle ch, const char * path, GError** err); void gfal_srm_report_error(char* errbuff, GError** err); srm_context_t gfal_srm_ifce_context_setup(gfal_context_t handle, const char* endpoint, char* errbuff, size_t s_errbuff, GError** err); void gfal_srm_ifce_context_release(srm_context_t context); gfal2-2.3.0/src/common/srm/gfal_common_srm_mkdir.h0000644000175000017500000000216212164561703021436 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_mkdir.h * @brief header file for the mkdir function on the srm url type * @author Devresse Adrien * @version 2.0 * @date 19/05/2011 * */ #include #include #include int gfal_srm_mkdir_recG(plugin_handle ch, const char* surl, mode_t mode, GError** err); int gfal_srm_mkdirG(plugin_handle handle, const char* surl, mode_t mode, gboolean pflag, GError** err); gfal2-2.3.0/src/common/srm/gfal_common_srm_internal_layer.c0000644000175000017500000000773312164561703023344 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_internal_layer.c * @brief file for the srm external function mapping for mocking purpose * @author Devresse Adrien * @version 2.0 * @date 09/06/2011 * */ const char * srm_config_group= "SRM PLUGIN"; const char * srm_config_transfer_checksum= "COPY_CHECKSUM_TYPE"; const char * srm_ops_timeout_key= "OPERATION_TIMEOUT"; const char * srm_conn_timeout_key= "CONN_TIMEOUT"; const char * srm_config_turl_protocols= "TURL_PROTOCOLS"; const char * srm_config_3rd_party_turl_protocols= "TURL_3RD_PARTY_PROTOCOLS"; const char * srm_config_keep_alive = "KEEP_ALIVE"; #include "gfal_common_srm_internal_layer.h" // hotfix for the old srm lib void disable_srm_srmv2_pinfilestatus_delete(struct srmv2_pinfilestatus* srmv2_pinstatuses, int n){} void disable_srm_srmv2_mdfilestatus_delete(struct srmv2_mdfilestatus* mdfilestatus, int n){} void disable_srm_srmv2_filestatus_delete(struct srmv2_filestatus* srmv2_statuses, int n){} void disable_srm_srm2__TReturnStatus_delete(struct srm2__TReturnStatus* status){} struct _gfal_srm_external_call gfal_srm_external_call = { .srm_ls = &srm_ls, .srm_rmdir = &srm_rmdir, .srm_mkdir = &srm_mkdir, .srm_getpermission = &srm_getpermission, .srm_check_permission = &srm_check_permission, .srm_srmv2_pinfilestatus_delete = &srm_srmv2_pinfilestatus_delete, .srm_srmv2_mdfilestatus_delete = &srm_srmv2_mdfilestatus_delete, .srm_srmv2_filestatus_delete = &srm_srmv2_filestatus_delete, .srm_srm2__TReturnStatus_delete = &srm_srm2__TReturnStatus_delete, .srm_prepare_to_get= &srm_prepare_to_get, .srm_prepare_to_put= &srm_prepare_to_put, .srm_put_done = &srm_put_done, .srm_setpermission= &srm_setpermission, .srm_rm = &srm_rm, .srm_set_timeout_connect = &srm_set_timeout_connect, .srm_bring_online = &srm_bring_online, .srm_bring_online_async = &srm_bring_online_async, .srm_bring_online_status = &srm_status_of_bring_online_async, .srm_release_files = &srm_release_files, .srm_mv = &srm_mv }; srm_context_t gfal_srm_ifce_context_setup(gfal_context_t handle, const char* endpoint, char* errbuff, size_t s_errbuff, GError** err){ gint timeout; srm_context_t context=NULL; GError* tmp_err=NULL; const gboolean keep_alive = gfal2_get_opt_boolean_with_default(handle, srm_config_group, srm_config_keep_alive, FALSE); gfal_log(GFAL_VERBOSE_DEBUG, " SRM connexion keep-alive %d", keep_alive); context = srm_context_new2(endpoint, errbuff, s_errbuff, gfal_get_verbose(),keep_alive); if(context != NULL){ timeout = gfal2_get_opt_integer_with_default(handle, srm_config_group, srm_ops_timeout_key, 180); gfal_log(GFAL_VERBOSE_DEBUG, " SRM operation timeout %d", timeout); context->timeout = timeout; context->timeout_ops = timeout; timeout = gfal2_get_opt_integer_with_default(handle, srm_config_group, srm_conn_timeout_key, 60); gfal_log(GFAL_VERBOSE_DEBUG, " SRM connexion timeout %d", timeout); context->timeout_conn = timeout; }else{ g_set_error(&tmp_err, 0, EINVAL, "Impossible to create srm context"); } G_RETURN_ERR(context, tmp_err, err); } void gfal_srm_ifce_context_release(srm_context_t context){ srm_context_free(context); } gfal2-2.3.0/src/common/srm/gfal_common_srm_bringonline.h0000644000175000017500000000266212164561703022643 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2013. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_access.h * @brief header file for bringing a file online * @author Alejandro Ãlvarez Ayllón * @version 2.0 * @date 14/01/2013 * */ #include #include "gfal_common_srm.h" #include int gfal_srmv2_bring_onlineG(plugin_handle ch, const char* surl, time_t pintime, time_t timeout, char* token, size_t tsize, int async, GError** err); int gfal_srmv2_bring_online_pollG(plugin_handle ch, const char* surl, const char* token, GError** err); int gfal_srmv2_release_fileG(plugin_handle ch, const char* surl, const char* token, GError** err); gfal2-2.3.0/src/common/srm/gfal_common_srm_access.h0000644000175000017500000000217012164561703021570 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_access.h * @brief header file for the access methode on the srm url type * @author Devresse Adrien * @version 2.0 * @date 05/05/2011 * */ #include #include "gfal_common_srm.h" #include int gfal_srm_accessG(plugin_handle handle, const char* surl, int mode, GError** err); int gfal_access_srmv2_internal(gfal_srmv2_opt* opts, char* endpoint, const char* surl, int mode, GError** err); gfal2-2.3.0/src/common/srm/gfal_common_srm_chmod.h0000644000175000017500000000217212164561703021423 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_chmod.c * @brief file for the change permission management * @author Devresse Adrien * @date 06/07/2011 * */ #include #include #include "gfal_common_srm.h" #include #include #include #include "gfal_common_srm_internal_layer.h" int gfal_srm_chmodG(plugin_handle, const char *, mode_t, GError** err); gfal2-2.3.0/src/common/srm/gfal_common_srm_getxattr.c0000644000175000017500000000544012164561703022167 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_getxattr.c * @brief file for the getxattr function on the srm url type * @author Devresse Adrien * @date 02/08/2011 * */ #include #include "gfal_common_srm.h" #include #include #include "gfal_common_srm_internal_layer.h" #include "gfal_common_srm_getxattr.h" static const char* srm_geturl_key = SRM_XATTR_GETURL; static const char* srm_status_key = GFAL_XATTR_STATUS; static char* srm_listxattr[]= { SRM_XATTR_GETURL, GFAL_XATTR_STATUS, NULL }; ssize_t gfal_srm_geturl_getxattrG(plugin_handle handle, const char* path, const char* name , void* buff, size_t s_buff, GError** err){ GError* tmp_err=NULL; ssize_t ret = -1; if(s_buff ==0 || buff == NULL) return GFAL_URL_MAX_LEN; ret = gfal_srm_getTURLS_plugin(handle, path, buff, s_buff, NULL, &tmp_err); if(ret >= 0){ ret = strlen(buff)* sizeof(char); } G_RETURN_ERR(ret, tmp_err, err); } /* * implementation of the getxattr for turl resolution, pin management and spacetoken set/get * * */ ssize_t gfal_srm_getxattrG(plugin_handle handle, const char* path, const char* name , void* buff, size_t s_buff, GError** err){ GError* tmp_err=NULL; ssize_t ret = -1; gfal_log(GFAL_VERBOSE_TRACE, " gfal_srm_getxattrG ->"); if(strcmp(name, srm_geturl_key) == 0){ ret = gfal_srm_geturl_getxattrG(handle, path, name, buff, s_buff, &tmp_err); }else if(strcmp(name, srm_status_key) ==0 ){ ret = gfal_srm_status_getxattrG(handle, path, name, buff, s_buff, &tmp_err); }else{ // need to add pin and spacetoken g_set_error(&tmp_err, 0, ENOATTR, "not an existing extended attribute"); } gfal_log(GFAL_VERBOSE_TRACE, " gfal_srm_getxattrG <- "); G_RETURN_ERR(ret, tmp_err, err); } /* * lfc getxattr implem * */ ssize_t gfal_srm_listxattrG(plugin_handle handle, const char* path, char* list, size_t size, GError** err){ ssize_t res = 0; char** p= srm_listxattr; char* plist= list; while(*p != NULL){ const int size_str = strlen(*p)+1; if( size > res && size - res >= size_str) plist = mempcpy(plist, *p, size_str* sizeof(char) ); res += size_str; p++; } return res; } gfal2-2.3.0/src/common/srm/gfal_common_srm_stat.h0000644000175000017500000000231012164561703021276 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_stat.h * @brief header file for the stat function on the srm url type * @author Devresse Adrien * @version 2.0 * @date 16/05/2011 * */ #include #include #include #include #include "gfal_common_srm.h" #include int gfal_statG_srmv2_internal(gfal_srmv2_opt* opts, struct stat* buf, const char* endpoint, const char* surl, GError** err); int gfal_srm_statG(plugin_handle handle, const char* surl, struct stat* buf, GError** err); gfal2-2.3.0/src/common/srm/gfal_common_srm_open.h0000644000175000017500000000322312164561703021270 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_comm_srm_open.h * @brief header for open/read/write srm * @author Devresse Adrien * @date 07/06/2011 * */ #include #include #include "gfal_common_srm.h" #include #include #include #include "gfal_common_srm.h" gfal_file_handle gfal_srm_openG(plugin_handle, const char* path, int flag, mode_t mode, GError**); ssize_t gfal_srm_readG(plugin_handle, gfal_file_handle fd, void* buff, size_t count, GError**); ssize_t gfal_srm_preadG(plugin_handle ch, gfal_file_handle fd, void* buff, size_t count, off_t offset, GError** err); ssize_t gfal_srm_writeG(plugin_handle, gfal_file_handle fd, const void* buff, size_t count, GError**); int gfal_srm_closeG(plugin_handle, gfal_file_handle fd, GError **); /* * lseek function for the srm plugin */ off_t gfal_srm_lseekG(plugin_handle ch, gfal_file_handle fd, off_t offset, int whence, GError** err); gfal2-2.3.0/src/common/srm/gfal_common_srm_copy.h0000644000175000017500000000272312164561703021305 0ustar ellertellert#pragma once #ifndef _GFAL2_COMMON_SRM_COPY_ #define _GFAL2_COMMON_SRM_COPY_ /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * initialize a file copy from the given source to the given dest with the parameters params * srm implementation of the plugin filecopy * @param handle : srm plugin handle * @param params :tranfer parameters * @param status : transfer status handle * @param src : source url * @param dst : destination url * @param err : error report system */ int plugin_filecopy(plugin_handle handle, gfal2_context_t context, gfalt_params_t params, const char* src, const char* dst, GError ** err); int srm_plugin_filecopy(plugin_handle handle, gfal2_context_t context, gfalt_params_t params, const char* src, const char* dst, GError ** err); #endif gfal2-2.3.0/src/common/srm/gfal_srm_request.c0000644000175000017500000000352612164561703020450 0ustar ellertellert/* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gfal_srm_request.h" gfal_srm_params_t gfal_srm_params_new(gfal_srm_plugin_t handle, GError ** err ){ gfal_srm_params_t res = g_new0(struct _gfal_srm_params,1); res->protocols = srm_get_turls_sup_protocol(handle->handle); res->desiredpintime= handle->opt_srmv2_desiredpintime; res->proto_version = handle->srm_proto_type; res->spacetokendesc= g_strdup(handle->opt_srmv2_spacetokendesc); res->file_size = 0; return res; } void gfal_srm_params_free(gfal_srm_params_t params){ if(params){ g_free(params->spacetokendesc); g_strfreev(params->protocols); g_free(params); } } char ** gfal_srm_params_get_protocols(gfal_srm_params_t params){ return params->protocols; } gchar* gfal_srm_params_get_spacetoken(gfal_srm_params_t params){ return params->spacetokendesc; } void gfal_srm_params_set_spacetoken(gfal_srm_params_t params, const char* spacetoken){ g_free(params->spacetokendesc); params->spacetokendesc = g_strdup(spacetoken); } void gfal_srm_params_set_protocols(gfal_srm_params_t params, char** protocols){ if(params->protocols) g_strfreev(params->protocols); params->protocols = protocols; } void gfal_srm_params_set_size(gfal_srm_params_t params, size_t file_size){ params->file_size = file_size; } gfal2-2.3.0/src/common/srm/gfal_common_srm_open.c0000644000175000017500000001257212164561703021272 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common.c * @brief file for the open/read/write srm * @author Devresse Adrien * @date 06/07/2011 * */ #include #include #include #include #include #include #include #include #include "gfal_common_srm_internal_layer.h" #include "gfal_common_srm.h" typedef struct _gfal_srm_handle_open{ gfal_file_handle internal_handle; char surl[GFAL_URL_MAX_LEN]; srm_req_type req_type; char* reqtoken; }*gfal_srm_handle_open; static gfal_file_handle gfal_srm_file_handle_create(gfal_file_handle fh, char* surl, char* reqtoken, srm_req_type req_type){ if(fh== NULL) return NULL; gfal_srm_handle_open sh = g_new(struct _gfal_srm_handle_open,1); sh->internal_handle = fh; g_strlcpy(sh->surl, surl, GFAL_URL_MAX_LEN); sh->reqtoken= reqtoken; sh->req_type = req_type; return gfal_file_handle_new(gfal_srm_getName(), sh); } static gfal_file_handle gfal_srm_file_handle_map(gfal_file_handle fh){ return ((gfal_srm_handle_open) fh->fdesc)->internal_handle; } static void gfal_srm_file_handle_delete(gfal_file_handle fh){ g_free(fh->fdesc); gfal_file_handle_delete(fh); } /* * open function for the srm plugin */ gfal_file_handle gfal_srm_openG(plugin_handle ch, const char* path, int flag, mode_t mode, GError** err){ gfal_file_handle ret = NULL; gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; GError* tmp_err=NULL; char* p = (char*)path; char turl[GFAL_URL_MAX_LEN]; char* reqtoken=NULL; srm_req_type req_type; int tmp_ret; gfal_log(GFAL_VERBOSE_TRACE, " %s ->",__func__); if(flag & O_CREAT){ // create turl if file is not existing else get one for this file gfal_log(GFAL_VERBOSE_TRACE, " SRM PUT mode",__func__); tmp_ret= gfal_srm_putTURLS_plugin(ch, p, turl, GFAL_URL_MAX_LEN, &reqtoken, &tmp_err); req_type= SRM_PUT; }else{ gfal_log(GFAL_VERBOSE_TRACE, " SRM GET mode",__func__); tmp_ret= gfal_srm_getTURLS_plugin(ch, p, turl, GFAL_URL_MAX_LEN, &reqtoken, &tmp_err); req_type= SRM_GET; } if(tmp_ret == 0){ gfal_log(GFAL_VERBOSE_TRACE, " SRM RESOLUTION : %s -> %s ", path, turl); ret = gfal_plugin_openG(opts->handle, turl, flag, mode, &tmp_err); ret = gfal_srm_file_handle_create(ret, p, g_strdup(reqtoken), req_type); } g_free(reqtoken); if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } /* * read function for the srm plugin */ ssize_t gfal_srm_readG(plugin_handle ch, gfal_file_handle fd, void* buff, size_t count, GError** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; GError* tmp_err=NULL; int ret = gfal_plugin_readG(opts->handle, gfal_srm_file_handle_map(fd), buff, count, &tmp_err); if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } /* * pread function for the srm plugin */ ssize_t gfal_srm_preadG(plugin_handle ch, gfal_file_handle fd, void* buff, size_t count, off_t offset, GError** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; GError* tmp_err=NULL; int ret = gfal_plugin_preadG(opts->handle, gfal_srm_file_handle_map(fd), buff, count, offset, &tmp_err); if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } /* * write function for the srm plugin */ ssize_t gfal_srm_writeG(plugin_handle ch, gfal_file_handle fd, const void* buff, size_t count, GError** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; GError* tmp_err=NULL; int ret = gfal_plugin_writeG(opts->handle, gfal_srm_file_handle_map(fd), (void* )buff, count, &tmp_err); if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } /* * lseek function for the srm plugin */ off_t gfal_srm_lseekG(plugin_handle ch, gfal_file_handle fd, off_t offset, int whence, GError** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; GError* tmp_err=NULL; int ret = gfal_plugin_lseekG(opts->handle, gfal_srm_file_handle_map(fd), offset, whence, &tmp_err); if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } int gfal_srm_closeG(plugin_handle ch, gfal_file_handle fh, GError ** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; GError* tmp_err=NULL; int ret = gfal_plugin_closeG(opts->handle, gfal_srm_file_handle_map(fh), &tmp_err); if(ret ==0){ gfal_srm_handle_open sh = (gfal_srm_handle_open)fh->fdesc; char* surls[] = { sh->surl, NULL }; if(sh->req_type == SRM_PUT) ret = gfal_srm_putdone(opts, surls, sh->reqtoken, &tmp_err); // end the transaction on the srm server in case of pu g_free(sh->reqtoken); gfal_srm_file_handle_delete(fh); } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); return ret; } gfal2-2.3.0/src/common/srm/gfal_common_srm_chmod.c0000644000175000017500000000761212164561703021422 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_chmod.c * @brief file for the change permission management * @author Devresse Adrien * @date 06/07/2011 * */ #include #include #include "gfal_common_srm.h" #include #include #include #include "gfal_common_srm_internal_layer.h" #include "gfal_common_srm_chmod.h" #include "gfal_common_srm_endpoint.h" #include "gfal_common_srm_internal_ls.h" /* * * convert a mode_t to a TPermissionMode, right dec and mask are used to get the good oct (mode & mask) >> right_dec * WARNING : hard conversion mode, subject to problem if the TPermissionMode declaration begin to change ! */ static TPermissionMode gfal_srmv2_mode_t_to_TPermissionMode(mode_t mode, mode_t mask, mode_t right_dec){ return ( (mode & mask) >> right_dec); } /* * Do a translation of a chmod right to a srm right * */ static void gfal_srmv2_configure_set_permission(gfal_srmv2_opt* opts, const char* surl, mode_t mode, struct srm_setpermission_input* perms_input){ memset(perms_input, 0, sizeof(struct srm_setpermission_input)); perms_input->surl = (char*)surl; perms_input->permission_type =SRM_PERMISSION_CHANGE; perms_input->owner_permission = gfal_srmv2_mode_t_to_TPermissionMode(mode, 00700, 6); perms_input->other_permission= gfal_srmv2_mode_t_to_TPermissionMode(mode, 007, 0); } static int gfal_srmv2_chmod_internal(gfal_srmv2_opt* opts, char* endpoint, const char* path, mode_t mode, GError** err){ g_return_val_err_if_fail(opts && endpoint && path,-1,err,"[gfal_srmv2_chmod_internal] invalid args "); GError* tmp_err=NULL; srm_context_t context; int ret=0; struct srm_setpermission_input perms_input; const int err_size = 2048; char errbuf[err_size] ; *errbuf='\0'; // set the structures datafields gfal_srmv2_configure_set_permission(opts, path, mode, &perms_input); if( (context = gfal_srm_ifce_context_setup(opts->handle, endpoint, errbuf, GFAL_ERRMSG_LEN, &tmp_err)) != NULL){ if( (ret = gfal_srm_external_call.srm_setpermission(context , &perms_input)) < 0){ gfal_srm_report_error(errbuf, &tmp_err); } else{ ret = 0; } gfal_srm_ifce_context_release(context); } G_RETURN_ERR(ret, tmp_err, err); } int gfal_srm_chmodG(plugin_handle ch, const char * path , mode_t mode, GError** err){ gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; GError* tmp_err=NULL; int ret=-1; char full_endpoint[GFAL_URL_MAX_LEN]; enum gfal_srm_proto srm_types; gfal_srm_cache_stat_remove(ch, path); if((gfal_srm_determine_endpoint(opts, path, full_endpoint, GFAL_URL_MAX_LEN, &srm_types, &tmp_err)) == 0){ // check & get endpoint gfal_log(GFAL_VERBOSE_NORMAL, "[gfal_srm_chmodG] endpoint %s", full_endpoint); if (srm_types == PROTO_SRMv2){ ret = gfal_srmv2_chmod_internal(opts, full_endpoint, path, mode, &tmp_err); } else if(srm_types == PROTO_SRM){ g_set_error(&tmp_err,0, EPROTONOSUPPORT, "support for SRMv1 is removed in gfal 2.0, failure"); } else{ g_set_error(&tmp_err,0,EPROTONOSUPPORT, "Unknow SRM protocol, failure "); } } if(tmp_err) g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); else errno =0; return ret; } gfal2-2.3.0/src/common/srm/gfal_common_srm_internal_ls.c0000644000175000017500000001226412164561703022641 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_internal_ls.c * @brief srm ls operation concentrator * @author Devresse Adrien * @version 2.0 * @date 21/12/2011 * */ #include #include #include "gfal_common_srm_internal_ls.h" #include "gfal_common_srm_endpoint.h" /* * clear memory used by the internal srm_ifce items * required by the old design of srm_ifce * * */ void gfal_srm_ls_memory_management(struct srm_ls_input* input, struct srm_ls_output* output){ if(input){ // nothing } if(output){ gfal_srm_external_call.srm_srmv2_mdfilestatus_delete(output->statuses, 1); gfal_srm_external_call.srm_srm2__TReturnStatus_delete(output->retstatus); } } /* * concentrate the srm_ls logical in one point for stat, readdir, status, and access * * */ int gfal_srm_ls_internal(gfal_srmv2_opt* opts, const char* endpoint, struct srm_ls_input* input, struct srm_ls_output* output, GError** err){ GError* tmp_err=NULL; srm_context_t context; char errbuf[GFAL_ERRMSG_LEN]={0}; int ret = -1; if( (context = gfal_srm_ifce_context_setup(opts->handle, endpoint, errbuf, GFAL_ERRMSG_LEN, &tmp_err)) != NULL){ if( (ret = gfal_srm_external_call.srm_ls(context, input, output) ) < 0){ gfal_srm_report_error(errbuf, &tmp_err); ret = -1; } gfal_srm_ifce_context_release(context); } G_RETURN_ERR(ret, tmp_err, err); } int gfal_statG_srmv2__generic_internal( gfal_srmv2_opt* opts, struct stat* buf, const char* endpoint, const char* surl, GError** err){ g_return_val_err_if_fail( opts && endpoint && surl && buf && (sizeof(struct stat) == sizeof(struct stat64)), -1, err, "[gfal_statG_srmv2_generic_internal] Invalid args handle/endpoint or invalid stat struct size"); GError* tmp_err=NULL; struct srm_ls_input input; struct srm_ls_output output; struct srmv2_mdfilestatus *srmv2_mdstatuses=NULL; const int nb_request=1; int ret=-1; char* tab_surl[] = { (char*)surl, NULL}; input.nbfiles = nb_request; input.surls = tab_surl; input.numlevels = 0; input.offset = 0; input.count = 0; ret = gfal_srm_ls_internal(opts, endpoint, &input, &output, &tmp_err); if(ret >=0){ srmv2_mdstatuses = output.statuses; if(srmv2_mdstatuses->status != 0){ g_set_error(&tmp_err, 0, srmv2_mdstatuses->status, "Error reported from srm_ifce : %d %s", srmv2_mdstatuses->status, srmv2_mdstatuses->explanation); ret = -1; } else { memcpy(buf, &(srmv2_mdstatuses->stat), sizeof(struct stat)); errno =0; ret =0; } } gfal_srm_ls_memory_management(&input, &output); G_RETURN_ERR(ret, tmp_err, err); } int gfal_Locality_srmv2_generic_internal( gfal_srmv2_opt* opts, const char* endpoint, const char* surl, TFileLocality* loc, GError** err){ g_return_val_err_if_fail( opts && endpoint && surl && loc, -1, err, "[gfal_statG_srmv2_generic_internal] Invalid args handle/endpoint or invalid stat struct size"); GError* tmp_err=NULL; struct srm_ls_input input; struct srm_ls_output output; struct srmv2_mdfilestatus *srmv2_mdstatuses=NULL; const int nb_request=1; int ret=-1; char* tab_surl[] = { (char*)surl, NULL}; input.nbfiles = nb_request; input.surls = tab_surl; input.numlevels = 0; input.offset = 0; input.count = 0; ret = gfal_srm_ls_internal(opts, endpoint, &input, &output, &tmp_err); if(ret >=0){ srmv2_mdstatuses = output.statuses; if(srmv2_mdstatuses->status != 0){ g_set_error(&tmp_err, 0, srmv2_mdstatuses->status, "Error srm_ifce : %d %s", srmv2_mdstatuses->status, srmv2_mdstatuses->explanation); ret = -1; } else { *loc = srmv2_mdstatuses->locality; ret = 0; errno =0; } } gfal_srm_ls_memory_management(&input, &output); G_RETURN_ERR(ret, tmp_err, err); } int gfal_srm_cache_stat_add(plugin_handle ch, const char* surl, struct stat * value){ char buff_key[GFAL_URL_MAX_LEN]; gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; gfal_srm_construct_key(surl, GFAL_SRM_LSTAT_PREFIX, buff_key, GFAL_URL_MAX_LEN); struct stat* st = g_new(struct stat, 1); memcpy(st, value, sizeof(struct stat)); gsimplecache_add_item_kstr(opts->cache, buff_key, st); return 0; } void gfal_srm_cache_stat_remove(plugin_handle ch, const char* surl){ char buff_key[GFAL_URL_MAX_LEN]; gfal_srmv2_opt* opts = (gfal_srmv2_opt*) ch; gfal_srm_construct_key(surl, GFAL_SRM_LSTAT_PREFIX, buff_key, GFAL_URL_MAX_LEN); gsimplecache_remove_kstr(opts->cache, buff_key); } gfal2-2.3.0/src/common/srm/gfal_common_srm_getxattr_status.c0000644000175000017500000000631212164561703023571 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_getxattr_status.c * @brief file for the getxattr function for status ( ONLINE, ... ) )on the srm url type * @author Devresse Adrien * @date 02/08/2011 * */ #include #include "gfal_common_srm.h" #include #include #include "gfal_common_srm_internal_layer.h" #include "gfal_common_srm_getxattr.h" #include "gfal_common_srm_endpoint.h" #include "gfal_common_srm_internal_ls.h" void gfal_srm_status_copy(TFileLocality loc, char* buff, size_t s_buff){ char * org_string; switch(loc){ case GFAL_LOCALITY_ONLINE_: org_string = GFAL_XATTR_STATUS_ONLINE; break; case GFAL_LOCALITY_LOST: org_string = GFAL_XATTR_STATUS_LOST; break; case GFAL_LOCALITY_NEARLINE_: org_string = GFAL_XATTR_STATUS_NEARLINE; break; case GFAL_LOCALITY_UNAVAILABLE: org_string = GFAL_XATTR_STATUS_UNAVAILABLE; break; case GFAL_LOCALITY_ONLINE_USCOREAND_USCORENEARLINE: org_string = GFAL_XATTR_STATUS_NEARLINE_ONLINE; break; default: org_string = GFAL_XATTR_STATUS_UNKNOW; break; } g_strlcpy(buff, org_string, s_buff); } ssize_t gfal_srm_status_internal(plugin_handle handle, const char* path, void* buff, size_t s_buff, GError** err){ GError* tmp_err=NULL; ssize_t ret = -1; gfal_srmv2_opt* ops = (gfal_srmv2_opt*) handle; TFileLocality loc; char full_endpoint[GFAL_URL_MAX_LEN]={0}; enum gfal_srm_proto srm_types; if((gfal_srm_determine_endpoint(ops, path, full_endpoint, GFAL_URL_MAX_LEN, &srm_types, &tmp_err)) == 0){ // check & get endpoint gfal_log(GFAL_VERBOSE_NORMAL, "[gfal_srm_status_internal] endpoint %s", full_endpoint); if (srm_types == PROTO_SRMv2){ if( (ret = gfal_Locality_srmv2_generic_internal(ops, full_endpoint, path, &loc, &tmp_err)) >= 0){ gfal_srm_status_copy(loc, (char*) buff, s_buff); ret = MIN( strlen(buff), s_buff); } } else if(srm_types == PROTO_SRM){ g_set_error(&tmp_err,0, EPROTONOSUPPORT, "support for SRMv1 is removed in gfal 2.0, failure"); } else{ g_set_error(&tmp_err,0,EPROTONOSUPPORT, "Unknow SRM protocol, failure "); } } G_RETURN_ERR(ret, tmp_err, err); } /* * main implementation of the srm status -> getxattr */ ssize_t gfal_srm_status_getxattrG(plugin_handle handle, const char* path, const char* name , void* buff, size_t s_buff, GError** err){ GError* tmp_err=NULL; ssize_t ret = -1; if(s_buff ==0 || buff == NULL) return GFAL_URL_MAX_LEN; ret = gfal_srm_status_internal(handle, path, buff, s_buff, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/common/srm/gfal_common_srm_rmdir.h0000644000175000017500000000200212164561703021436 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_rmdir.h * @brief header file for the rmdir function on the srm url type * @author Devresse Adrien * @version 2.0 * @date 22/05/2011 * */ #include #include "../gfal_types.h" #include "gfal_common_srm_internal_layer.h" int gfal_srm_rmdirG(plugin_handle handle, const char* surl, GError** err); gfal2-2.3.0/src/common/srm/gfal_common_srm_copy.c0000644000175000017500000003274212164561703021304 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_copy.c * @brief file for the third party transfer implementation * @author Devresse Adrien * */ #include #include #include #include #include #include #include #include "gfal_common_srm_getput.h" #include "gfal_common_srm_stat.h" #include "gfal_common_srm_url_check.h" #include "gfal_common_srm_internal_layer.h" #include "gfal_common_srm_checksum.h" #include "gfal_common_srm_mkdir.h" GQuark srm_quark_3rd_party(){ return g_quark_from_static_string("srm_plugin::filecopy"); } GQuark srm_domain() { return g_quark_from_static_string("SRM"); } int srm_plugin_get_3rdparty(plugin_handle handle, gfalt_params_t params, const char * surl, char* buff, size_t s_buff, GError ** err){ GError * tmp_err=NULL; int res = -1; if( srm_check_url(surl) ){ gfal_log(GFAL_VERBOSE_TRACE, "\t\tGET surl -> turl dst resolution start"); if( (res =gfal_srm_get_rd3_turl(handle, params, surl, buff , s_buff, NULL, err)) == 0){ gfal_log(GFAL_VERBOSE_TRACE, "\t\tGET surl -> turl dst resolution ended : %s -> %s", surl, buff); } }else{ res =0; g_strlcpy(buff, surl, s_buff); gfal_log(GFAL_VERBOSE_TRACE, "\t\tno SRM resolution needed on %s", surl); } G_RETURN_ERR(res, tmp_err, err); } int srm_plugin_delete_existing_copy(plugin_handle handle, gfalt_params_t params, const char * surl, GError ** err){ GError * tmp_err=NULL; int res = 0; const gboolean replace = gfalt_get_replace_existing_file(params, NULL); if(replace){ struct stat st_dest_file; if( (res = gfal_srm_statG(handle, surl, &st_dest_file, &tmp_err)) == 0 ){ gfal_log(GFAL_VERBOSE_TRACE, " %s found, delete in order to replace it", surl); if( ( res = gfal_srm_unlinkG(handle, surl, &tmp_err)) ==0){ gfal_log(GFAL_VERBOSE_TRACE, " %s deleted with sucess", surl); } } if(tmp_err && tmp_err->code == ENOENT){ gfal_log(GFAL_VERBOSE_TRACE, " %s dest does not exist, no over-write needed, begin copy", surl); g_clear_error(&tmp_err); res = 0; } } G_RETURN_ERR(res, tmp_err, err); } // create the parent directory // return 0 if nothing or not requested // return 1 if creation has been done // return < 0 in case of error int srm_plugin_create_parent_copy(plugin_handle handle, gfalt_params_t params, const char * surl, GError ** err){ GError * tmp_err=NULL; int res = -1; const gboolean create_parent = gfalt_get_create_parent_dir(params, NULL); if(create_parent){ char * path_dir = g_strdup(surl); char *p = path_dir + strlen(path_dir)-1; while(*p == '/'){ // remote trailing / *p='\0'; p--; } const unsigned int pref_len = GFAL_PREFIX_SRM_LEN; while(*p != '/' && (path_dir + pref_len) < p) p--; if( (path_dir + pref_len) < p){ *p='\0'; gfal_log(GFAL_VERBOSE_TRACE, " try to create parent dir : %s for %s", path_dir, surl); res = gfal_srm_mkdir_recG(handle, path_dir, 0755, &tmp_err); if(res == 0) gfal_log(GFAL_VERBOSE_TRACE, "parent path %s created with success", path_dir); }else{ g_set_error(&tmp_err, srm_quark_3rd_party(), EINVAL, "Invalid srm url %s",surl); res= -1; } g_free(path_dir); }else{ res = 0; } G_RETURN_ERR(res, tmp_err, err); } // prepare srm destination for 3rd party copy int srm_plugin_prepare_dest_put(plugin_handle handle, gfal2_context_t context, gfalt_params_t params, const char * surl, GError ** err){ GError * tmp_err=NULL; int res = -1; if( (res = srm_plugin_delete_existing_copy(handle, params, surl, &tmp_err)) == 0 && (res = srm_plugin_create_parent_copy(handle, params, surl, &tmp_err) ) == 0){ } G_RETURN_ERR(res, tmp_err, err); } int srm_plugin_put_3rdparty(plugin_handle handle, gfal2_context_t context, gfalt_params_t params, const char * surl, size_t file_size_surl, char* buff, size_t s_buff, char** reqtoken, GError ** err){ GError * tmp_err=NULL; int res = -1; if( srm_check_url(surl)){ gfal_log(GFAL_VERBOSE_TRACE, "\t\tPUT surl -> turl src resolution start "); if( (res = srm_plugin_prepare_dest_put(handle, context, params, surl, &tmp_err)) ==0){ if(( res= gfal_srm_put_rd3_turl(handle, params, surl, file_size_surl, buff , s_buff, reqtoken, &tmp_err))==0) gfal_log(GFAL_VERBOSE_TRACE, "\t\tPUT surl -> turl src resolution ended : %s -> %s", surl, buff); } }else{ res =1; g_strlcpy(buff, surl, s_buff); gfal_log(GFAL_VERBOSE_TRACE, " no SRM resolution needed on %s", surl); } G_RETURN_ERR(res, tmp_err, err); } int srm_plugin_check_checksum(plugin_handle handle, gfal2_context_t context, gfalt_params_t params, const char* src, char* buff_chk, GError ** err){ char buff_user_defined[GFAL_URL_MAX_LEN]={0}; char buff_user_defined_type[GFAL_URL_MAX_LEN]={0}; char * chk_type=NULL; GError * tmp_err=NULL; int res=0; if(gfalt_get_checksum_check(params, &tmp_err)){ gfal_log(GFAL_VERBOSE_TRACE,"\t\tCompute SRM checksum for %s",src); gfalt_get_user_defined_checksum(params, buff_user_defined_type, GFAL_URL_MAX_LEN, buff_user_defined, GFAL_URL_MAX_LEN, NULL); // fetch the user defined chk const gboolean user_defined = (*buff_user_defined!='\0' && *buff_user_defined_type!='\0'); if(!user_defined){ chk_type= gfal2_get_opt_string(context, srm_config_group,srm_config_transfer_checksum,&tmp_err); gfal_log(GFAL_VERBOSE_TRACE, "\t\tNo checksum type defined by user, take it from configuration : %s", chk_type); }else{ chk_type=g_strdup(buff_user_defined_type); } if( chk_type && (res = gfal_srm_checksumG(handle, src, chk_type, buff_chk, GFAL_URL_MAX_LEN, 0, 0, &tmp_err))==0){ if(user_defined && strncasecmp(buff_user_defined,buff_chk,GFAL_URL_MAX_LEN ) != 0){ g_set_error(&tmp_err, srm_quark_3rd_party(),EIO, "Checksum of %s and user defined checksum does not match %s %s", src, buff_chk, buff_user_defined); } } g_free(chk_type); } G_RETURN_ERR(res, tmp_err, err); } int srm_compare_checksum_transfer(gfalt_params_t params, const char* src, const char* dst, char* src_buff_checksum, char* dst_buff_checksum, GError** err){ int res = 0; if(gfalt_get_checksum_check(params, err)){ if( strncasecmp(src_buff_checksum, dst_buff_checksum,GFAL_URL_MAX_LEN) !=0){ g_set_error(err, srm_quark_3rd_party(),EIO, "Checksum of %s and %s does not match %s %s", src, dst, src_buff_checksum, dst_buff_checksum); res =-1; }else{ res =0; } } return res; } int plugin_filecopy(plugin_handle handle, gfal2_context_t context, gfalt_params_t params, const char* src, const char* dst, GError ** err){ g_return_val_err_if_fail( handle != NULL && src != NULL && dst != NULL , -1, err, "[plugin_filecopy][gridftp] einval params"); gfal_log(GFAL_VERBOSE_TRACE, " -> [srm_plugin_filecopy] "); GError * tmp_err=NULL; int res = -1; gboolean put_waiting= FALSE; char buff_turl_src[GFAL_URL_MAX_LEN]={0}; char buff_src_checksum[GFAL_URL_MAX_LEN]={0}; char buff_turl_dst[GFAL_URL_MAX_LEN]={0}; char buff_dst_checksum[GFAL_URL_MAX_LEN]={0}; char* reqtoken = NULL; gfalt_params_t params_turl = gfalt_params_handle_copy(params, &tmp_err); // create underlying protocol parameters gfalt_set_checksum_check(params_turl, FALSE,NULL); // disable already does actions GError * tmp_err_get, *tmp_err_put,*tmp_err_chk_src, *tmp_err_cancel; tmp_err_chk_src= tmp_err_get = tmp_err_put = tmp_err_cancel= NULL; plugin_trigger_event(params, srm_domain(), GFAL_EVENT_NONE, GFAL_EVENT_PREPARE_ENTER, ""); // PARALLELIZABLE SECTIONS { plugin_trigger_event(params, srm_domain(), GFAL_EVENT_SOURCE, GFAL_EVENT_CHECKSUM_ENTER, ""); srm_plugin_check_checksum(handle, context, params, src, buff_src_checksum, &tmp_err_chk_src); plugin_trigger_event(params, srm_domain(), GFAL_EVENT_SOURCE, GFAL_EVENT_CHECKSUM_EXIT, ""); } { srm_plugin_get_3rdparty(handle, params, src, buff_turl_src, GFAL_URL_MAX_LEN, &tmp_err_get); } { int ret_put =-1; struct stat st_src; memset(&st_src, 0, sizeof( struct stat)); if( gfal2_stat(context, src, &st_src, &tmp_err_put) !=0){ st_src.st_size =0; gfal_log(GFAL_VERBOSE_DEBUG, "Fail to stat src SRM url %s to determine file size, try with file_size=0, error %s", src, tmp_err_put->message); g_clear_error(&tmp_err_put); } ret_put = srm_plugin_put_3rdparty(handle, context, params, dst, st_src.st_size, buff_turl_dst, GFAL_URL_MAX_LEN, &reqtoken, &tmp_err_put); if(!tmp_err_put && reqtoken != NULL) put_waiting = TRUE; if(ret_put == 0){ // srm resolution done to turl, do not check dest -> already done gfalt_set_replace_existing_file(params_turl,FALSE, NULL); gfalt_set_strict_copy_mode(params_turl, TRUE, NULL); } } gfal_srm_check_cancel(context, &tmp_err_cancel); plugin_trigger_event(params, srm_domain(), GFAL_EVENT_NONE, GFAL_EVENT_PREPARE_EXIT, ""); if( !gfal_error_keep_first_err(&tmp_err, &tmp_err_get, &tmp_err_chk_src, &tmp_err_put, &tmp_err_cancel, NULL) ){ // do the first resolution if(!tmp_err){ res = gfalt_copy_file(context, params_turl, buff_turl_src, buff_turl_dst, &tmp_err); if( res == 0 && put_waiting){ gfal_log(GFAL_VERBOSE_TRACE, "\ttransfer executed, execute srm put done"); // commit transaction plugin_trigger_event(params, srm_domain(), GFAL_EVENT_DESTINATION, GFAL_EVENT_CLOSE_ENTER, "%s", dst); res= gfal_srm_putdone_simple(handle, dst, reqtoken, &tmp_err); if(res ==0){ put_waiting = FALSE; plugin_trigger_event(params, srm_domain(), GFAL_EVENT_DESTINATION, GFAL_EVENT_CHECKSUM_ENTER, ""); if( (res = srm_plugin_check_checksum(handle, context, params, dst, buff_dst_checksum, &tmp_err)) ==0 ){ // try to get resu checksum res= srm_compare_checksum_transfer(params, src, dst, buff_src_checksum, buff_dst_checksum, &tmp_err); } plugin_trigger_event(params, srm_domain(), GFAL_EVENT_DESTINATION, GFAL_EVENT_CHECKSUM_EXIT, ""); } plugin_trigger_event(params, srm_domain(), GFAL_EVENT_DESTINATION, GFAL_EVENT_CLOSE_EXIT, "%s", dst); } } } if(put_waiting){ // abort request gfal_log(GFAL_VERBOSE_TRACE, "\tCancel PUT request for %s", dst); GError * tmp_err_cancel=NULL; srm_abort_request_plugin(handle, dst, reqtoken, &tmp_err_cancel); // log silent error if(tmp_err_cancel) gfal_log(GFAL_VERBOSE_DEBUG, " Error while canceling put on %s: %s", dst, tmp_err_cancel->message); // clear the trash file silently gfal_srm_unlinkG(handle, dst,NULL); } gfalt_params_handle_delete(params_turl, NULL); gfal_log(GFAL_VERBOSE_TRACE, " [srm_plugin_filecopy] <-"); G_RETURN_ERR(res, tmp_err, err); } int srm_plugin_filecopy(plugin_handle handle, gfal2_context_t context, gfalt_params_t params, const char* src, const char* dst, GError ** err){ return plugin_filecopy(handle, context, params, src, dst, err); } gfal2-2.3.0/src/common/srm/gfal_common_srm_rename.h0000644000175000017500000000202012164561703021570 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file gfal_common_srm_rename.h * @brief header file for the rename function on the srm url type * @author Devresse Adrien * @version 2.0 * @date 24/04/2013 * */ #include #include #include "../gfal_common_filedescriptor.h" int gfal_srm_renameG(plugin_handle plugin_data, const char * oldurl, const char * urlnew, GError** err); gfal2-2.3.0/src/common/gfal_common_errverbose.h0000644000175000017500000000424212164561703021025 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file gfal_common_errverbose.h * @brief error management and verbose display * @author Devresse Adrien * */ #include #include #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif extern const char* no_err; /** @def macro for error error report on args * */ #define g_return_val_err_if_fail(exp,val,err,msg) if(!(exp)){ g_set_error(err,0,EINVAL,msg); return val; } /** * @def macro for one-line return with error management exception-like * */ #define G_RETURN_ERR(ret, tmp_err, err) \ if(tmp_err)\ g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__);\ return ret void gfal_release_GError(GError** err); gboolean gfal_check_GError(GError** err); char* gfal_str_GError(GError** err); char* gfal_str_GError_r(GError** err, char* buff_err, size_t s_err); #if (GLIB_CHECK_VERSION(2,16,0) != TRUE) // add a advanced functions of glib for the old versions #define ERROR_OVERWRITTEN_WARNING "GError set over the top of a previous GError or uninitialized memory.\n" void g_propagate_prefixed_error (GError **dest, GError *src, const gchar *format, ...) G_GNUC_PRINTF (3, 4); void g_prefix_error(GError **err, const gchar *format, ...); #endif #if (GLIB_CHECK_VERSION(2,28,0) != TRUE) void g_list_free_full(GList *list, GDestroyNotify free_func); #endif #ifdef __cplusplus } #endif gfal2-2.3.0/src/common/file/0000755000175000017500000000000012164561703015052 5ustar ellertellertgfal2-2.3.0/src/common/file/test/0000755000175000017500000000000012164561703016031 5ustar ellertellertgfal2-2.3.0/src/common/file/README_PLUGIN_FILE0000644000175000017500000000012612164561703017606 0ustar ellertellertFile plugin : - provide the map to the local POSIX calls for the gfal 2.0 system gfal2-2.3.0/src/common/file/CMakeLists.txt0000644000175000017500000000133512164561703017614 0ustar ellertellert#File plugin compilation file #define gridftp source FILE(GLOB src_file "*.c*") IF(PLUGIN_FILE) add_library(plugin_file SHARED ${src_file}) target_link_libraries(plugin_file ${gfal2_link} ) set_target_properties(plugin_file PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/src CLEAN_DIRECT_OUTPUT 1 OUTPUT_NAME ${OUTPUT_NAME_FILE} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/plugins ) install(TARGETS plugin_file LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR} ) install(FILES "README_PLUGIN_FILE" DESTINATION ${DOC_INSTALL_DIR}) ENDIF(PLUGIN_FILE) link_directories (${CMAKE_BINARY_DIR}/plugins) link_directories (${CMAKE_BINARY_DIR}/src) gfal2-2.3.0/src/common/file/gfal_file_plugin_main.c0000644000175000017500000003056112164561703021515 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * file gfal_file_plugin_main.c * brief file plugin * author Devresse Adrien */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include const char* file_prefix="file:"; unsigned int s_prefix = 0; static unsigned int file_prefix_len(){ if(!s_prefix) g_atomic_int_set(&s_prefix, strlen(file_prefix)); return s_prefix; } /* * srm plugin id */ const char* gfal_file_plugin_getName(){ return "file_plugin"; } int gfal_lfile_path_checker(plugin_handle handle, const char * url){ const unsigned int s_url = strnlen(url,GFAL_URL_MAX_LEN); if( file_prefix_len() < s_url && s_url < GFAL_URL_MAX_LEN && strncmp(url, file_prefix, s_prefix) ==0) return 0; return -1; } /* * url checker for the file module **/ static gboolean gfal_file_check_url(plugin_handle handle, const char* url, plugin_mode mode, GError** err){ g_return_val_err_if_fail(url != NULL, EINVAL, err, "[gfal_lfile_path_checker] Invalid url "); switch(mode){ case GFAL_PLUGIN_ACCESS: case GFAL_PLUGIN_MKDIR: case GFAL_PLUGIN_STAT: case GFAL_PLUGIN_LSTAT: case GFAL_PLUGIN_RMDIR: case GFAL_PLUGIN_OPENDIR: case GFAL_PLUGIN_OPEN: case GFAL_PLUGIN_CHMOD: case GFAL_PLUGIN_UNLINK: case GFAL_PLUGIN_GETXATTR: case GFAL_PLUGIN_LISTXATTR: case GFAL_PLUGIN_SETXATTR: case GFAL_PLUGIN_RENAME: case GFAL_PLUGIN_SYMLINK: //case GFAL_PLUGIN_CHECKSUM: return (gfal_lfile_path_checker(handle, url)==0); default: return FALSE; } } void gfal_plugin_file_report_error(const char* funcname, GError** err){ g_set_error(err,0,errno, "[%s] errno reported by local system call %s", funcname, strerror(errno)); } int gfal_plugin_file_access(plugin_handle plugin_data, const char *path, int amode, GError** err){ const int res = access(path+file_prefix_len(), amode); if(res <0){ gfal_plugin_file_report_error(__func__, err); }else errno =0; return res; } int gfal_plugin_file_chmod(plugin_handle plugin_data, const char* path, mode_t mode,GError** err){ const int res = chmod(path+file_prefix_len(),mode); if(res <0){ gfal_plugin_file_report_error(__func__, err); }else errno =0; return res; } ssize_t gfal_plugin_file_getxattr(plugin_handle plugin_data, const char* path, const char* name, void* buff, size_t s_buff, GError** err){ const ssize_t res = getxattr(path + file_prefix_len(), name, buff, s_buff); if(res <0){ gfal_plugin_file_report_error(__func__, err); }else errno =0; return res; } ssize_t gfal_plugin_file_listxattr(plugin_handle plugin_data, const char* path, char* list, size_t s_list, GError** err){ const ssize_t res = listxattr(path + file_prefix_len(), list, s_list); if(res <0){ gfal_plugin_file_report_error(__func__, err); }else errno =0; return res; } int gfal_plugin_file_setxattr(plugin_handle plugin_data, const char* path, const char* name, const void* value, size_t size, int flags, GError** err){ const int res = setxattr(path + file_prefix_len(), name, value, size, flags); if(res <0){ gfal_plugin_file_report_error(__func__, err); }else errno =0; return res; } int gfal_plugin_file_rename(plugin_handle plugin_data, const char* oldpath, const char* newpath, GError** err){ const int res = rename(oldpath+file_prefix_len(), newpath + strlen(file_prefix)); if(res <0){ gfal_plugin_file_report_error(__func__, err); }else errno =0; return res; } int gfal_plugin_file_stat(plugin_handle plugin_data, const char* path, struct stat* buf, GError ** err){ const int res = stat(path + file_prefix_len() , buf); if(res <0){ gfal_plugin_file_report_error(__func__, err); }else errno =0; return res; } int gfal_plugin_file_lstat(plugin_handle plugin_data, const char* path, struct stat* buf, GError ** err){ const int res = lstat(path + file_prefix_len(), buf); if(res <0){ gfal_plugin_file_report_error(__func__, err); }else errno =0; return res; } int gfal_plugin_file_mkdir(plugin_handle plugin_data, const char* path, mode_t mode, gboolean pflag, GError** err){ const int res = mkdir(path + file_prefix_len(), mode); if(res <0){ gfal_plugin_file_report_error(__func__, err); } return res; } int gfal_plugin_file_unlink(plugin_handle plugin_data, const char* path, GError** err){ const int res = unlink(path + file_prefix_len()); if(res <0){ gfal_plugin_file_report_error(__func__, err); } return res; } gfal_file_handle gfal_plugin_file_opendir(plugin_handle plugin_data, const char* path, GError** err){ DIR* ret = opendir(path+file_prefix_len()); gfal_file_handle resu = NULL; if(ret == NULL){ gfal_plugin_file_report_error(__func__, err); } if(ret) resu = gfal_file_handle_new2(gfal_file_plugin_getName(), (gpointer) ret, NULL, path); return resu; } struct dirent* gfal_plugin_file_readdir(plugin_handle plugin_data, gfal_file_handle fh, GError** err){ errno=0; struct dirent* res = readdir(gfal_file_handle_get_fdesc(fh)); if(res== NULL && errno){ gfal_plugin_file_report_error(__func__, err); } return res; } gfal_file_handle gfal_plugin_file_open(plugin_handle plugin_data, const char* path, int flag, mode_t mode, GError** err){ errno =0; const int ret = open(path + file_prefix_len(), flag, mode); if(ret < 0){ gfal_plugin_file_report_error(__func__, err); return NULL; }else{ return gfal_file_handle_new(gfal_file_plugin_getName(), GINT_TO_POINTER(ret)); } } /* * map the gfal_read call to the local read call for file:// * */ ssize_t gfal_plugin_file_read(plugin_handle plugin_data, gfal_file_handle fh, void* buff, size_t s_buff, GError** err){ errno=0; const int fd = GPOINTER_TO_INT(gfal_file_handle_get_fdesc(fh)); const int ret = read(fd, buff, s_buff); if(ret <0) gfal_plugin_file_report_error(__func__, err); return ret; } /* * map the gfal_pread call to the local pread call for file:// * */ ssize_t gfal_plugin_file_pread(plugin_handle plugin_data, gfal_file_handle fh, void* buff, size_t s_buff, off_t offset, GError** err){ errno=0; const int fd = GPOINTER_TO_INT(gfal_file_handle_get_fdesc(fh)); const ssize_t ret = pread(fd, buff, s_buff, offset); if(ret <0) gfal_plugin_file_report_error(__func__, err); return ret; } off_t gfal_plugin_file_lseek(plugin_handle plugin_data, gfal_file_handle fh, off_t offset, int whence, GError** err){ errno=0; const int ret = lseek(GPOINTER_TO_INT(gfal_file_handle_get_fdesc(fh)), offset, whence); if(ret <0) gfal_plugin_file_report_error(__func__, err); return ret; } /* * map to the local write call * */ ssize_t gfal_plugin_file_write(plugin_handle plugin_data, gfal_file_handle fh, const void* buff, size_t s_buff, GError** err){ errno=0; const int ret = write(GPOINTER_TO_INT(gfal_file_handle_get_fdesc(fh)), buff, s_buff); if(ret <0) gfal_plugin_file_report_error(__func__, err); return ret; } /* * map to the local pwrite call */ ssize_t gfal_plugin_file_pwrite(plugin_handle plugin_data, gfal_file_handle fh, const void* buff, size_t s_buff, off_t offset, GError** err){ errno=0; const ssize_t ret = pwrite(GPOINTER_TO_INT(gfal_file_handle_get_fdesc(fh)), buff, s_buff, offset); if(ret <0) gfal_plugin_file_report_error(__func__, err); return ret; } int gfal_plugin_file_close(plugin_handle plugin_data, gfal_file_handle fh, GError** err){ errno =0; const int ret = close(GPOINTER_TO_INT(gfal_file_handle_get_fdesc(fh))); if(ret !=0){ gfal_plugin_file_report_error(__func__, err); }else gfal_file_handle_delete(fh); return ret; } ssize_t gfal_plugin_file_readlink(plugin_handle plugin_data, const char* path, char* buff, size_t buffsiz, GError** err){ const ssize_t res = readlink(path + file_prefix_len(), buff, buffsiz); if(res <0){ gfal_plugin_file_report_error(__func__, err); }else errno =0; return res; } /* * local rmdir mapper * */ int gfal_plugin_file_rmdir(plugin_handle plugin_data, const char* path, GError** err){ const int res = rmdir(path+ file_prefix_len()); if(res<0) gfal_plugin_file_report_error(__func__, err); return res; } /* * local closedir mapper * * */ int gfal_plugin_file_closedir(plugin_handle plugin_data, gfal_file_handle fh, GError** err){ const int res = closedir(gfal_file_handle_get_fdesc(fh)); if(res<0) gfal_plugin_file_report_error(__func__, err); else gfal_file_handle_delete(fh); return res; } int gfal_plugin_file_symlink(plugin_handle plugin_data, const char* oldpath, const char* newpath, GError** err){ const int res = symlink(oldpath + file_prefix_len(), newpath + strlen(file_prefix)); if(res !=0) gfal_plugin_file_report_error(__func__, err); return res; } /* * Init function, called before all * */ gfal_plugin_interface gfal_plugin_init(gfal_handle handle, GError** err){ gfal_plugin_interface file_plugin; memset(&file_plugin,0,sizeof(gfal_plugin_interface)); // clear the plugin file_plugin.plugin_data = NULL; file_plugin.check_plugin_url = &gfal_file_check_url; file_plugin.getName= &gfal_file_plugin_getName; file_plugin.plugin_delete = NULL; file_plugin.accessG = &gfal_plugin_file_access; file_plugin.mkdirpG = &gfal_plugin_file_mkdir; file_plugin.statG = &gfal_plugin_file_stat; file_plugin.lstatG = &gfal_plugin_file_lstat; file_plugin.renameG = &gfal_plugin_file_rename; file_plugin.symlinkG = &gfal_plugin_file_symlink; file_plugin.rmdirG = &gfal_plugin_file_rmdir; file_plugin.opendirG = &gfal_plugin_file_opendir; file_plugin.readdirG = &gfal_plugin_file_readdir; file_plugin.closedirG = &gfal_plugin_file_closedir; file_plugin.openG = &gfal_plugin_file_open; file_plugin.closeG = &gfal_plugin_file_close; file_plugin.readG= &gfal_plugin_file_read; file_plugin.preadG = &gfal_plugin_file_pread; file_plugin.writeG= &gfal_plugin_file_write; file_plugin.pwriteG = &gfal_plugin_file_pwrite; file_plugin.chmodG= &gfal_plugin_file_chmod; file_plugin.lseekG= &gfal_plugin_file_lseek; file_plugin.unlinkG = &gfal_plugin_file_unlink; file_plugin.getxattrG = &gfal_plugin_file_getxattr; file_plugin.listxattrG = &gfal_plugin_file_listxattr; /* file_plugin. = &gfal_srm_mkdirG; file_plugin.statG= &gfal_srm_statG; file_plugin.lstatG = &gfal_srm_statG; // no management for symlink in srm protocol/srm-ifce, just map to stat file_plugin.rmdirG = &gfal_srm_rmdirG; file_plugin.opendirG = &gfal_srm_opendirG; file_plugin.readdirG = &gfal_srm_readdirG; file_plugin.closedirG = &gfal_srm_closedirG; file_plugin.openG = &gfal_srm_openG; file_plugin.closeG = &gfal_srm_closeG; file_plugin.readG= &gfal_srm_readG; file_plugin.preadG = &gfal_srm_preadG; file_plugin.writeG= &gfal_srm_writeG; file_plugin.chmodG= &gfal_srm_chmodG; file_plugin.lseekG= &gfal_srm_lseekG; file_plugin.unlinkG = &gfal_srm_unlinkG; file_plugin.getxattrG = &gfal_srm_getxattrG; file_plugin.listxattrG = &gfal_srm_listxattrG; file_plugin.checksum_calcG = &gfal_srm_checksumG; file_plugin.copy_file = &file_plugin_filecopy; file_plugin.check_plugin_url_transfer =&plugin_url_check2;*/ return file_plugin; } gfal2-2.3.0/src/common/gfal_common_interface.h0000644000175000017500000000160612164561703020610 0ustar ellertellert#pragma once /* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file gfal_common_interface.h * @brief The main Interface file for the SRM interface * @author Devresse Adrien * @version 2.0 * @date 12/04/2011 * */ #include "gfal_prototypes.h" #include "gfal_types.h" int resolve_dlsym_listG(void* handle, void*** flist, const char** sym_list, int num, GError** err); gfal2-2.3.0/src/common/gfal_common_filedescriptor.h0000644000175000017500000000401712164561703021665 0ustar ellertellert#pragma once /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_common_filedescriptor.h * header file for the file descriptor management * author Devresse Adrien */ #include #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif struct _gfal_file_descriptor_container{ GHashTable* container; pthread_mutex_t m_container; }; struct _gfal_file_handle_{ char module_name[GFAL_MODULE_NAME_SIZE]; // This MUST be the Name of the plugin associated with this handle ! GMutex* lock; off_t offset; gpointer ext_data; gpointer fdesc; gchar* path; }; // low level funcs gfal_fdesc_container_handle gfal_file_descriptor_handle_create(GDestroyNotify destroyer); int gfal_add_new_file_desc(gfal_fdesc_container_handle fhandle, gpointer pfile, GError** err); gboolean gfal_remove_file_desc(gfal_fdesc_container_handle fhandle, int key, GError** err); gpointer gfal_get_file_desc(gfal_fdesc_container_handle fhandle, int key, GError** err); // high level funcs gfal_file_handle gfal_file_handle_bind(gfal_fdesc_container_handle h, int file_desc, GError** err); // convenience funcs void gfal_file_handle_delete(gfal_file_handle fh); void gfal_file_handle_lock(gfal_file_handle fh); void gfal_file_handle_unlock(gfal_file_handle fh); #ifdef __cplusplus } #endif gfal2-2.3.0/src/common/gfal_common_all.c0000644000175000017500000000555112164561703017416 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * gfal_common_all.c * core file for the utility function of gfal common part * author Devresse Adrien * */ #include #include #include #include #include #include #include #include #include #include #define XVERSION_STR(x) #x #define VERSION_STR(x) XVERSION_STR(x) /* the version should be set by a "define" at the makefile level */ static const char *gfalversion = VERSION_STR(VERSION); // initialization __attribute__((constructor)) void core_init(){ #if (!GLIB_CHECK_VERSION (2, 32, 0)) if (!g_thread_supported()) g_thread_init(NULL); #endif } /* * initiate a gfal's context with default parameters for use */ gfal_handle gfal_initG (GError** err) { GError* tmp_err=NULL; gfal_handle handle = g_new0(struct gfal_handle_,1);// clear allocation of the struct and set defautl options if(handle == NULL){ errno= ENOMEM; g_set_error(err,0,ENOMEM, "[gfal_initG] bad allocation, no more memory free"); return NULL; } handle->plugin_opt.plugin_number= 0; if( (handle->conf = gfal_conf_new(&tmp_err)) && !tmp_err){ gfal_plugins_instance(handle, &tmp_err); // load and instanciate all the plugins // cancel logic init handle->cancel = FALSE; handle->running_ops = 0; handle->mux_cancel = g_mutex_new(); g_hook_list_init(&handle->cancel_hooks, sizeof(GHook)); } if(tmp_err){ g_free(handle); handle = NULL; } G_RETURN_ERR(handle, tmp_err, err); } //free a gfal's handle, safe if null void gfal_handle_freeG (gfal_handle handle){ if(handle == NULL) return; gfal_plugins_delete(handle, NULL); gfal_dir_handle_container_delete(&(handle->fdescs)); gfal_conf_delete(handle->conf); g_list_free(handle->plugin_opt.sorted_plugin); g_mutex_free(handle->mux_cancel); g_hook_list_clear(&handle->cancel_hooks); g_free(handle); handle = NULL; } //return a string of the current gfal version char *gfal_version(){ return (char*) gfalversion; } gfal2-2.3.0/src/version/0000755000175000017500000000000012164561703014330 5ustar ellertellertgfal2-2.3.0/src/version/gfal_version.c0000644000175000017500000000150312164561703017151 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include "../gfal_api.h" int main(int argc, char **argv) { printf("GFAL-client-%s\n", gfal_version()); return (0); } gfal2-2.3.0/src/gfal_plugins_api.h0000644000175000017500000000173412164561703016324 0ustar ellertellert#pragma once #ifndef _GFAL2_PLUGIN_API_ #define _GFAL2_PLUGIN_API_ /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file gfal_plugins_api.h * @brief API reserved for plugin development * @author Devresse Adrien */ #include #include #include #endif //_GFAL2_PLUGIN_API_ gfal2-2.3.0/src/global/0000755000175000017500000000000012164561703014103 5ustar ellertellertgfal2-2.3.0/src/global/test/0000755000175000017500000000000012164561703015062 5ustar ellertellertgfal2-2.3.0/src/global/gfal_global.h0000644000175000017500000000421412164561703016506 0ustar ellertellert#pragma once #ifndef GFAL_GLOBAL_HPP #define GFAL_GLOBAL_HPP /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #ifdef __cplusplus extern "C" { #endif // __cplusplus /** * @file gfal_global.h * @brief gfal2 context management functions * @author Devresse Adrien * * */ /** * a gfal context is a separated instance of the gfal library * Each context owns his parameters, file descriptors * Context allows to have separated instance of GFAL with differents parameters * providing an advanced interface to GFAL */ typedef gfal_handle gfal2_context_t; // backward compatibility typedef gfal2_context_t gfal_context_t; /// /// @brief create a gfal2 context /// gfal2 context are needed for all gfal2 operations /// Thread-safe /// /// @param err : GError error report system /// @return gfal2 context if success, NULL if error /// gfal2_context_t gfal2_context_new(GError ** err); /// /// free a gfal2 context /// It is safe to delete a NULL context /// Thread-safe /// void gfal2_context_free(gfal2_context_t context); /// @deprecated /// same than gfal2_context_new but with old compatibility /// gfal_context_t gfal_context_new(GError ** err); /// @deprecated /// void gfal_context_free(gfal_context_t context); /// /// GQuark for the gfal2 core namespace /// GQuark are used by the GError gfal2 error system in order to determine the scope of one error /// GQuark gfal2_get_core_quark(); #ifdef __cplusplus } #endif // __cplusplus #endif /* GFAL_GLOBAL_HPP */ gfal2-2.3.0/src/global/CMakeLists.txt0000644000175000017500000000036612164561703016650 0ustar ellertellert## default set of build ## defaults sources FILE(GLOB src_global_f "*.c" ) SET(src_global ${src_global_f} PARENT_SCOPE) FILE(GLOB header_global "gfal_global.h") install(FILES ${header_global} DESTINATION ${INCLUDE_INSTALL_DIR}/gfal2/global) gfal2-2.3.0/src/global/gfal_global.hpp0000644000175000017500000000140012164561703017040 0ustar ellertellert#pragma once #ifndef GFAL_GLOBAL_HPP #define GFAL_GLOBAL_HPP /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #endif /* GFAL_GLOBAL_HPP */ gfal2-2.3.0/src/global/gfal_global.c0000644000175000017500000000225312164561703016502 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include GQuark gfal2_get_core_quark(){ return g_quark_from_string("GFAL2-CORE"); } gfal2_context_t gfal2_context_new(GError ** err){ return gfal_initG(err); } void gfal2_context_free(gfal2_context_t context){ gfal_handle_freeG(context); } gfal_context_t gfal_context_new(GError ** err){ return gfal2_context_new(err); } void gfal_context_free(gfal_context_t context){ return gfal2_context_free(context); } gfal2-2.3.0/src/file/0000755000175000017500000000000012164561703013562 5ustar ellertellertgfal2-2.3.0/src/file/CMakeLists.txt0000644000175000017500000000036012164561703016321 0ustar ellertellert## default set of build ## defaults sources FILE(GLOB src_file "*.c" ) SET(src_file ${src_file} PARENT_SCOPE) FILE(GLOB header_file_api "gfal_file_api.h") install(FILES ${header_file_api} DESTINATION ${INCLUDE_INSTALL_DIR}/gfal2/file) gfal2-2.3.0/src/file/gfal_file_api.h0000644000175000017500000002006712164561703016501 0ustar ellertellert#pragma once #ifndef _GFAL2_FILE_API_ #define _GFAL2_FILE_API_ /* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif /*! \defgroup file_group GFAL 2.0 generic file API GFAL 2.0 file API is the main entry point for file/directory operations All functions report a EPROTONOSUPPORT GError if the url protocol does not support this operation. */ /*! \addtogroup file_group @{ */ //// //// Meta-data operations //// /// @briefcompute checksum /// /// compute checksum function for a file url /// @param context : gfal2 context /// @param url : url of the file /// @param check_type : string of the checksum type ( \ref GFAL_CHKSUM_MD5, \ref GFAL_CHKSUM_SHA1, .. ) /// @param start_offset : offset in the file where the checksum calculation will start ( 0 : from begining ) /// @param data_length : size of data to compute for the checksum after start_offset ( 0 -: full file ) /// @param checksum_buffer : buffer with checksum string as result /// @param buffer_length : maximum buffer length /// @param err : GError error report /// @return 0 if success, else -1 and err is be set /// see gfal2 error system for more information \ref gfal2_error_system int gfal2_checksum(gfal2_context_t context, const char* url, const char* check_type, off_t start_offset, size_t data_length, char * checksum_buffer, size_t buffer_length, GError ** err); /// @brief permission check /// /// check real user's permissions for a file /// @param context : gfal2 context /// @param url : url of the file /// @param amode : mode of the access /// @param err : GError error report /// @return 0 if success, else -1 and err MUST be set properly /// see gfal2 error system for more information \ref gfal2_error_system int gfal2_access(gfal2_context_t context, const char *url, int amode, GError** err); /// @brief change file access permissions /// /// change the permissions of a file according to "mode" /// @param context : gfal2 context /// @param url : url of the file or the folder /// @param mode : right to configure /// @param err : GError error report /// @return return 0 if success else -1 and err is be set /// see gfal2 error system for more information \ref gfal2_error_system int gfal2_chmod(gfal2_context_t context, const char* url, mode_t mode, GError ** err); /// @brief change the name or location of a file /// /// move ( or rename ) the file 'oldurl' to 'newurl' /// @param context : gfal2 context /// @param oldurl : the old url of the file /// @param newurl : the new url of the file /// @param err : GError error report /// @return : return 0 if success, else -1 if errors. /// see gfal2 error system for more information \ref gfal2_error_system int gfal2_rename(gfal2_context_t context, const char *oldurl, const char *newurl, GError ** err); /// @brief posix file status /// /// get meta-data information about the file 'url' /// @param context : gfal2 context /// @param url : url of the file /// @param buff : stat structure filled /// @param err : GError error report /// int gfal2_stat(gfal2_context_t context, const char* url, struct stat* buff, GError ** err); /// @brief posix file status /// /// get meta-data information about the file 'url' /// same behavior than \ref gfal2_stat but return information /// about the link itself if "url" is a symbolic link /// /// @param context : gfal2 context /// @param url : url of the file /// @param buff : stat structure filled /// @param err : GError error report /// int gfal2_lstat(gfal2_context_t context, const char* url, struct stat* buff, GError ** err); /// @brief create directory /// /// create a directory at the address 'url' /// /// @param context : gfal2 context /// @param url : url of the file /// @param mode : directory file rights /// @param err : GError error report /// int gfal2_mkdir(gfal2_context_t context, const char* url, mode_t mode, GError ** err); /// @brief create directory /// /// create a directory at the address 'url' /// create all the parent drectories and /// does not return an error if the directory already exist /// /// @param context : gfal2 context /// @param url : url of the file /// @param mode : directory file rights /// @param err : GError error report /// int gfal2_mkdir_rec(gfal2_context_t context, const char* url, mode_t mode, GError ** err); /// @brief suppress a directory /// /// suppress a directory at the address 'url' /// @param context : gfal2 context /// @param url : url of the file /// @param err : GError error report /// int gfal2_rmdir(gfal2_context_t context, const char* url, GError ** err); DIR* gfal2_opendir(gfal2_context_t context, const char* url, GError ** err); struct dirent* gfal2_readdir(gfal2_context_t context, DIR* d, GError ** err); struct dirent* gfal2_readdirpp(gfal2_context_t context, DIR* d, struct stat* st, GError ** err); int gfal2_closedir(gfal2_context_t context, DIR* d, GError ** err); int gfal2_symlink(gfal2_context_t context, const char* oldpath, const char * newpath, GError ** err); off_t gfal2_lseek (gfal2_context_t context, int fd, off_t offset, int whence, GError ** err); ssize_t gfal2_getxattr (gfal2_context_t context, const char *path, const char *name, void *value, size_t size, GError ** err); ssize_t gfal2_readlink(gfal2_context_t context, const char* path, char* buff, size_t buffsiz, GError ** err); int gfal2_unlink(gfal2_context_t context, const char* path, GError ** err); ssize_t gfal2_listxattr (gfal2_context_t context, const char *path, char *list, size_t size, GError ** err); int gfal2_setxattr (gfal2_context_t context, const char *path, const char *name, const void *value, size_t size, int flags, GError ** err); int gfal2_bring_online(gfal2_context_t context, const char* path, time_t pintime, time_t timeout, char* token, size_t tsize, int async, GError ** err); int gfal2_bring_online_poll(gfal2_context_t context, const char* path, const char* token, GError ** err); int gfal2_release_file(gfal2_context_t context, const char* path, const char* token, GError ** err); ///////////////////////////////////////////////////// ///////////// R/W operations ///////////////////////////////////////////////////// int gfal2_open(gfal2_context_t context, const char * path, int flag, GError ** err); int gfal2_open2(gfal2_context_t context, const char * path, int flag, mode_t mode, GError ** err); int gfal2_creat (gfal2_context_t context, const char *filename, mode_t mode, GError ** err); ssize_t gfal2_read(gfal2_context_t context, int fd, void* buff, size_t s_buff, GError ** err); ssize_t gfal2_write(gfal2_context_t context, int fd, const void *buff, size_t s_buff, GError ** err); int gfal2_close(gfal2_context_t context, int fd, GError ** err); int gfal2_flush(gfal2_context_t context, int fd, GError ** err); ssize_t gfal2_pread(gfal2_context_t context, int fd, void * buffer, size_t count, off_t offset, GError ** err); ssize_t gfal2_pwrite(gfal2_context_t context, int fd, const void * buffer, size_t count, off_t offset, GError ** err); /** @} End of the FILE group */ #ifdef __cplusplus } #endif #endif // _GFAL2_FILE_API_ gfal2-2.3.0/src/file/gfal2_checksum.c0000644000175000017500000000374712164561703016616 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include // fiel descriptor checksum calculation GQuark gfal_checksum_file_quark(){ return g_quark_from_static_string("gfal2_checksum"); } int gfal2_checksum(gfal2_context_t handle, const char* url, const char* check_type, off_t start_offset, size_t data_length, char * checksum_buffer, size_t buffer_length, GError ** err){ if( !(handle != NULL && url != NULL && check_type != NULL && checksum_buffer != NULL && buffer_length != 0)){ g_set_error(err, gfal_checksum_file_quark(),EFAULT, "Invalid parameters to %s",__func__); return -1; } GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); gfal_log(GFAL_VERBOSE_VERBOSE, " gfal2_checksum ->"); int res = -1; GError * tmp_err=NULL; gfal_plugin_interface* p = gfal_find_plugin(handle, url, GFAL_PLUGIN_CHECKSUM, &tmp_err); if(p) res = p->checksum_calcG(gfal_get_plugin_handle(p), url, check_type, checksum_buffer, buffer_length, start_offset, data_length, &tmp_err); gfal_log(GFAL_VERBOSE_VERBOSE, " gfal2_checksum <-"); GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } gfal2-2.3.0/src/file/gfal2_standard_file_operations.c0000644000175000017500000003023412164561703022045 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include // // Mapping for the gfal 2.0 standard opeations of the file interface // // @author : Devresse Adrien // // // // int gfal2_access(gfal2_context_t handle, const char *url, int amode, GError** err){ int resu = -1; GError* tmp_err=NULL; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(url == NULL || handle == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, "handle or/and url are incorrect arguments"); }else{ resu = gfal_plugins_accessG(handle, (char*) url, amode, &tmp_err ); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(((resu)?(-1):0), tmp_err, err); } // // int gfal2_chmod(gfal2_context_t handle, const char* url, mode_t mode, GError ** err){ GError* tmp_err=NULL; int res= -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(url == NULL || handle == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, "handle or/and url are incorrect arguments"); }else{ res = gfal_plugin_chmodG(handle, url, mode, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } // // int gfal2_rename(gfal2_context_t handle, const char *olduri, const char *newuri, GError ** err){ GError* tmp_err = NULL; int ret=-1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if( olduri == NULL || newuri == NULL || handle == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, " olduri/newuri/handle are incorrect arguments"); }else{ ret = gfal_plugin_renameG(handle, olduri, newuri, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(((ret)?-1:0), tmp_err, err); } // // int gfal2_stat(gfal2_context_t handle, const char* url, struct stat* buff, GError ** err){ GError* tmp_err = NULL; int ret = -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(url == NULL || handle == NULL || buff == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, "handle or/and url or/and buff are incorrect arguments"); }else{ ret = gfal_plugin_statG(handle, url, buff, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(ret, tmp_err, err); } int gfal2_lstat(gfal2_context_t handle, const char* url, struct stat* buff, GError ** err){ GError* tmp_err = NULL; int ret = -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(url == NULL || handle == NULL || buff == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, "handle or/and url or/and buff are incorrect arguments"); }else{ if( ( ret = gfal_plugin_lstatG(handle, url, buff, &tmp_err)) != 0 && tmp_err && tmp_err->code== EPROTONOSUPPORT){ // protocol does not support lstat, try to map to stat ret = gfal2_stat(handle, url, buff, err); } } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(ret, tmp_err, err); } int gfal2_mkdir(gfal2_context_t handle, const char* uri, mode_t mode, GError ** err){ GError* tmp_err=NULL; int res= -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(uri == NULL || handle == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, " uri is an incorrect argument"); }else{ res = gfal_plugin_mkdirp(handle, uri, mode, FALSE, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } int gfal2_mkdir_rec(gfal2_context_t handle, const char* uri, mode_t mode, GError ** err){ GError* tmp_err=NULL; int res= -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(uri == NULL || handle == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, " uri is an incorrect argument"); }else{ res = gfal_plugin_mkdirp(handle, uri, mode, TRUE, &tmp_err); if(tmp_err){ if(tmp_err->code == EEXIST){ g_clear_error(&tmp_err); res = 0; }else if(tmp_err->code == ENOENT){ gfal_log(GFAL_VERBOSE_TRACE, "execute recusive directory creation for %s", uri); GList* stack_uri = NULL; char current_uri[GFAL_URL_MAX_LEN]; g_strlcpy(current_uri, uri, GFAL_URL_MAX_LEN); while(tmp_err && tmp_err->code == ENOENT){ stack_uri= g_list_prepend(stack_uri, g_strdup(current_uri)); g_clear_error(&tmp_err); const size_t s_uri = strlen(current_uri); char* p_uri = current_uri + s_uri -1; while( p_uri > current_uri && *p_uri == '/' ){ // remove trailing '/' *p_uri = '\0'; p_uri--; } while( p_uri > current_uri && *p_uri != '/'){ // find the parent directory p_uri--; } if(p_uri > current_uri){ *p_uri = '\0'; res = gfal_plugin_mkdirp(handle, current_uri, mode, FALSE, &tmp_err); if( res == 0){ gfal_log(GFAL_VERBOSE_TRACE, "create directory %s", current_uri); } } } if(!tmp_err){ res = 0; GList* tmp_list = stack_uri; while(tmp_list != NULL && res ==0){ res = gfal_plugin_mkdirp(handle, (char*) tmp_list->data, mode, FALSE, &tmp_err); if(res == 0){ gfal_log(GFAL_VERBOSE_TRACE, "create directory %s", current_uri); } tmp_list = g_list_next(tmp_list); } } g_list_free_full(stack_uri, g_free); } } } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } int gfal2_rmdir(gfal2_context_t handle, const char* uri, GError ** err){ GError* tmp_err=NULL; int res= -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(uri == NULL || handle == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, " path is an incorrect argument"); }else{ res = gfal_plugin_rmdirG(handle, uri, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } int gfal2_symlink(gfal2_context_t handle, const char* olduri, const char * newuri, GError ** err){ GError* tmp_err = NULL; int ret=-1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if( olduri == NULL || newuri == NULL || handle == NULL ){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, " olduri and/or newuri and/or handle are incorrect arguments"); }else{ ret = gfal_plugin_symlinkG(handle, olduri, newuri, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(((ret)?-1:0), tmp_err, err); } ssize_t gfal2_getxattr (gfal2_context_t handle, const char *url, const char *name, void *value, size_t size, GError ** err){ GError* tmp_err=NULL; ssize_t res= -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(url == NULL || handle == NULL || name == NULL ){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, "url or/and handle or/and name are incorrect arguments"); }else{ res = gfal_plugin_getxattrG(handle, url, name, value, size, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } ssize_t gfal2_readlink(gfal2_context_t handle, const char* uri, char* buff, size_t buffsiz, GError ** err){ GError* tmp_err = NULL; ssize_t ret = -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(uri ==NULL || buff==NULL || handle == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, " uri and/or buff or/and handle are incorrect arguments"); }else{ ret = gfal_plugin_readlinkG(handle, uri, buff, buffsiz, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(ret, tmp_err, err); } int gfal2_unlink(gfal2_context_t handle, const char* uri, GError ** err){ GError* tmp_err = NULL; ssize_t ret = -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(uri == NULL || handle == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, " uri and/or handle are incorrect arguments"); }else{ ret = gfal_plugin_unlinkG(handle, uri, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(ret, tmp_err, err); } ssize_t gfal2_listxattr (gfal2_context_t handle, const char *url, char *list, size_t size, GError ** err){ GError* tmp_err=NULL; ssize_t res= -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(url == NULL || handle == NULL ){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, "handle or/and uri or/and list are incorrect arguments"); }else{ res = gfal_plugin_listxattrG(handle, url, list, size, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } int gfal2_setxattr (gfal2_context_t handle, const char *uri, const char *name, const void *value, size_t size, int flags, GError ** err){ GError* tmp_err=NULL; int res= -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(uri == NULL || name == NULL|| handle == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, "uri or/and name or/and handle are an incorrect arguments"); }else{ res = gfal_plugin_setxattrG(handle, uri, name, value, size, flags, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } int gfal2_bring_online(gfal2_context_t handle, const char* uri, time_t pintime, time_t timeout, char* token, size_t tsize, int async, GError ** err){ GError* tmp_err=NULL; int res= -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(uri == NULL || handle == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, "uri or/and name or/and handle are an incorrect arguments"); }else{ res = gfal_plugin_bring_onlineG(handle, uri, pintime, timeout, token, tsize, async, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } int gfal2_bring_online_poll(gfal2_context_t handle, const char* uri, const char* token, GError ** err) { GError* tmp_err=NULL; int res= -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(uri == NULL || handle == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, "uri or/and name or/and handle are an incorrect arguments"); }else{ res = gfal_plugin_bring_online_pollG(handle, uri, token, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } int gfal2_release_file(gfal2_context_t handle, const char* uri, const char* token, GError ** err) { GError* tmp_err=NULL; int res= -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(uri == NULL || handle == NULL){ g_set_error(&tmp_err, gfal2_get_core_quark(), EFAULT, "uri or/and name or/and handle are an incorrect arguments"); }else{ res = gfal_plugin_release_fileG(handle, uri, token, &tmp_err); } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } gfal2-2.3.0/src/file/gfal2_directory_operations.c0000644000175000017500000001467612164561703021266 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include // // Mapping for the gfal 2.0 opendir/readdir/closedir operations // // @author : Devresse Adrien // // inline static int gfal_rw_dir_handle_store(gfal_handle handle, gfal_file_handle fhandle, GError** err){ g_return_val_err_if_fail(handle && fhandle, 0, err, "[gfal_rw_dir_handle_store] handle invalid"); GError* tmp_err=NULL; int key = 0; gfal_fdesc_container_handle container= gfal_dir_handle_container_instance(&(handle->fdescs), &tmp_err); if(container) key = gfal_add_new_file_desc(container, (gpointer) fhandle, &tmp_err); G_RETURN_ERR(key, tmp_err, err); } DIR* gfal2_opendir(gfal2_context_t handle, const char* name, GError ** err){ GError* tmp_err=NULL; gfal_file_handle ret= NULL; GFAL2_BEGIN_SCOPE_CANCEL(handle, NULL, err); if(name == NULL || handle ==NULL){ g_set_error(&tmp_err, 0, EFAULT, "uri or/and handle are NULL"); }else{ ret = gfal_plugin_opendirG(handle, name, &tmp_err); } int key = 0; if(ret) key = gfal_rw_dir_handle_store(handle, ret, &tmp_err); GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR( GINT_TO_POINTER(key), tmp_err, err); } // // inline static struct dirent* gfal_rw_gfalfilehandle_readdir(gfal_handle handle, gfal_file_handle fh, GError** err){ g_return_val_err_if_fail(handle && fh, NULL, err, "[gfal_posix_gfalfilehandle_readdir] incorrect args"); GError *tmp_err=NULL; struct dirent* ret = gfal_plugin_readdirG(handle, fh, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } struct dirent* gfal2_readdir(gfal2_context_t handle, DIR* dir, GError ** err){ GError* tmp_err=NULL; struct dirent* res= NULL; GFAL2_BEGIN_SCOPE_CANCEL(handle, NULL, err); if(dir == NULL || handle ==NULL){ g_set_error(&tmp_err, 0, EFAULT, "file descriptor or/and handle are NULL"); }else{ gfal_fdesc_container_handle container= gfal_dir_handle_container_instance(&(handle->fdescs), &tmp_err); const int key = GPOINTER_TO_INT(dir); gfal_file_handle fh = gfal_file_handle_bind(container, key, &tmp_err); if( fh != NULL){ res = gfal_rw_gfalfilehandle_readdir(handle, fh, &tmp_err); } } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } // // inline static struct dirent* gfal_rw_gfalfilehandle_readdirpp(gfal_handle context, gfal_file_handle fh, struct stat* st, GError** err){ g_return_val_err_if_fail(context && fh, NULL, err, "[gfal_posix_gfalfilehandle_readdirpp] incorrect args"); GError *tmp_err=NULL; struct dirent* ret = gfal_plugin_readdirppG(context, fh, st, &tmp_err); if( tmp_err && tmp_err->code == EPROTONOSUPPORT && fh->path != NULL){ // try to simulate readdirpp g_clear_error(&tmp_err); ret = gfal_rw_gfalfilehandle_readdir(context, fh, &tmp_err); if(!tmp_err && ret != NULL){ const size_t s_path= strlen( fh->path); const size_t s_d_name = strlen(ret->d_name); char buffer[ s_d_name +s_path +2]; char* p = mempcpy(buffer, fh->path, s_path); *p = '/'; p = memcpy(++p, ret->d_name, s_d_name); *p = '\0'; if( gfal2_stat(context, buffer, st, &tmp_err) < 0){ ret = NULL; } } } G_RETURN_ERR(ret, tmp_err, err); } struct dirent* gfal2_readdirpp(gfal2_context_t context, DIR* dir, struct stat* st, GError ** err){ GError* tmp_err=NULL; struct dirent* res= NULL; GFAL2_BEGIN_SCOPE_CANCEL(context, NULL, err); if(dir == NULL || context ==NULL){ g_set_error(&tmp_err, 0, EFAULT, "file descriptor or/and handle are NULL"); }else{ gfal_fdesc_container_handle container= gfal_dir_handle_container_instance(&(context->fdescs), &tmp_err); const int key = GPOINTER_TO_INT(dir); gfal_file_handle fh = gfal_file_handle_bind(container, key, &tmp_err); if( fh != NULL){ res = gfal_rw_gfalfilehandle_readdirpp(context, fh, st, &tmp_err); } } GFAL2_END_SCOPE_CANCEL(context); G_RETURN_ERR(res, tmp_err, err); } // // static int gfal_rw_dir_handle_delete(gfal_fdesc_container_handle container, int key, GError** err){ g_return_val_err_if_fail(container, -1, err, "[gfal_posix_dir_handle_delete] invalid args"); GError *tmp_err=NULL; int ret = -1; if(container){ ret = (gfal_remove_file_desc(container, key, &tmp_err))?0:-1; } G_RETURN_ERR(ret, tmp_err, err); } // // static int gfal_rw_dir_handle_close(gfal_handle handle, gfal_file_handle fh, GError** err){ g_return_val_err_if_fail(handle && fh, -1, err, "[gfal_posix_gfalfilehandle_close] invalid args"); GError *tmp_err=NULL; int ret = -1; ret = gfal_plugin_closedirG(handle, fh, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } // // int gfal2_closedir(gfal2_context_t handle, DIR* d, GError ** err){ GError* tmp_err=NULL; int ret = -1; if(d == NULL || handle ==NULL){ g_set_error(&tmp_err, 0, EFAULT, "file descriptor or/and handle are NULL"); }else{ gfal_fdesc_container_handle container= gfal_dir_handle_container_instance(&(handle->fdescs), &tmp_err); int key = GPOINTER_TO_INT(d); gfal_file_handle fh = gfal_file_handle_bind(container, key, &tmp_err); if( fh != NULL){ ret = gfal_rw_dir_handle_close(handle, fh, &tmp_err); if(ret==0){ ret = gfal_rw_dir_handle_delete(container, key, &tmp_err); } } } G_RETURN_ERR(ret, tmp_err, err); } gfal2-2.3.0/src/file/gfal2_read_write_file_operations.c0000644000175000017500000002275512164561703022403 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include // // Mapping for the gfal 2.0 open/read/write/close opeations of the file interface // // @author : Devresse Adrien // // /* * store a gfal_file_handle in the base, in a key/value model * the key, else 0 if error occured and err is set correctly */ static int gfal_rw_file_handle_store(gfal_handle handle, gfal_file_handle fhandle, GError** err){ g_return_val_err_if_fail( handle && fhandle, -1, err, "[gfal_rw_file_handle_store] invalid args"); GError* tmp_err=NULL; int key=0; gfal_fdesc_container_handle container= gfal_file_handle_container_instance(&(handle->fdescs), &tmp_err); if(container) key = gfal_add_new_file_desc(container, (gpointer) fhandle, &tmp_err); G_RETURN_ERR(key, tmp_err, err); } int gfal2_open(gfal2_context_t handle, const char * uri, int flag, GError ** err){ return gfal2_open2(handle, uri, flag, (S_IRWXU | S_IRGRP | S_IROTH), err); } int gfal2_open2(gfal2_context_t handle, const char * uri, int flag, mode_t mode, GError ** err){ GError* tmp_err=NULL; gfal_file_handle fhandle=NULL; int key = -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); gfal_log(GFAL_VERBOSE_TRACE, "%s ->",__func__); if(uri == NULL || handle == NULL){ g_set_error(&tmp_err, 0, EFAULT, "name is empty"); }else{ fhandle = gfal_plugin_openG(handle, uri, flag, mode, &tmp_err); } if(fhandle) key = gfal_rw_file_handle_store(handle, fhandle, &tmp_err); GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(key, tmp_err, err); } int gfal2_creat (gfal2_context_t handle, const char *filename, mode_t mode, GError ** err){ return (gfal2_open2 (handle, filename, (O_WRONLY|O_CREAT|O_TRUNC), mode, err)); } /* * map the file handle to the correct call */ inline int gfal_rw_gfalfilehandle_read(gfal_handle handle, gfal_file_handle fh, void* buff, size_t s_buff, GError** err){ g_return_val_err_if_fail(handle && fh, -1, err, "[gfal_rw_gfalfilehandle_read] incorrect args"); GError *tmp_err=NULL; int ret = gfal_plugin_readG(handle, fh, buff, s_buff, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } ssize_t gfal2_read(gfal2_context_t handle, int fd, void* buff, size_t s_buff, GError ** err){ GError* tmp_err=NULL; int res = -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(fd <=0 || handle == NULL){ g_set_error(&tmp_err, 0, EBADF, "Incorrect file descriptor or incorrect handle"); }else{ gfal_fdesc_container_handle container= gfal_file_handle_container_instance(&(handle->fdescs), &tmp_err); const int key = fd; gfal_file_handle fh = gfal_file_handle_bind(container, key, &tmp_err); if( fh != NULL){ res = gfal_rw_gfalfilehandle_read(handle, fh, buff, s_buff, &tmp_err); } } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } static int gfal_rw_file_handle_delete(gfal_fdesc_container_handle container, int key, GError** err){ g_return_val_err_if_fail(container, -1, err, "[gfal_rw_dir_handle_delete] invalid args"); GError *tmp_err=NULL; int ret = -1; if(container){ ret = (gfal_remove_file_desc(container, key, &tmp_err))?0:-1; } if(tmp_err){ g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); }else{ errno = 0; } return ret; } static int gfal_rw_file_handle_close(gfal_handle handle, gfal_file_handle fhandle, GError ** err){ GError* tmp_err=NULL; int ret = -1; ret = gfal_plugin_closeG(handle, fhandle, &tmp_err); if(tmp_err){ g_propagate_prefixed_error(err, tmp_err, "[%s]", __func__); } return ret; } int gfal2_close(gfal2_context_t handle, int fd, GError ** err){ GError* tmp_err=NULL; int ret = -1; if(fd <=0 || handle == NULL){ g_set_error(&tmp_err, 0, EBADF, "Incorrect file descriptor or incorrect handle"); }else{ gfal_fdesc_container_handle container= gfal_file_handle_container_instance(&(handle->fdescs), &tmp_err); int key = GPOINTER_TO_INT(fd); gfal_file_handle fh = gfal_file_handle_bind(container, key, &tmp_err); if( fh != NULL){ ret = gfal_rw_file_handle_close(handle, fh, &tmp_err); if(ret==0){ ret = gfal_rw_file_handle_delete(container, key, &tmp_err); } } } G_RETURN_ERR(ret, tmp_err, err); } static int gfal_rw_gfalfilehandle_lseek(gfal_handle handle, gfal_file_handle fh, off_t offset, int whence, GError** err){ GError *tmp_err=NULL; int ret = gfal_plugin_lseekG(handle, fh, offset, whence, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } off_t gfal2_lseek (gfal2_context_t handle, int fd, off_t offset, int whence, GError ** err){ GError* tmp_err=NULL; int res= -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(fd <=0 || handle == NULL){ g_set_error(&tmp_err, 0, EBADF, "Incorrect file descriptor"); }else{ gfal_fdesc_container_handle container= gfal_file_handle_container_instance(&(handle->fdescs), &tmp_err); const int key = fd; gfal_file_handle fh = gfal_file_handle_bind(container, key, &tmp_err); if( fh != NULL){ res = gfal_rw_gfalfilehandle_lseek(handle, fh, offset, whence, &tmp_err); } } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } int gfal2_flush(gfal2_context_t handle, int fd, GError ** err){ return 0; } inline ssize_t gfal_rw_gfalfilehandle_pread(gfal_handle handle, gfal_file_handle fh, void* buff, size_t s_buff, off_t offset, GError** err){ GError *tmp_err=NULL; ssize_t ret = gfal_plugin_preadG(handle, fh, buff, s_buff, offset, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } ssize_t gfal2_pread(gfal2_context_t handle, int fd, void * buff, size_t s_buff, off_t offset, GError ** err){ GError* tmp_err=NULL; ssize_t res = -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(fd <=0 || handle == NULL){ g_set_error(&tmp_err, 0, EBADF, "Incorrect file descriptor or incorrect handle"); }else{ gfal_fdesc_container_handle container= gfal_file_handle_container_instance(&(handle->fdescs), &tmp_err); const int key = fd; gfal_file_handle fh = gfal_file_handle_bind(container, key, &tmp_err); if( fh != NULL){ res = gfal_rw_gfalfilehandle_pread(handle, fh, buff, s_buff, offset, &tmp_err); } } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } int gfal_rw_gfalfilehandle_write(gfal_handle handle, gfal_file_handle fh, const void* buff, size_t s_buff, GError** err){ GError *tmp_err=NULL; int ret = gfal_plugin_writeG(handle, fh, (void*) buff, s_buff, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } ssize_t gfal2_write(gfal2_context_t handle, int fd, const void *buff, size_t s_buff, GError ** err){ GError* tmp_err=NULL; int res = -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(fd <=0 || handle == NULL){ g_set_error(&tmp_err, 0, EBADF, "Incorrect file descriptor or incorrect handle"); }else{ gfal_fdesc_container_handle container= gfal_file_handle_container_instance(&(handle->fdescs), &tmp_err); const int key = fd; gfal_file_handle fh = gfal_file_handle_bind(container, key, &tmp_err); if( fh != NULL){ res = gfal_rw_gfalfilehandle_write(handle, fh, buff, s_buff, &tmp_err); } } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } /* * map the file handle to the correct call for pwrite */ int gfal_rw_gfalfilehandle_pwrite(gfal_handle handle, gfal_file_handle fh, const void* buff, size_t s_buff, off_t offset, GError** err){ g_return_val_err_if_fail(handle && fh, -1, err, "[gfal_posix_gfalfilehandle_pwrite] incorrect args"); GError *tmp_err=NULL; int ret = gfal_plugin_pwriteG(handle, fh, (void*) buff, s_buff, offset, &tmp_err); G_RETURN_ERR(ret, tmp_err, err); } ssize_t gfal2_pwrite(gfal2_context_t handle, int fd, const void * buff, size_t s_buff, off_t offset, GError ** err){ GError* tmp_err=NULL; int res = -1; GFAL2_BEGIN_SCOPE_CANCEL(handle, -1, err); if(fd <=0){ g_set_error(&tmp_err, 0, EBADF, "Incorrect file descriptor"); }else{ gfal_fdesc_container_handle container= gfal_file_handle_container_instance(&(handle->fdescs), &tmp_err); const int key = fd; gfal_file_handle fh = gfal_file_handle_bind(container, key, &tmp_err); if( fh != NULL){ res = gfal_rw_gfalfilehandle_pwrite(handle, fh, buff, s_buff, offset, &tmp_err); } } GFAL2_END_SCOPE_CANCEL(handle); G_RETURN_ERR(res, tmp_err, err); } gfal2-2.3.0/LICENSE0000644000175000017500000000122712164561703013063 0ustar ellertellert/* * Copyright @ Members of the EMI Collaboration, 2010. * See www.eu-emi.eu for details on the copyright holders. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ gfal2-2.3.0/packaging/0000755000175000017500000000000012164561703014000 5ustar ellertellertgfal2-2.3.0/packaging/rpm/0000755000175000017500000000000012164561703014576 5ustar ellertellertgfal2-2.3.0/packaging/rpm/specs-tests/0000755000175000017500000000000012164561703017053 5ustar ellertellertgfal2-2.3.0/packaging/rpm/specs-tests/gfal2-testing.spec0000644000175000017500000000327212164561703022401 0ustar ellertellert%global checkout_tag 20120828svn %define debug_package %{nil} Name: gfal2-testing Version: 2.0.3 Release: 1.%{checkout_tag}%{?dist} Summary: Grid file access library 2.0 Group: Applications/Internet License: ASL 2.0 URL: https://svnweb.cern.ch/trac/lcgutil/wiki/gfal2 # svn export http://svn.cern.ch/guest/lcgutil/gfal2/trunk gfal2 Source0: http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/%{name}/%{name}-%{version}-%{checkout_tag}.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) AutoReqProv: no #main lib dependencies Requires: cmake%{?_isa} Requires: gfal2-devel%{?_isa} Requires: gfal2-all%{?_isa} Requires: voms-clients%{?_isa} Requires: glibmm24-devel%{?_isa} Requires: libattr-devel%{?_isa} Requires: openldap-devel%{?_isa} ## libuuid is in a different rpm for el5 %if 0%{?el5} Requires: e2fsprogs-devel%{?_isa} %else Requires: libuuid-devel%{?_isa} %endif #lfc plugin dependencies Requires: lfc-devel%{?_isa} #rfio plugin dependencies Requires: dpm-devel%{?_isa} #srm plugin dependencies Requires: srm-ifce-devel%{?_isa} #dcap plugin dependencies Requires: dcap-devel%{?_isa} #gridftp plugin dependencies Requires: globus-gass-copy-devel%{?_isa} # globus testing tools Requires: globus-proxy-utils %description test suite for gfal 2.0 %clean rm -rf %{buildroot}; %prep %setup -q %build %install rm -rf %{buildroot} mkdir -p %{buildroot}/usr/src/gfal2 cp -r * %{buildroot}/usr/src/gfal2/ %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr (-,root,root) /usr/src/gfal2/* %changelog * Fri Jul 20 2012 Adrien Devresse - 2.0.0-1 - initial test set gfal2-2.3.0/packaging/rpm/specs/0000755000175000017500000000000012164561703015713 5ustar ellertellertgfal2-2.3.0/packaging/rpm/specs/gfal2-tests-devel.spec.bak0000644000175000017500000001522712164561703022562 0ustar ellertellert%define name gfal2-tests-devel %define version 2.0 %define release 1.17_preview %define debug_package %{nil} Name: %{name} License: Apache-2.0 Summary: Grid file access library 2.0 Version: %{version} Release: %{release} Group: Grid/lcg BuildRoot: %{_tmppath}/%{name}-%{version}-%{release} BuildRequires: scons, glib2-devel, openldap-devel, libattr-devel, e2fsprogs-devel, lfc-devel, dpm-devel, dcap-devel, cgreen-devel, srm-ifce-devel Requires: openldap, cgreen Source: %{name}-%{version}-%{release}.src.tar.gz %description Unit and functional tests package for gfal 2.0 %clean [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf "$RPM_BUILD_ROOT"; scons main_tests=yes debug=yes -c build %prep %setup -q %build NUMCPU=`grep processor /proc/cpuinfo | wc -l`; if [[ "$NUMCPU" == "0" ]]; then NUMCPU=1; fi; scons -j $NUMCPU main_tests=yes debug=yes build %install [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf "$RPM_BUILD_ROOT"; NUMCPU=`grep processor /proc/cpuinfo | wc -l`; if [[ "$NUMCPU" == "0" ]]; then NUMCPU=1; fi; scons -j $NUMCPU main_tests=yes debug=yes --install-sandbox="$RPM_BUILD_ROOT" install %files %defattr (-,root,root) /usr/share/gfal2/tests/mocked/gfal2-gfal2-test-check-bdii-endpoints-srm-ng /usr/share/gfal2/tests/mocked/gfal2-gfal2-test-gfal-common-lfc-access-guid-file-exist /usr/share/gfal2/tests/mocked/gfal2-test--dir-file-descriptor-high /usr/share/gfal2/tests/mocked/gfal2-test--dir-file-descriptor-low /usr/share/gfal2/tests/mocked/gfal2-test--gfal-common-lfc-rename /usr/share/gfal2/tests/mocked/gfal2-test--gfal-common-lfc-statg /usr/share/gfal2/tests/mocked/gfal2-test--gfal-convert-full-surl /usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-chmod-read-guid /usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-chmod-read-lfn /usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-chmod-srm /usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-chmod-write-lfn /usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-lstat-guid /usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-lstat-lfc /usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-lstat-srm /usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-stat-guid /usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-stat-lfc /usr/share/gfal2/tests/mocked/gfal2-test--gfal-posix-stat-srm /usr/share/gfal2/tests/mocked/gfal2-test--mkdir-posix-lfc-simple /usr/share/gfal2/tests/mocked/gfal2-test--mkdir-posix-srm-simple /usr/share/gfal2/tests/mocked/gfal2-test--opendir-posix-lfc-simple /usr/share/gfal2/tests/mocked/gfal2-test--opendir-posix-srm-simple-mock /usr/share/gfal2/tests/mocked/gfal2-test--plugin-lstat /usr/share/gfal2/tests/mocked/gfal2-test--plugin-stat /usr/share/gfal2/tests/mocked/gfal2-test--readdir-posix-lfc-simple /usr/share/gfal2/tests/mocked/gfal2-test--readdir-posix-srm-simple-mock /usr/share/gfal2/tests/mocked/gfal2-test-access-posix-guid-exist /usr/share/gfal2/tests/mocked/gfal2-test-access-posix-guid-read /usr/share/gfal2/tests/mocked/gfal2-test-access-posix-guid-write /usr/share/gfal2/tests/mocked/gfal2-test-access-posix-lfn-exist /usr/share/gfal2/tests/mocked/gfal2-test-access-posix-lfn-read /usr/share/gfal2/tests/mocked/gfal2-test-access-posix-lfn-write /usr/share/gfal2/tests/mocked/gfal2-test-access-posix-srm-exist /usr/share/gfal2/tests/mocked/gfal2-test-access-posix-srm-read /usr/share/gfal2/tests/mocked/gfal2-test-access-posix-srm-write /usr/share/gfal2/tests/mocked/gfal2-test-check-bdii-endpoints-srm /usr/share/gfal2/tests/mocked/gfal2-test-common-lfc-checksum /usr/share/gfal2/tests/mocked/gfal2-test-common-lfc-getcomment /usr/share/gfal2/tests/mocked/gfal2-test-common-lfc-setcomment /usr/share/gfal2/tests/mocked/gfal2-test-create-srm-handle /usr/share/gfal2/tests/mocked/gfal2-test-get-cat-type /usr/share/gfal2/tests/mocked/gfal2-test-gfal-auto-get-srm-endpoint-full-endpoint-with-no-bdiiG /usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-access /usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-check-filename /usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-define-env /usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-getSURL /usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-init /usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-no-exist /usr/share/gfal2/tests/mocked/gfal2-test-gfal-common-lfc-resolve-sym /usr/share/gfal2/tests/mocked/gfal2-test-gfal-full-endpoint-checkG /usr/share/gfal2/tests/mocked/gfal2-test-gfal-get-endpoint-and-setype-from-bdiiG /usr/share/gfal2/tests/mocked/gfal2-test-gfal-get-hostname-from-surl /usr/share/gfal2/tests/mocked/gfal2-test-gfal-select-best-protocol-and-endpointG /usr/share/gfal2/tests/mocked/gfal2-test-gfal-srm-determine-endpoint-full-endpointG /usr/share/gfal2/tests/mocked/gfal2-test-gfal-srm-determine-endpoint-not-fullG /usr/share/gfal2/tests/mocked/gfal2-test-gfal-srm-getTURLS-bad-urls /usr/share/gfal2/tests/mocked/gfal2-test-gfal-srm-getTURLS-one-success /usr/share/gfal2/tests/mocked/gfal2-test-gfal-srm-getTURLS-pipeline-success /usr/share/gfal2/tests/mocked/gfal2-test-load-plugin /usr/share/gfal2/tests/mocked/gfal2-test-open-posix-all-simple /usr/share/gfal2/tests/mocked/gfal2-test-open-posix-guid-simple /usr/share/gfal2/tests/mocked/gfal2-test-open-posix-lfc-simple /usr/share/gfal2/tests/mocked/gfal2-test-open-posix-srm-simple /usr/share/gfal2/tests/mocked/gfal2-test-plugin-access-file /usr/share/gfal2/tests/mocked/gfal2-test-plugin-url-checker /usr/share/gfal2/tests/mocked/gfal2-test-pread-posix-guid-simple /usr/share/gfal2/tests/mocked/gfal2-test-pread-posix-lfc-simple /usr/share/gfal2/tests/mocked/gfal2-test-pread-posix-srm-simple /usr/share/gfal2/tests/mocked/gfal2-test-pwrite-posix-srm-simple /usr/share/gfal2/tests/mocked/gfal2-test-read-posix-guid-simple /usr/share/gfal2/tests/mocked/gfal2-test-read-posix-lfc-simple /usr/share/gfal2/tests/mocked/gfal2-test-read-posix-srm-simple /usr/share/gfal2/tests/mocked/gfal2-test-srm-api-no-glib-full /usr/share/gfal2/tests/mocked/gfal2-test-srm-get-checksum /usr/share/gfal2/tests/mocked/gfal2-test-verbose-set-get /usr/share/gfal2/tests/mocked/gfal2-test-write-posix-lfc-simple /usr/share/gfal2/tests/mocked/gfal2-test-write-posix-srm-simple /usr/share/gfal2/tests/mocked/test-gskiplist-create-delete /usr/share/gfal2/tests/mocked/test-gskiplist-insert-get-clean /usr/share/gfal2/tests/mocked/test-gskiplist-insert-len /usr/share/gfal2/tests/mocked/test-gskiplist-insert-multi /usr/share/gfal2/tests/mocked/test-gskiplist-insert-search-remove /usr/share/gfal2/tests/mocked/test-posix-set-get-false-parameter /usr/share/gfal2/tests/mocked/test-posix-set-get-infosys-parameter /usr/share/gfal2/tests/mocked/test-posix-set-get-parameter /usr/share/gfal2/tests/mocked/test_verbose %changelog * Mon Nov 14 2011 adevress at cern.ch - Initial gfal 2.0 test release gfal2-2.3.0/packaging/rpm/specs/gfal2.spec0000644000175000017500000003201512164561703017563 0ustar ellertellert Name: gfal2 Version: 2.3.0 Release: 0%{?dist} Summary: Grid file access library 2.0 Group: Applications/Internet License: ASL 2.0 URL: https://svnweb.cern.ch/trac/lcgutil/wiki/gfal2 # svn export http://svn.cern.ch/guest/lcgutil/gfal2/trunk gfal2 Source0: http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/%{name}/%{name}-%{version}.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) #main lib dependencies BuildRequires: cmake BuildRequires: doxygen BuildRequires: glib2-devel BuildRequires: glibmm24-devel BuildRequires: libattr-devel BuildRequires: openldap-devel ## libuuid is in a different rpm for el5 %if 0%{?el5} BuildRequires: e2fsprogs-devel %else BuildRequires: libuuid-devel %endif #lfc plugin dependencies BuildRequires: lfc-devel #rfio plugin dependencies BuildRequires: dpm-devel #srm plugin dependencies BuildRequires: srm-ifce-devel #dcap plugin dependencies BuildRequires: dcap-devel #gridftp plugin dependencies BuildRequires: globus-gass-copy-devel #http plugin dependencies BuildRequires: davix-devel BuildRequires: gsoap-devel BuildRequires: gridsite-devel Requires: %{name}-core = %{version}-%{release} Requires: %{name}-transfer = %{version}-%{release} %description GFAL 2.0 offers an a single and simple POSIX-like API for the file operations in grids and cloud environments. The set of supported protocols depends of the %{name} installed plugins. %package core Summary: Core of the Grid File access Library 2.0 Group: Applications/Internet Requires: openldap%{?_isa} %description core The main library of %{name}. the %{name} protocol support relies on a plugin system. %package transfer Summary: File Transfer logic of %{name} Group: Applications/Internet Requires: %{name}-core%{?_isa} = %{version}-%{release} %description transfer %{name}-transfer is the high level API for file transfer operations in %{name}. It supports third-party copy. %package devel Summary: Development files of %{name} Group: Applications/Internet Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-transfer%{?_isa} = %{version}-%{release} Requires: glib2-devel%{?_isa} Requires: libattr-devel%{?_isa} Requires: pkgconfig %description devel development files for %{name} %package doc Summary: Documentation for %{name} Group: Applications/Internet Requires: %{name}-core%{?_isa} = %{version}-%{release} %description doc documentation, Doxygen and examples of %{name} . %package plugin-lfc Summary: Provide the lfc support for %{name} Group: Applications/Internet Requires: %{name}-core%{?_isa} = %{version}-%{release} %description plugin-lfc Provide the lfc support (LFN://) for %{name}. The LFC plugin allows read-only POSIX operations for the LFC catalog. %package plugin-rfio Summary: Provide the rfio support for %{name} Group: Applications/Internet Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: dpm-libs%{?_isa} %description plugin-rfio Provide the rfio support (RFIO://) for %{name}. The rfio plugin provides the POSIX operations for the rfio URLs, the rfio protocol is used on the DPM and on the Castor storage systems. %package plugin-dcap Summary: Provide the support access for %{name} Group: Applications/Internet Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: dcap-tunnel-gsi%{?_isa} %description plugin-dcap Provide the dcap support (GSIDCAP://, DCAP://) for %{name}. The dcap plugin provides the POSIX operations for the dcap \ URLs, the dcap protocol is used on the DCACHE storage system %package plugin-srm Summary: Provide the srm access for %{name} Group: Applications/Internet Requires: %{name}-core%{?_isa} = %{version}-%{release} %description plugin-srm Provide the srm support (SRM://) for %{name}. The srm plugin provides the POSIX operations and the third party transfer support on the SRM URLs. %package plugin-gridftp Summary: Provide the gridftp support for %{name} Group: Applications/Internet Requires: %{name}-core%{?_isa} = %{version}-%{release} %description plugin-gridftp Provide the gridftp support (GSIFTP://) for %{name}. The gridftp plugin provides the POSIX operations and the third party transfer support on the GSIFTP URLs. %package plugin-http Summary: Provide the HTTP/DAV support for %{name} Group: Applications/Internet Requires: %{name}-core%{?_isa} = %{version}-%{release} %description plugin-http Provide the HTTP and WevDAV support for %{name}. this plugin is able to do third-party copy with Webdav %package all Summary: Meta package for GFAL 2.0 install Group: Applications/Internet Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-transfer%{?_isa} = %{version}-%{release} Requires: %{name}-plugin-lfc%{?_isa} = %{version}-%{release} Requires: %{name}-plugin-dcap%{?_isa} = %{version}-%{release} Requires: %{name}-plugin-srm%{?_isa} = %{version}-%{release} Requires: %{name}-plugin-rfio%{?_isa} = %{version}-%{release} Requires: %{name}-plugin-gridftp%{?_isa} = %{version}-%{release} Requires: %{name}-plugin-http%{?_isa} = %{version}-%{release} %description all Meta-package for complete install of GFAL 2.0 with all the protocol plugins. %clean rm -rf %{buildroot}; make clean %prep %setup -q %build %cmake \ -DDOC_INSTALL_DIR=%{_docdir}/%{name}-%{version} \ -DUNIT_TESTS=TRUE \ . make %{?_smp_mflags} make doc %check export GFAL_PLUGIN_DIR=${PWD}/plugins/ export GFAL_CONFIG_DIR=${PWD}/test/conf_test/ export LD_LIBRARY_PATH=${PWD}/src:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH=${PWD}/plugins:${LD_LIBRARY_PATH} ctest -V %install rm -rf %{buildroot} make DESTDIR=%{buildroot} install %post core -p /sbin/ldconfig %postun core -p /sbin/ldconfig %post transfer -p /sbin/ldconfig %postun transfer -p /sbin/ldconfig %files %defattr (-,root,root) %{_bindir}/gfal2_version %{_docdir}/%{name}-%{version}/DESCRIPTION %{_docdir}/%{name}-%{version}/VERSION %{_mandir}/man1/gfal2_version.1* %files core %defattr (-,root,root) %{_libdir}/libgfal2.so.* %dir %{_libdir}/%{name}-plugins %dir %{_docdir}/%{name}-%{version} %dir %{_sysconfdir}/%{name}.d %{_libdir}/%{name}-plugins/libgfal_plugin_file.so* %{_docdir}/%{name}-%{version}/README_PLUGIN_FILE %{_docdir}/%{name}-%{version}/LICENSE %config(noreplace) %{_sysconfdir}/%{name}.d/bdii.conf %config(noreplace) %{_sysconfdir}/%{name}.d/gfal2_core.conf %files transfer %defattr (-,root,root) %{_libdir}/libgfal_transfer.so.* %{_docdir}/%{name}-%{version}/README_TRANSFER %files devel %defattr (-,root,root) %dir %{_includedir}/%{name} %{_includedir}/%{name}/*.h %{_includedir}/%{name}/*/*.h %{_libdir}/pkgconfig/gfal2.pc %{_libdir}/pkgconfig/gfal_transfer.pc %{_libdir}/libgfal2.so %{_libdir}/libgfal_transfer.so %{_docdir}/%{name}-%{version}/RELEASE-NOTES %files doc %defattr (-,root,root) %{_docdir}/%{name}-%{version}/html/* %{_docdir}/%{name}-%{version}/examples/*.c %files plugin-lfc %defattr (-,root,root) %{_libdir}/%{name}-plugins/libgfal_plugin_lfc.so* %{_docdir}/%{name}-%{version}/README_PLUGIN_LFC %config(noreplace) %{_sysconfdir}/%{name}.d/lfc_plugin.conf %files plugin-rfio %defattr (-,root,root) %{_libdir}/%{name}-plugins/libgfal_plugin_rfio.so* %{_docdir}/%{name}-%{version}/README_PLUGIN_RFIO %config(noreplace) %{_sysconfdir}/%{name}.d/rfio_plugin.conf %files plugin-dcap %defattr (-,root,root) %{_libdir}/%{name}-plugins/libgfal_plugin_dcap.so* %{_docdir}/%{name}-%{version}/README_PLUGIN_DCAP %config(noreplace) %{_sysconfdir}/%{name}.d/dcap_plugin.conf %files plugin-srm %defattr (-,root,root) %{_libdir}/%{name}-plugins/libgfal_plugin_srm.so* %{_docdir}/%{name}-%{version}/README_PLUGIN_SRM %config(noreplace) %{_sysconfdir}/%{name}.d/srm_plugin.conf %files plugin-gridftp %defattr (-,root,root) %{_libdir}/%{name}-plugins/libgfal_plugin_gridftp.so* %{_docdir}/%{name}-%{version}/README_PLUGIN_GRIDFTP %config(noreplace) %{_sysconfdir}/%{name}.d/gsiftp_plugin.conf %files plugin-http %defattr (-,root,root) %{_libdir}/%{name}-plugins/libgfal_plugin_http.so* %{_docdir}/%{name}-%{version}/README_PLUGIN_HTTP %config(noreplace) %{_sysconfdir}/%{name}.d/http_plugin.conf %files all %defattr (-,root,root) %{_docdir}/%{name}-%{version}/README %changelog * Tue Jul 02 2013 Adrien Devresse - 2.3.0-0 - Release 2.3.0 of GFAL 2.0 * Tue Apr 30 2013 Adrien Devresse - 2.2.1-0 - export transfer plugin API ( needed for xrootd plugin ) * Mon Apr 29 2013 Michail Salichos - 2.2.0-5 - make all gridftp ops async to avoid stalling processes * Fri Apr 26 2013 Michail Salichos - 2.2.0-4 - replace gass stat with gridftp stat * Mon Apr 22 2013 Michail Salichos - 2.2.0-3 - change gridftp error string pattern to satisfy Griffin * Wed Apr 10 2013 Michail Salichos - 2.2.0-2 - display turls in verbose mode, needed by fts3 * Mon Mar 25 2013 Michail Salichos - 2.2.0-1 - fix memory leaks in bringonline SRM op * Wed Mar 20 2013 Adrien Devresse - 2.2.0-0 - fix thread safety issue with gsiftp plugin - add the bring online API - support for the http plugin by default - remove executable stack need - remove openMP dependency - add synchronous cancellation API - add gsiftp performance marker timeout - support for srm session reuse - reduce memory footprint * Fri Feb 22 2013 Adrien Devresse - 2.1.6-0 - FTS 3.0 EMI 3 update - minor fix on the cancel logic - change the performance marker auto-cancel threading model - change the performance marker default timeout value * Mon Feb 11 2013 Adrien Devresse - 2.1.5-0 - FTS 3.0 EMI 3 release sync - include event hooks support - include cancel logic support - include performance marker auto-cancel for gsiftp - include checksum timeout support for gsiftp - include srm session re-use support * Thu Jan 10 2013 Adrien Devresse - 2.1.1-0 - fix a minor memory issue with the gfal_transfer stack - fix a wrong error report problem with srm third party copy * Wed Dec 05 2012 Adrien Devresse - 2.1.0-2 - fix an issue this surl to turl resolution for SRM third party copy * Fri Nov 30 2012 Adrien Devresse - 2.1.0-0 - One-globus session system for gsiftp plugin ( FTS 3.0 need ) - correct a major issue with the gass attribute system in gsiftp plugin - change the lfc set/get env var for a one compatible with set/get opt - add set/nb streams option for gsiftp - add the mkdir rec function for SRM transfer - correct an issue with opendir and srm_ls ( ENOTDIR error silent ) - correct a memory leak in the cache system - correct timeout support for gsiftp transfer - implement tcp buffer size support for gsiftp layer - apply a correction on the SRM over-write logic, related to a BeStMan errcode problem on File Not Found with srmRm ( EOS ) - apply a fix on the transfer gsiftp timeout ( protection against multiple cancel ) - fix for SRM filesize problem ( defined to 0, workaround ) related to globus 426 error bad filesize - secure the callback system for globus gass timeout - base implementation of the http plugin - improve reliability of the bdii resolution - add a fallback mechanism in case of bdii bad resolution - correct several race conditions in the bdii layer - add thread safe support for set/get variables in liblfc - correct a deadlock problem with globus and gisftp plugin - implement the mkdir_rec logic for general purpose - implement the parent folder creation logic with gridftp - add support for lfc://host/path URL style for the lfc plugin - switch off_t to 64bits size by default ( _FILE_OFFSET_BITS=64) - provide a "nobdii" like option - provide the choice of turl protocol resolution for srm plugin * Fri Jul 20 2012 Adrien Devresse - 2.0.0-1 - Official initial release candidate of gfal 2.0 - Transfer API is official - gridftp support for performance marker, checksum - gridftp support for gridftpv2, dcau param - SRM support for spacetoken in transfer - SRM abort auto-management - parallel operations in transfers - file protocol dedicated in a plugin - configuration file support - srm timeout support - general purpose checksum operation support - POSIX operation support for gridftp - cleaner plugin API - new documentation - I hope that you will enjoy gfal 2.0 :) * Sat Jun 23 2012 Adrien Devresse - 2.0.0-0.10.2012062323snap - Snapshot of the 0.10 version for testing * Fri Jun 15 2012 Adrien Devresse - 2.0.0-0.9.2012061511snap - Snapshot of the 0.9 version for testing * Fri May 04 2012 Adrien Devresse - 2.0.0-0.8.2012052812snap - Snapshot of the 0.8 version for testing. * Fri May 04 2012 Adrien Devresse - 2.0.0-0.7.2012050413snap - Improve gridftp plugin with severals other calls - Correct dcap/rfio/srm bugs related to error report - big work on the documentation * Mon Dec 12 2011 Adrien Devresse - 2.0.0-0.6.2012041515snap - Initial gfal 2.0 preview release gfal2-2.3.0/packaging/bin/0000755000175000017500000000000012164561703014550 5ustar ellertellertgfal2-2.3.0/packaging/bin/packager_rpm.sh0000755000175000017500000000534512164561703017551 0ustar ellertellert#!/bin/bash ## help tool for generic packaging # @author: Devresse Adrien ## vars BASE_TMP=/tmp FINAL_DIR="RPMS/" TARBALL_FILTER="--exclude='.git' --exclude='.svn' --exclude='RPMS' --exclude='*.rpm'" FOO="HELLO" set -e create_tmp_dir() { export TMP_DIR="$BASE_TMP/$RANDOM$RANDOM$RANDOM_$$" mkdir -p $TMP_DIR } get_attrs_spec(){ export SPEC_CONTENT="$(rpm -E "`cat $1 | head -n 50`")" export PKG_VERSION="$( echo "$SPEC_CONTENT" | grep "Version:" | sed 's@Version:\(.*\)@\1@g' | sed -e 's/^[ \t]*//')" export PKG_RELEASE="$( echo "$SPEC_CONTENT" | grep "Version:" | sed 's@Release:\(.*\)@\1@g' | sed -e 's/^[ \t]*//')" export PKG_NAME="$(echo "$SPEC_CONTENT" | grep "Name:" | sed 's@Name:\(.*\)@\1@g' | sed -e 's/^[ \t]*//')" export SPEC_CONTENT="$(echo "$SPEC_CONTENT" | sed "s/%{name}/$PKG_NAME/g" | sed "s/%{version}/$PKG_VERSION/g" | sed "s/%{Release}/$PKG_RELEASE/g")" export PKG_SOURCE="$( echo "$SPEC_CONTENT" | grep "Source0:" | sed 's@Source0:\(.*\)@\1@g' )" export PKG_SOURCE="$( echo $PKG_SOURCE | awk -F/ '{print $NF'})" export SRC_NAME="$PKG_SOURCE" echo "res : $SRC_NAME $PKG_VERSION $PKG_NAME $PKG_SOURCE" } # src_dir, tarbal_filepath create_tarball(){ create_tmp_dir SRC_FOLDER="/$TMP_DIR/$PKG_NAME-$PKG_VERSION" mkdir -p "$SRC_FOLDER" echo "copy files..." cp -r $1/* $SRC_FOLDER/ CURRENT_DIR=$PWD cd $TMP_DIR echo "copy files..." eval "tar -cvzf $2 $TARBALL_FILTER $PKG_NAME-$PKG_VERSION" echo "tarball result : $2 $TARBALL_FILTER " cd $CURRENT_DIR rm -rf $TMP_DIR } # specfiles_dir create_rpmbuild_env(){ create_tmp_dir export RPM_BUILD_DIR="$TMP_DIR" mkdir -p $RPM_BUILD_DIR/RPMS $RPM_BUILD_DIR/SOURCES $RPM_BUILD_DIR/BUILD $RPM_BUILD_DIR/SRPMS $RPM_BUILD_DIR/SPECS $RPM_BUILD_DIR/tmp cp $1/* $RPM_BUILD_DIR/SPECS/ } # specfiles_dir delete_rpmbuild_env(){ rm -rf $RPM_BUILD_DIR/ } # specfile rpm_build_src_package(){ echo "Begin the rpmbuild source call for spec file $1 ...." local OLD_DIR=$PWD local MACRO_TOPDIR="s \"_topdir $RPM_BUILD_DIR\"" cd $RPM_BUILD_DIR ls $PWD/SOURCES/ rpmbuild -bs --nodeps --define "_topdir $RPM_BUILD_DIR" SPECS/$1 cd $OLD_DIR echo "End the rpmbuild source call...." } ## main if [[ "$1" == "" || "$2" == "" ]]; then echo "Usage $0 [spec_dir] [src_dir] " exit -1 fi create_rpmbuild_env $1 mkdir -p SRPMS # list spec file for i in $1/*.spec do echo " create RPMS for spec file : $i" get_attrs_spec $i echo "Source : $SRC_NAME" echo "Version : $PKG_VERSION" echo "Name: $PKG_NAME" echo "create source tarball..." create_tarball $2 "$RPM_BUILD_DIR/SOURCES/$SRC_NAME" echo "TARBALL: $RPM_BUILD_DIR/SOURCES/$SRC_NAME" rpm_build_src_package `basename $i` done mkdir -p $FINAL_DIR cp $RPM_BUILD_DIR/SRPMS/* $FINAL_DIR ## clean everything delete_rpmbuild_env gfal2-2.3.0/CHANGELOG0000644000175000017500000000734612164561703013300 0ustar ellertellert%changelog * Fri Feb 22 2013 Adrien Devresse - 2.1.6-0 - FTS 3.0 EMI 3 update - minor fix on the cancel logic - change the performance marker auto-cancel threading model - change the performance marker default timeout value * Mon Feb 11 2013 Adrien Devresse - 2.1.5-0 - FTS 3.0 EMI 3 release sync - include event hooks support - include cancel logic support - include performance marker auto-cancel for gsiftp - include checksum timeout support for gsiftp - include srm session re-use support * Thu Jan 10 2013 Adrien Devresse - 2.1.1-0 - fix a minor memory issue with the gfal_transfer stack - fix a wrong error report problem with srm third party copy * Wed Dec 05 2012 Adrien Devresse - 2.1.0-2 - fix an issue this surl to turl resolution for SRM third party copy * Fri Nov 30 2012 Adrien Devresse - 2.1.0-0 - One-globus session system for gsiftp plugin ( FTS 3.0 need ) - correct a major issue with the gass attribute system in gsiftp plugin - change the lfc set/get env var for a one compatible with set/get opt - add set/nb streams option for gsiftp - add the mkdir rec function for SRM transfer - correct an issue with opendir and srm_ls ( ENOTDIR error silent ) - correct a memory leak in the cache system - correct timeout support for gsiftp transfer - implement tcp buffer size support for gsiftp layer - apply a correction on the SRM over-write logic, related to a BeStMan errcode problem on File Not Found with srmRm ( EOS ) - apply a fix on the transfer gsiftp timeout ( protection against multiple cancel ) - fix for SRM filesize problem ( defined to 0, workaround ) related to globus 426 error bad filesize - secure the callback system for globus gass timeout - base implementation of the http plugin - improve reliability of the bdii resolution - add a fallback mechanism in case of bdii bad resolution - correct several race conditions in the bdii layer - add thread safe support for set/get variables in liblfc - correct a deadlock problem with globus and gisftp plugin - implement the mkdir_rec logic for general purpose - implement the parent folder creation logic with gridftp - add support for lfc://host/path URL style for the lfc plugin - switch off_t to 64bits size by default ( _FILE_OFFSET_BITS=64) - provide a "nobdii" like option - provide the choice of turl protocol resolution for srm plugin * Fri Jul 20 2012 Adrien Devresse - 2.0.0-1 - Official initial release candidate of gfal 2.0 - Transfer API is official - gridftp support for performance marker, checksum - gridftp support for gridftpv2, dcau param - SRM support for spacetoken in transfer - SRM abort auto-management - parallel operations in transfers - file protocol dedicated in a plugin - configuration file support - srm timeout support - general purpose checksum operation support - POSIX operation support for gridftp - cleaner plugin API - new documentation - I hope that you will enjoy gfal 2.0 :) * Sat Jun 23 2012 Adrien Devresse - 2.0.0-0.10.2012062323snap - Snapshot of the 0.10 version for testing * Fri Jun 15 2012 Adrien Devresse - 2.0.0-0.9.2012061511snap - Snapshot of the 0.9 version for testing * Fri May 04 2012 Adrien Devresse - 2.0.0-0.8.2012052812snap - Snapshot of the 0.8 version for testing. * Fri May 04 2012 Adrien Devresse - 2.0.0-0.7.2012050413snap - Improve gridftp plugin with severals other calls - Correct dcap/rfio/srm bugs related to error report - big work on the documentation * Mon Dec 12 2011 Adrien Devresse - 2.0.0-0.6.2012041515snap - Initial gfal 2.0 preview release gfal2-2.3.0/cmake/0000755000175000017500000000000012164561703013134 5ustar ellertellertgfal2-2.3.0/cmake/modules/0000755000175000017500000000000012164561703014604 5ustar ellertellertgfal2-2.3.0/cmake/modules/MacroCopyFile.cmake0000644000175000017500000000171412164561703020305 0ustar ellertellert# - macro_copy_file(_src _dst) # Copies a file to ${_dst} only if ${_src} is different (newer) than ${_dst} # # Example: # macro_copy_file(${CMAKE_CURRENT_SOURCE_DIR}/icon.png ${CMAKE_CURRENT_BINARY_DIR}/.) # Copies file icon.png to ${CMAKE_CURRENT_BINARY_DIR} directory # # Copyright (c) 2006-2007 Wengo # Copyright (c) 2006-2008 Andreas Schneider # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING file. macro(copy_files GLOBPAT DESTINATION) file(GLOB COPY_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${GLOBPAT}) add_custom_target(copy ALL COMMENT "Copying files: ${GLOBPAT}") foreach(FILENAME ${COPY_FILES}) set(SRC "${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME}") set(DST "${DESTINATION}/${FILENAME}") add_custom_command( TARGET copy COMMAND ${CMAKE_COMMAND} -E copy ${SRC} ${DST} ) endforeach(FILENAME) endmacro(copy_files) gfal2-2.3.0/cmake/modules/DefineInstallationPaths.cmake0000644000175000017500000001013512164561703022362 0ustar ellertellertif (UNIX) IF (NOT APPLICATION_NAME) MESSAGE(STATUS "${PROJECT_NAME} is used as APPLICATION_NAME") SET(APPLICATION_NAME ${PROJECT_NAME}) ENDIF (NOT APPLICATION_NAME) # Suffix for Linux IF (CMAKE_SIZEOF_VOID_P EQUAL 4) SET(LIB_SUFFIX "" CACHE STRING "Suffix of the lib") SET (PKG_ARCH "i386") ELSE (CMAKE_SIZEOF_VOID_P EQUAL 4) SET(LIB_SUFFIX "64" CACHE STRING "Suffix of the lib") SET (PKG_ARCH "x86_64") ENDIF (CMAKE_SIZEOF_VOID_P EQUAL 4) SET(EXEC_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Base directory for executables and libraries" ) SET(SHARE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/share" CACHE PATH "Base directory for files which go to share/" ) SET(DATA_INSTALL_PREFIX "${SHARE_INSTALL_PREFIX}/${APPLICATION_NAME}" CACHE PATH "The parent directory where applications can install their data") # The following are directories where stuff will be installed to SET(BIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/bin" CACHE PATH "The ${APPLICATION_NAME} binary install dir (default prefix/bin)" ) SET(SBIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/sbin" CACHE PATH "The ${APPLICATION_NAME} sbin install dir (default prefix/sbin)" ) SET(LIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is prefix/lib)" ) SET(LIBEXEC_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/libexec" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is prefix/libexec)" ) SET(PKGCONFIG_FILES_DIR "${LIB_INSTALL_DIR}/pkgconfig/" CACHE PATH "subdirectory relative to the install prefix where pkgconfig files (.pc) will be installed" ) SET(PLUGIN_INSTALL_DIR "${LIB_INSTALL_DIR}/${APPLICATION_NAME}-plugins/" CACHE PATH "The subdirectory relative to the install prefix where plugins will be installed (default is prefix/lib/${APPLICATION_NAME})" ) SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The subdirectory to the header prefix (default prefix/include)" ) SET(DATA_INSTALL_DIR "${DATA_INSTALL_PREFIX}" CACHE PATH "The parent directory where applications can install their data (default prefix/share/${APPLICATION_NAME})" ) SET(DOC_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/doc/${APPLICATION_NAME}" CACHE PATH "The parent directory where applications can install their documentation (default prefix/share/doc/${APPLICATION_NAME})" ) SET(HTML_INSTALL_DIR "${DATA_INSTALL_PREFIX}/doc/HTML" CACHE PATH "The HTML install dir for documentation (default data/doc/html)" ) SET(ICON_INSTALL_DIR "${DATA_INSTALL_PREFIX}/icons" CACHE PATH "The icon install dir (default data/icons/)" ) SET(SOUND_INSTALL_DIR "${DATA_INSTALL_PREFIX}/sounds" CACHE PATH "The install dir for sound files (default data/sounds)" ) SET(LOCALE_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/locale" CACHE PATH "The install dir for translations (default prefix/share/locale)" ) SET(XDG_APPS_DIR "${SHARE_INSTALL_PREFIX}/applications/" CACHE PATH "The XDG apps dir" ) SET(XDG_DIRECTORY_DIR "${SHARE_INSTALL_PREFIX}/desktop-directories" CACHE PATH "The XDG directory" ) SET(SYSCONF_INSTALL_DIR "/etc" CACHE PATH "The ${APPLICATION_NAME} sysconfig install dir /etc)" ) SET(MAN_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/man" CACHE PATH "The ${APPLICATION_NAME} man install dir (default prefix/man)" ) SET(INFO_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/info" CACHE PATH "The ${APPLICATION_NAME} info install dir (default prefix/info)" ) endif (UNIX) if (WIN32) # Same same set(BIN_INSTALL_DIR "." CACHE PATH "-") set(SBIN_INSTALL_DIR "." CACHE PATH "-") set(LIB_INSTALL_DIR "lib" CACHE PATH "-") set(INCLUDE_INSTALL_DIR "include" CACHE PATH "-") set(PLUGIN_INSTALL_DIR "plugins" CACHE PATH "-") set(HTML_INSTALL_DIR "doc/HTML" CACHE PATH "-") set(ICON_INSTALL_DIR "." CACHE PATH "-") set(SOUND_INSTALL_DIR "." CACHE PATH "-") set(LOCALE_INSTALL_DIR "lang" CACHE PATH "-") endif (WIN32) gfal2-2.3.0/cmake/modules/FindDPM.cmake0000644000175000017500000000434512164561703017035 0ustar ellertellert# # This module detects if dpm is installed and determines where the # include files and libraries are. # # This code sets the following variables: # # DPM_LIBRARIES = full path to the dpm libraries # DPM_INCLUDE_DIR = include dir to be used when using the dpm library # DPM_FOUND = set to true if dpm was found successfully # # DPM_LOCATION # setting this enables search for dpm libraries / headers in this location # ----------------------------------------------------- # DPM Libraries # ----------------------------------------------------- find_library(DPM_LIBRARIES NAMES dpm HINTS ${DPM_LOCATION}/lib ${DPM_LOCATION}/lib64 ${DPM_LOCATION}/lib32 DOC "The main dpm library" ) # ----------------------------------------------------- # LCGDM Libraries # ----------------------------------------------------- find_library(LCGDM_LIBRARIES NAMES lcgdm HINTS ${DPM_LOCATION}/lib ${DPM_LOCATION}/lib64 ${DPM_LOCATION}/lib32 DOC "The main lcgdm library" ) # ----------------------------------------------------- # DPM Include Directories # ----------------------------------------------------- find_path(DPM_INCLUDE_DIR NAMES dpm/dpm_api.h HINTS ${DPM_LOCATION} ${DPM_LOCATION}/include ${DPM_LOCATION}/include/* DOC "The dpm include directory" ) if(DPM_INCLUDE_DIR) message(STATUS "dpm includes found in ${DPM_INCLUDE_DIR}") endif() find_path(LCGDM_INCLUDE_DIR NAMES Cinit.h HINTS ${LCGDM_LOCATION} ${LCGDM_LOCATION}/include ${LCGDM_LOCATION}/include/lcgdm /usr/include/lcgdm ${LCGDM_LOCATION}/include/dpm /usr/include/dpm /usr/include/lfc DOC "The LCGDM include directory" ) if(LCGDM_INCLUDE_DIR) message(STATUS "lcgdm includes found in ${LCGDM_INCLUDE_DIR}") endif() # ----------------------------------------------------- # handle the QUIETLY and REQUIRED arguments and set DPM_FOUND to TRUE if # all listed variables are TRUE # ----------------------------------------------------- include(FindPackageHandleStandardArgs) find_package_handle_standard_args(dpm DEFAULT_MSG DPM_LIBRARIES DPM_INCLUDE_DIR) mark_as_advanced(DPM_INCLUDE_DIR DPM_LIBRARIES) find_package_handle_standard_args(lcgdm DEFAULT_MSG LCGDM_LIBRARIES LCGDM_INCLUDE_DIR) mark_as_advanced(LCGDM_INCLUDE_DIR LCGDM_LIBRARIES) gfal2-2.3.0/cmake/modules/CMakeStringHelpers.cmake0000644000175000017500000000237412164561703021306 0ustar ellertellert##convenience function for string manipulation function(replace_occurence output input pattern replacer) string(REGEX REPLACE ${pattern} ${replacer} tmp_str ${input}) set(${output} ${tmp_str} PARENT_SCOPE) endfunction(replace_occurence output input pattern replacer) function(replace_all_occurence) PARSE_ARGUMENTS(REPLACE_ALL "LIST_PATTERN;LIST_REPLACER" "" ${ARGN} ) LIST(APPEND list_pattern ${REPLACE_ALL_LIST_PATTERN}) LIST(APPEND list_replacer ${REPLACE_ALL_LIST_REPLACER}) LIST(LENGTH list_pattern list_size ) LIST(LENGTH list_replacer list2_size ) math(EXPR list_size ${list_size}-1) LIST(GET REPLACE_ALL_DEFAULT_ARGS 0 output_var) LIST(GET REPLACE_ALL_DEFAULT_ARGS 1 intput_content ) SET(tmp_str ${intput_content}) SET(tmp_str2 "") foreach(i RANGE ${list_size}) list(GET list_pattern ${i} current_pattern ) list(GET list_replacer ${i} current_replacer ) replace_occurence(tmp_str2 ${tmp_str} ${current_pattern} ${current_replacer} ) SET(tmp_str ${tmp_str2}) endforeach(i RANGE ${list_size}) SET(${output_var} ${tmp_str} PARENT_SCOPE) endfunction(replace_all_occurence) function(STRING_APPEND var_name content) SET(${var_name} "${${var_name}}${content}" PARENT_SCOPE) endfunction(STRING_APPEND var_name content) gfal2-2.3.0/cmake/modules/MacroAddDoxygen.cmake0000644000175000017500000000106112164561703020614 0ustar ellertellert## ## Doxygen macro, allow Doxygen generation from cmake ## do a ""make doc" for the generation macro(addDoxyGeneration DOXYFILE_LOCATION) find_package(Doxygen) if(DOXYGEN_FOUND) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${DOXYFILE_LOCATION} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) add_custom_target(doc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generating API documentation with Doxygen" VERBATIM ) endif(DOXYGEN_FOUND) endmacro(addDoxyGeneration DOXYFILE_LOCATION) gfal2-2.3.0/cmake/modules/CMakeMacroParseArguments.cmake0000644000175000017500000000206512164561703022434 0ustar ellertellert MACRO(PARSE_ARGUMENTS prefix arg_names option_names) SET(DEFAULT_ARGS) FOREACH(arg_name ${arg_names}) SET(${prefix}_${arg_name}) ENDFOREACH(arg_name) FOREACH(option ${option_names}) SET(${prefix}_${option} FALSE) ENDFOREACH(option) SET(current_arg_name DEFAULT_ARGS) SET(current_arg_list) FOREACH(arg ${ARGN}) SET(larg_names ${arg_names}) LIST(FIND larg_names "${arg}" is_arg_name) IF (is_arg_name GREATER -1) SET(${prefix}_${current_arg_name} ${current_arg_list}) SET(current_arg_name ${arg}) SET(current_arg_list) ELSE (is_arg_name GREATER -1) SET(loption_names ${option_names}) LIST(FIND loption_names "${arg}" is_option) IF (is_option GREATER -1) SET(${prefix}_${arg} TRUE) ELSE (is_option GREATER -1) SET(current_arg_list ${current_arg_list} ${arg}) ENDIF (is_option GREATER -1) ENDIF (is_arg_name GREATER -1) ENDFOREACH(arg) SET(${prefix}_${current_arg_name} ${current_arg_list}) ENDMACRO(PARSE_ARGUMENTS) gfal2-2.3.0/cmake/modules/CMakeGeneratePkgConfig.cmake0000644000175000017500000000772312164561703022042 0ustar ellertellert# @title cmake macro for pkgconfig files generation # @brief generate a .pc package config file with a given name # @author Adrien Devresse include(DefineInstallationPaths REQUIRED) include(CMakeMacroParseArguments REQUIRED) include(CMakeStringHelpers REQUIRED) SET(CMAKE_PKGCONFIG_TEMPLATE "prefix=@PREFIX@ exec_prefix=@PREFIX@ libdir=@LIBDIR_VAR includedir=@INCLUDE_VAR@ Name: @NAME_PROJECT@ Description: @DESCRIPTION_PROJECT@ Version: @VERSION_PROJECT@ URL: @URL_PROJECT@ Requires: @REQUIRES_PROJECT@ Conflicts: @CONFLICTS_PROJECT@ Libs: @LIBS_PROJECT@ Libs.private: @LIBS_PRIVATE_PROJECT@ Cflags: @CFLAGS_PROJECT@ ") SET(CMAKE_PKGCONFIG_TEMPLATE_BASE " prefix=@PREFIX@ exec_prefix= \\\${prefix} libdir= @LIBDIR_VAR@ includedir=@INCLUDE_VAR@ Name: @NAME_PROJECT@ Description: @DESCRIPTION_PROJECT@ Version: @VERSION_PROJECT@ Requires: @REQUIRES_PROJECT@ Libs: @LIBS_PROJECT@ Cflags: @CFLAGS_PROJECT@ " ) LIST(APPEND CMAKE_PKGCONFIG_TEMPLATE_BASE_PATTERN "@PREFIX@" "@LIBDIR_VAR@" "@INCLUDE_VAR@" "@NAME_PROJECT@" "@DESCRIPTION_PROJECT@" "@VERSION_PROJECT@" "@REQUIRES_PROJECT@" "@LIBS_PROJECT@" "@CFLAGS_PROJECT@") # main function to use # FORMAT : add_PkgConfigFile_for_Library("string_filename.pc" target_library # [DESCRIPTION] "description of the pkgconfig files" # [HEADER_DIRS] dir1, dir2 # [REQUIRES] req1 req 2 ) # list of dir to include in $prefix/include/, ex : $prefix/include/dir1 # the pc file is produced in the ${CMAKE_CURRENT_BINARY_DIR} directory function(add_PkgConfigFile_for_Library) PARSE_ARGUMENTS(PKGCONFIGFILE "HEADER_DIRS;DESCRIPTION;REQUIRES;CFLAGS" "" ${ARGN} ) LIST(GET PKGCONFIGFILE_DEFAULT_ARGS 0 pkgconfig_filename) LIST(GET PKGCONFIGFILE_DEFAULT_ARGS 1 lib_target) LIST(GET PKGCONFIGFILE_DESCRIPTION 0 description) get_target_property(library_name ${lib_target} OUTPUT_NAME) get_target_property(library_version ${lib_target} VERSION) set(pkgconfig_prefix "${CMAKE_INSTALL_PREFIX}") set(pkgconfig_libdir_var "\\\${prefix}/lib${LIB_SUFFIX}") set(pkgconfig_include_var "\\\${prefix}/include") set(pkgconfig_linkflags "-l${library_name} -L\\\${libdir}") set(pkgconfig_name "${pkgconfig_filename}") set(pkgconfig_version "${library_version}") set(pkgconfig_description "pkgconfig file for ${library_name}") set(pkgconfig_requires " ") set(pkgconfig_cflags "") IF(PKGCONFIGFILE_REQUIRES) FOREACH(req ${PKGCONFIGFILE_REQUIRES}) set(pkgconfig_requires "${pkgconfig_requires} ${req}") ENDFOREACH(req PKGCONFIGFILE_REQUIRES) ENDIF(PKGCONFIGFILE_REQUIRES) IF(PKGCONFIGFILE_CFLAGS) FOREACH(req ${PKGCONFIGFILE_CFLAGS}) set(pkgconfig_cflags "${pkgconfig_cflags} ${req}") ENDFOREACH(req PKGCONFIGFILE_CFLAGS) ENDIF(PKGCONFIGFILE_CFLAGS) IF(PKGCONFIGFILE_HEADER_DIRS) FOREACH(dir ${PKGCONFIGFILE_HEADER_DIRS}) set(pkgconfig_includedir "${pkgconfig_includedir} -I\\\${includedir}/${dir}") ENDFOREACH(dir PKGCONFIGFILE_HEADER_DIRS) ELSE(PKGCONFIGFILE_HEADER_DIRS) set(pkgconfig_includedir " -I\\\${includedir}") ENDIF(PKGCONFIGFILE_HEADER_DIRS) IF(description) set(pkgconfig_description "${description}") ENDIF(description) set(pkgconfig_cflags "${pkgconfig_cflags} ${pkgconfig_includedir} ") LIST(APPEND pkgconfig_list_var ${pkgconfig_prefix} ${pkgconfig_libdir_var} ${pkgconfig_include_var} ${pkgconfig_name} ${pkgconfig_description} ${pkgconfig_version} ${pkgconfig_requires} ${pkgconfig_linkflags} ${pkgconfig_cflags}) replace_all_occurence(pc_file_content ${CMAKE_PKGCONFIG_TEMPLATE_BASE} LIST_PATTERN ${CMAKE_PKGCONFIG_TEMPLATE_BASE_PATTERN} LIST_REPLACER ${pkgconfig_list_var}) SET(filename "${CMAKE_CURRENT_BINARY_DIR}/${pkgconfig_filename}") FILE(WRITE ${filename} "${pc_file_content}" ) message(STATUS "generate pkgconfig file for ${lib_target} under ${filename}") endfunction(add_PkgConfigFile_for_Library) gfal2-2.3.0/cmake/modules/FindLFC.cmake0000644000175000017500000000273112164561703017016 0ustar ellertellert# # This module detects if LFC is installed and determines where the # include files and libraries are. # # This code sets the following variables: # # LFC_LIBRARIES = full path to the LFC libraries # LFC_INCLUDE_DIR = include dir to be used when using the LFC library # LFC_FOUND = set to true if LFC was found successfully # # LFC_LOCATION # setting this enables search for LFC libraries / headers in this location # ----------------------------------------------------- # LFC Libraries # ----------------------------------------------------- find_library(LFC_LIBRARIES NAMES lfc lcgdm HINTS ${LFC_LOCATION}/lib ${LFC_LOCATION}/lib64 ${LFC_LOCATION}/lib32 DOC "The main LFC library" ) # ----------------------------------------------------- # LFC Include Directories # ----------------------------------------------------- find_path(LFC_INCLUDE_DIR NAMES lfc/lfc_api.h HINTS ${LFC_LOCATION} ${LFC_LOCATION}/include ${LFC_LOCATION}/include/* DOC "The LFC include directory" ) if(LFC_INCLUDE_DIR) message(STATUS "LFC includes found in ${LFC_INCLUDE_DIR}") endif() # ----------------------------------------------------- # handle the QUIETLY and REQUIRED arguments and set LFC_FOUND to TRUE if # all listed variables are TRUE # ----------------------------------------------------- include(FindPackageHandleStandardArgs) find_package_handle_standard_args(LFC DEFAULT_MSG LFC_LIBRARIES LFC_INCLUDE_DIR) mark_as_advanced(LFC_INCLUDE_DIR LFC_LIBRARIES) gfal2-2.3.0/cmake/modules/FindDCAP.cmake0000644000175000017500000000305212164561703017116 0ustar ellertellert# # This module detects if DCAP is installed and determines where the # include files and libraries are. # # This code sets the following variables: # # DCAP_LIBRARIES = full path to the DCAP libraries # DCAP_INCLUDE_DIR = include dir to be used when using the DCAP library # DCAP_FOUND = set to true if DCAP was found successfully # # DCAP_LOCATION # setting this enables search for DCAP libraries / headers in this location # ----------------------------------------------------- # DCAP Libraries # ----------------------------------------------------- find_library(DCAP_LIBRARIES NAMES dcap HINTS ${DCAP_LOCATION}/lib ${DCAP_LOCATION}/lib64 ${DCAP_LOCATION}/lib32 ${STAGE_DIR}/lib ${STAGE_DIR}/lib64 DOC "The main DCAP library" ) # ----------------------------------------------------- # DCAP Include Directories # ----------------------------------------------------- find_path(DCAP_INCLUDE_DIR NAMES dcap.h HINTS ${DCAP_LOCATION} ${DCAP_LOCATION}/include ${DCAP_LOCATION}/include/* ${STAGE_DIR}/include DOC "The DCAP include directory" ) if(DCAP_INCLUDE_DIR) message(STATUS "DCAP includes found in ${DCAP_INCLUDE_DIR}") endif() # ----------------------------------------------------- # handle the QUIETLY and REQUIRED arguments and set DCAP_FOUND to TRUE if # all listed variables are TRUE # ----------------------------------------------------- include(FindPackageHandleStandardArgs) find_package_handle_standard_args(DCAP DEFAULT_MSG DCAP_LIBRARIES DCAP_INCLUDE_DIR) mark_as_advanced(DCAP_INCLUDE_DIR DCAP_LIBRARIES) gfal2-2.3.0/cmake/modules/ReleaseDebugAutoFlags.cmake0000644000175000017500000000062012164561703021741 0ustar ellertellert## debug / release autoManagement set(CMAKE_C_FLAGS_RELEASE "-O2") set(CMAKE_C_FLAGS_DEBUG "-g3 -O0 -ggdb -Wall -fstack-protector-all") set(CMAKE_CXX_FLAGS_RELEASE "-O2") set(CMAKE_CXX_FLAGS_DEBUG "-g3 -O0 -ggdb -Wall -fstack-protector-all") set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -Wall -fstack-protector-all") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -Wall -fstack-protector-all") gfal2-2.3.0/cmake/modules/FindgSOAP.cmake0000644000175000017500000000607412164561703017327 0ustar ellertellert# # This module detects if gsoap is installed and determines where the # include files and libraries are. # # This code sets the following variables: # # GSOAP_LIBRARIES = full path to the gsoap libraries # GSOAP_SSL_LIBRARIES = full path to the gsoap ssl libraries # GSOAP_INCLUDE_DIR = include dir to be used when using the gsoap library # GSOAP_WSDL2H = wsdl2h binary # GSOAP_SOAPCPP2 = soapcpp2 binary # GSOAP_FOUND = set to true if gsoap was found successfully # # GSOAP_LOCATION # setting this enables search for gsoap libraries / headers in this location # ----------------------------------------------------- # GSOAP Libraries # ----------------------------------------------------- find_library(GSOAP_LIBRARIES NAMES gsoap HINTS ${GSOAP_LOCATION}/lib ${GSOAP_LOCATION}/lib64 ${GSOAP_LOCATION}/lib32 DOC "The main gsoap library" ) find_library(GSOAP_SSL_LIBRARIES NAMES gsoapssl HINTS ${GSOAP_LOCATION}/lib ${GSOAP_LOCATION}/lib64 ${GSOAP_LOCATION}/lib32 DOC "The ssl gsoap library" ) # ----------------------------------------------------- # GSOAP Include Directories # ----------------------------------------------------- find_path(GSOAP_INCLUDE_DIR NAMES stdsoap2.h HINTS ${GSOAP_LOCATION} ${GSOAP_LOCATION}/include ${GSOAP_LOCATION}/include/* DOC "The gsoap include directory" ) # ----------------------------------------------------- # GSOAP Binaries # ----------------------------------------------------- find_program(GSOAP_WSDL2H NAMES wsdl2h HINTS ${GSOAP_LOCATION}/bin DOC "The gsoap bin directory" ) find_program(GSOAP_SOAPCPP2 NAMES soapcpp2 HINTS ${GSOAP_LOCATION}/bin DOC "The gsoap bin directory" ) # ----------------------------------------------------- # GSOAP_276_COMPAT_FLAGS and GSOAPVERSION # try to determine the flagfor the 2.7.6 compatiblity, break with 2.7.13 and re-break with 2.7.16 # ---------------------------------------------------- message(STATUS " - wsdlh : ${GSOAP_WSDL2H}") message(STATUS " - SOAPCPP2 : ${GSOAP_SOAPCPP2}") execute_process(COMMAND ${GSOAP_SOAPCPP2} "-v" OUTPUT_VARIABLE GSOAP_STRING_VERSION ERROR_VARIABLE GSOAP_STRING_VERSION ) string(REGEX MATCH "[0-9]*\\.[0-9]*\\.[0-9]*" GSOAP_VERSION ${GSOAP_STRING_VERSION}) message(STATUS " - GSOAP VERSION : ${GSOAP_VERSION}") if( "${GSOAP_VERSION}" VERSION_LESS "2.7.6") set(GSOAP_276_COMPAT_FLAGS "") elseif ( "${GSOAP_VERSION}" VERSION_LESS "2.7.14") set(GSOAP_276_COMPAT_FLAGS "-z") else ( "${GSOAP_VERSION}" VERSION_LESS "2.7.14") set(GSOAP_276_COMPAT_FLAGS "-z1 -z2") endif ( "${GSOAP_VERSION}" VERSION_LESS "2.7.6") # ----------------------------------------------------- # handle the QUIETLY and REQUIRED arguments and set GSOAP_FOUND to TRUE if # all listed variables are TRUE # ----------------------------------------------------- include(FindPackageHandleStandardArgs) find_package_handle_standard_args(gsoap DEFAULT_MSG GSOAP_LIBRARIES GSOAP_INCLUDE_DIR GSOAP_WSDL2H GSOAP_SOAPCPP2) mark_as_advanced(GSOAP_INCLUDE_DIR GSOAP_LIBRARIES GSOAP_WSDL2H GSOAP_SOAPCPP2) gfal2-2.3.0/cmake/modules/FindGRIDFTP_IFCE.cmake0000644000175000017500000000331012164561703020271 0ustar ellertellert# # This module detects if GRIDFTP_IFCE is installed and determines where the # include files and libraries are. # # This code sets the following variables: # # GRIDFTP_IFCE_LIBRARIES = full path to the dpm libraries # GRIDFTP_IFCE_INCLUDE_DIR = include dir to be used when using the dpm library # GRIDFTP_IFCE_FOUND = set to true if dpm was found successfully # # GRIDFTP_IFCE_LOCATION # setting this enables search for dpm libraries / headers in this location # ----------------------------------------------------- # DPM Libraries # ----------------------------------------------------- find_library(GRIDFTP_IFCE_LIBRARIES NAMES gridftp_ifce HINTS ${GRIDFTP_IFCE_LOCATION}/lib ${GRIDFTP_IFCE_LOCATION}/lib64 ${GRIDFTP_IFCE_LOCATION}/lib32 DOC "The main gridftp_ifce library" ) # ----------------------------------------------------- # GRIDFTP_IFCE Include Directories # ----------------------------------------------------- find_path(GRIDFTP_IFCE_INCLUDE_DIR NAMES gridftp-ifce.h HINTS ${GRIDFTP_IFCE_LOCATION} ${GRIDFTP_IFCE_LOCATION}/include ${GRIDFTP_IFCE_LOCATION}/include/* DOC "The gridftp-ifce.h include directory" ) if(GRIDFTP_IFCE_INCLUDE_DIR) message(STATUS "gridftp_ifce includes found in ${GRIDFTP_IFCE_INCLUDE_DIR}") endif() # ----------------------------------------------------- # handle the QUIETLY and REQUIRED arguments and set GRIDFTP_IFCE_FOUND to TRUE if # all listed variables are TRUE # ----------------------------------------------------- include(FindPackageHandleStandardArgs) find_package_handle_standard_args(gridftp_ifce DEFAULT_MSG GRIDFTP_IFCE_LIBRARIES GRIDFTP_IFCE_INCLUDE_DIR) mark_as_advanced(GRIDFTP_IFCE_INCLUDE_DIR GRIDFTP_IFCE_LIBRARIES) gfal2-2.3.0/cmake/modules/FindCGSI_GSOAP.cmake0000644000175000017500000000342012164561703020064 0ustar ellertellert# # This module detects if CGSI_GSOAP is installed and determines where the # include files and libraries are. # # This code sets the following variables: # # CGSI_GSOAP_LIBRARIES = full path to the CGSI_GSOAP libraries # CGSI_GSOAP_INCLUDE_DIR = include dir to be used when using the CGSI_GSOAP library # CGSI_GSOAP_FOUND = set to true if CGSI_GSOAP was found successfully # # CGSI_GSOAP_LOCATION # setting this enables search for CGSI_GSOAP libraries / headers in this location # ----------------------------------------------------- # CGSI_GSOAP Libraries # ----------------------------------------------------- find_library(CGSI_GSOAP_LIBRARIES NAMES cgsi_plugin cgsi_plugin_gsoap_2.7 HINTS ${CGSI_GSOAP_LOCATION}/lib ${CGSI_GSOAP_LOCATION}/lib64 ${CGSI_GSOAP_LOCATION}/lib32 ${STAGE_DIR}/lib ${STAGE_DIR}/lib64 DOC "The main CGSI_GSOAP library" ) # ----------------------------------------------------- # CGSI_GSOAP Include Directories # ----------------------------------------------------- find_path(CGSI_GSOAP_INCLUDE_DIR NAMES cgsi_plugin.h HINTS ${CGSI_GSOAP_LOCATION} ${CGSI_GSOAP_LOCATION}/include ${CGSI_GSOAP_LOCATION}/include/* ${STAGE_DIR}/include ${STAGE_DIR}/include DOC "The CGSI_GSOAP include directory" ) if(CGSI_GSOAP_INCLUDE_DIR) message(STATUS "CGSI_GSOAP includes found in ${CGSI_GSOAP_INCLUDE_DIR}") endif() # ----------------------------------------------------- # handle the QUIETLY and REQUIRED arguments and set CGSI_GSOAP_FOUND to TRUE if # all listed variables are TRUE # ----------------------------------------------------- include(FindPackageHandleStandardArgs) find_package_handle_standard_args(CGSI_GSOAP DEFAULT_MSG CGSI_GSOAP_LIBRARIES CGSI_GSOAP_INCLUDE_DIR) mark_as_advanced(CGSI_GSOAP_INCLUDE_DIR CGSI_GSOAP_LIBRARIES) gfal2-2.3.0/setup_test_env.sh0000755000175000017500000000022412164561703015460 0ustar ellertellert#!/bin/bash export GFAL_PLUGIN_DIR=`pwd`/plugins/ export GFAL_CONFIG_DIR=`pwd`/test/conf_test/ export LD_LIBRARY_PATH=`pwd`/src:$LD_LIBRARY_PATH $@ gfal2-2.3.0/setup_test_env_var.sh0000755000175000017500000000035612164561703016336 0ustar ellertellert#!/bin/bash export LFC_HOST=cvitblfc1.cern.ch export LCG_GFAL_INFOSYS=certtb-bdii-top.cern.ch:2170 export GFAL_PLUGIN_DIR=`pwd`/plugins/ export GFAL_CONFIG_DIR=`pwd`/../dist/etc/gfal2/ export LD_LIBRARY_PATH=`pwd`/src:$LD_LIBRARY_PATH $@ gfal2-2.3.0/DESCRIPTION0000644000175000017500000000106012164561703013557 0ustar ellertellertThe Grid File Access Library 2.0 that offers a POSIX interface to the distributed files system supported by WLCG. Official documentation : https://svnweb.cern.ch/trac/lcgutil/wiki/gfal2 Differents file systems are supported by a collections of GFAL 2.0's plugins, this is a non complete list : - LFC ( Logical File catalog) with lfn:// url - SRM ( Storage Resource Manager) with srm:// - RFIO ( remote file I/O) with rfio:// - DCAP ( remote ftp for Dcache ) with gsidcap:// - HTTP/Webdav with cluster, third party copy and client side credential support. gfal2-2.3.0/testing/0000755000175000017500000000000012204612562013524 5ustar ellertellertgfal2-2.3.0/testing/SENT.log0000644000175000017500000004670412164561703015020 0ustar ellertellertPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1148 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 0775634b-2291-4dbe-ac94-5f0d4ff005e2POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 714 Connection: close SOAPAction: "PutDone" 0775634b-2291-4dbe-ac94-5f0d4ff005e2srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1107 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 15b958bd-ffb2-45a9-a001-27a3648ad7e3POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 734 Connection: close SOAPAction: "ReleaseFiles" 15b958bd-ffb2-45a9-a001-27a3648ad7e3srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1148 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 804ffc99-b590-410e-993a-05511f1bb202POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1148 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" c997f747-ae8f-4903-beda-c69c972b4612POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1149 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test10102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" e63b7bc6-7427-41d4-893c-f16ec3299ef9POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 715 Connection: close SOAPAction: "PutDone" e63b7bc6-7427-41d4-893c-f16ec3299ef9srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test10POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1108 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test10PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 4a5f612d-efe5-4411-8b2a-12f329c2c85aPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 735 Connection: close SOAPAction: "ReleaseFiles" 4a5f612d-efe5-4411-8b2a-12f329c2c85asrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test10gfal2-2.3.0/testing/SConscript0000644000175000017500000000217212164561703015545 0ustar ellertellert#!/usr/bin/python ## # Example builind script # @author : Devresse Adrien # @version : v0.2 # @date 21/03/2011 Import('*') # import SConstruct exported var import os import random import shutil import commands src = ['example/gfal_testrw.c'] src2 = ['example/gfal_testread.c'] src3 = ['example/gfal_testdir.c'] src4 = ['example/gfal_testchmod.c'] src5 = ['example/gfal_testcreatedir.c'] src6 = ['example/gfal_teststat.c'] src7 = ['example/gfal_testget.c'] old_suffix="" env_testing = env.Clone() if ARGUMENTS.get('old_mode','0') =='yes': env_testing.Append(LIBS="gfal") env_testing.Append(CFLAGS="-D_GFAL_1_X") env_testing["CPPPATH"] = old_gfal_header old_suffix="_old" else: env_testing.Append(LIBS="gfal2") env_testing.Program("build/gfal_testrw"+old_suffix, src) env_testing.Program("build/gfal_testread"+old_suffix, src2) env_testing.Program("build/gfal_testdir"+old_suffix, src3) env_testing.Program("build/gfal_testchmod"+old_suffix, src4) env_testing.Program("build/gfal_testcreatedir"+old_suffix, src5) env_testing.Program("build/gfal_teststat"+old_suffix, src6) env_testing.Program("build/gfal_testget"+old_suffix, src7) gfal2-2.3.0/testing/build/0000755000175000017500000000000012204612572014624 5ustar ellertellertgfal2-2.3.0/testing/build/SENT.log0000644000175000017500000036507012164561703016117 0ustar ellertellertPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1026 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilePOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" bb64cd71-4ab0-45d3-91d2-ce621a18b19aPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 720 Connection: close SOAPAction: "PutDone" bb64cd71-4ab0-45d3-91d2-ce621a18b19asrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 79d9de64-633a-4dc2-b39d-c848556d36f8POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" 79d9de64-633a-4dc2-b39d-c848556d36f8srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 94381ca1-742b-4542-b838-70e6d48e7e77POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 072ef962-b892-49a2-87b1-7f2ac43911e5POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" dad72501-a80d-4a58-83c1-e769a754169bPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" e4f62cf8-c3cc-4479-b951-97ec5577ec87POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 25907466-abdc-49bd-af54-ca8f286c765bPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 0cb22f7a-91d5-4bd6-95e5-3c7f22701f6bPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 0cb22f7a-91d5-4bd6-95e5-3c7f22701f6bPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 0cb22f7a-91d5-4bd6-95e5-3c7f22701f6bPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 720 Connection: close SOAPAction: "PutDone" 0cb22f7a-91d5-4bd6-95e5-3c7f22701f6bsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 713404ae-bc20-4a3d-8358-a1263746570aPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 713404ae-bc20-4a3d-8358-a1263746570aPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" 713404ae-bc20-4a3d-8358-a1263746570asrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" a5922daa-38b5-479f-9a45-013515c57dafPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" a5922daa-38b5-479f-9a45-013515c57dafPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" a5922daa-38b5-479f-9a45-013515c57dafPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 720 Connection: close SOAPAction: "PutDone" a5922daa-38b5-479f-9a45-013515c57dafsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 230fa4c5-486f-4809-a2eb-37fdeabc2c90POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 230fa4c5-486f-4809-a2eb-37fdeabc2c90POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" 230fa4c5-486f-4809-a2eb-37fdeabc2c90srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" aab680a1-0c2a-4756-b5e4-e2f2f1c42654POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" aab680a1-0c2a-4756-b5e4-e2f2f1c42654POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" aab680a1-0c2a-4756-b5e4-e2f2f1c42654POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 720 Connection: close SOAPAction: "PutDone" aab680a1-0c2a-4756-b5e4-e2f2f1c42654srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 8c9fa3ac-45a6-478f-99c3-19b621547976POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 8c9fa3ac-45a6-478f-99c3-19b621547976POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" 8c9fa3ac-45a6-478f-99c3-19b621547976srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 893f3435-1ddb-436a-a1f9-d6a8cec33102POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 893f3435-1ddb-436a-a1f9-d6a8cec33102POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 720 Connection: close SOAPAction: "PutDone" 893f3435-1ddb-436a-a1f9-d6a8cec33102srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 236f4a23-a4f4-4620-8e10-9b027c82cb72POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" 236f4a23-a4f4-4620-8e10-9b027c82cb72srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" f75b8cb7-78c0-440c-ba28-f2a74679d3e6POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" f75b8cb7-78c0-440c-ba28-f2a74679d3e6POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" f75b8cb7-78c0-440c-ba28-f2a74679d3e6POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 720 Connection: close SOAPAction: "PutDone" f75b8cb7-78c0-440c-ba28-f2a74679d3e6srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" b6fab15c-aa85-482f-a634-c911b94971faPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" b6fab15c-aa85-482f-a634-c911b94971faPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" b6fab15c-aa85-482f-a634-c911b94971fasrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" c5ace522-9956-40f9-acf0-a4bf323ad3aePOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 720 Connection: close SOAPAction: "PutDone" c5ace522-9956-40f9-acf0-a4bf323ad3aesrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 17374c90-dffa-4b4b-ac2a-3782cfb3ffd4POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 17374c90-dffa-4b4b-ac2a-3782cfb3ffd4POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" 17374c90-dffa-4b4b-ac2a-3782cfb3ffd4srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 29a93f55-4deb-47d7-bc03-bcbc194a1638POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 983c132d-e09e-4d16-aa8c-c43c584f5aa9POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 983c132d-e09e-4d16-aa8c-c43c584f5aa9POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" 983c132d-e09e-4d16-aa8c-c43c584f5aa9srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 13c3506d-d498-4ea4-9848-6be12e11c0bfPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 720 Connection: close SOAPAction: "PutDone" 13c3506d-d498-4ea4-9848-6be12e11c0bfsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" f8dc3bd9-7ae7-4494-8d98-01a0a95202aaPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" f8dc3bd9-7ae7-4494-8d98-01a0a95202aaPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" f8dc3bd9-7ae7-4494-8d98-01a0a95202aasrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 3d25c23b-4b4c-469e-ba2f-728837d293bePOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" ec2482e3-c2da-4519-8f07-3392094e67edPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" ec2482e3-c2da-4519-8f07-3392094e67edPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" ec2482e3-c2da-4519-8f07-3392094e67edsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" f0a66435-f910-4284-81c8-7b6abc7163f6POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" f0a66435-f910-4284-81c8-7b6abc7163f6POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" f0a66435-f910-4284-81c8-7b6abc7163f6POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 720 Connection: close SOAPAction: "PutDone" f0a66435-f910-4284-81c8-7b6abc7163f6srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 5f9ee3dd-e51e-4866-8228-45950b5d07a0POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" 5f9ee3dd-e51e-4866-8228-45950b5d07a0srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 532af759-4e12-4af8-a23f-235665110cd0POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 7a95481a-e5c3-41c1-b71b-fb32bbb1336bPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" 7a95481a-e5c3-41c1-b71b-fb32bbb1336bsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 598 Connection: close SOAPAction: "Mkdir" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generatedPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1154 Connection: close SOAPAction: "PrepareToPut" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001102460PERMANENTfilerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" f4c9e8f3-29c3-4d83-ad2a-35e55b23ce03POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" f4c9e8f3-29c3-4d83-ad2a-35e55b23ce03POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" f4c9e8f3-29c3-4d83-ad2a-35e55b23ce03POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 720 Connection: close SOAPAction: "PutDone" f4c9e8f3-29c3-4d83-ad2a-35e55b23ce03srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 0310fefb-01f8-46d7-b21a-6d5bc5264118POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" 0310fefb-01f8-46d7-b21a-6d5bc5264118srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 1e452a05-aaeb-4f01-895a-1f3d580ae462POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1113 Connection: close SOAPAction: "PrepareToGet" srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002PERMANENT60filerfiodcapgsidcapkdcapPOST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 631 Connection: close SOAPAction: "StatusOfPutRequest" 66f4a460-0a84-4dd6-a63e-cbc60ccd8bb6POST /srm/managerv2 HTTP/1.1 Host: grid-cert-03.roma1.infn.it:8446 User-Agent: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 740 Connection: close SOAPAction: "ReleaseFiles" 66f4a460-0a84-4dd6-a63e-cbc60ccd8bb6srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002gfal2-2.3.0/testing/build/test_opendir.sh0000755000175000017500000000021512164561703017664 0ustar ellertellert#!/bin/bash sfile=lfn:/grid/dteam # dir tested ./gfal_testdir $sfile &> /dev/null # must be a success if [[ "$?" != "0" ]]; then exit -1 fi gfal2-2.3.0/testing/build/test_read.sh0000755000175000017500000000055012164561703017141 0ustar ellertellert#!/bin/bash sfile=srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002 lcg-del -v -l -D srmv2 $sfile > /dev/null &> /dev/null touch /tmp/hello echo "Hello World" > /tmp/hello lcg-cp /tmp/hello $sfile > /dev/null ./gfal_testread $sfile > /dev/null if [[ "$?" != "0" ]]; then exit -1 fi lcg-del -v -l -D srmv2 $sfile &> /dev/null gfal2-2.3.0/testing/build/TEST.log0000644000175000017500000572514612164561703016136 0ustar ellertellertRegistered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff795c8900 type=81: not found stdsoap2.c(4149): malloc(1288) = 0x5869a10 Pointer enter location=0x7fff795c8900 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fff795c8900 type=81 (0 0) Lookup location=0x5864510 type=3: not found Pointer enter location=0x5864510 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x5864510 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x5869f20 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff795af3b0 type=311: not found Embedded_id 0x7fff795af3b0 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff795c8900 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff795c8900 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x5864510 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff795af3b0 type=311: not found Embedded_id 0x7fff795af3b0 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff795c8900 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff795c8900 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x5864510 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x5869f20) Free pointer hashtable stdsoap2.c(4079): free(0x5869a10) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x58741c0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x58711d0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x5875230 stdsoap2.c(7219): malloc(64) = 0x5873850 stdsoap2.c(2336): malloc(40) = 0x586b3e0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x5871860 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5874320 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x586c370 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5893c60 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x5874620 stdsoap2.c(7172): malloc(62) = 0x58746c0 stdsoap2.c(7219): malloc(64) = 0x58715e0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fff795c8920 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x58754a0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5871490 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5871490 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0x5886020 Enter id='' type=3 loc=0x5886020 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x5893c60) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x586c370) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x5874320) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x5871860) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x586b3e0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x58715e0) stdsoap2.c(5406): free(0x58746c0) stdsoap2.c(5405): free(0x5873850) stdsoap2.c(5406): free(0x58711d0) stdsoap2.c(5411): free(0x5875230) stdsoap2.c(5422): free(0x5874620) stdsoap2.c(5428): free(0x58741c0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x5886020) stdsoap2.c(4857): free(0x5871490) stdsoap2.c(4857): free(0x58754a0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x5855320) Free logfiles stdsoap2.c(2959): free(0x5854370) stdsoap2.c(2959): free(0x5855430) stdsoap2.c(2959): free(0x5856460) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x5851c60 stdsoap2.c(4726): malloc(24) = 0x5851c90 stdsoap2.c(4726): malloc(48) = 0x58536d0 stdsoap2.c(4726): malloc(24) = 0x5853740 stdsoap2.c(4726): malloc(32) = 0x5853790 stdsoap2.c(4726): malloc(24) = 0x58537f0 stdsoap2.c(4726): malloc(32) = 0x5853840 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff795c88f0 type=101: not found stdsoap2.c(4149): malloc(1288) = 0x58538a0 Pointer enter location=0x7fff795c88f0 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fff795c88f0 type=101 (0 0) Lookup location=0x5851c60 type=32: not found Pointer enter location=0x5851c60 array=(nil) size=0 dim=0 type=32 id=2 Reference 0x5851c60 type=32 (0 0) Lookup location=0x5853790 type=31: not found Pointer enter location=0x5853790 array=(nil) size=0 dim=0 type=31 id=3 Reference 0x5853790 type=31 (0 0) Lookup location=0x584a610 type=3: not found Pointer enter location=0x584a610 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x584a610 type=3 (0 0) Lookup location=0x58537f0 type=148: not found Pointer enter location=0x58537f0 array=(nil) size=0 dim=0 type=148 id=5 Reference 0x58537f0 type=148 (0 0) Lookup location=0x7fff795c8aa0 type=1: not found Pointer enter location=0x7fff795c8aa0 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff795c8aa0 type=1 (0 0) Lookup location=0x2b177ebab0c8 type=131: not found Pointer enter location=0x2b177ebab0c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b177ebab0c8 type=131 (0 0) Lookup location=0x58536d0 type=28: not found Pointer enter location=0x58536d0 array=(nil) size=0 dim=0 type=28 id=8 Reference 0x58536d0 type=28 (0 0) Lookup location=0x5853840 type=14: not found Pointer enter location=0x5853840 array=(nil) size=0 dim=0 type=14 id=9 Reference 0x5853840 type=14 (0 0) Lookup location=0x2b177db9b869 type=3: not found Pointer enter location=0x2b177db9b869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b177db9b869 type=3 (0 0) Lookup location=0x2b177db9b886 type=3: not found Pointer enter location=0x2b177db9b886 array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b177db9b886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x5853de0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff795af360 type=371: not found Embedded_id 0x7fff795af360 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff795c88f0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff795c88f0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x5851c60 type=32 id=2 Is embedded? 0 0 Embedded_id 0x5851c60 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x5853790 type=31 id=3 Is embedded? 0 0 Embedded_id 0x5853790 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x584a610 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x58537f0 type=148 id=5 Is embedded? 0 0 Embedded_id 0x58537f0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff795c8aa0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff795c8aa0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b177ebab0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b177ebab0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x58536d0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x58536d0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x5853840 type=14 id=9 Is embedded? 0 0 Embedded_id 0x5853840 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b177db9b869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b177db9b886 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1026 New count is 1026 bytes Begin send phase (socket=7 mode=0x1 count=1026) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff795af360 type=371: not found Embedded_id 0x7fff795af360 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff795c88f0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff795c88f0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x5851c60 type=32 id=2 Is embedded? 0 0 Embedded_id 0x5851c60 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x5853790 type=31 id=3 Is embedded? 0 0 Embedded_id 0x5853790 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x584a610 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x58537f0 type=148 id=5 Is embedded? 0 0 Embedded_id 0x58537f0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff795c8aa0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff795c8aa0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b177ebab0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b177ebab0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x58536d0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x58536d0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x5853840 type=14 id=9 Is embedded? 0 0 Embedded_id 0x5853840 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b177db9b869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b177db9b886 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x5853de0) Free pointer hashtable stdsoap2.c(4079): free(0x58538a0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x5853de0 Free ID hashtable Read 1088 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 971 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x585f600 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x585ee40 stdsoap2.c(7219): malloc(64) = 0x58759e0 stdsoap2.c(2336): malloc(40) = 0x585c6a0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x5857ba0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x585c990 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5893e50 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x585c710 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x585f670 stdsoap2.c(7172): malloc(62) = 0x585f6b0 stdsoap2.c(7219): malloc(64) = 0x5875950 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fff795c8950 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x5886460 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x585f410 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x585f410 size=4 level=0 Element content value='SRM_NOT_SUPPORTED' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(48) = 0x585f470 Enter id='' type=3 loc=0x585f470 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x5886da0 Enter id='' type=3 loc=0x5886da0 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5877790 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x58758e0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x585c2a0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x58778c0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x5877950 stdsoap2.c(6963): free(0x585ee40) stdsoap2.c(4726): malloc(104) = 0x585c4f0 Enter id='' type=6 loc=0x585c4f0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x585c590 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x585c590 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x585c2a0->(nil)) stdsoap2.c(4726): malloc(24) = 0x58869f0 First block Copy 8 bytes from 0x585c2b0 to 0x58869f0 Next block stdsoap2.c(2026): free(0x585c2a0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x58758e0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x585c710) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x5893e50) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x585c990) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x5857ba0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x585c6a0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x5875950) stdsoap2.c(5406): free(0x585f6b0) stdsoap2.c(5405): free(0x58759e0) stdsoap2.c(5406): free(0x585f600) stdsoap2.c(5411): free(0x5877950) stdsoap2.c(5422): free(0x585f670) stdsoap2.c(5428): free(0x5853de0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x58869f0) stdsoap2.c(4857): free(0x585c590) stdsoap2.c(4857): free(0x585c4f0) stdsoap2.c(4857): free(0x58778c0) stdsoap2.c(4857): free(0x5877790) stdsoap2.c(4857): free(0x5886da0) stdsoap2.c(4857): free(0x585f470) stdsoap2.c(4857): free(0x585f410) stdsoap2.c(4857): free(0x5886460) stdsoap2.c(4857): free(0x5853840) stdsoap2.c(4857): free(0x58537f0) stdsoap2.c(4857): free(0x5853790) stdsoap2.c(4857): free(0x5853740) stdsoap2.c(4857): free(0x58536d0) stdsoap2.c(4857): free(0x5851c90) stdsoap2.c(4857): free(0x5851c60) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x58742f0) Free logfiles stdsoap2.c(2959): free(0x5856460) stdsoap2.c(2959): free(0x5855430) stdsoap2.c(2959): free(0x5854370) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff20d54dd0 type=81: not found stdsoap2.c(4149): malloc(1288) = 0xe211c20 Pointer enter location=0x7fff20d54dd0 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fff20d54dd0 type=81 (0 0) Lookup location=0xe20c720 type=3: not found Pointer enter location=0xe20c720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xe20c720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xe212130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3b880 type=311: not found Embedded_id 0x7fff20d3b880 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff20d54dd0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d54dd0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xe20c720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3b880 type=311: not found Embedded_id 0x7fff20d3b880 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff20d54dd0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d54dd0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xe20c720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xe212130) Free pointer hashtable stdsoap2.c(4079): free(0xe211c20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xe21c3d0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xe2193e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xe21d440 stdsoap2.c(7219): malloc(64) = 0xe21ba60 stdsoap2.c(2336): malloc(40) = 0xe2135f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xe219a70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe21c530 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe214580 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe23be80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xe21c830 stdsoap2.c(7172): malloc(62) = 0xe21c8d0 stdsoap2.c(7219): malloc(64) = 0xe2197f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fff20d54df0 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xe21d6b0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe2196a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe2196a0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0xe22e230 Enter id='' type=3 loc=0xe22e230 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xe23be80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xe214580) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xe21c530) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xe219a70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xe2135f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xe2197f0) stdsoap2.c(5406): free(0xe21c8d0) stdsoap2.c(5405): free(0xe21ba60) stdsoap2.c(5406): free(0xe2193e0) stdsoap2.c(5411): free(0xe21d440) stdsoap2.c(5422): free(0xe21c830) stdsoap2.c(5428): free(0xe21c3d0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xe22e230) stdsoap2.c(4857): free(0xe2196a0) stdsoap2.c(4857): free(0xe21d6b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xe1fd530) Free logfiles stdsoap2.c(2959): free(0xe1fc580) stdsoap2.c(2959): free(0xe1fd640) stdsoap2.c(2959): free(0xe1fe670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xe1f9e90 stdsoap2.c(4726): malloc(24) = 0xe1f9ec0 stdsoap2.c(4726): malloc(48) = 0xe1fb920 stdsoap2.c(4726): malloc(24) = 0xe1fb990 stdsoap2.c(4726): malloc(32) = 0xe1fb9e0 stdsoap2.c(4726): malloc(24) = 0xe1fba40 stdsoap2.c(4726): malloc(32) = 0xe1fba90 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff20d54dc0 type=101: not found stdsoap2.c(4149): malloc(1288) = 0xe1fbaf0 Pointer enter location=0x7fff20d54dc0 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fff20d54dc0 type=101 (0 0) Lookup location=0xe1f9e90 type=32: not found Pointer enter location=0xe1f9e90 array=(nil) size=0 dim=0 type=32 id=2 Reference 0xe1f9e90 type=32 (0 0) Lookup location=0xe1fb9e0 type=31: not found Pointer enter location=0xe1fb9e0 array=(nil) size=0 dim=0 type=31 id=3 Reference 0xe1fb9e0 type=31 (0 0) Lookup location=0xe1f2820 type=3: not found Pointer enter location=0xe1f2820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xe1f2820 type=3 (0 0) Lookup location=0xe1fba40 type=148: not found Pointer enter location=0xe1fba40 array=(nil) size=0 dim=0 type=148 id=5 Reference 0xe1fba40 type=148 (0 0) Lookup location=0x7fff20d54f70 type=1: not found Pointer enter location=0x7fff20d54f70 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff20d54f70 type=1 (0 0) Lookup location=0x2b13e3b440c8 type=131: not found Pointer enter location=0x2b13e3b440c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b13e3b440c8 type=131 (0 0) Lookup location=0xe1fb920 type=28: not found Pointer enter location=0xe1fb920 array=(nil) size=0 dim=0 type=28 id=8 Reference 0xe1fb920 type=28 (0 0) Lookup location=0xe1fba90 type=14: not found Pointer enter location=0xe1fba90 array=(nil) size=0 dim=0 type=14 id=9 Reference 0xe1fba90 type=14 (0 0) Lookup location=0x2b13e2b33869 type=3: not found Pointer enter location=0x2b13e2b33869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b13e2b33869 type=3 (0 0) Lookup location=0x2b13e2b3386e type=3: not found Pointer enter location=0x2b13e2b3386e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b13e2b3386e type=3 (0 0) Lookup location=0x2b13e2b33873 type=3: not found Pointer enter location=0x2b13e2b33873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b13e2b33873 type=3 (0 0) Lookup location=0x2b13e2b33878 type=3: not found Pointer enter location=0x2b13e2b33878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b13e2b33878 type=3 (0 0) Lookup location=0x2b13e2b33880 type=3: not found Pointer enter location=0x2b13e2b33880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b13e2b33880 type=3 (0 0) Lookup location=0x2b13e2b33886 type=3: not found Pointer enter location=0x2b13e2b33886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2b13e2b33886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xe1fc030 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3b830 type=371: not found Embedded_id 0x7fff20d3b830 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff20d54dc0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d54dc0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xe1f9e90 type=32 id=2 Is embedded? 0 0 Embedded_id 0xe1f9e90 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xe1fb9e0 type=31 id=3 Is embedded? 0 0 Embedded_id 0xe1fb9e0 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xe1f2820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xe1fba40 type=148 id=5 Is embedded? 0 0 Embedded_id 0xe1fba40 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff20d54f70 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff20d54f70 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b13e3b440c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b13e3b440c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xe1fb920 type=28 id=8 Is embedded? 0 0 Embedded_id 0xe1fb920 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xe1fba90 type=14 id=9 Is embedded? 0 0 Embedded_id 0xe1fba90 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b13e2b33869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b3386e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=7 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3b830 type=371: not found Embedded_id 0x7fff20d3b830 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff20d54dc0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d54dc0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xe1f9e90 type=32 id=2 Is embedded? 0 0 Embedded_id 0xe1f9e90 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xe1fb9e0 type=31 id=3 Is embedded? 0 0 Embedded_id 0xe1fb9e0 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xe1f2820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xe1fba40 type=148 id=5 Is embedded? 0 0 Embedded_id 0xe1fba40 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff20d54f70 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff20d54f70 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b13e3b440c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b13e3b440c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xe1fb920 type=28 id=8 Is embedded? 0 0 Embedded_id 0xe1fb920 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xe1fba90 type=14 id=9 Is embedded? 0 0 Embedded_id 0xe1fba90 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b13e2b33869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b3386e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xe1fc030) Free pointer hashtable stdsoap2.c(4079): free(0xe1fbaf0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xe1fc030 Free ID hashtable Read 1037 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xe207850 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xe207090 stdsoap2.c(7219): malloc(64) = 0xe21dc30 stdsoap2.c(2336): malloc(40) = 0xe2048f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xe1ffdf0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe204be0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe23c0b0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe204960 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xe2078c0 stdsoap2.c(7172): malloc(62) = 0xe207900 stdsoap2.c(7219): malloc(64) = 0xe21dba0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fff20d54e20 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xe207690 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe22efa0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe22efa0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xe22f000 Enter id='' type=3 loc=0xe22f000 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe21fa10 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xe21db30 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xe2044f0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xe22e610 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xe21fb10 stdsoap2.c(6963): free(0xe207090) stdsoap2.c(4726): malloc(104) = 0xe22e6a0 Enter id='' type=6 loc=0xe22e6a0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe21fc00 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe21fc00 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xe2044f0->(nil)) stdsoap2.c(4726): malloc(24) = 0xe22ec20 First block Copy 8 bytes from 0xe204500 to 0xe22ec20 Next block stdsoap2.c(2026): free(0xe2044f0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xe21db30) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xe204960) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xe23c0b0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xe204be0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xe1ffdf0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xe2048f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xe21dba0) stdsoap2.c(5406): free(0xe207900) stdsoap2.c(5405): free(0xe21dc30) stdsoap2.c(5406): free(0xe207850) stdsoap2.c(5411): free(0xe21fb10) stdsoap2.c(5422): free(0xe2078c0) stdsoap2.c(5428): free(0xe1fc030) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xe22ec20) stdsoap2.c(4857): free(0xe21fc00) stdsoap2.c(4857): free(0xe22e6a0) stdsoap2.c(4857): free(0xe22e610) stdsoap2.c(4857): free(0xe21fa10) stdsoap2.c(4857): free(0xe22f000) stdsoap2.c(4857): free(0xe22efa0) stdsoap2.c(4857): free(0xe207690) stdsoap2.c(4857): free(0xe1fba90) stdsoap2.c(4857): free(0xe1fba40) stdsoap2.c(4857): free(0xe1fb9e0) stdsoap2.c(4857): free(0xe1fb990) stdsoap2.c(4857): free(0xe1fb920) stdsoap2.c(4857): free(0xe1f9ec0) stdsoap2.c(4857): free(0xe1f9e90) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xe219640) Free logfiles stdsoap2.c(2959): free(0xe1fe670) stdsoap2.c(2959): free(0xe1fd640) stdsoap2.c(2959): free(0xe1fc580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff20d3b910 type=103: not found stdsoap2.c(4149): malloc(1288) = 0xe1f6ec0 Pointer enter location=0x7fff20d3b910 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff20d3b910 type=103 (0 0) Lookup location=0xe2048f0 type=3: not found Pointer enter location=0xe2048f0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xe2048f0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xe1f73d0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3b8a0 type=377: not found Embedded_id 0x7fff20d3b8a0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff20d3b910 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d3b910 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xe2048f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3b8a0 type=377: not found Embedded_id 0x7fff20d3b8a0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff20d3b910 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d3b910 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xe2048f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xe1f73d0) Free pointer hashtable stdsoap2.c(4079): free(0xe1f6ec0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xe21f7e0 Free ID hashtable Read 1221 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1103 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xe21f8b0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xe203d70 stdsoap2.c(7219): malloc(64) = 0xe22e530 stdsoap2.c(2336): malloc(40) = 0xe200e10 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xe1f8a00 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe2437c0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe21da30 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe201100 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xe2423f0 stdsoap2.c(7172): malloc(62) = 0xe200eb0 stdsoap2.c(7219): malloc(64) = 0xe203e10 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff20d3b930 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xe21d9a0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe203b80 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe203b80 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe203be0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xe21d930 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xe200a10 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xe22ee10 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xe21f940 stdsoap2.c(6963): free(0xe203d70) stdsoap2.c(4726): malloc(104) = 0xe200c60 Enter id='' type=6 loc=0xe200c60 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe200cd0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe200cd0 size=4 level=0 Element content value='SRM_SPACE_AVAILABLE' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xe22ea30 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xe204400 Element content value='7199' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xe242430 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0xe22dea0 Enter id='' type=6 loc=0xe22dea0 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xe200a10->(nil)) stdsoap2.c(4726): malloc(24) = 0xe200d90 First block Copy 8 bytes from 0xe200a20 to 0xe200d90 Next block stdsoap2.c(2026): free(0xe200a10) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xe21d930) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xe201100) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xe21da30) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xe2437c0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xe1f8a00) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xe200e10) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xe203e10) stdsoap2.c(5406): free(0xe200eb0) stdsoap2.c(5405): free(0xe22e530) stdsoap2.c(5406): free(0xe21f8b0) stdsoap2.c(5411): free(0xe21f940) stdsoap2.c(5422): free(0xe2423f0) stdsoap2.c(5428): free(0xe21f7e0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xe200d90) stdsoap2.c(4857): free(0xe22dea0) stdsoap2.c(4857): free(0xe242430) stdsoap2.c(4857): free(0xe204400) stdsoap2.c(4857): free(0xe22ea30) stdsoap2.c(4857): free(0xe200cd0) stdsoap2.c(4857): free(0xe200c60) stdsoap2.c(4857): free(0xe22ee10) stdsoap2.c(4857): free(0xe203be0) stdsoap2.c(4857): free(0xe203b80) stdsoap2.c(4857): free(0xe21d9a0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xe204a60) Free logfiles stdsoap2.c(2959): free(0xe1fc580) stdsoap2.c(2959): free(0xe1fd640) stdsoap2.c(2959): free(0xe1fe670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xe21b8b0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff20d55760 type=111: not found stdsoap2.c(4149): malloc(1288) = 0xe221340 Pointer enter location=0x7fff20d55760 array=(nil) size=0 dim=0 type=111 id=1 Reference 0x7fff20d55760 type=111 (0 0) Lookup location=0xe2048f0 type=3: not found Pointer enter location=0xe2048f0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xe2048f0 type=3 (0 0) Lookup location=0xe21b8b0 type=27: not found Pointer enter location=0xe21b8b0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0xe21b8b0 type=27 (0 0) Lookup location=0xe1f2820 type=3: not found Pointer enter location=0xe1f2820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xe1f2820 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xe21b940 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3c200 type=401: not found Embedded_id 0x7fff20d3c200 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff20d55760 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d55760 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0xe2048f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xe21b8b0 type=27 id=3 Is embedded? 0 0 Embedded_id 0xe21b8b0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xe1f2820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=720 New count is 720 bytes Begin send phase (socket=7 mode=0x1 count=720) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3c200 type=401: not found Embedded_id 0x7fff20d3c200 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff20d55760 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d55760 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0xe2048f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xe21b8b0 type=27 id=3 Is embedded? 0 0 Embedded_id 0xe21b8b0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xe1f2820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xe21b940) Free pointer hashtable stdsoap2.c(4079): free(0xe221340) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xe21b940 Free ID hashtable Read 938 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 821 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xe22acd0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xe22b740 stdsoap2.c(7219): malloc(64) = 0xe22bc90 stdsoap2.c(2336): malloc(40) = 0xe227d70 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xe223270 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe228060 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe24c150 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe227de0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xe22ad40 stdsoap2.c(7172): malloc(62) = 0xe22ad80 stdsoap2.c(7219): malloc(64) = 0xe22bc00 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPutDoneResponse' 'srm2:srmPutDoneResponse' Begin element found (level=3) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' Enter id='' type=396 loc=0x7fff20d55780 size=8 level=0 Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Reverting last element (level=3) Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Enter id='' type=112 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe23c710 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe23c770 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe23c770 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe22ab10 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xe22bb90 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xe227970 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe23d050 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xe22da40 stdsoap2.c(6963): free(0xe22b740) stdsoap2.c(4726): malloc(104) = 0xe22dad0 Enter id='' type=6 loc=0xe22dad0 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe22dba0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe22dba0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xe227970->(nil)) stdsoap2.c(4726): malloc(24) = 0xe23cca0 First block Copy 8 bytes from 0xe227980 to 0xe23cca0 Next block stdsoap2.c(2026): free(0xe227970) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xe22bb90) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPutDoneResponse'='srmPutDoneResponse' End element found (level=2) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xe227de0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xe24c150) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xe228060) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xe223270) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xe227d70) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xe22bc00) stdsoap2.c(5406): free(0xe22ad80) stdsoap2.c(5405): free(0xe22bc90) stdsoap2.c(5406): free(0xe22acd0) stdsoap2.c(5411): free(0xe22da40) stdsoap2.c(5422): free(0xe22ad40) stdsoap2.c(5428): free(0xe21b940) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xe23cca0) stdsoap2.c(4857): free(0xe22dba0) stdsoap2.c(4857): free(0xe22dad0) stdsoap2.c(4857): free(0xe23d050) stdsoap2.c(4857): free(0xe22ab10) stdsoap2.c(4857): free(0xe23c770) stdsoap2.c(4857): free(0xe23c710) stdsoap2.c(4857): free(0xe21b8b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xe1f2880) Free logfiles stdsoap2.c(2959): free(0xe21ef90) stdsoap2.c(2959): free(0xe2016a0) stdsoap2.c(2959): free(0xe1f89d0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xe200e10 stdsoap2.c(4726): malloc(24) = 0xe2016a0 stdsoap2.c(4726): malloc(48) = 0xe1fc520 stdsoap2.c(4726): malloc(24) = 0xe2016e0 stdsoap2.c(4726): malloc(32) = 0xe21da00 stdsoap2.c(4726): malloc(32) = 0xe21b8b0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff20d54de0 type=93: not found stdsoap2.c(4149): malloc(1288) = 0xe220660 Pointer enter location=0x7fff20d54de0 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fff20d54de0 type=93 (0 0) Lookup location=0xe200e10 type=30: not found Pointer enter location=0xe200e10 array=(nil) size=0 dim=0 type=30 id=2 Reference 0xe200e10 type=30 (0 0) Lookup location=0xe21da00 type=29: not found Pointer enter location=0xe21da00 array=(nil) size=0 dim=0 type=29 id=3 Reference 0xe21da00 type=29 (0 0) Lookup location=0xe24b270 type=3: not found Pointer enter location=0xe24b270 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xe24b270 type=3 (0 0) Lookup location=0x2b13e3b440d4 type=131: not found Pointer enter location=0x2b13e3b440d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2b13e3b440d4 type=131 (0 0) Lookup location=0x7fff20d54f70 type=1: not found Pointer enter location=0x7fff20d54f70 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff20d54f70 type=1 (0 0) Lookup location=0xe1fc520 type=28: not found Pointer enter location=0xe1fc520 array=(nil) size=0 dim=0 type=28 id=7 Reference 0xe1fc520 type=28 (0 0) Lookup location=0xe21b8b0 type=14: not found Pointer enter location=0xe21b8b0 array=(nil) size=0 dim=0 type=14 id=8 Reference 0xe21b8b0 type=14 (0 0) Lookup location=0x2b13e2b33869 type=3: not found Pointer enter location=0x2b13e2b33869 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2b13e2b33869 type=3 (0 0) Lookup location=0x2b13e2b3386e type=3: not found Pointer enter location=0x2b13e2b3386e array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b13e2b3386e type=3 (0 0) Lookup location=0x2b13e2b33873 type=3: not found Pointer enter location=0x2b13e2b33873 array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b13e2b33873 type=3 (0 0) Lookup location=0x2b13e2b33878 type=3: not found Pointer enter location=0x2b13e2b33878 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b13e2b33878 type=3 (0 0) Lookup location=0x2b13e2b33880 type=3: not found Pointer enter location=0x2b13e2b33880 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b13e2b33880 type=3 (0 0) Lookup location=0x2b13e2b33886 type=3: not found Pointer enter location=0x2b13e2b33886 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b13e2b33886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xe1f2800 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3b860 type=347: not found Embedded_id 0x7fff20d3b860 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff20d54de0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d54de0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xe200e10 type=30 id=2 Is embedded? 0 0 Embedded_id 0xe200e10 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xe21da00 type=29 id=3 Is embedded? 0 0 Embedded_id 0xe21da00 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xe24b270 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b13e3b440d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b13e3b440d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff20d54f70 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff20d54f70 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xe1fc520 type=28 id=7 Is embedded? 0 0 Embedded_id 0xe1fc520 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xe21b8b0 type=14 id=8 Is embedded? 0 0 Embedded_id 0xe21b8b0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b13e2b33869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b3386e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=7 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3b860 type=347: not found Embedded_id 0x7fff20d3b860 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff20d54de0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d54de0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xe200e10 type=30 id=2 Is embedded? 0 0 Embedded_id 0xe200e10 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xe21da00 type=29 id=3 Is embedded? 0 0 Embedded_id 0xe21da00 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xe24b270 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b13e3b440d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b13e3b440d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff20d54f70 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff20d54f70 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xe1fc520 type=28 id=7 Is embedded? 0 0 Embedded_id 0xe1fc520 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xe21b8b0 type=14 id=8 Is embedded? 0 0 Embedded_id 0xe21b8b0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b13e2b33869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b3386e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13e2b33886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xe1f2800) Free pointer hashtable stdsoap2.c(4079): free(0xe220660) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xe249260 Free ID hashtable Read 1049 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xe2454c0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xe244e20 stdsoap2.c(7219): malloc(64) = 0xe242f10 stdsoap2.c(2336): malloc(40) = 0xe242fb0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xe242ac0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe2465f0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe252ae0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe245780 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xe2514f0 stdsoap2.c(7172): malloc(62) = 0xe2431f0 stdsoap2.c(7219): malloc(64) = 0xe237320 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fff20d54e30 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xe2453f0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe245bb0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe245bb0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xe245230 Enter id='' type=3 loc=0xe245230 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe245c90 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xe246510 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xe2455b0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xe245dd0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xe245a90 stdsoap2.c(6963): free(0xe244e20) stdsoap2.c(4726): malloc(104) = 0xe1f2800 Enter id='' type=6 loc=0xe1f2800 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe1f28a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe1f28a0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xe2455b0->(nil)) stdsoap2.c(4726): malloc(24) = 0xe2378a0 First block Copy 8 bytes from 0xe2455c0 to 0xe2378a0 Next block stdsoap2.c(2026): free(0xe2455b0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xe246510) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xe245780) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xe252ae0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xe2465f0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xe242ac0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xe242fb0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xe237320) stdsoap2.c(5406): free(0xe2431f0) stdsoap2.c(5405): free(0xe242f10) stdsoap2.c(5406): free(0xe2454c0) stdsoap2.c(5411): free(0xe245a90) stdsoap2.c(5422): free(0xe2514f0) stdsoap2.c(5428): free(0xe249260) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xe2378a0) stdsoap2.c(4857): free(0xe1f28a0) stdsoap2.c(4857): free(0xe1f2800) stdsoap2.c(4857): free(0xe245dd0) stdsoap2.c(4857): free(0xe245c90) stdsoap2.c(4857): free(0xe245230) stdsoap2.c(4857): free(0xe245bb0) stdsoap2.c(4857): free(0xe2453f0) stdsoap2.c(4857): free(0xe21b8b0) stdsoap2.c(4857): free(0xe21da00) stdsoap2.c(4857): free(0xe2016e0) stdsoap2.c(4857): free(0xe1fc520) stdsoap2.c(4857): free(0xe2016a0) stdsoap2.c(4857): free(0xe200e10) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xe200c00) Free logfiles stdsoap2.c(2959): free(0xe227900) stdsoap2.c(2959): free(0xe1f8a10) stdsoap2.c(2959): free(0xe2016c0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff20d3b910 type=95: not found stdsoap2.c(4149): malloc(1288) = 0xe220660 Pointer enter location=0x7fff20d3b910 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff20d3b910 type=95 (0 0) Lookup location=0xe242fb0 type=3: not found Pointer enter location=0xe242fb0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xe242fb0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xe1f2800 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3b8a0 type=353: not found Embedded_id 0x7fff20d3b8a0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff20d3b910 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d3b910 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xe242fb0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3b8a0 type=353: not found Embedded_id 0x7fff20d3b8a0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff20d3b910 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d3b910 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xe242fb0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xe1f2800) Free pointer hashtable stdsoap2.c(4079): free(0xe220660) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xe1f2800 Free ID hashtable Read 1177 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1059 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xe222ae0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xe245fe0 stdsoap2.c(7219): malloc(64) = 0xe222950 stdsoap2.c(2336): malloc(40) = 0xe248850 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xe248280 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe2223d0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe24a710 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe2231c0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xe2483c0 stdsoap2.c(7172): malloc(62) = 0xe243290 stdsoap2.c(7219): malloc(64) = 0xe222b50 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff20d3b930 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xe2486f0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe248750 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe248750 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe248a10 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xe248fb0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xe248930 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xe222bf0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xe227100 stdsoap2.c(6963): free(0xe245fe0) stdsoap2.c(4726): malloc(104) = 0xe239cc0 Enter id='' type=6 loc=0xe239cc0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xe222350 Element content value='65536' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe239d90 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe239d90 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xe222580 Element content value='7199' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0xe226340 Enter id='' type=6 loc=0xe226340 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xe248930->(nil)) stdsoap2.c(4726): malloc(24) = 0xe24b250 First block Copy 8 bytes from 0xe248940 to 0xe24b250 Next block stdsoap2.c(2026): free(0xe248930) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xe248fb0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xe2231c0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xe24a710) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xe2223d0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xe248280) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xe248850) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xe222b50) stdsoap2.c(5406): free(0xe243290) stdsoap2.c(5405): free(0xe222950) stdsoap2.c(5406): free(0xe222ae0) stdsoap2.c(5411): free(0xe227100) stdsoap2.c(5422): free(0xe2483c0) stdsoap2.c(5428): free(0xe1f2800) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xe24b250) stdsoap2.c(4857): free(0xe226340) stdsoap2.c(4857): free(0xe222580) stdsoap2.c(4857): free(0xe239d90) stdsoap2.c(4857): free(0xe222350) stdsoap2.c(4857): free(0xe239cc0) stdsoap2.c(4857): free(0xe222bf0) stdsoap2.c(4857): free(0xe248a10) stdsoap2.c(4857): free(0xe248750) stdsoap2.c(4857): free(0xe2486f0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xe245b20) Free logfiles stdsoap2.c(2959): free(0xe2016c0) stdsoap2.c(2959): free(0xe1f8a10) stdsoap2.c(2959): free(0xe227900) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xe222d80 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff20d55760 type=109: not found stdsoap2.c(4149): malloc(1288) = 0xe248880 Pointer enter location=0x7fff20d55760 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fff20d55760 type=109 (0 0) Lookup location=0xe242fb0 type=3: not found Pointer enter location=0xe242fb0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xe242fb0 type=3 (0 0) Lookup location=0xe222d80 type=27: not found Pointer enter location=0xe222d80 array=(nil) size=0 dim=0 type=27 id=3 Reference 0xe222d80 type=27 (0 0) Lookup location=0xe24b270 type=3: not found Pointer enter location=0xe24b270 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xe24b270 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xe221680 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3c200 type=395: not found Embedded_id 0x7fff20d3c200 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff20d55760 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d55760 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0xe242fb0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xe222d80 type=27 id=3 Is embedded? 0 0 Embedded_id 0xe222d80 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xe24b270 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=7 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff20d3c200 type=395: not found Embedded_id 0x7fff20d3c200 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff20d55760 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff20d55760 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0xe242fb0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xe222d80 type=27 id=3 Is embedded? 0 0 Embedded_id 0xe222d80 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xe24b270 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xe221680) Free pointer hashtable stdsoap2.c(4079): free(0xe248880) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xe227470 Free ID hashtable Read 958 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xe224270 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xe223ac0 stdsoap2.c(7219): malloc(64) = 0xe223f60 stdsoap2.c(2336): malloc(40) = 0xe2237d0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xe243720 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe224200 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe227790 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe223bf0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xe2514f0 stdsoap2.c(7172): malloc(62) = 0xe2249c0 stdsoap2.c(7219): malloc(64) = 0xe243490 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fff20d55780 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe2434e0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe224010 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe224010 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe2391d0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xe223b30 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xe223710 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe224120 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xe239ae0 stdsoap2.c(6963): free(0xe223ac0) stdsoap2.c(4726): malloc(104) = 0xe221680 Enter id='' type=6 loc=0xe221680 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe221720 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe221720 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xe223710->(nil)) stdsoap2.c(4726): malloc(24) = 0xe24ade0 First block Copy 8 bytes from 0xe223720 to 0xe24ade0 Next block stdsoap2.c(2026): free(0xe223710) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xe223b30) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xe223bf0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xe227790) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xe224200) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xe243720) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xe2237d0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xe243490) stdsoap2.c(5406): free(0xe2249c0) stdsoap2.c(5405): free(0xe223f60) stdsoap2.c(5406): free(0xe224270) stdsoap2.c(5411): free(0xe239ae0) stdsoap2.c(5422): free(0xe2514f0) stdsoap2.c(5428): free(0xe227470) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xe24ade0) stdsoap2.c(4857): free(0xe221720) stdsoap2.c(4857): free(0xe221680) stdsoap2.c(4857): free(0xe224120) stdsoap2.c(4857): free(0xe2391d0) stdsoap2.c(4857): free(0xe224010) stdsoap2.c(4857): free(0xe2434e0) stdsoap2.c(4857): free(0xe222d80) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xe2484e0) Free logfiles stdsoap2.c(2959): free(0xe245be0) stdsoap2.c(2959): free(0xe2048f0) stdsoap2.c(2959): free(0xe248490) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd09dcf60 type=81: not found stdsoap2.c(4149): malloc(1288) = 0x6646c20 Pointer enter location=0x7fffd09dcf60 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fffd09dcf60 type=81 (0 0) Lookup location=0x6641720 type=3: not found Pointer enter location=0x6641720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x6641720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x6647130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd09c3a10 type=311: not found Embedded_id 0x7fffd09c3a10 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fffd09dcf60 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fffd09dcf60 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x6641720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd09c3a10 type=311: not found Embedded_id 0x7fffd09c3a10 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fffd09dcf60 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fffd09dcf60 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x6641720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x6647130) Free pointer hashtable stdsoap2.c(4079): free(0x6646c20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x66513d0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x664e3e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x6652440 stdsoap2.c(7219): malloc(64) = 0x6650a60 stdsoap2.c(2336): malloc(40) = 0x66485f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x664ea70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6651530 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6649580 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6670e80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x6651830 stdsoap2.c(7172): malloc(62) = 0x66518d0 stdsoap2.c(7219): malloc(64) = 0x664e7f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fffd09dcf80 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x66526b0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x664e6a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x664e6a0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0x6663230 Enter id='' type=3 loc=0x6663230 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x6670e80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x6649580) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x6651530) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x664ea70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x66485f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x664e7f0) stdsoap2.c(5406): free(0x66518d0) stdsoap2.c(5405): free(0x6650a60) stdsoap2.c(5406): free(0x664e3e0) stdsoap2.c(5411): free(0x6652440) stdsoap2.c(5422): free(0x6651830) stdsoap2.c(5428): free(0x66513d0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x6663230) stdsoap2.c(4857): free(0x664e6a0) stdsoap2.c(4857): free(0x66526b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x6632530) Free logfiles stdsoap2.c(2959): free(0x6631580) stdsoap2.c(2959): free(0x6632640) stdsoap2.c(2959): free(0x6633670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x662ee30 stdsoap2.c(4726): malloc(24) = 0x662ee60 stdsoap2.c(4726): malloc(48) = 0x66308c0 stdsoap2.c(4726): malloc(24) = 0x6630930 stdsoap2.c(4726): malloc(32) = 0x6630980 stdsoap2.c(4726): malloc(24) = 0x66309e0 stdsoap2.c(4726): malloc(32) = 0x6630a30 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd09dcf50 type=101: not found stdsoap2.c(4149): malloc(1288) = 0x6630a90 Pointer enter location=0x7fffd09dcf50 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fffd09dcf50 type=101 (0 0) Lookup location=0x662ee30 type=32: not found Pointer enter location=0x662ee30 array=(nil) size=0 dim=0 type=32 id=2 Reference 0x662ee30 type=32 (0 0) Lookup location=0x6630980 type=31: not found Pointer enter location=0x6630980 array=(nil) size=0 dim=0 type=31 id=3 Reference 0x6630980 type=31 (0 0) Lookup location=0x6627820 type=3: not found Pointer enter location=0x6627820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x6627820 type=3 (0 0) Lookup location=0x66309e0 type=148: not found Pointer enter location=0x66309e0 array=(nil) size=0 dim=0 type=148 id=5 Reference 0x66309e0 type=148 (0 0) Lookup location=0x7fffd09dd100 type=1: not found Pointer enter location=0x7fffd09dd100 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fffd09dd100 type=1 (0 0) Lookup location=0x2b697fff90c8 type=131: not found Pointer enter location=0x2b697fff90c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b697fff90c8 type=131 (0 0) Lookup location=0x66308c0 type=28: not found Pointer enter location=0x66308c0 array=(nil) size=0 dim=0 type=28 id=8 Reference 0x66308c0 type=28 (0 0) Lookup location=0x6630a30 type=14: not found Pointer enter location=0x6630a30 array=(nil) size=0 dim=0 type=14 id=9 Reference 0x6630a30 type=14 (0 0) Lookup location=0x2b697efe8869 type=3: not found Pointer enter location=0x2b697efe8869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b697efe8869 type=3 (0 0) Lookup location=0x2b697efe886e type=3: not found Pointer enter location=0x2b697efe886e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b697efe886e type=3 (0 0) Lookup location=0x2b697efe8873 type=3: not found Pointer enter location=0x2b697efe8873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b697efe8873 type=3 (0 0) Lookup location=0x2b697efe8878 type=3: not found Pointer enter location=0x2b697efe8878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b697efe8878 type=3 (0 0) Lookup location=0x2b697efe8880 type=3: not found Pointer enter location=0x2b697efe8880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b697efe8880 type=3 (0 0) Lookup location=0x2b697efe8886 type=3: not found Pointer enter location=0x2b697efe8886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2b697efe8886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x6630fd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd09c39c0 type=371: not found Embedded_id 0x7fffd09c39c0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fffd09dcf50 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fffd09dcf50 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x662ee30 type=32 id=2 Is embedded? 0 0 Embedded_id 0x662ee30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x6630980 type=31 id=3 Is embedded? 0 0 Embedded_id 0x6630980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x6627820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x66309e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0x66309e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fffd09dd100 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffd09dd100 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b697fff90c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b697fff90c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x66308c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x66308c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x6630a30 type=14 id=9 Is embedded? 0 0 Embedded_id 0x6630a30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b697efe8869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b697efe886e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b697efe8873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b697efe8878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b697efe8880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b697efe8886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=7 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd09c39c0 type=371: not found Embedded_id 0x7fffd09c39c0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fffd09dcf50 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fffd09dcf50 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x662ee30 type=32 id=2 Is embedded? 0 0 Embedded_id 0x662ee30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x6630980 type=31 id=3 Is embedded? 0 0 Embedded_id 0x6630980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x6627820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x66309e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0x66309e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fffd09dd100 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffd09dd100 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b697fff90c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b697fff90c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x66308c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x66308c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x6630a30 type=14 id=9 Is embedded? 0 0 Embedded_id 0x6630a30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b697efe8869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b697efe886e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b697efe8873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b697efe8878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b697efe8880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b697efe8886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x6630fd0) Free pointer hashtable stdsoap2.c(4079): free(0x6630a90) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x6630fd0 Free ID hashtable Read 1037 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x6678370 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x663c7f0 stdsoap2.c(7219): malloc(64) = 0x663c040 stdsoap2.c(2336): malloc(40) = 0x6639890 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x6634d90 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6652c90 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6639b80 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x66770a0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x6663fe0 stdsoap2.c(7172): malloc(62) = 0x663c860 stdsoap2.c(7219): malloc(64) = 0x6652bd0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fffd09dcfb0 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x6639900 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x663c600 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x663c600 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x663c660 Enter id='' type=3 loc=0x663c660 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x66549c0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x6652b90 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x6639490 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x6663650 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x6654ac0 stdsoap2.c(6963): free(0x663c7f0) stdsoap2.c(4726): malloc(104) = 0x66636e0 Enter id='' type=6 loc=0x66636e0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6654bb0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6654bb0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x6639490->(nil)) stdsoap2.c(4726): malloc(24) = 0x6663c60 First block Copy 8 bytes from 0x66394a0 to 0x6663c60 Next block stdsoap2.c(2026): free(0x6639490) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x6652b90) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x66770a0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x6639b80) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x6652c90) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x6634d90) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x6639890) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x6652bd0) stdsoap2.c(5406): free(0x663c860) stdsoap2.c(5405): free(0x663c040) stdsoap2.c(5406): free(0x6678370) stdsoap2.c(5411): free(0x6654ac0) stdsoap2.c(5422): free(0x6663fe0) stdsoap2.c(5428): free(0x6630fd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x6663c60) stdsoap2.c(4857): free(0x6654bb0) stdsoap2.c(4857): free(0x66636e0) stdsoap2.c(4857): free(0x6663650) stdsoap2.c(4857): free(0x66549c0) stdsoap2.c(4857): free(0x663c660) stdsoap2.c(4857): free(0x663c600) stdsoap2.c(4857): free(0x6639900) stdsoap2.c(4857): free(0x6630a30) stdsoap2.c(4857): free(0x66309e0) stdsoap2.c(4857): free(0x6630980) stdsoap2.c(4857): free(0x6630930) stdsoap2.c(4857): free(0x66308c0) stdsoap2.c(4857): free(0x662ee60) stdsoap2.c(4857): free(0x662ee30) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x6627cc0) Free logfiles stdsoap2.c(2959): free(0x6633670) stdsoap2.c(2959): free(0x6632640) stdsoap2.c(2959): free(0x6631580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd09c3aa0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x6635580 Pointer enter location=0x7fffd09c3aa0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fffd09c3aa0 type=103 (0 0) Lookup location=0x6639890 type=3: not found Pointer enter location=0x6639890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x6639890 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x6635a90 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd09c3a30 type=377: not found Embedded_id 0x7fffd09c3a30 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffd09c3aa0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffd09c3aa0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x6639890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd09c3a30 type=377: not found Embedded_id 0x7fffd09c3a30 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffd09c3aa0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffd09c3aa0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x6639890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x6635a90) Free pointer hashtable stdsoap2.c(4079): free(0x6635580) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x6654760 Free ID hashtable Read 1156 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1038 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x6654830 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x6630a10 stdsoap2.c(7219): malloc(64) = 0x6631140 stdsoap2.c(2336): malloc(40) = 0x662dab0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x6637620 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x66529b0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x662dda0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x66770a0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x662db20 stdsoap2.c(7172): malloc(62) = 0x6630a80 stdsoap2.c(7219): malloc(64) = 0x66528f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fffd09c3ac0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x6663400 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6663460 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6663460 size=4 level=0 Element content value='SRM_FAILURE' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(40) = 0x6630820 Enter id='' type=3 loc=0x6630820 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6630880 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x66528b0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x662d6b0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x6663da0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x66548c0 stdsoap2.c(6963): free(0x6630a10) stdsoap2.c(4726): malloc(104) = 0x662d900 Enter id='' type=6 loc=0x662d900 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x662d970 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x662d970 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x66639c0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x662db90 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x662da30 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x662d6b0->(nil)) stdsoap2.c(4726): malloc(24) = 0x6662e20 First block Copy 8 bytes from 0x662d6c0 to 0x6662e20 Next block stdsoap2.c(2026): free(0x662d6b0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x66528b0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x66770a0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x662dda0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x66529b0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x6637620) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x662dab0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x66528f0) stdsoap2.c(5406): free(0x6630a80) stdsoap2.c(5405): free(0x6631140) stdsoap2.c(5406): free(0x6654830) stdsoap2.c(5411): free(0x66548c0) stdsoap2.c(5422): free(0x662db20) stdsoap2.c(5428): free(0x6654760) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x6662e20) stdsoap2.c(4857): free(0x662da30) stdsoap2.c(4857): free(0x662db90) stdsoap2.c(4857): free(0x66639c0) stdsoap2.c(4857): free(0x662d970) stdsoap2.c(4857): free(0x662d900) stdsoap2.c(4857): free(0x6663da0) stdsoap2.c(4857): free(0x6630880) stdsoap2.c(4857): free(0x6630820) stdsoap2.c(4857): free(0x6663460) stdsoap2.c(4857): free(0x6663400) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x6639940) Free logfiles stdsoap2.c(2959): free(0x6631580) stdsoap2.c(2959): free(0x6632640) stdsoap2.c(2959): free(0x6633670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff4c78c340 type=81: not found stdsoap2.c(4149): malloc(1288) = 0xe6a2c20 Pointer enter location=0x7fff4c78c340 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fff4c78c340 type=81 (0 0) Lookup location=0xe69d720 type=3: not found Pointer enter location=0xe69d720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xe69d720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xe6a3130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4c772df0 type=311: not found Embedded_id 0x7fff4c772df0 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff4c78c340 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff4c78c340 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xe69d720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4c772df0 type=311: not found Embedded_id 0x7fff4c772df0 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff4c78c340 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff4c78c340 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xe69d720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xe6a3130) Free pointer hashtable stdsoap2.c(4079): free(0xe6a2c20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xe6ad3d0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xe6aa3e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xe6ae440 stdsoap2.c(7219): malloc(64) = 0xe6aca60 stdsoap2.c(2336): malloc(40) = 0xe6a45f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xe6aaa70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe6ad530 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe6a5580 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe6cce80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xe6ad830 stdsoap2.c(7172): malloc(62) = 0xe6ad8d0 stdsoap2.c(7219): malloc(64) = 0xe6aa7f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fff4c78c360 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xe6ae6b0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe6aa6a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe6aa6a0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0xe6bf230 Enter id='' type=3 loc=0xe6bf230 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xe6cce80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xe6a5580) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xe6ad530) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xe6aaa70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xe6a45f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xe6aa7f0) stdsoap2.c(5406): free(0xe6ad8d0) stdsoap2.c(5405): free(0xe6aca60) stdsoap2.c(5406): free(0xe6aa3e0) stdsoap2.c(5411): free(0xe6ae440) stdsoap2.c(5422): free(0xe6ad830) stdsoap2.c(5428): free(0xe6ad3d0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xe6bf230) stdsoap2.c(4857): free(0xe6aa6a0) stdsoap2.c(4857): free(0xe6ae6b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xe68e530) Free logfiles stdsoap2.c(2959): free(0xe68d580) stdsoap2.c(2959): free(0xe68e640) stdsoap2.c(2959): free(0xe68f670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xe68ae30 stdsoap2.c(4726): malloc(24) = 0xe68ae60 stdsoap2.c(4726): malloc(48) = 0xe68c8c0 stdsoap2.c(4726): malloc(24) = 0xe68c930 stdsoap2.c(4726): malloc(32) = 0xe68c980 stdsoap2.c(4726): malloc(24) = 0xe68c9e0 stdsoap2.c(4726): malloc(32) = 0xe68ca30 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff4c78c330 type=101: not found stdsoap2.c(4149): malloc(1288) = 0xe68ca90 Pointer enter location=0x7fff4c78c330 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fff4c78c330 type=101 (0 0) Lookup location=0xe68ae30 type=32: not found Pointer enter location=0xe68ae30 array=(nil) size=0 dim=0 type=32 id=2 Reference 0xe68ae30 type=32 (0 0) Lookup location=0xe68c980 type=31: not found Pointer enter location=0xe68c980 array=(nil) size=0 dim=0 type=31 id=3 Reference 0xe68c980 type=31 (0 0) Lookup location=0xe683820 type=3: not found Pointer enter location=0xe683820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xe683820 type=3 (0 0) Lookup location=0xe68c9e0 type=148: not found Pointer enter location=0xe68c9e0 array=(nil) size=0 dim=0 type=148 id=5 Reference 0xe68c9e0 type=148 (0 0) Lookup location=0x7fff4c78c4e0 type=1: not found Pointer enter location=0x7fff4c78c4e0 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff4c78c4e0 type=1 (0 0) Lookup location=0x2b244b46a0c8 type=131: not found Pointer enter location=0x2b244b46a0c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b244b46a0c8 type=131 (0 0) Lookup location=0xe68c8c0 type=28: not found Pointer enter location=0xe68c8c0 array=(nil) size=0 dim=0 type=28 id=8 Reference 0xe68c8c0 type=28 (0 0) Lookup location=0xe68ca30 type=14: not found Pointer enter location=0xe68ca30 array=(nil) size=0 dim=0 type=14 id=9 Reference 0xe68ca30 type=14 (0 0) Lookup location=0x2b244a459869 type=3: not found Pointer enter location=0x2b244a459869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b244a459869 type=3 (0 0) Lookup location=0x2b244a45986e type=3: not found Pointer enter location=0x2b244a45986e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b244a45986e type=3 (0 0) Lookup location=0x2b244a459873 type=3: not found Pointer enter location=0x2b244a459873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b244a459873 type=3 (0 0) Lookup location=0x2b244a459878 type=3: not found Pointer enter location=0x2b244a459878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b244a459878 type=3 (0 0) Lookup location=0x2b244a459880 type=3: not found Pointer enter location=0x2b244a459880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b244a459880 type=3 (0 0) Lookup location=0x2b244a459886 type=3: not found Pointer enter location=0x2b244a459886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2b244a459886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xe68cfd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4c772da0 type=371: not found Embedded_id 0x7fff4c772da0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff4c78c330 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff4c78c330 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xe68ae30 type=32 id=2 Is embedded? 0 0 Embedded_id 0xe68ae30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xe68c980 type=31 id=3 Is embedded? 0 0 Embedded_id 0xe68c980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xe683820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xe68c9e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0xe68c9e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff4c78c4e0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff4c78c4e0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b244b46a0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b244b46a0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xe68c8c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0xe68c8c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xe68ca30 type=14 id=9 Is embedded? 0 0 Embedded_id 0xe68ca30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b244a459869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b244a45986e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b244a459873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b244a459878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b244a459880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b244a459886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=7 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4c772da0 type=371: not found Embedded_id 0x7fff4c772da0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff4c78c330 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff4c78c330 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xe68ae30 type=32 id=2 Is embedded? 0 0 Embedded_id 0xe68ae30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xe68c980 type=31 id=3 Is embedded? 0 0 Embedded_id 0xe68c980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xe683820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xe68c9e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0xe68c9e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff4c78c4e0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff4c78c4e0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b244b46a0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b244b46a0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xe68c8c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0xe68c8c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xe68ca30 type=14 id=9 Is embedded? 0 0 Embedded_id 0xe68ca30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b244a459869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b244a45986e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b244a459873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b244a459878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b244a459880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b244a459886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xe68cfd0) Free pointer hashtable stdsoap2.c(4079): free(0xe68ca90) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xe68cfd0 Free ID hashtable Read 1037 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xe6987f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xe6bf6e0 stdsoap2.c(7219): malloc(64) = 0xe698040 stdsoap2.c(2336): malloc(40) = 0xe695890 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xe690d90 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe6d4480 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe6aecc0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe695bb0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xe695900 stdsoap2.c(7172): malloc(62) = 0xe695940 stdsoap2.c(7219): malloc(64) = 0xe698890 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fff4c78c390 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xe6aec00 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe698630 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe698630 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xe6bff60 Enter id='' type=3 loc=0xe6bff60 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe6bffa0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xe6aeb90 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xe695490 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xe6b09c0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xe6b0ac0 stdsoap2.c(6963): free(0xe6bf6e0) stdsoap2.c(4726): malloc(104) = 0xe6956e0 Enter id='' type=6 loc=0xe6956e0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe695780 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe695780 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xe695490->(nil)) stdsoap2.c(4726): malloc(24) = 0xe6bfbe0 First block Copy 8 bytes from 0xe6954a0 to 0xe6bfbe0 Next block stdsoap2.c(2026): free(0xe695490) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xe6aeb90) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xe695bb0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xe6aecc0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xe6d4480) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xe690d90) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xe695890) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xe698890) stdsoap2.c(5406): free(0xe695940) stdsoap2.c(5405): free(0xe698040) stdsoap2.c(5406): free(0xe6987f0) stdsoap2.c(5411): free(0xe6b0ac0) stdsoap2.c(5422): free(0xe695900) stdsoap2.c(5428): free(0xe68cfd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xe6bfbe0) stdsoap2.c(4857): free(0xe695780) stdsoap2.c(4857): free(0xe6956e0) stdsoap2.c(4857): free(0xe6b09c0) stdsoap2.c(4857): free(0xe6bffa0) stdsoap2.c(4857): free(0xe6bff60) stdsoap2.c(4857): free(0xe698630) stdsoap2.c(4857): free(0xe6aec00) stdsoap2.c(4857): free(0xe68ca30) stdsoap2.c(4857): free(0xe68c9e0) stdsoap2.c(4857): free(0xe68c980) stdsoap2.c(4857): free(0xe68c930) stdsoap2.c(4857): free(0xe68c8c0) stdsoap2.c(4857): free(0xe68ae60) stdsoap2.c(4857): free(0xe68ae30) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xe683cc0) Free logfiles stdsoap2.c(2959): free(0xe68f670) stdsoap2.c(2959): free(0xe68e640) stdsoap2.c(2959): free(0xe68d580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff4c772e80 type=103: not found stdsoap2.c(4149): malloc(1288) = 0xe6a8a60 Pointer enter location=0x7fff4c772e80 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff4c772e80 type=103 (0 0) Lookup location=0xe695890 type=3: not found Pointer enter location=0xe695890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xe695890 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xe6a8f70 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4c772e10 type=377: not found Embedded_id 0x7fff4c772e10 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff4c772e80 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff4c772e80 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xe695890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4c772e10 type=377: not found Embedded_id 0x7fff4c772e10 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff4c772e80 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff4c772e80 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xe695890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xe6a8f70) Free pointer hashtable stdsoap2.c(4079): free(0xe6a8a60) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xe688770 Free ID hashtable Read 1156 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1038 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xe6cff40 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xe6cfe00 stdsoap2.c(7219): malloc(64) = 0xe68d2d0 stdsoap2.c(2336): malloc(40) = 0xe6d2fd0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xe6cdb30 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe6cd5a0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe6d1130 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe6d02b0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xe6b9e80 stdsoap2.c(7172): malloc(62) = 0xe6cd2b0 stdsoap2.c(7219): malloc(64) = 0xe6d0740 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff4c772ea0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xe6d0600 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe6d0660 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe6d0660 size=4 level=0 Element content value='SRM_FAILURE' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(40) = 0xe6d04a0 Enter id='' type=3 loc=0xe6d04a0 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe6d0500 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xe6d0220 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xe6d0560 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xe6cadd0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xe6cd420 stdsoap2.c(6963): free(0xe6cfe00) stdsoap2.c(4726): malloc(104) = 0xe6c0000 Enter id='' type=6 loc=0xe6c0000 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe6c00a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe6c00a0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xe6cd230 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xe6d10e0 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xe6d1070 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xe6d0560->(nil)) stdsoap2.c(4726): malloc(24) = 0xe6cd000 First block Copy 8 bytes from 0xe6d0570 to 0xe6cd000 Next block stdsoap2.c(2026): free(0xe6d0560) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xe6d0220) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xe6d02b0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xe6d1130) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xe6cd5a0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xe6cdb30) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xe6d2fd0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xe6d0740) stdsoap2.c(5406): free(0xe6cd2b0) stdsoap2.c(5405): free(0xe68d2d0) stdsoap2.c(5406): free(0xe6cff40) stdsoap2.c(5411): free(0xe6cd420) stdsoap2.c(5422): free(0xe6b9e80) stdsoap2.c(5428): free(0xe688770) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xe6cd000) stdsoap2.c(4857): free(0xe6d1070) stdsoap2.c(4857): free(0xe6d10e0) stdsoap2.c(4857): free(0xe6cd230) stdsoap2.c(4857): free(0xe6c00a0) stdsoap2.c(4857): free(0xe6c0000) stdsoap2.c(4857): free(0xe6cadd0) stdsoap2.c(4857): free(0xe6d0500) stdsoap2.c(4857): free(0xe6d04a0) stdsoap2.c(4857): free(0xe6d0660) stdsoap2.c(4857): free(0xe6d0600) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xe6b0a50) Free logfiles stdsoap2.c(2959): free(0xe68d580) stdsoap2.c(2959): free(0xe68e640) stdsoap2.c(2959): free(0xe68f670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffea708cd0 type=81: not found stdsoap2.c(4149): malloc(1288) = 0xecdac20 Pointer enter location=0x7fffea708cd0 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fffea708cd0 type=81 (0 0) Lookup location=0xecd5720 type=3: not found Pointer enter location=0xecd5720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xecd5720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xecdb130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffea6ef780 type=311: not found Embedded_id 0x7fffea6ef780 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fffea708cd0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fffea708cd0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xecd5720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffea6ef780 type=311: not found Embedded_id 0x7fffea6ef780 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fffea708cd0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fffea708cd0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xecd5720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xecdb130) Free pointer hashtable stdsoap2.c(4079): free(0xecdac20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xece53d0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xece23e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xece6440 stdsoap2.c(7219): malloc(64) = 0xece4a60 stdsoap2.c(2336): malloc(40) = 0xecdc5f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xece2a70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xece5530 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xecdd580 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xed04e80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xece5830 stdsoap2.c(7172): malloc(62) = 0xece58d0 stdsoap2.c(7219): malloc(64) = 0xece27f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fffea708cf0 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xece66b0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xece26a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xece26a0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0xecf7230 Enter id='' type=3 loc=0xecf7230 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xed04e80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xecdd580) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xece5530) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xece2a70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xecdc5f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xece27f0) stdsoap2.c(5406): free(0xece58d0) stdsoap2.c(5405): free(0xece4a60) stdsoap2.c(5406): free(0xece23e0) stdsoap2.c(5411): free(0xece6440) stdsoap2.c(5422): free(0xece5830) stdsoap2.c(5428): free(0xece53d0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xecf7230) stdsoap2.c(4857): free(0xece26a0) stdsoap2.c(4857): free(0xece66b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xecc6530) Free logfiles stdsoap2.c(2959): free(0xecc5580) stdsoap2.c(2959): free(0xecc6640) stdsoap2.c(2959): free(0xecc7670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xecc2e30 stdsoap2.c(4726): malloc(24) = 0xecc2e60 stdsoap2.c(4726): malloc(48) = 0xecc48c0 stdsoap2.c(4726): malloc(24) = 0xecc4930 stdsoap2.c(4726): malloc(32) = 0xecc4980 stdsoap2.c(4726): malloc(24) = 0xecc49e0 stdsoap2.c(4726): malloc(32) = 0xecc4a30 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffea708cc0 type=101: not found stdsoap2.c(4149): malloc(1288) = 0xecc4a90 Pointer enter location=0x7fffea708cc0 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fffea708cc0 type=101 (0 0) Lookup location=0xecc2e30 type=32: not found Pointer enter location=0xecc2e30 array=(nil) size=0 dim=0 type=32 id=2 Reference 0xecc2e30 type=32 (0 0) Lookup location=0xecc4980 type=31: not found Pointer enter location=0xecc4980 array=(nil) size=0 dim=0 type=31 id=3 Reference 0xecc4980 type=31 (0 0) Lookup location=0xecbb820 type=3: not found Pointer enter location=0xecbb820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xecbb820 type=3 (0 0) Lookup location=0xecc49e0 type=148: not found Pointer enter location=0xecc49e0 array=(nil) size=0 dim=0 type=148 id=5 Reference 0xecc49e0 type=148 (0 0) Lookup location=0x7fffea708e70 type=1: not found Pointer enter location=0x7fffea708e70 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fffea708e70 type=1 (0 0) Lookup location=0x2b13b13d00c8 type=131: not found Pointer enter location=0x2b13b13d00c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b13b13d00c8 type=131 (0 0) Lookup location=0xecc48c0 type=28: not found Pointer enter location=0xecc48c0 array=(nil) size=0 dim=0 type=28 id=8 Reference 0xecc48c0 type=28 (0 0) Lookup location=0xecc4a30 type=14: not found Pointer enter location=0xecc4a30 array=(nil) size=0 dim=0 type=14 id=9 Reference 0xecc4a30 type=14 (0 0) Lookup location=0x2b13b03bf869 type=3: not found Pointer enter location=0x2b13b03bf869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b13b03bf869 type=3 (0 0) Lookup location=0x2b13b03bf86e type=3: not found Pointer enter location=0x2b13b03bf86e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b13b03bf86e type=3 (0 0) Lookup location=0x2b13b03bf873 type=3: not found Pointer enter location=0x2b13b03bf873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b13b03bf873 type=3 (0 0) Lookup location=0x2b13b03bf878 type=3: not found Pointer enter location=0x2b13b03bf878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b13b03bf878 type=3 (0 0) Lookup location=0x2b13b03bf880 type=3: not found Pointer enter location=0x2b13b03bf880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b13b03bf880 type=3 (0 0) Lookup location=0x2b13b03bf886 type=3: not found Pointer enter location=0x2b13b03bf886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2b13b03bf886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xecc4fd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffea6ef730 type=371: not found Embedded_id 0x7fffea6ef730 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fffea708cc0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fffea708cc0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xecc2e30 type=32 id=2 Is embedded? 0 0 Embedded_id 0xecc2e30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xecc4980 type=31 id=3 Is embedded? 0 0 Embedded_id 0xecc4980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xecbb820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xecc49e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0xecc49e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fffea708e70 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffea708e70 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b13b13d00c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b13b13d00c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xecc48c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0xecc48c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xecc4a30 type=14 id=9 Is embedded? 0 0 Embedded_id 0xecc4a30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b13b03bf869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13b03bf86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13b03bf873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13b03bf878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13b03bf880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13b03bf886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=7 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffea6ef730 type=371: not found Embedded_id 0x7fffea6ef730 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fffea708cc0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fffea708cc0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xecc2e30 type=32 id=2 Is embedded? 0 0 Embedded_id 0xecc2e30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xecc4980 type=31 id=3 Is embedded? 0 0 Embedded_id 0xecc4980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xecbb820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xecc49e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0xecc49e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fffea708e70 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffea708e70 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b13b13d00c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b13b13d00c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xecc48c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0xecc48c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xecc4a30 type=14 id=9 Is embedded? 0 0 Embedded_id 0xecc4a30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b13b03bf869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13b03bf86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13b03bf873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13b03bf878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13b03bf880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b13b03bf886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xecc4fd0) Free pointer hashtable stdsoap2.c(4079): free(0xecc4a90) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xecc4fd0 Free ID hashtable Read 1037 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xed0c370 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xecd07f0 stdsoap2.c(7219): malloc(64) = 0xecd0040 stdsoap2.c(2336): malloc(40) = 0xeccd890 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xecc8d90 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xece6c90 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xeccdb80 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xed0b0a0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xecf7fe0 stdsoap2.c(7172): malloc(62) = 0xecd0860 stdsoap2.c(7219): malloc(64) = 0xece6bd0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fffea708d20 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xeccd900 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xecd0600 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xecd0600 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xecd0660 Enter id='' type=3 loc=0xecd0660 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xece89c0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xece6b90 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xeccd490 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xecf7650 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xece8ac0 stdsoap2.c(6963): free(0xecd07f0) stdsoap2.c(4726): malloc(104) = 0xecf76e0 Enter id='' type=6 loc=0xecf76e0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xece8bb0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xece8bb0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xeccd490->(nil)) stdsoap2.c(4726): malloc(24) = 0xecf7c60 First block Copy 8 bytes from 0xeccd4a0 to 0xecf7c60 Next block stdsoap2.c(2026): free(0xeccd490) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xece6b90) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xed0b0a0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xeccdb80) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xece6c90) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xecc8d90) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xeccd890) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xece6bd0) stdsoap2.c(5406): free(0xecd0860) stdsoap2.c(5405): free(0xecd0040) stdsoap2.c(5406): free(0xed0c370) stdsoap2.c(5411): free(0xece8ac0) stdsoap2.c(5422): free(0xecf7fe0) stdsoap2.c(5428): free(0xecc4fd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xecf7c60) stdsoap2.c(4857): free(0xece8bb0) stdsoap2.c(4857): free(0xecf76e0) stdsoap2.c(4857): free(0xecf7650) stdsoap2.c(4857): free(0xece89c0) stdsoap2.c(4857): free(0xecd0660) stdsoap2.c(4857): free(0xecd0600) stdsoap2.c(4857): free(0xeccd900) stdsoap2.c(4857): free(0xecc4a30) stdsoap2.c(4857): free(0xecc49e0) stdsoap2.c(4857): free(0xecc4980) stdsoap2.c(4857): free(0xecc4930) stdsoap2.c(4857): free(0xecc48c0) stdsoap2.c(4857): free(0xecc2e60) stdsoap2.c(4857): free(0xecc2e30) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xecbbcc0) Free logfiles stdsoap2.c(2959): free(0xecc7670) stdsoap2.c(2959): free(0xecc6640) stdsoap2.c(2959): free(0xecc5580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffea6ef810 type=103: not found stdsoap2.c(4149): malloc(1288) = 0xecc9580 Pointer enter location=0x7fffea6ef810 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fffea6ef810 type=103 (0 0) Lookup location=0xeccd890 type=3: not found Pointer enter location=0xeccd890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xeccd890 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xecc9a90 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffea6ef7a0 type=377: not found Embedded_id 0x7fffea6ef7a0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffea6ef810 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffea6ef810 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xeccd890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffea6ef7a0 type=377: not found Embedded_id 0x7fffea6ef7a0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffea6ef810 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffea6ef810 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xeccd890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xecc9a90) Free pointer hashtable stdsoap2.c(4079): free(0xecc9580) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xece8760 Free ID hashtable Read 1156 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1038 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xece8830 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xecc4a10 stdsoap2.c(7219): malloc(64) = 0xecc5140 stdsoap2.c(2336): malloc(40) = 0xecc1ab0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xeccb620 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xece69b0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xecc1da0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xed0b0b0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xecc1b20 stdsoap2.c(7172): malloc(62) = 0xecc4a80 stdsoap2.c(7219): malloc(64) = 0xece68f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fffea6ef830 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xecc4820 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xecc4880 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xecc4880 size=4 level=0 Element content value='SRM_FAILURE' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(40) = 0xecf7d20 Enter id='' type=3 loc=0xecf7d20 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xecf7d80 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xece68b0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xecc16b0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xecf73f0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xece8890 stdsoap2.c(6963): free(0xecc4a10) stdsoap2.c(4726): malloc(104) = 0xecc1900 Enter id='' type=6 loc=0xecc1900 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xecc19a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xecc19a0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xecf79a0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xecc1b90 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xecf7480 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xecc16b0->(nil)) stdsoap2.c(4726): malloc(24) = 0xecc1a30 First block Copy 8 bytes from 0xecc16c0 to 0xecc1a30 Next block stdsoap2.c(2026): free(0xecc16b0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xece68b0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xed0b0b0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xecc1da0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xece69b0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xeccb620) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xecc1ab0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xece68f0) stdsoap2.c(5406): free(0xecc4a80) stdsoap2.c(5405): free(0xecc5140) stdsoap2.c(5406): free(0xece8830) stdsoap2.c(5411): free(0xece8890) stdsoap2.c(5422): free(0xecc1b20) stdsoap2.c(5428): free(0xece8760) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xecc1a30) stdsoap2.c(4857): free(0xecf7480) stdsoap2.c(4857): free(0xecc1b90) stdsoap2.c(4857): free(0xecf79a0) stdsoap2.c(4857): free(0xecc19a0) stdsoap2.c(4857): free(0xecc1900) stdsoap2.c(4857): free(0xecf73f0) stdsoap2.c(4857): free(0xecf7d80) stdsoap2.c(4857): free(0xecf7d20) stdsoap2.c(4857): free(0xecc4880) stdsoap2.c(4857): free(0xecc4820) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xeccd940) Free logfiles stdsoap2.c(2959): free(0xecc5580) stdsoap2.c(2959): free(0xecc6640) stdsoap2.c(2959): free(0xecc7670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff47fcc270 type=81: not found stdsoap2.c(4149): malloc(1288) = 0x17bbac20 Pointer enter location=0x7fff47fcc270 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fff47fcc270 type=81 (0 0) Lookup location=0x17bb5720 type=3: not found Pointer enter location=0x17bb5720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x17bb5720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x17bbb130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff47fb2d20 type=311: not found Embedded_id 0x7fff47fb2d20 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff47fcc270 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff47fcc270 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x17bb5720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff47fb2d20 type=311: not found Embedded_id 0x7fff47fb2d20 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff47fcc270 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff47fcc270 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x17bb5720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x17bbb130) Free pointer hashtable stdsoap2.c(4079): free(0x17bbac20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x17bc53d0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x17bc23e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x17bc6440 stdsoap2.c(7219): malloc(64) = 0x17bc4a60 stdsoap2.c(2336): malloc(40) = 0x17bbc5f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x17bc2a70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x17bc5530 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x17bbd580 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x17be4e80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x17bc5830 stdsoap2.c(7172): malloc(62) = 0x17bc58d0 stdsoap2.c(7219): malloc(64) = 0x17bc27f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fff47fcc290 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x17bc66b0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x17bc26a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x17bc26a0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0x17bd7230 Enter id='' type=3 loc=0x17bd7230 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x17be4e80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x17bbd580) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x17bc5530) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x17bc2a70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x17bbc5f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x17bc27f0) stdsoap2.c(5406): free(0x17bc58d0) stdsoap2.c(5405): free(0x17bc4a60) stdsoap2.c(5406): free(0x17bc23e0) stdsoap2.c(5411): free(0x17bc6440) stdsoap2.c(5422): free(0x17bc5830) stdsoap2.c(5428): free(0x17bc53d0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x17bd7230) stdsoap2.c(4857): free(0x17bc26a0) stdsoap2.c(4857): free(0x17bc66b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x17ba6530) Free logfiles stdsoap2.c(2959): free(0x17ba5580) stdsoap2.c(2959): free(0x17ba6640) stdsoap2.c(2959): free(0x17ba7670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x17ba2e30 stdsoap2.c(4726): malloc(24) = 0x17ba2e60 stdsoap2.c(4726): malloc(48) = 0x17ba48c0 stdsoap2.c(4726): malloc(24) = 0x17ba4930 stdsoap2.c(4726): malloc(32) = 0x17ba4980 stdsoap2.c(4726): malloc(24) = 0x17ba49e0 stdsoap2.c(4726): malloc(32) = 0x17ba4a30 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff47fcc260 type=101: not found stdsoap2.c(4149): malloc(1288) = 0x17ba4a90 Pointer enter location=0x7fff47fcc260 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fff47fcc260 type=101 (0 0) Lookup location=0x17ba2e30 type=32: not found Pointer enter location=0x17ba2e30 array=(nil) size=0 dim=0 type=32 id=2 Reference 0x17ba2e30 type=32 (0 0) Lookup location=0x17ba4980 type=31: not found Pointer enter location=0x17ba4980 array=(nil) size=0 dim=0 type=31 id=3 Reference 0x17ba4980 type=31 (0 0) Lookup location=0x17b9b820 type=3: not found Pointer enter location=0x17b9b820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x17b9b820 type=3 (0 0) Lookup location=0x17ba49e0 type=148: not found Pointer enter location=0x17ba49e0 array=(nil) size=0 dim=0 type=148 id=5 Reference 0x17ba49e0 type=148 (0 0) Lookup location=0x7fff47fcc410 type=1: not found Pointer enter location=0x7fff47fcc410 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff47fcc410 type=1 (0 0) Lookup location=0x2b136a82f0c8 type=131: not found Pointer enter location=0x2b136a82f0c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b136a82f0c8 type=131 (0 0) Lookup location=0x17ba48c0 type=28: not found Pointer enter location=0x17ba48c0 array=(nil) size=0 dim=0 type=28 id=8 Reference 0x17ba48c0 type=28 (0 0) Lookup location=0x17ba4a30 type=14: not found Pointer enter location=0x17ba4a30 array=(nil) size=0 dim=0 type=14 id=9 Reference 0x17ba4a30 type=14 (0 0) Lookup location=0x2b136981e869 type=3: not found Pointer enter location=0x2b136981e869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b136981e869 type=3 (0 0) Lookup location=0x2b136981e86e type=3: not found Pointer enter location=0x2b136981e86e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b136981e86e type=3 (0 0) Lookup location=0x2b136981e873 type=3: not found Pointer enter location=0x2b136981e873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b136981e873 type=3 (0 0) Lookup location=0x2b136981e878 type=3: not found Pointer enter location=0x2b136981e878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b136981e878 type=3 (0 0) Lookup location=0x2b136981e880 type=3: not found Pointer enter location=0x2b136981e880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b136981e880 type=3 (0 0) Lookup location=0x2b136981e886 type=3: not found Pointer enter location=0x2b136981e886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2b136981e886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x17ba4fd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff47fb2cd0 type=371: not found Embedded_id 0x7fff47fb2cd0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff47fcc260 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff47fcc260 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x17ba2e30 type=32 id=2 Is embedded? 0 0 Embedded_id 0x17ba2e30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x17ba4980 type=31 id=3 Is embedded? 0 0 Embedded_id 0x17ba4980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x17b9b820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x17ba49e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0x17ba49e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff47fcc410 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff47fcc410 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b136a82f0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b136a82f0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x17ba48c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x17ba48c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x17ba4a30 type=14 id=9 Is embedded? 0 0 Embedded_id 0x17ba4a30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b136981e869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b136981e86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b136981e873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b136981e878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b136981e880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b136981e886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=7 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff47fb2cd0 type=371: not found Embedded_id 0x7fff47fb2cd0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff47fcc260 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff47fcc260 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x17ba2e30 type=32 id=2 Is embedded? 0 0 Embedded_id 0x17ba2e30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x17ba4980 type=31 id=3 Is embedded? 0 0 Embedded_id 0x17ba4980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x17b9b820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x17ba49e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0x17ba49e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff47fcc410 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff47fcc410 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b136a82f0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b136a82f0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x17ba48c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x17ba48c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x17ba4a30 type=14 id=9 Is embedded? 0 0 Embedded_id 0x17ba4a30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b136981e869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b136981e86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b136981e873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b136981e878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b136981e880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b136981e886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x17ba4fd0) Free pointer hashtable stdsoap2.c(4079): free(0x17ba4a90) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x17ba4fd0 Free ID hashtable Read 1037 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x17bec370 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x17bb07f0 stdsoap2.c(7219): malloc(64) = 0x17bb0040 stdsoap2.c(2336): malloc(40) = 0x17bad890 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x17ba8d90 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x17bc6c90 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x17badb80 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x17beb0a0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x17bd7fe0 stdsoap2.c(7172): malloc(62) = 0x17bb0860 stdsoap2.c(7219): malloc(64) = 0x17bc6bd0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fff47fcc2c0 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x17bad900 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x17bb0600 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x17bb0600 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x17bb0660 Enter id='' type=3 loc=0x17bb0660 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x17bc89c0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x17bc6b90 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x17bad490 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x17bd7650 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x17bc8ac0 stdsoap2.c(6963): free(0x17bb07f0) stdsoap2.c(4726): malloc(104) = 0x17bd76e0 Enter id='' type=6 loc=0x17bd76e0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x17bc8bb0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x17bc8bb0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x17bad490->(nil)) stdsoap2.c(4726): malloc(24) = 0x17bd7c60 First block Copy 8 bytes from 0x17bad4a0 to 0x17bd7c60 Next block stdsoap2.c(2026): free(0x17bad490) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x17bc6b90) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x17beb0a0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x17badb80) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x17bc6c90) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x17ba8d90) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x17bad890) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x17bc6bd0) stdsoap2.c(5406): free(0x17bb0860) stdsoap2.c(5405): free(0x17bb0040) stdsoap2.c(5406): free(0x17bec370) stdsoap2.c(5411): free(0x17bc8ac0) stdsoap2.c(5422): free(0x17bd7fe0) stdsoap2.c(5428): free(0x17ba4fd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x17bd7c60) stdsoap2.c(4857): free(0x17bc8bb0) stdsoap2.c(4857): free(0x17bd76e0) stdsoap2.c(4857): free(0x17bd7650) stdsoap2.c(4857): free(0x17bc89c0) stdsoap2.c(4857): free(0x17bb0660) stdsoap2.c(4857): free(0x17bb0600) stdsoap2.c(4857): free(0x17bad900) stdsoap2.c(4857): free(0x17ba4a30) stdsoap2.c(4857): free(0x17ba49e0) stdsoap2.c(4857): free(0x17ba4980) stdsoap2.c(4857): free(0x17ba4930) stdsoap2.c(4857): free(0x17ba48c0) stdsoap2.c(4857): free(0x17ba2e60) stdsoap2.c(4857): free(0x17ba2e30) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x17b9bcc0) Free logfiles stdsoap2.c(2959): free(0x17ba7670) stdsoap2.c(2959): free(0x17ba6640) stdsoap2.c(2959): free(0x17ba5580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff47fb2db0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x17ba9580 Pointer enter location=0x7fff47fb2db0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff47fb2db0 type=103 (0 0) Lookup location=0x17bad890 type=3: not found Pointer enter location=0x17bad890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x17bad890 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x17ba9a90 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff47fb2d40 type=377: not found Embedded_id 0x7fff47fb2d40 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff47fb2db0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff47fb2db0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x17bad890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff47fb2d40 type=377: not found Embedded_id 0x7fff47fb2d40 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff47fb2db0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff47fb2db0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x17bad890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x17ba9a90) Free pointer hashtable stdsoap2.c(4079): free(0x17ba9580) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x17bc8760 Free ID hashtable Read 1156 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1038 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x17bc8830 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x17ba4a10 stdsoap2.c(7219): malloc(64) = 0x17ba5140 stdsoap2.c(2336): malloc(40) = 0x17ba1ab0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x17bab620 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x17bc69b0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x17ba1da0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x17beb0a0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x17ba1b20 stdsoap2.c(7172): malloc(62) = 0x17ba4a80 stdsoap2.c(7219): malloc(64) = 0x17bc68f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff47fb2dd0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x17bd7400 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x17bd7460 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x17bd7460 size=4 level=0 Element content value='SRM_FAILURE' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(40) = 0x17ba4820 Enter id='' type=3 loc=0x17ba4820 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x17ba4880 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x17bc68b0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x17ba16b0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x17bd7da0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x17bc88c0 stdsoap2.c(6963): free(0x17ba4a10) stdsoap2.c(4726): malloc(104) = 0x17ba1900 Enter id='' type=6 loc=0x17ba1900 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x17ba1970 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x17ba1970 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x17bd79c0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x17ba1b90 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x17ba1a30 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x17ba16b0->(nil)) stdsoap2.c(4726): malloc(24) = 0x17bd6e20 First block Copy 8 bytes from 0x17ba16c0 to 0x17bd6e20 Next block stdsoap2.c(2026): free(0x17ba16b0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x17bc68b0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x17beb0a0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x17ba1da0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x17bc69b0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x17bab620) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x17ba1ab0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x17bc68f0) stdsoap2.c(5406): free(0x17ba4a80) stdsoap2.c(5405): free(0x17ba5140) stdsoap2.c(5406): free(0x17bc8830) stdsoap2.c(5411): free(0x17bc88c0) stdsoap2.c(5422): free(0x17ba1b20) stdsoap2.c(5428): free(0x17bc8760) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x17bd6e20) stdsoap2.c(4857): free(0x17ba1a30) stdsoap2.c(4857): free(0x17ba1b90) stdsoap2.c(4857): free(0x17bd79c0) stdsoap2.c(4857): free(0x17ba1970) stdsoap2.c(4857): free(0x17ba1900) stdsoap2.c(4857): free(0x17bd7da0) stdsoap2.c(4857): free(0x17ba4880) stdsoap2.c(4857): free(0x17ba4820) stdsoap2.c(4857): free(0x17bd7460) stdsoap2.c(4857): free(0x17bd7400) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x17bad940) Free logfiles stdsoap2.c(2959): free(0x17ba5580) stdsoap2.c(2959): free(0x17ba6640) stdsoap2.c(2959): free(0x17ba7670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff73f7a980 type=81: not found stdsoap2.c(4149): malloc(1288) = 0x1112fc20 Pointer enter location=0x7fff73f7a980 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fff73f7a980 type=81 (0 0) Lookup location=0x1112a720 type=3: not found Pointer enter location=0x1112a720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x1112a720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x11130130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff73f61430 type=311: not found Embedded_id 0x7fff73f61430 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff73f7a980 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff73f7a980 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x1112a720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff73f61430 type=311: not found Embedded_id 0x7fff73f61430 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff73f7a980 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff73f7a980 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x1112a720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x11130130) Free pointer hashtable stdsoap2.c(4079): free(0x1112fc20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1113a3d0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x111373e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x1113b440 stdsoap2.c(7219): malloc(64) = 0x11139a60 stdsoap2.c(2336): malloc(40) = 0x111315f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x11137a70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1113a530 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11132580 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11159e80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1113a830 stdsoap2.c(7172): malloc(62) = 0x1113a8d0 stdsoap2.c(7219): malloc(64) = 0x111377f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fff73f7a9a0 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x1113b6b0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x111376a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x111376a0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0x1114c230 Enter id='' type=3 loc=0x1114c230 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x11159e80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x11132580) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x1113a530) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x11137a70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x111315f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x111377f0) stdsoap2.c(5406): free(0x1113a8d0) stdsoap2.c(5405): free(0x11139a60) stdsoap2.c(5406): free(0x111373e0) stdsoap2.c(5411): free(0x1113b440) stdsoap2.c(5422): free(0x1113a830) stdsoap2.c(5428): free(0x1113a3d0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1114c230) stdsoap2.c(4857): free(0x111376a0) stdsoap2.c(4857): free(0x1113b6b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x1111b530) Free logfiles stdsoap2.c(2959): free(0x1111a580) stdsoap2.c(2959): free(0x1111b640) stdsoap2.c(2959): free(0x1111c670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x11117e90 stdsoap2.c(4726): malloc(24) = 0x11117ec0 stdsoap2.c(4726): malloc(48) = 0x11119920 stdsoap2.c(4726): malloc(24) = 0x11119990 stdsoap2.c(4726): malloc(32) = 0x111199e0 stdsoap2.c(4726): malloc(24) = 0x11119a40 stdsoap2.c(4726): malloc(32) = 0x11119a90 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff73f7a970 type=101: not found stdsoap2.c(4149): malloc(1288) = 0x11119af0 Pointer enter location=0x7fff73f7a970 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fff73f7a970 type=101 (0 0) Lookup location=0x11117e90 type=32: not found Pointer enter location=0x11117e90 array=(nil) size=0 dim=0 type=32 id=2 Reference 0x11117e90 type=32 (0 0) Lookup location=0x111199e0 type=31: not found Pointer enter location=0x111199e0 array=(nil) size=0 dim=0 type=31 id=3 Reference 0x111199e0 type=31 (0 0) Lookup location=0x11110820 type=3: not found Pointer enter location=0x11110820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x11110820 type=3 (0 0) Lookup location=0x11119a40 type=148: not found Pointer enter location=0x11119a40 array=(nil) size=0 dim=0 type=148 id=5 Reference 0x11119a40 type=148 (0 0) Lookup location=0x7fff73f7ab20 type=1: not found Pointer enter location=0x7fff73f7ab20 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff73f7ab20 type=1 (0 0) Lookup location=0x2b1fabfc90c8 type=131: not found Pointer enter location=0x2b1fabfc90c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b1fabfc90c8 type=131 (0 0) Lookup location=0x11119920 type=28: not found Pointer enter location=0x11119920 array=(nil) size=0 dim=0 type=28 id=8 Reference 0x11119920 type=28 (0 0) Lookup location=0x11119a90 type=14: not found Pointer enter location=0x11119a90 array=(nil) size=0 dim=0 type=14 id=9 Reference 0x11119a90 type=14 (0 0) Lookup location=0x2b1faafb8869 type=3: not found Pointer enter location=0x2b1faafb8869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b1faafb8869 type=3 (0 0) Lookup location=0x2b1faafb886e type=3: not found Pointer enter location=0x2b1faafb886e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b1faafb886e type=3 (0 0) Lookup location=0x2b1faafb8873 type=3: not found Pointer enter location=0x2b1faafb8873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b1faafb8873 type=3 (0 0) Lookup location=0x2b1faafb8878 type=3: not found Pointer enter location=0x2b1faafb8878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b1faafb8878 type=3 (0 0) Lookup location=0x2b1faafb8880 type=3: not found Pointer enter location=0x2b1faafb8880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b1faafb8880 type=3 (0 0) Lookup location=0x2b1faafb8886 type=3: not found Pointer enter location=0x2b1faafb8886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2b1faafb8886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x1111a030 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff73f613e0 type=371: not found Embedded_id 0x7fff73f613e0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff73f7a970 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff73f7a970 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x11117e90 type=32 id=2 Is embedded? 0 0 Embedded_id 0x11117e90 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x111199e0 type=31 id=3 Is embedded? 0 0 Embedded_id 0x111199e0 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x11110820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x11119a40 type=148 id=5 Is embedded? 0 0 Embedded_id 0x11119a40 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff73f7ab20 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff73f7ab20 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b1fabfc90c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b1fabfc90c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x11119920 type=28 id=8 Is embedded? 0 0 Embedded_id 0x11119920 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x11119a90 type=14 id=9 Is embedded? 0 0 Embedded_id 0x11119a90 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b1faafb8869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1faafb886e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1faafb8873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1faafb8878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1faafb8880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1faafb8886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=7 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff73f613e0 type=371: not found Embedded_id 0x7fff73f613e0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff73f7a970 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff73f7a970 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x11117e90 type=32 id=2 Is embedded? 0 0 Embedded_id 0x11117e90 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x111199e0 type=31 id=3 Is embedded? 0 0 Embedded_id 0x111199e0 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x11110820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x11119a40 type=148 id=5 Is embedded? 0 0 Embedded_id 0x11119a40 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff73f7ab20 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff73f7ab20 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b1fabfc90c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b1fabfc90c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x11119920 type=28 id=8 Is embedded? 0 0 Embedded_id 0x11119920 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x11119a90 type=14 id=9 Is embedded? 0 0 Embedded_id 0x11119a90 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b1faafb8869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1faafb886e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1faafb8873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1faafb8878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1faafb8880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1faafb8886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x1111a030) Free pointer hashtable stdsoap2.c(4079): free(0x11119af0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1111a030 Free ID hashtable Read 1037 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x11125850 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x11125090 stdsoap2.c(7219): malloc(64) = 0x1113bc30 stdsoap2.c(2336): malloc(40) = 0x111228f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x1111ddf0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11122be0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1115a0b0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11122960 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x111258c0 stdsoap2.c(7172): malloc(62) = 0x11125900 stdsoap2.c(7219): malloc(64) = 0x1113bba0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fff73f7a9d0 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x11125690 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1114cfa0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1114cfa0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x1114d000 Enter id='' type=3 loc=0x1114d000 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1113da10 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1113bb30 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x111224f0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x1114c610 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x1113db10 stdsoap2.c(6963): free(0x11125090) stdsoap2.c(4726): malloc(104) = 0x1114c6a0 Enter id='' type=6 loc=0x1114c6a0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1113dc00 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1113dc00 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x111224f0->(nil)) stdsoap2.c(4726): malloc(24) = 0x1114cc20 First block Copy 8 bytes from 0x11122500 to 0x1114cc20 Next block stdsoap2.c(2026): free(0x111224f0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1113bb30) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x11122960) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1115a0b0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x11122be0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x1111ddf0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x111228f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x1113bba0) stdsoap2.c(5406): free(0x11125900) stdsoap2.c(5405): free(0x1113bc30) stdsoap2.c(5406): free(0x11125850) stdsoap2.c(5411): free(0x1113db10) stdsoap2.c(5422): free(0x111258c0) stdsoap2.c(5428): free(0x1111a030) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1114cc20) stdsoap2.c(4857): free(0x1113dc00) stdsoap2.c(4857): free(0x1114c6a0) stdsoap2.c(4857): free(0x1114c610) stdsoap2.c(4857): free(0x1113da10) stdsoap2.c(4857): free(0x1114d000) stdsoap2.c(4857): free(0x1114cfa0) stdsoap2.c(4857): free(0x11125690) stdsoap2.c(4857): free(0x11119a90) stdsoap2.c(4857): free(0x11119a40) stdsoap2.c(4857): free(0x111199e0) stdsoap2.c(4857): free(0x11119990) stdsoap2.c(4857): free(0x11119920) stdsoap2.c(4857): free(0x11117ec0) stdsoap2.c(4857): free(0x11117e90) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x11137640) Free logfiles stdsoap2.c(2959): free(0x1111c670) stdsoap2.c(2959): free(0x1111b640) stdsoap2.c(2959): free(0x1111a580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff73f614c0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x11114ec0 Pointer enter location=0x7fff73f614c0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff73f614c0 type=103 (0 0) Lookup location=0x111228f0 type=3: not found Pointer enter location=0x111228f0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x111228f0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x111153d0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff73f61450 type=377: not found Embedded_id 0x7fff73f61450 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff73f614c0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff73f614c0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x111228f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff73f61450 type=377: not found Embedded_id 0x7fff73f61450 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff73f614c0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff73f614c0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x111228f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x111153d0) Free pointer hashtable stdsoap2.c(4079): free(0x11114ec0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1113d7e0 Free ID hashtable Read 1156 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1038 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1113d8b0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x11121d70 stdsoap2.c(7219): malloc(64) = 0x1114c530 stdsoap2.c(2336): malloc(40) = 0x1111ee10 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x11116a00 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x111617c0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1113ba30 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1111f100 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x111603f0 stdsoap2.c(7172): malloc(62) = 0x1111eeb0 stdsoap2.c(7219): malloc(64) = 0x11121e10 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff73f614e0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x1113b9a0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11121b80 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11121b80 size=4 level=0 Element content value='SRM_FAILURE' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(40) = 0x11121be0 Enter id='' type=3 loc=0x11121be0 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1114cdb0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1113b930 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x1111ea10 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x1113d910 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x1113d9a0 stdsoap2.c(6963): free(0x11121d70) stdsoap2.c(4726): malloc(104) = 0x1111ec90 Enter id='' type=6 loc=0x1111ec90 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1111ed30 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1111ed30 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x1114ca30 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x11122400 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x11160430 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x1111ea10->(nil)) stdsoap2.c(4726): malloc(24) = 0x1111ed90 First block Copy 8 bytes from 0x1111ea20 to 0x1111ed90 Next block stdsoap2.c(2026): free(0x1111ea10) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1113b930) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x1111f100) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1113ba30) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x111617c0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x11116a00) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x1111ee10) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x11121e10) stdsoap2.c(5406): free(0x1111eeb0) stdsoap2.c(5405): free(0x1114c530) stdsoap2.c(5406): free(0x1113d8b0) stdsoap2.c(5411): free(0x1113d9a0) stdsoap2.c(5422): free(0x111603f0) stdsoap2.c(5428): free(0x1113d7e0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1111ed90) stdsoap2.c(4857): free(0x11160430) stdsoap2.c(4857): free(0x11122400) stdsoap2.c(4857): free(0x1114ca30) stdsoap2.c(4857): free(0x1111ed30) stdsoap2.c(4857): free(0x1111ec90) stdsoap2.c(4857): free(0x1113d910) stdsoap2.c(4857): free(0x1114cdb0) stdsoap2.c(4857): free(0x11121be0) stdsoap2.c(4857): free(0x11121b80) stdsoap2.c(4857): free(0x1113b9a0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x11122a60) Free logfiles stdsoap2.c(2959): free(0x1111a580) stdsoap2.c(2959): free(0x1111b640) stdsoap2.c(2959): free(0x1111c670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff39e30e20 type=81: not found stdsoap2.c(4149): malloc(1288) = 0x85e9c20 Pointer enter location=0x7fff39e30e20 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fff39e30e20 type=81 (0 0) Lookup location=0x85e4720 type=3: not found Pointer enter location=0x85e4720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x85e4720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x85ea130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178d0 type=311: not found Embedded_id 0x7fff39e178d0 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff39e30e20 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e30e20 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x85e4720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178d0 type=311: not found Embedded_id 0x7fff39e178d0 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff39e30e20 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e30e20 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x85e4720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x85ea130) Free pointer hashtable stdsoap2.c(4079): free(0x85e9c20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x85f43d0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x85f13e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x85f5440 stdsoap2.c(7219): malloc(64) = 0x85f3a60 stdsoap2.c(2336): malloc(40) = 0x85eb5f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x85f1a70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x85f4530 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x85ec580 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8613e80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x85f4830 stdsoap2.c(7172): malloc(62) = 0x85f48d0 stdsoap2.c(7219): malloc(64) = 0x85f17f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fff39e30e40 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x85f56b0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x85f16a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x85f16a0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0x8606230 Enter id='' type=3 loc=0x8606230 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x8613e80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x85ec580) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x85f4530) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x85f1a70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x85eb5f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x85f17f0) stdsoap2.c(5406): free(0x85f48d0) stdsoap2.c(5405): free(0x85f3a60) stdsoap2.c(5406): free(0x85f13e0) stdsoap2.c(5411): free(0x85f5440) stdsoap2.c(5422): free(0x85f4830) stdsoap2.c(5428): free(0x85f43d0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x8606230) stdsoap2.c(4857): free(0x85f16a0) stdsoap2.c(4857): free(0x85f56b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x85d5530) Free logfiles stdsoap2.c(2959): free(0x85d4580) stdsoap2.c(2959): free(0x85d5640) stdsoap2.c(2959): free(0x85d6670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x85d1e90 stdsoap2.c(4726): malloc(24) = 0x85d1ec0 stdsoap2.c(4726): malloc(48) = 0x85d3920 stdsoap2.c(4726): malloc(24) = 0x85d3990 stdsoap2.c(4726): malloc(32) = 0x85d39e0 stdsoap2.c(4726): malloc(24) = 0x85d3a40 stdsoap2.c(4726): malloc(32) = 0x85d3a90 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff39e30e10 type=101: not found stdsoap2.c(4149): malloc(1288) = 0x85d3af0 Pointer enter location=0x7fff39e30e10 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fff39e30e10 type=101 (0 0) Lookup location=0x85d1e90 type=32: not found Pointer enter location=0x85d1e90 array=(nil) size=0 dim=0 type=32 id=2 Reference 0x85d1e90 type=32 (0 0) Lookup location=0x85d39e0 type=31: not found Pointer enter location=0x85d39e0 array=(nil) size=0 dim=0 type=31 id=3 Reference 0x85d39e0 type=31 (0 0) Lookup location=0x85ca820 type=3: not found Pointer enter location=0x85ca820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x85ca820 type=3 (0 0) Lookup location=0x85d3a40 type=148: not found Pointer enter location=0x85d3a40 array=(nil) size=0 dim=0 type=148 id=5 Reference 0x85d3a40 type=148 (0 0) Lookup location=0x7fff39e30fc0 type=1: not found Pointer enter location=0x7fff39e30fc0 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff39e30fc0 type=1 (0 0) Lookup location=0x2b77d5d290c8 type=131: not found Pointer enter location=0x2b77d5d290c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b77d5d290c8 type=131 (0 0) Lookup location=0x85d3920 type=28: not found Pointer enter location=0x85d3920 array=(nil) size=0 dim=0 type=28 id=8 Reference 0x85d3920 type=28 (0 0) Lookup location=0x85d3a90 type=14: not found Pointer enter location=0x85d3a90 array=(nil) size=0 dim=0 type=14 id=9 Reference 0x85d3a90 type=14 (0 0) Lookup location=0x2b77d4d18869 type=3: not found Pointer enter location=0x2b77d4d18869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b77d4d18869 type=3 (0 0) Lookup location=0x2b77d4d1886e type=3: not found Pointer enter location=0x2b77d4d1886e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b77d4d1886e type=3 (0 0) Lookup location=0x2b77d4d18873 type=3: not found Pointer enter location=0x2b77d4d18873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b77d4d18873 type=3 (0 0) Lookup location=0x2b77d4d18878 type=3: not found Pointer enter location=0x2b77d4d18878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b77d4d18878 type=3 (0 0) Lookup location=0x2b77d4d18880 type=3: not found Pointer enter location=0x2b77d4d18880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b77d4d18880 type=3 (0 0) Lookup location=0x2b77d4d18886 type=3: not found Pointer enter location=0x2b77d4d18886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2b77d4d18886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x85d4030 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e17880 type=371: not found Embedded_id 0x7fff39e17880 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff39e30e10 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e30e10 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x85d1e90 type=32 id=2 Is embedded? 0 0 Embedded_id 0x85d1e90 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x85d39e0 type=31 id=3 Is embedded? 0 0 Embedded_id 0x85d39e0 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x85ca820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x85d3a40 type=148 id=5 Is embedded? 0 0 Embedded_id 0x85d3a40 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff39e30fc0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff39e30fc0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b77d5d290c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b77d5d290c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x85d3920 type=28 id=8 Is embedded? 0 0 Embedded_id 0x85d3920 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x85d3a90 type=14 id=9 Is embedded? 0 0 Embedded_id 0x85d3a90 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b77d4d18869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d1886e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=7 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e17880 type=371: not found Embedded_id 0x7fff39e17880 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff39e30e10 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e30e10 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x85d1e90 type=32 id=2 Is embedded? 0 0 Embedded_id 0x85d1e90 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x85d39e0 type=31 id=3 Is embedded? 0 0 Embedded_id 0x85d39e0 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x85ca820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x85d3a40 type=148 id=5 Is embedded? 0 0 Embedded_id 0x85d3a40 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff39e30fc0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff39e30fc0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b77d5d290c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b77d5d290c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x85d3920 type=28 id=8 Is embedded? 0 0 Embedded_id 0x85d3920 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x85d3a90 type=14 id=9 Is embedded? 0 0 Embedded_id 0x85d3a90 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b77d4d18869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d1886e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x85d4030) Free pointer hashtable stdsoap2.c(4079): free(0x85d3af0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x85d4030 Free ID hashtable Read 1037 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x85df850 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x85df090 stdsoap2.c(7219): malloc(64) = 0x85f5c30 stdsoap2.c(2336): malloc(40) = 0x85dc8f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x85d7df0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x85dcbe0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x86140b0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x85dc960 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x85df8c0 stdsoap2.c(7172): malloc(62) = 0x85df900 stdsoap2.c(7219): malloc(64) = 0x85f5ba0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fff39e30e70 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x85df690 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8606fa0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x8606fa0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x8607000 Enter id='' type=3 loc=0x8607000 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x85f7a10 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x85f5b30 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x85dc4f0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x8606610 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x85f7b10 stdsoap2.c(6963): free(0x85df090) stdsoap2.c(4726): malloc(104) = 0x86066a0 Enter id='' type=6 loc=0x86066a0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x85f7c00 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x85f7c00 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x85dc4f0->(nil)) stdsoap2.c(4726): malloc(24) = 0x8606c20 First block Copy 8 bytes from 0x85dc500 to 0x8606c20 Next block stdsoap2.c(2026): free(0x85dc4f0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x85f5b30) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x85dc960) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x86140b0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x85dcbe0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x85d7df0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x85dc8f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x85f5ba0) stdsoap2.c(5406): free(0x85df900) stdsoap2.c(5405): free(0x85f5c30) stdsoap2.c(5406): free(0x85df850) stdsoap2.c(5411): free(0x85f7b10) stdsoap2.c(5422): free(0x85df8c0) stdsoap2.c(5428): free(0x85d4030) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x8606c20) stdsoap2.c(4857): free(0x85f7c00) stdsoap2.c(4857): free(0x86066a0) stdsoap2.c(4857): free(0x8606610) stdsoap2.c(4857): free(0x85f7a10) stdsoap2.c(4857): free(0x8607000) stdsoap2.c(4857): free(0x8606fa0) stdsoap2.c(4857): free(0x85df690) stdsoap2.c(4857): free(0x85d3a90) stdsoap2.c(4857): free(0x85d3a40) stdsoap2.c(4857): free(0x85d39e0) stdsoap2.c(4857): free(0x85d3990) stdsoap2.c(4857): free(0x85d3920) stdsoap2.c(4857): free(0x85d1ec0) stdsoap2.c(4857): free(0x85d1e90) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x85f1640) Free logfiles stdsoap2.c(2959): free(0x85d6670) stdsoap2.c(2959): free(0x85d5640) stdsoap2.c(2959): free(0x85d4580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff39e17960 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x85ceec0 Pointer enter location=0x7fff39e17960 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff39e17960 type=103 (0 0) Lookup location=0x85dc8f0 type=3: not found Pointer enter location=0x85dc8f0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x85dc8f0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x85cf3d0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178f0 type=377: not found Embedded_id 0x7fff39e178f0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff39e17960 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e17960 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x85dc8f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178f0 type=377: not found Embedded_id 0x7fff39e178f0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff39e17960 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e17960 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x85dc8f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x85cf3d0) Free pointer hashtable stdsoap2.c(4079): free(0x85ceec0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x85f77e0 Free ID hashtable Read 1121 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1003 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x861b6b0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x85dbd70 stdsoap2.c(7219): malloc(64) = 0x85dc3d0 stdsoap2.c(2336): malloc(40) = 0x85d8e10 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x85d0a00 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x85f78b0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x85f5a60 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x85d9130 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x8606e30 stdsoap2.c(7172): malloc(62) = 0x85dbde0 stdsoap2.c(7219): malloc(64) = 0x85f5970 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff39e17980 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x85f59c0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x85d8eb0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x85d8eb0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x85dbb80 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x85f5930 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x85d8a10 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x86064a0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x85f7910 stdsoap2.c(6963): free(0x85dbd70) stdsoap2.c(4726): malloc(104) = 0x8606530 Enter id='' type=6 loc=0x8606530 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x85f7a00 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x85f7a00 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x8606ab0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x85d8cc0 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x85d8d10 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x85d8a10->(nil)) stdsoap2.c(4726): malloc(24) = 0x85d8d60 First block Copy 8 bytes from 0x85d8a20 to 0x85d8d60 Next block stdsoap2.c(2026): free(0x85d8a10) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x85f5930) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x85d9130) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x85f5a60) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x85f78b0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x85d0a00) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x85d8e10) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x85f5970) stdsoap2.c(5406): free(0x85dbde0) stdsoap2.c(5405): free(0x85dc3d0) stdsoap2.c(5406): free(0x861b6b0) stdsoap2.c(5411): free(0x85f7910) stdsoap2.c(5422): free(0x8606e30) stdsoap2.c(5428): free(0x85f77e0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x85d8d60) stdsoap2.c(4857): free(0x85d8d10) stdsoap2.c(4857): free(0x85d8cc0) stdsoap2.c(4857): free(0x8606ab0) stdsoap2.c(4857): free(0x85f7a00) stdsoap2.c(4857): free(0x8606530) stdsoap2.c(4857): free(0x86064a0) stdsoap2.c(4857): free(0x85dbb80) stdsoap2.c(4857): free(0x85d8eb0) stdsoap2.c(4857): free(0x85f59c0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x85dca60) Free logfiles stdsoap2.c(2959): free(0x85d4580) stdsoap2.c(2959): free(0x85d5640) stdsoap2.c(2959): free(0x85d6670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff39e17960 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x85ee120 Pointer enter location=0x7fff39e17960 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff39e17960 type=103 (0 0) Lookup location=0x85dc8f0 type=3: not found Pointer enter location=0x85dc8f0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x85dc8f0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x85db900 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178f0 type=377: not found Embedded_id 0x7fff39e178f0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff39e17960 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e17960 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x85dc8f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178f0 type=377: not found Embedded_id 0x7fff39e178f0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff39e17960 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e17960 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x85dc8f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x85db900) Free pointer hashtable stdsoap2.c(4079): free(0x85ee120) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x85db900 Free ID hashtable Read 1121 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1003 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x8615170 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x85d3a90 stdsoap2.c(7219): malloc(64) = 0x85d40f0 stdsoap2.c(2336): malloc(40) = 0x85d0b30 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x85dc990 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x85f5a30 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x85d0e20 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8613ea0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x8606e30 stdsoap2.c(7172): malloc(62) = 0x85d3b00 stdsoap2.c(7219): malloc(64) = 0x85f5970 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff39e17980 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x85d0ba0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x85d0c00 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x85d0c00 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x85d38d0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x85f5930 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x85d0730 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x85f7810 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x86064a0 stdsoap2.c(6963): free(0x85d3a90) stdsoap2.c(4726): malloc(104) = 0x85f7910 Enter id='' type=6 loc=0x85f7910 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x85f79b0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x85f79b0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x8606ab0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x85f78d0 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x8606590 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x85d0730->(nil)) stdsoap2.c(4726): malloc(24) = 0x85f7a10 First block Copy 8 bytes from 0x85d0740 to 0x85f7a10 Next block stdsoap2.c(2026): free(0x85d0730) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x85f5930) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x8613ea0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x85d0e20) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x85f5a30) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x85dc990) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x85d0b30) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x85f5970) stdsoap2.c(5406): free(0x85d3b00) stdsoap2.c(5405): free(0x85d40f0) stdsoap2.c(5406): free(0x8615170) stdsoap2.c(5411): free(0x86064a0) stdsoap2.c(5422): free(0x8606e30) stdsoap2.c(5428): free(0x85db900) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x85f7a10) stdsoap2.c(4857): free(0x8606590) stdsoap2.c(4857): free(0x85f78d0) stdsoap2.c(4857): free(0x8606ab0) stdsoap2.c(4857): free(0x85f79b0) stdsoap2.c(4857): free(0x85f7910) stdsoap2.c(4857): free(0x85f7810) stdsoap2.c(4857): free(0x85d38d0) stdsoap2.c(4857): free(0x85d0c00) stdsoap2.c(4857): free(0x85d0ba0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x85d8c60) Free logfiles stdsoap2.c(2959): free(0x85d6670) stdsoap2.c(2959): free(0x85d5640) stdsoap2.c(2959): free(0x85d4580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff39e17960 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x85e2360 Pointer enter location=0x7fff39e17960 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff39e17960 type=103 (0 0) Lookup location=0x85dc8f0 type=3: not found Pointer enter location=0x85dc8f0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x85dc8f0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x85e2870 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178f0 type=377: not found Embedded_id 0x7fff39e178f0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff39e17960 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e17960 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x85dc8f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178f0 type=377: not found Embedded_id 0x7fff39e178f0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff39e17960 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e17960 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x85dc8f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x85e2870) Free pointer hashtable stdsoap2.c(4079): free(0x85e2360) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x85d9950 Free ID hashtable Read 1221 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1103 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x85d8f40 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x85d9270 stdsoap2.c(7219): malloc(64) = 0x85d95d0 stdsoap2.c(2336): malloc(40) = 0x85d84b0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x85d9450 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x861a200 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x85d6d40 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x861a120 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x85dbf70 stdsoap2.c(7172): malloc(62) = 0x85d91d0 stdsoap2.c(7219): malloc(64) = 0x85d9870 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff39e17980 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x85d98f0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x85d6b60 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x85d6b60 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x85da130 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x85d8e90 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x85d8e40 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x8606ec0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x85d9760 stdsoap2.c(6963): free(0x85d9270) stdsoap2.c(4726): malloc(104) = 0x85f78d0 Enter id='' type=6 loc=0x85f78d0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x85f7970 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x85f7970 size=4 level=0 Element content value='SRM_SPACE_AVAILABLE' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x85d6fa0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x85da0c0 Element content value='7198' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x85d9160 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x8606590 Enter id='' type=6 loc=0x8606590 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x85d8e40->(nil)) stdsoap2.c(4726): malloc(24) = 0x85d9650 First block Copy 8 bytes from 0x85d8e50 to 0x85d9650 Next block stdsoap2.c(2026): free(0x85d8e40) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x85d8e90) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x861a120) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x85d6d40) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x861a200) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x85d9450) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x85d84b0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x85d9870) stdsoap2.c(5406): free(0x85d91d0) stdsoap2.c(5405): free(0x85d95d0) stdsoap2.c(5406): free(0x85d8f40) stdsoap2.c(5411): free(0x85d9760) stdsoap2.c(5422): free(0x85dbf70) stdsoap2.c(5428): free(0x85d9950) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x85d9650) stdsoap2.c(4857): free(0x8606590) stdsoap2.c(4857): free(0x85d9160) stdsoap2.c(4857): free(0x85da0c0) stdsoap2.c(4857): free(0x85d6fa0) stdsoap2.c(4857): free(0x85f7970) stdsoap2.c(4857): free(0x85f78d0) stdsoap2.c(4857): free(0x8606ec0) stdsoap2.c(4857): free(0x85da130) stdsoap2.c(4857): free(0x85d6b60) stdsoap2.c(4857): free(0x85d98f0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x85d09b0) Free logfiles stdsoap2.c(2959): free(0x85d4580) stdsoap2.c(2959): free(0x85d5640) stdsoap2.c(2959): free(0x85d6670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x85f38b0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff39e317b0 type=111: not found stdsoap2.c(4149): malloc(1288) = 0x85fb310 Pointer enter location=0x7fff39e317b0 array=(nil) size=0 dim=0 type=111 id=1 Reference 0x7fff39e317b0 type=111 (0 0) Lookup location=0x85dc8f0 type=3: not found Pointer enter location=0x85dc8f0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x85dc8f0 type=3 (0 0) Lookup location=0x85f38b0 type=27: not found Pointer enter location=0x85f38b0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x85f38b0 type=27 (0 0) Lookup location=0x85ca820 type=3: not found Pointer enter location=0x85ca820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x85ca820 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x85f3940 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e18250 type=401: not found Embedded_id 0x7fff39e18250 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff39e317b0 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e317b0 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x85dc8f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x85f38b0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x85f38b0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x85ca820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=720 New count is 720 bytes Begin send phase (socket=7 mode=0x1 count=720) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e18250 type=401: not found Embedded_id 0x7fff39e18250 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff39e317b0 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e317b0 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x85dc8f0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x85f38b0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x85f38b0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x85ca820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x85f3940) Free pointer hashtable stdsoap2.c(4079): free(0x85fb310) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x85f3940 Free ID hashtable Read 938 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 821 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x8604ca0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x8605710 stdsoap2.c(7219): malloc(64) = 0x8605c60 stdsoap2.c(2336): malloc(40) = 0x8601d40 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x85fd240 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8602030 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8624140 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8601db0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x8604d10 stdsoap2.c(7172): malloc(62) = 0x8604d50 stdsoap2.c(7219): malloc(64) = 0x8605bd0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPutDoneResponse' 'srm2:srmPutDoneResponse' Begin element found (level=3) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' Enter id='' type=396 loc=0x7fff39e317d0 size=8 level=0 Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Reverting last element (level=3) Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Enter id='' type=112 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8616740 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x86167a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x86167a0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8604ae0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x8605b60 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x8601940 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8617080 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x8607a70 stdsoap2.c(6963): free(0x8605710) stdsoap2.c(4726): malloc(104) = 0x8607b00 Enter id='' type=6 loc=0x8607b00 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8607bd0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x8607bd0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x8601940->(nil)) stdsoap2.c(4726): malloc(24) = 0x8616cd0 First block Copy 8 bytes from 0x8601950 to 0x8616cd0 Next block stdsoap2.c(2026): free(0x8601940) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x8605b60) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPutDoneResponse'='srmPutDoneResponse' End element found (level=2) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x8601db0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x8624140) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x8602030) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x85fd240) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x8601d40) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x8605bd0) stdsoap2.c(5406): free(0x8604d50) stdsoap2.c(5405): free(0x8605c60) stdsoap2.c(5406): free(0x8604ca0) stdsoap2.c(5411): free(0x8607a70) stdsoap2.c(5422): free(0x8604d10) stdsoap2.c(5428): free(0x85f3940) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x8616cd0) stdsoap2.c(4857): free(0x8607bd0) stdsoap2.c(4857): free(0x8607b00) stdsoap2.c(4857): free(0x8617080) stdsoap2.c(4857): free(0x8604ae0) stdsoap2.c(4857): free(0x86167a0) stdsoap2.c(4857): free(0x8616740) stdsoap2.c(4857): free(0x85f38b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x85ca880) Free logfiles stdsoap2.c(2959): free(0x85f6f50) stdsoap2.c(2959): free(0x85da1c0) stdsoap2.c(2959): free(0x85dbfe0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x85fc250 stdsoap2.c(4726): malloc(24) = 0x85ca800 stdsoap2.c(4726): malloc(48) = 0x85ca8e0 stdsoap2.c(4726): malloc(24) = 0x85f6f50 stdsoap2.c(4726): malloc(32) = 0x85da1c0 stdsoap2.c(4726): malloc(32) = 0x85dbfe0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff39e30e30 type=93: not found stdsoap2.c(4149): malloc(1288) = 0x85fb310 Pointer enter location=0x7fff39e30e30 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fff39e30e30 type=93 (0 0) Lookup location=0x85fc250 type=30: not found Pointer enter location=0x85fc250 array=(nil) size=0 dim=0 type=30 id=2 Reference 0x85fc250 type=30 (0 0) Lookup location=0x85da1c0 type=29: not found Pointer enter location=0x85da1c0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0x85da1c0 type=29 (0 0) Lookup location=0x85ca820 type=3: not found Pointer enter location=0x85ca820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x85ca820 type=3 (0 0) Lookup location=0x2b77d5d290d4 type=131: not found Pointer enter location=0x2b77d5d290d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2b77d5d290d4 type=131 (0 0) Lookup location=0x7fff39e30fc0 type=1: not found Pointer enter location=0x7fff39e30fc0 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff39e30fc0 type=1 (0 0) Lookup location=0x85ca8e0 type=28: not found Pointer enter location=0x85ca8e0 array=(nil) size=0 dim=0 type=28 id=7 Reference 0x85ca8e0 type=28 (0 0) Lookup location=0x85dbfe0 type=14: not found Pointer enter location=0x85dbfe0 array=(nil) size=0 dim=0 type=14 id=8 Reference 0x85dbfe0 type=14 (0 0) Lookup location=0x2b77d4d18869 type=3: not found Pointer enter location=0x2b77d4d18869 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2b77d4d18869 type=3 (0 0) Lookup location=0x2b77d4d1886e type=3: not found Pointer enter location=0x2b77d4d1886e array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b77d4d1886e type=3 (0 0) Lookup location=0x2b77d4d18873 type=3: not found Pointer enter location=0x2b77d4d18873 array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b77d4d18873 type=3 (0 0) Lookup location=0x2b77d4d18878 type=3: not found Pointer enter location=0x2b77d4d18878 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b77d4d18878 type=3 (0 0) Lookup location=0x2b77d4d18880 type=3: not found Pointer enter location=0x2b77d4d18880 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b77d4d18880 type=3 (0 0) Lookup location=0x2b77d4d18886 type=3: not found Pointer enter location=0x2b77d4d18886 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b77d4d18886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x85e1400 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178b0 type=347: not found Embedded_id 0x7fff39e178b0 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff39e30e30 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e30e30 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x85fc250 type=30 id=2 Is embedded? 0 0 Embedded_id 0x85fc250 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x85da1c0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x85da1c0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x85ca820 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b77d5d290d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b77d5d290d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff39e30fc0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff39e30fc0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x85ca8e0 type=28 id=7 Is embedded? 0 0 Embedded_id 0x85ca8e0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x85dbfe0 type=14 id=8 Is embedded? 0 0 Embedded_id 0x85dbfe0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b77d4d18869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d1886e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=7 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178b0 type=347: not found Embedded_id 0x7fff39e178b0 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff39e30e30 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e30e30 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x85fc250 type=30 id=2 Is embedded? 0 0 Embedded_id 0x85fc250 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x85da1c0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x85da1c0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x85ca820 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b77d5d290d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b77d5d290d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff39e30fc0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff39e30fc0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x85ca8e0 type=28 id=7 Is embedded? 0 0 Embedded_id 0x85ca8e0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x85dbfe0 type=14 id=8 Is embedded? 0 0 Embedded_id 0x85dbfe0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b77d4d18869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d1886e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b77d4d18886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x85e1400) Free pointer hashtable stdsoap2.c(4079): free(0x85fb310) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x85e1400 Free ID hashtable Read 1049 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x8606580 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x86056c0 stdsoap2.c(7219): malloc(64) = 0x8606110 stdsoap2.c(2336): malloc(40) = 0x8602c60 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x8605300 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8602b70 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8601f20 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8624a80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x8606630 stdsoap2.c(7172): malloc(62) = 0x86048f0 stdsoap2.c(7219): malloc(64) = 0x8605730 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fff39e30e80 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x86028f0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8617090 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x8617090 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x86170f0 Enter id='' type=3 loc=0x86170f0 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8617a00 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x8606540 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x8605260 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x8608420 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x8608520 stdsoap2.c(6963): free(0x86056c0) stdsoap2.c(4726): malloc(104) = 0x8616cc0 Enter id='' type=6 loc=0x8616cc0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8616d60 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x8616d60 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x8605260->(nil)) stdsoap2.c(4726): malloc(24) = 0x8602400 First block Copy 8 bytes from 0x8605270 to 0x8602400 Next block stdsoap2.c(2026): free(0x8605260) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x8606540) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x8624a80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x8601f20) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x8602b70) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x8605300) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x8602c60) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x8605730) stdsoap2.c(5406): free(0x86048f0) stdsoap2.c(5405): free(0x8606110) stdsoap2.c(5406): free(0x8606580) stdsoap2.c(5411): free(0x8608520) stdsoap2.c(5422): free(0x8606630) stdsoap2.c(5428): free(0x85e1400) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x8602400) stdsoap2.c(4857): free(0x8616d60) stdsoap2.c(4857): free(0x8616cc0) stdsoap2.c(4857): free(0x8608420) stdsoap2.c(4857): free(0x8617a00) stdsoap2.c(4857): free(0x86170f0) stdsoap2.c(4857): free(0x8617090) stdsoap2.c(4857): free(0x86028f0) stdsoap2.c(4857): free(0x85dbfe0) stdsoap2.c(4857): free(0x85da1c0) stdsoap2.c(4857): free(0x85f6f50) stdsoap2.c(4857): free(0x85ca8e0) stdsoap2.c(4857): free(0x85ca800) stdsoap2.c(4857): free(0x85fc250) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x85f3a90) Free logfiles stdsoap2.c(2959): free(0x85ca920) stdsoap2.c(2959): free(0x85ca880) stdsoap2.c(2959): free(0x85f3a70) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff39e17960 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x85fa630 Pointer enter location=0x7fff39e17960 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff39e17960 type=95 (0 0) Lookup location=0x8602c60 type=3: not found Pointer enter location=0x8602c60 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x8602c60 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x85e1400 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178f0 type=353: not found Embedded_id 0x7fff39e178f0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff39e17960 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e17960 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x8602c60 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178f0 type=353: not found Embedded_id 0x7fff39e178f0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff39e17960 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e17960 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x8602c60 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x85e1400) Free pointer hashtable stdsoap2.c(4079): free(0x85fa630) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x85fe2c0 Free ID hashtable Read 1076 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 959 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x85fe220 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x85fd400 stdsoap2.c(7219): malloc(64) = 0x86199c0 stdsoap2.c(2336): malloc(40) = 0x8619950 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x85fdb00 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8619be0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x85fea40 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8626950 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x8625360 stdsoap2.c(7172): malloc(62) = 0x86152f0 stdsoap2.c(7219): malloc(64) = 0x85fdf10 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff39e17980 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x85e1400 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x85e1460 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x85e1460 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8615bf0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x85faf20 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x85fd830 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x8606630 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x86066b0 stdsoap2.c(6963): free(0x85fd400) stdsoap2.c(4726): malloc(104) = 0x8606790 Enter id='' type=6 loc=0x8606790 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x85fe9f0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8614f00 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x8614f00 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x8619740 Element content value='0' End element found (level=6) 'remainingPinTime'='remainingPinTime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x85fd830->(nil)) stdsoap2.c(4726): malloc(24) = 0x85fe9b0 First block Copy 8 bytes from 0x85fd840 to 0x85fe9b0 Next block stdsoap2.c(2026): free(0x85fd830) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x85faf20) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x8626950) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x85fea40) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x8619be0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x85fdb00) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x8619950) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x85fdf10) stdsoap2.c(5406): free(0x86152f0) stdsoap2.c(5405): free(0x86199c0) stdsoap2.c(5406): free(0x85fe220) stdsoap2.c(5411): free(0x86066b0) stdsoap2.c(5422): free(0x8625360) stdsoap2.c(5428): free(0x85fe2c0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x85fe9b0) stdsoap2.c(4857): free(0x8619740) stdsoap2.c(4857): free(0x8614f00) stdsoap2.c(4857): free(0x85fe9f0) stdsoap2.c(4857): free(0x8606790) stdsoap2.c(4857): free(0x8606630) stdsoap2.c(4857): free(0x8615bf0) stdsoap2.c(4857): free(0x85e1460) stdsoap2.c(4857): free(0x85e1400) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x8602060) Free logfiles stdsoap2.c(2959): free(0x85f3a70) stdsoap2.c(2959): free(0x85ca880) stdsoap2.c(2959): free(0x85ca920) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff39e17960 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x85fa630 Pointer enter location=0x7fff39e17960 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff39e17960 type=95 (0 0) Lookup location=0x8602c60 type=3: not found Pointer enter location=0x8602c60 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x8602c60 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x85e1400 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178f0 type=353: not found Embedded_id 0x7fff39e178f0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff39e17960 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e17960 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x8602c60 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e178f0 type=353: not found Embedded_id 0x7fff39e178f0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff39e17960 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e17960 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x8602c60 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x85e1400) Free pointer hashtable stdsoap2.c(4079): free(0x85fa630) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x85e1400 Free ID hashtable Read 1177 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1059 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x8624e10 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x8604720 stdsoap2.c(7219): malloc(64) = 0x862b700 stdsoap2.c(2336): malloc(40) = 0x861a6f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x8621e10 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8624da0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x861a9a0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8621d30 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x8622c20 stdsoap2.c(7172): malloc(62) = 0x86048b0 stdsoap2.c(7219): malloc(64) = 0x8624eb0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff39e17980 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x8624f30 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x86179f0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x86179f0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8617a50 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x8604980 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x8622b30 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x861aad0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x8606660 stdsoap2.c(6963): free(0x8604720) stdsoap2.c(4726): malloc(104) = 0x8617030 Enter id='' type=6 loc=0x8617030 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x8622b70 Element content value='65536' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8617100 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x8617100 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x8617640 Element content value='7200' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x86067c0 Enter id='' type=6 loc=0x86067c0 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x8622b30->(nil)) stdsoap2.c(4726): malloc(24) = 0x8604900 First block Copy 8 bytes from 0x8622b40 to 0x8604900 Next block stdsoap2.c(2026): free(0x8622b30) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x8604980) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x8621d30) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x861a9a0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x8624da0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x8621e10) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x861a6f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x8624eb0) stdsoap2.c(5406): free(0x86048b0) stdsoap2.c(5405): free(0x862b700) stdsoap2.c(5406): free(0x8624e10) stdsoap2.c(5411): free(0x8606660) stdsoap2.c(5422): free(0x8622c20) stdsoap2.c(5428): free(0x85e1400) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x8604900) stdsoap2.c(4857): free(0x86067c0) stdsoap2.c(4857): free(0x8617640) stdsoap2.c(4857): free(0x8617100) stdsoap2.c(4857): free(0x8622b70) stdsoap2.c(4857): free(0x8617030) stdsoap2.c(4857): free(0x861aad0) stdsoap2.c(4857): free(0x8617a50) stdsoap2.c(4857): free(0x86179f0) stdsoap2.c(4857): free(0x8624f30) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x85dc010) Free logfiles stdsoap2.c(2959): free(0x85ca920) stdsoap2.c(2959): free(0x85ca880) stdsoap2.c(2959): free(0x85f3a70) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x8602a90 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff39e317b0 type=109: not found stdsoap2.c(4149): malloc(1288) = 0x861ace0 Pointer enter location=0x7fff39e317b0 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fff39e317b0 type=109 (0 0) Lookup location=0x8602c60 type=3: not found Pointer enter location=0x8602c60 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x8602c60 type=3 (0 0) Lookup location=0x8602a90 type=27: not found Pointer enter location=0x8602a90 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x8602a90 type=27 (0 0) Lookup location=0x85ca820 type=3: not found Pointer enter location=0x85ca820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x85ca820 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x8604d40 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e18250 type=395: not found Embedded_id 0x7fff39e18250 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff39e317b0 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e317b0 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x8602c60 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x8602a90 type=27 id=3 Is embedded? 0 0 Embedded_id 0x8602a90 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x85ca820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=7 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff39e18250 type=395: not found Embedded_id 0x7fff39e18250 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff39e317b0 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff39e317b0 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x8602c60 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x8602a90 type=27 id=3 Is embedded? 0 0 Embedded_id 0x8602a90 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x85ca820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x8604d40) Free pointer hashtable stdsoap2.c(4079): free(0x861ace0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x8601870 Free ID hashtable Read 958 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x8624340 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x8621a80 stdsoap2.c(7219): malloc(64) = 0x862ad90 stdsoap2.c(2336): malloc(40) = 0x862aed0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x8623b30 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x86042e0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8623fa0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x86243b0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x8603c30 stdsoap2.c(7172): malloc(62) = 0x8600690 stdsoap2.c(7219): malloc(64) = 0x8624450 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fff39e317d0 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x86244d0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8604d70 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x8604d70 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8604dd0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x85fe020 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x8623e70 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8603eb0 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x8624150 stdsoap2.c(6963): free(0x8621a80) stdsoap2.c(4726): malloc(104) = 0x8600fd0 Enter id='' type=6 loc=0x8600fd0 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8607760 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x8607760 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x8623e70->(nil)) stdsoap2.c(4726): malloc(24) = 0x8623150 First block Copy 8 bytes from 0x8623e80 to 0x8623150 Next block stdsoap2.c(2026): free(0x8623e70) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x85fe020) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x86243b0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x8623fa0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x86042e0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x8623b30) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x862aed0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x8624450) stdsoap2.c(5406): free(0x8600690) stdsoap2.c(5405): free(0x862ad90) stdsoap2.c(5406): free(0x8624340) stdsoap2.c(5411): free(0x8624150) stdsoap2.c(5422): free(0x8603c30) stdsoap2.c(5428): free(0x8601870) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x8623150) stdsoap2.c(4857): free(0x8607760) stdsoap2.c(4857): free(0x8600fd0) stdsoap2.c(4857): free(0x8603eb0) stdsoap2.c(4857): free(0x8604dd0) stdsoap2.c(4857): free(0x8604d70) stdsoap2.c(4857): free(0x86244d0) stdsoap2.c(4857): free(0x8602a90) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x8604cb0) Free logfiles stdsoap2.c(2959): free(0x85d84b0) stdsoap2.c(2959): free(0x85fb760) stdsoap2.c(2959): free(0x8604c60) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffff7d77370 type=81: not found stdsoap2.c(4149): malloc(1288) = 0xf3fac20 Pointer enter location=0x7ffff7d77370 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7ffff7d77370 type=81 (0 0) Lookup location=0xf3f5720 type=3: not found Pointer enter location=0xf3f5720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xf3f5720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf3fb130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de20 type=311: not found Embedded_id 0x7ffff7d5de20 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7ffff7d77370 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d77370 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xf3f5720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de20 type=311: not found Embedded_id 0x7ffff7d5de20 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7ffff7d77370 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d77370 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xf3f5720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf3fb130) Free pointer hashtable stdsoap2.c(4079): free(0xf3fac20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf4053d0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf4023e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf406440 stdsoap2.c(7219): malloc(64) = 0xf404a60 stdsoap2.c(2336): malloc(40) = 0xf3fc5f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf402a70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf405530 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf3fd580 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf424e80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf405830 stdsoap2.c(7172): malloc(62) = 0xf4058d0 stdsoap2.c(7219): malloc(64) = 0xf4027f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7ffff7d77390 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xf4066b0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf4026a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf4026a0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0xf417230 Enter id='' type=3 loc=0xf417230 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf424e80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf3fd580) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf405530) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf402a70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf3fc5f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf4027f0) stdsoap2.c(5406): free(0xf4058d0) stdsoap2.c(5405): free(0xf404a60) stdsoap2.c(5406): free(0xf4023e0) stdsoap2.c(5411): free(0xf406440) stdsoap2.c(5422): free(0xf405830) stdsoap2.c(5428): free(0xf4053d0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf417230) stdsoap2.c(4857): free(0xf4026a0) stdsoap2.c(4857): free(0xf4066b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf3e6530) Free logfiles stdsoap2.c(2959): free(0xf3e5580) stdsoap2.c(2959): free(0xf3e6640) stdsoap2.c(2959): free(0xf3e7670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xf3e2e30 stdsoap2.c(4726): malloc(24) = 0xf3e2e60 stdsoap2.c(4726): malloc(48) = 0xf3e48c0 stdsoap2.c(4726): malloc(24) = 0xf3e4930 stdsoap2.c(4726): malloc(32) = 0xf3e4980 stdsoap2.c(4726): malloc(24) = 0xf3e49e0 stdsoap2.c(4726): malloc(32) = 0xf3e4a30 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffff7d77360 type=101: not found stdsoap2.c(4149): malloc(1288) = 0xf3e4a90 Pointer enter location=0x7ffff7d77360 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7ffff7d77360 type=101 (0 0) Lookup location=0xf3e2e30 type=32: not found Pointer enter location=0xf3e2e30 array=(nil) size=0 dim=0 type=32 id=2 Reference 0xf3e2e30 type=32 (0 0) Lookup location=0xf3e4980 type=31: not found Pointer enter location=0xf3e4980 array=(nil) size=0 dim=0 type=31 id=3 Reference 0xf3e4980 type=31 (0 0) Lookup location=0xf3db820 type=3: not found Pointer enter location=0xf3db820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xf3db820 type=3 (0 0) Lookup location=0xf3e49e0 type=148: not found Pointer enter location=0xf3e49e0 array=(nil) size=0 dim=0 type=148 id=5 Reference 0xf3e49e0 type=148 (0 0) Lookup location=0x7ffff7d77510 type=1: not found Pointer enter location=0x7ffff7d77510 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7ffff7d77510 type=1 (0 0) Lookup location=0x2b42e1bbf0c8 type=131: not found Pointer enter location=0x2b42e1bbf0c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b42e1bbf0c8 type=131 (0 0) Lookup location=0xf3e48c0 type=28: not found Pointer enter location=0xf3e48c0 array=(nil) size=0 dim=0 type=28 id=8 Reference 0xf3e48c0 type=28 (0 0) Lookup location=0xf3e4a30 type=14: not found Pointer enter location=0xf3e4a30 array=(nil) size=0 dim=0 type=14 id=9 Reference 0xf3e4a30 type=14 (0 0) Lookup location=0x2b42e0bae869 type=3: not found Pointer enter location=0x2b42e0bae869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b42e0bae869 type=3 (0 0) Lookup location=0x2b42e0bae86e type=3: not found Pointer enter location=0x2b42e0bae86e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b42e0bae86e type=3 (0 0) Lookup location=0x2b42e0bae873 type=3: not found Pointer enter location=0x2b42e0bae873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b42e0bae873 type=3 (0 0) Lookup location=0x2b42e0bae878 type=3: not found Pointer enter location=0x2b42e0bae878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b42e0bae878 type=3 (0 0) Lookup location=0x2b42e0bae880 type=3: not found Pointer enter location=0x2b42e0bae880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b42e0bae880 type=3 (0 0) Lookup location=0x2b42e0bae886 type=3: not found Pointer enter location=0x2b42e0bae886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2b42e0bae886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf3e4fd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5ddd0 type=371: not found Embedded_id 0x7ffff7d5ddd0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7ffff7d77360 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d77360 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xf3e2e30 type=32 id=2 Is embedded? 0 0 Embedded_id 0xf3e2e30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xf3e4980 type=31 id=3 Is embedded? 0 0 Embedded_id 0xf3e4980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xf3db820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xf3e49e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0xf3e49e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7ffff7d77510 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7ffff7d77510 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b42e1bbf0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b42e1bbf0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xf3e48c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0xf3e48c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xf3e4a30 type=14 id=9 Is embedded? 0 0 Embedded_id 0xf3e4a30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b42e0bae869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=7 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5ddd0 type=371: not found Embedded_id 0x7ffff7d5ddd0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7ffff7d77360 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d77360 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xf3e2e30 type=32 id=2 Is embedded? 0 0 Embedded_id 0xf3e2e30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xf3e4980 type=31 id=3 Is embedded? 0 0 Embedded_id 0xf3e4980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xf3db820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xf3e49e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0xf3e49e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7ffff7d77510 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7ffff7d77510 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b42e1bbf0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b42e1bbf0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xf3e48c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0xf3e48c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xf3e4a30 type=14 id=9 Is embedded? 0 0 Embedded_id 0xf3e4a30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b42e0bae869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf3e4fd0) Free pointer hashtable stdsoap2.c(4079): free(0xf3e4a90) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf3e4fd0 Free ID hashtable Read 1037 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf3f07f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf4176e0 stdsoap2.c(7219): malloc(64) = 0xf3f0040 stdsoap2.c(2336): malloc(40) = 0xf3ed890 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf3e8d90 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf42c480 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf406cc0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf3edbb0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf3ed900 stdsoap2.c(7172): malloc(62) = 0xf3ed940 stdsoap2.c(7219): malloc(64) = 0xf3f0890 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7ffff7d773c0 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xf406c00 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf3f0630 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf3f0630 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xf417f60 Enter id='' type=3 loc=0xf417f60 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf417fa0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xf406b90 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xf3ed490 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xf4089c0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xf408ac0 stdsoap2.c(6963): free(0xf4176e0) stdsoap2.c(4726): malloc(104) = 0xf3ed6e0 Enter id='' type=6 loc=0xf3ed6e0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf3ed780 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf3ed780 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xf3ed490->(nil)) stdsoap2.c(4726): malloc(24) = 0xf417be0 First block Copy 8 bytes from 0xf3ed4a0 to 0xf417be0 Next block stdsoap2.c(2026): free(0xf3ed490) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xf406b90) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf3edbb0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf406cc0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf42c480) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf3e8d90) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf3ed890) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf3f0890) stdsoap2.c(5406): free(0xf3ed940) stdsoap2.c(5405): free(0xf3f0040) stdsoap2.c(5406): free(0xf3f07f0) stdsoap2.c(5411): free(0xf408ac0) stdsoap2.c(5422): free(0xf3ed900) stdsoap2.c(5428): free(0xf3e4fd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf417be0) stdsoap2.c(4857): free(0xf3ed780) stdsoap2.c(4857): free(0xf3ed6e0) stdsoap2.c(4857): free(0xf4089c0) stdsoap2.c(4857): free(0xf417fa0) stdsoap2.c(4857): free(0xf417f60) stdsoap2.c(4857): free(0xf3f0630) stdsoap2.c(4857): free(0xf406c00) stdsoap2.c(4857): free(0xf3e4a30) stdsoap2.c(4857): free(0xf3e49e0) stdsoap2.c(4857): free(0xf3e4980) stdsoap2.c(4857): free(0xf3e4930) stdsoap2.c(4857): free(0xf3e48c0) stdsoap2.c(4857): free(0xf3e2e60) stdsoap2.c(4857): free(0xf3e2e30) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf3dbcc0) Free logfiles stdsoap2.c(2959): free(0xf3e7670) stdsoap2.c(2959): free(0xf3e6640) stdsoap2.c(2959): free(0xf3e5580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffff7d5deb0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0xf400a60 Pointer enter location=0x7ffff7d5deb0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7ffff7d5deb0 type=103 (0 0) Lookup location=0xf3ed890 type=3: not found Pointer enter location=0xf3ed890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xf3ed890 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf400f70 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de40 type=377: not found Embedded_id 0x7ffff7d5de40 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7ffff7d5deb0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d5deb0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xf3ed890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de40 type=377: not found Embedded_id 0x7ffff7d5de40 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7ffff7d5deb0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d5deb0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xf3ed890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf400f70) Free pointer hashtable stdsoap2.c(4079): free(0xf400a60) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf3e0770 Free ID hashtable Read 1121 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1003 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf427f40 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf427e00 stdsoap2.c(7219): malloc(64) = 0xf3e52d0 stdsoap2.c(2336): malloc(40) = 0xf42afd0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf425b30 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf4255a0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf429130 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf4282b0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf411e80 stdsoap2.c(7172): malloc(62) = 0xf4252b0 stdsoap2.c(7219): malloc(64) = 0xf428740 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7ffff7d5ded0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xf428600 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf428660 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf428660 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf4284a0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xf428220 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xf428560 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xf4224c0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xf422dd0 stdsoap2.c(6963): free(0xf427e00) stdsoap2.c(4726): malloc(104) = 0xf425420 Enter id='' type=6 loc=0xf425420 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf4254c0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf4254c0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xf425230 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xf4290e0 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xf429070 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xf428560->(nil)) stdsoap2.c(4726): malloc(24) = 0xf425000 First block Copy 8 bytes from 0xf428570 to 0xf425000 Next block stdsoap2.c(2026): free(0xf428560) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xf428220) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf4282b0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf429130) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf4255a0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf425b30) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf42afd0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf428740) stdsoap2.c(5406): free(0xf4252b0) stdsoap2.c(5405): free(0xf3e52d0) stdsoap2.c(5406): free(0xf427f40) stdsoap2.c(5411): free(0xf422dd0) stdsoap2.c(5422): free(0xf411e80) stdsoap2.c(5428): free(0xf3e0770) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf425000) stdsoap2.c(4857): free(0xf429070) stdsoap2.c(4857): free(0xf4290e0) stdsoap2.c(4857): free(0xf425230) stdsoap2.c(4857): free(0xf4254c0) stdsoap2.c(4857): free(0xf425420) stdsoap2.c(4857): free(0xf4224c0) stdsoap2.c(4857): free(0xf4284a0) stdsoap2.c(4857): free(0xf428660) stdsoap2.c(4857): free(0xf428600) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf408a50) Free logfiles stdsoap2.c(2959): free(0xf3e5580) stdsoap2.c(2959): free(0xf3e6640) stdsoap2.c(2959): free(0xf3e7670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffff7d5deb0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0xf3ff120 Pointer enter location=0x7ffff7d5deb0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7ffff7d5deb0 type=103 (0 0) Lookup location=0xf3ed890 type=3: not found Pointer enter location=0xf3ed890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xf3ed890 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf3ef840 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de40 type=377: not found Embedded_id 0x7ffff7d5de40 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7ffff7d5deb0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d5deb0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xf3ed890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de40 type=377: not found Embedded_id 0x7ffff7d5de40 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7ffff7d5deb0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d5deb0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xf3ed890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf3ef840) Free pointer hashtable stdsoap2.c(4079): free(0xf3ff120) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf3ef840 Free ID hashtable Read 1121 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1003 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf3e0780 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf3e18f0 stdsoap2.c(7219): malloc(64) = 0xf3e0300 stdsoap2.c(2336): malloc(40) = 0xf3e0cb0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf3ec120 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf3e1970 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf3e88a0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf420ed0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf3ebde0 stdsoap2.c(7172): malloc(62) = 0xf4150f0 stdsoap2.c(7219): malloc(64) = 0xf3e0fc0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7ffff7d5ded0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xf3e1040 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf3ec040 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf3ec040 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf3ec0a0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xf3e0640 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xf3e18b0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xf415a00 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xf406440 stdsoap2.c(6963): free(0xf3e18f0) stdsoap2.c(4726): malloc(104) = 0xf3e0e30 Enter id='' type=6 loc=0xf3e0e30 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf3e0ed0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf3e0ed0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xf415680 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xf3ec0d0 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xf3ec2c0 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xf3e18b0->(nil)) stdsoap2.c(4726): malloc(24) = 0xf415ac0 First block Copy 8 bytes from 0xf3e18c0 to 0xf415ac0 Next block stdsoap2.c(2026): free(0xf3e18b0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xf3e0640) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf420ed0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf3e88a0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf3e1970) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf3ec120) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf3e0cb0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf3e0fc0) stdsoap2.c(5406): free(0xf4150f0) stdsoap2.c(5405): free(0xf3e0300) stdsoap2.c(5406): free(0xf3e0780) stdsoap2.c(5411): free(0xf406440) stdsoap2.c(5422): free(0xf3ebde0) stdsoap2.c(5428): free(0xf3ef840) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf415ac0) stdsoap2.c(4857): free(0xf3ec2c0) stdsoap2.c(4857): free(0xf3ec0d0) stdsoap2.c(4857): free(0xf415680) stdsoap2.c(4857): free(0xf3e0ed0) stdsoap2.c(4857): free(0xf3e0e30) stdsoap2.c(4857): free(0xf415a00) stdsoap2.c(4857): free(0xf3ec0a0) stdsoap2.c(4857): free(0xf3ec040) stdsoap2.c(4857): free(0xf3e1040) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf428350) Free logfiles stdsoap2.c(2959): free(0xf3e7670) stdsoap2.c(2959): free(0xf3e6640) stdsoap2.c(2959): free(0xf3e5580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffff7d5deb0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0xf415cd0 Pointer enter location=0x7ffff7d5deb0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7ffff7d5deb0 type=103 (0 0) Lookup location=0xf3ed890 type=3: not found Pointer enter location=0xf3ed890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xf3ed890 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf4048a0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de40 type=377: not found Embedded_id 0x7ffff7d5de40 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7ffff7d5deb0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d5deb0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xf3ed890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de40 type=377: not found Embedded_id 0x7ffff7d5de40 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7ffff7d5deb0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d5deb0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xf3ed890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf4048a0) Free pointer hashtable stdsoap2.c(4079): free(0xf415cd0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf4048a0 Free ID hashtable Read 1221 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1103 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf3e1810 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf3e19f0 stdsoap2.c(7219): malloc(64) = 0xf3e15f0 stdsoap2.c(2336): malloc(40) = 0xf3e1cc0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf3e1ab0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf3e2610 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf3ebbd0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf3ebd00 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf3e2920 stdsoap2.c(7172): malloc(62) = 0xf3e16a0 stdsoap2.c(7219): malloc(64) = 0xf3ebab0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7ffff7d5ded0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xf3ebb00 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf3e1e70 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf3e1e70 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf419910 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xf3e1760 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xf3e2a20 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xf418f80 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xf406f10 stdsoap2.c(6963): free(0xf3e19f0) stdsoap2.c(4726): malloc(104) = 0xf419010 Enter id='' type=6 loc=0xf419010 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf407000 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf407000 size=4 level=0 Element content value='SRM_SPACE_AVAILABLE' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xf3ebf50 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xf3e28e0 Element content value='7200' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xf3e1980 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0xf418ce0 Enter id='' type=6 loc=0xf418ce0 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xf3e2a20->(nil)) stdsoap2.c(4726): malloc(24) = 0xf419590 First block Copy 8 bytes from 0xf3e2a30 to 0xf419590 Next block stdsoap2.c(2026): free(0xf3e2a20) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xf3e1760) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf3ebd00) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf3ebbd0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf3e2610) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf3e1ab0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf3e1cc0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf3ebab0) stdsoap2.c(5406): free(0xf3e16a0) stdsoap2.c(5405): free(0xf3e15f0) stdsoap2.c(5406): free(0xf3e1810) stdsoap2.c(5411): free(0xf406f10) stdsoap2.c(5422): free(0xf3e2920) stdsoap2.c(5428): free(0xf4048a0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf419590) stdsoap2.c(4857): free(0xf418ce0) stdsoap2.c(4857): free(0xf3e1980) stdsoap2.c(4857): free(0xf3e28e0) stdsoap2.c(4857): free(0xf3ebf50) stdsoap2.c(4857): free(0xf407000) stdsoap2.c(4857): free(0xf419010) stdsoap2.c(4857): free(0xf418f80) stdsoap2.c(4857): free(0xf419910) stdsoap2.c(4857): free(0xf3e1e70) stdsoap2.c(4857): free(0xf3ebb00) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf3ec260) Free logfiles stdsoap2.c(2959): free(0xf3e5580) stdsoap2.c(2959): free(0xf3e6640) stdsoap2.c(2959): free(0xf3e7670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xf4048b0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffff7d77d00 type=111: not found stdsoap2.c(4149): malloc(1288) = 0xf41ca40 Pointer enter location=0x7ffff7d77d00 array=(nil) size=0 dim=0 type=111 id=1 Reference 0x7ffff7d77d00 type=111 (0 0) Lookup location=0xf3ed890 type=3: not found Pointer enter location=0xf3ed890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xf3ed890 type=3 (0 0) Lookup location=0xf4048b0 type=27: not found Pointer enter location=0xf4048b0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0xf4048b0 type=27 (0 0) Lookup location=0xf3db820 type=3: not found Pointer enter location=0xf3db820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xf3db820 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf404940 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5e7a0 type=401: not found Embedded_id 0x7ffff7d5e7a0 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7ffff7d77d00 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d77d00 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0xf3ed890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xf4048b0 type=27 id=3 Is embedded? 0 0 Embedded_id 0xf4048b0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xf3db820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=720 New count is 720 bytes Begin send phase (socket=7 mode=0x1 count=720) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5e7a0 type=401: not found Embedded_id 0x7ffff7d5e7a0 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7ffff7d77d00 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d77d00 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0xf3ed890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xf4048b0 type=27 id=3 Is embedded? 0 0 Embedded_id 0xf4048b0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xf3db820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf404940) Free pointer hashtable stdsoap2.c(4079): free(0xf41ca40) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf404940 Free ID hashtable Read 938 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 821 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf4261c0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf4263a0 stdsoap2.c(7219): malloc(64) = 0xf425fa0 stdsoap2.c(2336): malloc(40) = 0xf426670 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf426460 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf4367a0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf4233b0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf4234e0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf4351b0 stdsoap2.c(7172): malloc(62) = 0xf429530 stdsoap2.c(7219): malloc(64) = 0xf426050 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPutDoneResponse' 'srm2:srmPutDoneResponse' Begin element found (level=3) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' Enter id='' type=396 loc=0x7ffff7d77d20 size=8 level=0 Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Reverting last element (level=3) Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Enter id='' type=112 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf4260a0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf4232f0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf4232f0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf4267f0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xf426110 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xf4273d0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf429e60 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xf4080d0 stdsoap2.c(6963): free(0xf4263a0) stdsoap2.c(4726): malloc(104) = 0xf429140 Enter id='' type=6 loc=0xf429140 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf4291e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf4291e0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xf4273d0->(nil)) stdsoap2.c(4726): malloc(24) = 0xf423760 First block Copy 8 bytes from 0xf4273e0 to 0xf423760 Next block stdsoap2.c(2026): free(0xf4273d0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xf426110) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPutDoneResponse'='srmPutDoneResponse' End element found (level=2) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf4234e0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf4233b0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf4367a0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf426460) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf426670) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf426050) stdsoap2.c(5406): free(0xf429530) stdsoap2.c(5405): free(0xf425fa0) stdsoap2.c(5406): free(0xf4261c0) stdsoap2.c(5411): free(0xf4080d0) stdsoap2.c(5422): free(0xf4351b0) stdsoap2.c(5428): free(0xf404940) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf423760) stdsoap2.c(4857): free(0xf4291e0) stdsoap2.c(4857): free(0xf429140) stdsoap2.c(4857): free(0xf429e60) stdsoap2.c(4857): free(0xf4267f0) stdsoap2.c(4857): free(0xf4232f0) stdsoap2.c(4857): free(0xf4260a0) stdsoap2.c(4857): free(0xf4048b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf3db880) Free logfiles stdsoap2.c(2959): free(0xf3ec450) stdsoap2.c(2959): free(0xf3e1640) stdsoap2.c(2959): free(0xf3df350) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xf3ed3c0 stdsoap2.c(4726): malloc(24) = 0xf3e1cc0 stdsoap2.c(4726): malloc(48) = 0xf3e1660 stdsoap2.c(4726): malloc(24) = 0xf3e1f60 stdsoap2.c(4726): malloc(32) = 0xf41d2a0 stdsoap2.c(4726): malloc(32) = 0xf41d9b0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffff7d77380 type=93: not found stdsoap2.c(4149): malloc(1288) = 0xf41c800 Pointer enter location=0x7ffff7d77380 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7ffff7d77380 type=93 (0 0) Lookup location=0xf3ed3c0 type=30: not found Pointer enter location=0xf3ed3c0 array=(nil) size=0 dim=0 type=30 id=2 Reference 0xf3ed3c0 type=30 (0 0) Lookup location=0xf41d2a0 type=29: not found Pointer enter location=0xf41d2a0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0xf41d2a0 type=29 (0 0) Lookup location=0xf423760 type=3: not found Pointer enter location=0xf423760 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xf423760 type=3 (0 0) Lookup location=0x2b42e1bbf0d4 type=131: not found Pointer enter location=0x2b42e1bbf0d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2b42e1bbf0d4 type=131 (0 0) Lookup location=0x7ffff7d77510 type=1: not found Pointer enter location=0x7ffff7d77510 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7ffff7d77510 type=1 (0 0) Lookup location=0xf3e1660 type=28: not found Pointer enter location=0xf3e1660 array=(nil) size=0 dim=0 type=28 id=7 Reference 0xf3e1660 type=28 (0 0) Lookup location=0xf41d9b0 type=14: not found Pointer enter location=0xf41d9b0 array=(nil) size=0 dim=0 type=14 id=8 Reference 0xf41d9b0 type=14 (0 0) Lookup location=0x2b42e0bae869 type=3: not found Pointer enter location=0x2b42e0bae869 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2b42e0bae869 type=3 (0 0) Lookup location=0x2b42e0bae86e type=3: not found Pointer enter location=0x2b42e0bae86e array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b42e0bae86e type=3 (0 0) Lookup location=0x2b42e0bae873 type=3: not found Pointer enter location=0x2b42e0bae873 array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b42e0bae873 type=3 (0 0) Lookup location=0x2b42e0bae878 type=3: not found Pointer enter location=0x2b42e0bae878 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b42e0bae878 type=3 (0 0) Lookup location=0x2b42e0bae880 type=3: not found Pointer enter location=0x2b42e0bae880 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b42e0bae880 type=3 (0 0) Lookup location=0x2b42e0bae886 type=3: not found Pointer enter location=0x2b42e0bae886 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b42e0bae886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf423be0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de00 type=347: not found Embedded_id 0x7ffff7d5de00 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7ffff7d77380 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d77380 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xf3ed3c0 type=30 id=2 Is embedded? 0 0 Embedded_id 0xf3ed3c0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xf41d2a0 type=29 id=3 Is embedded? 0 0 Embedded_id 0xf41d2a0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xf423760 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b42e1bbf0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b42e1bbf0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7ffff7d77510 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7ffff7d77510 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xf3e1660 type=28 id=7 Is embedded? 0 0 Embedded_id 0xf3e1660 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xf41d9b0 type=14 id=8 Is embedded? 0 0 Embedded_id 0xf41d9b0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b42e0bae869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae86e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=7 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de00 type=347: not found Embedded_id 0x7ffff7d5de00 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7ffff7d77380 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d77380 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xf3ed3c0 type=30 id=2 Is embedded? 0 0 Embedded_id 0xf3ed3c0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xf41d2a0 type=29 id=3 Is embedded? 0 0 Embedded_id 0xf41d2a0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xf423760 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b42e1bbf0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b42e1bbf0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7ffff7d77510 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7ffff7d77510 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xf3e1660 type=28 id=7 Is embedded? 0 0 Embedded_id 0xf3e1660 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xf41d9b0 type=14 id=8 Is embedded? 0 0 Embedded_id 0xf41d9b0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b42e0bae869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae86e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b42e0bae886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf423be0) Free pointer hashtable stdsoap2.c(4079): free(0xf41c800) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf423be0 Free ID hashtable Read 1049 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf421410 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf435500 stdsoap2.c(7219): malloc(64) = 0xf4136f0 stdsoap2.c(2336): malloc(40) = 0xf4218d0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf435d10 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf437140 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf41ea10 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf435b80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf4216f0 stdsoap2.c(7172): malloc(62) = 0xf41e790 stdsoap2.c(7219): malloc(64) = 0xf422610 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7ffff7d773d0 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xf421d20 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf421be0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf421be0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xf421c40 Enter id='' type=3 loc=0xf421c40 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf421a80 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xf4247c0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xf424800 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xf4212d0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xf408af0 stdsoap2.c(6963): free(0xf435500) stdsoap2.c(4726): malloc(104) = 0xf408b80 Enter id='' type=6 loc=0xf408b80 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf4129a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf4129a0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xf424800->(nil)) stdsoap2.c(4726): malloc(24) = 0xf421b40 First block Copy 8 bytes from 0xf424810 to 0xf421b40 Next block stdsoap2.c(2026): free(0xf424800) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xf4247c0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf435b80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf41ea10) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf437140) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf435d10) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf4218d0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf422610) stdsoap2.c(5406): free(0xf41e790) stdsoap2.c(5405): free(0xf4136f0) stdsoap2.c(5406): free(0xf421410) stdsoap2.c(5411): free(0xf408af0) stdsoap2.c(5422): free(0xf4216f0) stdsoap2.c(5428): free(0xf423be0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf421b40) stdsoap2.c(4857): free(0xf4129a0) stdsoap2.c(4857): free(0xf408b80) stdsoap2.c(4857): free(0xf4212d0) stdsoap2.c(4857): free(0xf421a80) stdsoap2.c(4857): free(0xf421c40) stdsoap2.c(4857): free(0xf421be0) stdsoap2.c(4857): free(0xf421d20) stdsoap2.c(4857): free(0xf41d9b0) stdsoap2.c(4857): free(0xf41d2a0) stdsoap2.c(4857): free(0xf3e1f60) stdsoap2.c(4857): free(0xf3e1660) stdsoap2.c(4857): free(0xf3e1cc0) stdsoap2.c(4857): free(0xf3ed3c0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf3e1ee0) Free logfiles stdsoap2.c(2959): free(0xf423bc0) stdsoap2.c(2959): free(0xf3e1640) stdsoap2.c(2959): free(0xf3e1f40) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffff7d5deb0 type=95: not found stdsoap2.c(4149): malloc(1288) = 0xf41c800 Pointer enter location=0x7ffff7d5deb0 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7ffff7d5deb0 type=95 (0 0) Lookup location=0xf4218d0 type=3: not found Pointer enter location=0xf4218d0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xf4218d0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf423be0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de40 type=353: not found Embedded_id 0x7ffff7d5de40 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7ffff7d5deb0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d5deb0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xf4218d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de40 type=353: not found Embedded_id 0x7ffff7d5de40 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7ffff7d5deb0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d5deb0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xf4218d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf423be0) Free pointer hashtable stdsoap2.c(4079): free(0xf41c800) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf42abe0 Free ID hashtable Read 1076 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 959 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf426c20 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf41dfa0 stdsoap2.c(7219): malloc(64) = 0xf4269b0 stdsoap2.c(2336): malloc(40) = 0xf421180 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf426bb0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf4275e0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf439880 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf4211f0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf438610 stdsoap2.c(7172): malloc(62) = 0xf420e50 stdsoap2.c(7219): malloc(64) = 0xf420fa0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7ffff7d5ded0 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xf4299f0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf420d50 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf420d50 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf420db0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xf427500 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xf4274c0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xf426cc0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xf423be0 stdsoap2.c(6963): free(0xf41dfa0) stdsoap2.c(4726): malloc(104) = 0xf426270 Enter id='' type=6 loc=0xf426270 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xf426560 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf426310 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf426310 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xf426b10 Element content value='0' End element found (level=6) 'remainingPinTime'='remainingPinTime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xf4274c0->(nil)) stdsoap2.c(4726): malloc(24) = 0xf429f50 First block Copy 8 bytes from 0xf4274d0 to 0xf429f50 Next block stdsoap2.c(2026): free(0xf4274c0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xf427500) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf4211f0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf439880) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf4275e0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf426bb0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf421180) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf420fa0) stdsoap2.c(5406): free(0xf420e50) stdsoap2.c(5405): free(0xf4269b0) stdsoap2.c(5406): free(0xf426c20) stdsoap2.c(5411): free(0xf423be0) stdsoap2.c(5422): free(0xf438610) stdsoap2.c(5428): free(0xf42abe0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf429f50) stdsoap2.c(4857): free(0xf426b10) stdsoap2.c(4857): free(0xf426310) stdsoap2.c(4857): free(0xf426560) stdsoap2.c(4857): free(0xf426270) stdsoap2.c(4857): free(0xf426cc0) stdsoap2.c(4857): free(0xf420db0) stdsoap2.c(4857): free(0xf420d50) stdsoap2.c(4857): free(0xf4299f0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf421a50) Free logfiles stdsoap2.c(2959): free(0xf3e1f40) stdsoap2.c(2959): free(0xf3e1640) stdsoap2.c(2959): free(0xf423bc0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffff7d5deb0 type=95: not found stdsoap2.c(4149): malloc(1288) = 0xf41c800 Pointer enter location=0x7ffff7d5deb0 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7ffff7d5deb0 type=95 (0 0) Lookup location=0xf4218d0 type=3: not found Pointer enter location=0xf4218d0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xf4218d0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf423be0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de40 type=353: not found Embedded_id 0x7ffff7d5de40 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7ffff7d5deb0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d5deb0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xf4218d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5de40 type=353: not found Embedded_id 0x7ffff7d5de40 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7ffff7d5deb0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d5deb0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xf4218d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf423be0) Free pointer hashtable stdsoap2.c(4079): free(0xf41c800) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf423be0 Free ID hashtable Read 1177 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1059 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf4264d0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf426200 stdsoap2.c(7219): malloc(64) = 0xf434c60 stdsoap2.c(2336): malloc(40) = 0xf426680 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf4262c0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf4210c0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf428110 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf428240 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf432df0 stdsoap2.c(7172): malloc(62) = 0xf434d10 stdsoap2.c(7219): malloc(64) = 0xf427ff0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7ffff7d5ded0 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xf428040 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf425ee0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf425ee0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf4323e0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xf434dd0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xf432ef0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xf41fda0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xf41f430 stdsoap2.c(6963): free(0xf426200) stdsoap2.c(4726): malloc(104) = 0xf426040 Enter id='' type=6 loc=0xf426040 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xf428490 Element content value='65536' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf4260e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf4260e0 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xf432db0 Element content value='7200' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0xf42a360 Enter id='' type=6 loc=0xf42a360 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xf432ef0->(nil)) stdsoap2.c(4726): malloc(24) = 0xf426190 First block Copy 8 bytes from 0xf432f00 to 0xf426190 Next block stdsoap2.c(2026): free(0xf432ef0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xf434dd0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf428240) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf428110) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf4210c0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf4262c0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf426680) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf427ff0) stdsoap2.c(5406): free(0xf434d10) stdsoap2.c(5405): free(0xf434c60) stdsoap2.c(5406): free(0xf4264d0) stdsoap2.c(5411): free(0xf41f430) stdsoap2.c(5422): free(0xf432df0) stdsoap2.c(5428): free(0xf423be0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf426190) stdsoap2.c(4857): free(0xf42a360) stdsoap2.c(4857): free(0xf432db0) stdsoap2.c(4857): free(0xf4260e0) stdsoap2.c(4857): free(0xf428490) stdsoap2.c(4857): free(0xf426040) stdsoap2.c(4857): free(0xf41fda0) stdsoap2.c(4857): free(0xf4323e0) stdsoap2.c(4857): free(0xf425ee0) stdsoap2.c(4857): free(0xf428040) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf3e1cc0) Free logfiles stdsoap2.c(2959): free(0xf423bc0) stdsoap2.c(2959): free(0xf3e1640) stdsoap2.c(2959): free(0xf3e1f40) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xf423820 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffff7d77d00 type=109: not found stdsoap2.c(4149): malloc(1288) = 0xf41c800 Pointer enter location=0x7ffff7d77d00 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7ffff7d77d00 type=109 (0 0) Lookup location=0xf4218d0 type=3: not found Pointer enter location=0xf4218d0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xf4218d0 type=3 (0 0) Lookup location=0xf423820 type=27: not found Pointer enter location=0xf423820 array=(nil) size=0 dim=0 type=27 id=3 Reference 0xf423820 type=27 (0 0) Lookup location=0xf423760 type=3: not found Pointer enter location=0xf423760 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xf423760 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf4238b0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5e7a0 type=395: not found Embedded_id 0x7ffff7d5e7a0 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7ffff7d77d00 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d77d00 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0xf4218d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xf423820 type=27 id=3 Is embedded? 0 0 Embedded_id 0xf423820 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xf423760 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=7 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff7d5e7a0 type=395: not found Embedded_id 0x7ffff7d5e7a0 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7ffff7d77d00 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7ffff7d77d00 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0xf4218d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xf423820 type=27 id=3 Is embedded? 0 0 Embedded_id 0xf423820 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xf423760 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf4238b0) Free pointer hashtable stdsoap2.c(4079): free(0xf41c800) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf42a130 Free ID hashtable Read 958 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf434760 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf434da0 stdsoap2.c(7219): malloc(64) = 0xf4343d0 stdsoap2.c(2336): malloc(40) = 0xf434800 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf420d70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf4228a0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf425f30 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf434a20 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf420de0 stdsoap2.c(7172): malloc(62) = 0xf43c670 stdsoap2.c(7219): malloc(64) = 0xf4348a0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7ffff7d77d20 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf434690 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf41edb0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf41edb0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf4259d0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xf4345f0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xf420b50 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf429540 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xf429e50 stdsoap2.c(6963): free(0xf434da0) stdsoap2.c(4726): malloc(104) = 0xf4238b0 Enter id='' type=6 loc=0xf4238b0 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf423920 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf423920 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xf420b50->(nil)) stdsoap2.c(4726): malloc(24) = 0xf41eca0 First block Copy 8 bytes from 0xf420b60 to 0xf41eca0 Next block stdsoap2.c(2026): free(0xf420b50) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xf4345f0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf434a20) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf425f30) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf4228a0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf420d70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf434800) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf4348a0) stdsoap2.c(5406): free(0xf43c670) stdsoap2.c(5405): free(0xf4343d0) stdsoap2.c(5406): free(0xf434760) stdsoap2.c(5411): free(0xf429e50) stdsoap2.c(5422): free(0xf420de0) stdsoap2.c(5428): free(0xf42a130) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf41eca0) stdsoap2.c(4857): free(0xf423920) stdsoap2.c(4857): free(0xf4238b0) stdsoap2.c(4857): free(0xf429540) stdsoap2.c(4857): free(0xf4259d0) stdsoap2.c(4857): free(0xf41edb0) stdsoap2.c(4857): free(0xf434690) stdsoap2.c(4857): free(0xf423820) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf4237c0) Free logfiles stdsoap2.c(2959): free(0xf426650) stdsoap2.c(2959): free(0xf428af0) stdsoap2.c(2959): free(0xf41d9e0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff13fc6990 type=81: not found stdsoap2.c(4149): malloc(1288) = 0xc8ecc20 Pointer enter location=0x7fff13fc6990 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fff13fc6990 type=81 (0 0) Lookup location=0xc8e7720 type=3: not found Pointer enter location=0xc8e7720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xc8e7720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xc8ed130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad440 type=311: not found Embedded_id 0x7fff13fad440 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff13fc6990 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fc6990 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xc8e7720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad440 type=311: not found Embedded_id 0x7fff13fad440 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff13fc6990 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fc6990 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xc8e7720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xc8ed130) Free pointer hashtable stdsoap2.c(4079): free(0xc8ecc20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xc8f73d0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xc8f43e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xc8f8440 stdsoap2.c(7219): malloc(64) = 0xc8f6a60 stdsoap2.c(2336): malloc(40) = 0xc8ee5f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xc8f4a70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc8f7530 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc8ef580 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc916e80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xc8f7830 stdsoap2.c(7172): malloc(62) = 0xc8f78d0 stdsoap2.c(7219): malloc(64) = 0xc8f47f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fff13fc69b0 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xc8f86b0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc8f46a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc8f46a0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0xc909230 Enter id='' type=3 loc=0xc909230 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xc916e80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xc8ef580) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xc8f7530) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xc8f4a70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xc8ee5f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xc8f47f0) stdsoap2.c(5406): free(0xc8f78d0) stdsoap2.c(5405): free(0xc8f6a60) stdsoap2.c(5406): free(0xc8f43e0) stdsoap2.c(5411): free(0xc8f8440) stdsoap2.c(5422): free(0xc8f7830) stdsoap2.c(5428): free(0xc8f73d0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xc909230) stdsoap2.c(4857): free(0xc8f46a0) stdsoap2.c(4857): free(0xc8f86b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xc8d8530) Free logfiles stdsoap2.c(2959): free(0xc8d7580) stdsoap2.c(2959): free(0xc8d8640) stdsoap2.c(2959): free(0xc8d9670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xc8d4e30 stdsoap2.c(4726): malloc(24) = 0xc8d4e60 stdsoap2.c(4726): malloc(48) = 0xc8d68c0 stdsoap2.c(4726): malloc(24) = 0xc8d6930 stdsoap2.c(4726): malloc(32) = 0xc8d6980 stdsoap2.c(4726): malloc(24) = 0xc8d69e0 stdsoap2.c(4726): malloc(32) = 0xc8d6a30 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff13fc6980 type=101: not found stdsoap2.c(4149): malloc(1288) = 0xc8d6a90 Pointer enter location=0x7fff13fc6980 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fff13fc6980 type=101 (0 0) Lookup location=0xc8d4e30 type=32: not found Pointer enter location=0xc8d4e30 array=(nil) size=0 dim=0 type=32 id=2 Reference 0xc8d4e30 type=32 (0 0) Lookup location=0xc8d6980 type=31: not found Pointer enter location=0xc8d6980 array=(nil) size=0 dim=0 type=31 id=3 Reference 0xc8d6980 type=31 (0 0) Lookup location=0xc8cd820 type=3: not found Pointer enter location=0xc8cd820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xc8cd820 type=3 (0 0) Lookup location=0xc8d69e0 type=148: not found Pointer enter location=0xc8d69e0 array=(nil) size=0 dim=0 type=148 id=5 Reference 0xc8d69e0 type=148 (0 0) Lookup location=0x7fff13fc6b30 type=1: not found Pointer enter location=0x7fff13fc6b30 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff13fc6b30 type=1 (0 0) Lookup location=0x2b605229f0c8 type=131: not found Pointer enter location=0x2b605229f0c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b605229f0c8 type=131 (0 0) Lookup location=0xc8d68c0 type=28: not found Pointer enter location=0xc8d68c0 array=(nil) size=0 dim=0 type=28 id=8 Reference 0xc8d68c0 type=28 (0 0) Lookup location=0xc8d6a30 type=14: not found Pointer enter location=0xc8d6a30 array=(nil) size=0 dim=0 type=14 id=9 Reference 0xc8d6a30 type=14 (0 0) Lookup location=0x2b605128e869 type=3: not found Pointer enter location=0x2b605128e869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b605128e869 type=3 (0 0) Lookup location=0x2b605128e86e type=3: not found Pointer enter location=0x2b605128e86e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b605128e86e type=3 (0 0) Lookup location=0x2b605128e873 type=3: not found Pointer enter location=0x2b605128e873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b605128e873 type=3 (0 0) Lookup location=0x2b605128e878 type=3: not found Pointer enter location=0x2b605128e878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b605128e878 type=3 (0 0) Lookup location=0x2b605128e880 type=3: not found Pointer enter location=0x2b605128e880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b605128e880 type=3 (0 0) Lookup location=0x2b605128e886 type=3: not found Pointer enter location=0x2b605128e886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2b605128e886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xc8d6fd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad3f0 type=371: not found Embedded_id 0x7fff13fad3f0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff13fc6980 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fc6980 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xc8d4e30 type=32 id=2 Is embedded? 0 0 Embedded_id 0xc8d4e30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xc8d6980 type=31 id=3 Is embedded? 0 0 Embedded_id 0xc8d6980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xc8cd820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xc8d69e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0xc8d69e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff13fc6b30 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff13fc6b30 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b605229f0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b605229f0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xc8d68c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0xc8d68c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xc8d6a30 type=14 id=9 Is embedded? 0 0 Embedded_id 0xc8d6a30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b605128e869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=7 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad3f0 type=371: not found Embedded_id 0x7fff13fad3f0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff13fc6980 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fc6980 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xc8d4e30 type=32 id=2 Is embedded? 0 0 Embedded_id 0xc8d4e30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xc8d6980 type=31 id=3 Is embedded? 0 0 Embedded_id 0xc8d6980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xc8cd820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xc8d69e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0xc8d69e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff13fc6b30 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff13fc6b30 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b605229f0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b605229f0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xc8d68c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0xc8d68c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xc8d6a30 type=14 id=9 Is embedded? 0 0 Embedded_id 0xc8d6a30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b605128e869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xc8d6fd0) Free pointer hashtable stdsoap2.c(4079): free(0xc8d6a90) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xc8d6fd0 Free ID hashtable Read 1037 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xc8e27f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xc9096e0 stdsoap2.c(7219): malloc(64) = 0xc8e2040 stdsoap2.c(2336): malloc(40) = 0xc8df890 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xc8dad90 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc91e480 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc8f8cc0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc8dfbb0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xc8df900 stdsoap2.c(7172): malloc(62) = 0xc8df940 stdsoap2.c(7219): malloc(64) = 0xc8e2890 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fff13fc69e0 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xc8f8c00 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc8e2630 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc8e2630 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xc909f60 Enter id='' type=3 loc=0xc909f60 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc909fa0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xc8f8b90 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xc8df490 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xc8fa9c0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xc8faac0 stdsoap2.c(6963): free(0xc9096e0) stdsoap2.c(4726): malloc(104) = 0xc8df6e0 Enter id='' type=6 loc=0xc8df6e0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc8df780 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc8df780 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xc8df490->(nil)) stdsoap2.c(4726): malloc(24) = 0xc909be0 First block Copy 8 bytes from 0xc8df4a0 to 0xc909be0 Next block stdsoap2.c(2026): free(0xc8df490) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xc8f8b90) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xc8dfbb0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xc8f8cc0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xc91e480) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xc8dad90) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xc8df890) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xc8e2890) stdsoap2.c(5406): free(0xc8df940) stdsoap2.c(5405): free(0xc8e2040) stdsoap2.c(5406): free(0xc8e27f0) stdsoap2.c(5411): free(0xc8faac0) stdsoap2.c(5422): free(0xc8df900) stdsoap2.c(5428): free(0xc8d6fd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xc909be0) stdsoap2.c(4857): free(0xc8df780) stdsoap2.c(4857): free(0xc8df6e0) stdsoap2.c(4857): free(0xc8fa9c0) stdsoap2.c(4857): free(0xc909fa0) stdsoap2.c(4857): free(0xc909f60) stdsoap2.c(4857): free(0xc8e2630) stdsoap2.c(4857): free(0xc8f8c00) stdsoap2.c(4857): free(0xc8d6a30) stdsoap2.c(4857): free(0xc8d69e0) stdsoap2.c(4857): free(0xc8d6980) stdsoap2.c(4857): free(0xc8d6930) stdsoap2.c(4857): free(0xc8d68c0) stdsoap2.c(4857): free(0xc8d4e60) stdsoap2.c(4857): free(0xc8d4e30) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xc8cdcc0) Free logfiles stdsoap2.c(2959): free(0xc8d9670) stdsoap2.c(2959): free(0xc8d8640) stdsoap2.c(2959): free(0xc8d7580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff13fad4d0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0xc8f2a60 Pointer enter location=0x7fff13fad4d0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff13fad4d0 type=103 (0 0) Lookup location=0xc8df890 type=3: not found Pointer enter location=0xc8df890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xc8df890 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xc8f2f70 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad460 type=377: not found Embedded_id 0x7fff13fad460 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff13fad4d0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fad4d0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xc8df890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad460 type=377: not found Embedded_id 0x7fff13fad460 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff13fad4d0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fad4d0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xc8df890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xc8f2f70) Free pointer hashtable stdsoap2.c(4079): free(0xc8f2a60) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xc8d2770 Free ID hashtable Read 1121 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1003 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xc919f40 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xc919e00 stdsoap2.c(7219): malloc(64) = 0xc8d72d0 stdsoap2.c(2336): malloc(40) = 0xc91cfd0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xc917b30 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc9175a0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc91b130 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc905100 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xc903e90 stdsoap2.c(7172): malloc(62) = 0xc917280 stdsoap2.c(7219): malloc(64) = 0xc9144a0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff13fad4f0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xc91a710 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc91a770 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc91a770 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc91a630 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xc91a220 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xc91a560 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xc91a4d0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xc914de0 stdsoap2.c(6963): free(0xc919e00) stdsoap2.c(4726): malloc(104) = 0xc917450 Enter id='' type=6 loc=0xc917450 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc9174f0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc9174f0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xc917230 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xc91b0e0 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xc91b070 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xc91a560->(nil)) stdsoap2.c(4726): malloc(24) = 0xc917000 First block Copy 8 bytes from 0xc91a570 to 0xc917000 Next block stdsoap2.c(2026): free(0xc91a560) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xc91a220) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xc905100) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xc91b130) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xc9175a0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xc917b30) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xc91cfd0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xc9144a0) stdsoap2.c(5406): free(0xc917280) stdsoap2.c(5405): free(0xc8d72d0) stdsoap2.c(5406): free(0xc919f40) stdsoap2.c(5411): free(0xc914de0) stdsoap2.c(5422): free(0xc903e90) stdsoap2.c(5428): free(0xc8d2770) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xc917000) stdsoap2.c(4857): free(0xc91b070) stdsoap2.c(4857): free(0xc91b0e0) stdsoap2.c(4857): free(0xc917230) stdsoap2.c(4857): free(0xc9174f0) stdsoap2.c(4857): free(0xc917450) stdsoap2.c(4857): free(0xc91a4d0) stdsoap2.c(4857): free(0xc91a630) stdsoap2.c(4857): free(0xc91a770) stdsoap2.c(4857): free(0xc91a710) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xc8faa50) Free logfiles stdsoap2.c(2959): free(0xc8d7580) stdsoap2.c(2959): free(0xc8d8640) stdsoap2.c(2959): free(0xc8d9670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff13fad4d0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0xc8f1120 Pointer enter location=0x7fff13fad4d0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff13fad4d0 type=103 (0 0) Lookup location=0xc8df890 type=3: not found Pointer enter location=0xc8df890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xc8df890 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xc8e1880 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad460 type=377: not found Embedded_id 0x7fff13fad460 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff13fad4d0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fad4d0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xc8df890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad460 type=377: not found Embedded_id 0x7fff13fad460 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff13fad4d0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fad4d0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xc8df890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xc8e1880) Free pointer hashtable stdsoap2.c(4079): free(0xc8f1120) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xc8d3740 Free ID hashtable Read 1121 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1003 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xc8d2830 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xc8d2a10 stdsoap2.c(7219): malloc(64) = 0xc8d2610 stdsoap2.c(2336): malloc(40) = 0xc8de520 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xc8d2ce0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc913020 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc8de330 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc8d2ab0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xc8d3420 stdsoap2.c(7172): malloc(62) = 0xc912ee0 stdsoap2.c(7219): malloc(64) = 0xc8d3940 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff13fad4f0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xc907130 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc8de120 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc8de120 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc8e1880 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xc8d2780 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xc8d3a40 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xc907a00 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xc8f8440 stdsoap2.c(6963): free(0xc8d2a10) stdsoap2.c(4726): malloc(104) = 0xc8f8570 Enter id='' type=6 loc=0xc8f8570 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc8f8610 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc8f8610 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xc8d2730 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xc8de590 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xc8d3900 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xc8d3a40->(nil)) stdsoap2.c(4726): malloc(24) = 0xc8d29a0 First block Copy 8 bytes from 0xc8d3a50 to 0xc8d29a0 Next block stdsoap2.c(2026): free(0xc8d3a40) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xc8d2780) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xc8d2ab0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xc8de330) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xc913020) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xc8d2ce0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xc8de520) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xc8d3940) stdsoap2.c(5406): free(0xc912ee0) stdsoap2.c(5405): free(0xc8d2610) stdsoap2.c(5406): free(0xc8d2830) stdsoap2.c(5411): free(0xc8f8440) stdsoap2.c(5422): free(0xc8d3420) stdsoap2.c(5428): free(0xc8d3740) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xc8d29a0) stdsoap2.c(4857): free(0xc8d3900) stdsoap2.c(4857): free(0xc8de590) stdsoap2.c(4857): free(0xc8d2730) stdsoap2.c(4857): free(0xc8f8610) stdsoap2.c(4857): free(0xc8f8570) stdsoap2.c(4857): free(0xc907a00) stdsoap2.c(4857): free(0xc8e1880) stdsoap2.c(4857): free(0xc8de120) stdsoap2.c(4857): free(0xc907130) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xc91a350) Free logfiles stdsoap2.c(2959): free(0xc8d9670) stdsoap2.c(2959): free(0xc8d8640) stdsoap2.c(2959): free(0xc8d7580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff13fad4d0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0xc8e0600 Pointer enter location=0x7fff13fad4d0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff13fad4d0 type=103 (0 0) Lookup location=0xc8df890 type=3: not found Pointer enter location=0xc8df890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xc8df890 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xc8e0b10 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad460 type=377: not found Embedded_id 0x7fff13fad460 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff13fad4d0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fad4d0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xc8df890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad460 type=377: not found Embedded_id 0x7fff13fad460 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff13fad4d0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fad4d0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xc8df890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xc8e0b10) Free pointer hashtable stdsoap2.c(4079): free(0xc8e0600) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xc906010 Free ID hashtable Read 1221 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1103 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xc8ddf50 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xc8de130 stdsoap2.c(7219): malloc(64) = 0xc8ddd30 stdsoap2.c(2336): malloc(40) = 0xc8de400 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xc8de1f0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc918530 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc8db200 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc8db330 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xc916f40 stdsoap2.c(7172): malloc(62) = 0xc905710 stdsoap2.c(7219): malloc(64) = 0xc8ddde0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff13fad4f0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xc8dde30 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc8db140 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc8db140 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc8de580 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xc8ddea0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xc8df160 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xc8fb4d0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xc905320 stdsoap2.c(6963): free(0xc8de130) stdsoap2.c(4726): malloc(104) = 0xc9053e0 Enter id='' type=6 loc=0xc9053e0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc8fb590 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc8fb590 size=4 level=0 Element content value='SRM_SPACE_AVAILABLE' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xc8db5b0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xc8df020 Element content value='7200' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xc8de0c0 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0xc8de7d0 Enter id='' type=6 loc=0xc8de7d0 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xc8df160->(nil)) stdsoap2.c(4726): malloc(24) = 0xc905c90 First block Copy 8 bytes from 0xc8df170 to 0xc905c90 Next block stdsoap2.c(2026): free(0xc8df160) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xc8ddea0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xc8db330) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xc8db200) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xc918530) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xc8de1f0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xc8de400) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xc8ddde0) stdsoap2.c(5406): free(0xc905710) stdsoap2.c(5405): free(0xc8ddd30) stdsoap2.c(5406): free(0xc8ddf50) stdsoap2.c(5411): free(0xc905320) stdsoap2.c(5422): free(0xc916f40) stdsoap2.c(5428): free(0xc906010) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xc905c90) stdsoap2.c(4857): free(0xc8de7d0) stdsoap2.c(4857): free(0xc8de0c0) stdsoap2.c(4857): free(0xc8df020) stdsoap2.c(4857): free(0xc8db5b0) stdsoap2.c(4857): free(0xc8fb590) stdsoap2.c(4857): free(0xc9053e0) stdsoap2.c(4857): free(0xc8fb4d0) stdsoap2.c(4857): free(0xc8de580) stdsoap2.c(4857): free(0xc8db140) stdsoap2.c(4857): free(0xc8dde30) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xc8e1950) Free logfiles stdsoap2.c(2959): free(0xc8d7580) stdsoap2.c(2959): free(0xc8d8640) stdsoap2.c(2959): free(0xc8d9670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xc8f68b0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff13fc7320 type=111: not found stdsoap2.c(4149): malloc(1288) = 0xc8fe390 Pointer enter location=0x7fff13fc7320 array=(nil) size=0 dim=0 type=111 id=1 Reference 0x7fff13fc7320 type=111 (0 0) Lookup location=0xc8df890 type=3: not found Pointer enter location=0xc8df890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xc8df890 type=3 (0 0) Lookup location=0xc8f68b0 type=27: not found Pointer enter location=0xc8f68b0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0xc8f68b0 type=27 (0 0) Lookup location=0xc8cd820 type=3: not found Pointer enter location=0xc8cd820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xc8cd820 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xc8f6940 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13faddc0 type=401: not found Embedded_id 0x7fff13faddc0 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff13fc7320 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fc7320 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0xc8df890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xc8f68b0 type=27 id=3 Is embedded? 0 0 Embedded_id 0xc8f68b0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xc8cd820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=720 New count is 720 bytes Begin send phase (socket=7 mode=0x1 count=720) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13faddc0 type=401: not found Embedded_id 0x7fff13faddc0 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff13fc7320 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fc7320 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0xc8df890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xc8f68b0 type=27 id=3 Is embedded? 0 0 Embedded_id 0xc8f68b0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xc8cd820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xc8f6940) Free pointer hashtable stdsoap2.c(4079): free(0xc8fe390) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xc8f6940 Free ID hashtable Read 938 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 821 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xc907b10 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xc907cf0 stdsoap2.c(7219): malloc(64) = 0xc9078f0 stdsoap2.c(2336): malloc(40) = 0xc907fc0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xc907db0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc928410 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc904d00 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc904e30 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xc9271a0 stdsoap2.c(7172): malloc(62) = 0xc9079a0 stdsoap2.c(7219): malloc(64) = 0xc904c10 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPutDoneResponse' 'srm2:srmPutDoneResponse' Begin element found (level=3) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' Enter id='' type=396 loc=0x7fff13fc7340 size=8 level=0 Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Reverting last element (level=3) Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Enter id='' type=112 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc904c60 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc91b550 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc91b550 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc908140 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xc907a60 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xc908d20 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc91be60 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xc90c4b0 stdsoap2.c(6963): free(0xc907cf0) stdsoap2.c(4726): malloc(104) = 0xc91b140 Enter id='' type=6 loc=0xc91b140 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc91b1e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc91b1e0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xc908d20->(nil)) stdsoap2.c(4726): malloc(24) = 0xc9050b0 First block Copy 8 bytes from 0xc908d30 to 0xc9050b0 Next block stdsoap2.c(2026): free(0xc908d20) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xc907a60) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPutDoneResponse'='srmPutDoneResponse' End element found (level=2) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xc904e30) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xc904d00) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xc928410) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xc907db0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xc907fc0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xc904c10) stdsoap2.c(5406): free(0xc9079a0) stdsoap2.c(5405): free(0xc9078f0) stdsoap2.c(5406): free(0xc907b10) stdsoap2.c(5411): free(0xc90c4b0) stdsoap2.c(5422): free(0xc9271a0) stdsoap2.c(5428): free(0xc8f6940) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xc9050b0) stdsoap2.c(4857): free(0xc91b1e0) stdsoap2.c(4857): free(0xc91b140) stdsoap2.c(4857): free(0xc91be60) stdsoap2.c(4857): free(0xc908140) stdsoap2.c(4857): free(0xc91b550) stdsoap2.c(4857): free(0xc904c60) stdsoap2.c(4857): free(0xc8f68b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xc8cd880) Free logfiles stdsoap2.c(2959): free(0xc8f9fd0) stdsoap2.c(2959): free(0xc8ddd80) stdsoap2.c(2959): free(0xc8dba90) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xc8febf0 stdsoap2.c(4726): malloc(24) = 0xc8cd980 stdsoap2.c(4726): malloc(48) = 0xc8d4710 stdsoap2.c(4726): malloc(24) = 0xc8cd9a0 stdsoap2.c(4726): malloc(32) = 0xc8ddd80 stdsoap2.c(4726): malloc(32) = 0xc8f7300 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff13fc69a0 type=93: not found stdsoap2.c(4149): malloc(1288) = 0xc8fe150 Pointer enter location=0x7fff13fc69a0 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fff13fc69a0 type=93 (0 0) Lookup location=0xc8febf0 type=30: not found Pointer enter location=0xc8febf0 array=(nil) size=0 dim=0 type=30 id=2 Reference 0xc8febf0 type=30 (0 0) Lookup location=0xc8ddd80 type=29: not found Pointer enter location=0xc8ddd80 array=(nil) size=0 dim=0 type=29 id=3 Reference 0xc8ddd80 type=29 (0 0) Lookup location=0xc9050b0 type=3: not found Pointer enter location=0xc9050b0 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xc9050b0 type=3 (0 0) Lookup location=0x2b605229f0d4 type=131: not found Pointer enter location=0x2b605229f0d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2b605229f0d4 type=131 (0 0) Lookup location=0x7fff13fc6b30 type=1: not found Pointer enter location=0x7fff13fc6b30 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff13fc6b30 type=1 (0 0) Lookup location=0xc8d4710 type=28: not found Pointer enter location=0xc8d4710 array=(nil) size=0 dim=0 type=28 id=7 Reference 0xc8d4710 type=28 (0 0) Lookup location=0xc8f7300 type=14: not found Pointer enter location=0xc8f7300 array=(nil) size=0 dim=0 type=14 id=8 Reference 0xc8f7300 type=14 (0 0) Lookup location=0x2b605128e869 type=3: not found Pointer enter location=0x2b605128e869 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2b605128e869 type=3 (0 0) Lookup location=0x2b605128e86e type=3: not found Pointer enter location=0x2b605128e86e array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b605128e86e type=3 (0 0) Lookup location=0x2b605128e873 type=3: not found Pointer enter location=0x2b605128e873 array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b605128e873 type=3 (0 0) Lookup location=0x2b605128e878 type=3: not found Pointer enter location=0x2b605128e878 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b605128e878 type=3 (0 0) Lookup location=0x2b605128e880 type=3: not found Pointer enter location=0x2b605128e880 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b605128e880 type=3 (0 0) Lookup location=0x2b605128e886 type=3: not found Pointer enter location=0x2b605128e886 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b605128e886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xc8cd800 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad420 type=347: not found Embedded_id 0x7fff13fad420 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff13fc69a0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fc69a0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xc8febf0 type=30 id=2 Is embedded? 0 0 Embedded_id 0xc8febf0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xc8ddd80 type=29 id=3 Is embedded? 0 0 Embedded_id 0xc8ddd80 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xc9050b0 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b605229f0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b605229f0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff13fc6b30 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff13fc6b30 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xc8d4710 type=28 id=7 Is embedded? 0 0 Embedded_id 0xc8d4710 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xc8f7300 type=14 id=8 Is embedded? 0 0 Embedded_id 0xc8f7300 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b605128e869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e86e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=7 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad420 type=347: not found Embedded_id 0x7fff13fad420 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff13fc69a0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fc69a0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xc8febf0 type=30 id=2 Is embedded? 0 0 Embedded_id 0xc8febf0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xc8ddd80 type=29 id=3 Is embedded? 0 0 Embedded_id 0xc8ddd80 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xc9050b0 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b605229f0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b605229f0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff13fc6b30 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff13fc6b30 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xc8d4710 type=28 id=7 Is embedded? 0 0 Embedded_id 0xc8d4710 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xc8f7300 type=14 id=8 Is embedded? 0 0 Embedded_id 0xc8f7300 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b605128e869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e86e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b605128e886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xc8cd800) Free pointer hashtable stdsoap2.c(4079): free(0xc8fe150) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xc8cd800 Free ID hashtable Read 1049 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xc9084f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xc907e50 stdsoap2.c(7219): malloc(64) = 0xc905f40 stdsoap2.c(2336): malloc(40) = 0xc905fe0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xc905af0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc909620 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc929130 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc9087b0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xc927b40 stdsoap2.c(7172): malloc(62) = 0xc906220 stdsoap2.c(7219): malloc(64) = 0xc9170c0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fff13fc69f0 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xc908420 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc908be0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc908be0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xc908260 Enter id='' type=3 loc=0xc908260 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc908cc0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xc909540 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xc9085e0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xc908e00 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xc908ac0 stdsoap2.c(6963): free(0xc907e50) stdsoap2.c(4726): malloc(104) = 0xc9179c0 Enter id='' type=6 loc=0xc9179c0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc917a60 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc917a60 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xc9085e0->(nil)) stdsoap2.c(4726): malloc(24) = 0xc917640 First block Copy 8 bytes from 0xc9085f0 to 0xc917640 Next block stdsoap2.c(2026): free(0xc9085e0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xc909540) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xc9087b0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xc929130) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xc909620) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xc905af0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xc905fe0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xc9170c0) stdsoap2.c(5406): free(0xc906220) stdsoap2.c(5405): free(0xc905f40) stdsoap2.c(5406): free(0xc9084f0) stdsoap2.c(5411): free(0xc908ac0) stdsoap2.c(5422): free(0xc927b40) stdsoap2.c(5428): free(0xc8cd800) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xc917640) stdsoap2.c(4857): free(0xc917a60) stdsoap2.c(4857): free(0xc9179c0) stdsoap2.c(4857): free(0xc908e00) stdsoap2.c(4857): free(0xc908cc0) stdsoap2.c(4857): free(0xc908260) stdsoap2.c(4857): free(0xc908be0) stdsoap2.c(4857): free(0xc908420) stdsoap2.c(4857): free(0xc8f7300) stdsoap2.c(4857): free(0xc8ddd80) stdsoap2.c(4857): free(0xc8cd9a0) stdsoap2.c(4857): free(0xc8d4710) stdsoap2.c(4857): free(0xc8cd980) stdsoap2.c(4857): free(0xc8febf0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xc8df890) Free logfiles stdsoap2.c(2959): free(0xc8fec20) stdsoap2.c(2959): free(0xc8f9fd0) stdsoap2.c(2959): free(0xc8f6920) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff13fad4d0 type=95: not found stdsoap2.c(4149): malloc(1288) = 0xc905ac0 Pointer enter location=0x7fff13fad4d0 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff13fad4d0 type=95 (0 0) Lookup location=0xc905fe0 type=3: not found Pointer enter location=0xc905fe0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xc905fe0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xc9084a0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad460 type=353: not found Embedded_id 0x7fff13fad460 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff13fad4d0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fad4d0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xc905fe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad460 type=353: not found Embedded_id 0x7fff13fad460 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff13fad4d0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fad4d0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xc905fe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xc9084a0) Free pointer hashtable stdsoap2.c(4079): free(0xc905ac0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xc9047c0 Free ID hashtable Read 1076 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 959 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xc900940 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xc8fff00 stdsoap2.c(7219): malloc(64) = 0xc900200 stdsoap2.c(2336): malloc(40) = 0xc900520 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xc925b70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc9009b0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc925850 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc9006a0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xc906050 stdsoap2.c(7172): malloc(62) = 0xc8ffe50 stdsoap2.c(7219): malloc(64) = 0xc900830 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff13fad4f0 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xc900880 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc925740 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc925740 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc9257a0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xc8fff80 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xc925960 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xc903540 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xc903eb0 stdsoap2.c(6963): free(0xc8fff00) stdsoap2.c(4726): malloc(104) = 0xc9035c0 Enter id='' type=6 loc=0xc9035c0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xc9010f0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc91bfd0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc91bfd0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xc900190 Element content value='0' End element found (level=6) 'remainingPinTime'='remainingPinTime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xc925960->(nil)) stdsoap2.c(4726): malloc(24) = 0xc900720 First block Copy 8 bytes from 0xc925970 to 0xc900720 Next block stdsoap2.c(2026): free(0xc925960) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xc8fff80) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xc9006a0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xc925850) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xc9009b0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xc925b70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xc900520) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xc900830) stdsoap2.c(5406): free(0xc8ffe50) stdsoap2.c(5405): free(0xc900200) stdsoap2.c(5406): free(0xc900940) stdsoap2.c(5411): free(0xc903eb0) stdsoap2.c(5422): free(0xc906050) stdsoap2.c(5428): free(0xc9047c0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xc900720) stdsoap2.c(4857): free(0xc900190) stdsoap2.c(4857): free(0xc91bfd0) stdsoap2.c(4857): free(0xc9010f0) stdsoap2.c(4857): free(0xc9035c0) stdsoap2.c(4857): free(0xc903540) stdsoap2.c(4857): free(0xc9257a0) stdsoap2.c(4857): free(0xc925740) stdsoap2.c(4857): free(0xc900880) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xc908590) Free logfiles stdsoap2.c(2959): free(0xc8f6920) stdsoap2.c(2959): free(0xc8f9fd0) stdsoap2.c(2959): free(0xc8fec20) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff13fad4d0 type=95: not found stdsoap2.c(4149): malloc(1288) = 0xc9058d0 Pointer enter location=0x7fff13fad4d0 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff13fad4d0 type=95 (0 0) Lookup location=0xc905fe0 type=3: not found Pointer enter location=0xc905fe0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xc905fe0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xc905de0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad460 type=353: not found Embedded_id 0x7fff13fad460 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff13fad4d0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fad4d0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xc905fe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13fad460 type=353: not found Embedded_id 0x7fff13fad460 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff13fad4d0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fad4d0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xc905fe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xc905de0) Free pointer hashtable stdsoap2.c(4079): free(0xc9058d0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xc91d280 Free ID hashtable Read 1177 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1059 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xc903cb0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xc903980 stdsoap2.c(7219): malloc(64) = 0xc9245d0 stdsoap2.c(2336): malloc(40) = 0xc9246e0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xc903a40 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc907250 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc924ae0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc904850 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xc92b8e0 stdsoap2.c(7172): malloc(62) = 0xc92cea0 stdsoap2.c(7219): malloc(64) = 0xc924cd0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff13fad4f0 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xc924b80 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc900c80 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc900c80 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc900ce0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xc924d40 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xc924900 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xc903d50 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xc901590 stdsoap2.c(6963): free(0xc903980) stdsoap2.c(4726): malloc(104) = 0xc901ae0 Enter id='' type=6 loc=0xc901ae0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xc924dd0 Element content value='65536' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc901b80 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc901b80 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xc901aa0 Element content value='7200' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0xc91e4c0 Enter id='' type=6 loc=0xc91e4c0 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xc924900->(nil)) stdsoap2.c(4726): malloc(24) = 0xc903ba0 First block Copy 8 bytes from 0xc924910 to 0xc903ba0 Next block stdsoap2.c(2026): free(0xc924900) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xc924d40) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xc904850) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xc924ae0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xc907250) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xc903a40) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xc9246e0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xc924cd0) stdsoap2.c(5406): free(0xc92cea0) stdsoap2.c(5405): free(0xc9245d0) stdsoap2.c(5406): free(0xc903cb0) stdsoap2.c(5411): free(0xc901590) stdsoap2.c(5422): free(0xc92b8e0) stdsoap2.c(5428): free(0xc91d280) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xc903ba0) stdsoap2.c(4857): free(0xc91e4c0) stdsoap2.c(4857): free(0xc901aa0) stdsoap2.c(4857): free(0xc901b80) stdsoap2.c(4857): free(0xc924dd0) stdsoap2.c(4857): free(0xc901ae0) stdsoap2.c(4857): free(0xc903d50) stdsoap2.c(4857): free(0xc900ce0) stdsoap2.c(4857): free(0xc900c80) stdsoap2.c(4857): free(0xc924b80) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xc925690) Free logfiles stdsoap2.c(2959): free(0xc8fec20) stdsoap2.c(2959): free(0xc8f9fd0) stdsoap2.c(2959): free(0xc8f6920) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xc908f40 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff13fc7320 type=109: not found stdsoap2.c(4149): malloc(1288) = 0xc924ae0 Pointer enter location=0x7fff13fc7320 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fff13fc7320 type=109 (0 0) Lookup location=0xc905fe0 type=3: not found Pointer enter location=0xc905fe0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xc905fe0 type=3 (0 0) Lookup location=0xc908f40 type=27: not found Pointer enter location=0xc908f40 array=(nil) size=0 dim=0 type=27 id=3 Reference 0xc908f40 type=27 (0 0) Lookup location=0xc9050b0 type=3: not found Pointer enter location=0xc9050b0 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xc9050b0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xc905e20 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13faddc0 type=395: not found Embedded_id 0x7fff13faddc0 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff13fc7320 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fc7320 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0xc905fe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xc908f40 type=27 id=3 Is embedded? 0 0 Embedded_id 0xc908f40 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xc9050b0 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=7 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff13faddc0 type=395: not found Embedded_id 0x7fff13faddc0 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff13fc7320 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff13fc7320 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0xc905fe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xc908f40 type=27 id=3 Is embedded? 0 0 Embedded_id 0xc908f40 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xc9050b0 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xc905e20) Free pointer hashtable stdsoap2.c(4079): free(0xc924ae0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xc91eaa0 Free ID hashtable Read 958 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xc902680 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xc901fe0 stdsoap2.c(7219): malloc(64) = 0xc901780 stdsoap2.c(2336): malloc(40) = 0xc906640 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xc901c00 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc902090 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc92b5d0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xc906a80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xc9138f0 stdsoap2.c(7172): malloc(62) = 0xc902e70 stdsoap2.c(7219): malloc(64) = 0xc9064a0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fff13fc7340 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc902500 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc902560 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc902560 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc905e50 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xc902f40 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xc906450 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc914230 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xc909450 stdsoap2.c(6963): free(0xc901fe0) stdsoap2.c(4726): malloc(104) = 0xc902370 Enter id='' type=6 loc=0xc902370 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xc902410 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xc902410 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xc906450->(nil)) stdsoap2.c(4726): malloc(24) = 0xc901f40 First block Copy 8 bytes from 0xc906460 to 0xc901f40 Next block stdsoap2.c(2026): free(0xc906450) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xc902f40) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xc906a80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xc92b5d0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xc902090) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xc901c00) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xc906640) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xc9064a0) stdsoap2.c(5406): free(0xc902e70) stdsoap2.c(5405): free(0xc901780) stdsoap2.c(5406): free(0xc902680) stdsoap2.c(5411): free(0xc909450) stdsoap2.c(5422): free(0xc9138f0) stdsoap2.c(5428): free(0xc91eaa0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xc901f40) stdsoap2.c(4857): free(0xc902410) stdsoap2.c(4857): free(0xc902370) stdsoap2.c(4857): free(0xc914230) stdsoap2.c(4857): free(0xc905e50) stdsoap2.c(4857): free(0xc902560) stdsoap2.c(4857): free(0xc902500) stdsoap2.c(4857): free(0xc908f40) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xc8ff360) Free logfiles stdsoap2.c(2959): free(0xc905330) stdsoap2.c(2959): free(0xc924430) stdsoap2.c(2959): free(0xc924450) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff11c455c0 type=81: not found stdsoap2.c(4149): malloc(1288) = 0x178b6c20 Pointer enter location=0x7fff11c455c0 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fff11c455c0 type=81 (0 0) Lookup location=0x178b1720 type=3: not found Pointer enter location=0x178b1720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x178b1720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x178b7130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c070 type=311: not found Embedded_id 0x7fff11c2c070 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff11c455c0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c455c0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x178b1720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c070 type=311: not found Embedded_id 0x7fff11c2c070 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff11c455c0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c455c0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x178b1720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x178b7130) Free pointer hashtable stdsoap2.c(4079): free(0x178b6c20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x178c13d0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x178be3e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x178c2440 stdsoap2.c(7219): malloc(64) = 0x178c0a60 stdsoap2.c(2336): malloc(40) = 0x178b85f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x178bea70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178c1530 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178b9580 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178e0e80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x178c1830 stdsoap2.c(7172): malloc(62) = 0x178c18d0 stdsoap2.c(7219): malloc(64) = 0x178be7f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fff11c455e0 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x178c26b0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178be6a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178be6a0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0x178d3230 Enter id='' type=3 loc=0x178d3230 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x178e0e80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x178b9580) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x178c1530) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x178bea70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x178b85f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x178be7f0) stdsoap2.c(5406): free(0x178c18d0) stdsoap2.c(5405): free(0x178c0a60) stdsoap2.c(5406): free(0x178be3e0) stdsoap2.c(5411): free(0x178c2440) stdsoap2.c(5422): free(0x178c1830) stdsoap2.c(5428): free(0x178c13d0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x178d3230) stdsoap2.c(4857): free(0x178be6a0) stdsoap2.c(4857): free(0x178c26b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x178a2530) Free logfiles stdsoap2.c(2959): free(0x178a1580) stdsoap2.c(2959): free(0x178a2640) stdsoap2.c(2959): free(0x178a3670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x1789ee30 stdsoap2.c(4726): malloc(24) = 0x1789ee60 stdsoap2.c(4726): malloc(48) = 0x178a08c0 stdsoap2.c(4726): malloc(24) = 0x178a0930 stdsoap2.c(4726): malloc(32) = 0x178a0980 stdsoap2.c(4726): malloc(24) = 0x178a09e0 stdsoap2.c(4726): malloc(32) = 0x178a0a30 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff11c455b0 type=101: not found stdsoap2.c(4149): malloc(1288) = 0x178a0a90 Pointer enter location=0x7fff11c455b0 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fff11c455b0 type=101 (0 0) Lookup location=0x1789ee30 type=32: not found Pointer enter location=0x1789ee30 array=(nil) size=0 dim=0 type=32 id=2 Reference 0x1789ee30 type=32 (0 0) Lookup location=0x178a0980 type=31: not found Pointer enter location=0x178a0980 array=(nil) size=0 dim=0 type=31 id=3 Reference 0x178a0980 type=31 (0 0) Lookup location=0x17897820 type=3: not found Pointer enter location=0x17897820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x17897820 type=3 (0 0) Lookup location=0x178a09e0 type=148: not found Pointer enter location=0x178a09e0 array=(nil) size=0 dim=0 type=148 id=5 Reference 0x178a09e0 type=148 (0 0) Lookup location=0x7fff11c45760 type=1: not found Pointer enter location=0x7fff11c45760 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff11c45760 type=1 (0 0) Lookup location=0x2b0920ce60c8 type=131: not found Pointer enter location=0x2b0920ce60c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b0920ce60c8 type=131 (0 0) Lookup location=0x178a08c0 type=28: not found Pointer enter location=0x178a08c0 array=(nil) size=0 dim=0 type=28 id=8 Reference 0x178a08c0 type=28 (0 0) Lookup location=0x178a0a30 type=14: not found Pointer enter location=0x178a0a30 array=(nil) size=0 dim=0 type=14 id=9 Reference 0x178a0a30 type=14 (0 0) Lookup location=0x2b091fcd5869 type=3: not found Pointer enter location=0x2b091fcd5869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b091fcd5869 type=3 (0 0) Lookup location=0x2b091fcd586e type=3: not found Pointer enter location=0x2b091fcd586e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b091fcd586e type=3 (0 0) Lookup location=0x2b091fcd5873 type=3: not found Pointer enter location=0x2b091fcd5873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b091fcd5873 type=3 (0 0) Lookup location=0x2b091fcd5878 type=3: not found Pointer enter location=0x2b091fcd5878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b091fcd5878 type=3 (0 0) Lookup location=0x2b091fcd5880 type=3: not found Pointer enter location=0x2b091fcd5880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b091fcd5880 type=3 (0 0) Lookup location=0x2b091fcd5886 type=3: not found Pointer enter location=0x2b091fcd5886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2b091fcd5886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x178a0fd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c020 type=371: not found Embedded_id 0x7fff11c2c020 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff11c455b0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c455b0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x1789ee30 type=32 id=2 Is embedded? 0 0 Embedded_id 0x1789ee30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x178a0980 type=31 id=3 Is embedded? 0 0 Embedded_id 0x178a0980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x17897820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x178a09e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0x178a09e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff11c45760 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff11c45760 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b0920ce60c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b0920ce60c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x178a08c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x178a08c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x178a0a30 type=14 id=9 Is embedded? 0 0 Embedded_id 0x178a0a30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b091fcd5869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd586e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=7 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c020 type=371: not found Embedded_id 0x7fff11c2c020 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff11c455b0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c455b0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x1789ee30 type=32 id=2 Is embedded? 0 0 Embedded_id 0x1789ee30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x178a0980 type=31 id=3 Is embedded? 0 0 Embedded_id 0x178a0980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x17897820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x178a09e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0x178a09e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff11c45760 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff11c45760 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b0920ce60c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b0920ce60c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x178a08c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x178a08c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x178a0a30 type=14 id=9 Is embedded? 0 0 Embedded_id 0x178a0a30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b091fcd5869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd586e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x178a0fd0) Free pointer hashtable stdsoap2.c(4079): free(0x178a0a90) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x178a0fd0 Free ID hashtable Read 1037 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x178ac7f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x178d36e0 stdsoap2.c(7219): malloc(64) = 0x178ac040 stdsoap2.c(2336): malloc(40) = 0x178a9890 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x178a4d90 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178e8480 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178c2cc0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178a9bb0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x178a9900 stdsoap2.c(7172): malloc(62) = 0x178a9940 stdsoap2.c(7219): malloc(64) = 0x178ac890 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fff11c45610 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x178c2c00 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178ac630 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178ac630 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x178d3f60 Enter id='' type=3 loc=0x178d3f60 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178d3fa0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x178c2b90 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x178a9490 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x178c49c0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x178c4ac0 stdsoap2.c(6963): free(0x178d36e0) stdsoap2.c(4726): malloc(104) = 0x178a96e0 Enter id='' type=6 loc=0x178a96e0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178a9780 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178a9780 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x178a9490->(nil)) stdsoap2.c(4726): malloc(24) = 0x178d3be0 First block Copy 8 bytes from 0x178a94a0 to 0x178d3be0 Next block stdsoap2.c(2026): free(0x178a9490) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x178c2b90) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x178a9bb0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x178c2cc0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x178e8480) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x178a4d90) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x178a9890) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x178ac890) stdsoap2.c(5406): free(0x178a9940) stdsoap2.c(5405): free(0x178ac040) stdsoap2.c(5406): free(0x178ac7f0) stdsoap2.c(5411): free(0x178c4ac0) stdsoap2.c(5422): free(0x178a9900) stdsoap2.c(5428): free(0x178a0fd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x178d3be0) stdsoap2.c(4857): free(0x178a9780) stdsoap2.c(4857): free(0x178a96e0) stdsoap2.c(4857): free(0x178c49c0) stdsoap2.c(4857): free(0x178d3fa0) stdsoap2.c(4857): free(0x178d3f60) stdsoap2.c(4857): free(0x178ac630) stdsoap2.c(4857): free(0x178c2c00) stdsoap2.c(4857): free(0x178a0a30) stdsoap2.c(4857): free(0x178a09e0) stdsoap2.c(4857): free(0x178a0980) stdsoap2.c(4857): free(0x178a0930) stdsoap2.c(4857): free(0x178a08c0) stdsoap2.c(4857): free(0x1789ee60) stdsoap2.c(4857): free(0x1789ee30) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x17897cc0) Free logfiles stdsoap2.c(2959): free(0x178a3670) stdsoap2.c(2959): free(0x178a2640) stdsoap2.c(2959): free(0x178a1580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff11c2c100 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x178bca60 Pointer enter location=0x7fff11c2c100 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff11c2c100 type=103 (0 0) Lookup location=0x178a9890 type=3: not found Pointer enter location=0x178a9890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x178a9890 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x178bcf70 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c090 type=377: not found Embedded_id 0x7fff11c2c090 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff11c2c100 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c2c100 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x178a9890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c090 type=377: not found Embedded_id 0x7fff11c2c090 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff11c2c100 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c2c100 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x178a9890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x178bcf70) Free pointer hashtable stdsoap2.c(4079): free(0x178bca60) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1789c770 Free ID hashtable Read 1121 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1003 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x178e3f40 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x178e3e00 stdsoap2.c(7219): malloc(64) = 0x178a12d0 stdsoap2.c(2336): malloc(40) = 0x178e6fd0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x178e1b30 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178e15a0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178e5130 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178cf100 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x178cde90 stdsoap2.c(7172): malloc(62) = 0x178e1280 stdsoap2.c(7219): malloc(64) = 0x178de4a0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff11c2c120 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x178e4710 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178e4770 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178e4770 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178e4630 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x178e4220 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x178e4560 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x178e44d0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x178dede0 stdsoap2.c(6963): free(0x178e3e00) stdsoap2.c(4726): malloc(104) = 0x178e1450 Enter id='' type=6 loc=0x178e1450 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178e14f0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178e14f0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x178e1230 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x178e50e0 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x178e5070 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x178e4560->(nil)) stdsoap2.c(4726): malloc(24) = 0x178e1000 First block Copy 8 bytes from 0x178e4570 to 0x178e1000 Next block stdsoap2.c(2026): free(0x178e4560) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x178e4220) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x178cf100) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x178e5130) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x178e15a0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x178e1b30) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x178e6fd0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x178de4a0) stdsoap2.c(5406): free(0x178e1280) stdsoap2.c(5405): free(0x178a12d0) stdsoap2.c(5406): free(0x178e3f40) stdsoap2.c(5411): free(0x178dede0) stdsoap2.c(5422): free(0x178cde90) stdsoap2.c(5428): free(0x1789c770) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x178e1000) stdsoap2.c(4857): free(0x178e5070) stdsoap2.c(4857): free(0x178e50e0) stdsoap2.c(4857): free(0x178e1230) stdsoap2.c(4857): free(0x178e14f0) stdsoap2.c(4857): free(0x178e1450) stdsoap2.c(4857): free(0x178e44d0) stdsoap2.c(4857): free(0x178e4630) stdsoap2.c(4857): free(0x178e4770) stdsoap2.c(4857): free(0x178e4710) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x178c4a50) Free logfiles stdsoap2.c(2959): free(0x178a1580) stdsoap2.c(2959): free(0x178a2640) stdsoap2.c(2959): free(0x178a3670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff11c2c100 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x178bb120 Pointer enter location=0x7fff11c2c100 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff11c2c100 type=103 (0 0) Lookup location=0x178a9890 type=3: not found Pointer enter location=0x178a9890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x178a9890 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x178ab880 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c090 type=377: not found Embedded_id 0x7fff11c2c090 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff11c2c100 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c2c100 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x178a9890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c090 type=377: not found Embedded_id 0x7fff11c2c090 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff11c2c100 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c2c100 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x178a9890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x178ab880) Free pointer hashtable stdsoap2.c(4079): free(0x178bb120) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1789d740 Free ID hashtable Read 1221 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1103 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1789c830 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x1789ca10 stdsoap2.c(7219): malloc(64) = 0x1789c610 stdsoap2.c(2336): malloc(40) = 0x178a8520 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x1789cce0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178dd030 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178a8330 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1789cab0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1789d420 stdsoap2.c(7172): malloc(62) = 0x178dcef0 stdsoap2.c(7219): malloc(64) = 0x1789d940 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff11c2c120 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x178a8120 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178d10f0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178d10f0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178d1150 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1789c780 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x1789da40 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x178d1a00 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x178c2440 stdsoap2.c(6963): free(0x1789ca10) stdsoap2.c(4726): malloc(104) = 0x178c2570 Enter id='' type=6 loc=0x178c2570 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178c2610 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178c2610 size=4 level=0 Element content value='SRM_SPACE_AVAILABLE' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x1789c730 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x178a8590 Element content value='7199' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x1789d900 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x178d0d10 Enter id='' type=6 loc=0x178d0d10 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x1789da40->(nil)) stdsoap2.c(4726): malloc(24) = 0x1789c9a0 First block Copy 8 bytes from 0x1789da50 to 0x1789c9a0 Next block stdsoap2.c(2026): free(0x1789da40) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1789c780) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x1789cab0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x178a8330) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x178dd030) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x1789cce0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x178a8520) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x1789d940) stdsoap2.c(5406): free(0x178dcef0) stdsoap2.c(5405): free(0x1789c610) stdsoap2.c(5406): free(0x1789c830) stdsoap2.c(5411): free(0x178c2440) stdsoap2.c(5422): free(0x1789d420) stdsoap2.c(5428): free(0x1789d740) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1789c9a0) stdsoap2.c(4857): free(0x178d0d10) stdsoap2.c(4857): free(0x1789d900) stdsoap2.c(4857): free(0x178a8590) stdsoap2.c(4857): free(0x1789c730) stdsoap2.c(4857): free(0x178c2610) stdsoap2.c(4857): free(0x178c2570) stdsoap2.c(4857): free(0x178d1a00) stdsoap2.c(4857): free(0x178d1150) stdsoap2.c(4857): free(0x178d10f0) stdsoap2.c(4857): free(0x178a8120) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x178e4350) Free logfiles stdsoap2.c(2959): free(0x178a3670) stdsoap2.c(2959): free(0x178a2640) stdsoap2.c(2959): free(0x178a1580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x178c08b0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff11c45f50 type=111: not found stdsoap2.c(4149): malloc(1288) = 0x178c8390 Pointer enter location=0x7fff11c45f50 array=(nil) size=0 dim=0 type=111 id=1 Reference 0x7fff11c45f50 type=111 (0 0) Lookup location=0x178a9890 type=3: not found Pointer enter location=0x178a9890 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x178a9890 type=3 (0 0) Lookup location=0x178c08b0 type=27: not found Pointer enter location=0x178c08b0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x178c08b0 type=27 (0 0) Lookup location=0x17897820 type=3: not found Pointer enter location=0x17897820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x17897820 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x178c0940 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c9f0 type=401: not found Embedded_id 0x7fff11c2c9f0 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff11c45f50 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c45f50 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x178a9890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x178c08b0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x178c08b0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x17897820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=720 New count is 720 bytes Begin send phase (socket=7 mode=0x1 count=720) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c9f0 type=401: not found Embedded_id 0x7fff11c2c9f0 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff11c45f50 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c45f50 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x178a9890 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x178c08b0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x178c08b0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x17897820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x178c0940) Free pointer hashtable stdsoap2.c(4079): free(0x178c8390) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x178c0940 Free ID hashtable Read 938 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 821 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x178d1b10 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x178d1cf0 stdsoap2.c(7219): malloc(64) = 0x178d18f0 stdsoap2.c(2336): malloc(40) = 0x178d1fc0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x178d1db0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178f2410 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178ced00 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178cee30 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x178f11a0 stdsoap2.c(7172): malloc(62) = 0x178d19a0 stdsoap2.c(7219): malloc(64) = 0x178cec10 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPutDoneResponse' 'srm2:srmPutDoneResponse' Begin element found (level=3) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' Enter id='' type=396 loc=0x7fff11c45f70 size=8 level=0 Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Reverting last element (level=3) Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Enter id='' type=112 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178cec60 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178e5550 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178e5550 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178d2140 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x178d1a60 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x178d2d20 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178e5e60 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x178d64b0 stdsoap2.c(6963): free(0x178d1cf0) stdsoap2.c(4726): malloc(104) = 0x178e5140 Enter id='' type=6 loc=0x178e5140 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178e51e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178e51e0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x178d2d20->(nil)) stdsoap2.c(4726): malloc(24) = 0x178cf0b0 First block Copy 8 bytes from 0x178d2d30 to 0x178cf0b0 Next block stdsoap2.c(2026): free(0x178d2d20) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x178d1a60) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPutDoneResponse'='srmPutDoneResponse' End element found (level=2) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x178cee30) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x178ced00) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x178f2410) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x178d1db0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x178d1fc0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x178cec10) stdsoap2.c(5406): free(0x178d19a0) stdsoap2.c(5405): free(0x178d18f0) stdsoap2.c(5406): free(0x178d1b10) stdsoap2.c(5411): free(0x178d64b0) stdsoap2.c(5422): free(0x178f11a0) stdsoap2.c(5428): free(0x178c0940) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x178cf0b0) stdsoap2.c(4857): free(0x178e51e0) stdsoap2.c(4857): free(0x178e5140) stdsoap2.c(4857): free(0x178e5e60) stdsoap2.c(4857): free(0x178d2140) stdsoap2.c(4857): free(0x178e5550) stdsoap2.c(4857): free(0x178cec60) stdsoap2.c(4857): free(0x178c08b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x17897880) Free logfiles stdsoap2.c(2959): free(0x178c3fd0) stdsoap2.c(2959): free(0x1789c660) stdsoap2.c(2959): free(0x178a8b30) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x178c8bf0 stdsoap2.c(4726): malloc(24) = 0x17897980 stdsoap2.c(4726): malloc(48) = 0x178a8180 stdsoap2.c(4726): malloc(24) = 0x178979a0 stdsoap2.c(4726): malloc(32) = 0x178a8b30 stdsoap2.c(4726): malloc(32) = 0x178a9510 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff11c455d0 type=93: not found stdsoap2.c(4149): malloc(1288) = 0x178c8150 Pointer enter location=0x7fff11c455d0 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fff11c455d0 type=93 (0 0) Lookup location=0x178c8bf0 type=30: not found Pointer enter location=0x178c8bf0 array=(nil) size=0 dim=0 type=30 id=2 Reference 0x178c8bf0 type=30 (0 0) Lookup location=0x178a8b30 type=29: not found Pointer enter location=0x178a8b30 array=(nil) size=0 dim=0 type=29 id=3 Reference 0x178a8b30 type=29 (0 0) Lookup location=0x178cf0b0 type=3: not found Pointer enter location=0x178cf0b0 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x178cf0b0 type=3 (0 0) Lookup location=0x2b0920ce60d4 type=131: not found Pointer enter location=0x2b0920ce60d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2b0920ce60d4 type=131 (0 0) Lookup location=0x7fff11c45760 type=1: not found Pointer enter location=0x7fff11c45760 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff11c45760 type=1 (0 0) Lookup location=0x178a8180 type=28: not found Pointer enter location=0x178a8180 array=(nil) size=0 dim=0 type=28 id=7 Reference 0x178a8180 type=28 (0 0) Lookup location=0x178a9510 type=14: not found Pointer enter location=0x178a9510 array=(nil) size=0 dim=0 type=14 id=8 Reference 0x178a9510 type=14 (0 0) Lookup location=0x2b091fcd5869 type=3: not found Pointer enter location=0x2b091fcd5869 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2b091fcd5869 type=3 (0 0) Lookup location=0x2b091fcd586e type=3: not found Pointer enter location=0x2b091fcd586e array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b091fcd586e type=3 (0 0) Lookup location=0x2b091fcd5873 type=3: not found Pointer enter location=0x2b091fcd5873 array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b091fcd5873 type=3 (0 0) Lookup location=0x2b091fcd5878 type=3: not found Pointer enter location=0x2b091fcd5878 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b091fcd5878 type=3 (0 0) Lookup location=0x2b091fcd5880 type=3: not found Pointer enter location=0x2b091fcd5880 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b091fcd5880 type=3 (0 0) Lookup location=0x2b091fcd5886 type=3: not found Pointer enter location=0x2b091fcd5886 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b091fcd5886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x17897800 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c050 type=347: not found Embedded_id 0x7fff11c2c050 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff11c455d0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c455d0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x178c8bf0 type=30 id=2 Is embedded? 0 0 Embedded_id 0x178c8bf0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x178a8b30 type=29 id=3 Is embedded? 0 0 Embedded_id 0x178a8b30 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x178cf0b0 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b0920ce60d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b0920ce60d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff11c45760 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff11c45760 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x178a8180 type=28 id=7 Is embedded? 0 0 Embedded_id 0x178a8180 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x178a9510 type=14 id=8 Is embedded? 0 0 Embedded_id 0x178a9510 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b091fcd5869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd586e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=7 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c050 type=347: not found Embedded_id 0x7fff11c2c050 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff11c455d0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c455d0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x178c8bf0 type=30 id=2 Is embedded? 0 0 Embedded_id 0x178c8bf0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x178a8b30 type=29 id=3 Is embedded? 0 0 Embedded_id 0x178a8b30 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x178cf0b0 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b0920ce60d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b0920ce60d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff11c45760 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff11c45760 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x178a8180 type=28 id=7 Is embedded? 0 0 Embedded_id 0x178a8180 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x178a9510 type=14 id=8 Is embedded? 0 0 Embedded_id 0x178a9510 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b091fcd5869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd586e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b091fcd5886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x17897800) Free pointer hashtable stdsoap2.c(4079): free(0x178c8150) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x17897800 Free ID hashtable Read 1049 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x178d24f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x178d1e50 stdsoap2.c(7219): malloc(64) = 0x178cff40 stdsoap2.c(2336): malloc(40) = 0x178cffe0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x178cfaf0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178d3620 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178f2dc0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178d27b0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x178f1b50 stdsoap2.c(7172): malloc(62) = 0x178d0220 stdsoap2.c(7219): malloc(64) = 0x178d2bb0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fff11c45620 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x178d2c00 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178d2290 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178d2290 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x178e10b0 Enter id='' type=3 loc=0x178e10b0 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178d2cc0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x178d3540 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x178d25e0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x178d2e00 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x178d2ac0 stdsoap2.c(6963): free(0x178d1e50) stdsoap2.c(4726): malloc(104) = 0x178e19c0 Enter id='' type=6 loc=0x178e19c0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178e1a60 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178e1a60 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x178d25e0->(nil)) stdsoap2.c(4726): malloc(24) = 0x178e1640 First block Copy 8 bytes from 0x178d25f0 to 0x178e1640 Next block stdsoap2.c(2026): free(0x178d25e0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x178d3540) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x178d27b0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x178f2dc0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x178d3620) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x178cfaf0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x178cffe0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x178d2bb0) stdsoap2.c(5406): free(0x178d0220) stdsoap2.c(5405): free(0x178cff40) stdsoap2.c(5406): free(0x178d24f0) stdsoap2.c(5411): free(0x178d2ac0) stdsoap2.c(5422): free(0x178f1b50) stdsoap2.c(5428): free(0x17897800) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x178e1640) stdsoap2.c(4857): free(0x178e1a60) stdsoap2.c(4857): free(0x178e19c0) stdsoap2.c(4857): free(0x178d2e00) stdsoap2.c(4857): free(0x178d2cc0) stdsoap2.c(4857): free(0x178e10b0) stdsoap2.c(4857): free(0x178d2290) stdsoap2.c(4857): free(0x178d2c00) stdsoap2.c(4857): free(0x178a9510) stdsoap2.c(4857): free(0x178a8b30) stdsoap2.c(4857): free(0x178979a0) stdsoap2.c(4857): free(0x178a8180) stdsoap2.c(4857): free(0x17897980) stdsoap2.c(4857): free(0x178c8bf0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x178a9890) Free logfiles stdsoap2.c(2959): free(0x178c8c20) stdsoap2.c(2959): free(0x178c3fd0) stdsoap2.c(2959): free(0x178c0920) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff11c2c100 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x178cfac0 Pointer enter location=0x7fff11c2c100 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff11c2c100 type=95 (0 0) Lookup location=0x178cffe0 type=3: not found Pointer enter location=0x178cffe0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x178cffe0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x178d24a0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c090 type=353: not found Embedded_id 0x7fff11c2c090 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff11c2c100 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c2c100 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x178cffe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c090 type=353: not found Embedded_id 0x7fff11c2c090 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff11c2c100 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c2c100 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x178cffe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x178d24a0) Free pointer hashtable stdsoap2.c(4079): free(0x178cfac0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x178ce7b0 Free ID hashtable Read 1177 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1059 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x178ca920 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x178c9ee0 stdsoap2.c(7219): malloc(64) = 0x178ca1e0 stdsoap2.c(2336): malloc(40) = 0x178f0460 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x178ca990 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178ef880 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178c9e50 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178f7ee0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x178efe90 stdsoap2.c(7172): malloc(62) = 0x178ef990 stdsoap2.c(7219): malloc(64) = 0x178cd5c0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff11c2c120 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x178cd610 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178ca6b0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178ca6b0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178ca810 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x178c9f60 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x178cb0d0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x178ef7a0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x178cded0 stdsoap2.c(6963): free(0x178c9ee0) stdsoap2.c(4726): malloc(104) = 0x178d24a0 Enter id='' type=6 loc=0x178d24a0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x178ca170 Element content value='65536' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178e6010 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178e6010 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x178cdb50 Element content value='7199' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x178e60a0 Enter id='' type=6 loc=0x178e60a0 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x178cb0d0->(nil)) stdsoap2.c(4726): malloc(24) = 0x178f78c0 First block Copy 8 bytes from 0x178cb0e0 to 0x178f78c0 Next block stdsoap2.c(2026): free(0x178cb0d0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x178c9f60) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x178f7ee0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x178c9e50) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x178ef880) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x178ca990) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x178f0460) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x178cd5c0) stdsoap2.c(5406): free(0x178ef990) stdsoap2.c(5405): free(0x178ca1e0) stdsoap2.c(5406): free(0x178ca920) stdsoap2.c(5411): free(0x178cded0) stdsoap2.c(5422): free(0x178efe90) stdsoap2.c(5428): free(0x178ce7b0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x178f78c0) stdsoap2.c(4857): free(0x178e60a0) stdsoap2.c(4857): free(0x178cdb50) stdsoap2.c(4857): free(0x178e6010) stdsoap2.c(4857): free(0x178ca170) stdsoap2.c(4857): free(0x178d24a0) stdsoap2.c(4857): free(0x178ef7a0) stdsoap2.c(4857): free(0x178ca810) stdsoap2.c(4857): free(0x178ca6b0) stdsoap2.c(4857): free(0x178cd610) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x178d2590) Free logfiles stdsoap2.c(2959): free(0x178c0920) stdsoap2.c(2959): free(0x178c3fd0) stdsoap2.c(2959): free(0x178c8c20) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x178d2f40 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff11c45f50 type=109: not found stdsoap2.c(4149): malloc(1288) = 0x178c76b0 Pointer enter location=0x7fff11c45f50 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fff11c45f50 type=109 (0 0) Lookup location=0x178cffe0 type=3: not found Pointer enter location=0x178cffe0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x178cffe0 type=3 (0 0) Lookup location=0x178d2f40 type=27: not found Pointer enter location=0x178d2f40 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x178d2f40 type=27 (0 0) Lookup location=0x178cf0b0 type=3: not found Pointer enter location=0x178cf0b0 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x178cf0b0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x178cfe50 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c9f0 type=395: not found Embedded_id 0x7fff11c2c9f0 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff11c45f50 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c45f50 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x178cffe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x178d2f40 type=27 id=3 Is embedded? 0 0 Embedded_id 0x178d2f40 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x178cf0b0 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=7 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff11c2c9f0 type=395: not found Embedded_id 0x7fff11c2c9f0 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff11c45f50 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff11c45f50 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x178cffe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x178d2f40 type=27 id=3 Is embedded? 0 0 Embedded_id 0x178d2f40 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x178cf0b0 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x178cfe50) Free pointer hashtable stdsoap2.c(4079): free(0x178c76b0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x178cfe50 Free ID hashtable Read 958 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x178cd680 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x178d1cd0 stdsoap2.c(7219): malloc(64) = 0x178f23d0 stdsoap2.c(2336): malloc(40) = 0x178d21a0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x178e28f0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178cd610 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178ccb00 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x178e3a20 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x178e27b0 stdsoap2.c(7172): malloc(62) = 0x178cde00 stdsoap2.c(7219): malloc(64) = 0x178f2f50 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fff11c45f70 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178cd500 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178cd560 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178cd560 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178d1b10 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x178d1c90 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x178cce60 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178ccbd0 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x178f3860 stdsoap2.c(6963): free(0x178d1cd0) stdsoap2.c(4726): malloc(104) = 0x178e4f00 Enter id='' type=6 loc=0x178e4f00 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x178e4fa0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x178e4fa0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x178cce60->(nil)) stdsoap2.c(4726): malloc(24) = 0x178f34e0 First block Copy 8 bytes from 0x178cce70 to 0x178f34e0 Next block stdsoap2.c(2026): free(0x178cce60) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x178d1c90) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x178e3a20) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x178ccb00) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x178cd610) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x178e28f0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x178d21a0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x178f2f50) stdsoap2.c(5406): free(0x178cde00) stdsoap2.c(5405): free(0x178f23d0) stdsoap2.c(5406): free(0x178cd680) stdsoap2.c(5411): free(0x178f3860) stdsoap2.c(5422): free(0x178e27b0) stdsoap2.c(5428): free(0x178cfe50) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x178f34e0) stdsoap2.c(4857): free(0x178e4fa0) stdsoap2.c(4857): free(0x178e4f00) stdsoap2.c(4857): free(0x178ccbd0) stdsoap2.c(4857): free(0x178d1b10) stdsoap2.c(4857): free(0x178cd560) stdsoap2.c(4857): free(0x178cd500) stdsoap2.c(4857): free(0x178d2f40) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x178c9360) Free logfiles stdsoap2.c(2959): free(0x17897800) stdsoap2.c(2959): free(0x17897820) stdsoap2.c(2959): free(0x178eff80) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd4866a90 type=81: not found stdsoap2.c(4149): malloc(1288) = 0xdd60c20 Pointer enter location=0x7fffd4866a90 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fffd4866a90 type=81 (0 0) Lookup location=0xdd5b720 type=3: not found Pointer enter location=0xdd5b720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xdd5b720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xdd61130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d540 type=311: not found Embedded_id 0x7fffd484d540 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fffd4866a90 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fffd4866a90 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xdd5b720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d540 type=311: not found Embedded_id 0x7fffd484d540 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fffd4866a90 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fffd4866a90 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xdd5b720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xdd61130) Free pointer hashtable stdsoap2.c(4079): free(0xdd60c20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xdd6b3d0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xdd683e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xdd6c440 stdsoap2.c(7219): malloc(64) = 0xdd6aa60 stdsoap2.c(2336): malloc(40) = 0xdd625f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xdd68a70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd6b530 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd63580 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd8ae90 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xdd6b830 stdsoap2.c(7172): malloc(62) = 0xdd6b8d0 stdsoap2.c(7219): malloc(64) = 0xdd687f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fffd4866ab0 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xdd6c6b0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd686a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd686a0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0xdd7db50 Enter id='' type=3 loc=0xdd7db50 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xdd8ae90) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xdd63580) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xdd6b530) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xdd68a70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xdd625f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xdd687f0) stdsoap2.c(5406): free(0xdd6b8d0) stdsoap2.c(5405): free(0xdd6aa60) stdsoap2.c(5406): free(0xdd683e0) stdsoap2.c(5411): free(0xdd6c440) stdsoap2.c(5422): free(0xdd6b830) stdsoap2.c(5428): free(0xdd6b3d0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xdd7db50) stdsoap2.c(4857): free(0xdd686a0) stdsoap2.c(4857): free(0xdd6c6b0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xdd4c530) Free logfiles stdsoap2.c(2959): free(0xdd4b580) stdsoap2.c(2959): free(0xdd4c640) stdsoap2.c(2959): free(0xdd4d670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xdd48e30 stdsoap2.c(4726): malloc(24) = 0xdd48e60 stdsoap2.c(4726): malloc(48) = 0xdd4a8c0 stdsoap2.c(4726): malloc(24) = 0xdd4a930 stdsoap2.c(4726): malloc(32) = 0xdd4a980 stdsoap2.c(4726): malloc(24) = 0xdd4a9e0 stdsoap2.c(4726): malloc(32) = 0xdd4aa30 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd4866a80 type=101: not found stdsoap2.c(4149): malloc(1288) = 0xdd4aa90 Pointer enter location=0x7fffd4866a80 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fffd4866a80 type=101 (0 0) Lookup location=0xdd48e30 type=32: not found Pointer enter location=0xdd48e30 array=(nil) size=0 dim=0 type=32 id=2 Reference 0xdd48e30 type=32 (0 0) Lookup location=0xdd4a980 type=31: not found Pointer enter location=0xdd4a980 array=(nil) size=0 dim=0 type=31 id=3 Reference 0xdd4a980 type=31 (0 0) Lookup location=0xdd41820 type=3: not found Pointer enter location=0xdd41820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xdd41820 type=3 (0 0) Lookup location=0xdd4a9e0 type=148: not found Pointer enter location=0xdd4a9e0 array=(nil) size=0 dim=0 type=148 id=5 Reference 0xdd4a9e0 type=148 (0 0) Lookup location=0x7fffd4866c30 type=1: not found Pointer enter location=0x7fffd4866c30 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fffd4866c30 type=1 (0 0) Lookup location=0x2b883b01b0c8 type=131: not found Pointer enter location=0x2b883b01b0c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b883b01b0c8 type=131 (0 0) Lookup location=0xdd4a8c0 type=28: not found Pointer enter location=0xdd4a8c0 array=(nil) size=0 dim=0 type=28 id=8 Reference 0xdd4a8c0 type=28 (0 0) Lookup location=0xdd4aa30 type=14: not found Pointer enter location=0xdd4aa30 array=(nil) size=0 dim=0 type=14 id=9 Reference 0xdd4aa30 type=14 (0 0) Lookup location=0x2b883a00a869 type=3: not found Pointer enter location=0x2b883a00a869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b883a00a869 type=3 (0 0) Lookup location=0x2b883a00a86e type=3: not found Pointer enter location=0x2b883a00a86e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b883a00a86e type=3 (0 0) Lookup location=0x2b883a00a873 type=3: not found Pointer enter location=0x2b883a00a873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b883a00a873 type=3 (0 0) Lookup location=0x2b883a00a878 type=3: not found Pointer enter location=0x2b883a00a878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b883a00a878 type=3 (0 0) Lookup location=0x2b883a00a880 type=3: not found Pointer enter location=0x2b883a00a880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b883a00a880 type=3 (0 0) Lookup location=0x2b883a00a886 type=3: not found Pointer enter location=0x2b883a00a886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2b883a00a886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xdd4afd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d4f0 type=371: not found Embedded_id 0x7fffd484d4f0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fffd4866a80 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fffd4866a80 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xdd48e30 type=32 id=2 Is embedded? 0 0 Embedded_id 0xdd48e30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xdd4a980 type=31 id=3 Is embedded? 0 0 Embedded_id 0xdd4a980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xdd41820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xdd4a9e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0xdd4a9e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fffd4866c30 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffd4866c30 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b883b01b0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b883b01b0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xdd4a8c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0xdd4a8c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xdd4aa30 type=14 id=9 Is embedded? 0 0 Embedded_id 0xdd4aa30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b883a00a869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=7 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d4f0 type=371: not found Embedded_id 0x7fffd484d4f0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fffd4866a80 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fffd4866a80 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xdd48e30 type=32 id=2 Is embedded? 0 0 Embedded_id 0xdd48e30 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xdd4a980 type=31 id=3 Is embedded? 0 0 Embedded_id 0xdd4a980 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xdd41820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xdd4a9e0 type=148 id=5 Is embedded? 0 0 Embedded_id 0xdd4a9e0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fffd4866c30 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffd4866c30 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b883b01b0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b883b01b0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xdd4a8c0 type=28 id=8 Is embedded? 0 0 Embedded_id 0xdd4a8c0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xdd4aa30 type=14 id=9 Is embedded? 0 0 Embedded_id 0xdd4aa30 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b883a00a869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xdd4afd0) Free pointer hashtable stdsoap2.c(4079): free(0xdd4aa90) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xdd4afd0 Free ID hashtable Read 1037 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xdd565e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xdd567c0 stdsoap2.c(7219): malloc(64) = 0xdd563c0 stdsoap2.c(2336): malloc(40) = 0xdd56a90 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xdd56880 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd8c6a0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd537d0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd53900 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xdd8b0b0 stdsoap2.c(7172): malloc(62) = 0xdd7a620 stdsoap2.c(7219): malloc(64) = 0xdd56470 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fffd4866ae0 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xdd564c0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd53710 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd53710 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xdd56c10 Enter id='' type=3 loc=0xdd56c10 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd56c80 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xdd56530 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xdd6ccd0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xdd703b0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xdd70440 stdsoap2.c(6963): free(0xdd567c0) stdsoap2.c(4726): malloc(104) = 0xdd7a230 Enter id='' type=6 loc=0xdd7a230 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd7a2d0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd7a2d0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xdd6ccd0->(nil)) stdsoap2.c(4726): malloc(24) = 0xdd53b80 First block Copy 8 bytes from 0xdd6cce0 to 0xdd53b80 Next block stdsoap2.c(2026): free(0xdd6ccd0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xdd56530) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xdd53900) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xdd537d0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xdd8c6a0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xdd56880) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xdd56a90) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xdd56470) stdsoap2.c(5406): free(0xdd7a620) stdsoap2.c(5405): free(0xdd563c0) stdsoap2.c(5406): free(0xdd565e0) stdsoap2.c(5411): free(0xdd70440) stdsoap2.c(5422): free(0xdd8b0b0) stdsoap2.c(5428): free(0xdd4afd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xdd53b80) stdsoap2.c(4857): free(0xdd7a2d0) stdsoap2.c(4857): free(0xdd7a230) stdsoap2.c(4857): free(0xdd703b0) stdsoap2.c(4857): free(0xdd56c80) stdsoap2.c(4857): free(0xdd56c10) stdsoap2.c(4857): free(0xdd53710) stdsoap2.c(4857): free(0xdd564c0) stdsoap2.c(4857): free(0xdd4aa30) stdsoap2.c(4857): free(0xdd4a9e0) stdsoap2.c(4857): free(0xdd4a980) stdsoap2.c(4857): free(0xdd4a930) stdsoap2.c(4857): free(0xdd4a8c0) stdsoap2.c(4857): free(0xdd48e60) stdsoap2.c(4857): free(0xdd48e30) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xdd4c560) Free logfiles stdsoap2.c(2959): free(0xdd4d670) stdsoap2.c(2959): free(0xdd4c640) stdsoap2.c(2959): free(0xdd4b580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd484d5d0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0xdd4f5d0 Pointer enter location=0x7fffd484d5d0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fffd484d5d0 type=103 (0 0) Lookup location=0xdd56a90 type=3: not found Pointer enter location=0xdd56a90 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xdd56a90 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xdd4fae0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d560 type=377: not found Embedded_id 0x7fffd484d560 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffd484d5d0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffd484d5d0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xdd56a90 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d560 type=377: not found Embedded_id 0x7fffd484d560 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffd484d5d0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffd484d5d0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xdd56a90 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xdd4fae0) Free pointer hashtable stdsoap2.c(4079): free(0xdd4f5d0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xdd7ad10 Free ID hashtable Read 1121 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1003 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xdd4a820 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xdd4aa00 stdsoap2.c(7219): malloc(64) = 0xdd4a600 stdsoap2.c(2336): malloc(40) = 0xdd6c4d0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xdd4aac0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd8c480 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd47a10 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd47b40 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xdd8ae90 stdsoap2.c(7172): malloc(62) = 0xdd7a410 stdsoap2.c(7219): malloc(64) = 0xdd4a6b0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fffd484d5f0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xdd4a700 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd47950 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd47950 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd6c650 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xdd4a770 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xdd6ca10 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xdd701d0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xdd7a020 stdsoap2.c(6963): free(0xdd4aa00) stdsoap2.c(4726): malloc(104) = 0xdd7a0e0 Enter id='' type=6 loc=0xdd7a0e0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd70290 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd70290 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xdd47dc0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xdd6c8d0 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xdd4a990 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xdd6ca10->(nil)) stdsoap2.c(4726): malloc(24) = 0xdd7a990 First block Copy 8 bytes from 0xdd6ca20 to 0xdd7a990 Next block stdsoap2.c(2026): free(0xdd6ca10) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xdd4a770) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xdd47b40) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xdd47a10) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xdd8c480) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xdd4aac0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xdd6c4d0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xdd4a6b0) stdsoap2.c(5406): free(0xdd7a410) stdsoap2.c(5405): free(0xdd4a600) stdsoap2.c(5406): free(0xdd4a820) stdsoap2.c(5411): free(0xdd7a020) stdsoap2.c(5422): free(0xdd8ae90) stdsoap2.c(5428): free(0xdd7ad10) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xdd7a990) stdsoap2.c(4857): free(0xdd4a990) stdsoap2.c(4857): free(0xdd6c8d0) stdsoap2.c(4857): free(0xdd47dc0) stdsoap2.c(4857): free(0xdd70290) stdsoap2.c(4857): free(0xdd7a0e0) stdsoap2.c(4857): free(0xdd701d0) stdsoap2.c(4857): free(0xdd6c650) stdsoap2.c(4857): free(0xdd47950) stdsoap2.c(4857): free(0xdd4a700) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xdd7db80) Free logfiles stdsoap2.c(2959): free(0xdd4b580) stdsoap2.c(2959): free(0xdd4c640) stdsoap2.c(2959): free(0xdd4d670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd484d5d0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0xdd66630 Pointer enter location=0x7fffd484d5d0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fffd484d5d0 type=103 (0 0) Lookup location=0xdd56a90 type=3: not found Pointer enter location=0xdd56a90 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xdd56a90 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xdd66b40 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d560 type=377: not found Embedded_id 0x7fffd484d560 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffd484d5d0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffd484d5d0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xdd56a90 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d560 type=377: not found Embedded_id 0x7fffd484d560 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffd484d5d0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffd484d5d0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xdd56a90 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xdd66b40) Free pointer hashtable stdsoap2.c(4079): free(0xdd66630) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xdd6e7a0 Free ID hashtable Read 1121 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1003 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xdd6e870 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xdd55f60 stdsoap2.c(7219): malloc(64) = 0xdd56730 stdsoap2.c(2336): malloc(40) = 0xdd53000 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xdd48c50 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd6c9f0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd532f0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd8ae70 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xdd53070 stdsoap2.c(7172): malloc(62) = 0xdd55fd0 stdsoap2.c(7219): malloc(64) = 0xdd6c930 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fffd484d5f0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xdd7d440 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd7d4a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd7d4a0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd7dd80 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xdd6c8f0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xdd52c00 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xdd6e8d0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xdd6e960 stdsoap2.c(6963): free(0xdd55f60) stdsoap2.c(4726): malloc(104) = 0xdd55b60 Enter id='' type=6 loc=0xdd55b60 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd55c00 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd55c00 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xdd7da00 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xdd530e0 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xdd55c30 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xdd52c00->(nil)) stdsoap2.c(4726): malloc(24) = 0xdd7d130 First block Copy 8 bytes from 0xdd52c10 to 0xdd7d130 Next block stdsoap2.c(2026): free(0xdd52c00) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xdd6c8f0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xdd8ae70) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xdd532f0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xdd6c9f0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xdd48c50) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xdd53000) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xdd6c930) stdsoap2.c(5406): free(0xdd55fd0) stdsoap2.c(5405): free(0xdd56730) stdsoap2.c(5406): free(0xdd6e870) stdsoap2.c(5411): free(0xdd6e960) stdsoap2.c(5422): free(0xdd53070) stdsoap2.c(5428): free(0xdd6e7a0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xdd7d130) stdsoap2.c(4857): free(0xdd55c30) stdsoap2.c(4857): free(0xdd530e0) stdsoap2.c(4857): free(0xdd7da00) stdsoap2.c(4857): free(0xdd55c00) stdsoap2.c(4857): free(0xdd55b60) stdsoap2.c(4857): free(0xdd6e8d0) stdsoap2.c(4857): free(0xdd7dd80) stdsoap2.c(4857): free(0xdd7d4a0) stdsoap2.c(4857): free(0xdd7d440) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xdd4fbb0) Free logfiles stdsoap2.c(2959): free(0xdd4d670) stdsoap2.c(2959): free(0xdd4c640) stdsoap2.c(2959): free(0xdd4b580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd484d5d0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0xdd4eac0 Pointer enter location=0x7fffd484d5d0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fffd484d5d0 type=103 (0 0) Lookup location=0xdd56a90 type=3: not found Pointer enter location=0xdd56a90 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xdd56a90 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xdd4efd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d560 type=377: not found Embedded_id 0x7fffd484d560 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffd484d5d0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffd484d5d0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xdd56a90 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d560 type=377: not found Embedded_id 0x7fffd484d560 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffd484d5d0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffd484d5d0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xdd56a90 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xdd4efd0) Free pointer hashtable stdsoap2.c(4079): free(0xdd4eac0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xdd7a040 Free ID hashtable Read 1221 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1103 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xdd49a20 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xdd49c00 stdsoap2.c(7219): malloc(64) = 0xdd49800 stdsoap2.c(2336): malloc(40) = 0xdd49ed0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xdd49cc0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd8c4f0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd554f0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd55620 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xdd8af00 stdsoap2.c(7172): malloc(62) = 0xdd79740 stdsoap2.c(7219): malloc(64) = 0xdd498b0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fffd484d5f0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xdd49900 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd55430 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd55430 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd4a050 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xdd49970 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xdd4ac30 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xdd6f500 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xdd79350 stdsoap2.c(6963): free(0xdd49c00) stdsoap2.c(4726): malloc(104) = 0xdd79410 Enter id='' type=6 loc=0xdd79410 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd6f5c0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd6f5c0 size=4 level=0 Element content value='SRM_SPACE_AVAILABLE' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xdd558a0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xdd4aaf0 Element content value='7200' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xdd49b90 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0xdd4a2a0 Enter id='' type=6 loc=0xdd4a2a0 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xdd4ac30->(nil)) stdsoap2.c(4726): malloc(24) = 0xdd79cc0 First block Copy 8 bytes from 0xdd4ac40 to 0xdd79cc0 Next block stdsoap2.c(2026): free(0xdd4ac30) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xdd49970) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xdd55620) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xdd554f0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xdd8c4f0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xdd49cc0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xdd49ed0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xdd498b0) stdsoap2.c(5406): free(0xdd79740) stdsoap2.c(5405): free(0xdd49800) stdsoap2.c(5406): free(0xdd49a20) stdsoap2.c(5411): free(0xdd79350) stdsoap2.c(5422): free(0xdd8af00) stdsoap2.c(5428): free(0xdd7a040) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xdd79cc0) stdsoap2.c(4857): free(0xdd4a2a0) stdsoap2.c(4857): free(0xdd49b90) stdsoap2.c(4857): free(0xdd4aaf0) stdsoap2.c(4857): free(0xdd558a0) stdsoap2.c(4857): free(0xdd6f5c0) stdsoap2.c(4857): free(0xdd79410) stdsoap2.c(4857): free(0xdd6f500) stdsoap2.c(4857): free(0xdd4a050) stdsoap2.c(4857): free(0xdd55430) stdsoap2.c(4857): free(0xdd49900) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xdd7d070) Free logfiles stdsoap2.c(2959): free(0xdd4b580) stdsoap2.c(2959): free(0xdd4c640) stdsoap2.c(2959): free(0xdd4d670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xdd6a940 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd4867420 type=111: not found stdsoap2.c(4149): malloc(1288) = 0xdd55ba0 Pointer enter location=0x7fffd4867420 array=(nil) size=0 dim=0 type=111 id=1 Reference 0x7fffd4867420 type=111 (0 0) Lookup location=0xdd56a90 type=3: not found Pointer enter location=0xdd56a90 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xdd56a90 type=3 (0 0) Lookup location=0xdd6a940 type=27: not found Pointer enter location=0xdd6a940 array=(nil) size=0 dim=0 type=27 id=3 Reference 0xdd6a940 type=27 (0 0) Lookup location=0xdd41820 type=3: not found Pointer enter location=0xdd41820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xdd41820 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xdd6a9d0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484dec0 type=401: not found Embedded_id 0x7fffd484dec0 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fffd4867420 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fffd4867420 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0xdd56a90 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xdd6a940 type=27 id=3 Is embedded? 0 0 Embedded_id 0xdd6a940 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xdd41820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=720 New count is 720 bytes Begin send phase (socket=7 mode=0x1 count=720) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484dec0 type=401: not found Embedded_id 0x7fffd484dec0 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fffd4867420 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fffd4867420 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0xdd56a90 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xdd6a940 type=27 id=3 Is embedded? 0 0 Embedded_id 0xdd6a940 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xdd41820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xdd6a9d0) Free pointer hashtable stdsoap2.c(4079): free(0xdd55ba0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xdd7ed60 Free ID hashtable Read 938 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 821 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xdd7a5c0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xdd7a7a0 stdsoap2.c(7219): malloc(64) = 0xdd7a3a0 stdsoap2.c(2336): malloc(40) = 0xdd7aa70 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xdd7a860 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd9c750 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd777b0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd778e0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xdd9b160 stdsoap2.c(7172): malloc(62) = 0xdd7db70 stdsoap2.c(7219): malloc(64) = 0xdd7a450 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPutDoneResponse' 'srm2:srmPutDoneResponse' Begin element found (level=3) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' Enter id='' type=396 loc=0x7fffd4867440 size=8 level=0 Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Reverting last element (level=3) Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Enter id='' type=112 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd7a4a0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd776f0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd776f0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd7abf0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xdd7a510 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xdd7b7d0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd6aa00 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xdd7e470 stdsoap2.c(6963): free(0xdd7a7a0) stdsoap2.c(4726): malloc(104) = 0xdd7ff60 Enter id='' type=6 loc=0xdd7ff60 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd80000 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd80000 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xdd7b7d0->(nil)) stdsoap2.c(4726): malloc(24) = 0xdd77b60 First block Copy 8 bytes from 0xdd7b7e0 to 0xdd77b60 Next block stdsoap2.c(2026): free(0xdd7b7d0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xdd7a510) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPutDoneResponse'='srmPutDoneResponse' End element found (level=2) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xdd778e0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xdd777b0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xdd9c750) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xdd7a860) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xdd7aa70) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xdd7a450) stdsoap2.c(5406): free(0xdd7db70) stdsoap2.c(5405): free(0xdd7a3a0) stdsoap2.c(5406): free(0xdd7a5c0) stdsoap2.c(5411): free(0xdd7e470) stdsoap2.c(5422): free(0xdd9b160) stdsoap2.c(5428): free(0xdd7ed60) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xdd77b60) stdsoap2.c(4857): free(0xdd80000) stdsoap2.c(4857): free(0xdd7ff60) stdsoap2.c(4857): free(0xdd6aa00) stdsoap2.c(4857): free(0xdd7abf0) stdsoap2.c(4857): free(0xdd776f0) stdsoap2.c(4857): free(0xdd7a4a0) stdsoap2.c(4857): free(0xdd6a940) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xdd6a8e0) Free logfiles stdsoap2.c(2959): free(0xdd537f0) stdsoap2.c(2959): free(0xdd41880) stdsoap2.c(2959): free(0xdd418d0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xdd49ed0 stdsoap2.c(4726): malloc(24) = 0xdd4b540 stdsoap2.c(4726): malloc(48) = 0xdd6a8b0 stdsoap2.c(4726): malloc(24) = 0xdd537c0 stdsoap2.c(4726): malloc(32) = 0xdd716a0 stdsoap2.c(4726): malloc(32) = 0xdd71e50 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd4866aa0 type=93: not found stdsoap2.c(4149): malloc(1288) = 0xdd55100 Pointer enter location=0x7fffd4866aa0 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fffd4866aa0 type=93 (0 0) Lookup location=0xdd49ed0 type=30: not found Pointer enter location=0xdd49ed0 array=(nil) size=0 dim=0 type=30 id=2 Reference 0xdd49ed0 type=30 (0 0) Lookup location=0xdd716a0 type=29: not found Pointer enter location=0xdd716a0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0xdd716a0 type=29 (0 0) Lookup location=0xdd71d20 type=3: not found Pointer enter location=0xdd71d20 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xdd71d20 type=3 (0 0) Lookup location=0x2b883b01b0d4 type=131: not found Pointer enter location=0x2b883b01b0d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2b883b01b0d4 type=131 (0 0) Lookup location=0x7fffd4866c30 type=1: not found Pointer enter location=0x7fffd4866c30 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fffd4866c30 type=1 (0 0) Lookup location=0xdd6a8b0 type=28: not found Pointer enter location=0xdd6a8b0 array=(nil) size=0 dim=0 type=28 id=7 Reference 0xdd6a8b0 type=28 (0 0) Lookup location=0xdd71e50 type=14: not found Pointer enter location=0xdd71e50 array=(nil) size=0 dim=0 type=14 id=8 Reference 0xdd71e50 type=14 (0 0) Lookup location=0x2b883a00a869 type=3: not found Pointer enter location=0x2b883a00a869 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2b883a00a869 type=3 (0 0) Lookup location=0x2b883a00a86e type=3: not found Pointer enter location=0x2b883a00a86e array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b883a00a86e type=3 (0 0) Lookup location=0x2b883a00a873 type=3: not found Pointer enter location=0x2b883a00a873 array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b883a00a873 type=3 (0 0) Lookup location=0x2b883a00a878 type=3: not found Pointer enter location=0x2b883a00a878 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b883a00a878 type=3 (0 0) Lookup location=0x2b883a00a880 type=3: not found Pointer enter location=0x2b883a00a880 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b883a00a880 type=3 (0 0) Lookup location=0x2b883a00a886 type=3: not found Pointer enter location=0x2b883a00a886 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b883a00a886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xdd6a990 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d520 type=347: not found Embedded_id 0x7fffd484d520 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fffd4866aa0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fffd4866aa0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xdd49ed0 type=30 id=2 Is embedded? 0 0 Embedded_id 0xdd49ed0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xdd716a0 type=29 id=3 Is embedded? 0 0 Embedded_id 0xdd716a0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xdd71d20 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b883b01b0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b883b01b0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fffd4866c30 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffd4866c30 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xdd6a8b0 type=28 id=7 Is embedded? 0 0 Embedded_id 0xdd6a8b0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xdd71e50 type=14 id=8 Is embedded? 0 0 Embedded_id 0xdd71e50 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b883a00a869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a86e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=7 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d520 type=347: not found Embedded_id 0x7fffd484d520 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fffd4866aa0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fffd4866aa0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xdd49ed0 type=30 id=2 Is embedded? 0 0 Embedded_id 0xdd49ed0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xdd716a0 type=29 id=3 Is embedded? 0 0 Embedded_id 0xdd716a0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xdd71d20 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b883b01b0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b883b01b0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fffd4866c30 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffd4866c30 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xdd6a8b0 type=28 id=7 Is embedded? 0 0 Embedded_id 0xdd6a8b0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xdd71e50 type=14 id=8 Is embedded? 0 0 Embedded_id 0xdd71e50 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b883a00a869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a86e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b883a00a886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xdd6a990) Free pointer hashtable stdsoap2.c(4079): free(0xdd55100) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xdd7f760 Free ID hashtable Read 1049 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xdd7afc0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xdd7b1a0 stdsoap2.c(7219): malloc(64) = 0xdd7ada0 stdsoap2.c(2336): malloc(40) = 0xdd7b470 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xdd7b260 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd9cdd0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd78a80 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd78bb0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xdd9bb60 stdsoap2.c(7172): malloc(62) = 0xdd7ae50 stdsoap2.c(7219): malloc(64) = 0xdd78990 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fffd4866af0 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xdd789e0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd7e590 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd7e590 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xdd7b5f0 Enter id='' type=3 loc=0xdd7b5f0 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd7b660 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xdd7af10 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xdd7c1d0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xdd7ee70 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xdd80960 stdsoap2.c(6963): free(0xdd7b1a0) stdsoap2.c(4726): malloc(104) = 0xdd7e180 Enter id='' type=6 loc=0xdd7e180 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd7e220 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd7e220 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xdd7c1d0->(nil)) stdsoap2.c(4726): malloc(24) = 0xdd78e30 First block Copy 8 bytes from 0xdd7c1e0 to 0xdd78e30 Next block stdsoap2.c(2026): free(0xdd7c1d0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xdd7af10) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xdd78bb0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xdd78a80) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xdd9cdd0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xdd7b260) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xdd7b470) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xdd78990) stdsoap2.c(5406): free(0xdd7ae50) stdsoap2.c(5405): free(0xdd7ada0) stdsoap2.c(5406): free(0xdd7afc0) stdsoap2.c(5411): free(0xdd80960) stdsoap2.c(5422): free(0xdd9bb60) stdsoap2.c(5428): free(0xdd7f760) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xdd78e30) stdsoap2.c(4857): free(0xdd7e220) stdsoap2.c(4857): free(0xdd7e180) stdsoap2.c(4857): free(0xdd7ee70) stdsoap2.c(4857): free(0xdd7b660) stdsoap2.c(4857): free(0xdd7b5f0) stdsoap2.c(4857): free(0xdd7e590) stdsoap2.c(4857): free(0xdd789e0) stdsoap2.c(4857): free(0xdd71e50) stdsoap2.c(4857): free(0xdd716a0) stdsoap2.c(4857): free(0xdd537c0) stdsoap2.c(4857): free(0xdd6a8b0) stdsoap2.c(4857): free(0xdd4b540) stdsoap2.c(4857): free(0xdd49ed0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xdd77780) Free logfiles stdsoap2.c(2959): free(0xdd6a970) stdsoap2.c(2959): free(0xdd4b520) stdsoap2.c(2959): free(0xdd4a160) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd484d5d0 type=95: not found stdsoap2.c(4149): malloc(1288) = 0xdd54ec0 Pointer enter location=0x7fffd484d5d0 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fffd484d5d0 type=95 (0 0) Lookup location=0xdd7b470 type=3: not found Pointer enter location=0xdd7b470 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xdd7b470 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xdd71d80 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d560 type=353: not found Embedded_id 0x7fffd484d560 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffd484d5d0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffd484d5d0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xdd7b470 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d560 type=353: not found Embedded_id 0x7fffd484d560 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffd484d5d0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffd484d5d0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xdd7b470 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xdd71d80) Free pointer hashtable stdsoap2.c(4079): free(0xdd54ec0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xdd71d80 Free ID hashtable Read 1076 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 959 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xdd73f00 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xdd740e0 stdsoap2.c(7219): malloc(64) = 0xdd73ce0 stdsoap2.c(2336): malloc(40) = 0xdd76f10 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xdd741a0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd9d650 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd7e0e0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd7e210 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xdd9c3e0 stdsoap2.c(7172): malloc(62) = 0xdd73d90 stdsoap2.c(7219): malloc(64) = 0xdd7dff0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fffd484d5f0 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xdd7e040 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd90eb0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd90eb0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd77090 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xdd73e50 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xdd75110 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xdd917c0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xdd80190 stdsoap2.c(6963): free(0xdd740e0) stdsoap2.c(4726): malloc(104) = 0xdd80220 Enter id='' type=6 loc=0xdd80220 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xdd7e490 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd90b00 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd90b00 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xdd74fd0 Element content value='0' End element found (level=6) 'remainingPinTime'='remainingPinTime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xdd75110->(nil)) stdsoap2.c(4726): malloc(24) = 0xdd74070 First block Copy 8 bytes from 0xdd75120 to 0xdd74070 Next block stdsoap2.c(2026): free(0xdd75110) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xdd73e50) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xdd7e210) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xdd7e0e0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xdd9d650) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xdd741a0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xdd76f10) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xdd7dff0) stdsoap2.c(5406): free(0xdd73d90) stdsoap2.c(5405): free(0xdd73ce0) stdsoap2.c(5406): free(0xdd73f00) stdsoap2.c(5411): free(0xdd80190) stdsoap2.c(5422): free(0xdd9c3e0) stdsoap2.c(5428): free(0xdd71d80) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xdd74070) stdsoap2.c(4857): free(0xdd74fd0) stdsoap2.c(4857): free(0xdd90b00) stdsoap2.c(4857): free(0xdd7e490) stdsoap2.c(4857): free(0xdd80220) stdsoap2.c(4857): free(0xdd917c0) stdsoap2.c(4857): free(0xdd77090) stdsoap2.c(4857): free(0xdd90eb0) stdsoap2.c(4857): free(0xdd7e040) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xdd537e0) Free logfiles stdsoap2.c(2959): free(0xdd4a160) stdsoap2.c(2959): free(0xdd4b520) stdsoap2.c(2959): free(0xdd6a970) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd484d5d0 type=95: not found stdsoap2.c(4149): malloc(1288) = 0xdd54ec0 Pointer enter location=0x7fffd484d5d0 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fffd484d5d0 type=95 (0 0) Lookup location=0xdd7b470 type=3: not found Pointer enter location=0xdd7b470 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xdd7b470 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xdd7e450 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d560 type=353: not found Embedded_id 0x7fffd484d560 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffd484d5d0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffd484d5d0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xdd7b470 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484d560 type=353: not found Embedded_id 0x7fffd484d560 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffd484d5d0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffd484d5d0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xdd7b470 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xdd7e450) Free pointer hashtable stdsoap2.c(4079): free(0xdd54ec0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xdd94280 Free ID hashtable Read 1177 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1059 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xdd741e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xdd743c0 stdsoap2.c(7219): malloc(64) = 0xdd73fc0 stdsoap2.c(2336): malloc(40) = 0xdd74690 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xdd74480 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd9be90 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd7d7f0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd7d920 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xdd752f0 stdsoap2.c(7172): malloc(62) = 0xdd74070 stdsoap2.c(7219): malloc(64) = 0xdd7d6d0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fffd484d5f0 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xdd7d720 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd74840 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd74840 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd7e450 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xdd74130 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xdd753f0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xdd93970 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xdd92fe0 stdsoap2.c(6963): free(0xdd743c0) stdsoap2.c(4726): malloc(104) = 0xdd939f0 Enter id='' type=6 loc=0xdd939f0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xdd7db70 Element content value='65536' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd80050 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd80050 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xdd752b0 Element content value='7200' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0xdd92ca0 Enter id='' type=6 loc=0xdd92ca0 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xdd753f0->(nil)) stdsoap2.c(4726): malloc(24) = 0xdd74350 First block Copy 8 bytes from 0xdd75400 to 0xdd74350 Next block stdsoap2.c(2026): free(0xdd753f0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xdd74130) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xdd7d920) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xdd7d7f0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xdd9be90) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xdd74480) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xdd74690) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xdd7d6d0) stdsoap2.c(5406): free(0xdd74070) stdsoap2.c(5405): free(0xdd73fc0) stdsoap2.c(5406): free(0xdd741e0) stdsoap2.c(5411): free(0xdd92fe0) stdsoap2.c(5422): free(0xdd752f0) stdsoap2.c(5428): free(0xdd94280) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xdd74350) stdsoap2.c(4857): free(0xdd92ca0) stdsoap2.c(4857): free(0xdd752b0) stdsoap2.c(4857): free(0xdd80050) stdsoap2.c(4857): free(0xdd7db70) stdsoap2.c(4857): free(0xdd939f0) stdsoap2.c(4857): free(0xdd93970) stdsoap2.c(4857): free(0xdd7e450) stdsoap2.c(4857): free(0xdd74840) stdsoap2.c(4857): free(0xdd7d720) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xdd7e420) Free logfiles stdsoap2.c(2959): free(0xdd6a970) stdsoap2.c(2959): free(0xdd4b520) stdsoap2.c(2959): free(0xdd4a160) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xdd781f0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd4867420 type=109: not found stdsoap2.c(4149): malloc(1288) = 0xdd7e9a0 Pointer enter location=0x7fffd4867420 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fffd4867420 type=109 (0 0) Lookup location=0xdd7b470 type=3: not found Pointer enter location=0xdd7b470 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xdd7b470 type=3 (0 0) Lookup location=0xdd781f0 type=27: not found Pointer enter location=0xdd781f0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0xdd781f0 type=27 (0 0) Lookup location=0xdd71d20 type=3: not found Pointer enter location=0xdd71d20 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xdd71d20 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xdd55b50 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484dec0 type=395: not found Embedded_id 0x7fffd484dec0 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fffd4867420 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fffd4867420 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0xdd7b470 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xdd781f0 type=27 id=3 Is embedded? 0 0 Embedded_id 0xdd781f0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xdd71d20 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=7 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd484dec0 type=395: not found Embedded_id 0x7fffd484dec0 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fffd4867420 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fffd4867420 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0xdd7b470 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xdd781f0 type=27 id=3 Is embedded? 0 0 Embedded_id 0xdd781f0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xdd71d20 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xdd55b50) Free pointer hashtable stdsoap2.c(4079): free(0xdd7e9a0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xdd95860 Free ID hashtable Read 958 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xdd7d400 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xdd7c690 stdsoap2.c(7219): malloc(64) = 0xdd730d0 stdsoap2.c(2336): malloc(40) = 0xdd7c070 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xdd7cbc0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd72e60 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd73880 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xdd9ee80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xdda0440 stdsoap2.c(7172): malloc(62) = 0xdd7cab0 stdsoap2.c(7219): malloc(64) = 0xdd73200 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fffd4867440 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd7dce0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd7dd40 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd7dd40 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd94690 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xdd7cec0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xdd72fe0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd7d500 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xdd94fa0 stdsoap2.c(6963): free(0xdd7c690) stdsoap2.c(4726): malloc(104) = 0xdd55b80 Enter id='' type=6 loc=0xdd55b80 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xdd80060 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xdd80060 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xdd72fe0->(nil)) stdsoap2.c(4726): malloc(24) = 0xdd72db0 First block Copy 8 bytes from 0xdd72ff0 to 0xdd72db0 Next block stdsoap2.c(2026): free(0xdd72fe0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xdd7cec0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xdd9ee80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xdd73880) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xdd72e60) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xdd7cbc0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xdd7c070) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xdd73200) stdsoap2.c(5406): free(0xdd7cab0) stdsoap2.c(5405): free(0xdd730d0) stdsoap2.c(5406): free(0xdd7d400) stdsoap2.c(5411): free(0xdd94fa0) stdsoap2.c(5422): free(0xdda0440) stdsoap2.c(5428): free(0xdd95860) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xdd72db0) stdsoap2.c(4857): free(0xdd80060) stdsoap2.c(4857): free(0xdd55b80) stdsoap2.c(4857): free(0xdd7d500) stdsoap2.c(4857): free(0xdd94690) stdsoap2.c(4857): free(0xdd7dd40) stdsoap2.c(4857): free(0xdd7dce0) stdsoap2.c(4857): free(0xdd781f0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xdd55ac0) Free logfiles stdsoap2.c(2959): free(0xdd56a90) stdsoap2.c(2959): free(0xdd550a0) stdsoap2.c(2959): free(0xdd55a70) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff64156ec0 type=81: not found stdsoap2.c(4149): malloc(1288) = 0x5af7bd0 Pointer enter location=0x7fff64156ec0 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fff64156ec0 type=81 (0 0) Lookup location=0x5af26d0 type=3: not found Pointer enter location=0x5af26d0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x5af26d0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x5af80e0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413d970 type=311: not found Embedded_id 0x7fff6413d970 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff64156ec0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff64156ec0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x5af26d0 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=5 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413d970 type=311: not found Embedded_id 0x7fff6413d970 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff64156ec0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff64156ec0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x5af26d0 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x5af80e0) Free pointer hashtable stdsoap2.c(4079): free(0x5af7bd0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x5b14140 Free ID hashtable Read 759 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x5aff390 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x5b033f0 stdsoap2.c(7219): malloc(64) = 0x5b01a10 stdsoap2.c(2336): malloc(40) = 0x5aff9f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x5b024b0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5afa500 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b21df0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b027b0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x5b02850 stdsoap2.c(7172): malloc(62) = 0x5aff770 stdsoap2.c(7219): malloc(64) = 0x5aff5f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fff64156ee0 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x5b03660 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b14ab0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5b14ab0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0x5b14b10 Enter id='' type=3 loc=0x5b14b10 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x5b027b0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x5b21df0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x5afa500) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x5b024b0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x5aff9f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x5aff5f0) stdsoap2.c(5406): free(0x5aff770) stdsoap2.c(5405): free(0x5b01a10) stdsoap2.c(5406): free(0x5aff390) stdsoap2.c(5411): free(0x5b033f0) stdsoap2.c(5422): free(0x5b02850) stdsoap2.c(5428): free(0x5b14140) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x5b14b10) stdsoap2.c(4857): free(0x5b14ab0) stdsoap2.c(4857): free(0x5b03660) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x5ae24c0) Free logfiles stdsoap2.c(2959): free(0x5ae2560) stdsoap2.c(2959): free(0x5ae3670) stdsoap2.c(2959): free(0x5ae2540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x5ae0cf0 stdsoap2.c(4726): malloc(24) = 0x5ae0d20 stdsoap2.c(4726): malloc(48) = 0x5ae1ce0 stdsoap2.c(4726): malloc(24) = 0x5ae1d50 stdsoap2.c(4726): malloc(32) = 0x5ae1da0 stdsoap2.c(4726): malloc(24) = 0x5ae1e00 stdsoap2.c(4726): malloc(32) = 0x5ae1e50 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff64156ec0 type=101: not found stdsoap2.c(4149): malloc(1288) = 0x5ae1eb0 Pointer enter location=0x7fff64156ec0 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fff64156ec0 type=101 (0 0) Lookup location=0x5ae0cf0 type=32: not found Pointer enter location=0x5ae0cf0 array=(nil) size=0 dim=0 type=32 id=2 Reference 0x5ae0cf0 type=32 (0 0) Lookup location=0x5ae1da0 type=31: not found Pointer enter location=0x5ae1da0 array=(nil) size=0 dim=0 type=31 id=3 Reference 0x5ae1da0 type=31 (0 0) Lookup location=0x5ad8800 type=3: not found Pointer enter location=0x5ad8800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x5ad8800 type=3 (0 0) Lookup location=0x5ae1e00 type=148: not found Pointer enter location=0x5ae1e00 array=(nil) size=0 dim=0 type=148 id=5 Reference 0x5ae1e00 type=148 (0 0) Lookup location=0x7fff64157080 type=1: not found Pointer enter location=0x7fff64157080 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff64157080 type=1 (0 0) Lookup location=0x2ba82d8760c8 type=131: not found Pointer enter location=0x2ba82d8760c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2ba82d8760c8 type=131 (0 0) Lookup location=0x5ae1ce0 type=28: not found Pointer enter location=0x5ae1ce0 array=(nil) size=0 dim=0 type=28 id=8 Reference 0x5ae1ce0 type=28 (0 0) Lookup location=0x5ae1e50 type=14: not found Pointer enter location=0x5ae1e50 array=(nil) size=0 dim=0 type=14 id=9 Reference 0x5ae1e50 type=14 (0 0) Lookup location=0x2ba82c87c286 type=3: not found Pointer enter location=0x2ba82c87c286 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2ba82c87c286 type=3 (0 0) Lookup location=0x2ba82c877205 type=3: not found Pointer enter location=0x2ba82c877205 array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2ba82c877205 type=3 (0 0) Lookup location=0x2ba82c87720d type=3: not found Pointer enter location=0x2ba82c87720d array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2ba82c87720d type=3 (0 0) Lookup location=0x2ba82c87720a type=3: not found Pointer enter location=0x2ba82c87720a array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2ba82c87720a type=3 (0 0) Lookup location=0x2ba82c877212 type=3: not found Pointer enter location=0x2ba82c877212 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2ba82c877212 type=3 (0 0) Lookup location=0x2ba82c87727b type=3: not found Pointer enter location=0x2ba82c87727b array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2ba82c87727b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x5ae4250 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413d930 type=371: not found Embedded_id 0x7fff6413d930 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff64156ec0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff64156ec0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x5ae0cf0 type=32 id=2 Is embedded? 0 0 Embedded_id 0x5ae0cf0 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x5ae1da0 type=31 id=3 Is embedded? 0 0 Embedded_id 0x5ae1da0 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x5ad8800 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x5ae1e00 type=148 id=5 Is embedded? 0 0 Embedded_id 0x5ae1e00 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff64157080 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff64157080 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2ba82d8760c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2ba82d8760c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x5ae1ce0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x5ae1ce0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x5ae1e50 type=14 id=9 Is embedded? 0 0 Embedded_id 0x5ae1e50 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2ba82c87c286 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c877205 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c87720d type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c87720a type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c877212 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c87727b type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=5 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413d930 type=371: not found Embedded_id 0x7fff6413d930 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff64156ec0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff64156ec0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x5ae0cf0 type=32 id=2 Is embedded? 0 0 Embedded_id 0x5ae0cf0 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x5ae1da0 type=31 id=3 Is embedded? 0 0 Embedded_id 0x5ae1da0 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x5ad8800 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x5ae1e00 type=148 id=5 Is embedded? 0 0 Embedded_id 0x5ae1e00 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff64157080 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff64157080 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2ba82d8760c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2ba82d8760c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x5ae1ce0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x5ae1ce0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x5ae1e50 type=14 id=9 Is embedded? 0 0 Embedded_id 0x5ae1e50 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2ba82c87c286 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c877205 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c87720d type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c87720a type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c877212 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c87727b type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x5ae4250) Free pointer hashtable stdsoap2.c(4079): free(0x5ae1eb0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x5ae4250 Free ID hashtable Read 1037 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x5aed7b0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x5b14690 stdsoap2.c(7219): malloc(64) = 0x5aed000 stdsoap2.c(2336): malloc(40) = 0x5aea850 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x5ae5d50 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b29450 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b03c70 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5aeab70 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x5aea8c0 stdsoap2.c(7172): malloc(62) = 0x5aea900 stdsoap2.c(7219): malloc(64) = 0x5aed850 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fff64156f20 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x5b03bb0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5aed5f0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5aed5f0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x5b14f10 Enter id='' type=3 loc=0x5b14f10 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b14f50 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x5b03b40 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x5aea450 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x5b05970 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x5b05a70 stdsoap2.c(6963): free(0x5b14690) stdsoap2.c(4726): malloc(104) = 0x5aea6a0 Enter id='' type=6 loc=0x5aea6a0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5aea740 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5aea740 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x5aea450->(nil)) stdsoap2.c(4726): malloc(24) = 0x5b14b90 First block Copy 8 bytes from 0x5aea460 to 0x5b14b90 Next block stdsoap2.c(2026): free(0x5aea450) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x5b03b40) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x5aeab70) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x5b03c70) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x5b29450) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x5ae5d50) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x5aea850) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x5aed850) stdsoap2.c(5406): free(0x5aea900) stdsoap2.c(5405): free(0x5aed000) stdsoap2.c(5406): free(0x5aed7b0) stdsoap2.c(5411): free(0x5b05a70) stdsoap2.c(5422): free(0x5aea8c0) stdsoap2.c(5428): free(0x5ae4250) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x5b14b90) stdsoap2.c(4857): free(0x5aea740) stdsoap2.c(4857): free(0x5aea6a0) stdsoap2.c(4857): free(0x5b05970) stdsoap2.c(4857): free(0x5b14f50) stdsoap2.c(4857): free(0x5b14f10) stdsoap2.c(4857): free(0x5aed5f0) stdsoap2.c(4857): free(0x5b03bb0) stdsoap2.c(4857): free(0x5ae1e50) stdsoap2.c(4857): free(0x5ae1e00) stdsoap2.c(4857): free(0x5ae1da0) stdsoap2.c(4857): free(0x5ae1d50) stdsoap2.c(4857): free(0x5ae1ce0) stdsoap2.c(4857): free(0x5ae0d20) stdsoap2.c(4857): free(0x5ae0cf0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x5ad8c70) Free logfiles stdsoap2.c(2959): free(0x5ae2540) stdsoap2.c(2959): free(0x5ae3670) stdsoap2.c(2959): free(0x5ae2560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff6413da10 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x5adda20 Pointer enter location=0x7fff6413da10 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff6413da10 type=103 (0 0) Lookup location=0x5aea850 type=3: not found Pointer enter location=0x5aea850 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x5aea850 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x5afe080 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413d9a0 type=377: not found Embedded_id 0x7fff6413d9a0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff6413da10 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff6413da10 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x5aea850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413d9a0 type=377: not found Embedded_id 0x7fff6413d9a0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff6413da10 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff6413da10 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x5aea850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x5afe080) Free pointer hashtable stdsoap2.c(4079): free(0x5adda20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x5afe080 Free ID hashtable Read 1221 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1103 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x5b14e00 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x5aea520 stdsoap2.c(7219): malloc(64) = 0x5ae77c0 stdsoap2.c(2336): malloc(40) = 0x5ae70a0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x5b22020 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b21e60 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5adf240 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5ae9e90 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x5ae9f30 stdsoap2.c(7172): malloc(62) = 0x5ae6fd0 stdsoap2.c(7219): malloc(64) = 0x5ae9d00 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff6413da30 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x5ae9d80 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b057e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5b057e0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b05840 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x5b03900 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x5ae9df0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x5b05940 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x5b03940 stdsoap2.c(6963): free(0x5aea520) stdsoap2.c(4726): malloc(104) = 0x5b039d0 Enter id='' type=6 loc=0x5b039d0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5ae6de0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5ae6de0 size=4 level=0 Element content value='SRM_SPACE_AVAILABLE' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x5ae6b30 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x5b14a80 Element content value='7199' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x5ae9ec0 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x5b14460 Enter id='' type=6 loc=0x5b14460 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x5ae9df0->(nil)) stdsoap2.c(4726): malloc(24) = 0x5ae9f70 First block Copy 8 bytes from 0x5ae9e00 to 0x5ae9f70 Next block stdsoap2.c(2026): free(0x5ae9df0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x5b03900) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x5ae9e90) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x5adf240) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x5b21e60) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x5b22020) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x5ae70a0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x5ae9d00) stdsoap2.c(5406): free(0x5ae6fd0) stdsoap2.c(5405): free(0x5ae77c0) stdsoap2.c(5406): free(0x5b14e00) stdsoap2.c(5411): free(0x5b03940) stdsoap2.c(5422): free(0x5ae9f30) stdsoap2.c(5428): free(0x5afe080) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x5ae9f70) stdsoap2.c(4857): free(0x5b14460) stdsoap2.c(4857): free(0x5ae9ec0) stdsoap2.c(4857): free(0x5b14a80) stdsoap2.c(4857): free(0x5ae6b30) stdsoap2.c(4857): free(0x5ae6de0) stdsoap2.c(4857): free(0x5b039d0) stdsoap2.c(4857): free(0x5b05940) stdsoap2.c(4857): free(0x5b05840) stdsoap2.c(4857): free(0x5b057e0) stdsoap2.c(4857): free(0x5ae9d80) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x5ae1dd0) Free logfiles stdsoap2.c(2959): free(0x5ae2560) stdsoap2.c(2959): free(0x5ae3670) stdsoap2.c(2959): free(0x5ae2540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x5b01910 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff64157880 type=111: not found stdsoap2.c(4149): malloc(1288) = 0x5b08450 Pointer enter location=0x7fff64157880 array=(nil) size=0 dim=0 type=111 id=1 Reference 0x7fff64157880 type=111 (0 0) Lookup location=0x5aea850 type=3: not found Pointer enter location=0x5aea850 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x5aea850 type=3 (0 0) Lookup location=0x5b01910 type=27: not found Pointer enter location=0x5b01910 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x5b01910 type=27 (0 0) Lookup location=0x5ad8800 type=3: not found Pointer enter location=0x5ad8800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x5ad8800 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x5b019a0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413e320 type=401: not found Embedded_id 0x7fff6413e320 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff64157880 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff64157880 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x5aea850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x5b01910 type=27 id=3 Is embedded? 0 0 Embedded_id 0x5b01910 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x5ad8800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=720 New count is 720 bytes Begin send phase (socket=5 mode=0x1 count=720) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413e320 type=401: not found Embedded_id 0x7fff6413e320 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff64157880 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff64157880 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x5aea850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x5b01910 type=27 id=3 Is embedded? 0 0 Embedded_id 0x5b01910 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x5ad8800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x5b019a0) Free pointer hashtable stdsoap2.c(4079): free(0x5b08450) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x5b019a0 Free ID hashtable Read 938 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 821 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x5b11860 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x5b11a40 stdsoap2.c(7219): malloc(64) = 0x5b11640 stdsoap2.c(2336): malloc(40) = 0x5b11d10 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x5b11b00 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b33350 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b12450 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b0ea80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x5b32050 stdsoap2.c(7172): malloc(62) = 0x5b12970 stdsoap2.c(7219): malloc(64) = 0x5b11720 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPutDoneResponse' 'srm2:srmPutDoneResponse' Begin element found (level=3) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' Enter id='' type=396 loc=0x7fff641578a0 size=8 level=0 Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Reverting last element (level=3) Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Enter id='' type=112 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b0e990 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b11e90 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5b11e90 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b11ef0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x5b117b0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x5b12a70 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b19260 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x5b19300 stdsoap2.c(6963): free(0x5b11a40) stdsoap2.c(4726): malloc(104) = 0x5b16f90 Enter id='' type=6 loc=0x5b16f90 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b17030 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5b17030 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x5b12a70->(nil)) stdsoap2.c(4726): malloc(24) = 0x5b0ee00 First block Copy 8 bytes from 0x5b12a80 to 0x5b0ee00 Next block stdsoap2.c(2026): free(0x5b12a70) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x5b117b0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPutDoneResponse'='srmPutDoneResponse' End element found (level=2) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x5b0ea80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x5b12450) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x5b33350) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x5b11b00) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x5b11d10) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x5b11720) stdsoap2.c(5406): free(0x5b12970) stdsoap2.c(5405): free(0x5b11640) stdsoap2.c(5406): free(0x5b11860) stdsoap2.c(5411): free(0x5b19300) stdsoap2.c(5422): free(0x5b32050) stdsoap2.c(5428): free(0x5b019a0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x5b0ee00) stdsoap2.c(4857): free(0x5b17030) stdsoap2.c(4857): free(0x5b16f90) stdsoap2.c(4857): free(0x5b19260) stdsoap2.c(4857): free(0x5b11ef0) stdsoap2.c(4857): free(0x5b11e90) stdsoap2.c(4857): free(0x5b0e990) stdsoap2.c(4857): free(0x5b01910) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x5b018b0) Free logfiles stdsoap2.c(2959): free(0x5ad8860) stdsoap2.c(2959): free(0x5ad8880) stdsoap2.c(2959): free(0x5b01860) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x5ae70a0 stdsoap2.c(4726): malloc(24) = 0x5aea850 stdsoap2.c(4726): malloc(48) = 0x5b0e960 stdsoap2.c(4726): malloc(24) = 0x5b0e9a0 stdsoap2.c(4726): malloc(32) = 0x5b05940 stdsoap2.c(4726): malloc(32) = 0x5afa040 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff64156ee0 type=93: not found stdsoap2.c(4149): malloc(1288) = 0x5b08450 Pointer enter location=0x7fff64156ee0 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fff64156ee0 type=93 (0 0) Lookup location=0x5ae70a0 type=30: not found Pointer enter location=0x5ae70a0 array=(nil) size=0 dim=0 type=30 id=2 Reference 0x5ae70a0 type=30 (0 0) Lookup location=0x5b05940 type=29: not found Pointer enter location=0x5b05940 array=(nil) size=0 dim=0 type=29 id=3 Reference 0x5b05940 type=29 (0 0) Lookup location=0x5b0e900 type=3: not found Pointer enter location=0x5b0e900 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x5b0e900 type=3 (0 0) Lookup location=0x2ba82d8760d4 type=131: not found Pointer enter location=0x2ba82d8760d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2ba82d8760d4 type=131 (0 0) Lookup location=0x7fff64157080 type=1: not found Pointer enter location=0x7fff64157080 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff64157080 type=1 (0 0) Lookup location=0x5b0e960 type=28: not found Pointer enter location=0x5b0e960 array=(nil) size=0 dim=0 type=28 id=7 Reference 0x5b0e960 type=28 (0 0) Lookup location=0x5afa040 type=14: not found Pointer enter location=0x5afa040 array=(nil) size=0 dim=0 type=14 id=8 Reference 0x5afa040 type=14 (0 0) Lookup location=0x2ba82c87c286 type=3: not found Pointer enter location=0x2ba82c87c286 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2ba82c87c286 type=3 (0 0) Lookup location=0x2ba82c877205 type=3: not found Pointer enter location=0x2ba82c877205 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2ba82c877205 type=3 (0 0) Lookup location=0x2ba82c87720d type=3: not found Pointer enter location=0x2ba82c87720d array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2ba82c87720d type=3 (0 0) Lookup location=0x2ba82c87720a type=3: not found Pointer enter location=0x2ba82c87720a array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2ba82c87720a type=3 (0 0) Lookup location=0x2ba82c877212 type=3: not found Pointer enter location=0x2ba82c877212 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2ba82c877212 type=3 (0 0) Lookup location=0x2ba82c87727b type=3: not found Pointer enter location=0x2ba82c87727b array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2ba82c87727b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x5afdbe0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413d960 type=347: not found Embedded_id 0x7fff6413d960 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff64156ee0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff64156ee0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x5ae70a0 type=30 id=2 Is embedded? 0 0 Embedded_id 0x5ae70a0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x5b05940 type=29 id=3 Is embedded? 0 0 Embedded_id 0x5b05940 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x5b0e900 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2ba82d8760d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2ba82d8760d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff64157080 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff64157080 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x5b0e960 type=28 id=7 Is embedded? 0 0 Embedded_id 0x5b0e960 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x5afa040 type=14 id=8 Is embedded? 0 0 Embedded_id 0x5afa040 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2ba82c87c286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c877205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c87720d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c87720a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c877212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c87727b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=5 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413d960 type=347: not found Embedded_id 0x7fff6413d960 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff64156ee0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff64156ee0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x5ae70a0 type=30 id=2 Is embedded? 0 0 Embedded_id 0x5ae70a0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x5b05940 type=29 id=3 Is embedded? 0 0 Embedded_id 0x5b05940 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x5b0e900 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2ba82d8760d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2ba82d8760d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff64157080 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff64157080 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x5b0e960 type=28 id=7 Is embedded? 0 0 Embedded_id 0x5b0e960 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x5afa040 type=14 id=8 Is embedded? 0 0 Embedded_id 0x5afa040 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2ba82c87c286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c877205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c87720d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c87720a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c877212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ba82c87727b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x5afdbe0) Free pointer hashtable stdsoap2.c(4079): free(0x5b08450) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x5afdbe0 Free ID hashtable Read 1049 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x5b12a00 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x5b0c230 stdsoap2.c(7219): malloc(64) = 0x5b17f30 stdsoap2.c(2336): malloc(40) = 0x5b12ae0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x5b32ab0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b12a70 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b0bb10 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b0b8e0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x5b0fcc0 stdsoap2.c(7172): malloc(62) = 0x5b0bb80 stdsoap2.c(7219): malloc(64) = 0x5b128f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fff64156f30 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x5b16d40 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b16d80 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5b16d80 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x5b163d0 Enter id='' type=3 loc=0x5b163d0 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b16440 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x5b0c340 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x5b0bce0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x5b193f0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x5b12760 stdsoap2.c(6963): free(0x5b0c230) stdsoap2.c(4726): malloc(104) = 0x5b127f0 Enter id='' type=6 loc=0x5b127f0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b194f0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5b194f0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x5b0bce0->(nil)) stdsoap2.c(4726): malloc(24) = 0x5b13130 First block Copy 8 bytes from 0x5b0bcf0 to 0x5b13130 Next block stdsoap2.c(2026): free(0x5b0bce0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x5b0c340) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x5b0b8e0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x5b0bb10) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x5b12a70) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x5b32ab0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x5b12ae0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x5b128f0) stdsoap2.c(5406): free(0x5b0bb80) stdsoap2.c(5405): free(0x5b17f30) stdsoap2.c(5406): free(0x5b12a00) stdsoap2.c(5411): free(0x5b12760) stdsoap2.c(5422): free(0x5b0fcc0) stdsoap2.c(5428): free(0x5afdbe0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x5b13130) stdsoap2.c(4857): free(0x5b194f0) stdsoap2.c(4857): free(0x5b127f0) stdsoap2.c(4857): free(0x5b193f0) stdsoap2.c(4857): free(0x5b16440) stdsoap2.c(4857): free(0x5b163d0) stdsoap2.c(4857): free(0x5b16d80) stdsoap2.c(4857): free(0x5b16d40) stdsoap2.c(4857): free(0x5afa040) stdsoap2.c(4857): free(0x5b05940) stdsoap2.c(4857): free(0x5b0e9a0) stdsoap2.c(4857): free(0x5b0e960) stdsoap2.c(4857): free(0x5aea850) stdsoap2.c(4857): free(0x5ae70a0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x5b0e9c0) Free logfiles stdsoap2.c(2959): free(0x5b11ac0) stdsoap2.c(2959): free(0x5b11cf0) stdsoap2.c(2959): free(0x5ad8840) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff6413da10 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x5b08450 Pointer enter location=0x7fff6413da10 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff6413da10 type=95 (0 0) Lookup location=0x5b12ae0 type=3: not found Pointer enter location=0x5b12ae0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x5b12ae0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x5afdbe0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413d9a0 type=353: not found Embedded_id 0x7fff6413d9a0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff6413da10 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff6413da10 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x5b12ae0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413d9a0 type=353: not found Embedded_id 0x7fff6413d9a0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff6413da10 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff6413da10 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x5b12ae0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x5afdbe0) Free pointer hashtable stdsoap2.c(4079): free(0x5b08450) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x5afdbe0 Free ID hashtable Read 1076 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 959 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x5b0f480 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x5b133e0 stdsoap2.c(7219): malloc(64) = 0x5b38c80 stdsoap2.c(2336): malloc(40) = 0x5b0f600 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x5b11800 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b12bf0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b38e50 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b139d0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x5b0c0d0 stdsoap2.c(7172): malloc(62) = 0x5b17550 stdsoap2.c(7219): malloc(64) = 0x5b0f680 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff6413da30 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x5b0f360 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b13130 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5b13130 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b13190 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x5b118a0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x5b12f80 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x5b12e90 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x5b11610 stdsoap2.c(6963): free(0x5b133e0) stdsoap2.c(4726): malloc(104) = 0x5b16b90 Enter id='' type=6 loc=0x5b16b90 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x5b13980 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b12f10 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5b12f10 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x5b13910 Element content value='0' End element found (level=6) 'remainingPinTime'='remainingPinTime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x5b12f80->(nil)) stdsoap2.c(4726): malloc(24) = 0x5b171a0 First block Copy 8 bytes from 0x5b12f90 to 0x5b171a0 Next block stdsoap2.c(2026): free(0x5b12f80) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x5b118a0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x5b139d0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x5b38e50) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x5b12bf0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x5b11800) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x5b0f600) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x5b0f680) stdsoap2.c(5406): free(0x5b17550) stdsoap2.c(5405): free(0x5b38c80) stdsoap2.c(5406): free(0x5b0f480) stdsoap2.c(5411): free(0x5b11610) stdsoap2.c(5422): free(0x5b0c0d0) stdsoap2.c(5428): free(0x5afdbe0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x5b171a0) stdsoap2.c(4857): free(0x5b13910) stdsoap2.c(4857): free(0x5b12f10) stdsoap2.c(4857): free(0x5b13980) stdsoap2.c(4857): free(0x5b16b90) stdsoap2.c(4857): free(0x5b12e90) stdsoap2.c(4857): free(0x5b13190) stdsoap2.c(4857): free(0x5b13130) stdsoap2.c(4857): free(0x5b0f360) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x5b32a30) Free logfiles stdsoap2.c(2959): free(0x5ad8840) stdsoap2.c(2959): free(0x5b11cf0) stdsoap2.c(2959): free(0x5b11ac0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff6413da10 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x5b0eca0 Pointer enter location=0x7fff6413da10 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff6413da10 type=95 (0 0) Lookup location=0x5b12ae0 type=3: not found Pointer enter location=0x5b12ae0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x5b12ae0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x5afdbe0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413d9a0 type=353: not found Embedded_id 0x7fff6413d9a0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff6413da10 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff6413da10 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x5b12ae0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413d9a0 type=353: not found Embedded_id 0x7fff6413d9a0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff6413da10 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff6413da10 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x5b12ae0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x5afdbe0) Free pointer hashtable stdsoap2.c(4079): free(0x5b0eca0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x5b166c0 Free ID hashtable Read 1177 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1059 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x5b0d380 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x5b12e30 stdsoap2.c(7219): malloc(64) = 0x5b0b4b0 stdsoap2.c(2336): malloc(40) = 0x5b0a740 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x5b0b880 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b33ea0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b0bca0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b0d820 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x5b0d930 stdsoap2.c(7172): malloc(62) = 0x5b0c260 stdsoap2.c(7219): malloc(64) = 0x5b0da40 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff6413da30 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x5b130f0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b0b360 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5b0b360 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b0b3c0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x5b0b140 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x5b0b440 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x5b0b210 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x5b28090 stdsoap2.c(6963): free(0x5b12e30) stdsoap2.c(4726): malloc(104) = 0x5b289d0 Enter id='' type=6 loc=0x5b289d0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x5b0a7b0 Element content value='65536' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5afdbe0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5afdbe0 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x5b0d6d0 Element content value='7200' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x5b193f0 Enter id='' type=6 loc=0x5b193f0 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x5b0b440->(nil)) stdsoap2.c(4726): malloc(24) = 0x5b28650 First block Copy 8 bytes from 0x5b0b450 to 0x5b28650 Next block stdsoap2.c(2026): free(0x5b0b440) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x5b0b140) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x5b0d820) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x5b0bca0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x5b33ea0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x5b0b880) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x5b0a740) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x5b0da40) stdsoap2.c(5406): free(0x5b0c260) stdsoap2.c(5405): free(0x5b0b4b0) stdsoap2.c(5406): free(0x5b0d380) stdsoap2.c(5411): free(0x5b28090) stdsoap2.c(5422): free(0x5b0d930) stdsoap2.c(5428): free(0x5b166c0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x5b28650) stdsoap2.c(4857): free(0x5b193f0) stdsoap2.c(4857): free(0x5b0d6d0) stdsoap2.c(4857): free(0x5afdbe0) stdsoap2.c(4857): free(0x5b0a7b0) stdsoap2.c(4857): free(0x5b289d0) stdsoap2.c(4857): free(0x5b0b210) stdsoap2.c(4857): free(0x5b0b3c0) stdsoap2.c(4857): free(0x5b0b360) stdsoap2.c(4857): free(0x5b130f0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x5b193c0) Free logfiles stdsoap2.c(2959): free(0x5b11ac0) stdsoap2.c(2959): free(0x5b11cf0) stdsoap2.c(2959): free(0x5ad8840) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x5ae1ee0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff64157880 type=109: not found stdsoap2.c(4149): malloc(1288) = 0x5b11cf0 Pointer enter location=0x7fff64157880 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fff64157880 type=109 (0 0) Lookup location=0x5b12ae0 type=3: not found Pointer enter location=0x5b12ae0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x5b12ae0 type=3 (0 0) Lookup location=0x5ae1ee0 type=27: not found Pointer enter location=0x5ae1ee0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x5ae1ee0 type=27 (0 0) Lookup location=0x5b0e900 type=3: not found Pointer enter location=0x5b0e900 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x5b0e900 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x5b0bfd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413e320 type=395: not found Embedded_id 0x7fff6413e320 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff64157880 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff64157880 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x5b12ae0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x5ae1ee0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x5ae1ee0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x5b0e900 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=5 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6413e320 type=395: not found Embedded_id 0x7fff6413e320 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff64157880 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff64157880 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x5b12ae0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x5ae1ee0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x5ae1ee0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x5b0e900 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x5b0bfd0) Free pointer hashtable stdsoap2.c(4079): free(0x5b11cf0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x5b16e50 Free ID hashtable Read 958 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x5b0fd30 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x5b2b170 stdsoap2.c(7219): malloc(64) = 0x5b2ac30 stdsoap2.c(2336): malloc(40) = 0x5b2ae70 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x5b35390 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b2b840 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b0c690 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x5b10070 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x5b2ad30 stdsoap2.c(7172): malloc(62) = 0x5b2ad70 stdsoap2.c(7219): malloc(64) = 0x5b2b760 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fff641578a0 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b2b530 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b2b590 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5b2b590 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b0bfd0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x5b2ae00 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x5b2af30 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b101d0 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x5b137d0 stdsoap2.c(6963): free(0x5b2b170) stdsoap2.c(4726): malloc(104) = 0x5b10230 Enter id='' type=6 loc=0x5b10230 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x5b15c10 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x5b15c10 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x5b2af30->(nil)) stdsoap2.c(4726): malloc(24) = 0x5b2b100 First block Copy 8 bytes from 0x5b2af40 to 0x5b2b100 Next block stdsoap2.c(2026): free(0x5b2af30) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x5b2ae00) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x5b10070) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x5b0c690) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x5b2b840) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x5b35390) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x5b2ae70) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x5b2b760) stdsoap2.c(5406): free(0x5b2ad70) stdsoap2.c(5405): free(0x5b2ac30) stdsoap2.c(5406): free(0x5b0fd30) stdsoap2.c(5411): free(0x5b137d0) stdsoap2.c(5422): free(0x5b2ad30) stdsoap2.c(5428): free(0x5b16e50) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x5b2b100) stdsoap2.c(4857): free(0x5b15c10) stdsoap2.c(4857): free(0x5b10230) stdsoap2.c(4857): free(0x5b101d0) stdsoap2.c(4857): free(0x5b0bfd0) stdsoap2.c(4857): free(0x5b2b590) stdsoap2.c(4857): free(0x5b2b530) stdsoap2.c(4857): free(0x5ae1ee0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x5ae1e80) Free logfiles stdsoap2.c(2959): free(0x5ae70a0) stdsoap2.c(2959): free(0x5b11a10) stdsoap2.c(2959): free(0x5ae1e30) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x12d54b90 stdsoap2.c(4726): malloc(24) = 0x12d54bc0 stdsoap2.c(4726): malloc(48) = 0x12d56610 stdsoap2.c(4726): malloc(24) = 0x12d56680 stdsoap2.c(4726): malloc(32) = 0x12d566d0 stdsoap2.c(4726): malloc(32) = 0x12d56730 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff09cb4c10 type=93: not found stdsoap2.c(4149): malloc(1288) = 0x12d56790 Pointer enter location=0x7fff09cb4c10 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fff09cb4c10 type=93 (0 0) Lookup location=0x12d54b90 type=30: not found Pointer enter location=0x12d54b90 array=(nil) size=0 dim=0 type=30 id=2 Reference 0x12d54b90 type=30 (0 0) Lookup location=0x12d566d0 type=29: not found Pointer enter location=0x12d566d0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0x12d566d0 type=29 (0 0) Lookup location=0x12d3c800 type=3: not found Pointer enter location=0x12d3c800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x12d3c800 type=3 (0 0) Lookup location=0x2b801acec0d4 type=131: not found Pointer enter location=0x2b801acec0d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2b801acec0d4 type=131 (0 0) Lookup location=0x7fff09cb4db0 type=1: not found Pointer enter location=0x7fff09cb4db0 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff09cb4db0 type=1 (0 0) Lookup location=0x12d56610 type=28: not found Pointer enter location=0x12d56610 array=(nil) size=0 dim=0 type=28 id=7 Reference 0x12d56610 type=28 (0 0) Lookup location=0x12d56730 type=14: not found Pointer enter location=0x12d56730 array=(nil) size=0 dim=0 type=14 id=8 Reference 0x12d56730 type=14 (0 0) Lookup location=0x2b8019cf2286 type=3: not found Pointer enter location=0x2b8019cf2286 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2b8019cf2286 type=3 (0 0) Lookup location=0x2b8019ced205 type=3: not found Pointer enter location=0x2b8019ced205 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b8019ced205 type=3 (0 0) Lookup location=0x2b8019ced20d type=3: not found Pointer enter location=0x2b8019ced20d array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b8019ced20d type=3 (0 0) Lookup location=0x2b8019ced20a type=3: not found Pointer enter location=0x2b8019ced20a array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b8019ced20a type=3 (0 0) Lookup location=0x2b8019ced212 type=3: not found Pointer enter location=0x2b8019ced212 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b8019ced212 type=3 (0 0) Lookup location=0x2b8019ced27b type=3: not found Pointer enter location=0x2b8019ced27b array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b8019ced27b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x12d56cd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff09c9b690 type=347: not found Embedded_id 0x7fff09c9b690 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff09cb4c10 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff09cb4c10 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x12d54b90 type=30 id=2 Is embedded? 0 0 Embedded_id 0x12d54b90 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x12d566d0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x12d566d0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x12d3c800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b801acec0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b801acec0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff09cb4db0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff09cb4db0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x12d56610 type=28 id=7 Is embedded? 0 0 Embedded_id 0x12d56610 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x12d56730 type=14 id=8 Is embedded? 0 0 Embedded_id 0x12d56730 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b8019cf2286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b8019ced205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b8019ced20d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b8019ced20a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b8019ced212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b8019ced27b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=5 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff09c9b690 type=347: not found Embedded_id 0x7fff09c9b690 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff09cb4c10 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff09cb4c10 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x12d54b90 type=30 id=2 Is embedded? 0 0 Embedded_id 0x12d54b90 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x12d566d0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x12d566d0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x12d3c800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b801acec0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b801acec0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff09cb4db0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff09cb4db0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x12d56610 type=28 id=7 Is embedded? 0 0 Embedded_id 0x12d56610 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x12d56730 type=14 id=8 Is embedded? 0 0 Embedded_id 0x12d56730 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b8019cf2286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b8019ced205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b8019ced20d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b8019ced20a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b8019ced212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b8019ced27b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x12d56cd0) Free pointer hashtable stdsoap2.c(4079): free(0x12d56790) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x12d56cd0 Free ID hashtable Read 1049 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x12d5e080 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x12d620e0 stdsoap2.c(7219): malloc(64) = 0x12d60700 stdsoap2.c(2336): malloc(40) = 0x12d5e6e0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x12d611a0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x12d59200 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x12d80ab0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x12d614a0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x12d61540 stdsoap2.c(7172): malloc(62) = 0x12d5e460 stdsoap2.c(7219): malloc(64) = 0x12d5e2e0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fff09cb4c60 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x12d72ea0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x12d72ee0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x12d72ee0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x12d737e0 Enter id='' type=3 loc=0x12d737e0 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x12d73850 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x12d62350 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x12d5df70 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x12d61100 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x12d64230 stdsoap2.c(6963): free(0x12d620e0) stdsoap2.c(4726): malloc(104) = 0x12d64330 Enter id='' type=6 loc=0x12d64330 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x12d643d0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x12d643d0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x12d5df70->(nil)) stdsoap2.c(4726): malloc(24) = 0x12d73460 First block Copy 8 bytes from 0x12d5df80 to 0x12d73460 Next block stdsoap2.c(2026): free(0x12d5df70) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x12d62350) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x12d614a0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x12d80ab0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x12d59200) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x12d611a0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x12d5e6e0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x12d5e2e0) stdsoap2.c(5406): free(0x12d5e460) stdsoap2.c(5405): free(0x12d60700) stdsoap2.c(5406): free(0x12d5e080) stdsoap2.c(5411): free(0x12d64230) stdsoap2.c(5422): free(0x12d61540) stdsoap2.c(5428): free(0x12d56cd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x12d73460) stdsoap2.c(4857): free(0x12d643d0) stdsoap2.c(4857): free(0x12d64330) stdsoap2.c(4857): free(0x12d61100) stdsoap2.c(4857): free(0x12d73850) stdsoap2.c(4857): free(0x12d737e0) stdsoap2.c(4857): free(0x12d72ee0) stdsoap2.c(4857): free(0x12d72ea0) stdsoap2.c(4857): free(0x12d56730) stdsoap2.c(4857): free(0x12d566d0) stdsoap2.c(4857): free(0x12d56680) stdsoap2.c(4857): free(0x12d56610) stdsoap2.c(4857): free(0x12d54bc0) stdsoap2.c(4857): free(0x12d54b90) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x12d464c0) Free logfiles stdsoap2.c(2959): free(0x12d46560) stdsoap2.c(2959): free(0x12d47670) stdsoap2.c(2959): free(0x12d46540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff09c9b740 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x12d426e0 Pointer enter location=0x7fff09c9b740 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff09c9b740 type=95 (0 0) Lookup location=0x12d5e6e0 type=3: not found Pointer enter location=0x12d5e6e0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x12d5e6e0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x12d42bf0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff09c9b6d0 type=353: not found Embedded_id 0x7fff09c9b6d0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff09c9b740 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff09c9b740 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x12d5e6e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff09c9b6d0 type=353: not found Embedded_id 0x7fff09c9b6d0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff09c9b740 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff09c9b740 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x12d5e6e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x12d42bf0) Free pointer hashtable stdsoap2.c(4079): free(0x12d426e0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x12d6c140 Free ID hashtable Read 1106 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 989 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x12d47840 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x12d7a840 stdsoap2.c(7219): malloc(64) = 0x12d48390 stdsoap2.c(2336): malloc(40) = 0x12d478c0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x12d7ab00 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x12d836a0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x12d84b50 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x12d7d210 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x12d7a520 stdsoap2.c(7172): malloc(62) = 0x12d83560 stdsoap2.c(7219): malloc(64) = 0x12d6b870 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff09c9b760 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x12d7aa10 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x12d488b0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x12d488b0 size=4 level=0 Element content value='SRM_FAILURE' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(40) = 0x12d48910 Enter id='' type=3 loc=0x12d48910 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x12d47f90 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x12d7a8f0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x12d44730 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x12d480d0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x12d47d90 stdsoap2.c(6963): free(0x12d7a840) stdsoap2.c(4726): malloc(104) = 0x12d4c160 Enter id='' type=6 loc=0x12d4c160 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x12d48870 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x12d4c230 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x12d4c230 size=4 level=0 Element content value='SRM_INVALID_PATH' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x12d47910 Element content value='0' End element found (level=6) 'remainingPinTime'='remainingPinTime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x12d44730->(nil)) stdsoap2.c(4726): malloc(24) = 0x12d47ec0 First block Copy 8 bytes from 0x12d44740 to 0x12d47ec0 Next block stdsoap2.c(2026): free(0x12d44730) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x12d7a8f0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x12d7d210) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x12d84b50) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x12d836a0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x12d7ab00) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x12d478c0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x12d6b870) stdsoap2.c(5406): free(0x12d83560) stdsoap2.c(5405): free(0x12d48390) stdsoap2.c(5406): free(0x12d47840) stdsoap2.c(5411): free(0x12d47d90) stdsoap2.c(5422): free(0x12d7a520) stdsoap2.c(5428): free(0x12d6c140) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x12d47ec0) stdsoap2.c(4857): free(0x12d47910) stdsoap2.c(4857): free(0x12d4c230) stdsoap2.c(4857): free(0x12d48870) stdsoap2.c(4857): free(0x12d4c160) stdsoap2.c(4857): free(0x12d480d0) stdsoap2.c(4857): free(0x12d47f90) stdsoap2.c(4857): free(0x12d48910) stdsoap2.c(4857): free(0x12d488b0) stdsoap2.c(4857): free(0x12d7aa10) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x12d3cc70) Free logfiles stdsoap2.c(2959): free(0x12d46540) stdsoap2.c(2959): free(0x12d47670) stdsoap2.c(2959): free(0x12d46560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x175b8b90 stdsoap2.c(4726): malloc(24) = 0x175b8bc0 stdsoap2.c(4726): malloc(48) = 0x175ba610 stdsoap2.c(4726): malloc(24) = 0x175ba680 stdsoap2.c(4726): malloc(32) = 0x175ba6d0 stdsoap2.c(4726): malloc(32) = 0x175ba730 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff4adcd3b0 type=93: not found stdsoap2.c(4149): malloc(1288) = 0x175ba790 Pointer enter location=0x7fff4adcd3b0 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fff4adcd3b0 type=93 (0 0) Lookup location=0x175b8b90 type=30: not found Pointer enter location=0x175b8b90 array=(nil) size=0 dim=0 type=30 id=2 Reference 0x175b8b90 type=30 (0 0) Lookup location=0x175ba6d0 type=29: not found Pointer enter location=0x175ba6d0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0x175ba6d0 type=29 (0 0) Lookup location=0x175a0800 type=3: not found Pointer enter location=0x175a0800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x175a0800 type=3 (0 0) Lookup location=0x2b01432180d4 type=131: not found Pointer enter location=0x2b01432180d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2b01432180d4 type=131 (0 0) Lookup location=0x7fff4adcd550 type=1: not found Pointer enter location=0x7fff4adcd550 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff4adcd550 type=1 (0 0) Lookup location=0x175ba610 type=28: not found Pointer enter location=0x175ba610 array=(nil) size=0 dim=0 type=28 id=7 Reference 0x175ba610 type=28 (0 0) Lookup location=0x175ba730 type=14: not found Pointer enter location=0x175ba730 array=(nil) size=0 dim=0 type=14 id=8 Reference 0x175ba730 type=14 (0 0) Lookup location=0x2b014221e286 type=3: not found Pointer enter location=0x2b014221e286 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2b014221e286 type=3 (0 0) Lookup location=0x2b0142219205 type=3: not found Pointer enter location=0x2b0142219205 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b0142219205 type=3 (0 0) Lookup location=0x2b014221920d type=3: not found Pointer enter location=0x2b014221920d array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b014221920d type=3 (0 0) Lookup location=0x2b014221920a type=3: not found Pointer enter location=0x2b014221920a array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b014221920a type=3 (0 0) Lookup location=0x2b0142219212 type=3: not found Pointer enter location=0x2b0142219212 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b0142219212 type=3 (0 0) Lookup location=0x2b014221927b type=3: not found Pointer enter location=0x2b014221927b array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b014221927b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x175bacd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4adb3e30 type=347: not found Embedded_id 0x7fff4adb3e30 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff4adcd3b0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff4adcd3b0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x175b8b90 type=30 id=2 Is embedded? 0 0 Embedded_id 0x175b8b90 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x175ba6d0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x175ba6d0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x175a0800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b01432180d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b01432180d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff4adcd550 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff4adcd550 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x175ba610 type=28 id=7 Is embedded? 0 0 Embedded_id 0x175ba610 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x175ba730 type=14 id=8 Is embedded? 0 0 Embedded_id 0x175ba730 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b014221e286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b0142219205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b014221920d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b014221920a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b0142219212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b014221927b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=5 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4adb3e30 type=347: not found Embedded_id 0x7fff4adb3e30 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff4adcd3b0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff4adcd3b0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x175b8b90 type=30 id=2 Is embedded? 0 0 Embedded_id 0x175b8b90 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x175ba6d0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x175ba6d0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x175a0800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b01432180d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b01432180d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff4adcd550 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff4adcd550 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x175ba610 type=28 id=7 Is embedded? 0 0 Embedded_id 0x175ba610 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x175ba730 type=14 id=8 Is embedded? 0 0 Embedded_id 0x175ba730 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b014221e286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b0142219205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b014221920d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b014221920a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b0142219212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b014221927b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x175bacd0) Free pointer hashtable stdsoap2.c(4079): free(0x175ba790) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x175bacd0 Free ID hashtable Read 1049 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x175c2080 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x175c60e0 stdsoap2.c(7219): malloc(64) = 0x175c4700 stdsoap2.c(2336): malloc(40) = 0x175c26e0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x175c51a0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x175bd200 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x175e4ab0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x175c54a0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x175c5540 stdsoap2.c(7172): malloc(62) = 0x175c2460 stdsoap2.c(7219): malloc(64) = 0x175c22e0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fff4adcd400 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x175d6ea0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175d6ee0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x175d6ee0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x175d77e0 Enter id='' type=3 loc=0x175d77e0 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175d7850 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x175c6350 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x175c1f70 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x175c5100 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x175c8230 stdsoap2.c(6963): free(0x175c60e0) stdsoap2.c(4726): malloc(104) = 0x175c8330 Enter id='' type=6 loc=0x175c8330 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175c83d0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x175c83d0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x175c1f70->(nil)) stdsoap2.c(4726): malloc(24) = 0x175d7460 First block Copy 8 bytes from 0x175c1f80 to 0x175d7460 Next block stdsoap2.c(2026): free(0x175c1f70) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x175c6350) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x175c54a0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x175e4ab0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x175bd200) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x175c51a0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x175c26e0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x175c22e0) stdsoap2.c(5406): free(0x175c2460) stdsoap2.c(5405): free(0x175c4700) stdsoap2.c(5406): free(0x175c2080) stdsoap2.c(5411): free(0x175c8230) stdsoap2.c(5422): free(0x175c5540) stdsoap2.c(5428): free(0x175bacd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x175d7460) stdsoap2.c(4857): free(0x175c83d0) stdsoap2.c(4857): free(0x175c8330) stdsoap2.c(4857): free(0x175c5100) stdsoap2.c(4857): free(0x175d7850) stdsoap2.c(4857): free(0x175d77e0) stdsoap2.c(4857): free(0x175d6ee0) stdsoap2.c(4857): free(0x175d6ea0) stdsoap2.c(4857): free(0x175ba730) stdsoap2.c(4857): free(0x175ba6d0) stdsoap2.c(4857): free(0x175ba680) stdsoap2.c(4857): free(0x175ba610) stdsoap2.c(4857): free(0x175b8bc0) stdsoap2.c(4857): free(0x175b8b90) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x175aa4c0) Free logfiles stdsoap2.c(2959): free(0x175aa560) stdsoap2.c(2959): free(0x175ab670) stdsoap2.c(2959): free(0x175aa540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff4adb3ee0 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x175a66e0 Pointer enter location=0x7fff4adb3ee0 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff4adb3ee0 type=95 (0 0) Lookup location=0x175c26e0 type=3: not found Pointer enter location=0x175c26e0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x175c26e0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x175a6bf0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4adb3e70 type=353: not found Embedded_id 0x7fff4adb3e70 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff4adb3ee0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff4adb3ee0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x175c26e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4adb3e70 type=353: not found Embedded_id 0x7fff4adb3e70 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff4adb3ee0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff4adb3ee0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x175c26e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x175a6bf0) Free pointer hashtable stdsoap2.c(4079): free(0x175a66e0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x175d0140 Free ID hashtable Read 1076 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 959 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x175ab840 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x175de840 stdsoap2.c(7219): malloc(64) = 0x175ac390 stdsoap2.c(2336): malloc(40) = 0x175ab8c0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x175deb00 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x175e76a0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x175e8b50 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x175e1210 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x175de520 stdsoap2.c(7172): malloc(62) = 0x175e7560 stdsoap2.c(7219): malloc(64) = 0x175cf870 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff4adb3f00 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x175dea10 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175ac8b0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x175ac8b0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175ac910 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x175de8f0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x175a8730 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x175ac070 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x175abd60 stdsoap2.c(6963): free(0x175de840) stdsoap2.c(4726): malloc(104) = 0x175abdf0 Enter id='' type=6 loc=0x175abdf0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x175ac870 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175b01c0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x175b01c0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x175ab910 Element content value='0' End element found (level=6) 'remainingPinTime'='remainingPinTime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x175a8730->(nil)) stdsoap2.c(4726): malloc(24) = 0x175abec0 First block Copy 8 bytes from 0x175a8740 to 0x175abec0 Next block stdsoap2.c(2026): free(0x175a8730) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x175de8f0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x175e1210) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x175e8b50) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x175e76a0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x175deb00) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x175ab8c0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x175cf870) stdsoap2.c(5406): free(0x175e7560) stdsoap2.c(5405): free(0x175ac390) stdsoap2.c(5406): free(0x175ab840) stdsoap2.c(5411): free(0x175abd60) stdsoap2.c(5422): free(0x175de520) stdsoap2.c(5428): free(0x175d0140) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x175abec0) stdsoap2.c(4857): free(0x175ab910) stdsoap2.c(4857): free(0x175b01c0) stdsoap2.c(4857): free(0x175ac870) stdsoap2.c(4857): free(0x175abdf0) stdsoap2.c(4857): free(0x175ac070) stdsoap2.c(4857): free(0x175ac910) stdsoap2.c(4857): free(0x175ac8b0) stdsoap2.c(4857): free(0x175dea10) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x175a0c70) Free logfiles stdsoap2.c(2959): free(0x175aa540) stdsoap2.c(2959): free(0x175ab670) stdsoap2.c(2959): free(0x175aa560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff4adb3ee0 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x175ad210 Pointer enter location=0x7fff4adb3ee0 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff4adb3ee0 type=95 (0 0) Lookup location=0x175c26e0 type=3: not found Pointer enter location=0x175c26e0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x175c26e0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x175ad720 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4adb3e70 type=353: not found Embedded_id 0x7fff4adb3e70 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff4adb3ee0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff4adb3ee0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x175c26e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4adb3e70 type=353: not found Embedded_id 0x7fff4adb3e70 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff4adb3ee0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff4adb3ee0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x175c26e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x175ad720) Free pointer hashtable stdsoap2.c(4079): free(0x175ad210) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x175b1500 Free ID hashtable Read 1174 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1056 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x175ddc70 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x175dde50 stdsoap2.c(7219): malloc(64) = 0x175dda50 stdsoap2.c(2336): malloc(40) = 0x175e0c80 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x175ddf10 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x175e5890 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x175e0e00 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x175d0f20 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x175ba980 stdsoap2.c(7172): malloc(62) = 0x175ded80 stdsoap2.c(7219): malloc(64) = 0x175ddb30 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff4adb3f00 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x175ba790 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175c60e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x175c60e0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175c6140 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x175ddbc0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x175dee80 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x175c6240 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x175d0580 stdsoap2.c(6963): free(0x175dde50) stdsoap2.c(4726): malloc(104) = 0x175c62c0 Enter id='' type=6 loc=0x175c62c0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x175bac00 Element content value='12' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175d01a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x175d01a0 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x175ded40 Element content value='7200' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x175d0230 Enter id='' type=6 loc=0x175d0230 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x175dee80->(nil)) stdsoap2.c(4726): malloc(24) = 0x175ddde0 First block Copy 8 bytes from 0x175dee90 to 0x175ddde0 Next block stdsoap2.c(2026): free(0x175dee80) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x175ddbc0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x175d0f20) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x175e0e00) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x175e5890) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x175ddf10) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x175e0c80) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x175ddb30) stdsoap2.c(5406): free(0x175ded80) stdsoap2.c(5405): free(0x175dda50) stdsoap2.c(5406): free(0x175ddc70) stdsoap2.c(5411): free(0x175d0580) stdsoap2.c(5422): free(0x175ba980) stdsoap2.c(5428): free(0x175b1500) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x175ddde0) stdsoap2.c(4857): free(0x175d0230) stdsoap2.c(4857): free(0x175ded40) stdsoap2.c(4857): free(0x175d01a0) stdsoap2.c(4857): free(0x175bac00) stdsoap2.c(4857): free(0x175c62c0) stdsoap2.c(4857): free(0x175c6240) stdsoap2.c(4857): free(0x175c6140) stdsoap2.c(4857): free(0x175c60e0) stdsoap2.c(4857): free(0x175ba790) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x175b0220) Free logfiles stdsoap2.c(2959): free(0x175aa560) stdsoap2.c(2959): free(0x175ab670) stdsoap2.c(2959): free(0x175aa540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x175a2430 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff4adcdd50 type=109: not found stdsoap2.c(4149): malloc(1288) = 0x175d9320 Pointer enter location=0x7fff4adcdd50 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fff4adcdd50 type=109 (0 0) Lookup location=0x175c26e0 type=3: not found Pointer enter location=0x175c26e0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x175c26e0 type=3 (0 0) Lookup location=0x175a2430 type=27: not found Pointer enter location=0x175a2430 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x175a2430 type=27 (0 0) Lookup location=0x175a0800 type=3: not found Pointer enter location=0x175a0800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x175a0800 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x175a24c0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4adb47f0 type=395: not found Embedded_id 0x7fff4adb47f0 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff4adcdd50 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff4adcdd50 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x175c26e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x175a2430 type=27 id=3 Is embedded? 0 0 Embedded_id 0x175a2430 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x175a0800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=5 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff4adb47f0 type=395: not found Embedded_id 0x7fff4adb47f0 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff4adcdd50 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff4adcdd50 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x175c26e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x175a2430 type=27 id=3 Is embedded? 0 0 Embedded_id 0x175a2430 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x175a0800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x175a24c0) Free pointer hashtable stdsoap2.c(4079): free(0x175d9320) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x175a24c0 Free ID hashtable Read 958 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x175b3470 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x175b3fb0 stdsoap2.c(7219): malloc(64) = 0x175d1d10 stdsoap2.c(2336): malloc(40) = 0x175b0080 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x175f4f70 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x175b2cb0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x175b5e40 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x175c7300 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x175b0370 stdsoap2.c(7172): malloc(62) = 0x175b3ee0 stdsoap2.c(7219): malloc(64) = 0x175aff70 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fff4adcdd70 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175b00f0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175b0150 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x175b0150 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175b5d80 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x175b3ea0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x175b2f40 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175f6350 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x175b3510 stdsoap2.c(6963): free(0x175b3fb0) stdsoap2.c(4726): malloc(104) = 0x175b3310 Enter id='' type=6 loc=0x175b3310 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x175c79e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x175c79e0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x175b2f40->(nil)) stdsoap2.c(4726): malloc(24) = 0x175c61f0 First block Copy 8 bytes from 0x175b2f50 to 0x175c61f0 Next block stdsoap2.c(2026): free(0x175b2f40) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x175b3ea0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x175c7300) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x175b5e40) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x175b2cb0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x175f4f70) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x175b0080) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x175aff70) stdsoap2.c(5406): free(0x175b3ee0) stdsoap2.c(5405): free(0x175d1d10) stdsoap2.c(5406): free(0x175b3470) stdsoap2.c(5411): free(0x175b3510) stdsoap2.c(5422): free(0x175b0370) stdsoap2.c(5428): free(0x175a24c0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x175c61f0) stdsoap2.c(4857): free(0x175c79e0) stdsoap2.c(4857): free(0x175b3310) stdsoap2.c(4857): free(0x175f6350) stdsoap2.c(4857): free(0x175b5d80) stdsoap2.c(4857): free(0x175b0150) stdsoap2.c(4857): free(0x175b00f0) stdsoap2.c(4857): free(0x175a2430) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x175a23d0) Free logfiles stdsoap2.c(2959): free(0x175e52b0) stdsoap2.c(2959): free(0x175e52d0) stdsoap2.c(2959): free(0x175e52f0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffedea5930 type=81: not found stdsoap2.c(4149): malloc(1288) = 0x1fc54bd0 Pointer enter location=0x7fffedea5930 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fffedea5930 type=81 (0 0) Lookup location=0x1fc4f6d0 type=3: not found Pointer enter location=0x1fc4f6d0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x1fc4f6d0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x1fc550e0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8c3e0 type=311: not found Embedded_id 0x7fffede8c3e0 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fffedea5930 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fffedea5930 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x1fc4f6d0 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=5 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8c3e0 type=311: not found Embedded_id 0x7fffede8c3e0 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fffedea5930 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fffedea5930 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x1fc4f6d0 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x1fc550e0) Free pointer hashtable stdsoap2.c(4079): free(0x1fc54bd0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1fc5f380 Free ID hashtable Read 759 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1fc5c390 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x1fc603f0 stdsoap2.c(7219): malloc(64) = 0x1fc5ea10 stdsoap2.c(2336): malloc(40) = 0x1fc565a0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x1fc5ca20 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc5f4e0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc57530 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc7ee20 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1fc5f7e0 stdsoap2.c(7172): malloc(62) = 0x1fc5f880 stdsoap2.c(7219): malloc(64) = 0x1fc5c7a0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fffedea5950 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x1fc60660 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc5c650 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc5c650 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0x1fc711e0 Enter id='' type=3 loc=0x1fc711e0 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x1fc7ee20) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1fc57530) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x1fc5f4e0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x1fc5ca20) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x1fc565a0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x1fc5c7a0) stdsoap2.c(5406): free(0x1fc5f880) stdsoap2.c(5405): free(0x1fc5ea10) stdsoap2.c(5406): free(0x1fc5c390) stdsoap2.c(5411): free(0x1fc603f0) stdsoap2.c(5422): free(0x1fc5f7e0) stdsoap2.c(5428): free(0x1fc5f380) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1fc711e0) stdsoap2.c(4857): free(0x1fc5c650) stdsoap2.c(4857): free(0x1fc60660) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x1fc3f4c0) Free logfiles stdsoap2.c(2959): free(0x1fc3f560) stdsoap2.c(2959): free(0x1fc40670) stdsoap2.c(2959): free(0x1fc3f540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x1fc3dcd0 stdsoap2.c(4726): malloc(24) = 0x1fc3dd00 stdsoap2.c(4726): malloc(48) = 0x1fc3ece0 stdsoap2.c(4726): malloc(24) = 0x1fc3ed50 stdsoap2.c(4726): malloc(32) = 0x1fc3eda0 stdsoap2.c(4726): malloc(24) = 0x1fc3ee00 stdsoap2.c(4726): malloc(32) = 0x1fc3ee50 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffedea5930 type=101: not found stdsoap2.c(4149): malloc(1288) = 0x1fc3eeb0 Pointer enter location=0x7fffedea5930 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fffedea5930 type=101 (0 0) Lookup location=0x1fc3dcd0 type=32: not found Pointer enter location=0x1fc3dcd0 array=(nil) size=0 dim=0 type=32 id=2 Reference 0x1fc3dcd0 type=32 (0 0) Lookup location=0x1fc3eda0 type=31: not found Pointer enter location=0x1fc3eda0 array=(nil) size=0 dim=0 type=31 id=3 Reference 0x1fc3eda0 type=31 (0 0) Lookup location=0x1fc35800 type=3: not found Pointer enter location=0x1fc35800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x1fc35800 type=3 (0 0) Lookup location=0x1fc3ee00 type=148: not found Pointer enter location=0x1fc3ee00 array=(nil) size=0 dim=0 type=148 id=5 Reference 0x1fc3ee00 type=148 (0 0) Lookup location=0x7fffedea5af0 type=1: not found Pointer enter location=0x7fffedea5af0 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fffedea5af0 type=1 (0 0) Lookup location=0x2af6a1f090c8 type=131: not found Pointer enter location=0x2af6a1f090c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2af6a1f090c8 type=131 (0 0) Lookup location=0x1fc3ece0 type=28: not found Pointer enter location=0x1fc3ece0 array=(nil) size=0 dim=0 type=28 id=8 Reference 0x1fc3ece0 type=28 (0 0) Lookup location=0x1fc3ee50 type=14: not found Pointer enter location=0x1fc3ee50 array=(nil) size=0 dim=0 type=14 id=9 Reference 0x1fc3ee50 type=14 (0 0) Lookup location=0x2af6a0f0f286 type=3: not found Pointer enter location=0x2af6a0f0f286 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2af6a0f0f286 type=3 (0 0) Lookup location=0x2af6a0f0a205 type=3: not found Pointer enter location=0x2af6a0f0a205 array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2af6a0f0a205 type=3 (0 0) Lookup location=0x2af6a0f0a20d type=3: not found Pointer enter location=0x2af6a0f0a20d array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2af6a0f0a20d type=3 (0 0) Lookup location=0x2af6a0f0a20a type=3: not found Pointer enter location=0x2af6a0f0a20a array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2af6a0f0a20a type=3 (0 0) Lookup location=0x2af6a0f0a212 type=3: not found Pointer enter location=0x2af6a0f0a212 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2af6a0f0a212 type=3 (0 0) Lookup location=0x2af6a0f0a27b type=3: not found Pointer enter location=0x2af6a0f0a27b array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2af6a0f0a27b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x1fc41250 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8c3a0 type=371: not found Embedded_id 0x7fffede8c3a0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fffedea5930 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fffedea5930 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x1fc3dcd0 type=32 id=2 Is embedded? 0 0 Embedded_id 0x1fc3dcd0 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x1fc3eda0 type=31 id=3 Is embedded? 0 0 Embedded_id 0x1fc3eda0 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x1fc35800 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x1fc3ee00 type=148 id=5 Is embedded? 0 0 Embedded_id 0x1fc3ee00 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fffedea5af0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffedea5af0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2af6a1f090c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2af6a1f090c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x1fc3ece0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x1fc3ece0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x1fc3ee50 type=14 id=9 Is embedded? 0 0 Embedded_id 0x1fc3ee50 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af6a0f0f286 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a205 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a20d type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a20a type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a212 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a27b type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=5 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8c3a0 type=371: not found Embedded_id 0x7fffede8c3a0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fffedea5930 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fffedea5930 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x1fc3dcd0 type=32 id=2 Is embedded? 0 0 Embedded_id 0x1fc3dcd0 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x1fc3eda0 type=31 id=3 Is embedded? 0 0 Embedded_id 0x1fc3eda0 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x1fc35800 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x1fc3ee00 type=148 id=5 Is embedded? 0 0 Embedded_id 0x1fc3ee00 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fffedea5af0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffedea5af0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2af6a1f090c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2af6a1f090c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x1fc3ece0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x1fc3ece0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x1fc3ee50 type=14 id=9 Is embedded? 0 0 Embedded_id 0x1fc3ee50 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af6a0f0f286 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a205 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a20d type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a20a type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a212 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a27b type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x1fc41250) Free pointer hashtable stdsoap2.c(4079): free(0x1fc3eeb0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1fc41250 Free ID hashtable Read 1037 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1fc4a7b0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x1fc71690 stdsoap2.c(7219): malloc(64) = 0x1fc4a000 stdsoap2.c(2336): malloc(40) = 0x1fc47850 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x1fc42d50 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc86420 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc60c70 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc47b70 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1fc478c0 stdsoap2.c(7172): malloc(62) = 0x1fc47900 stdsoap2.c(7219): malloc(64) = 0x1fc4a850 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fffedea5990 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x1fc60bb0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc4a5f0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc4a5f0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x1fc71f10 Enter id='' type=3 loc=0x1fc71f10 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc71f50 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1fc60b40 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x1fc47450 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x1fc62970 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x1fc62a70 stdsoap2.c(6963): free(0x1fc71690) stdsoap2.c(4726): malloc(104) = 0x1fc476a0 Enter id='' type=6 loc=0x1fc476a0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc47740 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc47740 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x1fc47450->(nil)) stdsoap2.c(4726): malloc(24) = 0x1fc71b90 First block Copy 8 bytes from 0x1fc47460 to 0x1fc71b90 Next block stdsoap2.c(2026): free(0x1fc47450) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1fc60b40) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x1fc47b70) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1fc60c70) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x1fc86420) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x1fc42d50) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x1fc47850) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x1fc4a850) stdsoap2.c(5406): free(0x1fc47900) stdsoap2.c(5405): free(0x1fc4a000) stdsoap2.c(5406): free(0x1fc4a7b0) stdsoap2.c(5411): free(0x1fc62a70) stdsoap2.c(5422): free(0x1fc478c0) stdsoap2.c(5428): free(0x1fc41250) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1fc71b90) stdsoap2.c(4857): free(0x1fc47740) stdsoap2.c(4857): free(0x1fc476a0) stdsoap2.c(4857): free(0x1fc62970) stdsoap2.c(4857): free(0x1fc71f50) stdsoap2.c(4857): free(0x1fc71f10) stdsoap2.c(4857): free(0x1fc4a5f0) stdsoap2.c(4857): free(0x1fc60bb0) stdsoap2.c(4857): free(0x1fc3ee50) stdsoap2.c(4857): free(0x1fc3ee00) stdsoap2.c(4857): free(0x1fc3eda0) stdsoap2.c(4857): free(0x1fc3ed50) stdsoap2.c(4857): free(0x1fc3ece0) stdsoap2.c(4857): free(0x1fc3dd00) stdsoap2.c(4857): free(0x1fc3dcd0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x1fc35cd0) Free logfiles stdsoap2.c(2959): free(0x1fc3f540) stdsoap2.c(2959): free(0x1fc40670) stdsoap2.c(2959): free(0x1fc3f560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffede8c480 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x1fc5ae90 Pointer enter location=0x7fffede8c480 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fffede8c480 type=103 (0 0) Lookup location=0x1fc47850 type=3: not found Pointer enter location=0x1fc47850 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x1fc47850 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x1fc5b3a0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8c410 type=377: not found Embedded_id 0x7fffede8c410 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffede8c480 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffede8c480 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x1fc47850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8c410 type=377: not found Embedded_id 0x7fffede8c410 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffede8c480 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffede8c480 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x1fc47850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x1fc5b3a0) Free pointer hashtable stdsoap2.c(4079): free(0x1fc5ae90) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1fc75a70 Free ID hashtable Read 1221 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1103 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1fc47020 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x1fc46ba0 stdsoap2.c(7219): malloc(64) = 0x1fc849f0 stdsoap2.c(2336): malloc(40) = 0x1fc72400 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x1fc440b0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc46c20 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc724c0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc85040 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1fc47090 stdsoap2.c(7172): malloc(62) = 0x1fc86600 stdsoap2.c(7219): malloc(64) = 0x1fc46d90 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fffede8c4a0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x1fc43ed0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc748b0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc748b0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc74910 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1fc3b4c0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x1fc723c0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x1fc43d20 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x1fc751c0 stdsoap2.c(6963): free(0x1fc46ba0) stdsoap2.c(4726): malloc(104) = 0x1fc76c50 Enter id='' type=6 loc=0x1fc76c50 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc76cf0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc76cf0 size=4 level=0 Element content value='SRM_SPACE_AVAILABLE' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x1fc46cf0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x1fc722b0 Element content value='7199' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x1fc74e40 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x1fc721e0 Enter id='' type=6 loc=0x1fc721e0 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x1fc723c0->(nil)) stdsoap2.c(4726): malloc(24) = 0x1fc86650 First block Copy 8 bytes from 0x1fc723d0 to 0x1fc86650 Next block stdsoap2.c(2026): free(0x1fc723c0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1fc3b4c0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x1fc85040) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1fc724c0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x1fc46c20) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x1fc440b0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x1fc72400) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x1fc46d90) stdsoap2.c(5406): free(0x1fc86600) stdsoap2.c(5405): free(0x1fc849f0) stdsoap2.c(5406): free(0x1fc47020) stdsoap2.c(5411): free(0x1fc751c0) stdsoap2.c(5422): free(0x1fc47090) stdsoap2.c(5428): free(0x1fc75a70) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1fc86650) stdsoap2.c(4857): free(0x1fc721e0) stdsoap2.c(4857): free(0x1fc74e40) stdsoap2.c(4857): free(0x1fc722b0) stdsoap2.c(4857): free(0x1fc46cf0) stdsoap2.c(4857): free(0x1fc76cf0) stdsoap2.c(4857): free(0x1fc76c50) stdsoap2.c(4857): free(0x1fc43d20) stdsoap2.c(4857): free(0x1fc74910) stdsoap2.c(4857): free(0x1fc748b0) stdsoap2.c(4857): free(0x1fc43ed0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x1fc7edf0) Free logfiles stdsoap2.c(2959): free(0x1fc3f560) stdsoap2.c(2959): free(0x1fc40670) stdsoap2.c(2959): free(0x1fc3f540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x1fc5e860 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffedea62f0 type=111: not found stdsoap2.c(4149): malloc(1288) = 0x1fc65da0 Pointer enter location=0x7fffedea62f0 array=(nil) size=0 dim=0 type=111 id=1 Reference 0x7fffedea62f0 type=111 (0 0) Lookup location=0x1fc47850 type=3: not found Pointer enter location=0x1fc47850 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x1fc47850 type=3 (0 0) Lookup location=0x1fc5e860 type=27: not found Pointer enter location=0x1fc5e860 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x1fc5e860 type=27 (0 0) Lookup location=0x1fc35800 type=3: not found Pointer enter location=0x1fc35800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x1fc35800 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x1fc5e8f0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8cd90 type=401: not found Embedded_id 0x7fffede8cd90 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fffedea62f0 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fffedea62f0 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x1fc47850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x1fc5e860 type=27 id=3 Is embedded? 0 0 Embedded_id 0x1fc5e860 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x1fc35800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=720 New count is 720 bytes Begin send phase (socket=5 mode=0x1 count=720) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8cd90 type=401: not found Embedded_id 0x7fffede8cd90 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fffedea62f0 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fffedea62f0 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x1fc47850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x1fc5e860 type=27 id=3 Is embedded? 0 0 Embedded_id 0x1fc5e860 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x1fc35800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x1fc5e8f0) Free pointer hashtable stdsoap2.c(4079): free(0x1fc65da0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1fc5e8f0 Free ID hashtable Read 938 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 821 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1fc6f730 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x1fc701a0 stdsoap2.c(7219): malloc(64) = 0x1fc706f0 stdsoap2.c(2336): malloc(40) = 0x1fc6c7d0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x1fc67cd0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc6cac0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc8f080 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc6c840 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1fc6f7a0 stdsoap2.c(7172): malloc(62) = 0x1fc6f7e0 stdsoap2.c(7219): malloc(64) = 0x1fc70660 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPutDoneResponse' 'srm2:srmPutDoneResponse' Begin element found (level=3) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' Enter id='' type=396 loc=0x7fffedea6310 size=8 level=0 Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Reverting last element (level=3) Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Enter id='' type=112 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc81680 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc816e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc816e0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc6f570 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1fc705f0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x1fc6c3d0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc81fc0 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x1fc729b0 stdsoap2.c(6963): free(0x1fc701a0) stdsoap2.c(4726): malloc(104) = 0x1fc72a40 Enter id='' type=6 loc=0x1fc72a40 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc72b10 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc72b10 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x1fc6c3d0->(nil)) stdsoap2.c(4726): malloc(24) = 0x1fc81c10 First block Copy 8 bytes from 0x1fc6c3e0 to 0x1fc81c10 Next block stdsoap2.c(2026): free(0x1fc6c3d0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1fc705f0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPutDoneResponse'='srmPutDoneResponse' End element found (level=2) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x1fc6c840) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1fc8f080) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x1fc6cac0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x1fc67cd0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x1fc6c7d0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x1fc70660) stdsoap2.c(5406): free(0x1fc6f7e0) stdsoap2.c(5405): free(0x1fc706f0) stdsoap2.c(5406): free(0x1fc6f730) stdsoap2.c(5411): free(0x1fc729b0) stdsoap2.c(5422): free(0x1fc6f7a0) stdsoap2.c(5428): free(0x1fc5e8f0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1fc81c10) stdsoap2.c(4857): free(0x1fc72b10) stdsoap2.c(4857): free(0x1fc72a40) stdsoap2.c(4857): free(0x1fc81fc0) stdsoap2.c(4857): free(0x1fc6f570) stdsoap2.c(4857): free(0x1fc816e0) stdsoap2.c(4857): free(0x1fc81680) stdsoap2.c(4857): free(0x1fc5e860) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x1fc35860) Free logfiles stdsoap2.c(2959): free(0x1fc44120) stdsoap2.c(2959): free(0x1fc44140) stdsoap2.c(2959): free(0x1fc44160) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x1fc47850 stdsoap2.c(4726): malloc(24) = 0x1fc650c0 stdsoap2.c(4726): malloc(48) = 0x1fc3f500 stdsoap2.c(4726): malloc(24) = 0x1fc357e0 stdsoap2.c(4726): malloc(32) = 0x1fc5aab0 stdsoap2.c(4726): malloc(32) = 0x1fc35790 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffedea5950 type=93: not found stdsoap2.c(4149): malloc(1288) = 0x1fc6caf0 Pointer enter location=0x7fffedea5950 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fffedea5950 type=93 (0 0) Lookup location=0x1fc47850 type=30: not found Pointer enter location=0x1fc47850 array=(nil) size=0 dim=0 type=30 id=2 Reference 0x1fc47850 type=30 (0 0) Lookup location=0x1fc5aab0 type=29: not found Pointer enter location=0x1fc5aab0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0x1fc5aab0 type=29 (0 0) Lookup location=0x1fc35800 type=3: not found Pointer enter location=0x1fc35800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x1fc35800 type=3 (0 0) Lookup location=0x2af6a1f090d4 type=131: not found Pointer enter location=0x2af6a1f090d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2af6a1f090d4 type=131 (0 0) Lookup location=0x7fffedea5af0 type=1: not found Pointer enter location=0x7fffedea5af0 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fffedea5af0 type=1 (0 0) Lookup location=0x1fc3f500 type=28: not found Pointer enter location=0x1fc3f500 array=(nil) size=0 dim=0 type=28 id=7 Reference 0x1fc3f500 type=28 (0 0) Lookup location=0x1fc35790 type=14: not found Pointer enter location=0x1fc35790 array=(nil) size=0 dim=0 type=14 id=8 Reference 0x1fc35790 type=14 (0 0) Lookup location=0x2af6a0f0f286 type=3: not found Pointer enter location=0x2af6a0f0f286 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2af6a0f0f286 type=3 (0 0) Lookup location=0x2af6a0f0a205 type=3: not found Pointer enter location=0x2af6a0f0a205 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2af6a0f0a205 type=3 (0 0) Lookup location=0x2af6a0f0a20d type=3: not found Pointer enter location=0x2af6a0f0a20d array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2af6a0f0a20d type=3 (0 0) Lookup location=0x2af6a0f0a20a type=3: not found Pointer enter location=0x2af6a0f0a20a array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2af6a0f0a20a type=3 (0 0) Lookup location=0x2af6a0f0a212 type=3: not found Pointer enter location=0x2af6a0f0a212 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2af6a0f0a212 type=3 (0 0) Lookup location=0x2af6a0f0a27b type=3: not found Pointer enter location=0x2af6a0f0a27b array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2af6a0f0a27b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x1fc35860 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8c3d0 type=347: not found Embedded_id 0x7fffede8c3d0 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fffedea5950 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fffedea5950 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x1fc47850 type=30 id=2 Is embedded? 0 0 Embedded_id 0x1fc47850 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x1fc5aab0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x1fc5aab0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x1fc35800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2af6a1f090d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2af6a1f090d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fffedea5af0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffedea5af0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x1fc3f500 type=28 id=7 Is embedded? 0 0 Embedded_id 0x1fc3f500 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x1fc35790 type=14 id=8 Is embedded? 0 0 Embedded_id 0x1fc35790 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af6a0f0f286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a20d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a20a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a27b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=5 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8c3d0 type=347: not found Embedded_id 0x7fffede8c3d0 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fffedea5950 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fffedea5950 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x1fc47850 type=30 id=2 Is embedded? 0 0 Embedded_id 0x1fc47850 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x1fc5aab0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x1fc5aab0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x1fc35800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2af6a1f090d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2af6a1f090d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fffedea5af0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffedea5af0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x1fc3f500 type=28 id=7 Is embedded? 0 0 Embedded_id 0x1fc3f500 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x1fc35790 type=14 id=8 Is embedded? 0 0 Embedded_id 0x1fc35790 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af6a0f0f286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a20d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a20a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af6a0f0a27b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x1fc35860) Free pointer hashtable stdsoap2.c(4079): free(0x1fc6caf0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1fc35860 Free ID hashtable Read 1049 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1fc6ac50 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x1fc6b6c0 stdsoap2.c(7219): malloc(64) = 0x1fc6bc10 stdsoap2.c(2336): malloc(40) = 0x1fc67cf0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x1fc6daa0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc67fe0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc8fa10 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc67d60 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1fc6acc0 stdsoap2.c(7172): malloc(62) = 0x1fc6ad00 stdsoap2.c(7219): malloc(64) = 0x1fc6bb80 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fffedea59a0 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x1fc82010 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc6aa60 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc6aa60 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x1fc6aac0 Enter id='' type=3 loc=0x1fc6aac0 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc82950 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1fc6bb10 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x1fc678f0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x1fc73370 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x1fc73470 stdsoap2.c(6963): free(0x1fc6b6c0) stdsoap2.c(4726): malloc(104) = 0x1fc67b40 Enter id='' type=6 loc=0x1fc67b40 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc67be0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc67be0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x1fc678f0->(nil)) stdsoap2.c(4726): malloc(24) = 0x1fc825a0 First block Copy 8 bytes from 0x1fc67900 to 0x1fc825a0 Next block stdsoap2.c(2026): free(0x1fc678f0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1fc6bb10) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x1fc67d60) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1fc8fa10) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x1fc67fe0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x1fc6daa0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x1fc67cf0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x1fc6bb80) stdsoap2.c(5406): free(0x1fc6ad00) stdsoap2.c(5405): free(0x1fc6bc10) stdsoap2.c(5406): free(0x1fc6ac50) stdsoap2.c(5411): free(0x1fc73470) stdsoap2.c(5422): free(0x1fc6acc0) stdsoap2.c(5428): free(0x1fc35860) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1fc825a0) stdsoap2.c(4857): free(0x1fc67be0) stdsoap2.c(4857): free(0x1fc67b40) stdsoap2.c(4857): free(0x1fc73370) stdsoap2.c(4857): free(0x1fc82950) stdsoap2.c(4857): free(0x1fc6aac0) stdsoap2.c(4857): free(0x1fc6aa60) stdsoap2.c(4857): free(0x1fc82010) stdsoap2.c(4857): free(0x1fc35790) stdsoap2.c(4857): free(0x1fc5aab0) stdsoap2.c(4857): free(0x1fc357e0) stdsoap2.c(4857): free(0x1fc3f500) stdsoap2.c(4857): free(0x1fc650c0) stdsoap2.c(4857): free(0x1fc47850) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x1fc66d40) Free logfiles stdsoap2.c(2959): free(0x1fc650e0) stdsoap2.c(2959): free(0x1fc66600) stdsoap2.c(2959): free(0x1fc5aa60) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffede8c480 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x1fc6caf0 Pointer enter location=0x7fffede8c480 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fffede8c480 type=95 (0 0) Lookup location=0x1fc67cf0 type=3: not found Pointer enter location=0x1fc67cf0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x1fc67cf0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x1fc35860 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8c410 type=353: not found Embedded_id 0x7fffede8c410 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffede8c480 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffede8c480 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x1fc67cf0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8c410 type=353: not found Embedded_id 0x7fffede8c410 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffede8c480 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffede8c480 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x1fc67cf0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x1fc35860) Free pointer hashtable stdsoap2.c(4079): free(0x1fc6caf0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1fc35860 Free ID hashtable Read 1076 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 959 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1fc70a10 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x1fc71480 stdsoap2.c(7219): malloc(64) = 0x1fc719d0 stdsoap2.c(2336): malloc(40) = 0x1fc6db30 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x1fc68e80 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc6de20 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc902c0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc6dba0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1fc70a80 stdsoap2.c(7172): malloc(62) = 0x1fc70ac0 stdsoap2.c(7219): malloc(64) = 0x1fc71940 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fffede8c4a0 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x1fc70850 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc708b0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc708b0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc83170 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1fc718d0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x1fc6d730 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x1fc82800 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x1fc73ba0 stdsoap2.c(6963): free(0x1fc71480) stdsoap2.c(4726): malloc(104) = 0x1fc73cd0 Enter id='' type=6 loc=0x1fc73cd0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x1fc82dc0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc82880 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc82880 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x1fc73c90 Element content value='0' End element found (level=6) 'remainingPinTime'='remainingPinTime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x1fc6d730->(nil)) stdsoap2.c(4726): malloc(24) = 0x1fc73dd0 First block Copy 8 bytes from 0x1fc6d740 to 0x1fc73dd0 Next block stdsoap2.c(2026): free(0x1fc6d730) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1fc718d0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x1fc6dba0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1fc902c0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x1fc6de20) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x1fc68e80) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x1fc6db30) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x1fc71940) stdsoap2.c(5406): free(0x1fc70ac0) stdsoap2.c(5405): free(0x1fc719d0) stdsoap2.c(5406): free(0x1fc70a10) stdsoap2.c(5411): free(0x1fc73ba0) stdsoap2.c(5422): free(0x1fc70a80) stdsoap2.c(5428): free(0x1fc35860) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1fc73dd0) stdsoap2.c(4857): free(0x1fc73c90) stdsoap2.c(4857): free(0x1fc82880) stdsoap2.c(4857): free(0x1fc82dc0) stdsoap2.c(4857): free(0x1fc73cd0) stdsoap2.c(4857): free(0x1fc82800) stdsoap2.c(4857): free(0x1fc83170) stdsoap2.c(4857): free(0x1fc708b0) stdsoap2.c(4857): free(0x1fc70850) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x1fc67e60) Free logfiles stdsoap2.c(2959): free(0x1fc5aa60) stdsoap2.c(2959): free(0x1fc66600) stdsoap2.c(2959): free(0x1fc650e0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffede8c480 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x1fc68070 Pointer enter location=0x7fffede8c480 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fffede8c480 type=95 (0 0) Lookup location=0x1fc67cf0 type=3: not found Pointer enter location=0x1fc67cf0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x1fc67cf0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x1fc35860 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8c410 type=353: not found Embedded_id 0x7fffede8c410 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffede8c480 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffede8c480 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x1fc67cf0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8c410 type=353: not found Embedded_id 0x7fffede8c410 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffede8c480 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffede8c480 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x1fc67cf0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x1fc35860) Free pointer hashtable stdsoap2.c(4079): free(0x1fc68070) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1fc35860 Free ID hashtable Read 1177 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1059 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1fc6c180 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x1fc6bd20 stdsoap2.c(7219): malloc(64) = 0x1fc69e70 stdsoap2.c(2336): malloc(40) = 0x1fc6c450 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x1fc6c4c0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc70b10 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc70aa0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc92d70 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1fc70a00 stdsoap2.c(7172): malloc(62) = 0x1fc70ca0 stdsoap2.c(7219): malloc(64) = 0x1fc70800 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fffede8c4a0 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x1fc6c910 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc6c7d0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc6c7d0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc6c830 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1fc6c730 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x1fc6c130 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x1fc6c640 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x1fc89cb0 stdsoap2.c(6963): free(0x1fc6bd20) stdsoap2.c(4726): malloc(104) = 0x1fc6c690 Enter id='' type=6 loc=0x1fc6c690 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x1fc70bf0 Element content value='65536' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc8a650 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc8a650 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x1fc6bf00 Element content value='7199' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x1fc73e00 Enter id='' type=6 loc=0x1fc73e00 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x1fc6c130->(nil)) stdsoap2.c(4726): malloc(24) = 0x1fc6e5d0 First block Copy 8 bytes from 0x1fc6c140 to 0x1fc6e5d0 Next block stdsoap2.c(2026): free(0x1fc6c130) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1fc6c730) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x1fc92d70) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1fc70aa0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x1fc70b10) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x1fc6c4c0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x1fc6c450) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x1fc70800) stdsoap2.c(5406): free(0x1fc70ca0) stdsoap2.c(5405): free(0x1fc69e70) stdsoap2.c(5406): free(0x1fc6c180) stdsoap2.c(5411): free(0x1fc89cb0) stdsoap2.c(5422): free(0x1fc70a00) stdsoap2.c(5428): free(0x1fc35860) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1fc6e5d0) stdsoap2.c(4857): free(0x1fc73e00) stdsoap2.c(4857): free(0x1fc6bf00) stdsoap2.c(4857): free(0x1fc8a650) stdsoap2.c(4857): free(0x1fc70bf0) stdsoap2.c(4857): free(0x1fc6c690) stdsoap2.c(4857): free(0x1fc6c640) stdsoap2.c(4857): free(0x1fc6c830) stdsoap2.c(4857): free(0x1fc6c7d0) stdsoap2.c(4857): free(0x1fc6c910) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x1fc73d40) Free logfiles stdsoap2.c(2959): free(0x1fc650e0) stdsoap2.c(2959): free(0x1fc66600) stdsoap2.c(2959): free(0x1fc5aa60) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x1fc65da0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffedea62f0 type=109: not found stdsoap2.c(4149): malloc(1288) = 0x1fc6a2b0 Pointer enter location=0x7fffedea62f0 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fffedea62f0 type=109 (0 0) Lookup location=0x1fc67cf0 type=3: not found Pointer enter location=0x1fc67cf0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x1fc67cf0 type=3 (0 0) Lookup location=0x1fc65da0 type=27: not found Pointer enter location=0x1fc65da0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x1fc65da0 type=27 (0 0) Lookup location=0x1fc35800 type=3: not found Pointer enter location=0x1fc35800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x1fc35800 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x1fc6c660 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8cd90 type=395: not found Embedded_id 0x7fffede8cd90 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fffedea62f0 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fffedea62f0 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x1fc67cf0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x1fc65da0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x1fc65da0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x1fc35800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=5 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffede8cd90 type=395: not found Embedded_id 0x7fffede8cd90 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fffedea62f0 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fffedea62f0 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x1fc67cf0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x1fc65da0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x1fc65da0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x1fc35800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x1fc6c660) Free pointer hashtable stdsoap2.c(4079): free(0x1fc6a2b0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1fc88750 Free ID hashtable Read 958 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1fc88560 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x1fc6ff50 stdsoap2.c(7219): malloc(64) = 0x1fc81a50 stdsoap2.c(2336): malloc(40) = 0x1fc88160 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x1fc8e5f0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc6df60 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc87a20 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1fc88f70 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1fc70470 stdsoap2.c(7172): malloc(62) = 0x1fc6c040 stdsoap2.c(7219): malloc(64) = 0x1fc87e40 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fffedea6310 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc6c0c0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc6c660 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc6c660 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc6c6c0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1fc68640 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x1fc6c1e0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc88430 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x1fc72400 stdsoap2.c(6963): free(0x1fc6ff50) stdsoap2.c(4726): malloc(104) = 0x1fc72490 Enter id='' type=6 loc=0x1fc72490 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1fc72560 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1fc72560 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x1fc6c1e0->(nil)) stdsoap2.c(4726): malloc(24) = 0x1fc880c0 First block Copy 8 bytes from 0x1fc6c1f0 to 0x1fc880c0 Next block stdsoap2.c(2026): free(0x1fc6c1e0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1fc68640) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x1fc88f70) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1fc87a20) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x1fc6df60) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x1fc8e5f0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x1fc88160) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x1fc87e40) stdsoap2.c(5406): free(0x1fc6c040) stdsoap2.c(5405): free(0x1fc81a50) stdsoap2.c(5406): free(0x1fc88560) stdsoap2.c(5411): free(0x1fc72400) stdsoap2.c(5422): free(0x1fc70470) stdsoap2.c(5428): free(0x1fc88750) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1fc880c0) stdsoap2.c(4857): free(0x1fc72560) stdsoap2.c(4857): free(0x1fc72490) stdsoap2.c(4857): free(0x1fc88430) stdsoap2.c(4857): free(0x1fc6c6c0) stdsoap2.c(4857): free(0x1fc6c660) stdsoap2.c(4857): free(0x1fc6c0c0) stdsoap2.c(4857): free(0x1fc65da0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x1fc6cab0) Free logfiles stdsoap2.c(2959): free(0x1fc6dc20) stdsoap2.c(2959): free(0x1fc66600) stdsoap2.c(2959): free(0x1fc6cfe0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xcc16b90 stdsoap2.c(4726): malloc(24) = 0xcc16bc0 stdsoap2.c(4726): malloc(48) = 0xcc18610 stdsoap2.c(4726): malloc(24) = 0xcc18680 stdsoap2.c(4726): malloc(32) = 0xcc186d0 stdsoap2.c(4726): malloc(32) = 0xcc18730 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff23fcd3f0 type=93: not found stdsoap2.c(4149): malloc(1288) = 0xcc18790 Pointer enter location=0x7fff23fcd3f0 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fff23fcd3f0 type=93 (0 0) Lookup location=0xcc16b90 type=30: not found Pointer enter location=0xcc16b90 array=(nil) size=0 dim=0 type=30 id=2 Reference 0xcc16b90 type=30 (0 0) Lookup location=0xcc186d0 type=29: not found Pointer enter location=0xcc186d0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0xcc186d0 type=29 (0 0) Lookup location=0xcbfe800 type=3: not found Pointer enter location=0xcbfe800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xcbfe800 type=3 (0 0) Lookup location=0x2ab27d33f0d4 type=131: not found Pointer enter location=0x2ab27d33f0d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2ab27d33f0d4 type=131 (0 0) Lookup location=0x7fff23fcd590 type=1: not found Pointer enter location=0x7fff23fcd590 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff23fcd590 type=1 (0 0) Lookup location=0xcc18610 type=28: not found Pointer enter location=0xcc18610 array=(nil) size=0 dim=0 type=28 id=7 Reference 0xcc18610 type=28 (0 0) Lookup location=0xcc18730 type=14: not found Pointer enter location=0xcc18730 array=(nil) size=0 dim=0 type=14 id=8 Reference 0xcc18730 type=14 (0 0) Lookup location=0x2ab27c345286 type=3: not found Pointer enter location=0x2ab27c345286 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2ab27c345286 type=3 (0 0) Lookup location=0x2ab27c340205 type=3: not found Pointer enter location=0x2ab27c340205 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2ab27c340205 type=3 (0 0) Lookup location=0x2ab27c34020d type=3: not found Pointer enter location=0x2ab27c34020d array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2ab27c34020d type=3 (0 0) Lookup location=0x2ab27c34020a type=3: not found Pointer enter location=0x2ab27c34020a array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2ab27c34020a type=3 (0 0) Lookup location=0x2ab27c340212 type=3: not found Pointer enter location=0x2ab27c340212 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2ab27c340212 type=3 (0 0) Lookup location=0x2ab27c34027b type=3: not found Pointer enter location=0x2ab27c34027b array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2ab27c34027b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xcc18cd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff23fb3e70 type=347: not found Embedded_id 0x7fff23fb3e70 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff23fcd3f0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff23fcd3f0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xcc16b90 type=30 id=2 Is embedded? 0 0 Embedded_id 0xcc16b90 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xcc186d0 type=29 id=3 Is embedded? 0 0 Embedded_id 0xcc186d0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xcbfe800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2ab27d33f0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2ab27d33f0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff23fcd590 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff23fcd590 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xcc18610 type=28 id=7 Is embedded? 0 0 Embedded_id 0xcc18610 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xcc18730 type=14 id=8 Is embedded? 0 0 Embedded_id 0xcc18730 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2ab27c345286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ab27c340205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ab27c34020d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ab27c34020a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ab27c340212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ab27c34027b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=5 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff23fb3e70 type=347: not found Embedded_id 0x7fff23fb3e70 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff23fcd3f0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff23fcd3f0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xcc16b90 type=30 id=2 Is embedded? 0 0 Embedded_id 0xcc16b90 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xcc186d0 type=29 id=3 Is embedded? 0 0 Embedded_id 0xcc186d0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xcbfe800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2ab27d33f0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2ab27d33f0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff23fcd590 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff23fcd590 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xcc18610 type=28 id=7 Is embedded? 0 0 Embedded_id 0xcc18610 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xcc18730 type=14 id=8 Is embedded? 0 0 Embedded_id 0xcc18730 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2ab27c345286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ab27c340205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ab27c34020d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ab27c34020a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ab27c340212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2ab27c34027b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xcc18cd0) Free pointer hashtable stdsoap2.c(4079): free(0xcc18790) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xcc18cd0 Free ID hashtable Read 1049 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xcc20080 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xcc240e0 stdsoap2.c(7219): malloc(64) = 0xcc22700 stdsoap2.c(2336): malloc(40) = 0xcc206e0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xcc231a0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xcc1b200 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xcc42ab0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xcc234a0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xcc23540 stdsoap2.c(7172): malloc(62) = 0xcc20460 stdsoap2.c(7219): malloc(64) = 0xcc202e0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fff23fcd440 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xcc34ea0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xcc34ee0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xcc34ee0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xcc357e0 Enter id='' type=3 loc=0xcc357e0 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xcc35850 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xcc24350 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xcc1ff70 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xcc23100 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xcc26230 stdsoap2.c(6963): free(0xcc240e0) stdsoap2.c(4726): malloc(104) = 0xcc26330 Enter id='' type=6 loc=0xcc26330 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xcc263d0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xcc263d0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xcc1ff70->(nil)) stdsoap2.c(4726): malloc(24) = 0xcc35460 First block Copy 8 bytes from 0xcc1ff80 to 0xcc35460 Next block stdsoap2.c(2026): free(0xcc1ff70) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xcc24350) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xcc234a0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xcc42ab0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xcc1b200) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xcc231a0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xcc206e0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xcc202e0) stdsoap2.c(5406): free(0xcc20460) stdsoap2.c(5405): free(0xcc22700) stdsoap2.c(5406): free(0xcc20080) stdsoap2.c(5411): free(0xcc26230) stdsoap2.c(5422): free(0xcc23540) stdsoap2.c(5428): free(0xcc18cd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xcc35460) stdsoap2.c(4857): free(0xcc263d0) stdsoap2.c(4857): free(0xcc26330) stdsoap2.c(4857): free(0xcc23100) stdsoap2.c(4857): free(0xcc35850) stdsoap2.c(4857): free(0xcc357e0) stdsoap2.c(4857): free(0xcc34ee0) stdsoap2.c(4857): free(0xcc34ea0) stdsoap2.c(4857): free(0xcc18730) stdsoap2.c(4857): free(0xcc186d0) stdsoap2.c(4857): free(0xcc18680) stdsoap2.c(4857): free(0xcc18610) stdsoap2.c(4857): free(0xcc16bc0) stdsoap2.c(4857): free(0xcc16b90) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xcc084c0) Free logfiles stdsoap2.c(2959): free(0xcc08560) stdsoap2.c(2959): free(0xcc09670) stdsoap2.c(2959): free(0xcc08540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff23fb3f20 type=95: not found stdsoap2.c(4149): malloc(1288) = 0xcc046e0 Pointer enter location=0x7fff23fb3f20 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff23fb3f20 type=95 (0 0) Lookup location=0xcc206e0 type=3: not found Pointer enter location=0xcc206e0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xcc206e0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xcc04bf0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff23fb3eb0 type=353: not found Embedded_id 0x7fff23fb3eb0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff23fb3f20 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff23fb3f20 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xcc206e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff23fb3eb0 type=353: not found Embedded_id 0x7fff23fb3eb0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff23fb3f20 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff23fb3f20 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xcc206e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xcc04bf0) Free pointer hashtable stdsoap2.c(4079): free(0xcc046e0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xcc2e140 Free ID hashtable Read 1106 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 989 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xcc09840 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xcc3c840 stdsoap2.c(7219): malloc(64) = 0xcc0a390 stdsoap2.c(2336): malloc(40) = 0xcc098c0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xcc3cb00 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xcc456a0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xcc46b50 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xcc3f210 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xcc3c520 stdsoap2.c(7172): malloc(62) = 0xcc45560 stdsoap2.c(7219): malloc(64) = 0xcc2d870 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff23fb3f40 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xcc3ca10 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xcc0a8b0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xcc0a8b0 size=4 level=0 Element content value='SRM_FAILURE' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(40) = 0xcc0a910 Enter id='' type=3 loc=0xcc0a910 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xcc09f90 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xcc3c8f0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xcc06730 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xcc0a0d0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xcc09d90 stdsoap2.c(6963): free(0xcc3c840) stdsoap2.c(4726): malloc(104) = 0xcc0e160 Enter id='' type=6 loc=0xcc0e160 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xcc0a870 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xcc0e230 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xcc0e230 size=4 level=0 Element content value='SRM_INVALID_PATH' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xcc09910 Element content value='0' End element found (level=6) 'remainingPinTime'='remainingPinTime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xcc06730->(nil)) stdsoap2.c(4726): malloc(24) = 0xcc09ec0 First block Copy 8 bytes from 0xcc06740 to 0xcc09ec0 Next block stdsoap2.c(2026): free(0xcc06730) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xcc3c8f0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xcc3f210) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xcc46b50) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xcc456a0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xcc3cb00) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xcc098c0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xcc2d870) stdsoap2.c(5406): free(0xcc45560) stdsoap2.c(5405): free(0xcc0a390) stdsoap2.c(5406): free(0xcc09840) stdsoap2.c(5411): free(0xcc09d90) stdsoap2.c(5422): free(0xcc3c520) stdsoap2.c(5428): free(0xcc2e140) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xcc09ec0) stdsoap2.c(4857): free(0xcc09910) stdsoap2.c(4857): free(0xcc0e230) stdsoap2.c(4857): free(0xcc0a870) stdsoap2.c(4857): free(0xcc0e160) stdsoap2.c(4857): free(0xcc0a0d0) stdsoap2.c(4857): free(0xcc09f90) stdsoap2.c(4857): free(0xcc0a910) stdsoap2.c(4857): free(0xcc0a8b0) stdsoap2.c(4857): free(0xcc3ca10) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xcbfec70) Free logfiles stdsoap2.c(2959): free(0xcc08540) stdsoap2.c(2959): free(0xcc09670) stdsoap2.c(2959): free(0xcc08560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xf5a2b90 stdsoap2.c(4726): malloc(24) = 0xf5a2bc0 stdsoap2.c(4726): malloc(48) = 0xf5a4610 stdsoap2.c(4726): malloc(24) = 0xf5a4680 stdsoap2.c(4726): malloc(32) = 0xf5a46d0 stdsoap2.c(4726): malloc(32) = 0xf5a4730 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff530d9a00 type=93: not found stdsoap2.c(4149): malloc(1288) = 0xf5a4790 Pointer enter location=0x7fff530d9a00 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fff530d9a00 type=93 (0 0) Lookup location=0xf5a2b90 type=30: not found Pointer enter location=0xf5a2b90 array=(nil) size=0 dim=0 type=30 id=2 Reference 0xf5a2b90 type=30 (0 0) Lookup location=0xf5a46d0 type=29: not found Pointer enter location=0xf5a46d0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0xf5a46d0 type=29 (0 0) Lookup location=0xf58a800 type=3: not found Pointer enter location=0xf58a800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xf58a800 type=3 (0 0) Lookup location=0x2b97c18790d4 type=131: not found Pointer enter location=0x2b97c18790d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2b97c18790d4 type=131 (0 0) Lookup location=0x7fff530d9ba0 type=1: not found Pointer enter location=0x7fff530d9ba0 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff530d9ba0 type=1 (0 0) Lookup location=0xf5a4610 type=28: not found Pointer enter location=0xf5a4610 array=(nil) size=0 dim=0 type=28 id=7 Reference 0xf5a4610 type=28 (0 0) Lookup location=0xf5a4730 type=14: not found Pointer enter location=0xf5a4730 array=(nil) size=0 dim=0 type=14 id=8 Reference 0xf5a4730 type=14 (0 0) Lookup location=0x2b97c087f286 type=3: not found Pointer enter location=0x2b97c087f286 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2b97c087f286 type=3 (0 0) Lookup location=0x2b97c087a205 type=3: not found Pointer enter location=0x2b97c087a205 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b97c087a205 type=3 (0 0) Lookup location=0x2b97c087a20d type=3: not found Pointer enter location=0x2b97c087a20d array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b97c087a20d type=3 (0 0) Lookup location=0x2b97c087a20a type=3: not found Pointer enter location=0x2b97c087a20a array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b97c087a20a type=3 (0 0) Lookup location=0x2b97c087a212 type=3: not found Pointer enter location=0x2b97c087a212 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b97c087a212 type=3 (0 0) Lookup location=0x2b97c087a27b type=3: not found Pointer enter location=0x2b97c087a27b array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b97c087a27b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf5a4cd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff530c0480 type=347: not found Embedded_id 0x7fff530c0480 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff530d9a00 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff530d9a00 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xf5a2b90 type=30 id=2 Is embedded? 0 0 Embedded_id 0xf5a2b90 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xf5a46d0 type=29 id=3 Is embedded? 0 0 Embedded_id 0xf5a46d0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xf58a800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b97c18790d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b97c18790d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff530d9ba0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff530d9ba0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xf5a4610 type=28 id=7 Is embedded? 0 0 Embedded_id 0xf5a4610 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xf5a4730 type=14 id=8 Is embedded? 0 0 Embedded_id 0xf5a4730 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b97c087f286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b97c087a205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b97c087a20d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b97c087a20a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b97c087a212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b97c087a27b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=5 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff530c0480 type=347: not found Embedded_id 0x7fff530c0480 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff530d9a00 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff530d9a00 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xf5a2b90 type=30 id=2 Is embedded? 0 0 Embedded_id 0xf5a2b90 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xf5a46d0 type=29 id=3 Is embedded? 0 0 Embedded_id 0xf5a46d0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xf58a800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b97c18790d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b97c18790d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff530d9ba0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff530d9ba0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xf5a4610 type=28 id=7 Is embedded? 0 0 Embedded_id 0xf5a4610 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xf5a4730 type=14 id=8 Is embedded? 0 0 Embedded_id 0xf5a4730 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b97c087f286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b97c087a205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b97c087a20d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b97c087a20a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b97c087a212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b97c087a27b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf5a4cd0) Free pointer hashtable stdsoap2.c(4079): free(0xf5a4790) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf5a4cd0 Free ID hashtable Read 1049 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf5ac080 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf5b00e0 stdsoap2.c(7219): malloc(64) = 0xf5ae700 stdsoap2.c(2336): malloc(40) = 0xf5ac6e0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf5af1a0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf5a7200 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf5ceab0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf5af4a0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf5af540 stdsoap2.c(7172): malloc(62) = 0xf5ac460 stdsoap2.c(7219): malloc(64) = 0xf5ac2e0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fff530d9a50 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xf5c0ea0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf5c0ee0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf5c0ee0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xf5c17e0 Enter id='' type=3 loc=0xf5c17e0 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf5c1850 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xf5b0350 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xf5abf70 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xf5af100 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xf5b2230 stdsoap2.c(6963): free(0xf5b00e0) stdsoap2.c(4726): malloc(104) = 0xf5b2330 Enter id='' type=6 loc=0xf5b2330 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf5b23d0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf5b23d0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xf5abf70->(nil)) stdsoap2.c(4726): malloc(24) = 0xf5c1460 First block Copy 8 bytes from 0xf5abf80 to 0xf5c1460 Next block stdsoap2.c(2026): free(0xf5abf70) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xf5b0350) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf5af4a0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf5ceab0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf5a7200) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf5af1a0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf5ac6e0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf5ac2e0) stdsoap2.c(5406): free(0xf5ac460) stdsoap2.c(5405): free(0xf5ae700) stdsoap2.c(5406): free(0xf5ac080) stdsoap2.c(5411): free(0xf5b2230) stdsoap2.c(5422): free(0xf5af540) stdsoap2.c(5428): free(0xf5a4cd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf5c1460) stdsoap2.c(4857): free(0xf5b23d0) stdsoap2.c(4857): free(0xf5b2330) stdsoap2.c(4857): free(0xf5af100) stdsoap2.c(4857): free(0xf5c1850) stdsoap2.c(4857): free(0xf5c17e0) stdsoap2.c(4857): free(0xf5c0ee0) stdsoap2.c(4857): free(0xf5c0ea0) stdsoap2.c(4857): free(0xf5a4730) stdsoap2.c(4857): free(0xf5a46d0) stdsoap2.c(4857): free(0xf5a4680) stdsoap2.c(4857): free(0xf5a4610) stdsoap2.c(4857): free(0xf5a2bc0) stdsoap2.c(4857): free(0xf5a2b90) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf5944c0) Free logfiles stdsoap2.c(2959): free(0xf594560) stdsoap2.c(2959): free(0xf595670) stdsoap2.c(2959): free(0xf594540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff530c0530 type=95: not found stdsoap2.c(4149): malloc(1288) = 0xf5906e0 Pointer enter location=0x7fff530c0530 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff530c0530 type=95 (0 0) Lookup location=0xf5ac6e0 type=3: not found Pointer enter location=0xf5ac6e0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xf5ac6e0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf590bf0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff530c04c0 type=353: not found Embedded_id 0x7fff530c04c0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff530c0530 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff530c0530 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xf5ac6e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff530c04c0 type=353: not found Embedded_id 0x7fff530c04c0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff530c0530 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff530c0530 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xf5ac6e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf590bf0) Free pointer hashtable stdsoap2.c(4079): free(0xf5906e0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf595d60 Free ID hashtable Read 1076 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 959 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf595840 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf5c8840 stdsoap2.c(7219): malloc(64) = 0xf5b9850 stdsoap2.c(2336): malloc(40) = 0xf5958c0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf5c8b00 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf5d1630 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf5d2860 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf596390 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf5c8410 stdsoap2.c(7172): malloc(62) = 0xf5c8520 stdsoap2.c(7219): malloc(64) = 0xf5c89e0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff530c0550 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xf5c8a30 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf5968e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf5968e0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf595f60 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xf5c88f0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xf592730 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xf5960a0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xf59a160 stdsoap2.c(6963): free(0xf5c8840) stdsoap2.c(4726): malloc(104) = 0xf5b9450 Enter id='' type=6 loc=0xf5b9450 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xf596870 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf5b9520 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf5b9520 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xf595910 Element content value='0' End element found (level=6) 'remainingPinTime'='remainingPinTime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xf592730->(nil)) stdsoap2.c(4726): malloc(24) = 0xf595ec0 First block Copy 8 bytes from 0xf592740 to 0xf595ec0 Next block stdsoap2.c(2026): free(0xf592730) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xf5c88f0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf596390) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf5d2860) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf5d1630) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf5c8b00) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf5958c0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf5c89e0) stdsoap2.c(5406): free(0xf5c8520) stdsoap2.c(5405): free(0xf5b9850) stdsoap2.c(5406): free(0xf595840) stdsoap2.c(5411): free(0xf59a160) stdsoap2.c(5422): free(0xf5c8410) stdsoap2.c(5428): free(0xf595d60) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf595ec0) stdsoap2.c(4857): free(0xf595910) stdsoap2.c(4857): free(0xf5b9520) stdsoap2.c(4857): free(0xf596870) stdsoap2.c(4857): free(0xf5b9450) stdsoap2.c(4857): free(0xf5960a0) stdsoap2.c(4857): free(0xf595f60) stdsoap2.c(4857): free(0xf5968e0) stdsoap2.c(4857): free(0xf5c8a30) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf58ac70) Free logfiles stdsoap2.c(2959): free(0xf594540) stdsoap2.c(2959): free(0xf595670) stdsoap2.c(2959): free(0xf594560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff530c0530 type=95: not found stdsoap2.c(4149): malloc(1288) = 0xf5c6f00 Pointer enter location=0x7fff530c0530 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff530c0530 type=95 (0 0) Lookup location=0xf5ac6e0 type=3: not found Pointer enter location=0xf5ac6e0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xf5ac6e0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf5c7410 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff530c04c0 type=353: not found Embedded_id 0x7fff530c04c0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff530c0530 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff530c0530 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xf5ac6e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff530c04c0 type=353: not found Embedded_id 0x7fff530c04c0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff530c0530 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff530c0530 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xf5ac6e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf5c7410) Free pointer hashtable stdsoap2.c(4079): free(0xf5c6f00) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf59b4d0 Free ID hashtable Read 1174 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1056 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf599fe0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf598cc0 stdsoap2.c(7219): malloc(64) = 0xf5a4dc0 stdsoap2.c(2336): malloc(40) = 0xf5980e0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf5d4150 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf5a4e40 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf59fdb0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf598880 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf5ba590 stdsoap2.c(7172): malloc(62) = 0xf5a1d00 stdsoap2.c(7219): malloc(64) = 0xf5985a0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff530c0550 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xf5985f0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf598750 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf598750 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf5a5060 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xf5a1ef0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xf5a4eb0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xf5a4f80 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xf5a2de0 stdsoap2.c(6963): free(0xf598cc0) stdsoap2.c(4726): malloc(104) = 0xf5bae90 Enter id='' type=6 loc=0xf5bae90 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xf599f30 Element content value='12' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf5b00e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf5b00e0 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xf5a1e50 Element content value='7200' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0xf5b0170 Enter id='' type=6 loc=0xf5b0170 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xf5a4eb0->(nil)) stdsoap2.c(4726): malloc(24) = 0xf5a2d40 First block Copy 8 bytes from 0xf5a4ec0 to 0xf5a2d40 Next block stdsoap2.c(2026): free(0xf5a4eb0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xf5a1ef0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf598880) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf59fdb0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf5a4e40) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf5d4150) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf5980e0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf5985a0) stdsoap2.c(5406): free(0xf5a1d00) stdsoap2.c(5405): free(0xf5a4dc0) stdsoap2.c(5406): free(0xf599fe0) stdsoap2.c(5411): free(0xf5a2de0) stdsoap2.c(5422): free(0xf5ba590) stdsoap2.c(5428): free(0xf59b4d0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf5a2d40) stdsoap2.c(4857): free(0xf5b0170) stdsoap2.c(4857): free(0xf5a1e50) stdsoap2.c(4857): free(0xf5b00e0) stdsoap2.c(4857): free(0xf599f30) stdsoap2.c(4857): free(0xf5bae90) stdsoap2.c(4857): free(0xf5a4f80) stdsoap2.c(4857): free(0xf5a5060) stdsoap2.c(4857): free(0xf598750) stdsoap2.c(4857): free(0xf5985f0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf59a220) Free logfiles stdsoap2.c(2959): free(0xf594560) stdsoap2.c(2959): free(0xf595670) stdsoap2.c(2959): free(0xf594540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xf58c400 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff530da3a0 type=109: not found stdsoap2.c(4149): malloc(1288) = 0xf5cabd0 Pointer enter location=0x7fff530da3a0 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fff530da3a0 type=109 (0 0) Lookup location=0xf5ac6e0 type=3: not found Pointer enter location=0xf5ac6e0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xf5ac6e0 type=3 (0 0) Lookup location=0xf58c400 type=27: not found Pointer enter location=0xf58c400 array=(nil) size=0 dim=0 type=27 id=3 Reference 0xf58c400 type=27 (0 0) Lookup location=0xf58a800 type=3: not found Pointer enter location=0xf58a800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xf58a800 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xf58c490 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff530c0e40 type=395: not found Embedded_id 0x7fff530c0e40 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff530da3a0 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff530da3a0 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0xf5ac6e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xf58c400 type=27 id=3 Is embedded? 0 0 Embedded_id 0xf58c400 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xf58a800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=5 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff530c0e40 type=395: not found Embedded_id 0x7fff530c0e40 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff530da3a0 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff530da3a0 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0xf5ac6e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xf58c400 type=27 id=3 Is embedded? 0 0 Embedded_id 0xf58c400 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xf58a800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xf58c490) Free pointer hashtable stdsoap2.c(4079): free(0xf5cabd0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xf58c490 Free ID hashtable Read 958 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xf5b1db0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xf5b1f90 stdsoap2.c(7219): malloc(64) = 0xf5b1b90 stdsoap2.c(2336): malloc(40) = 0xf5b2260 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xf5b2050 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf5e0150 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf5b29a0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xf59ee70 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xf5dee50 stdsoap2.c(7172): malloc(62) = 0xf5b2ec0 stdsoap2.c(7219): malloc(64) = 0xf5b1c70 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fff530da3c0 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf59ed80 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf5b23e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf5b23e0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf5b2440 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xf5b1d00 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xf5b2fc0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf5b67e0 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xf5d33d0 stdsoap2.c(6963): free(0xf5b1f90) stdsoap2.c(4726): malloc(104) = 0xf5d3460 Enter id='' type=6 loc=0xf5d3460 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xf5d4050 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xf5d4050 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xf5b2fc0->(nil)) stdsoap2.c(4726): malloc(24) = 0xf59f1f0 First block Copy 8 bytes from 0xf5b2fd0 to 0xf59f1f0 Next block stdsoap2.c(2026): free(0xf5b2fc0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xf5b1d00) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xf59ee70) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xf5b29a0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xf5e0150) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xf5b2050) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xf5b2260) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xf5b1c70) stdsoap2.c(5406): free(0xf5b2ec0) stdsoap2.c(5405): free(0xf5b1b90) stdsoap2.c(5406): free(0xf5b1db0) stdsoap2.c(5411): free(0xf5d33d0) stdsoap2.c(5422): free(0xf5dee50) stdsoap2.c(5428): free(0xf58c490) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xf59f1f0) stdsoap2.c(4857): free(0xf5d4050) stdsoap2.c(4857): free(0xf5d3460) stdsoap2.c(4857): free(0xf5b67e0) stdsoap2.c(4857): free(0xf5b2440) stdsoap2.c(4857): free(0xf5b23e0) stdsoap2.c(4857): free(0xf59ed80) stdsoap2.c(4857): free(0xf58c400) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xf58a890) Free logfiles stdsoap2.c(2959): free(0xf5d0860) stdsoap2.c(2959): free(0xf5d0880) stdsoap2.c(2959): free(0xf5cf2e0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffffc1bea0 type=81: not found stdsoap2.c(4149): malloc(1288) = 0x11a25bd0 Pointer enter location=0x7fffffc1bea0 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fffffc1bea0 type=81 (0 0) Lookup location=0x11a206d0 type=3: not found Pointer enter location=0x11a206d0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x11a206d0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x11a260e0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02950 type=311: not found Embedded_id 0x7fffffc02950 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fffffc1bea0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc1bea0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x11a206d0 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=5 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02950 type=311: not found Embedded_id 0x7fffffc02950 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fffffc1bea0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc1bea0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x11a206d0 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x11a260e0) Free pointer hashtable stdsoap2.c(4079): free(0x11a25bd0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x11a30380 Free ID hashtable Read 759 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x11a2d390 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x11a313f0 stdsoap2.c(7219): malloc(64) = 0x11a2fa10 stdsoap2.c(2336): malloc(40) = 0x11a275a0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x11a2da20 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a304e0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a28530 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a4fe20 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x11a307e0 stdsoap2.c(7172): malloc(62) = 0x11a30880 stdsoap2.c(7219): malloc(64) = 0x11a2d7a0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fffffc1bec0 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x11a31660 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a2d650 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a2d650 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0x11a421e0 Enter id='' type=3 loc=0x11a421e0 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x11a4fe20) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x11a28530) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x11a304e0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x11a2da20) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x11a275a0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x11a2d7a0) stdsoap2.c(5406): free(0x11a30880) stdsoap2.c(5405): free(0x11a2fa10) stdsoap2.c(5406): free(0x11a2d390) stdsoap2.c(5411): free(0x11a313f0) stdsoap2.c(5422): free(0x11a307e0) stdsoap2.c(5428): free(0x11a30380) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x11a421e0) stdsoap2.c(4857): free(0x11a2d650) stdsoap2.c(4857): free(0x11a31660) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x11a104c0) Free logfiles stdsoap2.c(2959): free(0x11a10560) stdsoap2.c(2959): free(0x11a11670) stdsoap2.c(2959): free(0x11a10540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x11a0ed10 stdsoap2.c(4726): malloc(24) = 0x11a0ed40 stdsoap2.c(4726): malloc(48) = 0x11a0fcf0 stdsoap2.c(4726): malloc(24) = 0x11a0fd60 stdsoap2.c(4726): malloc(32) = 0x11a0fdb0 stdsoap2.c(4726): malloc(24) = 0x11a0fe10 stdsoap2.c(4726): malloc(32) = 0x11a0fe60 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffffc1bea0 type=101: not found stdsoap2.c(4149): malloc(1288) = 0x11a0fec0 Pointer enter location=0x7fffffc1bea0 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fffffc1bea0 type=101 (0 0) Lookup location=0x11a0ed10 type=32: not found Pointer enter location=0x11a0ed10 array=(nil) size=0 dim=0 type=32 id=2 Reference 0x11a0ed10 type=32 (0 0) Lookup location=0x11a0fdb0 type=31: not found Pointer enter location=0x11a0fdb0 array=(nil) size=0 dim=0 type=31 id=3 Reference 0x11a0fdb0 type=31 (0 0) Lookup location=0x11a06800 type=3: not found Pointer enter location=0x11a06800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x11a06800 type=3 (0 0) Lookup location=0x11a0fe10 type=148: not found Pointer enter location=0x11a0fe10 array=(nil) size=0 dim=0 type=148 id=5 Reference 0x11a0fe10 type=148 (0 0) Lookup location=0x7fffffc1c060 type=1: not found Pointer enter location=0x7fffffc1c060 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fffffc1c060 type=1 (0 0) Lookup location=0x2b046536e0c8 type=131: not found Pointer enter location=0x2b046536e0c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b046536e0c8 type=131 (0 0) Lookup location=0x11a0fcf0 type=28: not found Pointer enter location=0x11a0fcf0 array=(nil) size=0 dim=0 type=28 id=8 Reference 0x11a0fcf0 type=28 (0 0) Lookup location=0x11a0fe60 type=14: not found Pointer enter location=0x11a0fe60 array=(nil) size=0 dim=0 type=14 id=9 Reference 0x11a0fe60 type=14 (0 0) Lookup location=0x2b0464374286 type=3: not found Pointer enter location=0x2b0464374286 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b0464374286 type=3 (0 0) Lookup location=0x2b046436f205 type=3: not found Pointer enter location=0x2b046436f205 array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b046436f205 type=3 (0 0) Lookup location=0x2b046436f20d type=3: not found Pointer enter location=0x2b046436f20d array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b046436f20d type=3 (0 0) Lookup location=0x2b046436f20a type=3: not found Pointer enter location=0x2b046436f20a array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b046436f20a type=3 (0 0) Lookup location=0x2b046436f212 type=3: not found Pointer enter location=0x2b046436f212 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b046436f212 type=3 (0 0) Lookup location=0x2b046436f27b type=3: not found Pointer enter location=0x2b046436f27b array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2b046436f27b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x11a12250 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02910 type=371: not found Embedded_id 0x7fffffc02910 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fffffc1bea0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc1bea0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x11a0ed10 type=32 id=2 Is embedded? 0 0 Embedded_id 0x11a0ed10 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x11a0fdb0 type=31 id=3 Is embedded? 0 0 Embedded_id 0x11a0fdb0 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x11a06800 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x11a0fe10 type=148 id=5 Is embedded? 0 0 Embedded_id 0x11a0fe10 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fffffc1c060 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffffc1c060 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b046536e0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b046536e0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x11a0fcf0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x11a0fcf0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x11a0fe60 type=14 id=9 Is embedded? 0 0 Embedded_id 0x11a0fe60 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b0464374286 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f205 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f20d type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f20a type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f212 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f27b type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=5 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02910 type=371: not found Embedded_id 0x7fffffc02910 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fffffc1bea0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc1bea0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x11a0ed10 type=32 id=2 Is embedded? 0 0 Embedded_id 0x11a0ed10 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x11a0fdb0 type=31 id=3 Is embedded? 0 0 Embedded_id 0x11a0fdb0 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x11a06800 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x11a0fe10 type=148 id=5 Is embedded? 0 0 Embedded_id 0x11a0fe10 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fffffc1c060 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffffc1c060 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b046536e0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b046536e0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x11a0fcf0 type=28 id=8 Is embedded? 0 0 Embedded_id 0x11a0fcf0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x11a0fe60 type=14 id=9 Is embedded? 0 0 Embedded_id 0x11a0fe60 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b0464374286 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f205 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f20d type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f20a type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f212 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f27b type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x11a12250) Free pointer hashtable stdsoap2.c(4079): free(0x11a0fec0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x11a12250 Free ID hashtable Read 1037 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x11a1b000 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x11a190f0 stdsoap2.c(7219): malloc(64) = 0x11a13d30 stdsoap2.c(2336): malloc(40) = 0x11a189d0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x11a500f0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a50040 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a1b7c0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a1b860 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x11a188d0 stdsoap2.c(7172): malloc(62) = 0x11a42f10 stdsoap2.c(7219): malloc(64) = 0x11a1b600 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fffffc1bf00 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x11a42f90 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a1b6b0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a1b6b0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x11a33980 Enter id='' type=3 loc=0x11a33980 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a339f0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x11a31aa0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x11a1b720 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x11a425e0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x11a33a80 stdsoap2.c(6963): free(0x11a190f0) stdsoap2.c(4726): malloc(104) = 0x11a31ae0 Enter id='' type=6 loc=0x11a31ae0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a31b80 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a31b80 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x11a1b720->(nil)) stdsoap2.c(4726): malloc(24) = 0x11a18460 First block Copy 8 bytes from 0x11a1b730 to 0x11a18460 Next block stdsoap2.c(2026): free(0x11a1b720) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x11a31aa0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x11a1b860) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x11a1b7c0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x11a50040) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x11a500f0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x11a189d0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x11a1b600) stdsoap2.c(5406): free(0x11a42f10) stdsoap2.c(5405): free(0x11a13d30) stdsoap2.c(5406): free(0x11a1b000) stdsoap2.c(5411): free(0x11a33a80) stdsoap2.c(5422): free(0x11a188d0) stdsoap2.c(5428): free(0x11a12250) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x11a18460) stdsoap2.c(4857): free(0x11a31b80) stdsoap2.c(4857): free(0x11a31ae0) stdsoap2.c(4857): free(0x11a425e0) stdsoap2.c(4857): free(0x11a339f0) stdsoap2.c(4857): free(0x11a33980) stdsoap2.c(4857): free(0x11a1b6b0) stdsoap2.c(4857): free(0x11a42f90) stdsoap2.c(4857): free(0x11a0fe60) stdsoap2.c(4857): free(0x11a0fe10) stdsoap2.c(4857): free(0x11a0fdb0) stdsoap2.c(4857): free(0x11a0fd60) stdsoap2.c(4857): free(0x11a0fcf0) stdsoap2.c(4857): free(0x11a0ed40) stdsoap2.c(4857): free(0x11a0ed10) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x11a2d5f0) Free logfiles stdsoap2.c(2959): free(0x11a10540) stdsoap2.c(2959): free(0x11a11670) stdsoap2.c(2959): free(0x11a10560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffffc029f0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x11a0ba20 Pointer enter location=0x7fffffc029f0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fffffc029f0 type=103 (0 0) Lookup location=0x11a189d0 type=3: not found Pointer enter location=0x11a189d0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x11a189d0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x11a2c200 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02980 type=377: not found Embedded_id 0x7fffffc02980 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffffc029f0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc029f0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x11a189d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02980 type=377: not found Embedded_id 0x7fffffc02980 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffffc029f0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc029f0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x11a189d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x11a2c200) Free pointer hashtable stdsoap2.c(4079): free(0x11a0ba20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x11a2c200 Free ID hashtable Read 1121 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1003 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x11a51120 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x11a18000 stdsoap2.c(7219): malloc(64) = 0x11a18660 stdsoap2.c(2336): malloc(40) = 0x11a150a0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x11a0d530 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a319e0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a15390 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a4fe50 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x11a42de0 stdsoap2.c(7172): malloc(62) = 0x11a18070 stdsoap2.c(7219): malloc(64) = 0x11a31920 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fffffc02a10 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x11a15110 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a15170 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a15170 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a17e40 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x11a318e0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x11a14ca0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x11a337c0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x11a42450 stdsoap2.c(6963): free(0x11a18000) stdsoap2.c(4726): malloc(104) = 0x11a338c0 Enter id='' type=6 loc=0x11a338c0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a33960 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a33960 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x11a42a60 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x11a33880 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x11a42540 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x11a14ca0->(nil)) stdsoap2.c(4726): malloc(24) = 0x11a339c0 First block Copy 8 bytes from 0x11a14cb0 to 0x11a339c0 Next block stdsoap2.c(2026): free(0x11a14ca0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x11a318e0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x11a4fe50) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x11a15390) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x11a319e0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x11a0d530) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x11a150a0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x11a31920) stdsoap2.c(5406): free(0x11a18070) stdsoap2.c(5405): free(0x11a18660) stdsoap2.c(5406): free(0x11a51120) stdsoap2.c(5411): free(0x11a42450) stdsoap2.c(5422): free(0x11a42de0) stdsoap2.c(5428): free(0x11a2c200) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x11a339c0) stdsoap2.c(4857): free(0x11a42540) stdsoap2.c(4857): free(0x11a33880) stdsoap2.c(4857): free(0x11a42a60) stdsoap2.c(4857): free(0x11a33960) stdsoap2.c(4857): free(0x11a338c0) stdsoap2.c(4857): free(0x11a337c0) stdsoap2.c(4857): free(0x11a17e40) stdsoap2.c(4857): free(0x11a15170) stdsoap2.c(4857): free(0x11a15110) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x11a0fde0) Free logfiles stdsoap2.c(2959): free(0x11a10560) stdsoap2.c(2959): free(0x11a11670) stdsoap2.c(2959): free(0x11a10540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffffc029f0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x11a18c40 Pointer enter location=0x7fffffc029f0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fffffc029f0 type=103 (0 0) Lookup location=0x11a189d0 type=3: not found Pointer enter location=0x11a189d0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x11a189d0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x11a1eb00 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02980 type=377: not found Embedded_id 0x7fffffc02980 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffffc029f0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc029f0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x11a189d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02980 type=377: not found Embedded_id 0x7fffffc02980 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffffc029f0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc029f0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x11a189d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x11a1eb00) Free pointer hashtable stdsoap2.c(4079): free(0x11a18c40) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x11a1eb00 Free ID hashtable Read 1121 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1003 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x11a16e30 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x11a178a0 stdsoap2.c(7219): malloc(64) = 0x11a17df0 stdsoap2.c(2336): malloc(40) = 0x11a13ed0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x11a0c630 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a141c0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a560d0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a17d30 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x11a13f40 stdsoap2.c(7172): malloc(62) = 0x11a13f80 stdsoap2.c(7219): malloc(64) = 0x11a16ed0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fffffc02a10 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x11a42440 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a424a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a424a0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a16c70 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x11a17cf0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x11a13ad0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x11a42d80 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x11a33770 stdsoap2.c(6963): free(0x11a178a0) stdsoap2.c(4726): malloc(104) = 0x11a338a0 Enter id='' type=6 loc=0x11a338a0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a33940 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a33940 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x11a429d0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x11a33860 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x11a339a0 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x11a13ad0->(nil)) stdsoap2.c(4726): malloc(24) = 0x11a13d80 First block Copy 8 bytes from 0x11a13ae0 to 0x11a13d80 Next block stdsoap2.c(2026): free(0x11a13ad0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x11a17cf0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x11a17d30) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x11a560d0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x11a141c0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x11a0c630) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x11a13ed0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x11a16ed0) stdsoap2.c(5406): free(0x11a13f80) stdsoap2.c(5405): free(0x11a17df0) stdsoap2.c(5406): free(0x11a16e30) stdsoap2.c(5411): free(0x11a33770) stdsoap2.c(5422): free(0x11a13f40) stdsoap2.c(5428): free(0x11a1eb00) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x11a13d80) stdsoap2.c(4857): free(0x11a339a0) stdsoap2.c(4857): free(0x11a33860) stdsoap2.c(4857): free(0x11a429d0) stdsoap2.c(4857): free(0x11a33940) stdsoap2.c(4857): free(0x11a338a0) stdsoap2.c(4857): free(0x11a42d80) stdsoap2.c(4857): free(0x11a16c70) stdsoap2.c(4857): free(0x11a424a0) stdsoap2.c(4857): free(0x11a42440) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x11a2b270) Free logfiles stdsoap2.c(2959): free(0x11a10540) stdsoap2.c(2959): free(0x11a11670) stdsoap2.c(2959): free(0x11a10560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffffc029f0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x11a2e950 Pointer enter location=0x7fffffc029f0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fffffc029f0 type=103 (0 0) Lookup location=0x11a189d0 type=3: not found Pointer enter location=0x11a189d0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x11a189d0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x11a2ee60 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02980 type=377: not found Embedded_id 0x7fffffc02980 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffffc029f0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc029f0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x11a189d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02980 type=377: not found Embedded_id 0x7fffffc02980 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffffc029f0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc029f0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x11a189d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x11a2ee60) Free pointer hashtable stdsoap2.c(4079): free(0x11a2e950) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x11a42360 Free ID hashtable Read 1221 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1103 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x11a0f890 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x11a0fa20 stdsoap2.c(7219): malloc(64) = 0x11a10120 stdsoap2.c(2336): malloc(40) = 0x11a0cf70 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x11a0fb80 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a4fef0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a4fe70 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a0faf0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x11a0cc50 stdsoap2.c(7172): malloc(62) = 0x11a0c740 stdsoap2.c(7219): malloc(64) = 0x11a42cd0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fffffc02a10 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x11a0c7c0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a0ca30 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a0ca30 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a0ca90 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x11a31880 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x11a42950 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x11a33760 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x11a33860 stdsoap2.c(6963): free(0x11a0fa20) stdsoap2.c(4726): malloc(104) = 0x11a318c0 Enter id='' type=6 loc=0x11a318c0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a31960 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a31960 size=4 level=0 Element content value='SRM_SPACE_AVAILABLE' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x11a42430 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x11a0ccc0 Element content value='7200' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x11a0cb20 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x11a41dc0 Enter id='' type=6 loc=0x11a41dc0 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x11a42950->(nil)) stdsoap2.c(4726): malloc(24) = 0x11a33820 First block Copy 8 bytes from 0x11a42960 to 0x11a33820 Next block stdsoap2.c(2026): free(0x11a42950) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x11a31880) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x11a0faf0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x11a4fe70) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x11a4fef0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x11a0fb80) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x11a0cf70) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x11a42cd0) stdsoap2.c(5406): free(0x11a0c740) stdsoap2.c(5405): free(0x11a10120) stdsoap2.c(5406): free(0x11a0f890) stdsoap2.c(5411): free(0x11a33860) stdsoap2.c(5422): free(0x11a0cc50) stdsoap2.c(5428): free(0x11a42360) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x11a33820) stdsoap2.c(4857): free(0x11a41dc0) stdsoap2.c(4857): free(0x11a0cb20) stdsoap2.c(4857): free(0x11a0ccc0) stdsoap2.c(4857): free(0x11a42430) stdsoap2.c(4857): free(0x11a31960) stdsoap2.c(4857): free(0x11a318c0) stdsoap2.c(4857): free(0x11a33760) stdsoap2.c(4857): free(0x11a0ca90) stdsoap2.c(4857): free(0x11a0ca30) stdsoap2.c(4857): free(0x11a0c7c0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x11a14040) Free logfiles stdsoap2.c(2959): free(0x11a10560) stdsoap2.c(2959): free(0x11a11670) stdsoap2.c(2959): free(0x11a10540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x11a083d0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffffc1c860 type=111: not found stdsoap2.c(4149): malloc(1288) = 0x11a156b0 Pointer enter location=0x7fffffc1c860 array=(nil) size=0 dim=0 type=111 id=1 Reference 0x7fffffc1c860 type=111 (0 0) Lookup location=0x11a189d0 type=3: not found Pointer enter location=0x11a189d0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x11a189d0 type=3 (0 0) Lookup location=0x11a083d0 type=27: not found Pointer enter location=0x11a083d0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x11a083d0 type=27 (0 0) Lookup location=0x11a06800 type=3: not found Pointer enter location=0x11a06800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x11a06800 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x11a08460 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc03300 type=401: not found Embedded_id 0x7fffffc03300 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fffffc1c860 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc1c860 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x11a189d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x11a083d0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x11a083d0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x11a06800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=720 New count is 720 bytes Begin send phase (socket=5 mode=0x1 count=720) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc03300 type=401: not found Embedded_id 0x7fffffc03300 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fffffc1c860 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc1c860 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x11a189d0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x11a083d0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x11a083d0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x11a06800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x11a08460) Free pointer hashtable stdsoap2.c(4079): free(0x11a156b0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x11a3ead0 Free ID hashtable Read 938 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 821 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x11a3a330 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x11a3a510 stdsoap2.c(7219): malloc(64) = 0x11a3a110 stdsoap2.c(2336): malloc(40) = 0x11a3a7e0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x11a3a5d0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a616f0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a37520 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a37650 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x11a60100 stdsoap2.c(7172): malloc(62) = 0x11a3d8e0 stdsoap2.c(7219): malloc(64) = 0x11a3a1c0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPutDoneResponse' 'srm2:srmPutDoneResponse' Begin element found (level=3) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' Enter id='' type=396 loc=0x7fffffc1c880 size=8 level=0 Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Reverting last element (level=3) Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Enter id='' type=112 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a3a210 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a37460 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a37460 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a3a960 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x11a3a280 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x11a3b540 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a08490 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x11a3e1e0 stdsoap2.c(6963): free(0x11a3a510) stdsoap2.c(4726): malloc(104) = 0x11a3fcd0 Enter id='' type=6 loc=0x11a3fcd0 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a3fd70 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a3fd70 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x11a3b540->(nil)) stdsoap2.c(4726): malloc(24) = 0x11a378d0 First block Copy 8 bytes from 0x11a3b550 to 0x11a378d0 Next block stdsoap2.c(2026): free(0x11a3b540) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x11a3a280) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPutDoneResponse'='srmPutDoneResponse' End element found (level=2) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x11a37650) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x11a37520) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x11a616f0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x11a3a5d0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x11a3a7e0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x11a3a1c0) stdsoap2.c(5406): free(0x11a3d8e0) stdsoap2.c(5405): free(0x11a3a110) stdsoap2.c(5406): free(0x11a3a330) stdsoap2.c(5411): free(0x11a3e1e0) stdsoap2.c(5422): free(0x11a60100) stdsoap2.c(5428): free(0x11a3ead0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x11a378d0) stdsoap2.c(4857): free(0x11a3fd70) stdsoap2.c(4857): free(0x11a3fcd0) stdsoap2.c(4857): free(0x11a08490) stdsoap2.c(4857): free(0x11a3a960) stdsoap2.c(4857): free(0x11a37460) stdsoap2.c(4857): free(0x11a3a210) stdsoap2.c(4857): free(0x11a083d0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x11a06860) Free logfiles stdsoap2.c(2959): free(0x11a4c670) stdsoap2.c(2959): free(0x11a4c690) stdsoap2.c(2959): free(0x11a4c6b0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x11a0cf70 stdsoap2.c(4726): malloc(24) = 0x11a49b30 stdsoap2.c(4726): malloc(48) = 0x11a15ae0 stdsoap2.c(4726): malloc(24) = 0x11a10500 stdsoap2.c(4726): malloc(32) = 0x11a06760 stdsoap2.c(4726): malloc(32) = 0x11a15b40 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffffc1bec0 type=93: not found stdsoap2.c(4149): malloc(1288) = 0x11a14c10 Pointer enter location=0x7fffffc1bec0 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fffffc1bec0 type=93 (0 0) Lookup location=0x11a0cf70 type=30: not found Pointer enter location=0x11a0cf70 array=(nil) size=0 dim=0 type=30 id=2 Reference 0x11a0cf70 type=30 (0 0) Lookup location=0x11a06760 type=29: not found Pointer enter location=0x11a06760 array=(nil) size=0 dim=0 type=29 id=3 Reference 0x11a06760 type=29 (0 0) Lookup location=0x11a16590 type=3: not found Pointer enter location=0x11a16590 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x11a16590 type=3 (0 0) Lookup location=0x2b046536e0d4 type=131: not found Pointer enter location=0x2b046536e0d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2b046536e0d4 type=131 (0 0) Lookup location=0x7fffffc1c060 type=1: not found Pointer enter location=0x7fffffc1c060 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fffffc1c060 type=1 (0 0) Lookup location=0x11a15ae0 type=28: not found Pointer enter location=0x11a15ae0 array=(nil) size=0 dim=0 type=28 id=7 Reference 0x11a15ae0 type=28 (0 0) Lookup location=0x11a15b40 type=14: not found Pointer enter location=0x11a15b40 array=(nil) size=0 dim=0 type=14 id=8 Reference 0x11a15b40 type=14 (0 0) Lookup location=0x2b0464374286 type=3: not found Pointer enter location=0x2b0464374286 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2b0464374286 type=3 (0 0) Lookup location=0x2b046436f205 type=3: not found Pointer enter location=0x2b046436f205 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b046436f205 type=3 (0 0) Lookup location=0x2b046436f20d type=3: not found Pointer enter location=0x2b046436f20d array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b046436f20d type=3 (0 0) Lookup location=0x2b046436f20a type=3: not found Pointer enter location=0x2b046436f20a array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b046436f20a type=3 (0 0) Lookup location=0x2b046436f212 type=3: not found Pointer enter location=0x2b046436f212 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b046436f212 type=3 (0 0) Lookup location=0x2b046436f27b type=3: not found Pointer enter location=0x2b046436f27b array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b046436f27b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x11a165f0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02940 type=347: not found Embedded_id 0x7fffffc02940 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fffffc1bec0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc1bec0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x11a0cf70 type=30 id=2 Is embedded? 0 0 Embedded_id 0x11a0cf70 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x11a06760 type=29 id=3 Is embedded? 0 0 Embedded_id 0x11a06760 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x11a16590 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b046536e0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b046536e0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fffffc1c060 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffffc1c060 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x11a15ae0 type=28 id=7 Is embedded? 0 0 Embedded_id 0x11a15ae0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x11a15b40 type=14 id=8 Is embedded? 0 0 Embedded_id 0x11a15b40 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b0464374286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f20d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f20a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f27b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=5 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02940 type=347: not found Embedded_id 0x7fffffc02940 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fffffc1bec0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc1bec0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x11a0cf70 type=30 id=2 Is embedded? 0 0 Embedded_id 0x11a0cf70 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x11a06760 type=29 id=3 Is embedded? 0 0 Embedded_id 0x11a06760 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x11a16590 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b046536e0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b046536e0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fffffc1c060 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffffc1c060 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x11a15ae0 type=28 id=7 Is embedded? 0 0 Embedded_id 0x11a15ae0 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x11a15b40 type=14 id=8 Is embedded? 0 0 Embedded_id 0x11a15b40 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b0464374286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f20d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f20a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b046436f27b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x11a165f0) Free pointer hashtable stdsoap2.c(4079): free(0x11a14c10) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x11a3f580 Free ID hashtable Read 1049 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x11a3b5a0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x11a34910 stdsoap2.c(7219): malloc(64) = 0x11a3ab50 stdsoap2.c(2336): malloc(40) = 0x11a347b0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x11a34750 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a3b720 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a3bee0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a3bf80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x11a3b0e0 stdsoap2.c(7172): malloc(62) = 0x11a60aa0 stdsoap2.c(7219): malloc(64) = 0x11a169e0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fffffc1bf10 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x11a62090 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a3b640 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a3b640 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x11a346b0 Enter id='' type=3 loc=0x11a346b0 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a3afe0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x11a15660 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x11a35130 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x11a3eca0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x11a165f0 stdsoap2.c(6963): free(0x11a34910) stdsoap2.c(4726): malloc(104) = 0x11a3b410 Enter id='' type=6 loc=0x11a3b410 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a16680 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a16680 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x11a35130->(nil)) stdsoap2.c(4726): malloc(24) = 0x11a3bea0 First block Copy 8 bytes from 0x11a35140 to 0x11a3bea0 Next block stdsoap2.c(2026): free(0x11a35130) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x11a15660) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x11a3bf80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x11a3bee0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x11a3b720) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x11a34750) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x11a347b0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x11a169e0) stdsoap2.c(5406): free(0x11a60aa0) stdsoap2.c(5405): free(0x11a3ab50) stdsoap2.c(5406): free(0x11a3b5a0) stdsoap2.c(5411): free(0x11a165f0) stdsoap2.c(5422): free(0x11a3b0e0) stdsoap2.c(5428): free(0x11a3f580) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x11a3bea0) stdsoap2.c(4857): free(0x11a16680) stdsoap2.c(4857): free(0x11a3b410) stdsoap2.c(4857): free(0x11a3eca0) stdsoap2.c(4857): free(0x11a3afe0) stdsoap2.c(4857): free(0x11a346b0) stdsoap2.c(4857): free(0x11a3b640) stdsoap2.c(4857): free(0x11a62090) stdsoap2.c(4857): free(0x11a15b40) stdsoap2.c(4857): free(0x11a06760) stdsoap2.c(4857): free(0x11a10500) stdsoap2.c(4857): free(0x11a15ae0) stdsoap2.c(4857): free(0x11a49b30) stdsoap2.c(4857): free(0x11a0cf70) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x11a37460) Free logfiles stdsoap2.c(2959): free(0x11a15b20) stdsoap2.c(2959): free(0x11a3a7c0) stdsoap2.c(2959): free(0x11a4c6b0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffffc029f0 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x11a149d0 Pointer enter location=0x7fffffc029f0 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fffffc029f0 type=95 (0 0) Lookup location=0x11a347b0 type=3: not found Pointer enter location=0x11a347b0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x11a347b0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x11a37430 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02980 type=353: not found Embedded_id 0x7fffffc02980 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffffc029f0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc029f0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x11a347b0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc02980 type=353: not found Embedded_id 0x7fffffc02980 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffffc029f0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc029f0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x11a347b0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x11a37430) Free pointer hashtable stdsoap2.c(4079): free(0x11a149d0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x11a3d9e0 Free ID hashtable Read 1177 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1059 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x11a358a0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x11a38770 stdsoap2.c(7219): malloc(64) = 0x11a17120 stdsoap2.c(2336): malloc(40) = 0x11a38d80 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x11a353f0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a64850 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a351b0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a63550 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x11a388a0 stdsoap2.c(7172): malloc(62) = 0x11a35550 stdsoap2.c(7219): malloc(64) = 0x11a3d1e0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fffffc02a10 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x11a35940 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a38cf0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a38cf0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a3a650 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x11a38c70 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x11a387f0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x11a357c0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x11a37430 stdsoap2.c(6963): free(0x11a38770) stdsoap2.c(4726): malloc(104) = 0x11a3c850 Enter id='' type=6 loc=0x11a3c850 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x11a35250 Element content value='65536' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a3c920 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a3c920 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x11a36110 Element content value='7199' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x11a41900 Enter id='' type=6 loc=0x11a41900 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x11a387f0->(nil)) stdsoap2.c(4726): malloc(24) = 0x11a3ce60 First block Copy 8 bytes from 0x11a38800 to 0x11a3ce60 Next block stdsoap2.c(2026): free(0x11a387f0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x11a38c70) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x11a63550) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x11a351b0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x11a64850) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x11a353f0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x11a38d80) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x11a3d1e0) stdsoap2.c(5406): free(0x11a35550) stdsoap2.c(5405): free(0x11a17120) stdsoap2.c(5406): free(0x11a358a0) stdsoap2.c(5411): free(0x11a37430) stdsoap2.c(5422): free(0x11a388a0) stdsoap2.c(5428): free(0x11a3d9e0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x11a3ce60) stdsoap2.c(4857): free(0x11a41900) stdsoap2.c(4857): free(0x11a36110) stdsoap2.c(4857): free(0x11a3c920) stdsoap2.c(4857): free(0x11a35250) stdsoap2.c(4857): free(0x11a3c850) stdsoap2.c(4857): free(0x11a357c0) stdsoap2.c(4857): free(0x11a3a650) stdsoap2.c(4857): free(0x11a38cf0) stdsoap2.c(4857): free(0x11a35940) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x11a37520) Free logfiles stdsoap2.c(2959): free(0x11a4c6b0) stdsoap2.c(2959): free(0x11a3a7c0) stdsoap2.c(2959): free(0x11a15b20) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x11a37ed0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffffc1c860 type=109: not found stdsoap2.c(4149): malloc(1288) = 0x11a385e0 Pointer enter location=0x7fffffc1c860 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fffffc1c860 type=109 (0 0) Lookup location=0x11a347b0 type=3: not found Pointer enter location=0x11a347b0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x11a347b0 type=3 (0 0) Lookup location=0x11a37ed0 type=27: not found Pointer enter location=0x11a37ed0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x11a37ed0 type=27 (0 0) Lookup location=0x11a16590 type=3: not found Pointer enter location=0x11a16590 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x11a16590 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x11a15530 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc03300 type=395: not found Embedded_id 0x7fffffc03300 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fffffc1c860 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc1c860 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x11a347b0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x11a37ed0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x11a37ed0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x11a16590 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=5 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffffc03300 type=395: not found Embedded_id 0x7fffffc03300 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fffffc1c860 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fffffc1c860 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x11a347b0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x11a37ed0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x11a37ed0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x11a16590 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x11a15530) Free pointer hashtable stdsoap2.c(4079): free(0x11a385e0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x11a15530 Free ID hashtable Read 958 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x11a39710 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x11a59df0 stdsoap2.c(7219): malloc(64) = 0x11a5cd40 stdsoap2.c(2336): malloc(40) = 0x11a39e60 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x11a59c90 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a59af0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a63710 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x11a5ad80 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x11a64b40 stdsoap2.c(7172): malloc(62) = 0x11a45690 stdsoap2.c(7219): malloc(64) = 0x11a63550 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fffffc1c880 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a5ace0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a599e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a599e0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a39bb0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x11a59bb0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x11a59d80 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a4f2a0 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x11a4f300 stdsoap2.c(6963): free(0x11a59df0) stdsoap2.c(4726): malloc(104) = 0x11a44910 Enter id='' type=6 loc=0x11a44910 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x11a449b0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x11a449b0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x11a59d80->(nil)) stdsoap2.c(4726): malloc(24) = 0x11a39dd0 First block Copy 8 bytes from 0x11a59d90 to 0x11a39dd0 Next block stdsoap2.c(2026): free(0x11a59d80) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x11a59bb0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x11a5ad80) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x11a63710) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x11a59af0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x11a59c90) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x11a39e60) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x11a63550) stdsoap2.c(5406): free(0x11a45690) stdsoap2.c(5405): free(0x11a5cd40) stdsoap2.c(5406): free(0x11a39710) stdsoap2.c(5411): free(0x11a4f300) stdsoap2.c(5422): free(0x11a64b40) stdsoap2.c(5428): free(0x11a15530) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x11a39dd0) stdsoap2.c(4857): free(0x11a449b0) stdsoap2.c(4857): free(0x11a44910) stdsoap2.c(4857): free(0x11a4f2a0) stdsoap2.c(4857): free(0x11a39bb0) stdsoap2.c(4857): free(0x11a599e0) stdsoap2.c(4857): free(0x11a5ace0) stdsoap2.c(4857): free(0x11a37ed0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x11a154d0) Free logfiles stdsoap2.c(2959): free(0x11a189d0) stdsoap2.c(2959): free(0x11a0cf70) stdsoap2.c(2959): free(0x11a38530) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xa6ebb90 stdsoap2.c(4726): malloc(24) = 0xa6ebbc0 stdsoap2.c(4726): malloc(48) = 0xa6ed610 stdsoap2.c(4726): malloc(24) = 0xa6ed680 stdsoap2.c(4726): malloc(32) = 0xa6ed6d0 stdsoap2.c(4726): malloc(32) = 0xa6ed730 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff23aefc10 type=93: not found stdsoap2.c(4149): malloc(1288) = 0xa6ed790 Pointer enter location=0x7fff23aefc10 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fff23aefc10 type=93 (0 0) Lookup location=0xa6ebb90 type=30: not found Pointer enter location=0xa6ebb90 array=(nil) size=0 dim=0 type=30 id=2 Reference 0xa6ebb90 type=30 (0 0) Lookup location=0xa6ed6d0 type=29: not found Pointer enter location=0xa6ed6d0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0xa6ed6d0 type=29 (0 0) Lookup location=0xa6d3800 type=3: not found Pointer enter location=0xa6d3800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xa6d3800 type=3 (0 0) Lookup location=0x2af7c70170d4 type=131: not found Pointer enter location=0x2af7c70170d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2af7c70170d4 type=131 (0 0) Lookup location=0x7fff23aefdb0 type=1: not found Pointer enter location=0x7fff23aefdb0 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff23aefdb0 type=1 (0 0) Lookup location=0xa6ed610 type=28: not found Pointer enter location=0xa6ed610 array=(nil) size=0 dim=0 type=28 id=7 Reference 0xa6ed610 type=28 (0 0) Lookup location=0xa6ed730 type=14: not found Pointer enter location=0xa6ed730 array=(nil) size=0 dim=0 type=14 id=8 Reference 0xa6ed730 type=14 (0 0) Lookup location=0x2af7c601d286 type=3: not found Pointer enter location=0x2af7c601d286 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2af7c601d286 type=3 (0 0) Lookup location=0x2af7c6018205 type=3: not found Pointer enter location=0x2af7c6018205 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2af7c6018205 type=3 (0 0) Lookup location=0x2af7c601820d type=3: not found Pointer enter location=0x2af7c601820d array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2af7c601820d type=3 (0 0) Lookup location=0x2af7c601820a type=3: not found Pointer enter location=0x2af7c601820a array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2af7c601820a type=3 (0 0) Lookup location=0x2af7c6018212 type=3: not found Pointer enter location=0x2af7c6018212 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2af7c6018212 type=3 (0 0) Lookup location=0x2af7c601827b type=3: not found Pointer enter location=0x2af7c601827b array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2af7c601827b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xa6edcd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff23ad6690 type=347: not found Embedded_id 0x7fff23ad6690 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff23aefc10 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff23aefc10 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xa6ebb90 type=30 id=2 Is embedded? 0 0 Embedded_id 0xa6ebb90 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xa6ed6d0 type=29 id=3 Is embedded? 0 0 Embedded_id 0xa6ed6d0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xa6d3800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2af7c70170d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2af7c70170d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff23aefdb0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff23aefdb0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xa6ed610 type=28 id=7 Is embedded? 0 0 Embedded_id 0xa6ed610 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xa6ed730 type=14 id=8 Is embedded? 0 0 Embedded_id 0xa6ed730 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af7c601d286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af7c6018205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af7c601820d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af7c601820a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af7c6018212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af7c601827b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=5 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff23ad6690 type=347: not found Embedded_id 0x7fff23ad6690 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff23aefc10 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff23aefc10 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xa6ebb90 type=30 id=2 Is embedded? 0 0 Embedded_id 0xa6ebb90 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xa6ed6d0 type=29 id=3 Is embedded? 0 0 Embedded_id 0xa6ed6d0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xa6d3800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2af7c70170d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2af7c70170d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff23aefdb0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff23aefdb0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xa6ed610 type=28 id=7 Is embedded? 0 0 Embedded_id 0xa6ed610 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xa6ed730 type=14 id=8 Is embedded? 0 0 Embedded_id 0xa6ed730 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af7c601d286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af7c6018205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af7c601820d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af7c601820a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af7c6018212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af7c601827b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xa6edcd0) Free pointer hashtable stdsoap2.c(4079): free(0xa6ed790) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xa6edcd0 Free ID hashtable Read 1049 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xa6f5080 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xa6f90e0 stdsoap2.c(7219): malloc(64) = 0xa6f7700 stdsoap2.c(2336): malloc(40) = 0xa6f56e0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xa6f81a0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa6f0200 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa717ab0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa6f84a0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xa6f8540 stdsoap2.c(7172): malloc(62) = 0xa6f5460 stdsoap2.c(7219): malloc(64) = 0xa6f52e0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fff23aefc60 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xa709ea0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xa709ee0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xa709ee0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xa70a7e0 Enter id='' type=3 loc=0xa70a7e0 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xa70a850 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xa6f9350 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xa6f4f70 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xa6f8100 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xa6fb230 stdsoap2.c(6963): free(0xa6f90e0) stdsoap2.c(4726): malloc(104) = 0xa6fb330 Enter id='' type=6 loc=0xa6fb330 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xa6fb3d0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xa6fb3d0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xa6f4f70->(nil)) stdsoap2.c(4726): malloc(24) = 0xa70a460 First block Copy 8 bytes from 0xa6f4f80 to 0xa70a460 Next block stdsoap2.c(2026): free(0xa6f4f70) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xa6f9350) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xa6f84a0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xa717ab0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xa6f0200) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xa6f81a0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xa6f56e0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xa6f52e0) stdsoap2.c(5406): free(0xa6f5460) stdsoap2.c(5405): free(0xa6f7700) stdsoap2.c(5406): free(0xa6f5080) stdsoap2.c(5411): free(0xa6fb230) stdsoap2.c(5422): free(0xa6f8540) stdsoap2.c(5428): free(0xa6edcd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xa70a460) stdsoap2.c(4857): free(0xa6fb3d0) stdsoap2.c(4857): free(0xa6fb330) stdsoap2.c(4857): free(0xa6f8100) stdsoap2.c(4857): free(0xa70a850) stdsoap2.c(4857): free(0xa70a7e0) stdsoap2.c(4857): free(0xa709ee0) stdsoap2.c(4857): free(0xa709ea0) stdsoap2.c(4857): free(0xa6ed730) stdsoap2.c(4857): free(0xa6ed6d0) stdsoap2.c(4857): free(0xa6ed680) stdsoap2.c(4857): free(0xa6ed610) stdsoap2.c(4857): free(0xa6ebbc0) stdsoap2.c(4857): free(0xa6ebb90) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xa6dd4c0) Free logfiles stdsoap2.c(2959): free(0xa6dd560) stdsoap2.c(2959): free(0xa6de670) stdsoap2.c(2959): free(0xa6dd540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff23ad6740 type=95: not found stdsoap2.c(4149): malloc(1288) = 0xa6d8dd0 Pointer enter location=0x7fff23ad6740 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff23ad6740 type=95 (0 0) Lookup location=0xa6f56e0 type=3: not found Pointer enter location=0xa6f56e0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xa6f56e0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xa6d92e0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff23ad66d0 type=353: not found Embedded_id 0x7fff23ad66d0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff23ad6740 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff23ad6740 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xa6f56e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff23ad66d0 type=353: not found Embedded_id 0x7fff23ad66d0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff23ad6740 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff23ad6740 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xa6f56e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xa6d92e0) Free pointer hashtable stdsoap2.c(4079): free(0xa6d8dd0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xa6e2650 Free ID hashtable Read 1106 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 989 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xa7141f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xa713ba0 stdsoap2.c(7219): malloc(64) = 0xa714290 stdsoap2.c(2336): malloc(40) = 0xa710ef0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xa713f80 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa713c60 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa714180 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa713850 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xa7137a0 stdsoap2.c(7172): malloc(62) = 0xa713470 stdsoap2.c(7219): malloc(64) = 0xa710ce0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff23ad6760 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xa71a590 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xa6de7e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xa6de7e0 size=4 level=0 Element content value='SRM_FAILURE' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(40) = 0xa6defd0 Enter id='' type=3 loc=0xa6defd0 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xa6e3850 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xa714070 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xa713910 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xa6e1430 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xa6e1480 stdsoap2.c(6963): free(0xa713ba0) stdsoap2.c(4726): malloc(104) = 0xa6e1050 Enter id='' type=6 loc=0xa6e1050 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xa6df0a0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xa6e1120 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xa6e1120 size=4 level=0 Element content value='SRM_INVALID_PATH' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xa7138c0 Element content value='0' End element found (level=6) 'remainingPinTime'='remainingPinTime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xa713910->(nil)) stdsoap2.c(4726): malloc(24) = 0xa710f60 First block Copy 8 bytes from 0xa713920 to 0xa710f60 Next block stdsoap2.c(2026): free(0xa713910) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xa714070) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xa713850) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xa714180) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xa713c60) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xa713f80) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xa710ef0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xa710ce0) stdsoap2.c(5406): free(0xa713470) stdsoap2.c(5405): free(0xa714290) stdsoap2.c(5406): free(0xa7141f0) stdsoap2.c(5411): free(0xa6e1480) stdsoap2.c(5422): free(0xa7137a0) stdsoap2.c(5428): free(0xa6e2650) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xa710f60) stdsoap2.c(4857): free(0xa7138c0) stdsoap2.c(4857): free(0xa6e1120) stdsoap2.c(4857): free(0xa6df0a0) stdsoap2.c(4857): free(0xa6e1050) stdsoap2.c(4857): free(0xa6e1430) stdsoap2.c(4857): free(0xa6e3850) stdsoap2.c(4857): free(0xa6defd0) stdsoap2.c(4857): free(0xa6de7e0) stdsoap2.c(4857): free(0xa71a590) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xa6f5670) Free logfiles stdsoap2.c(2959): free(0xa6dd540) stdsoap2.c(2959): free(0xa6de670) stdsoap2.c(2959): free(0xa6dd560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x12851b90 stdsoap2.c(4726): malloc(24) = 0x12851bc0 stdsoap2.c(4726): malloc(48) = 0x12853610 stdsoap2.c(4726): malloc(24) = 0x12853680 stdsoap2.c(4726): malloc(32) = 0x128536d0 stdsoap2.c(4726): malloc(32) = 0x12853730 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffff1b6c720 type=93: not found stdsoap2.c(4149): malloc(1288) = 0x12853790 Pointer enter location=0x7ffff1b6c720 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7ffff1b6c720 type=93 (0 0) Lookup location=0x12851b90 type=30: not found Pointer enter location=0x12851b90 array=(nil) size=0 dim=0 type=30 id=2 Reference 0x12851b90 type=30 (0 0) Lookup location=0x128536d0 type=29: not found Pointer enter location=0x128536d0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0x128536d0 type=29 (0 0) Lookup location=0x12839800 type=3: not found Pointer enter location=0x12839800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x12839800 type=3 (0 0) Lookup location=0x2b51a91e30d4 type=131: not found Pointer enter location=0x2b51a91e30d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2b51a91e30d4 type=131 (0 0) Lookup location=0x7ffff1b6c8c0 type=1: not found Pointer enter location=0x7ffff1b6c8c0 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7ffff1b6c8c0 type=1 (0 0) Lookup location=0x12853610 type=28: not found Pointer enter location=0x12853610 array=(nil) size=0 dim=0 type=28 id=7 Reference 0x12853610 type=28 (0 0) Lookup location=0x12853730 type=14: not found Pointer enter location=0x12853730 array=(nil) size=0 dim=0 type=14 id=8 Reference 0x12853730 type=14 (0 0) Lookup location=0x2b51a81e9286 type=3: not found Pointer enter location=0x2b51a81e9286 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2b51a81e9286 type=3 (0 0) Lookup location=0x2b51a81e4205 type=3: not found Pointer enter location=0x2b51a81e4205 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b51a81e4205 type=3 (0 0) Lookup location=0x2b51a81e420d type=3: not found Pointer enter location=0x2b51a81e420d array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b51a81e420d type=3 (0 0) Lookup location=0x2b51a81e420a type=3: not found Pointer enter location=0x2b51a81e420a array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b51a81e420a type=3 (0 0) Lookup location=0x2b51a81e4212 type=3: not found Pointer enter location=0x2b51a81e4212 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b51a81e4212 type=3 (0 0) Lookup location=0x2b51a81e427b type=3: not found Pointer enter location=0x2b51a81e427b array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b51a81e427b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x12853cd0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff1b531a0 type=347: not found Embedded_id 0x7ffff1b531a0 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7ffff1b6c720 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7ffff1b6c720 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x12851b90 type=30 id=2 Is embedded? 0 0 Embedded_id 0x12851b90 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x128536d0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x128536d0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x12839800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b51a91e30d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b51a91e30d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7ffff1b6c8c0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7ffff1b6c8c0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x12853610 type=28 id=7 Is embedded? 0 0 Embedded_id 0x12853610 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x12853730 type=14 id=8 Is embedded? 0 0 Embedded_id 0x12853730 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b51a81e9286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b51a81e4205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b51a81e420d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b51a81e420a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b51a81e4212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b51a81e427b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=5 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff1b531a0 type=347: not found Embedded_id 0x7ffff1b531a0 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7ffff1b6c720 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7ffff1b6c720 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x12851b90 type=30 id=2 Is embedded? 0 0 Embedded_id 0x12851b90 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x128536d0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x128536d0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x12839800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b51a91e30d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b51a91e30d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7ffff1b6c8c0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7ffff1b6c8c0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x12853610 type=28 id=7 Is embedded? 0 0 Embedded_id 0x12853610 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x12853730 type=14 id=8 Is embedded? 0 0 Embedded_id 0x12853730 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b51a81e9286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b51a81e4205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b51a81e420d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b51a81e420a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b51a81e4212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b51a81e427b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x12853cd0) Free pointer hashtable stdsoap2.c(4079): free(0x12853790) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x12853cd0 Free ID hashtable Read 1049 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1285b080 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x1285f0e0 stdsoap2.c(7219): malloc(64) = 0x1285d700 stdsoap2.c(2336): malloc(40) = 0x1285b6e0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x1285e1a0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x12856200 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1287dab0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1285e4a0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1285e540 stdsoap2.c(7172): malloc(62) = 0x1285b460 stdsoap2.c(7219): malloc(64) = 0x1285b2e0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7ffff1b6c770 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x1286fea0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1286fee0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1286fee0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x128707e0 Enter id='' type=3 loc=0x128707e0 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x12870850 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1285f350 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x1285af70 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x1285e100 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x12861230 stdsoap2.c(6963): free(0x1285f0e0) stdsoap2.c(4726): malloc(104) = 0x12861330 Enter id='' type=6 loc=0x12861330 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x128613d0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x128613d0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x1285af70->(nil)) stdsoap2.c(4726): malloc(24) = 0x12870460 First block Copy 8 bytes from 0x1285af80 to 0x12870460 Next block stdsoap2.c(2026): free(0x1285af70) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1285f350) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x1285e4a0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1287dab0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x12856200) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x1285e1a0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x1285b6e0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x1285b2e0) stdsoap2.c(5406): free(0x1285b460) stdsoap2.c(5405): free(0x1285d700) stdsoap2.c(5406): free(0x1285b080) stdsoap2.c(5411): free(0x12861230) stdsoap2.c(5422): free(0x1285e540) stdsoap2.c(5428): free(0x12853cd0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x12870460) stdsoap2.c(4857): free(0x128613d0) stdsoap2.c(4857): free(0x12861330) stdsoap2.c(4857): free(0x1285e100) stdsoap2.c(4857): free(0x12870850) stdsoap2.c(4857): free(0x128707e0) stdsoap2.c(4857): free(0x1286fee0) stdsoap2.c(4857): free(0x1286fea0) stdsoap2.c(4857): free(0x12853730) stdsoap2.c(4857): free(0x128536d0) stdsoap2.c(4857): free(0x12853680) stdsoap2.c(4857): free(0x12853610) stdsoap2.c(4857): free(0x12851bc0) stdsoap2.c(4857): free(0x12851b90) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x128434c0) Free logfiles stdsoap2.c(2959): free(0x12843560) stdsoap2.c(2959): free(0x12844670) stdsoap2.c(2959): free(0x12843540) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffff1b53250 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x1283edd0 Pointer enter location=0x7ffff1b53250 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7ffff1b53250 type=95 (0 0) Lookup location=0x1285b6e0 type=3: not found Pointer enter location=0x1285b6e0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x1285b6e0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x1283f2e0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff1b531e0 type=353: not found Embedded_id 0x7ffff1b531e0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7ffff1b53250 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7ffff1b53250 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x1285b6e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff1b531e0 type=353: not found Embedded_id 0x7ffff1b531e0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7ffff1b53250 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7ffff1b53250 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x1285b6e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x1283f2e0) Free pointer hashtable stdsoap2.c(4079): free(0x1283edd0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x12848650 Free ID hashtable Read 1174 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1056 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1287a1f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x12879ba0 stdsoap2.c(7219): malloc(64) = 0x1287a290 stdsoap2.c(2336): malloc(40) = 0x12876ef0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x12879f80 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x12879c60 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1287a180 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x12879850 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x128797a0 stdsoap2.c(7172): malloc(62) = 0x12879470 stdsoap2.c(7219): malloc(64) = 0x12876ce0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7ffff1b53270 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x12880590 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x128447e0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x128447e0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x12844fd0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1287a070 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x12879910 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x128498b0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x12847430 stdsoap2.c(6963): free(0x12879ba0) stdsoap2.c(4726): malloc(104) = 0x12847050 Enter id='' type=6 loc=0x12847050 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x128450a0 Element content value='12' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x12847120 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x12847120 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x128798c0 Element content value='7200' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x12876ac0 Enter id='' type=6 loc=0x12876ac0 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x12879910->(nil)) stdsoap2.c(4726): malloc(24) = 0x12876f60 First block Copy 8 bytes from 0x12879920 to 0x12876f60 Next block stdsoap2.c(2026): free(0x12879910) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1287a070) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x12879850) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1287a180) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x12879c60) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x12879f80) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x12876ef0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x12876ce0) stdsoap2.c(5406): free(0x12879470) stdsoap2.c(5405): free(0x1287a290) stdsoap2.c(5406): free(0x1287a1f0) stdsoap2.c(5411): free(0x12847430) stdsoap2.c(5422): free(0x128797a0) stdsoap2.c(5428): free(0x12848650) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x12876f60) stdsoap2.c(4857): free(0x12876ac0) stdsoap2.c(4857): free(0x128798c0) stdsoap2.c(4857): free(0x12847120) stdsoap2.c(4857): free(0x128450a0) stdsoap2.c(4857): free(0x12847050) stdsoap2.c(4857): free(0x128498b0) stdsoap2.c(4857): free(0x12844fd0) stdsoap2.c(4857): free(0x128447e0) stdsoap2.c(4857): free(0x12880590) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x1285b670) Free logfiles stdsoap2.c(2959): free(0x12843540) stdsoap2.c(2959): free(0x12844670) stdsoap2.c(2959): free(0x12843560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x1283b400 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffff1b6d0c0 type=109: not found stdsoap2.c(4149): malloc(1288) = 0x1284ace0 Pointer enter location=0x7ffff1b6d0c0 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7ffff1b6d0c0 type=109 (0 0) Lookup location=0x1285b6e0 type=3: not found Pointer enter location=0x1285b6e0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x1285b6e0 type=3 (0 0) Lookup location=0x1283b400 type=27: not found Pointer enter location=0x1283b400 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x1283b400 type=27 (0 0) Lookup location=0x12839800 type=3: not found Pointer enter location=0x12839800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x12839800 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x1283b490 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff1b53b60 type=395: not found Embedded_id 0x7ffff1b53b60 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7ffff1b6d0c0 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7ffff1b6d0c0 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x1285b6e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x1283b400 type=27 id=3 Is embedded? 0 0 Embedded_id 0x1283b400 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x12839800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=5 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffff1b53b60 type=395: not found Embedded_id 0x7ffff1b53b60 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7ffff1b6d0c0 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7ffff1b6d0c0 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x1285b6e0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x1283b400 type=27 id=3 Is embedded? 0 0 Embedded_id 0x1283b400 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x12839800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x1283b490) Free pointer hashtable stdsoap2.c(4079): free(0x1284ace0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1283b490 Free ID hashtable Read 958 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x128645e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x128647c0 stdsoap2.c(7219): malloc(64) = 0x128643c0 stdsoap2.c(2336): malloc(40) = 0x12864a90 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x12864880 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1288f310 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x128617d0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x12861900 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1288dd20 stdsoap2.c(7172): malloc(62) = 0x128731f0 stdsoap2.c(7219): malloc(64) = 0x12864470 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7ffff1b6d0e0 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x128644c0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x12861710 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x12861710 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x12864c10 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x12864530 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x128657f0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x12873b20 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x12868f80 stdsoap2.c(6963): free(0x128647c0) stdsoap2.c(4726): malloc(104) = 0x12872e00 Enter id='' type=6 loc=0x12872e00 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x12872ea0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x12872ea0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x128657f0->(nil)) stdsoap2.c(4726): malloc(24) = 0x12861b80 First block Copy 8 bytes from 0x12865800 to 0x12861b80 Next block stdsoap2.c(2026): free(0x128657f0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x12864530) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x12861900) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x128617d0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x1288f310) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x12864880) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x12864a90) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x12864470) stdsoap2.c(5406): free(0x128731f0) stdsoap2.c(5405): free(0x128643c0) stdsoap2.c(5406): free(0x128645e0) stdsoap2.c(5411): free(0x12868f80) stdsoap2.c(5422): free(0x1288dd20) stdsoap2.c(5428): free(0x1283b490) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x12861b80) stdsoap2.c(4857): free(0x12872ea0) stdsoap2.c(4857): free(0x12872e00) stdsoap2.c(4857): free(0x12873b20) stdsoap2.c(4857): free(0x12864c10) stdsoap2.c(4857): free(0x12861710) stdsoap2.c(4857): free(0x128644c0) stdsoap2.c(4857): free(0x1283b400) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x12839890) Free logfiles stdsoap2.c(2959): free(0x1287cdb0) stdsoap2.c(2959): free(0x1287cdd0) stdsoap2.c(2959): free(0x1287b830) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff6b44fca0 type=81: not found stdsoap2.c(4149): malloc(1288) = 0x3162c00 Pointer enter location=0x7fff6b44fca0 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fff6b44fca0 type=81 (0 0) Lookup location=0x315d700 type=3: not found Pointer enter location=0x315d700 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x315d700 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x3163110 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436750 type=311: not found Embedded_id 0x7fff6b436750 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff6b44fca0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b44fca0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x315d700 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=5 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436750 type=311: not found Embedded_id 0x7fff6b436750 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff6b44fca0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b44fca0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x315d700 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x3163110) Free pointer hashtable stdsoap2.c(4079): free(0x3162c00) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x317f170 Free ID hashtable Read 759 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x316a3c0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x316e420 stdsoap2.c(7219): malloc(64) = 0x316ca40 stdsoap2.c(2336): malloc(40) = 0x316aa20 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x316d4e0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x3165530 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x318ce40 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x316d7e0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x316d880 stdsoap2.c(7172): malloc(62) = 0x316a7a0 stdsoap2.c(7219): malloc(64) = 0x316a620 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fff6b44fcc0 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x316e690 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x317fae0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x317fae0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0x317fb40 Enter id='' type=3 loc=0x317fb40 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x316d7e0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x318ce40) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x3165530) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x316d4e0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x316aa20) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x316a620) stdsoap2.c(5406): free(0x316a7a0) stdsoap2.c(5405): free(0x316ca40) stdsoap2.c(5406): free(0x316a3c0) stdsoap2.c(5411): free(0x316e420) stdsoap2.c(5422): free(0x316d880) stdsoap2.c(5428): free(0x317f170) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x317fb40) stdsoap2.c(4857): free(0x317fae0) stdsoap2.c(4857): free(0x316e690) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x314e510) Free logfiles stdsoap2.c(2959): free(0x314d560) stdsoap2.c(2959): free(0x314e620) stdsoap2.c(2959): free(0x314f650) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x314add0 stdsoap2.c(4726): malloc(24) = 0x314ae00 stdsoap2.c(4726): malloc(48) = 0x314c860 stdsoap2.c(4726): malloc(24) = 0x314c8d0 stdsoap2.c(4726): malloc(32) = 0x314c920 stdsoap2.c(4726): malloc(24) = 0x314c980 stdsoap2.c(4726): malloc(32) = 0x314c9d0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff6b44fca0 type=101: not found stdsoap2.c(4149): malloc(1288) = 0x314ca30 Pointer enter location=0x7fff6b44fca0 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fff6b44fca0 type=101 (0 0) Lookup location=0x314add0 type=32: not found Pointer enter location=0x314add0 array=(nil) size=0 dim=0 type=32 id=2 Reference 0x314add0 type=32 (0 0) Lookup location=0x314c920 type=31: not found Pointer enter location=0x314c920 array=(nil) size=0 dim=0 type=31 id=3 Reference 0x314c920 type=31 (0 0) Lookup location=0x3143800 type=3: not found Pointer enter location=0x3143800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x3143800 type=3 (0 0) Lookup location=0x314c980 type=148: not found Pointer enter location=0x314c980 array=(nil) size=0 dim=0 type=148 id=5 Reference 0x314c980 type=148 (0 0) Lookup location=0x7fff6b44fe60 type=1: not found Pointer enter location=0x7fff6b44fe60 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff6b44fe60 type=1 (0 0) Lookup location=0x2af8903e30c8 type=131: not found Pointer enter location=0x2af8903e30c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2af8903e30c8 type=131 (0 0) Lookup location=0x314c860 type=28: not found Pointer enter location=0x314c860 array=(nil) size=0 dim=0 type=28 id=8 Reference 0x314c860 type=28 (0 0) Lookup location=0x314c9d0 type=14: not found Pointer enter location=0x314c9d0 array=(nil) size=0 dim=0 type=14 id=9 Reference 0x314c9d0 type=14 (0 0) Lookup location=0x2af88f3e9286 type=3: not found Pointer enter location=0x2af88f3e9286 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2af88f3e9286 type=3 (0 0) Lookup location=0x2af88f3e4205 type=3: not found Pointer enter location=0x2af88f3e4205 array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2af88f3e4205 type=3 (0 0) Lookup location=0x2af88f3e420d type=3: not found Pointer enter location=0x2af88f3e420d array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2af88f3e420d type=3 (0 0) Lookup location=0x2af88f3e420a type=3: not found Pointer enter location=0x2af88f3e420a array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2af88f3e420a type=3 (0 0) Lookup location=0x2af88f3e4212 type=3: not found Pointer enter location=0x2af88f3e4212 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2af88f3e4212 type=3 (0 0) Lookup location=0x2af88f3e427b type=3: not found Pointer enter location=0x2af88f3e427b array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2af88f3e427b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x314cf70 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436710 type=371: not found Embedded_id 0x7fff6b436710 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff6b44fca0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b44fca0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x314add0 type=32 id=2 Is embedded? 0 0 Embedded_id 0x314add0 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x314c920 type=31 id=3 Is embedded? 0 0 Embedded_id 0x314c920 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x3143800 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x314c980 type=148 id=5 Is embedded? 0 0 Embedded_id 0x314c980 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff6b44fe60 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff6b44fe60 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2af8903e30c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2af8903e30c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x314c860 type=28 id=8 Is embedded? 0 0 Embedded_id 0x314c860 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x314c9d0 type=14 id=9 Is embedded? 0 0 Embedded_id 0x314c9d0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af88f3e9286 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e4205 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e420d type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e420a type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e4212 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e427b type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1154 New count is 1154 bytes Begin send phase (socket=5 mode=0x1 count=1154) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436710 type=371: not found Embedded_id 0x7fff6b436710 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff6b44fca0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b44fca0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x314add0 type=32 id=2 Is embedded? 0 0 Embedded_id 0x314add0 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x314c920 type=31 id=3 Is embedded? 0 0 Embedded_id 0x314c920 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x3143800 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x314c980 type=148 id=5 Is embedded? 0 0 Embedded_id 0x314c980 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff6b44fe60 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff6b44fe60 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2af8903e30c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2af8903e30c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x314c860 type=28 id=8 Is embedded? 0 0 Embedded_id 0x314c860 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x314c9d0 type=14 id=9 Is embedded? 0 0 Embedded_id 0x314c9d0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af88f3e9286 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e4205 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e420d type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e420a type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e4212 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e427b type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x314cf70) Free pointer hashtable stdsoap2.c(4079): free(0x314ca30) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x314cf70 Free ID hashtable Read 1037 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 920 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x3158590 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x3158770 stdsoap2.c(7219): malloc(64) = 0x3158370 stdsoap2.c(2336): malloc(40) = 0x3158a40 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x3158830 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x318e3a0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x316e690 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x31557b0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x318d0a0 stdsoap2.c(7172): malloc(62) = 0x316ebb0 stdsoap2.c(7219): malloc(64) = 0x3158450 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fff6b44fd00 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x31556c0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x3158bf0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x3158bf0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x3172350 Enter id='' type=3 loc=0x3172350 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x31723c0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x31584e0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x316ecb0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x317c200 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x317ce50 stdsoap2.c(6963): free(0x3158770) stdsoap2.c(4726): malloc(104) = 0x317c290 Enter id='' type=6 loc=0x317c290 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x317cf40 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x317cf40 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x316ecb0->(nil)) stdsoap2.c(4726): malloc(24) = 0x3155b30 First block Copy 8 bytes from 0x316ecc0 to 0x3155b30 Next block stdsoap2.c(2026): free(0x316ecb0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x31584e0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x31557b0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x316e690) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x318e3a0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x3158830) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x3158a40) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x3158450) stdsoap2.c(5406): free(0x316ebb0) stdsoap2.c(5405): free(0x3158370) stdsoap2.c(5406): free(0x3158590) stdsoap2.c(5411): free(0x317ce50) stdsoap2.c(5422): free(0x318d0a0) stdsoap2.c(5428): free(0x314cf70) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x3155b30) stdsoap2.c(4857): free(0x317cf40) stdsoap2.c(4857): free(0x317c290) stdsoap2.c(4857): free(0x317c200) stdsoap2.c(4857): free(0x31723c0) stdsoap2.c(4857): free(0x3172350) stdsoap2.c(4857): free(0x3158bf0) stdsoap2.c(4857): free(0x31556c0) stdsoap2.c(4857): free(0x314c9d0) stdsoap2.c(4857): free(0x314c980) stdsoap2.c(4857): free(0x314c920) stdsoap2.c(4857): free(0x314c8d0) stdsoap2.c(4857): free(0x314c860) stdsoap2.c(4857): free(0x314ae00) stdsoap2.c(4857): free(0x314add0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x316d810) Free logfiles stdsoap2.c(2959): free(0x314f650) stdsoap2.c(2959): free(0x314e620) stdsoap2.c(2959): free(0x314d560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff6b4367f0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x3151750 Pointer enter location=0x7fff6b4367f0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff6b4367f0 type=103 (0 0) Lookup location=0x3158a40 type=3: not found Pointer enter location=0x3158a40 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x3158a40 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x3151c60 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436780 type=377: not found Embedded_id 0x7fff6b436780 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff6b4367f0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b4367f0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x3158a40 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436780 type=377: not found Embedded_id 0x7fff6b436780 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff6b4367f0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b4367f0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x3158a40 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x3151c60) Free pointer hashtable stdsoap2.c(4079): free(0x3151750) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x31721a0 Free ID hashtable Read 1121 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1003 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x316e7c0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x314c850 stdsoap2.c(7219): malloc(64) = 0x318c860 stdsoap2.c(2336): malloc(40) = 0x316e930 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x3149d60 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x314c6d0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x3149930 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x316e9f0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x318ceb0 stdsoap2.c(7172): malloc(62) = 0x314ca10 stdsoap2.c(7219): malloc(64) = 0x3149b50 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff6b436810 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x3149ba0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x314cd50 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x314cd50 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x31499d0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x31528e0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x316e8f0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x317c420 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x317cd30 stdsoap2.c(6963): free(0x314c850) stdsoap2.c(4726): malloc(104) = 0x316e5c0 Enter id='' type=6 loc=0x316e5c0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x316e660 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x316e660 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x314c9a0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x316e720 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x317c9b0 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x316e8f0->(nil)) stdsoap2.c(4726): malloc(24) = 0x31722a0 First block Copy 8 bytes from 0x316e900 to 0x31722a0 Next block stdsoap2.c(2026): free(0x316e8f0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x31528e0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x316e9f0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x3149930) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x314c6d0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x3149d60) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x316e930) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x3149b50) stdsoap2.c(5406): free(0x314ca10) stdsoap2.c(5405): free(0x318c860) stdsoap2.c(5406): free(0x316e7c0) stdsoap2.c(5411): free(0x317cd30) stdsoap2.c(5422): free(0x318ceb0) stdsoap2.c(5428): free(0x31721a0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x31722a0) stdsoap2.c(4857): free(0x317c9b0) stdsoap2.c(4857): free(0x316e720) stdsoap2.c(4857): free(0x314c9a0) stdsoap2.c(4857): free(0x316e660) stdsoap2.c(4857): free(0x316e5c0) stdsoap2.c(4857): free(0x317c420) stdsoap2.c(4857): free(0x31499d0) stdsoap2.c(4857): free(0x314cd50) stdsoap2.c(4857): free(0x3149ba0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x3158bc0) Free logfiles stdsoap2.c(2959): free(0x314d560) stdsoap2.c(2959): free(0x314e620) stdsoap2.c(2959): free(0x314f650) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff6b4367f0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x31686f0 Pointer enter location=0x7fff6b4367f0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff6b4367f0 type=103 (0 0) Lookup location=0x3158a40 type=3: not found Pointer enter location=0x3158a40 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x3158a40 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x3168c00 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436780 type=377: not found Embedded_id 0x7fff6b436780 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff6b4367f0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b4367f0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x3158a40 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436780 type=377: not found Embedded_id 0x7fff6b436780 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff6b4367f0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b4367f0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x3158a40 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x3168c00) Free pointer hashtable stdsoap2.c(4079): free(0x31686f0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x3181860 Free ID hashtable Read 1121 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1003 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x31547c0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x31542a0 stdsoap2.c(7219): malloc(64) = 0x3153cf0 stdsoap2.c(2336): malloc(40) = 0x3153f00 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x3149d10 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x3170e60 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x3154830 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x3193240 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x3170dc0 stdsoap2.c(7172): malloc(62) = 0x3170b60 stdsoap2.c(7219): malloc(64) = 0x3180f90 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff6b436810 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x3153e50 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x31545c0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x31545c0 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x3154620 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x3153fc0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x3154190 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x3172300 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x31723d0 stdsoap2.c(6963): free(0x31542a0) stdsoap2.c(4726): malloc(104) = 0x31550f0 Enter id='' type=6 loc=0x31550f0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x3155190 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x3155190 size=4 level=0 Element content value='SRM_REQUEST_INPROGRESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x3153470 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x31550b0 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x3171410 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x3154190->(nil)) stdsoap2.c(4726): malloc(24) = 0x31814e0 First block Copy 8 bytes from 0x31541a0 to 0x31814e0 Next block stdsoap2.c(2026): free(0x3154190) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x3153fc0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x3193240) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x3154830) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x3170e60) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x3149d10) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x3153f00) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x3180f90) stdsoap2.c(5406): free(0x3170b60) stdsoap2.c(5405): free(0x3153cf0) stdsoap2.c(5406): free(0x31547c0) stdsoap2.c(5411): free(0x31723d0) stdsoap2.c(5422): free(0x3170dc0) stdsoap2.c(5428): free(0x3181860) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x31814e0) stdsoap2.c(4857): free(0x3171410) stdsoap2.c(4857): free(0x31550b0) stdsoap2.c(4857): free(0x3153470) stdsoap2.c(4857): free(0x3155190) stdsoap2.c(4857): free(0x31550f0) stdsoap2.c(4857): free(0x3172300) stdsoap2.c(4857): free(0x3154620) stdsoap2.c(4857): free(0x31545c0) stdsoap2.c(4857): free(0x3153e50) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x3149a00) Free logfiles stdsoap2.c(2959): free(0x314f650) stdsoap2.c(2959): free(0x314e620) stdsoap2.c(2959): free(0x314d560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff6b4367f0 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x3166660 Pointer enter location=0x7fff6b4367f0 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff6b4367f0 type=103 (0 0) Lookup location=0x3158a40 type=3: not found Pointer enter location=0x3158a40 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x3158a40 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x31711d0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436780 type=377: not found Embedded_id 0x7fff6b436780 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff6b4367f0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b4367f0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x3158a40 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436780 type=377: not found Embedded_id 0x7fff6b436780 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff6b4367f0 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b4367f0 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x3158a40 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x31711d0) Free pointer hashtable stdsoap2.c(4079): free(0x3166660) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x31549a0 Free ID hashtable Read 1221 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1103 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x314a9f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x3154620 stdsoap2.c(7219): malloc(64) = 0x314cdd0 stdsoap2.c(2336): malloc(40) = 0x314a690 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x314ab90 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x318d110 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x318cf50 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x3167d40 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x31550e0 stdsoap2.c(7172): malloc(62) = 0x31540c0 stdsoap2.c(7219): malloc(64) = 0x31546a0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff6b436810 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x31546f0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x314a860 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x314a860 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x31548c0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x31551b0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x314c820 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x31547e0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x31541b0 stdsoap2.c(6963): free(0x3154620) stdsoap2.c(4726): malloc(104) = 0x3171200 Enter id='' type=6 loc=0x3171200 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x31722d0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x31722d0 size=4 level=0 Element content value='SRM_SPACE_AVAILABLE' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x31550a0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x314aae0 Element content value='7198' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x31815a0 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x3172400 Enter id='' type=6 loc=0x3172400 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x314c820->(nil)) stdsoap2.c(4726): malloc(24) = 0x3181950 First block Copy 8 bytes from 0x314c830 to 0x3181950 Next block stdsoap2.c(2026): free(0x314c820) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x31551b0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x3167d40) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x318cf50) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x318d110) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x314ab90) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x314a690) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x31546a0) stdsoap2.c(5406): free(0x31540c0) stdsoap2.c(5405): free(0x314cdd0) stdsoap2.c(5406): free(0x314a9f0) stdsoap2.c(5411): free(0x31541b0) stdsoap2.c(5422): free(0x31550e0) stdsoap2.c(5428): free(0x31549a0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x3181950) stdsoap2.c(4857): free(0x3172400) stdsoap2.c(4857): free(0x31815a0) stdsoap2.c(4857): free(0x314aae0) stdsoap2.c(4857): free(0x31550a0) stdsoap2.c(4857): free(0x31722d0) stdsoap2.c(4857): free(0x3171200) stdsoap2.c(4857): free(0x31547e0) stdsoap2.c(4857): free(0x31548c0) stdsoap2.c(4857): free(0x314a860) stdsoap2.c(4857): free(0x31546f0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x31712e0) Free logfiles stdsoap2.c(2959): free(0x314d560) stdsoap2.c(2959): free(0x314e620) stdsoap2.c(2959): free(0x314f650) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x31540c0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff6b450660 type=111: not found stdsoap2.c(4149): malloc(1288) = 0x3172320 Pointer enter location=0x7fff6b450660 array=(nil) size=0 dim=0 type=111 id=1 Reference 0x7fff6b450660 type=111 (0 0) Lookup location=0x3158a40 type=3: not found Pointer enter location=0x3158a40 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x3158a40 type=3 (0 0) Lookup location=0x31540c0 type=27: not found Pointer enter location=0x31540c0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x31540c0 type=27 (0 0) Lookup location=0x3143800 type=3: not found Pointer enter location=0x3143800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x3143800 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x3154150 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b437100 type=401: not found Embedded_id 0x7fff6b437100 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff6b450660 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b450660 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x3158a40 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x31540c0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x31540c0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x3143800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=720 New count is 720 bytes Begin send phase (socket=5 mode=0x1 count=720) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b437100 type=401: not found Embedded_id 0x7fff6b437100 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff6b450660 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b450660 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x3158a40 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x31540c0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x31540c0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x3143800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x3154150) Free pointer hashtable stdsoap2.c(4079): free(0x3172320) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x3154150 Free ID hashtable Read 938 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 821 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x317bcb0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x317c720 stdsoap2.c(7219): malloc(64) = 0x317cc70 stdsoap2.c(2336): malloc(40) = 0x3178d50 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x3174250 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x3179040 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x319d130 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x3178dc0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x317bd20 stdsoap2.c(7172): malloc(62) = 0x317bd60 stdsoap2.c(7219): malloc(64) = 0x317cbe0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPutDoneResponse' 'srm2:srmPutDoneResponse' Begin element found (level=3) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' Enter id='' type=396 loc=0x7fff6b450680 size=8 level=0 Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Reverting last element (level=3) Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Enter id='' type=112 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x317baf0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x317bb50 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x317bb50 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x318dff0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x317cb70 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x3178950 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x318d680 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x317ea20 stdsoap2.c(6963): free(0x317c720) stdsoap2.c(4726): malloc(104) = 0x317eb50 Enter id='' type=6 loc=0x317eb50 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x317ebf0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x317ebf0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x3178950->(nil)) stdsoap2.c(4726): malloc(24) = 0x318dc40 First block Copy 8 bytes from 0x3178960 to 0x318dc40 Next block stdsoap2.c(2026): free(0x3178950) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x317cb70) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPutDoneResponse'='srmPutDoneResponse' End element found (level=2) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x3178dc0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x319d130) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x3179040) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x3174250) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x3178d50) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x317cbe0) stdsoap2.c(5406): free(0x317bd60) stdsoap2.c(5405): free(0x317cc70) stdsoap2.c(5406): free(0x317bcb0) stdsoap2.c(5411): free(0x317ea20) stdsoap2.c(5422): free(0x317bd20) stdsoap2.c(5428): free(0x3154150) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x318dc40) stdsoap2.c(4857): free(0x317ebf0) stdsoap2.c(4857): free(0x317eb50) stdsoap2.c(4857): free(0x318d680) stdsoap2.c(4857): free(0x318dff0) stdsoap2.c(4857): free(0x317bb50) stdsoap2.c(4857): free(0x317baf0) stdsoap2.c(4857): free(0x31540c0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x3143860) Free logfiles stdsoap2.c(2959): free(0x316ff70) stdsoap2.c(2959): free(0x314aea0) stdsoap2.c(2959): free(0x314c820) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x314a690 stdsoap2.c(4726): malloc(24) = 0x3172bb0 stdsoap2.c(4726): malloc(48) = 0x314d500 stdsoap2.c(4726): malloc(24) = 0x314aea0 stdsoap2.c(4726): malloc(32) = 0x31675c0 stdsoap2.c(4726): malloc(32) = 0x3165df0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff6b44fcc0 type=93: not found stdsoap2.c(4149): malloc(1288) = 0x3171640 Pointer enter location=0x7fff6b44fcc0 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fff6b44fcc0 type=93 (0 0) Lookup location=0x314a690 type=30: not found Pointer enter location=0x314a690 array=(nil) size=0 dim=0 type=30 id=2 Reference 0x314a690 type=30 (0 0) Lookup location=0x31675c0 type=29: not found Pointer enter location=0x31675c0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0x31675c0 type=29 (0 0) Lookup location=0x319c250 type=3: not found Pointer enter location=0x319c250 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x319c250 type=3 (0 0) Lookup location=0x2af8903e30d4 type=131: not found Pointer enter location=0x2af8903e30d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2af8903e30d4 type=131 (0 0) Lookup location=0x7fff6b44fe60 type=1: not found Pointer enter location=0x7fff6b44fe60 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff6b44fe60 type=1 (0 0) Lookup location=0x314d500 type=28: not found Pointer enter location=0x314d500 array=(nil) size=0 dim=0 type=28 id=7 Reference 0x314d500 type=28 (0 0) Lookup location=0x3165df0 type=14: not found Pointer enter location=0x3165df0 array=(nil) size=0 dim=0 type=14 id=8 Reference 0x3165df0 type=14 (0 0) Lookup location=0x2af88f3e9286 type=3: not found Pointer enter location=0x2af88f3e9286 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2af88f3e9286 type=3 (0 0) Lookup location=0x2af88f3e4205 type=3: not found Pointer enter location=0x2af88f3e4205 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2af88f3e4205 type=3 (0 0) Lookup location=0x2af88f3e420d type=3: not found Pointer enter location=0x2af88f3e420d array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2af88f3e420d type=3 (0 0) Lookup location=0x2af88f3e420a type=3: not found Pointer enter location=0x2af88f3e420a array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2af88f3e420a type=3 (0 0) Lookup location=0x2af88f3e4212 type=3: not found Pointer enter location=0x2af88f3e4212 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2af88f3e4212 type=3 (0 0) Lookup location=0x2af88f3e427b type=3: not found Pointer enter location=0x2af88f3e427b array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2af88f3e427b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x31437e0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436740 type=347: not found Embedded_id 0x7fff6b436740 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff6b44fcc0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b44fcc0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x314a690 type=30 id=2 Is embedded? 0 0 Embedded_id 0x314a690 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x31675c0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x31675c0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x319c250 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2af8903e30d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2af8903e30d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff6b44fe60 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff6b44fe60 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x314d500 type=28 id=7 Is embedded? 0 0 Embedded_id 0x314d500 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x3165df0 type=14 id=8 Is embedded? 0 0 Embedded_id 0x3165df0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af88f3e9286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e4205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e420d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e420a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e4212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e427b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=5 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436740 type=347: not found Embedded_id 0x7fff6b436740 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff6b44fcc0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b44fcc0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x314a690 type=30 id=2 Is embedded? 0 0 Embedded_id 0x314a690 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x31675c0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x31675c0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x319c250 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2af8903e30d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2af8903e30d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff6b44fe60 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff6b44fe60 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x314d500 type=28 id=7 Is embedded? 0 0 Embedded_id 0x314d500 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x3165df0 type=14 id=8 Is embedded? 0 0 Embedded_id 0x3165df0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af88f3e9286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e4205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e420d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e420a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e4212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af88f3e427b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x31437e0) Free pointer hashtable stdsoap2.c(4079): free(0x3171640) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x319a240 Free ID hashtable Read 1049 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x31964a0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x3195e00 stdsoap2.c(7219): malloc(64) = 0x3193ef0 stdsoap2.c(2336): malloc(40) = 0x3193f90 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x3193aa0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x31975d0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x31a3ac0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x3196760 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x31a24d0 stdsoap2.c(7172): malloc(62) = 0x31941d0 stdsoap2.c(7219): malloc(64) = 0x3188300 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fff6b44fd10 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x31963d0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x3196b90 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x3196b90 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x3196210 Enter id='' type=3 loc=0x3196210 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x3196c70 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x31974f0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x3196590 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x3196db0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x3196a70 stdsoap2.c(6963): free(0x3195e00) stdsoap2.c(4726): malloc(104) = 0x31437e0 Enter id='' type=6 loc=0x31437e0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x3143880 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x3143880 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x3196590->(nil)) stdsoap2.c(4726): malloc(24) = 0x3188880 First block Copy 8 bytes from 0x31965a0 to 0x3188880 Next block stdsoap2.c(2026): free(0x3196590) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x31974f0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x3196760) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x31a3ac0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x31975d0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x3193aa0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x3193f90) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x3188300) stdsoap2.c(5406): free(0x31941d0) stdsoap2.c(5405): free(0x3193ef0) stdsoap2.c(5406): free(0x31964a0) stdsoap2.c(5411): free(0x3196a70) stdsoap2.c(5422): free(0x31a24d0) stdsoap2.c(5428): free(0x319a240) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x3188880) stdsoap2.c(4857): free(0x3143880) stdsoap2.c(4857): free(0x31437e0) stdsoap2.c(4857): free(0x3196db0) stdsoap2.c(4857): free(0x3196c70) stdsoap2.c(4857): free(0x3196210) stdsoap2.c(4857): free(0x3196b90) stdsoap2.c(4857): free(0x31963d0) stdsoap2.c(4857): free(0x3165df0) stdsoap2.c(4857): free(0x31675c0) stdsoap2.c(4857): free(0x314aea0) stdsoap2.c(4857): free(0x314d500) stdsoap2.c(4857): free(0x3172bb0) stdsoap2.c(4857): free(0x314a690) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x3154880) Free logfiles stdsoap2.c(2959): free(0x31788e0) stdsoap2.c(2959): free(0x314c860) stdsoap2.c(2959): free(0x314aec0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff6b4367f0 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x3171640 Pointer enter location=0x7fff6b4367f0 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff6b4367f0 type=95 (0 0) Lookup location=0x3193f90 type=3: not found Pointer enter location=0x3193f90 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x3193f90 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x31437e0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436780 type=353: not found Embedded_id 0x7fff6b436780 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff6b4367f0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b4367f0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x3193f90 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b436780 type=353: not found Embedded_id 0x7fff6b436780 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff6b4367f0 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b4367f0 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x3193f90 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x31437e0) Free pointer hashtable stdsoap2.c(4079): free(0x3171640) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x3177050 Free ID hashtable Read 1177 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1059 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x31997e0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x3174370 stdsoap2.c(7219): malloc(64) = 0x318ea70 stdsoap2.c(2336): malloc(40) = 0x3173460 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x319c1d0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x3173610 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x3185970 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x3186e40 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x3199210 stdsoap2.c(7172): malloc(62) = 0x3173330 stdsoap2.c(7219): malloc(64) = 0x319bfe0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff6b436810 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x319c030 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x3186d20 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x3186d20 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x3173b50 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x31739a0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x319c0a0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x3173a70 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x31738b0 stdsoap2.c(6963): free(0x3174370) stdsoap2.c(4726): malloc(104) = 0x31437e0 Enter id='' type=6 loc=0x31437e0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x3174330 Element content value='65536' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x3199620 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x3199620 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x3177230 Element content value='7200' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0x31996b0 Enter id='' type=6 loc=0x31996b0 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x319c0a0->(nil)) stdsoap2.c(4726): malloc(24) = 0x318ee20 First block Copy 8 bytes from 0x319c0b0 to 0x318ee20 Next block stdsoap2.c(2026): free(0x319c0a0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x31739a0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x3186e40) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x3185970) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x3173610) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x319c1d0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x3173460) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x319bfe0) stdsoap2.c(5406): free(0x3173330) stdsoap2.c(5405): free(0x318ea70) stdsoap2.c(5406): free(0x31997e0) stdsoap2.c(5411): free(0x31738b0) stdsoap2.c(5422): free(0x3199210) stdsoap2.c(5428): free(0x3177050) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x318ee20) stdsoap2.c(4857): free(0x31996b0) stdsoap2.c(4857): free(0x3177230) stdsoap2.c(4857): free(0x3199620) stdsoap2.c(4857): free(0x3174330) stdsoap2.c(4857): free(0x31437e0) stdsoap2.c(4857): free(0x3173a70) stdsoap2.c(4857): free(0x3173b50) stdsoap2.c(4857): free(0x3186d20) stdsoap2.c(4857): free(0x319c030) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x3143930) Free logfiles stdsoap2.c(2959): free(0x314aec0) stdsoap2.c(2959): free(0x314c860) stdsoap2.c(2959): free(0x31788e0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x31971d0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff6b450660 type=109: not found stdsoap2.c(4149): malloc(1288) = 0x31788e0 Pointer enter location=0x7fff6b450660 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fff6b450660 type=109 (0 0) Lookup location=0x3193f90 type=3: not found Pointer enter location=0x3193f90 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x3193f90 type=3 (0 0) Lookup location=0x31971d0 type=27: not found Pointer enter location=0x31971d0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x31971d0 type=27 (0 0) Lookup location=0x319c250 type=3: not found Pointer enter location=0x319c250 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x319c250 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x3171a40 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b437100 type=395: not found Embedded_id 0x7fff6b437100 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff6b450660 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b450660 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x3193f90 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x31971d0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x31971d0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x319c250 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=5 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff6b437100 type=395: not found Embedded_id 0x7fff6b437100 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff6b450660 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff6b450660 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x3193f90 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x31971d0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x31971d0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x319c250 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x3171a40) Free pointer hashtable stdsoap2.c(4079): free(0x31788e0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x3171a40 Free ID hashtable Read 958 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x319a880 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x319aa60 stdsoap2.c(7219): malloc(64) = 0x319a660 stdsoap2.c(2336): malloc(40) = 0x319ad30 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x319ab20 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x31a37d0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x319b470 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x3197ab0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x31a24d0 stdsoap2.c(7172): malloc(62) = 0x319b990 stdsoap2.c(7219): malloc(64) = 0x319a740 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fff6b450680 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x31979c0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x319aeb0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x319aeb0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x319af10 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x319a7d0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x319ba90 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x3189c00 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x3189ca0 stdsoap2.c(6963): free(0x319aa60) stdsoap2.c(4726): malloc(104) = 0x31771f0 Enter id='' type=6 loc=0x31771f0 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x3177290 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x3177290 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x319ba90->(nil)) stdsoap2.c(4726): malloc(24) = 0x3197e30 First block Copy 8 bytes from 0x319baa0 to 0x3197e30 Next block stdsoap2.c(2026): free(0x319ba90) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x319a7d0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x3197ab0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x319b470) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x31a37d0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x319ab20) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x319ad30) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x319a740) stdsoap2.c(5406): free(0x319b990) stdsoap2.c(5405): free(0x319a660) stdsoap2.c(5406): free(0x319a880) stdsoap2.c(5411): free(0x3189ca0) stdsoap2.c(5422): free(0x31a24d0) stdsoap2.c(5428): free(0x3171a40) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x3197e30) stdsoap2.c(4857): free(0x3177290) stdsoap2.c(4857): free(0x31771f0) stdsoap2.c(4857): free(0x3189c00) stdsoap2.c(4857): free(0x319af10) stdsoap2.c(4857): free(0x319aeb0) stdsoap2.c(4857): free(0x31979c0) stdsoap2.c(4857): free(0x31971d0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x3171980) Free logfiles stdsoap2.c(2959): free(0x316ff40) stdsoap2.c(2959): free(0x3193c90) stdsoap2.c(2959): free(0x31732c0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x1f7d5bb0 stdsoap2.c(4726): malloc(24) = 0x1f7d5be0 stdsoap2.c(4726): malloc(48) = 0x1f7d7630 stdsoap2.c(4726): malloc(24) = 0x1f7d76a0 stdsoap2.c(4726): malloc(32) = 0x1f7d76f0 stdsoap2.c(4726): malloc(32) = 0x1f7d7750 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd3af43f0 type=93: not found stdsoap2.c(4149): malloc(1288) = 0x1f7d77b0 Pointer enter location=0x7fffd3af43f0 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fffd3af43f0 type=93 (0 0) Lookup location=0x1f7d5bb0 type=30: not found Pointer enter location=0x1f7d5bb0 array=(nil) size=0 dim=0 type=30 id=2 Reference 0x1f7d5bb0 type=30 (0 0) Lookup location=0x1f7d76f0 type=29: not found Pointer enter location=0x1f7d76f0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0x1f7d76f0 type=29 (0 0) Lookup location=0x1f7bd800 type=3: not found Pointer enter location=0x1f7bd800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x1f7bd800 type=3 (0 0) Lookup location=0x2b1ca70b30d4 type=131: not found Pointer enter location=0x2b1ca70b30d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2b1ca70b30d4 type=131 (0 0) Lookup location=0x7fffd3af4590 type=1: not found Pointer enter location=0x7fffd3af4590 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fffd3af4590 type=1 (0 0) Lookup location=0x1f7d7630 type=28: not found Pointer enter location=0x1f7d7630 array=(nil) size=0 dim=0 type=28 id=7 Reference 0x1f7d7630 type=28 (0 0) Lookup location=0x1f7d7750 type=14: not found Pointer enter location=0x1f7d7750 array=(nil) size=0 dim=0 type=14 id=8 Reference 0x1f7d7750 type=14 (0 0) Lookup location=0x2b1ca60b9286 type=3: not found Pointer enter location=0x2b1ca60b9286 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2b1ca60b9286 type=3 (0 0) Lookup location=0x2b1ca60b4205 type=3: not found Pointer enter location=0x2b1ca60b4205 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b1ca60b4205 type=3 (0 0) Lookup location=0x2b1ca60b420d type=3: not found Pointer enter location=0x2b1ca60b420d array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b1ca60b420d type=3 (0 0) Lookup location=0x2b1ca60b420a type=3: not found Pointer enter location=0x2b1ca60b420a array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b1ca60b420a type=3 (0 0) Lookup location=0x2b1ca60b4212 type=3: not found Pointer enter location=0x2b1ca60b4212 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b1ca60b4212 type=3 (0 0) Lookup location=0x2b1ca60b427b type=3: not found Pointer enter location=0x2b1ca60b427b array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b1ca60b427b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x1f7d7cf0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd3adae70 type=347: not found Embedded_id 0x7fffd3adae70 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fffd3af43f0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fffd3af43f0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x1f7d5bb0 type=30 id=2 Is embedded? 0 0 Embedded_id 0x1f7d5bb0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x1f7d76f0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x1f7d76f0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x1f7bd800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b1ca70b30d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b1ca70b30d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fffd3af4590 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffd3af4590 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x1f7d7630 type=28 id=7 Is embedded? 0 0 Embedded_id 0x1f7d7630 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x1f7d7750 type=14 id=8 Is embedded? 0 0 Embedded_id 0x1f7d7750 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b1ca60b9286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1ca60b4205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1ca60b420d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1ca60b420a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1ca60b4212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1ca60b427b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=5 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd3adae70 type=347: not found Embedded_id 0x7fffd3adae70 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fffd3af43f0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fffd3af43f0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x1f7d5bb0 type=30 id=2 Is embedded? 0 0 Embedded_id 0x1f7d5bb0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x1f7d76f0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x1f7d76f0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x1f7bd800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b1ca70b30d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b1ca70b30d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fffd3af4590 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffd3af4590 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x1f7d7630 type=28 id=7 Is embedded? 0 0 Embedded_id 0x1f7d7630 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x1f7d7750 type=14 id=8 Is embedded? 0 0 Embedded_id 0x1f7d7750 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b1ca60b9286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1ca60b4205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1ca60b420d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1ca60b420a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1ca60b4212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b1ca60b427b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x1f7d7cf0) Free pointer hashtable stdsoap2.c(4079): free(0x1f7d77b0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1f7d7cf0 Free ID hashtable Read 1049 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1f7df0a0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x1f7e3100 stdsoap2.c(7219): malloc(64) = 0x1f7e1720 stdsoap2.c(2336): malloc(40) = 0x1f7df700 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x1f7e21c0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1f7da220 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1f801ad0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1f7e24c0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1f7e2560 stdsoap2.c(7172): malloc(62) = 0x1f7df480 stdsoap2.c(7219): malloc(64) = 0x1f7df300 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fffd3af4440 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x1f7f47c0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1f7f4800 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1f7f4800 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x1f7f3e50 Enter id='' type=3 loc=0x1f7f3e50 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1f7f3ec0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1f7e3370 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x1f7def90 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x1f7e20f0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x1f7e5220 stdsoap2.c(6963): free(0x1f7e3100) stdsoap2.c(4726): malloc(104) = 0x1f7e5350 Enter id='' type=6 loc=0x1f7e5350 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1f7e53f0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1f7e53f0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x1f7def90->(nil)) stdsoap2.c(4726): malloc(24) = 0x1f7f4440 First block Copy 8 bytes from 0x1f7defa0 to 0x1f7f4440 Next block stdsoap2.c(2026): free(0x1f7def90) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1f7e3370) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x1f7e24c0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1f801ad0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x1f7da220) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x1f7e21c0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x1f7df700) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x1f7df300) stdsoap2.c(5406): free(0x1f7df480) stdsoap2.c(5405): free(0x1f7e1720) stdsoap2.c(5406): free(0x1f7df0a0) stdsoap2.c(5411): free(0x1f7e5220) stdsoap2.c(5422): free(0x1f7e2560) stdsoap2.c(5428): free(0x1f7d7cf0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1f7f4440) stdsoap2.c(4857): free(0x1f7e53f0) stdsoap2.c(4857): free(0x1f7e5350) stdsoap2.c(4857): free(0x1f7e20f0) stdsoap2.c(4857): free(0x1f7f3ec0) stdsoap2.c(4857): free(0x1f7f3e50) stdsoap2.c(4857): free(0x1f7f4800) stdsoap2.c(4857): free(0x1f7f47c0) stdsoap2.c(4857): free(0x1f7d7750) stdsoap2.c(4857): free(0x1f7d76f0) stdsoap2.c(4857): free(0x1f7d76a0) stdsoap2.c(4857): free(0x1f7d7630) stdsoap2.c(4857): free(0x1f7d5be0) stdsoap2.c(4857): free(0x1f7d5bb0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x1f7c8510) Free logfiles stdsoap2.c(2959): free(0x1f7c7560) stdsoap2.c(2959): free(0x1f7c8620) stdsoap2.c(2959): free(0x1f7c9650) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffd3adaf20 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x1f7f95d0 Pointer enter location=0x7fffd3adaf20 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fffd3adaf20 type=95 (0 0) Lookup location=0x1f7df700 type=3: not found Pointer enter location=0x1f7df700 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x1f7df700 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x1f7f9ae0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd3adaeb0 type=353: not found Embedded_id 0x7fffd3adaeb0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffd3adaf20 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffd3adaf20 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x1f7df700 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffd3adaeb0 type=353: not found Embedded_id 0x7fffd3adaeb0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffd3adaf20 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffd3adaf20 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x1f7df700 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x1f7f9ae0) Free pointer hashtable stdsoap2.c(4079): free(0x1f7f95d0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x1f7cc5c0 Free ID hashtable Read 1106 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 989 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x1f7c5bf0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x1f7c5dd0 stdsoap2.c(7219): malloc(64) = 0x1f7c59d0 stdsoap2.c(2336): malloc(40) = 0x1f7c60a0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x1f7c5e90 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1f805b70 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1f7c2e10 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x1f7c2f40 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x1f7c6d00 stdsoap2.c(7172): malloc(62) = 0x1f7cb3d0 stdsoap2.c(7219): malloc(64) = 0x1f7c5a80 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fffd3adaf40 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x1f7c5ad0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1f7c2d20 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1f7c2d20 size=4 level=0 Element content value='SRM_FAILURE' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(40) = 0x1f7c6220 Enter id='' type=3 loc=0x1f7c6220 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1f7c6280 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x1f7c5b40 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x1f7c6e00 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x1f7cbd60 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x1f7cd7f0 stdsoap2.c(6963): free(0x1f7c5dd0) stdsoap2.c(4726): malloc(104) = 0x1f7cafe0 Enter id='' type=6 loc=0x1f7cafe0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x1f7c3190 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x1f7cb080 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x1f7cb080 size=4 level=0 Element content value='SRM_INVALID_PATH' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x1f7c6cc0 Element content value='0' End element found (level=6) 'remainingPinTime'='remainingPinTime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x1f7c6e00->(nil)) stdsoap2.c(4726): malloc(24) = 0x1f7c5d60 First block Copy 8 bytes from 0x1f7c6e10 to 0x1f7c5d60 Next block stdsoap2.c(2026): free(0x1f7c6e00) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x1f7c5b40) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x1f7c2f40) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x1f7c2e10) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x1f805b70) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x1f7c5e90) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x1f7c60a0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x1f7c5a80) stdsoap2.c(5406): free(0x1f7cb3d0) stdsoap2.c(5405): free(0x1f7c59d0) stdsoap2.c(5406): free(0x1f7c5bf0) stdsoap2.c(5411): free(0x1f7cd7f0) stdsoap2.c(5422): free(0x1f7c6d00) stdsoap2.c(5428): free(0x1f7cc5c0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x1f7c5d60) stdsoap2.c(4857): free(0x1f7c6cc0) stdsoap2.c(4857): free(0x1f7cb080) stdsoap2.c(4857): free(0x1f7c3190) stdsoap2.c(4857): free(0x1f7cafe0) stdsoap2.c(4857): free(0x1f7cbd60) stdsoap2.c(4857): free(0x1f7c6280) stdsoap2.c(4857): free(0x1f7c6220) stdsoap2.c(4857): free(0x1f7c2d20) stdsoap2.c(4857): free(0x1f7c5ad0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x1f7df690) Free logfiles stdsoap2.c(2959): free(0x1f7c9650) stdsoap2.c(2959): free(0x1f7c8620) stdsoap2.c(2959): free(0x1f7c7560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xe5a0bb0 stdsoap2.c(4726): malloc(24) = 0xe5a0be0 stdsoap2.c(4726): malloc(48) = 0xe5a2630 stdsoap2.c(4726): malloc(24) = 0xe5a26a0 stdsoap2.c(4726): malloc(32) = 0xe5a26f0 stdsoap2.c(4726): malloc(32) = 0xe5a2750 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff8affd610 type=93: not found stdsoap2.c(4149): malloc(1288) = 0xe5a27b0 Pointer enter location=0x7fff8affd610 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fff8affd610 type=93 (0 0) Lookup location=0xe5a0bb0 type=30: not found Pointer enter location=0xe5a0bb0 array=(nil) size=0 dim=0 type=30 id=2 Reference 0xe5a0bb0 type=30 (0 0) Lookup location=0xe5a26f0 type=29: not found Pointer enter location=0xe5a26f0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0xe5a26f0 type=29 (0 0) Lookup location=0xe588800 type=3: not found Pointer enter location=0xe588800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xe588800 type=3 (0 0) Lookup location=0x2b92759af0d4 type=131: not found Pointer enter location=0x2b92759af0d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2b92759af0d4 type=131 (0 0) Lookup location=0x7fff8affd7b0 type=1: not found Pointer enter location=0x7fff8affd7b0 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff8affd7b0 type=1 (0 0) Lookup location=0xe5a2630 type=28: not found Pointer enter location=0xe5a2630 array=(nil) size=0 dim=0 type=28 id=7 Reference 0xe5a2630 type=28 (0 0) Lookup location=0xe5a2750 type=14: not found Pointer enter location=0xe5a2750 array=(nil) size=0 dim=0 type=14 id=8 Reference 0xe5a2750 type=14 (0 0) Lookup location=0x2b92749b5286 type=3: not found Pointer enter location=0x2b92749b5286 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2b92749b5286 type=3 (0 0) Lookup location=0x2b92749b0205 type=3: not found Pointer enter location=0x2b92749b0205 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b92749b0205 type=3 (0 0) Lookup location=0x2b92749b020d type=3: not found Pointer enter location=0x2b92749b020d array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b92749b020d type=3 (0 0) Lookup location=0x2b92749b020a type=3: not found Pointer enter location=0x2b92749b020a array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b92749b020a type=3 (0 0) Lookup location=0x2b92749b0212 type=3: not found Pointer enter location=0x2b92749b0212 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b92749b0212 type=3 (0 0) Lookup location=0x2b92749b027b type=3: not found Pointer enter location=0x2b92749b027b array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b92749b027b type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xe5a2cf0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff8afe4090 type=347: not found Embedded_id 0x7fff8afe4090 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff8affd610 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff8affd610 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xe5a0bb0 type=30 id=2 Is embedded? 0 0 Embedded_id 0xe5a0bb0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xe5a26f0 type=29 id=3 Is embedded? 0 0 Embedded_id 0xe5a26f0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xe588800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b92759af0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b92759af0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff8affd7b0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff8affd7b0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xe5a2630 type=28 id=7 Is embedded? 0 0 Embedded_id 0xe5a2630 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xe5a2750 type=14 id=8 Is embedded? 0 0 Embedded_id 0xe5a2750 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b92749b5286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b92749b0205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b92749b020d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b92749b020a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b92749b0212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b92749b027b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1113 New count is 1113 bytes Begin send phase (socket=5 mode=0x1 count=1113) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff8afe4090 type=347: not found Embedded_id 0x7fff8afe4090 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff8affd610 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff8affd610 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0xe5a0bb0 type=30 id=2 Is embedded? 0 0 Embedded_id 0xe5a0bb0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xe5a26f0 type=29 id=3 Is embedded? 0 0 Embedded_id 0xe5a26f0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xe588800 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2b92759af0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2b92759af0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff8affd7b0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff8affd7b0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0xe5a2630 type=28 id=7 Is embedded? 0 0 Embedded_id 0xe5a2630 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xe5a2750 type=14 id=8 Is embedded? 0 0 Embedded_id 0xe5a2750 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b92749b5286 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b92749b0205 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b92749b020d type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b92749b020a type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b92749b0212 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b92749b027b type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xe5a2cf0) Free pointer hashtable stdsoap2.c(4079): free(0xe5a27b0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xe5a2cf0 Free ID hashtable Read 1049 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 932 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xe5aa0a0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xe5ae100 stdsoap2.c(7219): malloc(64) = 0xe5ac720 stdsoap2.c(2336): malloc(40) = 0xe5aa700 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xe5ad1c0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe5a5220 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe5ccad0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe5ad4c0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xe5ad560 stdsoap2.c(7172): malloc(62) = 0xe5aa480 stdsoap2.c(7219): malloc(64) = 0xe5aa300 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fff8affd660 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xe5beec0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe5bef00 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe5bef00 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xe5bf800 Enter id='' type=3 loc=0xe5bf800 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe5bf870 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xe5ae370 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xe5a9f90 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xe5ad120 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xe5b0250 stdsoap2.c(6963): free(0xe5ae100) stdsoap2.c(4726): malloc(104) = 0xe5b0350 Enter id='' type=6 loc=0xe5b0350 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe5b03f0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe5b03f0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xe5a9f90->(nil)) stdsoap2.c(4726): malloc(24) = 0xe5bf480 First block Copy 8 bytes from 0xe5a9fa0 to 0xe5bf480 Next block stdsoap2.c(2026): free(0xe5a9f90) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xe5ae370) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xe5ad4c0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xe5ccad0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xe5a5220) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xe5ad1c0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xe5aa700) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xe5aa300) stdsoap2.c(5406): free(0xe5aa480) stdsoap2.c(5405): free(0xe5ac720) stdsoap2.c(5406): free(0xe5aa0a0) stdsoap2.c(5411): free(0xe5b0250) stdsoap2.c(5422): free(0xe5ad560) stdsoap2.c(5428): free(0xe5a2cf0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xe5bf480) stdsoap2.c(4857): free(0xe5b03f0) stdsoap2.c(4857): free(0xe5b0350) stdsoap2.c(4857): free(0xe5ad120) stdsoap2.c(4857): free(0xe5bf870) stdsoap2.c(4857): free(0xe5bf800) stdsoap2.c(4857): free(0xe5bef00) stdsoap2.c(4857): free(0xe5beec0) stdsoap2.c(4857): free(0xe5a2750) stdsoap2.c(4857): free(0xe5a26f0) stdsoap2.c(4857): free(0xe5a26a0) stdsoap2.c(4857): free(0xe5a2630) stdsoap2.c(4857): free(0xe5a0be0) stdsoap2.c(4857): free(0xe5a0bb0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xe593510) Free logfiles stdsoap2.c(2959): free(0xe592560) stdsoap2.c(2959): free(0xe593620) stdsoap2.c(2959): free(0xe594650) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff8afe4140 type=95: not found stdsoap2.c(4149): malloc(1288) = 0xe5c4fa0 Pointer enter location=0x7fff8afe4140 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff8afe4140 type=95 (0 0) Lookup location=0xe5aa700 type=3: not found Pointer enter location=0xe5aa700 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xe5aa700 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xe5c54b0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff8afe40d0 type=353: not found Embedded_id 0x7fff8afe40d0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff8afe4140 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff8afe4140 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xe5aa700 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=5 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff8afe40d0 type=353: not found Embedded_id 0x7fff8afe40d0 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff8afe4140 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff8afe4140 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0xe5aa700 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xe5c54b0) Free pointer hashtable stdsoap2.c(4079): free(0xe5c4fa0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xe5b77f0 Free ID hashtable Read 1174 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1056 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xe591450 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xe5917a0 stdsoap2.c(7219): malloc(64) = 0xe594670 stdsoap2.c(2336): malloc(40) = 0xe591600 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xe591860 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe5d07c0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe58e7b0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe58e8e0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xe5cf580 stdsoap2.c(7172): malloc(62) = 0xe594720 stdsoap2.c(7219): malloc(64) = 0xe58e6c0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff8afe4160 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xe58e710 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe591ac0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe591ac0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe5b8140 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xe5913a0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xe594a10 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0xe598190 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xe598210 stdsoap2.c(6963): free(0xe5917a0) stdsoap2.c(4726): malloc(104) = 0xe5b7470 Enter id='' type=6 loc=0xe5b7470 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xe58eb60 Element content value='12' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe5b7540 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe5b7540 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xe5948d0 Element content value='7199' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(104) = 0xe591c50 Enter id='' type=6 loc=0xe591c50 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xe594a10->(nil)) stdsoap2.c(4726): malloc(24) = 0xe591730 First block Copy 8 bytes from 0xe594a20 to 0xe591730 Next block stdsoap2.c(2026): free(0xe594a10) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xe5913a0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xe58e8e0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xe58e7b0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xe5d07c0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xe591860) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xe591600) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xe58e6c0) stdsoap2.c(5406): free(0xe594720) stdsoap2.c(5405): free(0xe594670) stdsoap2.c(5406): free(0xe591450) stdsoap2.c(5411): free(0xe598210) stdsoap2.c(5422): free(0xe5cf580) stdsoap2.c(5428): free(0xe5b77f0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xe591730) stdsoap2.c(4857): free(0xe591c50) stdsoap2.c(4857): free(0xe5948d0) stdsoap2.c(4857): free(0xe5b7540) stdsoap2.c(4857): free(0xe58eb60) stdsoap2.c(4857): free(0xe5b7470) stdsoap2.c(4857): free(0xe598190) stdsoap2.c(4857): free(0xe5b8140) stdsoap2.c(4857): free(0xe591ac0) stdsoap2.c(4857): free(0xe58e710) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xe588c70) Free logfiles stdsoap2.c(2959): free(0xe594650) stdsoap2.c(2959): free(0xe593620) stdsoap2.c(2959): free(0xe592560) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xe5acb70 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff8affdfb0 type=109: not found stdsoap2.c(4149): malloc(1288) = 0xe59b730 Pointer enter location=0x7fff8affdfb0 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fff8affdfb0 type=109 (0 0) Lookup location=0xe5aa700 type=3: not found Pointer enter location=0xe5aa700 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xe5aa700 type=3 (0 0) Lookup location=0xe5acb70 type=27: not found Pointer enter location=0xe5acb70 array=(nil) size=0 dim=0 type=27 id=3 Reference 0xe5acb70 type=27 (0 0) Lookup location=0xe588800 type=3: not found Pointer enter location=0xe588800 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xe588800 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xe5acc00 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff8afe4a50 type=395: not found Embedded_id 0x7fff8afe4a50 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff8affdfb0 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff8affdfb0 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0xe5aa700 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xe5acb70 type=27 id=3 Is embedded? 0 0 Embedded_id 0xe5acb70 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xe588800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 5 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=740 New count is 740 bytes Begin send phase (socket=5 mode=0x1 count=740) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff8afe4a50 type=395: not found Embedded_id 0x7fff8afe4a50 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff8affdfb0 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff8affdfb0 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0xe5aa700 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0xe5acb70 type=27 id=3 Is embedded? 0 0 Embedded_id 0xe5acb70 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0xe588800 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 5 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xe5acc00) Free pointer hashtable stdsoap2.c(4079): free(0xe59b730) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xe5acc00 Free ID hashtable Read 958 bytes from socket 5 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 841 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xe5b5090 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xe5b5270 stdsoap2.c(7219): malloc(64) = 0xe5b4e70 stdsoap2.c(2336): malloc(40) = 0xe5b5540 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xe5b5330 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe5de330 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe5b2280 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xe5b23b0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xe5dcd40 stdsoap2.c(7172): malloc(62) = 0xe5d0d20 stdsoap2.c(7219): malloc(64) = 0xe5b4f20 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fff8affdfd0 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe5b4f70 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe5b21c0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe5b21c0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe5b56c0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xe5b4fe0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xe5b62a0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe5d1650 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xe5b9a30 stdsoap2.c(6963): free(0xe5b5270) stdsoap2.c(4726): malloc(104) = 0xe5d0930 Enter id='' type=6 loc=0xe5d0930 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xe5d09d0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xe5d09d0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xe5b62a0->(nil)) stdsoap2.c(4726): malloc(24) = 0xe5b2630 First block Copy 8 bytes from 0xe5b62b0 to 0xe5b2630 Next block stdsoap2.c(2026): free(0xe5b62a0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xe5b4fe0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xe5b23b0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xe5b2280) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xe5de330) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xe5b5330) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xe5b5540) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 5 how=2 Close socket 5 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xe5b4f20) stdsoap2.c(5406): free(0xe5d0d20) stdsoap2.c(5405): free(0xe5b4e70) stdsoap2.c(5406): free(0xe5b5090) stdsoap2.c(5411): free(0xe5b9a30) stdsoap2.c(5422): free(0xe5dcd40) stdsoap2.c(5428): free(0xe5acc00) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xe5b2630) stdsoap2.c(4857): free(0xe5d09d0) stdsoap2.c(4857): free(0xe5d0930) stdsoap2.c(4857): free(0xe5d1650) stdsoap2.c(4857): free(0xe5b56c0) stdsoap2.c(4857): free(0xe5b21c0) stdsoap2.c(4857): free(0xe5b4f70) stdsoap2.c(4857): free(0xe5acb70) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xe5acb10) Free logfiles stdsoap2.c(2959): free(0xe5ca820) stdsoap2.c(2959): free(0xe5ca840) stdsoap2.c(2959): free(0xe5ca860) gfal2-2.3.0/testing/build/test_createRead_write.sh0000755000175000017500000000027612164561703021504 0ustar ellertellert#!/bin/bash sfile=srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001 lcg-del -v -l -D srmv2 $sfile > /dev/null &> /dev/null ./gfal_testrw $sfile > /dev/null gfal2-2.3.0/testing/build/exec_tests0000755000175000017500000000161312164561703016725 0ustar ellertellert#!/bin/bash ## # @author Adevresse # @version 0.0.1 echo " ****************** script for functional Tests *******************" echo "WARNING: This tests need a voms proxy activated on dteam vo, a grid environnement" echo "Launch tests..... " which voms-proxy-info &> /dev/null if [ "$?" != "0" ]; then echo " Error voms-proxy-info not found, grid env is not operational" >&2 exit -1 fi voms-proxy-info &> /dev/null if [ "$?" != "0" ]; then echo -e " Error : voms proxy not started, start it and retry \n\t\t example : voms-proxy-init --voms dteam" >&2 exit -1 fi log='' resu=0 dirn=`dirname $0` cd $dirn for f in `ls test_*.sh` do ./$f r=$? if [[ "$r" != "0" ]]; then pr=" $f .........error code: $r [FAIL]" resu=-1 else pr=" $f .......... [OK]" fi echo $pr log="$log\n$pr" done echo -e $log > testresult.txt if [[ "$resu" != "0" ]]; then echo "Failure of the tests !!" >&2 exit -1 fi gfal2-2.3.0/testing/build/test_get.sh0000755000175000017500000000057612164561703017015 0ustar ellertellert#!/bin/bash sfile=srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002 lcg-del -v -l -D srmv2 $sfile > /dev/null &> /dev/null touch /tmp/hello echo "Hello World" > /tmp/hello lcg-cp /tmp/hello $sfile > /dev/null ./gfal_testget $sfile if [[ "$?" != "0" ]]; then exit -1 fi lcg-del -v -l -D srmv2 $sfile &> /dev/null # delete the useless file gfal2-2.3.0/testing/build/test_read_missingFile.sh0000755000175000017500000000045412164561703021475 0ustar ellertellert#!/bin/bash sfile=srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002 lcg-del -v -l -D srmv2 $sfile &> /dev/null # delete the file if exist r=$( ./gfal_testread $sfile 2>&1 ) # must fail echo $r | grep "No such file" > /dev/null if [[ "$?" != "0" ]]; then exit -1 fi gfal2-2.3.0/testing/build/test_createdir.sh0000755000175000017500000000024212164561703020166 0ustar ellertellert#!/bin/bash sfile=lfn:/grid/dteam/testcreatedir # dir tested ./gfal_testcreatedir $sfile &> /dev/null # must be a success if [[ "$?" != "0" ]]; then exit -1 fi gfal2-2.3.0/testing/build/test_opendir_notexisting.sh0000755000175000017500000000022212164561703022315 0ustar ellertellert#!/bin/bash sfile=lfn:/nothing # try to open a missing dir ./gfal_testdir $sfile &> /dev/null # must fail if [[ "$?" == "0" ]]; then exit -1 fi gfal2-2.3.0/testing/build/test_teststat.sh0000755000175000017500000000052212164561703020100 0ustar ellertellert#!/bin/bash ## simple test on an existing dir edir="lfn:/grid/dteam" ./gfal_teststat $edir > /dev/null if [ "$?" != "0" ]; then exit -1 fi ## test on missing dir mdir="lfn:/grid/nonexistingdir59999" r=$( ./gfal_teststat $mdir 2>&1 ) if [ "$?" == 0 ]; then exit -2 fi if [[ $(echo $r | grep -c "No such file" ) != 1 ]]; then exit -3 fi gfal2-2.3.0/testing/build/test_chmod.sh0000755000175000017500000000136712164561703017327 0ustar ellertellert#!/bin/bash orgfile="srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/filetest27" sfile="/grid/dteam/filetest27" # dir tested lfnfile="lfn:$sfile" right=755 lcg-del -v -D srmv2 $orgfile &> /dev/null ## del existing files lcg-del -a $lfnfile &> /dev/null touch /tmp/test ## create new file echo "Hello World" > /tmp/test lcg-cp file:///tmp/test $orgfile > /dev/null # copy on grid and test lcg-rf -l $lfnfile $orgfile >/dev/null ./gfal_testchmod lfn:$sfile $right &> /dev/null # must be a success if [[ "$?" != "0" ]]; then exit -1 fi lfc-ls -l $sfile | grep rwxr-xr-x > /dev/null # test if rights are correct if [[ "$?" != "0" ]]; then exit -2 fi lcg-del -a $lfnfile &> /dev/null # delete the useless file gfal2-2.3.0/testing/build/RECV.log0000644000175000017500000040265212164561703016103 0ustar ellertellertHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 971 Connection: close SRM_NOT_SUPPORTEDProtocol(s) not supporteda2895c17-2a5c-4047-b548-f4ef779add95srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUEDbb64cd71-4ab0-45d3-91d2-ce621a18b19asrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1103 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SPACE_AVAILABLE071990rfio://atlas-storage-13.roma1.infn.it//data4/dteam/2011-03-23/testfile001.34318231.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 821 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED79d9de64-633a-4dc2-b39d-c848556d36f8srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1059 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00165536SRM_FILE_PINNED7199rfio://atlas-storage-13.roma1.infn.it//data4/dteam/2011-03-23/testfile001.34318231.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUED94381ca1-742b-4542-b838-70e6d48e7e77srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1038 Connection: close SRM_FAILUREFailed for all SURLssrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_DUPLICATION_ERROR000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUED072ef962-b892-49a2-87b1-7f2ac43911e5srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1038 Connection: close SRM_FAILUREFailed for all SURLssrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_DUPLICATION_ERROR000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUEDdad72501-a80d-4a58-83c1-e769a754169bsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1038 Connection: close SRM_FAILUREFailed for all SURLssrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_DUPLICATION_ERROR000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUEDe4f62cf8-c3cc-4479-b951-97ec5577ec87srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1038 Connection: close SRM_FAILUREFailed for all SURLssrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_DUPLICATION_ERROR000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUED25907466-abdc-49bd-af54-ca8f286c765bsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1038 Connection: close SRM_FAILUREFailed for all SURLssrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_DUPLICATION_ERROR000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUED0cb22f7a-91d5-4bd6-95e5-3c7f22701f6bsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1003 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_INPROGRESS000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1003 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_INPROGRESS000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1103 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SPACE_AVAILABLE071980rfio://atlas-storage-16.roma1.infn.it//data1/dteam/2011-03-23/testfile001.34319302.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 821 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED713404ae-bc20-4a3d-8358-a1263746570asrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 959 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile0010SRM_REQUEST_INPROGRESS0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1059 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00165536SRM_FILE_PINNED7200rfio://atlas-storage-16.roma1.infn.it//data1/dteam/2011-03-23/testfile001.34319302.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUEDa5922daa-38b5-479f-9a45-013515c57dafsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1003 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_INPROGRESS000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1003 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_INPROGRESS000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1103 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SPACE_AVAILABLE072000rfio://atlas-storage-16.roma1.infn.it//data2/dteam/2011-03-23/testfile001.34319394.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 821 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED230fa4c5-486f-4809-a2eb-37fdeabc2c90srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 959 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile0010SRM_REQUEST_INPROGRESS0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1059 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00165536SRM_FILE_PINNED7200rfio://atlas-storage-16.roma1.infn.it//data2/dteam/2011-03-23/testfile001.34319394.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUEDaab680a1-0c2a-4756-b5e4-e2f2f1c42654srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1003 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_INPROGRESS000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1003 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_INPROGRESS000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1103 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SPACE_AVAILABLE072000rfio://atlas-storage-13.roma1.infn.it//data2/dteam/2011-03-23/testfile001.34319465.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 821 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED8c9fa3ac-45a6-478f-99c3-19b621547976srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 959 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile0010SRM_REQUEST_INPROGRESS0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1059 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00165536SRM_FILE_PINNED7200rfio://atlas-storage-13.roma1.infn.it//data2/dteam/2011-03-23/testfile001.34319465.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUED893f3435-1ddb-436a-a1f9-d6a8cec33102srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1003 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_INPROGRESS000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1103 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SPACE_AVAILABLE071990rfio://atlas-storage-12.roma1.infn.it//data1/dteam/2011-03-23/testfile001.34319703.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 821 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED236f4a23-a4f4-4620-8e10-9b027c82cb72srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1059 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00165536SRM_FILE_PINNED7199rfio://atlas-storage-12.roma1.infn.it//data1/dteam/2011-03-23/testfile001.34319703.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUEDf75b8cb7-78c0-440c-ba28-f2a74679d3e6srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1003 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_INPROGRESS000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1003 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_INPROGRESS000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1103 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SPACE_AVAILABLE072000rfio://atlas-storage-16.roma1.infn.it//data4/dteam/2011-03-23/testfile001.34319744.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 821 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUEDb6fab15c-aa85-482f-a634-c911b94971fasrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 959 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile0010SRM_REQUEST_INPROGRESS0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1059 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00165536SRM_FILE_PINNED7200rfio://atlas-storage-16.roma1.infn.it//data4/dteam/2011-03-23/testfile001.34319744.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUEDc5ace522-9956-40f9-acf0-a4bf323ad3aesrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1103 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SPACE_AVAILABLE071990rfio://atlas-storage-16.roma1.infn.it//data2/dteam/2011-04-06/testfile001.34903005.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 821 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED17374c90-dffa-4b4b-ac2a-3782cfb3ffd4srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 959 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile0010SRM_REQUEST_INPROGRESS0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1059 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00165536SRM_FILE_PINNED7200rfio://atlas-storage-16.roma1.infn.it//data2/dteam/2011-04-06/testfile001.34903005.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED29a93f55-4deb-47d7-bc03-bcbc194a1638srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 989 Connection: close SRM_FAILUREFailed for all SURLssrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile0020SRM_INVALID_PATH0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED983c132d-e09e-4d16-aa8c-c43c584f5aa9srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 959 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile0020SRM_REQUEST_INPROGRESS0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1056 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00212SRM_FILE_PINNED7200rfio://atlas-storage-16.roma1.infn.it//data3/dteam/2011-04-06/testfile002.34903008.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUED13c3506d-d498-4ea4-9848-6be12e11c0bfsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1103 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SPACE_AVAILABLE071990rfio://atlas-storage-07.roma1.infn.it//data2/dteam/2011-04-06/testfile001.34903033.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 821 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUEDf8dc3bd9-7ae7-4494-8d98-01a0a95202aasrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 959 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile0010SRM_REQUEST_INPROGRESS0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1059 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00165536SRM_FILE_PINNED7199rfio://atlas-storage-07.roma1.infn.it//data2/dteam/2011-04-06/testfile001.34903033.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED3d25c23b-4b4c-469e-ba2f-728837d293besrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 989 Connection: close SRM_FAILUREFailed for all SURLssrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile0020SRM_INVALID_PATH0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUEDec2482e3-c2da-4519-8f07-3392094e67edsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 959 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile0020SRM_REQUEST_INPROGRESS0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1056 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00212SRM_FILE_PINNED7200rfio://atlas-storage-07.roma1.infn.it//data4/dteam/2011-04-06/testfile002.34903037.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUEDf0a66435-f910-4284-81c8-7b6abc7163f6srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1003 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_INPROGRESS000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1003 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_INPROGRESS000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1103 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SPACE_AVAILABLE072000rfio://atlas-storage-15.roma1.infn.it//data2/dteam/2011-04-06/testfile001.34903058.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 821 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED5f9ee3dd-e51e-4866-8228-45950b5d07a0srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1059 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00165536SRM_FILE_PINNED7199rfio://atlas-storage-15.roma1.infn.it//data2/dteam/2011-04-06/testfile001.34903058.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED532af759-4e12-4af8-a23f-235665110cd0srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 989 Connection: close SRM_FAILUREFailed for all SURLssrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile0020SRM_INVALID_PATH0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED7a95481a-e5c3-41c1-b71b-fb32bbb1336bsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1056 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00212SRM_FILE_PINNED7200rfio://atlas-storage-15.roma1.infn.it//data3/dteam/2011-04-06/testfile002.34903061.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 920 Connection: close SRM_REQUEST_QUEUEDf4c9e8f3-29c3-4d83-ad2a-35e55b23ce03srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1003 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_INPROGRESS000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1003 Connection: close SRM_REQUEST_INPROGRESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_INPROGRESS000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1103 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SPACE_AVAILABLE071980rfio://atlas-storage-13.roma1.infn.it//data4/dteam/2011-04-06/testfile001.34903156.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 821 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED0310fefb-01f8-46d7-b21a-6d5bc5264118srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1059 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00165536SRM_FILE_PINNED7200rfio://atlas-storage-13.roma1.infn.it//data4/dteam/2011-04-06/testfile001.34903156.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile001SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED1e452a05-aaeb-4f01-895a-1f3d580ae462srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 989 Connection: close SRM_FAILUREFailed for all SURLssrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile0020SRM_INVALID_PATH0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 932 Connection: close SRM_REQUEST_QUEUED66f4a460-0a84-4dd6-a63e-cbc60ccd8bb6srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1056 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile00212SRM_FILE_PINNED7199rfio://atlas-storage-15.roma1.infn.it//data1/dteam/2011-04-06/testfile002.34903159.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 841 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/testfile002SRM_SUCCESSgfal2-2.3.0/testing/CMakeLists.txt0000644000175000017500000000217212164561703016273 0ustar ellertellert# # compilation lines for examples SET(GFAL_EXAMPLES FALSE CACHE STRING "Example for gfal ") # gfal stat FILE(GLOB src_gfalstat "example/gfal_teststat.c") FILE(GLOB src_gfalread "example/gfal_testread.c") FILE(GLOB src_gfalread "example/gfal_testwrite.c") FILE(GLOB src_gfalrw "example/gfal_testrw.c") FILE(GLOB src_gfalget "example/gfal_testget.c") FILE(GLOB src_gfaltcopy "example/gfalt_copyfile.c") IF (GFAL_EXAMPLES) include_directories( "../src " "../src/posix/" ${GLIB2_PKG_INCLUDE_DIRS} ) add_executable(gfal_stat ${src_gfalstat} ) target_link_libraries(gfal_stat ${OUTPUT_NAME_MAIN} ) add_executable(gfal_read ${src_gfalread} ) target_link_libraries(gfal_read ${OUTPUT_NAME_MAIN} ) add_executable(gfal_write ${src_gfalwrite} ) target_link_libraries(gfal_write ${OUTPUT_NAME_MAIN} ) add_executable(gfal_rw ${src_gfalrw} ) target_link_libraries(gfal_rw ${OUTPUT_NAME_MAIN} ) add_executable(gfal_testget ${src_gfalget} ) target_link_libraries(gfal_testget ${OUTPUT_NAME_MAIN} ) add_executable(gfal_copyfile ${src_gfaltcopy} ) target_link_libraries(gfal_copyfile ${OUTPUT_NAME_TRANSFER} ) ENDIF (GFAL_EXAMPLES) gfal2-2.3.0/testing/TEST.log0000644000175000017500000073000612164561703015021 0ustar ellertellertRegistered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff872bdfc0 type=81: not found stdsoap2.c(4149): malloc(1288) = 0x827fc20 Pointer enter location=0x7fff872bdfc0 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fff872bdfc0 type=81 (0 0) Lookup location=0x827a720 type=3: not found Pointer enter location=0x827a720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x827a720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x8280130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a4a70 type=311: not found Embedded_id 0x7fff872a4a70 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff872bdfc0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff872bdfc0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x827a720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a4a70 type=311: not found Embedded_id 0x7fff872a4a70 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff872bdfc0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff872bdfc0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x827a720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x8280130) Free pointer hashtable stdsoap2.c(4079): free(0x827fc20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x829c1b0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x82873f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x828b460 stdsoap2.c(7219): malloc(64) = 0x8289a80 stdsoap2.c(2336): malloc(40) = 0x8287a50 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x828a520 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8282550 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x82a9e70 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x828a820 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x828a8c0 stdsoap2.c(7172): malloc(62) = 0x82877d0 stdsoap2.c(7219): malloc(64) = 0x8287650 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fff872bdfe0 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x828b6d0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x829cb20 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x829cb20 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0x829cb80 Enter id='' type=3 loc=0x829cb80 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x828a820) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x82a9e70) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x8282550) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x828a520) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x8287a50) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x8287650) stdsoap2.c(5406): free(0x82877d0) stdsoap2.c(5405): free(0x8289a80) stdsoap2.c(5406): free(0x82873f0) stdsoap2.c(5411): free(0x828b460) stdsoap2.c(5422): free(0x828a8c0) stdsoap2.c(5428): free(0x829c1b0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x829cb80) stdsoap2.c(4857): free(0x829cb20) stdsoap2.c(4857): free(0x828b6d0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x826b530) Free logfiles stdsoap2.c(2959): free(0x826a580) stdsoap2.c(2959): free(0x826b640) stdsoap2.c(2959): free(0x826c670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x8267e10 stdsoap2.c(4726): malloc(24) = 0x8267e40 stdsoap2.c(4726): malloc(48) = 0x8269870 stdsoap2.c(4726): malloc(24) = 0x82698e0 stdsoap2.c(4726): malloc(32) = 0x8269930 stdsoap2.c(4726): malloc(24) = 0x8269990 stdsoap2.c(4726): malloc(32) = 0x82699e0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff872bdfb0 type=101: not found stdsoap2.c(4149): malloc(1288) = 0x8269a40 Pointer enter location=0x7fff872bdfb0 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fff872bdfb0 type=101 (0 0) Lookup location=0x8267e10 type=32: not found Pointer enter location=0x8267e10 array=(nil) size=0 dim=0 type=32 id=2 Reference 0x8267e10 type=32 (0 0) Lookup location=0x8269930 type=31: not found Pointer enter location=0x8269930 array=(nil) size=0 dim=0 type=31 id=3 Reference 0x8269930 type=31 (0 0) Lookup location=0x8260820 type=3: not found Pointer enter location=0x8260820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x8260820 type=3 (0 0) Lookup location=0x8269990 type=148: not found Pointer enter location=0x8269990 array=(nil) size=0 dim=0 type=148 id=5 Reference 0x8269990 type=148 (0 0) Lookup location=0x7fff872be160 type=1: not found Pointer enter location=0x7fff872be160 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff872be160 type=1 (0 0) Lookup location=0x2af43846c0c8 type=131: not found Pointer enter location=0x2af43846c0c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2af43846c0c8 type=131 (0 0) Lookup location=0x8269870 type=28: not found Pointer enter location=0x8269870 array=(nil) size=0 dim=0 type=28 id=8 Reference 0x8269870 type=28 (0 0) Lookup location=0x82699e0 type=14: not found Pointer enter location=0x82699e0 array=(nil) size=0 dim=0 type=14 id=9 Reference 0x82699e0 type=14 (0 0) Lookup location=0x2af43745b869 type=3: not found Pointer enter location=0x2af43745b869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2af43745b869 type=3 (0 0) Lookup location=0x2af43745b86e type=3: not found Pointer enter location=0x2af43745b86e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2af43745b86e type=3 (0 0) Lookup location=0x2af43745b873 type=3: not found Pointer enter location=0x2af43745b873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2af43745b873 type=3 (0 0) Lookup location=0x2af43745b878 type=3: not found Pointer enter location=0x2af43745b878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2af43745b878 type=3 (0 0) Lookup location=0x2af43745b880 type=3: not found Pointer enter location=0x2af43745b880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2af43745b880 type=3 (0 0) Lookup location=0x2af43745b886 type=3: not found Pointer enter location=0x2af43745b886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2af43745b886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x8269f80 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a4a20 type=371: not found Embedded_id 0x7fff872a4a20 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff872bdfb0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff872bdfb0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x8267e10 type=32 id=2 Is embedded? 0 0 Embedded_id 0x8267e10 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x8269930 type=31 id=3 Is embedded? 0 0 Embedded_id 0x8269930 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x8260820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x8269990 type=148 id=5 Is embedded? 0 0 Embedded_id 0x8269990 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff872be160 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff872be160 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2af43846c0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2af43846c0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x8269870 type=28 id=8 Is embedded? 0 0 Embedded_id 0x8269870 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x82699e0 type=14 id=9 Is embedded? 0 0 Embedded_id 0x82699e0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af43745b869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1148 New count is 1148 bytes Begin send phase (socket=7 mode=0x1 count=1148) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a4a20 type=371: not found Embedded_id 0x7fff872a4a20 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff872bdfb0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff872bdfb0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x8267e10 type=32 id=2 Is embedded? 0 0 Embedded_id 0x8267e10 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x8269930 type=31 id=3 Is embedded? 0 0 Embedded_id 0x8269930 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x8260820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x8269990 type=148 id=5 Is embedded? 0 0 Embedded_id 0x8269990 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff872be160 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff872be160 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2af43846c0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2af43846c0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x8269870 type=28 id=8 Is embedded? 0 0 Embedded_id 0x8269870 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x82699e0 type=14 id=9 Is embedded? 0 0 Embedded_id 0x82699e0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af43745b869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x8269f80) Free pointer hashtable stdsoap2.c(4079): free(0x8269a40) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x8269f80 Free ID hashtable Read 1031 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 914 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x82b13c0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x82757c0 stdsoap2.c(7219): malloc(64) = 0x8275010 stdsoap2.c(2336): malloc(40) = 0x8272850 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x826dd40 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x828bcb0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8272b40 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x82b00f0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x829cfc0 stdsoap2.c(7172): malloc(62) = 0x8275830 stdsoap2.c(7219): malloc(64) = 0x828bbf0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fff872be010 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x82728c0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x82755d0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x82755d0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x8275630 Enter id='' type=3 loc=0x8275630 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x828d9a0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x828bbb0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x8272450 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x829c630 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x828daa0 stdsoap2.c(6963): free(0x82757c0) stdsoap2.c(4726): malloc(96) = 0x829c6c0 Enter id='' type=6 loc=0x829c6c0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x828db90 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x828db90 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x8272450->(nil)) stdsoap2.c(4726): malloc(24) = 0x829cc40 First block Copy 8 bytes from 0x8272460 to 0x829cc40 Next block stdsoap2.c(2026): free(0x8272450) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x828bbb0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x82b00f0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x8272b40) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x828bcb0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x826dd40) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x8272850) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x828bbf0) stdsoap2.c(5406): free(0x8275830) stdsoap2.c(5405): free(0x8275010) stdsoap2.c(5406): free(0x82b13c0) stdsoap2.c(5411): free(0x828daa0) stdsoap2.c(5422): free(0x829cfc0) stdsoap2.c(5428): free(0x8269f80) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x829cc40) stdsoap2.c(4857): free(0x828db90) stdsoap2.c(4857): free(0x829c6c0) stdsoap2.c(4857): free(0x829c630) stdsoap2.c(4857): free(0x828d9a0) stdsoap2.c(4857): free(0x8275630) stdsoap2.c(4857): free(0x82755d0) stdsoap2.c(4857): free(0x82728c0) stdsoap2.c(4857): free(0x82699e0) stdsoap2.c(4857): free(0x8269990) stdsoap2.c(4857): free(0x8269930) stdsoap2.c(4857): free(0x82698e0) stdsoap2.c(4857): free(0x8269870) stdsoap2.c(4857): free(0x8267e40) stdsoap2.c(4857): free(0x8267e10) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x82876d0) Free logfiles stdsoap2.c(2959): free(0x826c670) stdsoap2.c(2959): free(0x826b640) stdsoap2.c(2959): free(0x826a580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff872a4b00 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x8264f70 Pointer enter location=0x7fff872a4b00 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff872a4b00 type=103 (0 0) Lookup location=0x8272850 type=3: not found Pointer enter location=0x8272850 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x8272850 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x8265480 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a4a90 type=377: not found Embedded_id 0x7fff872a4a90 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff872a4b00 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff872a4b00 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x8272850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a4a90 type=377: not found Embedded_id 0x7fff872a4a90 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff872a4b00 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff872a4b00 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x8272850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x8265480) Free pointer hashtable stdsoap2.c(4079): free(0x8264f70) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x829c3f0 Free ID hashtable Read 1209 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1091 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x8271e40 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x82724f0 stdsoap2.c(7219): malloc(64) = 0x828ba10 stdsoap2.c(2336): malloc(40) = 0x826eed0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x8266c20 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x826f1c0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x82a9f10 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x826ef40 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x8271eb0 stdsoap2.c(7172): malloc(62) = 0x8271ef0 stdsoap2.c(7219): malloc(64) = 0x828b980 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff872a4b20 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x8271c80 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8271ce0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x8271ce0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x829cd90 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x828b910 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x826ead0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x828d7f0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x828d8f0 stdsoap2.c(6963): free(0x82724f0) stdsoap2.c(4726): malloc(96) = 0x826ed20 Enter id='' type=6 loc=0x826ed20 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x826edc0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x826edc0 size=4 level=0 Element content value='SRM_SPACE_AVAILABLE' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x829c9e0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x829c4c0 Element content value='7199' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x828d8b0 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(96) = 0x829be50 Enter id='' type=6 loc=0x829be50 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x826ead0->(nil)) stdsoap2.c(4726): malloc(24) = 0x826ee50 First block Copy 8 bytes from 0x826eae0 to 0x826ee50 Next block stdsoap2.c(2026): free(0x826ead0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x828b910) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x826ef40) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x82a9f10) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x826f1c0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x8266c20) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x826eed0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x828b980) stdsoap2.c(5406): free(0x8271ef0) stdsoap2.c(5405): free(0x828ba10) stdsoap2.c(5406): free(0x8271e40) stdsoap2.c(5411): free(0x828d8f0) stdsoap2.c(5422): free(0x8271eb0) stdsoap2.c(5428): free(0x829c3f0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x826ee50) stdsoap2.c(4857): free(0x829be50) stdsoap2.c(4857): free(0x828d8b0) stdsoap2.c(4857): free(0x829c4c0) stdsoap2.c(4857): free(0x829c9e0) stdsoap2.c(4857): free(0x826edc0) stdsoap2.c(4857): free(0x826ed20) stdsoap2.c(4857): free(0x828d7f0) stdsoap2.c(4857): free(0x829cd90) stdsoap2.c(4857): free(0x8271ce0) stdsoap2.c(4857): free(0x8271c80) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x8269810) Free logfiles stdsoap2.c(2959): free(0x826a580) stdsoap2.c(2959): free(0x826b640) stdsoap2.c(2959): free(0x826c670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x82898c0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff872be950 type=111: not found stdsoap2.c(4149): malloc(1288) = 0x828f370 Pointer enter location=0x7fff872be950 array=(nil) size=0 dim=0 type=111 id=1 Reference 0x7fff872be950 type=111 (0 0) Lookup location=0x8272850 type=3: not found Pointer enter location=0x8272850 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x8272850 type=3 (0 0) Lookup location=0x82898c0 type=27: not found Pointer enter location=0x82898c0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x82898c0 type=27 (0 0) Lookup location=0x8260820 type=3: not found Pointer enter location=0x8260820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x8260820 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x8289950 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a53f0 type=401: not found Embedded_id 0x7fff872a53f0 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff872be950 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff872be950 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x8272850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x82898c0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x82898c0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x8260820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=714 New count is 714 bytes Begin send phase (socket=7 mode=0x1 count=714) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a53f0 type=401: not found Embedded_id 0x7fff872a53f0 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fff872be950 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fff872be950 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x8272850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x82898c0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x82898c0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x8260820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x8289950) Free pointer hashtable stdsoap2.c(4079): free(0x828f370) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x8289950 Free ID hashtable Read 932 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 815 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x8298d20 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x8299790 stdsoap2.c(7219): malloc(64) = 0x8299ce0 stdsoap2.c(2336): malloc(40) = 0x8295db0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x82912a0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x82960a0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x82ba1a0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8295e20 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x8298d90 stdsoap2.c(7172): malloc(62) = 0x8298dd0 stdsoap2.c(7219): malloc(64) = 0x8299c50 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPutDoneResponse' 'srm2:srmPutDoneResponse' Begin element found (level=3) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' Enter id='' type=396 loc=0x7fff872be970 size=8 level=0 Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Reverting last element (level=3) Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Enter id='' type=112 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x82aa760 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x82aa7c0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x82aa7c0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8298b60 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x8299be0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x82959b0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x82ab0a0 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x829ba90 stdsoap2.c(6963): free(0x8299790) stdsoap2.c(4726): malloc(96) = 0x829bb20 Enter id='' type=6 loc=0x829bb20 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x829bbf0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x829bbf0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x82959b0->(nil)) stdsoap2.c(4726): malloc(24) = 0x82aacf0 First block Copy 8 bytes from 0x82959c0 to 0x82aacf0 Next block stdsoap2.c(2026): free(0x82959b0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x8299be0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPutDoneResponse'='srmPutDoneResponse' End element found (level=2) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x8295e20) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x82ba1a0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x82960a0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x82912a0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x8295db0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x8299c50) stdsoap2.c(5406): free(0x8298dd0) stdsoap2.c(5405): free(0x8299ce0) stdsoap2.c(5406): free(0x8298d20) stdsoap2.c(5411): free(0x829ba90) stdsoap2.c(5422): free(0x8298d90) stdsoap2.c(5428): free(0x8289950) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x82aacf0) stdsoap2.c(4857): free(0x829bbf0) stdsoap2.c(4857): free(0x829bb20) stdsoap2.c(4857): free(0x82ab0a0) stdsoap2.c(4857): free(0x8298b60) stdsoap2.c(4857): free(0x82aa7c0) stdsoap2.c(4857): free(0x82aa760) stdsoap2.c(4857): free(0x82898c0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x8260880) Free logfiles stdsoap2.c(2959): free(0x826a440) stdsoap2.c(2959): free(0x826f760) stdsoap2.c(2959): free(0x8266bf0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x826eed0 stdsoap2.c(4726): malloc(24) = 0x828fc00 stdsoap2.c(4726): malloc(48) = 0x826a520 stdsoap2.c(4726): malloc(24) = 0x826f760 stdsoap2.c(4726): malloc(32) = 0x828d820 stdsoap2.c(4726): malloc(32) = 0x8282ce0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff872bdfd0 type=93: not found stdsoap2.c(4149): malloc(1288) = 0x828e690 Pointer enter location=0x7fff872bdfd0 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fff872bdfd0 type=93 (0 0) Lookup location=0x826eed0 type=30: not found Pointer enter location=0x826eed0 array=(nil) size=0 dim=0 type=30 id=2 Reference 0x826eed0 type=30 (0 0) Lookup location=0x828d820 type=29: not found Pointer enter location=0x828d820 array=(nil) size=0 dim=0 type=29 id=3 Reference 0x828d820 type=29 (0 0) Lookup location=0x82b92c0 type=3: not found Pointer enter location=0x82b92c0 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x82b92c0 type=3 (0 0) Lookup location=0x2af43846c0d4 type=131: not found Pointer enter location=0x2af43846c0d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2af43846c0d4 type=131 (0 0) Lookup location=0x7fff872be160 type=1: not found Pointer enter location=0x7fff872be160 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff872be160 type=1 (0 0) Lookup location=0x826a520 type=28: not found Pointer enter location=0x826a520 array=(nil) size=0 dim=0 type=28 id=7 Reference 0x826a520 type=28 (0 0) Lookup location=0x8282ce0 type=14: not found Pointer enter location=0x8282ce0 array=(nil) size=0 dim=0 type=14 id=8 Reference 0x8282ce0 type=14 (0 0) Lookup location=0x2af43745b869 type=3: not found Pointer enter location=0x2af43745b869 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2af43745b869 type=3 (0 0) Lookup location=0x2af43745b86e type=3: not found Pointer enter location=0x2af43745b86e array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2af43745b86e type=3 (0 0) Lookup location=0x2af43745b873 type=3: not found Pointer enter location=0x2af43745b873 array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2af43745b873 type=3 (0 0) Lookup location=0x2af43745b878 type=3: not found Pointer enter location=0x2af43745b878 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2af43745b878 type=3 (0 0) Lookup location=0x2af43745b880 type=3: not found Pointer enter location=0x2af43745b880 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2af43745b880 type=3 (0 0) Lookup location=0x2af43745b886 type=3: not found Pointer enter location=0x2af43745b886 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2af43745b886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x8260800 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a4a50 type=347: not found Embedded_id 0x7fff872a4a50 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff872bdfd0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff872bdfd0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x826eed0 type=30 id=2 Is embedded? 0 0 Embedded_id 0x826eed0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x828d820 type=29 id=3 Is embedded? 0 0 Embedded_id 0x828d820 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x82b92c0 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2af43846c0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2af43846c0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff872be160 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff872be160 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x826a520 type=28 id=7 Is embedded? 0 0 Embedded_id 0x826a520 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x8282ce0 type=14 id=8 Is embedded? 0 0 Embedded_id 0x8282ce0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af43745b869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b86e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1107 New count is 1107 bytes Begin send phase (socket=7 mode=0x1 count=1107) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a4a50 type=347: not found Embedded_id 0x7fff872a4a50 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fff872bdfd0 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fff872bdfd0 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x826eed0 type=30 id=2 Is embedded? 0 0 Embedded_id 0x826eed0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x828d820 type=29 id=3 Is embedded? 0 0 Embedded_id 0x828d820 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x82b92c0 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2af43846c0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2af43846c0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fff872be160 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff872be160 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x826a520 type=28 id=7 Is embedded? 0 0 Embedded_id 0x826a520 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x8282ce0 type=14 id=8 Is embedded? 0 0 Embedded_id 0x8282ce0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2af43745b869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b86e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2af43745b886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x8260800) Free pointer hashtable stdsoap2.c(4079): free(0x828e690) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x82b72a0 Free ID hashtable Read 1043 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 926 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x82b3500 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x82b2e60 stdsoap2.c(7219): malloc(64) = 0x82b0f40 stdsoap2.c(2336): malloc(40) = 0x82b0fe0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x82b0af0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x82b4630 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x82c0b30 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x82b37c0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x82bf540 stdsoap2.c(7172): malloc(62) = 0x82b1220 stdsoap2.c(7219): malloc(64) = 0x82a5360 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fff872be020 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x82b3430 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x82b3bf0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x82b3bf0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x82b3270 Enter id='' type=3 loc=0x82b3270 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x82b3cd0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x82b4550 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x82b35f0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x82b3e10 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x82b3ad0 stdsoap2.c(6963): free(0x82b2e60) stdsoap2.c(4726): malloc(96) = 0x8260800 Enter id='' type=6 loc=0x8260800 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x82608a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x82608a0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x82b35f0->(nil)) stdsoap2.c(4726): malloc(24) = 0x82a58e0 First block Copy 8 bytes from 0x82b3600 to 0x82a58e0 Next block stdsoap2.c(2026): free(0x82b35f0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x82b4550) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x82b37c0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x82c0b30) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x82b4630) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x82b0af0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x82b0fe0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x82a5360) stdsoap2.c(5406): free(0x82b1220) stdsoap2.c(5405): free(0x82b0f40) stdsoap2.c(5406): free(0x82b3500) stdsoap2.c(5411): free(0x82b3ad0) stdsoap2.c(5422): free(0x82bf540) stdsoap2.c(5428): free(0x82b72a0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x82a58e0) stdsoap2.c(4857): free(0x82608a0) stdsoap2.c(4857): free(0x8260800) stdsoap2.c(4857): free(0x82b3e10) stdsoap2.c(4857): free(0x82b3cd0) stdsoap2.c(4857): free(0x82b3270) stdsoap2.c(4857): free(0x82b3bf0) stdsoap2.c(4857): free(0x82b3430) stdsoap2.c(4857): free(0x8282ce0) stdsoap2.c(4857): free(0x828d820) stdsoap2.c(4857): free(0x826f760) stdsoap2.c(4857): free(0x826a520) stdsoap2.c(4857): free(0x828fc00) stdsoap2.c(4857): free(0x826eed0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x8264160) Free logfiles stdsoap2.c(2959): free(0x8295940) stdsoap2.c(2959): free(0x8266c30) stdsoap2.c(2959): free(0x826f780) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff872a4b00 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x828e690 Pointer enter location=0x7fff872a4b00 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fff872a4b00 type=95 (0 0) Lookup location=0x82b0fe0 type=3: not found Pointer enter location=0x82b0fe0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x82b0fe0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x8260800 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a4a90 type=353: not found Embedded_id 0x7fff872a4a90 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff872a4b00 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff872a4b00 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x82b0fe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a4a90 type=353: not found Embedded_id 0x7fff872a4a90 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fff872a4b00 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fff872a4b00 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x82b0fe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x8260800) Free pointer hashtable stdsoap2.c(4079): free(0x828e690) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x8260800 Free ID hashtable Read 1165 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1047 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x8290b10 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x82b4020 stdsoap2.c(7219): malloc(64) = 0x8290980 stdsoap2.c(2336): malloc(40) = 0x82b6890 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x82b62c0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x82badc0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8290400 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x82b8760 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x82911f0 stdsoap2.c(7172): malloc(62) = 0x82b6400 stdsoap2.c(7219): malloc(64) = 0x82b1310 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fff872a4b20 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x8290bb0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x82b6760 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x82b6760 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x82b6a20 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x82b6ff0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x82b6970 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x8290c50 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x82a7cb0 stdsoap2.c(6963): free(0x82b4020) stdsoap2.c(4726): malloc(96) = 0x82950a0 Enter id='' type=6 loc=0x82950a0 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x8290380 Element content value='65536' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8295170 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x8295170 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x82905b0 Element content value='7199' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(96) = 0x8294370 Enter id='' type=6 loc=0x8294370 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x82b6970->(nil)) stdsoap2.c(4726): malloc(24) = 0x82b92a0 First block Copy 8 bytes from 0x82b6980 to 0x82b92a0 Next block stdsoap2.c(2026): free(0x82b6970) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x82b6ff0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x82b8760) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x8290400) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x82badc0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x82b62c0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x82b6890) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x82b1310) stdsoap2.c(5406): free(0x82b6400) stdsoap2.c(5405): free(0x8290980) stdsoap2.c(5406): free(0x8290b10) stdsoap2.c(5411): free(0x82a7cb0) stdsoap2.c(5422): free(0x82911f0) stdsoap2.c(5428): free(0x8260800) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x82b92a0) stdsoap2.c(4857): free(0x8294370) stdsoap2.c(4857): free(0x82905b0) stdsoap2.c(4857): free(0x8295170) stdsoap2.c(4857): free(0x8290380) stdsoap2.c(4857): free(0x82950a0) stdsoap2.c(4857): free(0x8290c50) stdsoap2.c(4857): free(0x82b6a20) stdsoap2.c(4857): free(0x82b6760) stdsoap2.c(4857): free(0x8290bb0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x82b3b60) Free logfiles stdsoap2.c(2959): free(0x826f780) stdsoap2.c(2959): free(0x8266c30) stdsoap2.c(2959): free(0x8295940) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x8290db0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff872be950 type=109: not found stdsoap2.c(4149): malloc(1288) = 0x82b68c0 Pointer enter location=0x7fff872be950 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fff872be950 type=109 (0 0) Lookup location=0x82b0fe0 type=3: not found Pointer enter location=0x82b0fe0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x82b0fe0 type=3 (0 0) Lookup location=0x8290db0 type=27: not found Pointer enter location=0x8290db0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x8290db0 type=27 (0 0) Lookup location=0x82b92c0 type=3: not found Pointer enter location=0x82b92c0 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x82b92c0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x828f6b0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a53f0 type=395: not found Embedded_id 0x7fff872a53f0 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff872be950 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff872be950 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x82b0fe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x8290db0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x8290db0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x82b92c0 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=734 New count is 734 bytes Begin send phase (socket=7 mode=0x1 count=734) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff872a53f0 type=395: not found Embedded_id 0x7fff872a53f0 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fff872be950 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fff872be950 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x82b0fe0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x8290db0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x8290db0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x82b92c0 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x828f6b0) Free pointer hashtable stdsoap2.c(4079): free(0x82b68c0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x82954c0 Free ID hashtable Read 952 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 835 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x8291880 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x8291ac0 stdsoap2.c(7219): malloc(64) = 0x82b1280 stdsoap2.c(2336): malloc(40) = 0x82b1390 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x82badc0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x82916b0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x8295720 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x82b1510 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x8291750 stdsoap2.c(7172): malloc(62) = 0x82b33e0 stdsoap2.c(7219): malloc(64) = 0x82920f0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fff872be970 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8292170 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8292200 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x8292200 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8292260 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x82b1700 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x82929b0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x828f740 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x8292a20 stdsoap2.c(6963): free(0x8291ac0) stdsoap2.c(4726): malloc(96) = 0x8291f20 Enter id='' type=6 loc=0x8291f20 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x8291fc0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x8291fc0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x82929b0->(nil)) stdsoap2.c(4726): malloc(24) = 0x82b1b70 First block Copy 8 bytes from 0x82929c0 to 0x82b1b70 Next block stdsoap2.c(2026): free(0x82929b0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x82b1700) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x82b1510) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x8295720) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x82916b0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x82badc0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x82b1390) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x82920f0) stdsoap2.c(5406): free(0x82b33e0) stdsoap2.c(5405): free(0x82b1280) stdsoap2.c(5406): free(0x8291880) stdsoap2.c(5411): free(0x8292a20) stdsoap2.c(5422): free(0x8291750) stdsoap2.c(5428): free(0x82954c0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x82b1b70) stdsoap2.c(4857): free(0x8291fc0) stdsoap2.c(4857): free(0x8291f20) stdsoap2.c(4857): free(0x828f740) stdsoap2.c(4857): free(0x8292260) stdsoap2.c(4857): free(0x8292200) stdsoap2.c(4857): free(0x8292170) stdsoap2.c(4857): free(0x8290db0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x82b6540) Free logfiles stdsoap2.c(2959): free(0x8260920) stdsoap2.c(2959): free(0x8272850) stdsoap2.c(2959): free(0x82b64f0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffffcb1a0d0 type=81: not found stdsoap2.c(4149): malloc(1288) = 0xa837c20 Pointer enter location=0x7ffffcb1a0d0 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7ffffcb1a0d0 type=81 (0 0) Lookup location=0xa832720 type=3: not found Pointer enter location=0xa832720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xa832720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xa838130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffffcb00b80 type=311: not found Embedded_id 0x7ffffcb00b80 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7ffffcb1a0d0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7ffffcb1a0d0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xa832720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffffcb00b80 type=311: not found Embedded_id 0x7ffffcb00b80 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7ffffcb1a0d0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7ffffcb1a0d0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0xa832720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xa838130) Free pointer hashtable stdsoap2.c(4079): free(0xa837c20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xa8541b0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xa83f3f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xa843460 stdsoap2.c(7219): malloc(64) = 0xa841a80 stdsoap2.c(2336): malloc(40) = 0xa83fa50 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xa842520 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa83a550 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa861e70 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa842820 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xa8428c0 stdsoap2.c(7172): malloc(62) = 0xa83f7d0 stdsoap2.c(7219): malloc(64) = 0xa83f650 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7ffffcb1a0f0 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xa8436d0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xa854b20 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xa854b20 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0xa854b80 Enter id='' type=3 loc=0xa854b80 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xa842820) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xa861e70) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xa83a550) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xa842520) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xa83fa50) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xa83f650) stdsoap2.c(5406): free(0xa83f7d0) stdsoap2.c(5405): free(0xa841a80) stdsoap2.c(5406): free(0xa83f3f0) stdsoap2.c(5411): free(0xa843460) stdsoap2.c(5422): free(0xa8428c0) stdsoap2.c(5428): free(0xa8541b0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xa854b80) stdsoap2.c(4857): free(0xa854b20) stdsoap2.c(4857): free(0xa8436d0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xa823530) Free logfiles stdsoap2.c(2959): free(0xa822580) stdsoap2.c(2959): free(0xa823640) stdsoap2.c(2959): free(0xa824670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0xa81fe10 stdsoap2.c(4726): malloc(24) = 0xa81fe40 stdsoap2.c(4726): malloc(48) = 0xa821870 stdsoap2.c(4726): malloc(24) = 0xa8218e0 stdsoap2.c(4726): malloc(32) = 0xa821930 stdsoap2.c(4726): malloc(24) = 0xa821990 stdsoap2.c(4726): malloc(32) = 0xa8219e0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffffcb1a0c0 type=101: not found stdsoap2.c(4149): malloc(1288) = 0xa821a40 Pointer enter location=0x7ffffcb1a0c0 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7ffffcb1a0c0 type=101 (0 0) Lookup location=0xa81fe10 type=32: not found Pointer enter location=0xa81fe10 array=(nil) size=0 dim=0 type=32 id=2 Reference 0xa81fe10 type=32 (0 0) Lookup location=0xa821930 type=31: not found Pointer enter location=0xa821930 array=(nil) size=0 dim=0 type=31 id=3 Reference 0xa821930 type=31 (0 0) Lookup location=0xa818820 type=3: not found Pointer enter location=0xa818820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0xa818820 type=3 (0 0) Lookup location=0xa821990 type=148: not found Pointer enter location=0xa821990 array=(nil) size=0 dim=0 type=148 id=5 Reference 0xa821990 type=148 (0 0) Lookup location=0x7ffffcb1a270 type=1: not found Pointer enter location=0x7ffffcb1a270 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7ffffcb1a270 type=1 (0 0) Lookup location=0x2b44f3c030c8 type=131: not found Pointer enter location=0x2b44f3c030c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2b44f3c030c8 type=131 (0 0) Lookup location=0xa821870 type=28: not found Pointer enter location=0xa821870 array=(nil) size=0 dim=0 type=28 id=8 Reference 0xa821870 type=28 (0 0) Lookup location=0xa8219e0 type=14: not found Pointer enter location=0xa8219e0 array=(nil) size=0 dim=0 type=14 id=9 Reference 0xa8219e0 type=14 (0 0) Lookup location=0x2b44f2bf2869 type=3: not found Pointer enter location=0x2b44f2bf2869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2b44f2bf2869 type=3 (0 0) Lookup location=0x2b44f2bf286e type=3: not found Pointer enter location=0x2b44f2bf286e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2b44f2bf286e type=3 (0 0) Lookup location=0x2b44f2bf2873 type=3: not found Pointer enter location=0x2b44f2bf2873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2b44f2bf2873 type=3 (0 0) Lookup location=0x2b44f2bf2878 type=3: not found Pointer enter location=0x2b44f2bf2878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2b44f2bf2878 type=3 (0 0) Lookup location=0x2b44f2bf2880 type=3: not found Pointer enter location=0x2b44f2bf2880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2b44f2bf2880 type=3 (0 0) Lookup location=0x2b44f2bf2886 type=3: not found Pointer enter location=0x2b44f2bf2886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2b44f2bf2886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xa821f80 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffffcb00b30 type=371: not found Embedded_id 0x7ffffcb00b30 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7ffffcb1a0c0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7ffffcb1a0c0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xa81fe10 type=32 id=2 Is embedded? 0 0 Embedded_id 0xa81fe10 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xa821930 type=31 id=3 Is embedded? 0 0 Embedded_id 0xa821930 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xa818820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xa821990 type=148 id=5 Is embedded? 0 0 Embedded_id 0xa821990 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7ffffcb1a270 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7ffffcb1a270 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b44f3c030c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b44f3c030c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xa821870 type=28 id=8 Is embedded? 0 0 Embedded_id 0xa821870 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xa8219e0 type=14 id=9 Is embedded? 0 0 Embedded_id 0xa8219e0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b44f2bf2869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b44f2bf286e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b44f2bf2873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b44f2bf2878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b44f2bf2880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b44f2bf2886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1148 New count is 1148 bytes Begin send phase (socket=7 mode=0x1 count=1148) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffffcb00b30 type=371: not found Embedded_id 0x7ffffcb00b30 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7ffffcb1a0c0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7ffffcb1a0c0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0xa81fe10 type=32 id=2 Is embedded? 0 0 Embedded_id 0xa81fe10 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0xa821930 type=31 id=3 Is embedded? 0 0 Embedded_id 0xa821930 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0xa818820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0xa821990 type=148 id=5 Is embedded? 0 0 Embedded_id 0xa821990 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7ffffcb1a270 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7ffffcb1a270 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2b44f3c030c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2b44f3c030c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0xa821870 type=28 id=8 Is embedded? 0 0 Embedded_id 0xa821870 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0xa8219e0 type=14 id=9 Is embedded? 0 0 Embedded_id 0xa8219e0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2b44f2bf2869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b44f2bf286e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b44f2bf2873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b44f2bf2878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b44f2bf2880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2b44f2bf2886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xa821f80) Free pointer hashtable stdsoap2.c(4079): free(0xa821a40) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xa821f80 Free ID hashtable Read 1031 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 914 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xa8693c0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xa82d7c0 stdsoap2.c(7219): malloc(64) = 0xa82d010 stdsoap2.c(2336): malloc(40) = 0xa82a850 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xa825d40 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa843cb0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa82ab40 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa8680f0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xa854fc0 stdsoap2.c(7172): malloc(62) = 0xa82d830 stdsoap2.c(7219): malloc(64) = 0xa843bf0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7ffffcb1a120 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0xa82a8c0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xa82d5d0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xa82d5d0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0xa82d630 Enter id='' type=3 loc=0xa82d630 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xa8459a0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xa843bb0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xa82a450 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xa854630 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xa845aa0 stdsoap2.c(6963): free(0xa82d7c0) stdsoap2.c(4726): malloc(96) = 0xa8546c0 Enter id='' type=6 loc=0xa8546c0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xa845b90 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xa845b90 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xa82a450->(nil)) stdsoap2.c(4726): malloc(24) = 0xa854c40 First block Copy 8 bytes from 0xa82a460 to 0xa854c40 Next block stdsoap2.c(2026): free(0xa82a450) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xa843bb0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xa8680f0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xa82ab40) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xa843cb0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xa825d40) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xa82a850) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xa843bf0) stdsoap2.c(5406): free(0xa82d830) stdsoap2.c(5405): free(0xa82d010) stdsoap2.c(5406): free(0xa8693c0) stdsoap2.c(5411): free(0xa845aa0) stdsoap2.c(5422): free(0xa854fc0) stdsoap2.c(5428): free(0xa821f80) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xa854c40) stdsoap2.c(4857): free(0xa845b90) stdsoap2.c(4857): free(0xa8546c0) stdsoap2.c(4857): free(0xa854630) stdsoap2.c(4857): free(0xa8459a0) stdsoap2.c(4857): free(0xa82d630) stdsoap2.c(4857): free(0xa82d5d0) stdsoap2.c(4857): free(0xa82a8c0) stdsoap2.c(4857): free(0xa8219e0) stdsoap2.c(4857): free(0xa821990) stdsoap2.c(4857): free(0xa821930) stdsoap2.c(4857): free(0xa8218e0) stdsoap2.c(4857): free(0xa821870) stdsoap2.c(4857): free(0xa81fe40) stdsoap2.c(4857): free(0xa81fe10) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xa83f6d0) Free logfiles stdsoap2.c(2959): free(0xa824670) stdsoap2.c(2959): free(0xa823640) stdsoap2.c(2959): free(0xa822580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7ffffcb00c10 type=103: not found stdsoap2.c(4149): malloc(1288) = 0xa81cf70 Pointer enter location=0x7ffffcb00c10 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7ffffcb00c10 type=103 (0 0) Lookup location=0xa82a850 type=3: not found Pointer enter location=0xa82a850 array=(nil) size=0 dim=0 type=3 id=2 Reference 0xa82a850 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0xa81d480 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffffcb00ba0 type=377: not found Embedded_id 0x7ffffcb00ba0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7ffffcb00c10 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7ffffcb00c10 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xa82a850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7ffffcb00ba0 type=377: not found Embedded_id 0x7ffffcb00ba0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7ffffcb00c10 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7ffffcb00c10 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0xa82a850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0xa81d480) Free pointer hashtable stdsoap2.c(4079): free(0xa81cf70) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0xa8457c0 Free ID hashtable Read 1150 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1032 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0xa845890 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0xa829e40 stdsoap2.c(7219): malloc(64) = 0xa82a4f0 stdsoap2.c(2336): malloc(40) = 0xa826ed0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0xa81ec20 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa843a10 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa8271c0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0xa861f10 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0xa826f40 stdsoap2.c(7172): malloc(62) = 0xa829eb0 stdsoap2.c(7219): malloc(64) = 0xa843950 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7ffffcb00c30 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0xa854460 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xa8544c0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0xa8544c0 size=4 level=0 Element content value='SRM_FAILURE' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(40) = 0xa829c50 Enter id='' type=3 loc=0xa829c50 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xa829cb0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0xa843910 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0xa826ad0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0xa854e00 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0xa845920 stdsoap2.c(6963): free(0xa829e40) stdsoap2.c(4726): malloc(96) = 0xa826d20 Enter id='' type=6 loc=0xa826d20 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0xa826d90 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0xa826d90 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0xa854a20 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xa826fb0 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0xa826e50 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0xa826ad0->(nil)) stdsoap2.c(4726): malloc(24) = 0xa853e80 First block Copy 8 bytes from 0xa826ae0 to 0xa853e80 Next block stdsoap2.c(2026): free(0xa826ad0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0xa843910) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0xa861f10) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0xa8271c0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0xa843a10) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0xa81ec20) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0xa826ed0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0xa843950) stdsoap2.c(5406): free(0xa829eb0) stdsoap2.c(5405): free(0xa82a4f0) stdsoap2.c(5406): free(0xa845890) stdsoap2.c(5411): free(0xa845920) stdsoap2.c(5422): free(0xa826f40) stdsoap2.c(5428): free(0xa8457c0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0xa853e80) stdsoap2.c(4857): free(0xa826e50) stdsoap2.c(4857): free(0xa826fb0) stdsoap2.c(4857): free(0xa854a20) stdsoap2.c(4857): free(0xa826d90) stdsoap2.c(4857): free(0xa826d20) stdsoap2.c(4857): free(0xa854e00) stdsoap2.c(4857): free(0xa829cb0) stdsoap2.c(4857): free(0xa829c50) stdsoap2.c(4857): free(0xa8544c0) stdsoap2.c(4857): free(0xa854460) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0xa821810) Free logfiles stdsoap2.c(2959): free(0xa822580) stdsoap2.c(2959): free(0xa823640) stdsoap2.c(2959): free(0xa824670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff71fb7ce0 type=81: not found stdsoap2.c(4149): malloc(1288) = 0x13d29c20 Pointer enter location=0x7fff71fb7ce0 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fff71fb7ce0 type=81 (0 0) Lookup location=0x13d24720 type=3: not found Pointer enter location=0x13d24720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x13d24720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x13d2a130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff71f9e790 type=311: not found Embedded_id 0x7fff71f9e790 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff71fb7ce0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff71fb7ce0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x13d24720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff71f9e790 type=311: not found Embedded_id 0x7fff71f9e790 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fff71fb7ce0 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fff71fb7ce0 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x13d24720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x13d2a130) Free pointer hashtable stdsoap2.c(4079): free(0x13d29c20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x13d461b0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x13d313f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x13d35460 stdsoap2.c(7219): malloc(64) = 0x13d33a80 stdsoap2.c(2336): malloc(40) = 0x13d31a50 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x13d34520 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x13d2c550 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x13d53e70 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x13d34820 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x13d348c0 stdsoap2.c(7172): malloc(62) = 0x13d317d0 stdsoap2.c(7219): malloc(64) = 0x13d31650 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fff71fb7d00 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x13d356d0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x13d46b20 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x13d46b20 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0x13d46b80 Enter id='' type=3 loc=0x13d46b80 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x13d34820) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x13d53e70) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x13d2c550) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x13d34520) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x13d31a50) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x13d31650) stdsoap2.c(5406): free(0x13d317d0) stdsoap2.c(5405): free(0x13d33a80) stdsoap2.c(5406): free(0x13d313f0) stdsoap2.c(5411): free(0x13d35460) stdsoap2.c(5422): free(0x13d348c0) stdsoap2.c(5428): free(0x13d461b0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x13d46b80) stdsoap2.c(4857): free(0x13d46b20) stdsoap2.c(4857): free(0x13d356d0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x13d15530) Free logfiles stdsoap2.c(2959): free(0x13d14580) stdsoap2.c(2959): free(0x13d15640) stdsoap2.c(2959): free(0x13d16670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x13d11e10 stdsoap2.c(4726): malloc(24) = 0x13d11e40 stdsoap2.c(4726): malloc(48) = 0x13d13870 stdsoap2.c(4726): malloc(24) = 0x13d138e0 stdsoap2.c(4726): malloc(32) = 0x13d13930 stdsoap2.c(4726): malloc(24) = 0x13d13990 stdsoap2.c(4726): malloc(32) = 0x13d139e0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff71fb7cd0 type=101: not found stdsoap2.c(4149): malloc(1288) = 0x13d13a40 Pointer enter location=0x7fff71fb7cd0 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fff71fb7cd0 type=101 (0 0) Lookup location=0x13d11e10 type=32: not found Pointer enter location=0x13d11e10 array=(nil) size=0 dim=0 type=32 id=2 Reference 0x13d11e10 type=32 (0 0) Lookup location=0x13d13930 type=31: not found Pointer enter location=0x13d13930 array=(nil) size=0 dim=0 type=31 id=3 Reference 0x13d13930 type=31 (0 0) Lookup location=0x13d0a820 type=3: not found Pointer enter location=0x13d0a820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x13d0a820 type=3 (0 0) Lookup location=0x13d13990 type=148: not found Pointer enter location=0x13d13990 array=(nil) size=0 dim=0 type=148 id=5 Reference 0x13d13990 type=148 (0 0) Lookup location=0x7fff71fb7e80 type=1: not found Pointer enter location=0x7fff71fb7e80 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fff71fb7e80 type=1 (0 0) Lookup location=0x2adbb6f3e0c8 type=131: not found Pointer enter location=0x2adbb6f3e0c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2adbb6f3e0c8 type=131 (0 0) Lookup location=0x13d13870 type=28: not found Pointer enter location=0x13d13870 array=(nil) size=0 dim=0 type=28 id=8 Reference 0x13d13870 type=28 (0 0) Lookup location=0x13d139e0 type=14: not found Pointer enter location=0x13d139e0 array=(nil) size=0 dim=0 type=14 id=9 Reference 0x13d139e0 type=14 (0 0) Lookup location=0x2adbb5f2d869 type=3: not found Pointer enter location=0x2adbb5f2d869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2adbb5f2d869 type=3 (0 0) Lookup location=0x2adbb5f2d86e type=3: not found Pointer enter location=0x2adbb5f2d86e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2adbb5f2d86e type=3 (0 0) Lookup location=0x2adbb5f2d873 type=3: not found Pointer enter location=0x2adbb5f2d873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2adbb5f2d873 type=3 (0 0) Lookup location=0x2adbb5f2d878 type=3: not found Pointer enter location=0x2adbb5f2d878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2adbb5f2d878 type=3 (0 0) Lookup location=0x2adbb5f2d880 type=3: not found Pointer enter location=0x2adbb5f2d880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2adbb5f2d880 type=3 (0 0) Lookup location=0x2adbb5f2d886 type=3: not found Pointer enter location=0x2adbb5f2d886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2adbb5f2d886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x13d13f80 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff71f9e740 type=371: not found Embedded_id 0x7fff71f9e740 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff71fb7cd0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff71fb7cd0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x13d11e10 type=32 id=2 Is embedded? 0 0 Embedded_id 0x13d11e10 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x13d13930 type=31 id=3 Is embedded? 0 0 Embedded_id 0x13d13930 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x13d0a820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x13d13990 type=148 id=5 Is embedded? 0 0 Embedded_id 0x13d13990 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff71fb7e80 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff71fb7e80 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2adbb6f3e0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2adbb6f3e0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x13d13870 type=28 id=8 Is embedded? 0 0 Embedded_id 0x13d13870 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x13d139e0 type=14 id=9 Is embedded? 0 0 Embedded_id 0x13d139e0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2adbb5f2d869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2adbb5f2d86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2adbb5f2d873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2adbb5f2d878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2adbb5f2d880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2adbb5f2d886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1148 New count is 1148 bytes Begin send phase (socket=7 mode=0x1 count=1148) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff71f9e740 type=371: not found Embedded_id 0x7fff71f9e740 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fff71fb7cd0 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fff71fb7cd0 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x13d11e10 type=32 id=2 Is embedded? 0 0 Embedded_id 0x13d11e10 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x13d13930 type=31 id=3 Is embedded? 0 0 Embedded_id 0x13d13930 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x13d0a820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x13d13990 type=148 id=5 Is embedded? 0 0 Embedded_id 0x13d13990 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fff71fb7e80 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fff71fb7e80 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2adbb6f3e0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2adbb6f3e0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x13d13870 type=28 id=8 Is embedded? 0 0 Embedded_id 0x13d13870 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x13d139e0 type=14 id=9 Is embedded? 0 0 Embedded_id 0x13d139e0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2adbb5f2d869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2adbb5f2d86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2adbb5f2d873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2adbb5f2d878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2adbb5f2d880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2adbb5f2d886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x13d13f80) Free pointer hashtable stdsoap2.c(4079): free(0x13d13a40) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x13d13f80 Free ID hashtable Read 1031 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 914 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x13d1f7c0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x13d466c0 stdsoap2.c(7219): malloc(64) = 0x13d1f010 stdsoap2.c(2336): malloc(40) = 0x13d1c850 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x13d17d40 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x13d5b4d0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x13d35ce0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x13d1cb70 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x13d1c8c0 stdsoap2.c(7172): malloc(62) = 0x13d1c900 stdsoap2.c(7219): malloc(64) = 0x13d1f860 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fff71fb7d30 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x13d35c20 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x13d1f600 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x13d1f600 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x13d46f40 Enter id='' type=3 loc=0x13d46f40 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x13d46f80 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x13d35bb0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x13d1c450 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x13d379a0 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x13d37aa0 stdsoap2.c(6963): free(0x13d466c0) stdsoap2.c(4726): malloc(96) = 0x13d1c6a0 Enter id='' type=6 loc=0x13d1c6a0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x13d1c740 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x13d1c740 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x13d1c450->(nil)) stdsoap2.c(4726): malloc(24) = 0x13d46bc0 First block Copy 8 bytes from 0x13d1c460 to 0x13d46bc0 Next block stdsoap2.c(2026): free(0x13d1c450) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x13d35bb0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x13d1cb70) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x13d35ce0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x13d5b4d0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x13d17d40) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x13d1c850) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x13d1f860) stdsoap2.c(5406): free(0x13d1c900) stdsoap2.c(5405): free(0x13d1f010) stdsoap2.c(5406): free(0x13d1f7c0) stdsoap2.c(5411): free(0x13d37aa0) stdsoap2.c(5422): free(0x13d1c8c0) stdsoap2.c(5428): free(0x13d13f80) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x13d46bc0) stdsoap2.c(4857): free(0x13d1c740) stdsoap2.c(4857): free(0x13d1c6a0) stdsoap2.c(4857): free(0x13d379a0) stdsoap2.c(4857): free(0x13d46f80) stdsoap2.c(4857): free(0x13d46f40) stdsoap2.c(4857): free(0x13d1f600) stdsoap2.c(4857): free(0x13d35c20) stdsoap2.c(4857): free(0x13d139e0) stdsoap2.c(4857): free(0x13d13990) stdsoap2.c(4857): free(0x13d13930) stdsoap2.c(4857): free(0x13d138e0) stdsoap2.c(4857): free(0x13d13870) stdsoap2.c(4857): free(0x13d11e40) stdsoap2.c(4857): free(0x13d11e10) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x13d316d0) Free logfiles stdsoap2.c(2959): free(0x13d16670) stdsoap2.c(2959): free(0x13d15640) stdsoap2.c(2959): free(0x13d14580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fff71f9e820 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x13d0ef70 Pointer enter location=0x7fff71f9e820 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fff71f9e820 type=103 (0 0) Lookup location=0x13d1c850 type=3: not found Pointer enter location=0x13d1c850 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x13d1c850 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x13d0f480 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff71f9e7b0 type=377: not found Embedded_id 0x7fff71f9e7b0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff71f9e820 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff71f9e820 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x13d1c850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fff71f9e7b0 type=377: not found Embedded_id 0x7fff71f9e7b0 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fff71f9e820 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fff71f9e820 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x13d1c850 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x13d0f480) Free pointer hashtable stdsoap2.c(4079): free(0x13d0ef70) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x13d377c0 Free ID hashtable Read 1150 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1032 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x13d37890 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x13d1be40 stdsoap2.c(7219): malloc(64) = 0x13d1c4f0 stdsoap2.c(2336): malloc(40) = 0x13d18ed0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x13d10c20 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x13d35a10 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x13d191c0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x13d53f10 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x13d18f40 stdsoap2.c(7172): malloc(62) = 0x13d1beb0 stdsoap2.c(7219): malloc(64) = 0x13d35950 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fff71f9e840 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x13d46460 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x13d464c0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x13d464c0 size=4 level=0 Element content value='SRM_FAILURE' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(40) = 0x13d1bc50 Enter id='' type=3 loc=0x13d1bc50 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x13d1bcb0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x13d35910 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x13d18ad0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x13d46e00 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x13d37920 stdsoap2.c(6963): free(0x13d1be40) stdsoap2.c(4726): malloc(96) = 0x13d18d20 Enter id='' type=6 loc=0x13d18d20 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x13d18d90 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x13d18d90 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x13d46a20 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x13d18fb0 Element content value='0' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x13d18e50 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x13d18ad0->(nil)) stdsoap2.c(4726): malloc(24) = 0x13d45e80 First block Copy 8 bytes from 0x13d18ae0 to 0x13d45e80 Next block stdsoap2.c(2026): free(0x13d18ad0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x13d35910) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x13d53f10) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x13d191c0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x13d35a10) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x13d10c20) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x13d18ed0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x13d35950) stdsoap2.c(5406): free(0x13d1beb0) stdsoap2.c(5405): free(0x13d1c4f0) stdsoap2.c(5406): free(0x13d37890) stdsoap2.c(5411): free(0x13d37920) stdsoap2.c(5422): free(0x13d18f40) stdsoap2.c(5428): free(0x13d377c0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x13d45e80) stdsoap2.c(4857): free(0x13d18e50) stdsoap2.c(4857): free(0x13d18fb0) stdsoap2.c(4857): free(0x13d46a20) stdsoap2.c(4857): free(0x13d18d90) stdsoap2.c(4857): free(0x13d18d20) stdsoap2.c(4857): free(0x13d46e00) stdsoap2.c(4857): free(0x13d1bcb0) stdsoap2.c(4857): free(0x13d1bc50) stdsoap2.c(4857): free(0x13d464c0) stdsoap2.c(4857): free(0x13d46460) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x13d13810) Free logfiles stdsoap2.c(2959): free(0x13d14580) stdsoap2.c(2959): free(0x13d15640) stdsoap2.c(2959): free(0x13d16670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffb2a45c50 type=81: not found stdsoap2.c(4149): malloc(1288) = 0x6a66c20 Pointer enter location=0x7fffb2a45c50 array=(nil) size=0 dim=0 type=81 id=1 Reference 0x7fffb2a45c50 type=81 (0 0) Lookup location=0x6a61720 type=3: not found Pointer enter location=0x6a61720 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x6a61720 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x6a67130 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2c700 type=311: not found Embedded_id 0x7fffb2a2c700 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fffb2a45c50 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a45c50 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x6a61720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=598 New count is 598 bytes Begin send phase (socket=7 mode=0x1 count=598) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2c700 type=311: not found Embedded_id 0x7fffb2a2c700 type=311 id=0 Element begin tag='srm2:srmMkdir' id='0' type='' Lookup location=0x7fffb2a45c50 type=81 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a45c50 type=81 id=0 Element begin tag='srmMkdirRequest' id='0' type='' Lookup location=0x6a61720 type=6: not found Element begin tag='SURL' id='0' type='' Element ending tag='SURL' Element ending tag='srmMkdirRequest' Element ending tag='srm2:srmMkdir' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x6a67130) Free pointer hashtable stdsoap2.c(4079): free(0x6a66c20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x6a713f0 Free ID hashtable Read 759 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 642 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x6a6e3f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x6a72460 stdsoap2.c(7219): malloc(64) = 0x6a70a80 stdsoap2.c(2336): malloc(40) = 0x6a685f0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x6a6ea80 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a71550 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a69580 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a90ea0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x6a71850 stdsoap2.c(7172): malloc(62) = 0x6a718f0 stdsoap2.c(7219): malloc(64) = 0x6a6e800 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmMkdirResponse' 'srm2:srmMkdirResponse' Begin element found (level=3) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' Enter id='' type=306 loc=0x7fffb2a45c70 size=8 level=0 Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Reverting last element (level=3) Tags match: 'srmMkdirResponse' 'srmMkdirResponse' Begin element found (level=4) 'srmMkdirResponse'='srmMkdirResponse' Enter id='' type=82 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x6a726d0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a6e6b0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6a6e6b0 size=4 level=0 Element content value='SRM_DUPLICATION_ERROR' End element found (level=5) 'statusCode'='statusCode' Tags match: 'explanation' 'explanation' Begin element found (level=6) 'explanation'='explanation' Reading string content stdsoap2.c(4726): malloc(32) = 0x6a83250 Enter id='' type=3 loc=0x6a83250 size=8 level=0 End element found (level=5) 'explanation'='explanation' End element found (level=4) 'returnStatus'='returnStatus' End element found (level=3) 'srmMkdirResponse'='srmMkdirResponse' End element found (level=2) 'ns1:srmMkdirResponse'='srm2:srmMkdirResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x6a90ea0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x6a69580) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x6a71550) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x6a6ea80) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x6a685f0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x6a6e800) stdsoap2.c(5406): free(0x6a718f0) stdsoap2.c(5405): free(0x6a70a80) stdsoap2.c(5406): free(0x6a6e3f0) stdsoap2.c(5411): free(0x6a72460) stdsoap2.c(5422): free(0x6a71850) stdsoap2.c(5428): free(0x6a713f0) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x6a83250) stdsoap2.c(4857): free(0x6a6e6b0) stdsoap2.c(4857): free(0x6a726d0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x6a52530) Free logfiles stdsoap2.c(2959): free(0x6a51580) stdsoap2.c(2959): free(0x6a52640) stdsoap2.c(2959): free(0x6a53670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x6a4edf0 stdsoap2.c(4726): malloc(24) = 0x6a4ee20 stdsoap2.c(4726): malloc(48) = 0x6a50880 stdsoap2.c(4726): malloc(24) = 0x6a508f0 stdsoap2.c(4726): malloc(32) = 0x6a50940 stdsoap2.c(4726): malloc(24) = 0x6a509a0 stdsoap2.c(4726): malloc(32) = 0x6a509f0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffb2a45c40 type=101: not found stdsoap2.c(4149): malloc(1288) = 0x6a50a50 Pointer enter location=0x7fffb2a45c40 array=(nil) size=0 dim=0 type=101 id=1 Reference 0x7fffb2a45c40 type=101 (0 0) Lookup location=0x6a4edf0 type=32: not found Pointer enter location=0x6a4edf0 array=(nil) size=0 dim=0 type=32 id=2 Reference 0x6a4edf0 type=32 (0 0) Lookup location=0x6a50940 type=31: not found Pointer enter location=0x6a50940 array=(nil) size=0 dim=0 type=31 id=3 Reference 0x6a50940 type=31 (0 0) Lookup location=0x6a47820 type=3: not found Pointer enter location=0x6a47820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x6a47820 type=3 (0 0) Lookup location=0x6a509a0 type=148: not found Pointer enter location=0x6a509a0 array=(nil) size=0 dim=0 type=148 id=5 Reference 0x6a509a0 type=148 (0 0) Lookup location=0x7fffb2a45df0 type=1: not found Pointer enter location=0x7fffb2a45df0 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fffb2a45df0 type=1 (0 0) Lookup location=0x2acac8d7b0c8 type=131: not found Pointer enter location=0x2acac8d7b0c8 array=(nil) size=0 dim=0 type=131 id=7 Reference 0x2acac8d7b0c8 type=131 (0 0) Lookup location=0x6a50880 type=28: not found Pointer enter location=0x6a50880 array=(nil) size=0 dim=0 type=28 id=8 Reference 0x6a50880 type=28 (0 0) Lookup location=0x6a509f0 type=14: not found Pointer enter location=0x6a509f0 array=(nil) size=0 dim=0 type=14 id=9 Reference 0x6a509f0 type=14 (0 0) Lookup location=0x2acac7d6a869 type=3: not found Pointer enter location=0x2acac7d6a869 array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2acac7d6a869 type=3 (0 0) Lookup location=0x2acac7d6a86e type=3: not found Pointer enter location=0x2acac7d6a86e array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2acac7d6a86e type=3 (0 0) Lookup location=0x2acac7d6a873 type=3: not found Pointer enter location=0x2acac7d6a873 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2acac7d6a873 type=3 (0 0) Lookup location=0x2acac7d6a878 type=3: not found Pointer enter location=0x2acac7d6a878 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2acac7d6a878 type=3 (0 0) Lookup location=0x2acac7d6a880 type=3: not found Pointer enter location=0x2acac7d6a880 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2acac7d6a880 type=3 (0 0) Lookup location=0x2acac7d6a886 type=3: not found Pointer enter location=0x2acac7d6a886 array=(nil) size=0 dim=0 type=3 id=15 Reference 0x2acac7d6a886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x6a50f90 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2c6b0 type=371: not found Embedded_id 0x7fffb2a2c6b0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fffb2a45c40 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a45c40 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x6a4edf0 type=32 id=2 Is embedded? 0 0 Embedded_id 0x6a4edf0 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x6a50940 type=31 id=3 Is embedded? 0 0 Embedded_id 0x6a50940 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x6a47820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x6a509a0 type=148 id=5 Is embedded? 0 0 Embedded_id 0x6a509a0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fffb2a45df0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffb2a45df0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2acac8d7b0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2acac8d7b0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x6a50880 type=28 id=8 Is embedded? 0 0 Embedded_id 0x6a50880 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x6a509f0 type=14 id=9 Is embedded? 0 0 Embedded_id 0x6a509f0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2acac7d6a869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1149 New count is 1149 bytes Begin send phase (socket=7 mode=0x1 count=1149) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2c6b0 type=371: not found Embedded_id 0x7fffb2a2c6b0 type=371 id=0 Element begin tag='srm2:srmPrepareToPut' id='0' type='' Lookup location=0x7fffb2a45c40 type=101 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a45c40 type=101 id=0 Element begin tag='srmPrepareToPutRequest' id='0' type='' Lookup location=0x6a4edf0 type=32 id=2 Is embedded? 0 0 Embedded_id 0x6a4edf0 type=32 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x6a50940 type=31 id=3 Is embedded? 0 0 Embedded_id 0x6a50940 type=31 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x6a47820 type=6: not found Element begin tag='targetSURL' id='0' type='' Element ending tag='targetSURL' Lookup location=0x6a509a0 type=148 id=5 Is embedded? 0 0 Embedded_id 0x6a509a0 type=148 id=0 Element begin tag='expectedFileSize' id='0' type='' Element ending tag='expectedFileSize' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x7fffb2a45df0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffb2a45df0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x2acac8d7b0c8 type=131 id=7 Is embedded? 0 0 Embedded_id 0x2acac8d7b0c8 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x6a50880 type=28 id=8 Is embedded? 0 0 Embedded_id 0x6a50880 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x6a509f0 type=14 id=9 Is embedded? 0 0 Embedded_id 0x6a509f0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2acac7d6a869 type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a86e type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a873 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a878 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a880 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a886 type=3 id=15 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToPutRequest' Element ending tag='srm2:srmPrepareToPut' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x6a50f90) Free pointer hashtable stdsoap2.c(4079): free(0x6a50a50) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x6a50f90 Free ID hashtable Read 1032 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 915 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x6a98390 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x6a5c7e0 stdsoap2.c(7219): malloc(64) = 0x6a5c030 stdsoap2.c(2336): malloc(40) = 0x6a59870 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x6a54d60 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a72cb0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a59b60 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a970c0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x6a83fe0 stdsoap2.c(7172): malloc(62) = 0x6a5c850 stdsoap2.c(7219): malloc(64) = 0x6a72bf0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToPutResponse' 'srm2:srmPrepareToPutResponse' Begin element found (level=3) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' Enter id='' type=366 loc=0x7fffb2a45ca0 size=8 level=0 Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Reverting last element (level=3) Tags match: 'srmPrepareToPutResponse' 'srmPrepareToPutResponse' Begin element found (level=4) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' Enter id='' type=102 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x6a598e0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a5c5f0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6a5c5f0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x6a5c650 Enter id='' type=3 loc=0x6a5c650 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a749c0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x6a72bb0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x6a59470 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x6a83650 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x6a74ac0 stdsoap2.c(6963): free(0x6a5c7e0) stdsoap2.c(4726): malloc(96) = 0x6a836e0 Enter id='' type=6 loc=0x6a836e0 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a74bb0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6a74bb0 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x6a59470->(nil)) stdsoap2.c(4726): malloc(24) = 0x6a83c60 First block Copy 8 bytes from 0x6a59480 to 0x6a83c60 Next block stdsoap2.c(2026): free(0x6a59470) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x6a72bb0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToPutResponse'='srmPrepareToPutResponse' End element found (level=2) 'ns1:srmPrepareToPutResponse'='srm2:srmPrepareToPutResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x6a970c0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x6a59b60) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x6a72cb0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x6a54d60) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x6a59870) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x6a72bf0) stdsoap2.c(5406): free(0x6a5c850) stdsoap2.c(5405): free(0x6a5c030) stdsoap2.c(5406): free(0x6a98390) stdsoap2.c(5411): free(0x6a74ac0) stdsoap2.c(5422): free(0x6a83fe0) stdsoap2.c(5428): free(0x6a50f90) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x6a83c60) stdsoap2.c(4857): free(0x6a74bb0) stdsoap2.c(4857): free(0x6a836e0) stdsoap2.c(4857): free(0x6a83650) stdsoap2.c(4857): free(0x6a749c0) stdsoap2.c(4857): free(0x6a5c650) stdsoap2.c(4857): free(0x6a5c5f0) stdsoap2.c(4857): free(0x6a598e0) stdsoap2.c(4857): free(0x6a509f0) stdsoap2.c(4857): free(0x6a509a0) stdsoap2.c(4857): free(0x6a50940) stdsoap2.c(4857): free(0x6a508f0) stdsoap2.c(4857): free(0x6a50880) stdsoap2.c(4857): free(0x6a4ee20) stdsoap2.c(4857): free(0x6a4edf0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x6a47cc0) Free logfiles stdsoap2.c(2959): free(0x6a53670) stdsoap2.c(2959): free(0x6a52640) stdsoap2.c(2959): free(0x6a51580) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffb2a2c790 type=103: not found stdsoap2.c(4149): malloc(1288) = 0x6a55550 Pointer enter location=0x7fffb2a2c790 array=(nil) size=0 dim=0 type=103 id=1 Reference 0x7fffb2a2c790 type=103 (0 0) Lookup location=0x6a59870 type=3: not found Pointer enter location=0x6a59870 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x6a59870 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x6a55a60 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2c720 type=377: not found Embedded_id 0x7fffb2a2c720 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffb2a2c790 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a2c790 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x6a59870 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2c720 type=377: not found Embedded_id 0x7fffb2a2c720 type=377 id=0 Element begin tag='srm2:srmStatusOfPutRequest' id='0' type='' Lookup location=0x7fffb2a2c790 type=103 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a2c790 type=103 id=0 Element begin tag='srmStatusOfPutRequestRequest' id='0' type='' Lookup location=0x6a59870 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfPutRequestRequest' Element ending tag='srm2:srmStatusOfPutRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x6a55a60) Free pointer hashtable stdsoap2.c(4079): free(0x6a55550) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x6a50880 Free ID hashtable Read 1211 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1093 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x6a510f0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x6a4e360 stdsoap2.c(7219): malloc(64) = 0x6a57510 stdsoap2.c(2336): malloc(40) = 0x6a4dc40 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x6a97200 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a970f0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a50a40 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a50ae0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x6a4db40 stdsoap2.c(7172): malloc(62) = 0x6a83460 stdsoap2.c(7219): malloc(64) = 0x6a83da0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfPutRequestResponse' 'srm2:srmStatusOfPutRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' Enter id='' type=372 loc=0x7fffb2a2c7b0 size=8 level=0 Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfPutRequestResponse' 'srmStatusOfPutRequestResponse' Begin element found (level=4) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' Enter id='' type=104 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x6a834e0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a747c0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6a747c0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=40 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a74820 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x6a72910 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x6a509a0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=39 loc=(nil) size=64 level=0 stdsoap2.c(4726): malloc(80) = 0x6a74920 Tags match: 'SURL' 'SURL' Begin element found (level=7) 'SURL'='SURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x6a72950 stdsoap2.c(6963): free(0x6a4e360) stdsoap2.c(4726): malloc(96) = 0x6a4d950 Enter id='' type=6 loc=0x6a4d950 size=8 level=0 End element found (level=6) 'SURL'='SURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a4d9f0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6a4d9f0 size=4 level=0 Element content value='SRM_SPACE_AVAILABLE' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x6a4d6d0 Element content value='0' End element found (level=6) 'fileSize'='fileSize' Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Reverting last element (level=6) Tags match: 'remainingPinLifetime' 'remainingPinLifetime' Begin element found (level=7) 'remainingPinLifetime'='remainingPinLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x6a83a20 Element content value='7200' End element found (level=6) 'remainingPinLifetime'='remainingPinLifetime' Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Reverting last element (level=6) Tags match: 'remainingFileLifetime' 'remainingFileLifetime' Begin element found (level=7) 'remainingFileLifetime'='remainingFileLifetime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x6a50950 Element content value='0' End element found (level=6) 'remainingFileLifetime'='remainingFileLifetime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(96) = 0x6a83090 Enter id='' type=6 loc=0x6a83090 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x6a509a0->(nil)) stdsoap2.c(4726): malloc(24) = 0x6a50a70 First block Copy 8 bytes from 0x6a509b0 to 0x6a50a70 Next block stdsoap2.c(2026): free(0x6a509a0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x6a72910) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfPutRequestResponse'='srmStatusOfPutRequestResponse' End element found (level=2) 'ns1:srmStatusOfPutRequestResponse'='srm2:srmStatusOfPutRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x6a50ae0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x6a50a40) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x6a970f0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x6a97200) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x6a4dc40) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x6a83da0) stdsoap2.c(5406): free(0x6a83460) stdsoap2.c(5405): free(0x6a57510) stdsoap2.c(5406): free(0x6a510f0) stdsoap2.c(5411): free(0x6a72950) stdsoap2.c(5422): free(0x6a4db40) stdsoap2.c(5428): free(0x6a50880) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x6a50a70) stdsoap2.c(4857): free(0x6a83090) stdsoap2.c(4857): free(0x6a50950) stdsoap2.c(4857): free(0x6a83a20) stdsoap2.c(4857): free(0x6a4d6d0) stdsoap2.c(4857): free(0x6a4d9f0) stdsoap2.c(4857): free(0x6a4d950) stdsoap2.c(4857): free(0x6a74920) stdsoap2.c(4857): free(0x6a74820) stdsoap2.c(4857): free(0x6a747c0) stdsoap2.c(4857): free(0x6a834e0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x6a59920) Free logfiles stdsoap2.c(2959): free(0x6a51580) stdsoap2.c(2959): free(0x6a52640) stdsoap2.c(2959): free(0x6a53670) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x6a590d0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffb2a465e0 type=111: not found stdsoap2.c(4149): malloc(1288) = 0x6a78450 Pointer enter location=0x7fffb2a465e0 array=(nil) size=0 dim=0 type=111 id=1 Reference 0x7fffb2a465e0 type=111 (0 0) Lookup location=0x6a59870 type=3: not found Pointer enter location=0x6a59870 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x6a59870 type=3 (0 0) Lookup location=0x6a590d0 type=27: not found Pointer enter location=0x6a590d0 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x6a590d0 type=27 (0 0) Lookup location=0x6a47820 type=3: not found Pointer enter location=0x6a47820 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x6a47820 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x6a70920 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2d080 type=401: not found Embedded_id 0x7fffb2a2d080 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fffb2a465e0 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a465e0 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x6a59870 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x6a590d0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x6a590d0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x6a47820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=715 New count is 715 bytes Begin send phase (socket=7 mode=0x1 count=715) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2d080 type=401: not found Embedded_id 0x7fffb2a2d080 type=401 id=0 Element begin tag='srm2:srmPutDone' id='0' type='' Lookup location=0x7fffb2a465e0 type=111 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a465e0 type=111 id=0 Element begin tag='srmPutDoneRequest' id='0' type='' Lookup location=0x6a59870 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x6a590d0 type=27 id=3 Is embedded? 0 0 Embedded_id 0x6a590d0 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x6a47820 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmPutDoneRequest' Element ending tag='srm2:srmPutDone' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x6a70920) Free pointer hashtable stdsoap2.c(4079): free(0x6a78450) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x6a70920 Free ID hashtable Read 933 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 816 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x6a82c50 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x6a81d90 stdsoap2.c(7219): malloc(64) = 0x6a827e0 stdsoap2.c(2336): malloc(40) = 0x6a7f210 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x6a819d0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a7f120 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a7a290 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6aa1170 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x6a82d00 stdsoap2.c(7172): malloc(62) = 0x6a80fc0 stdsoap2.c(7219): malloc(64) = 0x6a81e00 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPutDoneResponse' 'srm2:srmPutDoneResponse' Begin element found (level=3) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' Enter id='' type=396 loc=0x7fffb2a46600 size=8 level=0 Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Reverting last element (level=3) Tags match: 'srmPutDoneResponse' 'srmPutDoneResponse' Begin element found (level=4) 'srmPutDoneResponse'='srmPutDoneResponse' Enter id='' type=112 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a7eea0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a7ef00 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6a7ef00 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a94090 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x6a82c10 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x6a81930 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a93720 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x6a84ac0 stdsoap2.c(6963): free(0x6a81d90) stdsoap2.c(4726): malloc(96) = 0x6a84bf0 Enter id='' type=6 loc=0x6a84bf0 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a84c90 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6a84c90 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x6a81930->(nil)) stdsoap2.c(4726): malloc(24) = 0x6a7e9b0 First block Copy 8 bytes from 0x6a81940 to 0x6a7e9b0 Next block stdsoap2.c(2026): free(0x6a81930) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x6a82c10) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPutDoneResponse'='srmPutDoneResponse' End element found (level=2) 'ns1:srmPutDoneResponse'='srm2:srmPutDoneResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x6aa1170) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x6a7a290) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x6a7f120) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x6a819d0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x6a7f210) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x6a81e00) stdsoap2.c(5406): free(0x6a80fc0) stdsoap2.c(5405): free(0x6a827e0) stdsoap2.c(5406): free(0x6a82c50) stdsoap2.c(5411): free(0x6a84ac0) stdsoap2.c(5422): free(0x6a82d00) stdsoap2.c(5428): free(0x6a70920) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x6a7e9b0) stdsoap2.c(4857): free(0x6a84c90) stdsoap2.c(4857): free(0x6a84bf0) stdsoap2.c(4857): free(0x6a93720) stdsoap2.c(4857): free(0x6a94090) stdsoap2.c(4857): free(0x6a7ef00) stdsoap2.c(4857): free(0x6a7eea0) stdsoap2.c(4857): free(0x6a590d0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x6a708c0) Free logfiles stdsoap2.c(2959): free(0x6a59640) stdsoap2.c(2959): free(0x6a4e360) stdsoap2.c(2959): free(0x6a47880) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x6a708f0 stdsoap2.c(4726): malloc(24) = 0x6a59640 stdsoap2.c(4726): malloc(48) = 0x6a4e360 stdsoap2.c(4726): malloc(24) = 0x6a4e3a0 stdsoap2.c(4726): malloc(32) = 0x6a714b0 stdsoap2.c(4726): malloc(32) = 0x6a709f0 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffb2a45c60 type=93: not found stdsoap2.c(4149): malloc(1288) = 0x6a78450 Pointer enter location=0x7fffb2a45c60 array=(nil) size=0 dim=0 type=93 id=1 Reference 0x7fffb2a45c60 type=93 (0 0) Lookup location=0x6a708f0 type=30: not found Pointer enter location=0x6a708f0 array=(nil) size=0 dim=0 type=30 id=2 Reference 0x6a708f0 type=30 (0 0) Lookup location=0x6a714b0 type=29: not found Pointer enter location=0x6a714b0 array=(nil) size=0 dim=0 type=29 id=3 Reference 0x6a714b0 type=29 (0 0) Lookup location=0x6a799f0 type=3: not found Pointer enter location=0x6a799f0 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x6a799f0 type=3 (0 0) Lookup location=0x2acac8d7b0d4 type=131: not found Pointer enter location=0x2acac8d7b0d4 array=(nil) size=0 dim=0 type=131 id=5 Reference 0x2acac8d7b0d4 type=131 (0 0) Lookup location=0x7fffb2a45df0 type=1: not found Pointer enter location=0x7fffb2a45df0 array=(nil) size=0 dim=0 type=1 id=6 Reference 0x7fffb2a45df0 type=1 (0 0) Lookup location=0x6a4e360 type=28: not found Pointer enter location=0x6a4e360 array=(nil) size=0 dim=0 type=28 id=7 Reference 0x6a4e360 type=28 (0 0) Lookup location=0x6a709f0 type=14: not found Pointer enter location=0x6a709f0 array=(nil) size=0 dim=0 type=14 id=8 Reference 0x6a709f0 type=14 (0 0) Lookup location=0x2acac7d6a869 type=3: not found Pointer enter location=0x2acac7d6a869 array=(nil) size=0 dim=0 type=3 id=9 Reference 0x2acac7d6a869 type=3 (0 0) Lookup location=0x2acac7d6a86e type=3: not found Pointer enter location=0x2acac7d6a86e array=(nil) size=0 dim=0 type=3 id=10 Reference 0x2acac7d6a86e type=3 (0 0) Lookup location=0x2acac7d6a873 type=3: not found Pointer enter location=0x2acac7d6a873 array=(nil) size=0 dim=0 type=3 id=11 Reference 0x2acac7d6a873 type=3 (0 0) Lookup location=0x2acac7d6a878 type=3: not found Pointer enter location=0x2acac7d6a878 array=(nil) size=0 dim=0 type=3 id=12 Reference 0x2acac7d6a878 type=3 (0 0) Lookup location=0x2acac7d6a880 type=3: not found Pointer enter location=0x2acac7d6a880 array=(nil) size=0 dim=0 type=3 id=13 Reference 0x2acac7d6a880 type=3 (0 0) Lookup location=0x2acac7d6a886 type=3: not found Pointer enter location=0x2acac7d6a886 array=(nil) size=0 dim=0 type=3 id=14 Reference 0x2acac7d6a886 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x6a47800 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2c6e0 type=347: not found Embedded_id 0x7fffb2a2c6e0 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fffb2a45c60 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a45c60 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x6a708f0 type=30 id=2 Is embedded? 0 0 Embedded_id 0x6a708f0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x6a714b0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x6a714b0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x6a799f0 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2acac8d7b0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2acac8d7b0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fffb2a45df0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffb2a45df0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x6a4e360 type=28 id=7 Is embedded? 0 0 Embedded_id 0x6a4e360 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x6a709f0 type=14 id=8 Is embedded? 0 0 Embedded_id 0x6a709f0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2acac7d6a869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a86e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=1108 New count is 1108 bytes Begin send phase (socket=7 mode=0x1 count=1108) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2c6e0 type=347: not found Embedded_id 0x7fffb2a2c6e0 type=347 id=0 Element begin tag='srm2:srmPrepareToGet' id='0' type='' Lookup location=0x7fffb2a45c60 type=93 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a45c60 type=93 id=0 Element begin tag='srmPrepareToGetRequest' id='0' type='' Lookup location=0x6a708f0 type=30 id=2 Is embedded? 0 0 Embedded_id 0x6a708f0 type=30 id=0 Element begin tag='arrayOfFileRequests' id='0' type='' Lookup location=0x6a714b0 type=29 id=3 Is embedded? 0 0 Embedded_id 0x6a714b0 type=29 id=0 Element begin tag='requestArray' id='0' type='' Lookup location=0x6a799f0 type=6: not found Element begin tag='sourceSURL' id='0' type='' Element ending tag='sourceSURL' Element ending tag='requestArray' Element ending tag='arrayOfFileRequests' Lookup location=0x2acac8d7b0d4 type=131 id=5 Is embedded? 0 0 Embedded_id 0x2acac8d7b0d4 type=131 id=0 Element begin tag='desiredFileStorageType' id='0' type='' Element ending tag='desiredFileStorageType' Lookup location=0x7fffb2a45df0 type=1 id=6 Is embedded? 0 0 Embedded_id 0x7fffb2a45df0 type=1 id=0 Element begin tag='desiredTotalRequestTime' id='0' type='' Element ending tag='desiredTotalRequestTime' Lookup location=0x6a4e360 type=28 id=7 Is embedded? 0 0 Embedded_id 0x6a4e360 type=28 id=0 Element begin tag='transferParameters' id='0' type='' Lookup location=0x6a709f0 type=14 id=8 Is embedded? 0 0 Embedded_id 0x6a709f0 type=14 id=0 Element begin tag='arrayOfTransferProtocols' id='0' type='' Lookup location=0x2acac7d6a869 type=3 id=9 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a86e type=3 id=10 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a873 type=3 id=11 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a878 type=3 id=12 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a880 type=3 id=13 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Lookup location=0x2acac7d6a886 type=3 id=14 Is embedded? 0 0 Element begin tag='stringArray' id='0' type='' Element ending tag='stringArray' Element ending tag='arrayOfTransferProtocols' Element ending tag='transferParameters' Element ending tag='srmPrepareToGetRequest' Element ending tag='srm2:srmPrepareToGet' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x6a47800) Free pointer hashtable stdsoap2.c(4079): free(0x6a78450) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x6a47800 Free ID hashtable Read 1044 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 927 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x6a94ac0 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x6a83600 stdsoap2.c(7219): malloc(64) = 0x6a82740 stdsoap2.c(2336): malloc(40) = 0x6a9d3c0 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x6a83190 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a7fbf0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a823b0 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a7fb00 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x6a836b0 stdsoap2.c(7172): malloc(62) = 0x6a81970 stdsoap2.c(7219): malloc(64) = 0x6a827b0 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmPrepareToGetResponse' 'srm2:srmPrepareToGetResponse' Begin element found (level=3) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' Enter id='' type=342 loc=0x7fffb2a45cb0 size=8 level=0 Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Reverting last element (level=3) Tags match: 'srmPrepareToGetResponse' 'srmPrepareToGetResponse' Begin element found (level=4) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' Enter id='' type=94 loc=(nil) size=32 level=0 stdsoap2.c(4726): malloc(48) = 0x6a82800 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a7f880 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6a7f880 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'requestToken' 'requestToken' Begin element found (level=5) 'requestToken'='requestToken' Reading string content stdsoap2.c(4726): malloc(56) = 0x6a85470 Enter id='' type=3 loc=0x6a85470 size=8 level=0 End element found (level=4) 'requestToken'='requestToken' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a854e0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x6a835c0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x6a822e0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x6a855d0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x6a94120 stdsoap2.c(6963): free(0x6a83600) stdsoap2.c(4726): malloc(96) = 0x6a85650 Enter id='' type=6 loc=0x6a85650 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a94210 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6a94210 size=4 level=0 Element content value='SRM_REQUEST_QUEUED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x6a822e0->(nil)) stdsoap2.c(4726): malloc(24) = 0x6a7f360 First block Copy 8 bytes from 0x6a822f0 to 0x6a7f360 Next block stdsoap2.c(2026): free(0x6a822e0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x6a835c0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmPrepareToGetResponse'='srmPrepareToGetResponse' End element found (level=2) 'ns1:srmPrepareToGetResponse'='srm2:srmPrepareToGetResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x6a7fb00) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x6a823b0) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x6a7fbf0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x6a83190) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x6a9d3c0) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x6a827b0) stdsoap2.c(5406): free(0x6a81970) stdsoap2.c(5405): free(0x6a82740) stdsoap2.c(5406): free(0x6a94ac0) stdsoap2.c(5411): free(0x6a94120) stdsoap2.c(5422): free(0x6a836b0) stdsoap2.c(5428): free(0x6a47800) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x6a7f360) stdsoap2.c(4857): free(0x6a94210) stdsoap2.c(4857): free(0x6a85650) stdsoap2.c(4857): free(0x6a855d0) stdsoap2.c(4857): free(0x6a854e0) stdsoap2.c(4857): free(0x6a85470) stdsoap2.c(4857): free(0x6a7f880) stdsoap2.c(4857): free(0x6a82800) stdsoap2.c(4857): free(0x6a709f0) stdsoap2.c(4857): free(0x6a714b0) stdsoap2.c(4857): free(0x6a4e3a0) stdsoap2.c(4857): free(0x6a4e360) stdsoap2.c(4857): free(0x6a59640) stdsoap2.c(4857): free(0x6a708f0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x6a59610) Free logfiles stdsoap2.c(2959): free(0x6a4dc40) stdsoap2.c(2959): free(0x6a798d0) stdsoap2.c(2959): free(0x6a78ba0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffb2a2c790 type=95: not found stdsoap2.c(4149): malloc(1288) = 0x6a81cb0 Pointer enter location=0x7fffb2a2c790 array=(nil) size=0 dim=0 type=95 id=1 Reference 0x7fffb2a2c790 type=95 (0 0) Lookup location=0x6a9d3c0 type=3: not found Pointer enter location=0x6a9d3c0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x6a9d3c0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x6a47800 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2c720 type=353: not found Embedded_id 0x7fffb2a2c720 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffb2a2c790 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a2c790 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x6a9d3c0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=631 New count is 631 bytes Begin send phase (socket=7 mode=0x1 count=631) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2c720 type=353: not found Embedded_id 0x7fffb2a2c720 type=353 id=0 Element begin tag='srm2:srmStatusOfGetRequest' id='0' type='' Lookup location=0x7fffb2a2c790 type=95 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a2c790 type=95 id=0 Element begin tag='srmStatusOfGetRequestRequest' id='0' type='' Lookup location=0x6a9d3c0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Element ending tag='srmStatusOfGetRequestRequest' Element ending tag='srm2:srmStatusOfGetRequest' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x6a47800) Free pointer hashtable stdsoap2.c(4079): free(0x6a81cb0) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x6a47800 Free ID hashtable Read 1167 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 1049 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x6a9bb40 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x6a9e720 stdsoap2.c(7219): malloc(64) = 0x6a9b8d0 stdsoap2.c(2336): malloc(40) = 0x6a99080 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x6a9bad0 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a9c500 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a9bf00 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a99120 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x6a98d20 stdsoap2.c(7172): malloc(62) = 0x6a98e70 stdsoap2.c(7219): malloc(64) = 0x6a98c50 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmStatusOfGetRequestResponse' 'srm2:srmStatusOfGetRequestResponse' Begin element found (level=3) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' Enter id='' type=348 loc=0x7fffb2a2c7b0 size=8 level=0 Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Reverting last element (level=3) Tags match: 'srmStatusOfGetRequestResponse' 'srmStatusOfGetRequestResponse' Begin element found (level=4) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' Enter id='' type=96 loc=(nil) size=24 level=0 stdsoap2.c(4726): malloc(40) = 0x6a98ca0 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a9b970 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6a9b970 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=36 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a9bbe0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x6a9c420 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x6a9c3e0 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=35 loc=(nil) size=56 level=0 stdsoap2.c(4726): malloc(72) = 0x6a9b1c0 Tags match: 'sourceSURL' 'sourceSURL' Begin element found (level=7) 'sourceSURL'='sourceSURL' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x6a7d9f0 stdsoap2.c(6963): free(0x6a9e720) stdsoap2.c(4726): malloc(96) = 0x6a7e360 Enter id='' type=6 loc=0x6a7e360 size=8 level=0 End element found (level=6) 'sourceSURL'='sourceSURL' Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Reverting last element (level=6) Tags match: 'fileSize' 'fileSize' Begin element found (level=7) 'fileSize'='fileSize' Enter id='' type=148 loc=(nil) size=8 level=0 stdsoap2.c(4726): malloc(24) = 0x6a9b480 Element content value='65536' End element found (level=6) 'fileSize'='fileSize' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a7e430 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6a7e430 size=4 level=0 Element content value='SRM_FILE_PINNED' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Reverting last element (level=6) Tags match: 'remainingPinTime' 'remainingPinTime' Begin element found (level=7) 'remainingPinTime'='remainingPinTime' Enter id='' type=1 loc=(nil) size=4 level=0 stdsoap2.c(4726): malloc(24) = 0x6a9ba30 Element content value='7199' End element found (level=6) 'remainingPinTime'='remainingPinTime' Tags match: 'transferURL' 'transferURL' Begin element found (level=7) 'transferURL'='transferURL' Reading string content stdsoap2.c(4726): malloc(96) = 0x6a83720 Enter id='' type=6 loc=0x6a83720 size=8 level=0 End element found (level=6) 'transferURL'='transferURL' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x6a9c3e0->(nil)) stdsoap2.c(4726): malloc(24) = 0x6a7dfe0 First block Copy 8 bytes from 0x6a9c3f0 to 0x6a7dfe0 Next block stdsoap2.c(2026): free(0x6a9c3e0) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x6a9c420) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmStatusOfGetRequestResponse'='srmStatusOfGetRequestResponse' End element found (level=2) 'ns1:srmStatusOfGetRequestResponse'='srm2:srmStatusOfGetRequestResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x6a99120) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x6a9bf00) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x6a9c500) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x6a9bad0) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x6a99080) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x6a98c50) stdsoap2.c(5406): free(0x6a98e70) stdsoap2.c(5405): free(0x6a9b8d0) stdsoap2.c(5406): free(0x6a9bb40) stdsoap2.c(5411): free(0x6a7d9f0) stdsoap2.c(5422): free(0x6a98d20) stdsoap2.c(5428): free(0x6a47800) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x6a7dfe0) stdsoap2.c(4857): free(0x6a83720) stdsoap2.c(4857): free(0x6a9ba30) stdsoap2.c(4857): free(0x6a7e430) stdsoap2.c(4857): free(0x6a9b480) stdsoap2.c(4857): free(0x6a7e360) stdsoap2.c(4857): free(0x6a9b1c0) stdsoap2.c(4857): free(0x6a9bbe0) stdsoap2.c(4857): free(0x6a9b970) stdsoap2.c(4857): free(0x6a98ca0) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x6a836f0) Free logfiles stdsoap2.c(2959): free(0x6a78ba0) stdsoap2.c(2959): free(0x6a9ea80) stdsoap2.c(2959): free(0x6a9d3f0) Registered 'CGSI_PLUGIN_CLIENT_1.0' plugin stdsoap2.c(4726): malloc(32) = 0x6a9b630 Initializing Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Lookup location=0x7fffb2a465e0 type=109: not found stdsoap2.c(4149): malloc(1288) = 0x6a98a20 Pointer enter location=0x7fffb2a465e0 array=(nil) size=0 dim=0 type=109 id=1 Reference 0x7fffb2a465e0 type=109 (0 0) Lookup location=0x6a9d3c0 type=3: not found Pointer enter location=0x6a9d3c0 array=(nil) size=0 dim=0 type=3 id=2 Reference 0x6a9d3c0 type=3 (0 0) Lookup location=0x6a9b630 type=27: not found Pointer enter location=0x6a9b630 array=(nil) size=0 dim=0 type=27 id=3 Reference 0x6a9b630 type=27 (0 0) Lookup location=0x6a799f0 type=3: not found Pointer enter location=0x6a799f0 array=(nil) size=0 dim=0 type=3 id=4 Reference 0x6a799f0 type=3 (0 0) stdsoap2.c(5956): malloc(192) = 0x6a9b6c0 Begin count phase (socket=-1 mode=0x8 count=0) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2d080 type=395: not found Embedded_id 0x7fffb2a2d080 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fffb2a465e0 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a465e0 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x6a9d3c0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x6a9b630 type=27 id=3 Is embedded? 0 0 Embedded_id 0x6a9b630 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x6a799f0 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End of count phase Connect/reconnect to host='grid-cert-03.roma1.infn.it' path='/srm/managerv2' port=8446 Opening socket 7 to host='grid-cert-03.roma1.infn.it' port=8446 Calculating the message size with attachments, current count=735 New count is 735 bytes Begin send phase (socket=7 mode=0x1 count=735) Element begin tag='SOAP-ENV:Envelope' id='0' type='' Element begin tag='SOAP-ENV:Body' id='0' type='' Lookup location=0x7fffb2a2d080 type=395: not found Embedded_id 0x7fffb2a2d080 type=395 id=0 Element begin tag='srm2:srmReleaseFiles' id='0' type='' Lookup location=0x7fffb2a465e0 type=109 id=1 Is embedded? 0 0 Embedded_id 0x7fffb2a465e0 type=109 id=0 Element begin tag='srmReleaseFilesRequest' id='0' type='' Lookup location=0x6a9d3c0 type=3 id=2 Is embedded? 0 0 Element begin tag='requestToken' id='0' type='' Element ending tag='requestToken' Lookup location=0x6a9b630 type=27 id=3 Is embedded? 0 0 Embedded_id 0x6a9b630 type=27 id=0 Element begin tag='arrayOfSURLs' id='0' type='' Lookup location=0x6a799f0 type=6: not found Element begin tag='urlArray' id='0' type='' Element ending tag='urlArray' Element ending tag='arrayOfSURLs' Element ending tag='srmReleaseFilesRequest' Element ending tag='srm2:srmReleaseFiles' Element ending tag='SOAP-ENV:Body' Element ending tag='SOAP-ENV:Envelope' End send Shutdown socket 7 how=1 End of send phase Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5428): free(0x6a9b6c0) Free pointer hashtable stdsoap2.c(4079): free(0x6a98a20) Free ID hashtable stdsoap2.c(5956): malloc(192) = 0x6a7ee60 Free ID hashtable Read 953 bytes from socket 7 Waiting for HTTP request/response... HTTP status: HTTP/1.1 200 OK HTTP header: Server: gSOAP/2.7 HTTP header: Content-Type: text/xml; charset=utf-8 HTTP header: Content-Length: 836 HTTP header: Connection: close Finished HTTP header parsing Keep alive connection = 0 stdsoap2.c(7172): malloc(45) = 0x6a7df50 Enlarging look-aside buffer to append data, old size=0, new size=64 stdsoap2.c(6955): malloc(64) = 0x6a7e130 stdsoap2.c(7219): malloc(64) = 0x6a7dd30 stdsoap2.c(2336): malloc(40) = 0x6a7b470 Push namespace binding (level=0) 'SOAP-ENV' 'http://schemas.xmlsoap.org/soap/envelope/' Push OK ('SOAP-ENV' matches 'SOAP-ENV' in namespace table) stdsoap2.c(2336): malloc(40) = 0x6a7e400 Push namespace binding (level=0) 'SOAP-ENC' 'http://schemas.xmlsoap.org/soap/encoding/' Push OK ('SOAP-ENC' matches 'SOAP-ENC' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6aa46c0 Push namespace binding (level=0) 'xsi' 'http://www.w3.org/2001/XMLSchema-instance' Push OK ('xsi' matches 'xsi' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a7b280 Push namespace binding (level=0) 'xsd' 'http://www.w3.org/2001/XMLSchema' Push OK ('xsd' matches 'xsd' in namespace table) stdsoap2.c(2336): malloc(35) = 0x6a7e1d0 Push namespace binding (level=0) 'ns1' 'http://srm.lbl.gov/StorageResourceManager' Push OK ('ns1' matches 'srm2' in namespace table) Tags and (default) namespaces match: 'SOAP-ENV:Envelope' 'SOAP-ENV:Envelope' Begin element found (level=1) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' stdsoap2.c(11824): malloc(42) = 0x6a91050 stdsoap2.c(7172): malloc(62) = 0x6a7b130 stdsoap2.c(7219): malloc(64) = 0x6a7f060 Tags and (default) namespaces match: 'SOAP-ENV:Body' 'SOAP-ENV:Body' Begin element found (level=2) 'SOAP-ENV:Body'='SOAP-ENV:Body' Tags and (default) namespaces match: 'ns1:srmReleaseFilesResponse' 'srm2:srmReleaseFilesResponse' Begin element found (level=3) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' Enter id='' type=390 loc=0x7fffb2a46600 size=8 level=0 Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Reverting last element (level=3) Tags match: 'srmReleaseFilesResponse' 'srmReleaseFilesResponse' Begin element found (level=4) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' Enter id='' type=110 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a7b040 Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Reverting last element (level=4) Tags match: 'returnStatus' 'returnStatus' Begin element found (level=5) 'returnStatus'='returnStatus' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a7b0a0 Tags match: 'statusCode' 'statusCode' Begin element found (level=6) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6a7b0a0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=5) 'statusCode'='statusCode' End element found (level=4) 'returnStatus'='returnStatus' Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Reverting last element (level=4) Tags match: 'arrayOfFileStatuses' 'arrayOfFileStatuses' Begin element found (level=5) 'arrayOfFileStatuses'='arrayOfFileStatuses' Enter id='' type=17 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a9b6f0 New block sequence (prev=(nil)) stdsoap2.c(1760): malloc(24) = 0x6a7dea0 Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Push block of 8 bytes (8 bytes total) stdsoap2.c(1778): malloc(24) = 0x6a7f160 Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Reverting last element (level=5) Tags match: 'statusArray' 'statusArray' Begin element found (level=6) 'statusArray'='statusArray' Enter id='' type=16 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a823b0 Tags match: 'surl' 'surl' Begin element found (level=7) 'surl'='surl' Reading string content Enlarging look-aside buffer to append data, old size=64, new size=128 stdsoap2.c(6955): malloc(128) = 0x6a918d0 stdsoap2.c(6963): free(0x6a7e130) stdsoap2.c(4726): malloc(96) = 0x6a82410 Enter id='' type=6 loc=0x6a82410 size=8 level=0 End element found (level=6) 'surl'='surl' Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Reverting last element (level=6) Tags match: 'status' 'status' Begin element found (level=7) 'status'='status' Enter id='' type=15 loc=(nil) size=16 level=0 stdsoap2.c(4726): malloc(32) = 0x6a824b0 Tags match: 'statusCode' 'statusCode' Begin element found (level=8) 'statusCode'='statusCode' Enter id='' type=142 loc=0x6a824b0 size=4 level=0 Element content value='SRM_SUCCESS' End element found (level=7) 'statusCode'='statusCode' End element found (level=6) 'status'='status' End element found (level=5) 'statusArray'='statusArray' Save all blocks in contiguous memory space of 8 bytes (0x6a7f160->(nil)) stdsoap2.c(4726): malloc(24) = 0x6a7de50 First block Copy 8 bytes from 0x6a7f170 to 0x6a7de50 Next block stdsoap2.c(2026): free(0x6a7f160) End of block sequence, free all remaining blocks stdsoap2.c(2060): free(0x6a7dea0) End element found (level=4) 'arrayOfFileStatuses'='arrayOfFileStatuses' End element found (level=3) 'srmReleaseFilesResponse'='srmReleaseFilesResponse' End element found (level=2) 'ns1:srmReleaseFilesResponse'='srm2:srmReleaseFilesResponse' End element found (level=1) 'SOAP-ENV:Body'='SOAP-ENV:Body' Popped namespace binding (level=0) 'ns1' stdsoap2.c(2368): free(0x6a7e1d0) Popped namespace binding (level=0) 'xsd' stdsoap2.c(2368): free(0x6a7b280) Popped namespace binding (level=0) 'xsi' stdsoap2.c(2368): free(0x6aa46c0) Popped namespace binding (level=0) 'SOAP-ENC' stdsoap2.c(2368): free(0x6a7e400) Popped namespace binding (level=0) 'SOAP-ENV' stdsoap2.c(2368): free(0x6a7b470) End element found (level=0) 'SOAP-ENV:Envelope'='SOAP-ENV:Envelope' End of receive message ok Resolving forwarded data Resolution phase Resolution done Shutdown socket 7 how=2 Close socket 7 Free namespace stack Free any remaining temp blocks Free attribute storage stdsoap2.c(5405): free(0x6a7f060) stdsoap2.c(5406): free(0x6a7b130) stdsoap2.c(5405): free(0x6a7dd30) stdsoap2.c(5406): free(0x6a7df50) stdsoap2.c(5411): free(0x6a918d0) stdsoap2.c(5422): free(0x6a91050) stdsoap2.c(5428): free(0x6a7ee60) Free pointer hashtable Free ID hashtable Free all soap_malloc() data stdsoap2.c(4857): free(0x6a7de50) stdsoap2.c(4857): free(0x6a824b0) stdsoap2.c(4857): free(0x6a82410) stdsoap2.c(4857): free(0x6a823b0) stdsoap2.c(4857): free(0x6a9b6f0) stdsoap2.c(4857): free(0x6a7b0a0) stdsoap2.c(4857): free(0x6a7b040) stdsoap2.c(4857): free(0x6a9b630) Free namespace stack Free any remaining temp blocks Free attribute storage Free pointer hashtable Free ID hashtable Removing plugin 'CGSI_PLUGIN_CLIENT_1.0' stdsoap2.c(2896): free(0x6a9b5d0) Free logfiles stdsoap2.c(2959): free(0x6a81d10) stdsoap2.c(2959): free(0x6a59610) stdsoap2.c(2959): free(0x6a792e0) gfal2-2.3.0/testing/example/0000755000175000017500000000000012164561703015164 5ustar ellertellertgfal2-2.3.0/testing/example/gfal_testcreatedir.c0000644000175000017500000000154412164561703021167 0ustar ellertellert/** * Compile command : gcc gfal_testcreatedir.c `pkg-config --libs --cflags gfal2` */ #include #include #include "gfal_api.h" main(int argc, char **argv) { char *rootdir; char olddir[1024], newdir[1024]; if (argc != 2) { fprintf (stderr, "usage: %s rootdir\n", argv[0]); exit (1); } rootdir = argv[1]; snprintf (olddir, 1024, "%s/olddir", rootdir); snprintf (newdir, 1024, "%s/newdir", rootdir); printf ("Creating directory 'olddir'...\n"); if (gfal_mkdir (olddir, 0700) < 0) { gfal_posix_check_error(); exit (1); } printf ("Renaming directory 'olddir' to 'newdir'...\n"); if (gfal_rename (olddir, newdir) < 0) { gfal_posix_check_error(); exit (1); } printf ("Removing directory 'newdir'...\n"); if (gfal_rmdir (newdir) < 0) { gfal_posix_check_error(); exit (1); } printf ("All is ok.\n"); exit (0); } gfal2-2.3.0/testing/example/gfalt_copyfile.c0000644000175000017500000000165712164561703020330 0ustar ellertellert/** * Compile command : gcc -o gfalt_copyfile gfalt_copyfile.c `pkg-config --libs --cflags gfal_transfer` */ #include #include #include int main(int argc, char** argv){ if( argc <3 ){ printf(" Usage %s [src_url] [dst_url] \n",argv[0]); return 1; } GError * tmp_err = NULL; // classical GError/glib error management gfal2_context_t handle; int ret=-1; // initialize gfal gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE); if( (handle = gfal2_context_new(&tmp_err)) == NULL ) { printf(" bad initialization %d : %s.\n", tmp_err->code,tmp_err->message); return -1; } // begin copy if( (ret = gfalt_copy_file(handle, NULL, argv[1], argv[2], &tmp_err) ) != 0){ printf(" error while the file transfer %d : %s.\n", tmp_err->code,tmp_err->message); return -1; }else printf(" transfer sucessfull ! \n"); gfal2_context_free(handle); return ret; } gfal2-2.3.0/testing/example/gfal_testrw.c0000644000175000017500000000321612164561703017653 0ustar ellertellert /** * Compile command : gcc gfal_testrw.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #define BLKLEN 65536 main(int argc, char **argv) { int fd; int i; char ibuf[BLKLEN]; char obuf[BLKLEN]; int rc; // gfal_set_verbose(GFAL_VERBOSE_TRACE | GFAL_VERBOSE_VERBOSE); // switch Gfal in verbose mode if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } for (i = 0; i < BLKLEN; i++) obuf[i] = i; printf ("creating file %s\n", argv[1]); if ((fd = gfal_open (argv[1], O_WRONLY|O_CREAT, 0644)) < 0) { gfal_posix_check_error(); exit (1); } printf ("open successful, fd = %d\n", fd); if ((rc = gfal_write (fd, obuf, BLKLEN)) != BLKLEN) { gfal_posix_check_error(); (void) gfal_close (fd); exit (1); } printf ("write successful\n"); if ((rc = gfal_close (fd)) < 0) { gfal_posix_check_error(); exit (1); } printf ("close successful\n"); printf ("reading back %s\n", argv[1]); if ((fd = gfal_open (argv[1], O_RDONLY, 0)) < 0) { gfal_posix_check_error(); exit (1); } printf ("open successful, fd = %d\n", fd); if ((rc = gfal_read (fd, ibuf, BLKLEN)) != BLKLEN) { gfal_posix_check_error(); (void) gfal_close (fd); exit (1); } printf ("read successful\n"); if ((rc = gfal_close (fd)) < 0) { gfal_posix_check_error(); exit (1); } printf ("close successful\n"); for (i = 0; i < BLKLEN; i++) { if (ibuf[i] != obuf[i]) { fprintf (stderr, "compare failed at offset %d\n", i); exit (1); } } printf ("compare successful\n"); exit (0); } gfal2-2.3.0/testing/example/gfal_testread.c0000644000175000017500000000151512164561703020136 0ustar ellertellert/** * Compile command : gcc gfal_testread.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include #define BLKLEN 65536 main(int argc, char **argv) { int fd; char ibuf[BLKLEN]; int rc; if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } printf ("opening %s\n", argv[1]); if ((fd = gfal_open (argv[1], O_RDONLY, 0)) < 0) { gfal_posix_check_error(); exit (1); } printf ("open successful, fd = %d (errno = %d)\n", fd, errno); if ((rc = gfal_read (fd, ibuf, BLKLEN)) < 0) { gfal_posix_check_error(); (void) gfal_close (fd); exit (1); } printf ("read successful (errno = %d)\n", errno); if ((gfal_close (fd)) < 0) { gfal_posix_check_error(); exit (1); } printf ("close successful\n"); exit (0); } gfal2-2.3.0/testing/example/gfal_testdir.c0000644000175000017500000000103712164561703020000 0ustar ellertellert/** * Compile command : gcc gfal_testdir.c `pkg-config --libs --cflags gfal2` */ #include #include #include "gfal_api.h" main(int argc, char **argv) { struct dirent *d; DIR *dir; if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } if ((dir = gfal_opendir (argv[1])) == NULL) { perror ("gfal_opendir"); exit (1); } while ((d = gfal_readdir (dir))) { printf ("%s\n", d->d_name); } if (gfal_closedir (dir) < 0) { perror ("gfal_closedir"); exit (1); } exit (0); } gfal2-2.3.0/testing/example/gfal_testchmod.c0000644000175000017500000000142212164561703020312 0ustar ellertellert/** * Compile command : gcc gfal_testchmod.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include "gfal_api.h" main(int argc, char **argv) { int mode, error = 0; char *file; if (argc != 3) { fprintf (stderr, "usage: %s file mode\n", argv[0]); exit (1); } file = argv[1]; mode = strtol (argv[2], NULL, 8); if (errno > 0) { perror ("strtol"); exit (1); } printf ("Checking RW access to '%s'...\n",file); if (gfal_access (file, R_OK|W_OK) < 0) { error = 1; gfal_posix_check_error(); } printf ("Changing mode of '%s' to %o...\n", file, mode); if (gfal_chmod (file, mode) < 0) { error = 1; gfal_posix_check_error(); } if (error) exit (1); printf ("All is ok.\n"); exit (0); } gfal2-2.3.0/testing/example/gfal_testget.c0000644000175000017500000000507212164561703020004 0ustar ellertellert/** * Compile command : gcc gfal_testget.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include #include #include #include #define DEFPOLLINT 10 #define TURL_MAX_SIZE 1024 #ifndef _GFAL_1_X #include // GFAL 2.0 use the extended attribute system for the advanced files properties. int main(int argc,char **argv) { char turl_buff[TURL_MAX_SIZE]; if (argc < 2){ fprintf (stderr, "usage: %s SURLs\n", argv[0]); exit (1); } gfal_set_verbose (GFAL_VERBOSE_VERBOSE); ssize_t res = gfal_getxattr(argv[1], "user.replicas", turl_buff, TURL_MAX_SIZE ); if (res > 0) printf("URL %s Ready - REPLICA: %s\n", argv[1], turl_buff); else { printf("URL %s Failed:\n", argv[1]); gfal_posix_check_error(); } return((res>0)?0:-1); } #endif /* This is the OLD WAY GFAL 1.0 to do IT, DONT USE IT WITH GFAL2.0, IT IS FOR A EXAMPLE OF MIGRATION 1.X to 2.0 #ifdef _GFAL_1_X #define gfal_handle_free(x) gfal_internal_free(x) #include main(argc, argv) int argc; char **argv; { gfal_request req = NULL; gfal_internal gobj = NULL; gfal_filestatus *filestatuses = NULL; int sav_errno = 0, n = 0, i = 0, nberrors = 0; static char *protos[] = {"rfio", "dcap", "gsiftp"}; if (argc < 2) { fprintf (stderr, "usage: %s SURLs\n", argv[0]); exit (1); } gfal_set_verbose (0); if ((req = gfal_request_new ()) == NULL) exit (1); req->nbfiles = argc - 1; req->surls = argv + 1; req->protocols = protos; if (gfal_init (req, &gobj, NULL, 0) < 0) { sav_errno = errno; free (req); errno = sav_errno; perror (argv[0]); exit (1); } free (req); if (gfal_turlsfromsurls (gobj, NULL, 0) < 0) { sav_errno = errno; gfal_internal_free (gobj); errno = sav_errno; perror (argv[0]); exit (1); } if ((n = gfal_get_results (gobj, &filestatuses)) < 0) { sav_errno = errno; gfal_internal_free (gobj); errno = sav_errno; perror (argv[0]); exit (1); } if (filestatuses == NULL) { fprintf (stderr, "%s: Internal error (memory corruption?)\n", argv[0]); exit (1); } for (i = 0; i < n; ++i) { if (filestatuses[i].status == 0) printf("SURL %s Ready - TURL: %s\n", filestatuses[i].surl, filestatuses[i].turl); else { ++nberrors; if (filestatuses[i].explanation) printf("SURL %s Failed:\n%s\n", filestatuses[i].surl, filestatuses[i].explanation); else printf("SURL %s Failed:\n%s\n", filestatuses[i].surl, strerror (filestatuses[i].status)); } } gfal_internal_free (gobj); exit (nberrors > 0 ? 1 : 0); } #endif */ gfal2-2.3.0/testing/example/gfal_teststat.c0000644000175000017500000000121012164561703020166 0ustar ellertellert/** * Compile command : gcc gfal_teststat.c `pkg-config --libs --cflags gfal2` */ #include #include #include #include int main(int argc, char **argv) { struct stat statbuf; if (argc != 2) { fprintf (stderr, "usage: %s filename\n", argv[0]); exit (1); } if (gfal_stat (argv[1], &statbuf) < 0) { gfal_posix_check_error(); exit (1); } printf ("stat successful\n"); printf ("mode = %o\n", statbuf.st_mode); printf ("nlink = %ld\n", statbuf.st_nlink); printf ("uid = %d\n", statbuf.st_uid); printf ("gid = %d\n", statbuf.st_gid); printf ("size = %ld\n", statbuf.st_size); return 0; } gfal2-2.3.0/testing/RECV.log0000644000175000017500000004714612164561703015007 0ustar ellertellertHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 914 Connection: close SRM_REQUEST_QUEUED0775634b-2291-4dbe-ac94-5f0d4ff005e2srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1091 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1SRM_SPACE_AVAILABLE071990rfio://atlas-storage-13.roma1.infn.it//data3/dteam/2011-03-23/test1.34305927.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 815 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 926 Connection: close SRM_REQUEST_QUEUED15b958bd-ffb2-45a9-a001-27a3648ad7e3srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1047 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test165536SRM_FILE_PINNED7199rfio://atlas-storage-13.roma1.infn.it//data3/dteam/2011-03-23/test1.34305927.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 835 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 914 Connection: close SRM_REQUEST_QUEUED804ffc99-b590-410e-993a-05511f1bb202srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1032 Connection: close SRM_FAILUREFailed for all SURLssrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1SRM_DUPLICATION_ERROR000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 914 Connection: close SRM_REQUEST_QUEUEDc997f747-ae8f-4903-beda-c69c972b4612srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1032 Connection: close SRM_FAILUREFailed for all SURLssrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1SRM_DUPLICATION_ERROR000HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 642 Connection: close SRM_DUPLICATION_ERRORFile existsHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 915 Connection: close SRM_REQUEST_QUEUEDe63b7bc6-7427-41d4-893c-f16ec3299ef9srm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test10SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1093 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test10SRM_SPACE_AVAILABLE072000rfio://atlas-storage-15.roma1.infn.it//data4/dteam/2011-03-23/test10.34306015.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 816 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test10SRM_SUCCESSHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 927 Connection: close SRM_REQUEST_QUEUED4a5f612d-efe5-4411-8b2a-12f329c2c85asrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test10SRM_REQUEST_QUEUEDHTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 1049 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test1065536SRM_FILE_PINNED7199rfio://atlas-storage-15.roma1.infn.it//data4/dteam/2011-03-23/test10.34306015.0HTTP/1.1 200 OK Server: gSOAP/2.7 Content-Type: text/xml; charset=utf-8 Content-Length: 836 Connection: close SRM_SUCCESSsrm://grid-cert-03.roma1.infn.it/dpm/roma1.infn.it/home/dteam/generated/test10SRM_SUCCESS