]> git.meshlink.io Git - catta/blobdiff - src/iface-windows.c
check for failure of catta_set_nonblock in simple-watch and iface-windows
[catta] / src / iface-windows.c
index 37dc702559673ba4695a397caf6ce5719a772dce..1d8d0f3d9671c995f7b5316b057cd92b60484819 100644 (file)
@@ -260,27 +260,6 @@ static void update_hw_interface(CattaHwInterface *hw)
         hw->mac_address_size = CATTA_MAC_ADDRESS_MAX;
     memcpy(hw->mac_address, row.PhysicalAddress, hw->mac_address_size);
 
-    // XXX debugging, remove
-    {
-        char mac[256];
-        catta_log_debug(" name: %s\n"
-                        " mtu: %d\n"
-                        " mac: %s\n"
-                        " flags_ok: %d\n"
-                        "   type: %u\n"
-                        "   status: %u\n"
-                        "   multicast: %d\n"
-                        "   access type: %d",
-            hw->name,
-            hw->mtu,
-            catta_format_mac_address(mac, sizeof(mac), hw->mac_address, hw->mac_address_size),
-            hw->flags_ok,
-            (unsigned int)row.Type,
-            (unsigned int)row.OperStatus,
-            multicast,
-            (int)row.AccessType);
-    }
-
     catta_hw_interface_check_relevant(hw);
     catta_hw_interface_update_rrs(hw, 0);
 }
@@ -293,20 +272,6 @@ static void handle_iface_event(CattaInterfaceMonitor *m, MIB_IPINTERFACE_ROW *ro
     CattaInterface *iface;
     CattaHwInterface *hw;
 
-    // XXX debug, remove
-    {
-        const char *typestr = NULL;
-
-        switch(type) {
-            case MibParameterNotification:  typestr = "ParameterNotification"; break;
-            case MibAddInstance:            typestr = "AddInstance"; break;
-            case MibDeleteInstance:         typestr = "DeleteInstance"; break;
-            default:                        typestr = "Unknown";
-        }
-
-        catta_log_debug("interface %s on iface %d for %s", typestr, idx, protostr);
-    }
-
     // see if we know this interface
     iface = catta_interface_monitor_get_interface(m, idx, proto);
     hw = iface ? iface->hardware : catta_interface_monitor_get_hw_interface(m, idx);
@@ -382,24 +347,6 @@ static void handle_addr_event(CattaInterfaceMonitor *m, MIB_UNICASTIPADDRESS_ROW
     addr.proto = catta_af_to_proto(row->Address.si_family);
     protostr = catta_proto_to_string(addr.proto);
 
-    // XXX debug, remove
-    {
-        const char *typestr = NULL;
-        char buf[CATTA_ADDRESS_STR_MAX];
-
-        switch(type) {
-            case MibParameterNotification:  typestr = "ParameterNotification"; break;
-            case MibAddInstance:            typestr = "AddInstance"; break;
-            case MibDeleteInstance:         typestr = "DeleteInstance"; break;
-            default:                        typestr = "Unknown";
-        }
-
-        catta_log_debug("%s for %s address %s on iface %d",
-                        typestr, protostr,
-                        catta_address_snprint(buf, sizeof(buf), &addr),
-                        idx);
-    }
-
     // see if we know this address/interface
     iface = catta_interface_monitor_get_interface(m, idx, addr.proto);
     ifaddr = iface ? catta_interface_monitor_get_address(m, iface, &addr) : NULL;
@@ -455,7 +402,6 @@ static void handle_addr_event(CattaInterfaceMonitor *m, MIB_UNICASTIPADDRESS_ROW
         assert(ifaddr != NULL);
 
         set_global_scope_flag(ifaddr, &addr);
-        catta_log_debug("   global_scope: %d", ifaddr->global_scope); // XXX debugging, remove
         break;
     case MibDeleteInstance:
         if(ifaddr)
@@ -525,8 +471,12 @@ int catta_interface_monitor_init_osdep(CattaInterfaceMonitor *m)
         catta_log_error("pipe() in catta_interface_monitor_init_osdep failed");
         return -1;
     }
-    catta_set_nonblock(m->osdep.pipefd[0]);
-    catta_set_nonblock(m->osdep.pipefd[1]);
+    if(catta_set_nonblock(m->osdep.pipefd[0]) < 0 ||
+       catta_set_nonblock(m->osdep.pipefd[1]) < 0)
+    {
+        catta_log_error(__FILE__": catta_set_nonblock failed: %s", errnostrsocket());
+        goto fail;
+    }
 
     m->osdep.icnhandle = NULL;
     m->osdep.acnhandle = NULL;
@@ -539,7 +489,7 @@ int catta_interface_monitor_init_osdep(CattaInterfaceMonitor *m)
                                                     m);
     if(!m->osdep.watch) {
         catta_log_error(__FILE__": Failed to create watch.");
-        return -1;
+        goto fail;
     }
 
     // request async notification on interface changes
@@ -559,6 +509,11 @@ int catta_interface_monitor_init_osdep(CattaInterfaceMonitor *m)
         catta_log_error("NotifyUnicastIpAddressChange failed: %u", (unsigned int)r);
 
     return 0;
+
+fail:
+    closesocket(m->osdep.pipefd[0]);
+    closesocket(m->osdep.pipefd[1]);
+    return -1;
 }
 
 void catta_interface_monitor_free_osdep(CattaInterfaceMonitor *m)