int main(int argc, char * argv[]) { globus_ftp_client_handle_t handle; globus_ftp_client_operationattr_t attr; globus_result_t result; globus_ftp_client_handleattr_t handle_attr; char * src; char * dst; globus_module_activate(GLOBUS_FTP_CLIENT_MODULE); globus_ftp_client_handleattr_init(&handle_attr); globus_ftp_client_operationattr_init(&attr); globus_mutex_init(&lock, GLOBUS_NULL); globus_cond_init(&cond, GLOBUS_NULL); test_parse_args(argc, argv, &handle_attr, &attr, &src, &dst); globus_ftp_client_operationattr_set_type(&attr, GLOBUS_FTP_CONTROL_TYPE_ASCII); globus_ftp_client_handle_init(&handle, &handle_attr); done = GLOBUS_FALSE; result = globus_ftp_client_rmdir(&handle, src, &attr, done_cb, 0); if(result != GLOBUS_SUCCESS) { done = GLOBUS_TRUE; } globus_mutex_lock(&lock); while(!done) { globus_cond_wait(&cond, &lock); } globus_mutex_unlock(&lock); globus_ftp_client_handle_destroy(&handle); globus_module_deactivate_all(); if(test_abort_count && error) { return 0; } return error; }
void gw_tm_ftp_transfer_rmdir_cb( void * user_arg, globus_ftp_client_handle_t * handle, globus_object_t * err) { gw_tm_ftp_transfer_t * xfr; gw_tm_ftp_stack_t * file; globus_result_t grc; int xfr_id; xfr_id = *( (int *) user_arg ); if ( ( xfr_id < GW_TM_FTP_XFR_POOL_MAX ) && (xfr_id >= 0 ) ) if ( gw_tm_ftp_xfr_pool[xfr_id] != NULL ) xfr = gw_tm_ftp_xfr_pool[xfr_id]; else { /*printf("RMDIR %d - FAILURE transfer does not exisit.\n", xfr_id);*/ free(user_arg); return; } else { /*printf("RMDIR %d - FAILURE invalid transfer id in callback.\n", xfr_id);*/ free(user_arg); return; } if(err != GLOBUS_SUCCESS) /* ERROR RMDIR OR EXPAND */ { printf("RMDIR %d - FAILURE ftp_client_delete/rmdir command.\n",xfr->jid); free(user_arg); return; } file = gw_tm_ftp_stack_pop(&(xfr->file_stack)); if( file != NULL ) { if ( (file->type == GW_TM_FTP_DIR) && (file->expanded == GW_FALSE) ) { gw_tm_ftp_transfer_flush (xfr); gw_tm_ftp_transfer_expand_url (xfr_id, file->file_name, gw_tm_ftp_transfer_rmdir_cb); free(file->file_name); free(file); free(user_arg); return; } else { if ( file->type == GW_TM_FTP_FILE ) grc = globus_ftp_client_delete (&(xfr->handle), file->file_name, &(xfr->op_attr), gw_tm_ftp_transfer_rmdir_cb, user_arg); else grc = globus_ftp_client_rmdir ( &(xfr->handle), file->file_name, &(xfr->op_attr), gw_tm_ftp_transfer_rmdir_cb, user_arg); if ( grc != GLOBUS_SUCCESS ) { printf("RMDIR %d - FAILURE ftp_client_delete/rmdir command\n", xfr->jid); free(user_arg); } free(file->file_name); free(file); return; } } printf("RMDIR %d - SUCCESS -\n", xfr->jid); free(user_arg); }