@@ -1176,7 +1176,7 @@ private static async Task PerformUpdateAsync()
1176
1176
{
1177
1177
currentFilename = info . Archived ? info . Filename + ARCHIVE_FILE_EXTENSION : info . Filename ;
1178
1178
currentFileSize = info . Archived ? info . ArchiveSize : info . Size ;
1179
- bool flag = await DownloadFileAsync ( info ) . ConfigureAwait ( false ) ;
1179
+ string errorMessage = await DownloadFileAsync ( info ) . ConfigureAwait ( false ) ;
1180
1180
1181
1181
if ( terminateUpdate )
1182
1182
{
@@ -1187,7 +1187,7 @@ private static async Task PerformUpdateAsync()
1187
1187
return ;
1188
1188
}
1189
1189
1190
- if ( flag )
1190
+ if ( errorMessage == null )
1191
1191
{
1192
1192
totalDownloadedKbs += info . Archived ? info . ArchiveSize : info . Size ;
1193
1193
break ;
@@ -1200,8 +1200,13 @@ private static async Task PerformUpdateAsync()
1200
1200
Logger . Log ( "Updater: Too many retries for downloading file " +
1201
1201
( info . Archived ? info . Filename + ARCHIVE_FILE_EXTENSION : info . Filename ) + ". Update halted." ) ;
1202
1202
1203
+ string extraMsg = string . Empty ;
1204
+
1205
+ if ( errorMessage != null )
1206
+ extraMsg = Environment . NewLine + Environment . NewLine + "Download error message: " + errorMessage ;
1207
+
1203
1208
throw new ( "Too many retries for downloading file " +
1204
- ( info . Archived ? info . Filename + ARCHIVE_FILE_EXTENSION : info . Filename ) ) ;
1209
+ ( info . Archived ? info . Filename + ARCHIVE_FILE_EXTENSION : info . Filename ) + extraMsg ) ;
1205
1210
}
1206
1211
}
1207
1212
}
@@ -1324,8 +1329,8 @@ private static async Task PerformUpdateAsync()
1324
1329
/// Downloads and handles individual file.
1325
1330
/// </summary>
1326
1331
/// <param name="fileInfo">File info for the file.</param>
1327
- /// <returns>True if successful , otherwise false .</returns>
1328
- private static async ValueTask < bool > DownloadFileAsync ( UpdaterFileInfo fileInfo )
1332
+ /// <returns>Error message if something went wrong , otherwise null .</returns>
1333
+ private static async ValueTask < string > DownloadFileAsync ( UpdaterFileInfo fileInfo )
1329
1334
{
1330
1335
Logger . Log ( "Updater: Initializing download of file " + fileInfo . Filename ) ;
1331
1336
@@ -1388,20 +1393,21 @@ private static async ValueTask<bool> DownloadFileAsync(UpdaterFileInfo fileInfo)
1388
1393
}
1389
1394
else
1390
1395
{
1391
- Logger . Log ( "Updater: Downloaded archive " + filename + extraExtension + " has a non-matching identifier: " + archiveIdentifier + " against " + fileInfo . ArchiveIdentifier ) ;
1396
+ string errorMsg = "Downloaded archive " + filename + extraExtension + " has a non-matching identifier: " + archiveIdentifier + " against " + fileInfo . ArchiveIdentifier ;
1397
+ Logger . Log ( "Updater: " + errorMsg ) ;
1392
1398
DeleteFileAndWait ( downloadFile . FullName ) ;
1393
1399
1394
- return false ;
1400
+ return errorMsg ;
1395
1401
}
1396
1402
}
1397
1403
1398
1404
if ( ! RuntimeInformation . IsOSPlatform ( OSPlatform . Windows ) && downloadFile . Extension . Equals ( ".sh" , StringComparison . OrdinalIgnoreCase ) )
1399
1405
{
1400
- Logger . Log ( $ "Updater: File { downloadFile . Name } is a script, adding execute permission." ) ;
1406
+ Logger . Log ( $ "Updater: File { downloadFile . Name } is a script, adding execute permission. Current permission flags: " + downloadFile . UnixFileMode ) ;
1401
1407
1402
1408
downloadFile . UnixFileMode |= UnixFileMode . UserExecute ;
1403
1409
1404
- Logger . Log ( $ "Updater: File { downloadFile . Name } execute permission added." ) ;
1410
+ Logger . Log ( $ "Updater: File { downloadFile . Name } execute permission added. Current permission flags: " + downloadFile . UnixFileMode ) ;
1405
1411
}
1406
1412
}
1407
1413
@@ -1410,20 +1416,21 @@ private static async ValueTask<bool> DownloadFileAsync(UpdaterFileInfo fileInfo)
1410
1416
{
1411
1417
Logger . Log ( "Updater: File " + filename + " is intact." ) ;
1412
1418
1413
- return true ;
1419
+ return null ;
1414
1420
}
1415
1421
1416
- Logger . Log ( "Updater: Downloaded file " + filename + " has a non-matching identifier: " + fileIdentifier + " against " + fileInfo . Identifier ) ;
1422
+ string msg = "Downloaded file " + filename + " has a non-matching identifier: " + fileIdentifier + " against " + fileInfo . Identifier ;
1423
+ Logger . Log ( "Updater: " + msg ) ;
1417
1424
DeleteFileAndWait ( decompressedFile . FullName ) ;
1418
1425
1419
- return false ;
1426
+ return msg ;
1420
1427
}
1421
1428
catch ( Exception exception )
1422
1429
{
1423
1430
Logger . Log ( "Updater: An error occurred while downloading file " + filename + ": " + exception . Message ) ;
1424
1431
DeleteFileAndWait ( decompressedFile . FullName ) ;
1425
1432
1426
- return false ;
1433
+ return exception . Message ;
1427
1434
}
1428
1435
}
1429
1436
0 commit comments