diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-08-03 14:55:23 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-08-03 15:57:24 -0500 |
commit | 124fef398a26bc8e139e889a2345602d2478590c (patch) | |
tree | 002c77e0c1d72b0cc0e46bed3c6f02d4179625fe /src/burn/engine/elevation.cpp | |
parent | a896fec453056aa5e1ad803b04a672d2dceda981 (diff) | |
download | wix-124fef398a26bc8e139e889a2345602d2478590c.tar.gz wix-124fef398a26bc8e139e889a2345602d2478590c.tar.bz2 wix-124fef398a26bc8e139e889a2345602d2478590c.zip |
Add ability to skip a local path candidate if it failed verification.
Fixes 6818
Diffstat (limited to 'src/burn/engine/elevation.cpp')
-rw-r--r-- | src/burn/engine/elevation.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/burn/engine/elevation.cpp b/src/burn/engine/elevation.cpp index e165a257..ef9c6e97 100644 --- a/src/burn/engine/elevation.cpp +++ b/src/burn/engine/elevation.cpp | |||
@@ -42,6 +42,7 @@ typedef enum _BURN_ELEVATION_MESSAGE_TYPE | |||
42 | BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_BEGIN, | 42 | BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_BEGIN, |
43 | BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_COMPLETE, | 43 | BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_COMPLETE, |
44 | BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_SUCCESS, | 44 | BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_SUCCESS, |
45 | BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_FAILURE, | ||
45 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROGRESS, | 46 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROGRESS, |
46 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_CANCEL, | 47 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_CANCEL, |
47 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_STARTED, | 48 | BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_PROCESS_STARTED, |
@@ -1792,11 +1793,19 @@ static HRESULT ProcessBurnCacheMessages( | |||
1792 | case BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_SUCCESS: | 1793 | case BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_SUCCESS: |
1793 | // read message parameters | 1794 | // read message parameters |
1794 | hr = BuffReadNumber64((BYTE*)pMsg->pvData, pMsg->cbData, &iData, &message.success.qwFileSize); | 1795 | hr = BuffReadNumber64((BYTE*)pMsg->pvData, pMsg->cbData, &iData, &message.success.qwFileSize); |
1795 | ExitOnFailure(hr, "Failed to read begin cache step."); | 1796 | ExitOnFailure(hr, "Failed to read success file size."); |
1796 | 1797 | ||
1797 | message.type = BURN_CACHE_MESSAGE_SUCCESS; | 1798 | message.type = BURN_CACHE_MESSAGE_SUCCESS; |
1798 | break; | 1799 | break; |
1799 | 1800 | ||
1801 | case BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_FAILURE: | ||
1802 | // read message parameters | ||
1803 | hr = BuffReadNumber((BYTE*)pMsg->pvData, pMsg->cbData, &iData, reinterpret_cast<DWORD*>(&message.failure.cacheStep)); | ||
1804 | ExitOnFailure(hr, "Failed to read failure cache step."); | ||
1805 | |||
1806 | message.type = BURN_CACHE_MESSAGE_FAILURE; | ||
1807 | break; | ||
1808 | |||
1800 | case BURN_ELEVATION_MESSAGE_TYPE_PROGRESS_ROUTINE: | 1809 | case BURN_ELEVATION_MESSAGE_TYPE_PROGRESS_ROUTINE: |
1801 | fProgressRoutine = TRUE; | 1810 | fProgressRoutine = TRUE; |
1802 | break; | 1811 | break; |
@@ -3511,7 +3520,7 @@ static HRESULT CALLBACK BurnCacheMessageHandler( | |||
3511 | case BURN_CACHE_MESSAGE_BEGIN: | 3520 | case BURN_CACHE_MESSAGE_BEGIN: |
3512 | // serialize message data | 3521 | // serialize message data |
3513 | hr = BuffWriteNumber(&pbData, &cbData, pMessage->begin.cacheStep); | 3522 | hr = BuffWriteNumber(&pbData, &cbData, pMessage->begin.cacheStep); |
3514 | ExitOnFailure(hr, "Failed to write progress percentage to message buffer."); | 3523 | ExitOnFailure(hr, "Failed to write cache step to message buffer."); |
3515 | 3524 | ||
3516 | dwMessage = BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_BEGIN; | 3525 | dwMessage = BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_BEGIN; |
3517 | break; | 3526 | break; |
@@ -3526,10 +3535,18 @@ static HRESULT CALLBACK BurnCacheMessageHandler( | |||
3526 | 3535 | ||
3527 | case BURN_CACHE_MESSAGE_SUCCESS: | 3536 | case BURN_CACHE_MESSAGE_SUCCESS: |
3528 | hr = BuffWriteNumber64(&pbData, &cbData, pMessage->success.qwFileSize); | 3537 | hr = BuffWriteNumber64(&pbData, &cbData, pMessage->success.qwFileSize); |
3529 | ExitOnFailure(hr, "Failed to count of files in use to message buffer."); | 3538 | ExitOnFailure(hr, "Failed to write file size to message buffer."); |
3530 | 3539 | ||
3531 | dwMessage = BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_SUCCESS; | 3540 | dwMessage = BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_SUCCESS; |
3532 | break; | 3541 | break; |
3542 | |||
3543 | case BURN_CACHE_MESSAGE_FAILURE: | ||
3544 | // serialize message data | ||
3545 | hr = BuffWriteNumber(&pbData, &cbData, pMessage->failure.cacheStep); | ||
3546 | ExitOnFailure(hr, "Failed to write cache step to message buffer."); | ||
3547 | |||
3548 | dwMessage = BURN_ELEVATION_MESSAGE_TYPE_BURN_CACHE_FAILURE; | ||
3549 | break; | ||
3533 | } | 3550 | } |
3534 | 3551 | ||
3535 | // send message | 3552 | // send message |