diff options
Diffstat (limited to 'src/burn/engine')
| -rw-r--r-- | src/burn/engine/core.cpp | 2 | ||||
| -rw-r--r-- | src/burn/engine/engine.mc | 2 | ||||
| -rw-r--r-- | src/burn/engine/logging.cpp | 17 | ||||
| -rw-r--r-- | src/burn/engine/logging.h | 4 | ||||
| -rw-r--r-- | src/burn/engine/plan.cpp | 17 | ||||
| -rw-r--r-- | src/burn/engine/userexperience.cpp | 6 |
6 files changed, 42 insertions, 6 deletions
diff --git a/src/burn/engine/core.cpp b/src/burn/engine/core.cpp index 02cab7e6..601f29a0 100644 --- a/src/burn/engine/core.cpp +++ b/src/burn/engine/core.cpp | |||
| @@ -1788,7 +1788,7 @@ static void LogPackages( | |||
| 1788 | const DWORD iPackage = (BOOTSTRAPPER_ACTION_UNINSTALL == action) ? pPackages->cPackages - 1 - i : i; | 1788 | const DWORD iPackage = (BOOTSTRAPPER_ACTION_UNINSTALL == action) ? pPackages->cPackages - 1 - i : i; |
| 1789 | const BURN_PACKAGE* pPackage = &pPackages->rgPackages[iPackage]; | 1789 | const BURN_PACKAGE* pPackage = &pPackages->rgPackages[iPackage]; |
| 1790 | 1790 | ||
| 1791 | LogId(REPORT_STANDARD, MSG_PLANNED_PACKAGE, pPackage->sczId, LoggingPackageStateToString(pPackage->currentState), LoggingRequestStateToString(pPackage->defaultRequested), LoggingRequestStateToString(pPackage->requested), LoggingActionStateToString(pPackage->execute), LoggingActionStateToString(pPackage->rollback), LoggingBoolToString(pPackage->fPlannedCache), LoggingBoolToString(pPackage->fPlannedUncache), LoggingDependencyActionToString(pPackage->dependencyExecute), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->expectedInstallRegistrationState), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->expectedCacheRegistrationState)); | 1791 | LogId(REPORT_STANDARD, MSG_PLANNED_PACKAGE, pPackage->sczId, LoggingPackageStateToString(pPackage->currentState), LoggingRequestStateToString(pPackage->defaultRequested), LoggingRequestStateToString(pPackage->requested), LoggingActionStateToString(pPackage->execute), LoggingActionStateToString(pPackage->rollback), LoggingCacheTypeToString(pPackage->authoredCacheType), LoggingCacheTypeToString(pPackage->cacheType), LoggingBoolToString(pPackage->fPlannedCache), LoggingBoolToString(pPackage->fPlannedUncache), LoggingDependencyActionToString(pPackage->dependencyExecute), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->expectedInstallRegistrationState), LoggingPackageRegistrationStateToString(pPackage->fCanAffectRegistration, pPackage->expectedCacheRegistrationState)); |
| 1792 | 1792 | ||
| 1793 | if (BURN_PACKAGE_TYPE_MSI == pPackage->type) | 1793 | if (BURN_PACKAGE_TYPE_MSI == pPackage->type) |
| 1794 | { | 1794 | { |
diff --git a/src/burn/engine/engine.mc b/src/burn/engine/engine.mc index 84046314..929bf67a 100644 --- a/src/burn/engine/engine.mc +++ b/src/burn/engine/engine.mc | |||
| @@ -314,7 +314,7 @@ MessageId=201 | |||
| 314 | Severity=Success | 314 | Severity=Success |
| 315 | SymbolicName=MSG_PLANNED_PACKAGE | 315 | SymbolicName=MSG_PLANNED_PACKAGE |
| 316 | Language=English | 316 | Language=English |
| 317 | Planned package: %1!ls!, state: %2!hs!, default requested: %3!hs!, ba requested: %4!hs!, execute: %5!hs!, rollback: %6!hs!, cache: %7!hs!, uncache: %8!hs!, dependency: %9!hs!, expected install registration state: %10!hs!, expected cache registration state: %11!hs! | 317 | Planned package: %1!ls!, state: %2!hs!, default requested: %3!hs!, ba requested: %4!hs!, execute: %5!hs!, rollback: %6!hs!, default cache strategy: %7!hs!, ba requested strategy: %8!hs!, cache: %9!hs!, uncache: %10!hs!, dependency: %11!hs!, expected install registration state: %12!hs!, expected cache registration state: %13!hs! |
| 318 | . | 318 | . |
| 319 | 319 | ||
| 320 | MessageId=202 | 320 | MessageId=202 |
diff --git a/src/burn/engine/logging.cpp b/src/burn/engine/logging.cpp index 065ef907..7ee1ec85 100644 --- a/src/burn/engine/logging.cpp +++ b/src/burn/engine/logging.cpp | |||
| @@ -337,6 +337,23 @@ extern "C" LPCSTR LoggingActionStateToString( | |||
| 337 | } | 337 | } |
| 338 | } | 338 | } |
| 339 | 339 | ||
| 340 | extern "C" LPCSTR LoggingCacheTypeToString( | ||
| 341 | BOOTSTRAPPER_CACHE_TYPE cacheType | ||
| 342 | ) | ||
| 343 | { | ||
| 344 | switch (cacheType) | ||
| 345 | { | ||
| 346 | case BOOTSTRAPPER_CACHE_TYPE_FORCE: | ||
| 347 | return "Force"; | ||
| 348 | case BOOTSTRAPPER_CACHE_TYPE_KEEP: | ||
| 349 | return "Keep"; | ||
| 350 | case BOOTSTRAPPER_CACHE_TYPE_REMOVE: | ||
| 351 | return "Remove"; | ||
| 352 | default: | ||
| 353 | return "Invalid"; | ||
| 354 | } | ||
| 355 | } | ||
| 356 | |||
| 340 | extern "C" LPCSTR LoggingDependencyActionToString( | 357 | extern "C" LPCSTR LoggingDependencyActionToString( |
| 341 | BURN_DEPENDENCY_ACTION action | 358 | BURN_DEPENDENCY_ACTION action |
| 342 | ) | 359 | ) |
diff --git a/src/burn/engine/logging.h b/src/burn/engine/logging.h index 601039f9..909ce591 100644 --- a/src/burn/engine/logging.h +++ b/src/burn/engine/logging.h | |||
| @@ -73,6 +73,10 @@ LPCSTR LoggingActionStateToString( | |||
| 73 | __in BOOTSTRAPPER_ACTION_STATE actionState | 73 | __in BOOTSTRAPPER_ACTION_STATE actionState |
| 74 | ); | 74 | ); |
| 75 | 75 | ||
| 76 | LPCSTR LoggingCacheTypeToString( | ||
| 77 | BOOTSTRAPPER_CACHE_TYPE cacheType | ||
| 78 | ); | ||
| 79 | |||
| 76 | LPCSTR LoggingDependencyActionToString( | 80 | LPCSTR LoggingDependencyActionToString( |
| 77 | BURN_DEPENDENCY_ACTION action | 81 | BURN_DEPENDENCY_ACTION action |
| 78 | ); | 82 | ); |
diff --git a/src/burn/engine/plan.cpp b/src/burn/engine/plan.cpp index 327078b9..f0ae2a44 100644 --- a/src/burn/engine/plan.cpp +++ b/src/burn/engine/plan.cpp | |||
| @@ -1077,7 +1077,7 @@ extern "C" HRESULT PlanExecutePackage( | |||
| 1077 | ) | 1077 | ) |
| 1078 | { | 1078 | { |
| 1079 | HRESULT hr = S_OK; | 1079 | HRESULT hr = S_OK; |
| 1080 | BOOL fRequestedCache = BOOTSTRAPPER_REQUEST_STATE_CACHE == pPackage->requested || ForceCache(pPlan, pPackage); | 1080 | BOOL fRequestedCache = BOOTSTRAPPER_CACHE_TYPE_REMOVE < pPackage->cacheType && (BOOTSTRAPPER_REQUEST_STATE_CACHE == pPackage->requested || ForceCache(pPlan, pPackage)); |
| 1081 | 1081 | ||
| 1082 | hr = CalculateExecuteActions(pPackage, pPlan->pActiveRollbackBoundary); | 1082 | hr = CalculateExecuteActions(pPackage, pPlan->pActiveRollbackBoundary); |
| 1083 | ExitOnFailure(hr, "Failed to calculate plan actions for package: %ls", pPackage->sczId); | 1083 | ExitOnFailure(hr, "Failed to calculate plan actions for package: %ls", pPackage->sczId); |
| @@ -2531,8 +2531,19 @@ static BOOL ForceCache( | |||
| 2531 | __in BURN_PACKAGE* pPackage | 2531 | __in BURN_PACKAGE* pPackage |
| 2532 | ) | 2532 | ) |
| 2533 | { | 2533 | { |
| 2534 | // All packages that have cacheType set to force should be cached if the bundle is going to be present. | 2534 | switch (pPackage->cacheType) |
| 2535 | return BOOTSTRAPPER_CACHE_TYPE_FORCE == pPackage->cacheType && BOOTSTRAPPER_ACTION_UNINSTALL < pPlan->action; | 2535 | { |
| 2536 | case BOOTSTRAPPER_CACHE_TYPE_KEEP: | ||
| 2537 | // During actions that are expected to have source media available, | ||
| 2538 | // all packages that have cacheType set to keep should be cached if the package is going to be present. | ||
| 2539 | return (BOOTSTRAPPER_ACTION_CACHE == pPlan->action || BOOTSTRAPPER_ACTION_INSTALL == pPlan->action) && | ||
| 2540 | BOOTSTRAPPER_REQUEST_STATE_CACHE < pPackage->requested; | ||
| 2541 | case BOOTSTRAPPER_CACHE_TYPE_FORCE: | ||
| 2542 | // All packages that have cacheType set to force should be cached if the bundle is going to be present. | ||
| 2543 | return BOOTSTRAPPER_ACTION_UNINSTALL < pPlan->action; | ||
| 2544 | default: | ||
| 2545 | return FALSE; | ||
| 2546 | } | ||
| 2536 | } | 2547 | } |
| 2537 | 2548 | ||
| 2538 | static void CacheActionLog( | 2549 | static void CacheActionLog( |
diff --git a/src/burn/engine/userexperience.cpp b/src/burn/engine/userexperience.cpp index 2215a070..5a54f26e 100644 --- a/src/burn/engine/userexperience.cpp +++ b/src/burn/engine/userexperience.cpp | |||
| @@ -1998,7 +1998,11 @@ EXTERN_C BAAPI UserExperienceOnPlanPackageBegin( | |||
| 1998 | hr = HRESULT_FROM_WIN32(ERROR_INSTALL_USEREXIT); | 1998 | hr = HRESULT_FROM_WIN32(ERROR_INSTALL_USEREXIT); |
| 1999 | } | 1999 | } |
| 2000 | *pRequestedState = results.requestedState; | 2000 | *pRequestedState = results.requestedState; |
| 2001 | *pRequestedCacheType = results.requestedCacheType; | 2001 | |
| 2002 | if (BOOTSTRAPPER_CACHE_TYPE_REMOVE <= results.requestedCacheType && BOOTSTRAPPER_CACHE_TYPE_FORCE >= results.requestedCacheType) | ||
| 2003 | { | ||
| 2004 | *pRequestedCacheType = results.requestedCacheType; | ||
| 2005 | } | ||
| 2002 | 2006 | ||
| 2003 | LExit: | 2007 | LExit: |
| 2004 | return hr; | 2008 | return hr; |
