diff options
Diffstat (limited to 'src/burn/engine/msuengine.cpp')
| -rw-r--r-- | src/burn/engine/msuengine.cpp | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/burn/engine/msuengine.cpp b/src/burn/engine/msuengine.cpp index 2f1fb61c..2591973f 100644 --- a/src/burn/engine/msuengine.cpp +++ b/src/burn/engine/msuengine.cpp | |||
| @@ -222,30 +222,33 @@ extern "C" HRESULT MsuEnginePlanAddPackage( | |||
| 222 | hr = DependencyPlanPackage(NULL, pPackage, pPlan); | 222 | hr = DependencyPlanPackage(NULL, pPackage, pPlan); |
| 223 | ExitOnFailure(hr, "Failed to plan package dependency actions."); | 223 | ExitOnFailure(hr, "Failed to plan package dependency actions."); |
| 224 | 224 | ||
| 225 | // add execute action | 225 | // add rollback action |
| 226 | if (BOOTSTRAPPER_ACTION_STATE_NONE != pPackage->execute) | 226 | if (BOOTSTRAPPER_ACTION_STATE_NONE != pPackage->rollback) |
| 227 | { | 227 | { |
| 228 | hr = PlanAppendExecuteAction(pPlan, &pAction); | 228 | hr = PlanAppendRollbackAction(pPlan, &pAction); |
| 229 | ExitOnFailure(hr, "Failed to append execute action."); | 229 | ExitOnFailure(hr, "Failed to append rollback action."); |
| 230 | 230 | ||
| 231 | pAction->type = BURN_EXECUTE_ACTION_TYPE_MSU_PACKAGE; | 231 | pAction->type = BURN_EXECUTE_ACTION_TYPE_MSU_PACKAGE; |
| 232 | pAction->msuPackage.pPackage = pPackage; | 232 | pAction->msuPackage.pPackage = pPackage; |
| 233 | pAction->msuPackage.action = pPackage->execute; | 233 | pAction->msuPackage.action = pPackage->rollback; |
| 234 | 234 | ||
| 235 | LoggingSetPackageVariable(pPackage, NULL, FALSE, pLog, pVariables, &pAction->msuPackage.sczLogPath); // ignore errors. | 235 | LoggingSetPackageVariable(pPackage, NULL, TRUE, pLog, pVariables, &pAction->msuPackage.sczLogPath); // ignore errors. |
| 236 | |||
| 237 | hr = PlanExecuteCheckpoint(pPlan); | ||
| 238 | ExitOnFailure(hr, "Failed to append execute checkpoint."); | ||
| 236 | } | 239 | } |
| 237 | 240 | ||
| 238 | // add rollback action | 241 | // add execute action |
| 239 | if (BOOTSTRAPPER_ACTION_STATE_NONE != pPackage->rollback) | 242 | if (BOOTSTRAPPER_ACTION_STATE_NONE != pPackage->execute) |
| 240 | { | 243 | { |
| 241 | hr = PlanAppendRollbackAction(pPlan, &pAction); | 244 | hr = PlanAppendExecuteAction(pPlan, &pAction); |
| 242 | ExitOnFailure(hr, "Failed to append rollback action."); | 245 | ExitOnFailure(hr, "Failed to append execute action."); |
| 243 | 246 | ||
| 244 | pAction->type = BURN_EXECUTE_ACTION_TYPE_MSU_PACKAGE; | 247 | pAction->type = BURN_EXECUTE_ACTION_TYPE_MSU_PACKAGE; |
| 245 | pAction->msuPackage.pPackage = pPackage; | 248 | pAction->msuPackage.pPackage = pPackage; |
| 246 | pAction->msuPackage.action = pPackage->rollback; | 249 | pAction->msuPackage.action = pPackage->execute; |
| 247 | 250 | ||
| 248 | LoggingSetPackageVariable(pPackage, NULL, TRUE, pLog, pVariables, &pAction->msuPackage.sczLogPath); // ignore errors. | 251 | LoggingSetPackageVariable(pPackage, NULL, FALSE, pLog, pVariables, &pAction->msuPackage.sczLogPath); // ignore errors. |
| 249 | } | 252 | } |
| 250 | 253 | ||
| 251 | LExit: | 254 | LExit: |
