+static void hack_send_buffer_size(int fd, const char *what) {
+ int sndbuf, target_sndbuf = 131072;
+ socklen_t len = sizeof sndbuf;
+
+ if(getsockopt(fd, SOL_SOCKET, SO_SNDBUF,
+ &sndbuf, &len) < 0)
+ disorder_fatal(errno, "error getting SO_SNDBUF on %s socket", what);
+ if(target_sndbuf > sndbuf) {
+ if(setsockopt(fd, SOL_SOCKET, SO_SNDBUF,
+ &target_sndbuf, sizeof target_sndbuf) < 0)
+ disorder_error(errno, "error setting SO_SNDBUF on %s socket to %d",
+ what, target_sndbuf);
+ else
+ disorder_info("changed socket send buffer size on %socket from %d to %d",
+ what, sndbuf, target_sndbuf);
+ } else
+ disorder_info("default socket send buffer on %s socket is %d",
+ what, sndbuf);
+}
+