> netlink_read: recvmsg(): No buffer space available

Could you please test the attached patch and let me know if it fixes this
particular issue?  (Completely untested, sorry, no time right now.)

-- Juliusz
diff --git a/kernel_netlink.c b/kernel_netlink.c
index d32a5d8..b2683cb 100644
--- a/kernel_netlink.c
+++ b/kernel_netlink.c
@@ -232,6 +232,7 @@ static int
 netlink_socket(struct netlink *nl, uint32_t groups)
 {
     int rc;
+    int rcvsize = 256 * 1024;
 
     nl->sock = socket(PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
     if(nl->sock < 0)
@@ -252,6 +253,20 @@ netlink_socket(struct netlink *nl, uint32_t groups)
     if(rc < 0)
         goto fail;
 
+#ifdef SO_RCVBUFFORCE
+    rc = setsockopt(nl->sock, SOL_SOCKET, SO_RCVBUFFORCE,
+                    &rcvsize, sizeof(rcvsize));
+#else
+    rc = -1;
+#endif
+    if(rc < 0) {
+        rc = setsockopt(nl->sock, SOL_SOCKET, SO_RCVBUF,
+                        &rcvsize, sizeof(rcvsize));
+        if(rc < 0) {
+            perror("setsockopt(SO_RCVBUF)");
+        }
+    }
+
     rc = bind(nl->sock, (struct sockaddr *)&nl->sockaddr, nl->socklen);
     if(rc < 0)
         goto fail;

_______________________________________________
Babel-users mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users

Reply via email to