win-xp-sp2-20040325
[openafs.git] / src / WINNT / afsd / afsd_init.c
index c1be190..1d4ca3e 100644 (file)
@@ -439,11 +439,17 @@ int afsd_InitCM(char **reasonP)
        }
 #endif /* AFS_FREELANCE_CLIENT */
 
-    dummyLen = sizeof(cm_NetBiosName);
+    dummyLen = sizeof(buf);
     code = RegQueryValueEx(parmKey, "NetbiosName", NULL, NULL,
-                           (BYTE *) &cm_NetBiosName, &dummyLen);
+                           (BYTE *) &buf, &dummyLen);
     if (code == ERROR_SUCCESS) {
-        afsi_log("Explicit NetBios name is used %s", cm_NetBiosName);
+        DWORD len = ExpandEnvironmentStrings(buf, cm_NetBiosName, MAX_NB_NAME_LENGTH);
+        if ( len > 0 && len <= MAX_NB_NAME_LENGTH ) {
+            afsi_log("Explicit NetBios name is used %s", cm_NetBiosName);
+        } else {
+            afsi_log("Unable to Expand Explicit NetBios name: %s", buf);
+            cm_NetBiosName[0] = 0;  /* turn it off */
+        }
     }
     else {
         cm_NetBiosName[0] = 0;   /* default off */
@@ -565,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.
      */
@@ -911,7 +938,7 @@ LONG __stdcall afsd_ExceptionFilter(EXCEPTION_POINTERS *ep)
           
     if (ep->ExceptionRecord->ExceptionCode == EXCEPTION_BREAKPOINT)
     {
-        afsi_log("\nEXCEPTION_BREAKPOINT - continue execition ...\n");
+        afsi_log("\nEXCEPTION_BREAKPOINT - continue execution ...\n");
     
 #ifdef _DEBUG
         if (allocRequestBrk)