** i.e. as if returning BROADCAST_QUERY_DENY
*/
if (powerEventsRegistered) {
- switch((int) dwEventType)
+ cm_UpdateIFInfo();
+
+ switch((int) dwEventType)
{
case PBT_APMQUERYSUSPEND:
afsi_log("SERVICE_CONTROL_APMQUERYSUSPEND");
case PBT_APMSUSPEND:
afsi_log("SERVICE_CONTROL_APMSUSPEND");
osi_Log0(afsd_logp,"SERVICE_CONTROL_APMSUSPEND");
- powerStateSuspended = 1;
- if (osVersion.dwMajorVersion >= 6)
- smb_StopListeners(0);
-
- if (RDR_Initialized)
- RDR_Suspend();
- cm_SuspendSCache();
-
+ if (!powerStateSuspended) {
+ powerStateSuspended = 1;
+ if (osVersion.dwMajorVersion >= 6)
+ smb_StopListeners(0);
+
+ if (RDR_Initialized)
+ RDR_Suspend();
+ cm_SuspendSCache();
+ }
dwRet = NO_ERROR;
afsi_log("SERVICE_CONTROL_APMSUSPEND complete");
osi_Log0(afsd_logp,"SERVICE_CONTROL_APMSUSPEND complete");
case PBT_APMSTANDBY:
afsi_log("SERVICE_CONTROL_APMSTANDBY");
osi_Log0(afsd_logp,"SERVICE_CONTROL_APMSTANDBY");
- powerStateSuspended = 1;
- if (osVersion.dwMajorVersion >= 6)
- smb_StopListeners(0);
- if (RDR_Initialized)
- RDR_Suspend();
- cm_SuspendSCache();
+ if (!powerStateSuspended) {
+ powerStateSuspended = 1;
+ if (osVersion.dwMajorVersion >= 6)
+ smb_StopListeners(0);
+ if (RDR_Initialized)
+ RDR_Suspend();
+ cm_SuspendSCache();
+ }
dwRet = NO_ERROR;
afsi_log("SERVICE_CONTROL_APMSTANDBY complete");
osi_Log0(afsd_logp,"SERVICE_CONTROL_APMSTANDBY complete");
case PBT_APMRESUMECRITICAL:
afsi_log("SERVICE_CONTROL_APMRESUMECRITICAL");
osi_Log0(afsd_logp,"SERVICE_CONTROL_APMRESUMECRITICAL");
- if (osVersion.dwMajorVersion >= 6)
- smb_RestartListeners(0);
- cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS, NULL);
- if (RDR_Initialized)
- RDR_Resume();
+ if (powerStateSuspended) {
+ powerStateSuspended = 0;
+ if (osVersion.dwMajorVersion >= 6)
+ smb_RestartListeners(0);
+ cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS
+ | CM_FLAG_CHECKUPSERVERS, NULL);
+ if (RDR_Initialized)
+ RDR_Resume();
+ }
dwRet = NO_ERROR;
afsi_log("SERVICE_CONTROL_APMRESUMECRITICAL complete");
osi_Log0(afsd_logp,"SERVICE_CONTROL_APMRESUMECRITICAL complete");
/* User logged in after suspend */
afsi_log("SERVICE_CONTROL_APMRESUMESUSPEND");
osi_Log0(afsd_logp,"SERVICE_CONTROL_APMRESUMESUSPEND");
- powerStateSuspended = 0;
- cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS, NULL);
- if (osVersion.dwMajorVersion >= 6)
- smb_RestartListeners(0);
- if (smb_Enabled && osVersion.dwMajorVersion >= 6) {
- smb_SetLanAdapterChangeDetected();
- }
- if (RDR_Initialized)
- RDR_Resume();
+ if (powerStateSuspended) {
+ powerStateSuspended = 0;
+ cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS
+ | CM_FLAG_CHECKUPSERVERS, NULL);
+ if (osVersion.dwMajorVersion >= 6)
+ smb_RestartListeners(0);
+ if (smb_Enabled && osVersion.dwMajorVersion >= 6) {
+ smb_SetLanAdapterChangeDetected();
+ }
+ if (RDR_Initialized)
+ RDR_Resume();
+ }
dwRet = NO_ERROR;
afsi_log("SERVICE_CONTROL_APMRESUMESUSPEND complete");
osi_Log0(afsd_logp,"SERVICE_CONTROL_APMRESUMESUSPEND complete");
/* User logged in after standby */
afsi_log("SERVICE_CONTROL_APMRESUMESTANDBY");
osi_Log0(afsd_logp,"SERVICE_CONTROL_APMRESUMESTANDBY");
- powerStateSuspended = 0;
- cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS, NULL);
- if (osVersion.dwMajorVersion >= 6)
- smb_RestartListeners(0);
- if (smb_Enabled && osVersion.dwMajorVersion >= 6) {
- smb_SetLanAdapterChangeDetected();
- }
- if (RDR_Initialized)
- RDR_Resume();
+ if (powerStateSuspended) {
+ powerStateSuspended = 0;
+ cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS
+ | CM_FLAG_CHECKUPSERVERS, NULL);
+ if (osVersion.dwMajorVersion >= 6)
+ smb_RestartListeners(0);
+ if (smb_Enabled && osVersion.dwMajorVersion >= 6) {
+ smb_SetLanAdapterChangeDetected();
+ }
+ if (RDR_Initialized)
+ RDR_Resume();
+ }
dwRet = NO_ERROR;
afsi_log("SERVICE_CONTROL_APMRESUMESTANDBY complete");
osi_Log0(afsd_logp,"SERVICE_CONTROL_APMRESUMESTANDBY complete");
/* This is the message delivered once all devices are up */
afsi_log("SERVICE_CONTROL_APMRESUMEAUTOMATIC");
osi_Log0(afsd_logp,"SERVICE_CONTROL_APMRESUMEAUTOMATIC");
- if (smb_Enabled && osVersion.dwMajorVersion >= 6) {
- smb_SetLanAdapterChangeDetected();
- }
- cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS, NULL);
+ if (powerStateSuspended) {
+ powerStateSuspended = 0;
+ cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS
+ | CM_FLAG_CHECKUPSERVERS, NULL);
+ if (osVersion.dwMajorVersion >= 6)
+ smb_RestartListeners(0);
+ if (smb_Enabled && osVersion.dwMajorVersion >= 6) {
+ smb_SetLanAdapterChangeDetected();
+ }
+ if (RDR_Initialized)
+ RDR_Resume();
+ }
dwRet = NO_ERROR;
afsi_log("SERVICE_CONTROL_APMRESUMEAUTOMATIC complete");
osi_Log0(afsd_logp,"SERVICE_CONTROL_APMRESUMEAUTOMATIC complete");