chiark / gitweb /
never reduce socket buffers
[disorder] / server / speaker.c
index 5d203942bd31820902fe12e27977051ed6a1b915..37719f924d12f2d4f8a22f2991b693d8a64f15ee 100644 (file)
@@ -965,12 +965,16 @@ int main(int argc, char **argv) {
     if(getsockopt(bfd, SOL_SOCKET, SO_SNDBUF,
                   &sndbuf, &len) < 0)
       fatal(errno, "error getting SO_SNDBUF");
-    if(setsockopt(bfd, SOL_SOCKET, SO_SNDBUF,
-                  &target_sndbuf, sizeof target_sndbuf) < 0)
-      error(errno, "error setting SO_SNDBUF to %d", target_sndbuf);
-    else
-      info("changed socket send buffer size from %d to %d",
-           sndbuf, target_sndbuf);
+    if(target_sndbuf > sndbuf) {
+      if(setsockopt(bfd, SOL_SOCKET, SO_SNDBUF,
+                    &target_sndbuf, sizeof target_sndbuf) < 0)
+        error(errno, "error setting SO_SNDBUF to %d", target_sndbuf);
+      else
+        info("changed socket send buffer size from %d to %d",
+             sndbuf, target_sndbuf);
+    } else
+        info("default socket send buffer is %d",
+             sndbuf);
     /* We might well want to set additional broadcast- or multicast-related
      * options here */
     if(sres && bind(bfd, sres->ai_addr, sres->ai_addrlen) < 0)