From 9e4dd65c39fac52b65d9a4de163c5d08fcd0ce2f Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sun, 6 Jan 2008 06:26:04 +0000 Subject: [PATCH] DEVEL15-windows-power-mgmt-20080105 LICENSE MIT Log more power mgmt events. Do not permit a smb reinitialization when in a suspended state Periodically check to see if the LAN adapter is -1. If so, try to reinitialize the smb stack. (cherry picked from commit 6887c0e5b2b766b06c7e76a5ce28b84ed52df1d5) --- src/WINNT/afsd/afsd_service.c | 5 +++++ src/WINNT/afsd/smb.c | 17 +++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/WINNT/afsd/afsd_service.c b/src/WINNT/afsd/afsd_service.c index 388721421..ed0fc1fc8 100644 --- a/src/WINNT/afsd/afsd_service.c +++ b/src/WINNT/afsd/afsd_service.c @@ -250,6 +250,11 @@ afsd_ServiceControlHandlerEx( { case SERVICE_CONTROL_SHUTDOWN: case SERVICE_CONTROL_STOP: + if (ctrlCode == SERVICE_CONTROL_SHUTDOWN) + afsi_log("SERVICE_CONTROL_SHUTDOWN"); + else + afsi_log("SERVICE_CONTROL_STOP"); + ServiceStatus.dwCurrentState = SERVICE_STOP_PENDING; ServiceStatus.dwWin32ExitCode = NO_ERROR; ServiceStatus.dwCheckPoint = 1; diff --git a/src/WINNT/afsd/smb.c b/src/WINNT/afsd/smb.c index 1f08b3f63..9b5c8a623 100644 --- a/src/WINNT/afsd/smb.c +++ b/src/WINNT/afsd/smb.c @@ -8761,8 +8761,9 @@ void smb_LanAdapterChange(void) { char NetbiosName[MAX_NB_NAME_LENGTH] = ""; int change = 0; - if (SUCCEEDED(lana_GetUncServerNameEx(NetbiosName, &lanaNum, &bGateway, - LANA_NETBIOS_NAME_FULL))) { + if (!powerStateSuspended && + SUCCEEDED(lana_GetUncServerNameEx(NetbiosName, &lanaNum, &bGateway, + LANA_NETBIOS_NAME_FULL))) { if (smb_LANadapter != lanaNum || isGateway != bGateway || strcmp(cm_NetbiosName, NetbiosName)) @@ -8975,7 +8976,7 @@ int smb_NetbiosInit(void) /* we're done with the NCB now */ FreeNCB(ncbp); - return (lana_list.length > 0 ? 1 : 0); + return ((lana_list.length > 0 && smb_LANadapter != -1) ? 1 : 0); } void smb_StartListeners() @@ -9006,9 +9007,13 @@ void smb_StartListeners() void smb_RestartListeners() { - if (!powerStateSuspended && smb_ListenerState == SMB_LISTENER_STOPPED) { - if (smb_NetbiosInit()) - smb_StartListeners(); + if (!powerStateSuspended) { + if (smb_ListenerState == SMB_LISTENER_STOPPED) { + if (smb_NetbiosInit()) + smb_StartListeners(); + } + if (smb_LANadapter == -1) + smb_LanAdapterChange(); } } -- 2.39.5