[oops] revert write retry as it breaks Syslinux

* This reverts 0206e2036e
* Closes #240
This commit is contained in:
Pete Batard 2013-12-05 11:43:49 +00:00
parent 858f141d56
commit c93798b877
2 changed files with 14 additions and 28 deletions

View file

@ -47,7 +47,6 @@
// the progress bar for every block will bring extraction to a crawl // the progress bar for every block will bring extraction to a crawl
#define PROGRESS_THRESHOLD 128 #define PROGRESS_THRESHOLD 128
#define FOUR_GIGABYTES 4294967296LL #define FOUR_GIGABYTES 4294967296LL
#define WRITE_RETRIES 3
// Needed for UDF ISO access // Needed for UDF ISO access
CdIo_t* cdio_open (const char* psz_source, driver_id_t driver_id) {return NULL;} CdIo_t* cdio_open (const char* psz_source, driver_id_t driver_id) {return NULL;}
@ -281,21 +280,15 @@ static int udf_extract_files(udf_t *p_udf, udf_dirent_t *p_udf_dirent, const cha
memset(buf, 0, UDF_BLOCKSIZE); memset(buf, 0, UDF_BLOCKSIZE);
i_read = udf_read_block(p_udf_dirent, buf, 1); i_read = udf_read_block(p_udf_dirent, buf, 1);
if (i_read < 0) { if (i_read < 0) {
uprintf(" Error reading UDF file %s", &psz_fullpath[strlen(psz_extract_dir)]); uprintf(" Error reading UDF file %s\n", &psz_fullpath[strlen(psz_extract_dir)]);
goto out; goto out;
} }
buf_size = (DWORD)MIN(i_file_length, i_read); buf_size = (DWORD)MIN(i_file_length, i_read);
for (i=0; i<WRITE_RETRIES; i++) { ISO_BLOCKING(r = WriteFile(file_handle, buf, buf_size, &wr_size, NULL));
ISO_BLOCKING(r = WriteFile(file_handle, buf, buf_size, &wr_size, NULL)); if ((!r) || (buf_size != wr_size)) {
if ((!r) || (buf_size != wr_size)) { uprintf(" Error writing file: %s\n", WindowsErrorString());
uprintf(" Error writing file: %s", WindowsErrorString()); goto out;
if (i < WRITE_RETRIES-1)
uprintf(" RETRYING...\n");
} else {
break;
}
} }
if (i >= WRITE_RETRIES) goto out;
i_file_length -= i_read; i_file_length -= i_read;
if (nb_blocks++ % PROGRESS_THRESHOLD == 0) { if (nb_blocks++ % PROGRESS_THRESHOLD == 0) {
SendMessage(hISOProgressBar, PBM_SETPOS, (WPARAM)((MAX_PROGRESS*nb_blocks)/total_blocks), 0); SendMessage(hISOProgressBar, PBM_SETPOS, (WPARAM)((MAX_PROGRESS*nb_blocks)/total_blocks), 0);
@ -426,18 +419,11 @@ static int iso_extract_files(iso9660_t* p_iso, const char *psz_path)
goto out; goto out;
} }
buf_size = (DWORD)MIN(i_file_length, ISO_BLOCKSIZE); buf_size = (DWORD)MIN(i_file_length, ISO_BLOCKSIZE);
ISO_BLOCKING(s = WriteFile(file_handle, buf, buf_size, &wr_size, NULL));
for (i=0; i<WRITE_RETRIES; i++) { if ((!s) || (buf_size != wr_size)) {
ISO_BLOCKING(s = WriteFile(file_handle, buf, buf_size, &wr_size, NULL)); uprintf(" Error writing file: %s\n", WindowsErrorString());
if ((!s) || (buf_size != wr_size)) { goto out;
uprintf(" Error writing file: %s", WindowsErrorString());
if (i < WRITE_RETRIES-1)
uprintf(" RETRYING...\n");
} else {
break;
}
} }
if (i >= WRITE_RETRIES) goto out;
i_file_length -= ISO_BLOCKSIZE; i_file_length -= ISO_BLOCKSIZE;
if (nb_blocks++ % PROGRESS_THRESHOLD == 0) { if (nb_blocks++ % PROGRESS_THRESHOLD == 0) {
SendMessage(hISOProgressBar, PBM_SETPOS, (WPARAM)((MAX_PROGRESS*nb_blocks)/total_blocks), 0); SendMessage(hISOProgressBar, PBM_SETPOS, (WPARAM)((MAX_PROGRESS*nb_blocks)/total_blocks), 0);

View file

@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG DIALOGEX 12, 12, 206, 329 IDD_DIALOG DIALOGEX 12, 12, 206, 329
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW EXSTYLE WS_EX_APPWINDOW
CAPTION "Rufus v1.4.0.345" CAPTION "Rufus v1.4.0.346"
FONT 8, "MS Shell Dlg", 400, 0, 0x1 FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN BEGIN
DEFPUSHBUTTON "Start",IDC_START,94,291,50,14 DEFPUSHBUTTON "Start",IDC_START,94,291,50,14
@ -288,8 +288,8 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,4,0,345 FILEVERSION 1,4,0,346
PRODUCTVERSION 1,4,0,345 PRODUCTVERSION 1,4,0,346
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -306,13 +306,13 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
VALUE "FileDescription", "Rufus" VALUE "FileDescription", "Rufus"
VALUE "FileVersion", "1.4.0.345" VALUE "FileVersion", "1.4.0.346"
VALUE "InternalName", "Rufus" VALUE "InternalName", "Rufus"
VALUE "LegalCopyright", "© 2011-2013 Pete Batard (GPL v3)" VALUE "LegalCopyright", "© 2011-2013 Pete Batard (GPL v3)"
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
VALUE "OriginalFilename", "rufus.exe" VALUE "OriginalFilename", "rufus.exe"
VALUE "ProductName", "Rufus" VALUE "ProductName", "Rufus"
VALUE "ProductVersion", "1.4.0.345" VALUE "ProductVersion", "1.4.0.346"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"