DEVEL15-windows-firewall-config-20060830
authorJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 30 Aug 2006 21:16:15 +0000 (21:16 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 30 Aug 2006 21:16:15 +0000 (21:16 +0000)
Enable the firewall detection logic to work on Vista

(cherry picked from commit f56dff0860d5f9a9d92e9a06c1b7cd1728a2844a)

src/WINNT/afsd/cm_daemon.c

index 7cff084..8dc0350 100644 (file)
@@ -144,7 +144,13 @@ IsWindowsFirewallPresent(void)
     if (!scm) return FALSE;
 
     /* Open Windows Firewall service */
-    svc = OpenService(scm, "SharedAccess", SERVICE_QUERY_CONFIG);
+    svc = OpenService(scm, "MpsSvc", SERVICE_QUERY_CONFIG);
+    if (!svc) {
+       afsi_log("MpsSvc Service could not be opened for query: 0x%x", GetLastError());
+       svc = OpenService(scm, "SharedAccess", SERVICE_QUERY_CONFIG);
+       if (!svc)
+           afsi_log("SharedAccess Service could not be opened for query: 0x%x", GetLastError());
+    }
     if (!svc)
         goto close_scm;
 
@@ -162,10 +168,13 @@ IsWindowsFirewallPresent(void)
 
     /* Query Windows Firewall service config, this time for real */
     flag = QueryServiceConfig(svc, pConfig, BufSize, &BufSize);
-    if (!flag)
+    if (!flag) {
+       afsi_log("QueryServiceConfig failed: 0x%x", GetLastError());
         goto free_pConfig;
+    }
 
     /* Is it autostart? */
+    afsi_log("AutoStart 0x%x", pConfig->dwStartType);
     if (pConfig->dwStartType < SERVICE_DEMAND_START)
         result = TRUE;
 
@@ -247,6 +256,10 @@ void cm_Daemon(long parm)
     HMODULE hHookDll;
     int configureFirewall = IsWindowsFirewallPresent();
 
+    if (!configureFirewall) {
+       afsi_log("No Windows Firewall detected");
+    }
+
     /* ping all file servers, up or down, with unauthenticated connection,
      * to find out whether we have all our callbacks from the server still.
      * Also, ping down VLDBs.
@@ -297,7 +310,7 @@ void cm_Daemon(long parm)
            default:
                afsi_log("Unknown Windows Firewall Configuration error");
            }
-       }
+       } 
 
         /* find out what time it is */
         now = osi_Time();