win-power-mgmt-flush-test-20041003
[openafs.git] / src / WINNT / afsd / lanahelper.cpp
index d704ada..5cdc27b 100644 (file)
@@ -394,6 +394,35 @@ extern "C" lana_number_t lana_FindLoopback(void)
     return LANA_INVALID;
 }
 
+/* Returns TRUE if all adapters are loopback adapters */
+extern "C" BOOL lana_OnlyLoopback(void)
+{
+    NCB ncb;
+    LANA_ENUM lana_list;
+    int status;
+    int i;
+
+    memset(&ncb, 0, sizeof(ncb));
+    ncb.ncb_command = NCBENUM;
+    ncb.ncb_buffer = (UCHAR *) &lana_list;
+    ncb.ncb_length = sizeof(lana_list);
+    status = Netbios(&ncb);
+    if (status != 0) {
+#ifndef NOLOGGING
+        afsi_log("Netbios NCBENUM failed: status %ld", status);
+#endif
+        return FALSE;
+    }
+    for (i = 0; i < lana_list.length; i++) {
+       if (!lana_IsLoopback(lana_list.lana[i])) {
+           // Found one non-Loopback adapter
+           return FALSE;
+       }
+    }
+    // All adapters are loopback
+    return TRUE;
+}
+
 // Is the given lana a Windows Loopback Adapter?
 // TODO: implement a better check for loopback
 // TODO: also check for proper bindings (IPv4)