int local_init (gftp_request * request) { local_protocol_data *lpd; g_return_val_if_fail (request != NULL, GFTP_EFATAL); request->protonum = GFTP_LOCAL_NUM; request->init = local_init; request->copy_param_options = NULL; request->destroy = local_destroy; request->read_function = gftp_fd_read; request->write_function = gftp_fd_write; request->connect = local_connect; request->post_connect = NULL; request->disconnect = local_disconnect; request->get_file = local_get_file; request->put_file = local_put_file; request->transfer_file = NULL; request->get_next_file_chunk = NULL; request->put_next_file_chunk = NULL; request->end_transfer = local_end_transfer; request->abort_transfer = local_end_transfer; /* NOTE: uses end_transfer */ request->stat_filename = local_stat_filename; request->list_files = local_list_files; request->get_next_file = local_get_next_file; request->get_next_dirlist_line = NULL; request->get_file_size = local_get_file_size; request->chdir = local_chdir; request->rmdir = local_rmdir; request->rmfile = local_rmfile; request->mkdir = local_mkdir; request->rename = local_rename; request->chmod = local_chmod; request->set_file_time = local_set_file_time; request->site = NULL; request->parse_url = NULL; request->set_config_options = NULL; request->swap_socks = NULL; request->url_prefix = "file"; request->need_hostport = 0; request->need_username = 0; request->need_password = 0; request->use_cache = 0; request->always_connected = 1; request->use_local_encoding = 1; lpd = g_malloc0 (sizeof (*lpd)); request->protocol_data = lpd; lpd->userhash = g_hash_table_new (uint_hash_function, uint_hash_compare); lpd->grouphash = g_hash_table_new (uint_hash_function, uint_hash_compare); if (request->hostname != NULL) g_free (request->hostname); request->hostname = g_strdup (_("local filesystem")); return (gftp_set_config_options (request)); }
int fsp_init (gftp_request * request) { fsp_protocol_data *lpd; g_return_val_if_fail (request != NULL, GFTP_EFATAL); request->protonum = GFTP_FSP_NUM; request->init = fsp_init; request->copy_param_options = NULL; request->destroy = fsp_destroy; request->read_function = fsp_read_function; request->write_function = fsp_write_function; request->connect = fsp_connect; request->post_connect = NULL; request->disconnect = fsp_disconnect; request->get_file = fsp_get_file; request->put_file = fsp_put_file; request->transfer_file = NULL; request->get_next_file_chunk = NULL; request->put_next_file_chunk = NULL; request->end_transfer = fsp_end_transfer; request->abort_transfer = fsp_abort_transfer; request->stat_filename = fsp_stat_filename; request->list_files = fsp_list_files; request->get_next_file = fsp_get_next_file; request->get_next_dirlist_line = NULL; request->get_file_size = fsp_get_file_size; request->chdir = fsp_chdir; request->rmdir = fsp_removedir; request->rmfile = fsp_rmfile; request->mkdir = fsp_makedir; request->rename = fsp_ren; request->chmod = NULL; request->set_file_time = NULL; request->site = NULL; request->parse_url = NULL; request->set_config_options = NULL; request->swap_socks = NULL; request->url_prefix = "fsp"; request->need_hostport = 1; request->need_username = 0; request->need_password = 0; request->use_cache = 1; request->always_connected = 0; request->use_local_encoding = 0; lpd = g_malloc0 (sizeof (*lpd)); request->protocol_data = lpd; return (gftp_set_config_options (request)); }
int gftp_connect (gftp_request * request) { int ret; g_return_val_if_fail (request != NULL, GFTP_EFATAL); if (request->connect == NULL) return (GFTP_EFATAL); if ((ret = gftp_set_config_options (request)) < 0) return (ret); return (request->connect (request)); }