acquire_cabinet=acquire_cabinet_new_from_handle(handlep,file_info,uri,cabinet_used);
/* acquire_cabinet_load() will call mod_uri_load_module_from_memory(): */
acquire_cabinet_load(acquire_cabinet);
+ if (optarg_verbose) {
+gchar *uri_text;
+
+ uri_text=gnome_vfs_uri_to_string(uri,GNOME_VFS_URI_HIDE_PASSWORD);
+ g_message("cabinet_used: %s - %d",uri_text,acquire_cabinet->cabinet_done);
+ g_free(uri_text);
+ }
acquire_cabinet_free(acquire_cabinet);
}
g_return_if_fail(uri!=NULL);
- if (GNOME_VFS_OK!=(errvfsresult=gnome_vfs_open_uri(&handle,uri,GNOME_VFS_OPEN_READ)))
+ if (GNOME_VFS_OK!=(errvfsresult=gnome_vfs_open_uri(&handle,uri,GNOME_VFS_OPEN_READ|GNOME_VFS_OPEN_RANDOM)))
goto fail;
CAPTIVE_MEMZERO(&file_info_local);
if (GNOME_VFS_OK!=(errvfsresult=gnome_vfs_get_file_info_from_handle(handle,&file_info_local,GNOME_VFS_FILE_INFO_DEFAULT)))
goto fail_close_handle;
- if (file_info_local.type!=GNOME_VFS_FILE_TYPE_REGULAR) {
+ if (1
+ && file_info_local.type!=GNOME_VFS_FILE_TYPE_REGULAR
+ /* FC4 gnome-vfs2-2.10.0-5 "http" returns GNOME_VFS_FILE_TYPE_UNKNOWN
+ * on the original info query so we need to try directory first.
+ */
+ && file_info_local.type!=GNOME_VFS_FILE_TYPE_UNKNOWN) {
errvfsresult=GNOME_VFS_ERROR_WRONG_FORMAT;
goto fail_file_info_local_clear;
}
GNOME_VFS_DIRECTORY_VISIT_SAMEFS, /* visit_options; 'GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK'? */
(GnomeVFSDirectoryVisitFunc)mod_uri_load_directory_visit_func,
uri); /* data */
+ /* FC4 gnome-vfs2-2.10.0-5 "http" returns GNOME_VFS_FILE_TYPE_UNKNOWN
+ * on the original info query so we need to try directory first.
+ */
+ if (errvfsresult==GNOME_VFS_ERROR_NOT_A_DIRECTORY) {
+ mod_uri_load_file(uri);
+ return;
+ }
if (errvfsresult!=GNOME_VFS_OK) {
gchar *uri_text;
return;
}
switch (file_info_local.type) {
- case GNOME_VFS_FILE_TYPE_REGULAR: mod_uri_load_file(uri);
- case GNOME_VFS_FILE_TYPE_DIRECTORY: mod_uri_load_directory(uri);
+ case GNOME_VFS_FILE_TYPE_REGULAR: mod_uri_load_file(uri); break;
+ case GNOME_VFS_FILE_TYPE_DIRECTORY: mod_uri_load_directory(uri); break;
+ /* FC4 gnome-vfs2-2.10.0-5 "http" returns GNOME_VFS_FILE_TYPE_UNKNOWN
+ * on the original info query so we need to try directory first.
+ */
+ case GNOME_VFS_FILE_TYPE_UNKNOWN: mod_uri_load_directory(uri); break;
default: /* GNOME_VFS_ERROR_WRONG_FORMAT */;
}
gnome_vfs_file_info_clear(&file_info_local);