add clean target
[libeap.git] / wpa_supplicant / ctrl_iface_unix.c
index 6f78aa5..6040828 100644 (file)
@@ -132,7 +132,7 @@ static void wpa_supplicant_ctrl_iface_receive(int sock, void *eloop_ctx,
 {
        struct wpa_supplicant *wpa_s = eloop_ctx;
        struct ctrl_iface_priv *priv = sock_ctx;
-       char buf[256];
+       char buf[4096];
        int res;
        struct sockaddr_un from;
        socklen_t fromlen = sizeof(from);
@@ -346,7 +346,7 @@ wpa_supplicant_ctrl_iface_init(struct wpa_supplicant *wpa_s)
        }
 
        os_memset(&addr, 0, sizeof(addr));
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
        addr.sun_len = sizeof(addr);
 #endif /* __FreeBSD__ */
        addr.sun_family = AF_UNIX;
@@ -525,7 +525,9 @@ static void wpa_supplicant_ctrl_iface_send(struct ctrl_iface_priv *priv,
                                           "%d - %s",
                                           idx, errno, strerror(errno));
                                dst->errors++;
-                               if (dst->errors > 10 || _errno == ENOENT) {
+                               if (dst->errors > 1000 ||
+                                   (_errno != ENOBUFS && dst->errors > 10) ||
+                                   _errno == ENOENT) {
                                        wpa_supplicant_ctrl_iface_detach(
                                                priv, &dst->addr,
                                                dst->addrlen);
@@ -645,7 +647,7 @@ wpa_supplicant_global_ctrl_iface_init(struct wpa_global *global)
        }
 
        os_memset(&addr, 0, sizeof(addr));
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
        addr.sun_len = sizeof(addr);
 #endif /* __FreeBSD__ */
        addr.sun_family = AF_UNIX;