win-xp-sp2-20040325
[openafs.git] / src / WINNT / afsd / afsd_init.c
index 5094885..1d4ca3e 100644 (file)
@@ -571,6 +571,27 @@ int afsd_InitCM(char **reasonP)
         afsi_log("rx_SetMaxMTU %d successful", rx_mtu);
     }
 
+    /* Open Microsoft Firewall to allow in port 7001 */
+    {
+        HKEY hk;
+        DWORD dwDisp;
+        TCHAR value = TEXT("7001:UDP:*:Enabled:AFS Cache Manager Callback");
+        if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, 
+                            "SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile\GloballyOpenP", 
+                            0, TEXT("container"), 0, KEY_SET_VALUE, NULL, &hk, &dwDisp) == ERROR_SUCCESS)
+        {
+            RegSetValueEx (hk, TEXT("7001:UDP"), NULL, REG_SZ, (PBYTE)value, sizeof(TCHAR) * (1+lstrlen(value)));
+            RegCloseKey (hk);
+        }
+        if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, 
+                            "SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenP", 
+                            0, TEXT("container"), 0, KEY_SET_VALUE, NULL, &hk, &dwDisp) == ERROR_SUCCESS)
+        {
+            RegSetValueEx (hk, TEXT("7001:UDP"), NULL, REG_SZ, (PBYTE)value, sizeof(TCHAR) * (1+lstrlen(value)));
+            RegCloseKey (hk);
+        }
+    }
+
        /* initialize RX, and tell it to listen to port 7001, which is used for
      * callback RPC messages.
      */