msi: Directly download mi->source now that SourceDir points to the URL.
This commit is contained in:
parent
186487663a
commit
b012c3366c
|
@ -500,42 +500,6 @@ static void free_media_info( struct media_info *mi )
|
|||
msi_free( mi );
|
||||
}
|
||||
|
||||
static UINT download_remote_cabinet(MSIPACKAGE *package, struct media_info *mi)
|
||||
{
|
||||
WCHAR temppath[MAX_PATH];
|
||||
LPWSTR src, ptr;
|
||||
LPCWSTR cab;
|
||||
|
||||
src = strdupW(package->BaseURL);
|
||||
if (!src)
|
||||
return ERROR_OUTOFMEMORY;
|
||||
|
||||
ptr = strrchrW(src, '/');
|
||||
if (!ptr)
|
||||
{
|
||||
msi_free(src);
|
||||
return ERROR_FUNCTION_FAILED;
|
||||
}
|
||||
|
||||
*(ptr + 1) = '\0';
|
||||
ptr = strrchrW(mi->source, '\\');
|
||||
if (!ptr)
|
||||
ptr = mi->source;
|
||||
|
||||
src = msi_realloc(src, (lstrlenW(src) + lstrlenW(ptr)) * sizeof(WCHAR));
|
||||
if (!src)
|
||||
return ERROR_OUTOFMEMORY;
|
||||
|
||||
lstrcatW(src, ptr + 1);
|
||||
|
||||
temppath[0] = '\0';
|
||||
cab = msi_download_file(src, temppath);
|
||||
lstrcpyW(mi->source, cab);
|
||||
|
||||
msi_free(src);
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
static UINT load_media_info(MSIPACKAGE *package, MSIFILE *file, struct media_info *mi)
|
||||
{
|
||||
MSIRECORD *row;
|
||||
|
@ -625,7 +589,11 @@ static UINT ready_media(MSIPACKAGE *package, MSIFILE *file, struct media_info *m
|
|||
GetFileAttributesW(mi->source) == INVALID_FILE_ATTRIBUTES &&
|
||||
package->BaseURL && UrlIsW(package->BaseURL, URLIS_URL))
|
||||
{
|
||||
return download_remote_cabinet(package, mi);
|
||||
WCHAR temppath[MAX_PATH];
|
||||
|
||||
msi_download_file(mi->source, temppath);
|
||||
lstrcpyW(mi->source, temppath);
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
/* check volume matches, change media if not */
|
||||
|
|
Loading…
Reference in New Issue