]> arthur.barton.de Git - netatalk.git/commitdiff
Only change TCP snd/rcv buffer if option is set
authorFrank Lahm <franklahm@googlemail.com>
Tue, 29 Mar 2011 08:46:01 +0000 (10:46 +0200)
committerFrank Lahm <franklahm@googlemail.com>
Tue, 29 Mar 2011 08:46:01 +0000 (10:46 +0200)
etc/afpd/afp_dsi.c
etc/afpd/afp_options.c

index d7cf01b39e695e3448bf6199337139b65121cf90..11390a894a4ddb9f7fb40a15aedb09c8614a9e74 100644 (file)
@@ -458,19 +458,23 @@ void afp_over_dsi(AFPObj *obj)
         afp_dsi_die(EXITERR_SYS);
 
     /* set TCP snd/rcv buf */
-    if (setsockopt(dsi->socket,
-                   SOL_SOCKET,
-                   SO_RCVBUF,
-                   &obj->options.tcp_rcvbuf,
-                   sizeof(obj->options.tcp_rcvbuf)) != 0) {
-        LOG(log_error, logtype_dsi, "dsi_tcp_open: setsockopt(SO_RCVBUF): %s", strerror(errno));
+    if (obj->options.tcp_rcvbuf) {
+        if (setsockopt(dsi->socket,
+                       SOL_SOCKET,
+                       SO_RCVBUF,
+                       &obj->options.tcp_rcvbuf,
+                       sizeof(obj->options.tcp_rcvbuf)) != 0) {
+            LOG(log_error, logtype_dsi, "dsi_tcp_open: setsockopt(SO_RCVBUF): %s", strerror(errno));
+        }
     }
-    if (setsockopt(dsi->socket,
-                   SOL_SOCKET,
-                   SO_SNDBUF,
-                   &obj->options.tcp_sndbuf,
-                   sizeof(obj->options.tcp_sndbuf)) != 0) {
-        LOG(log_error, logtype_dsi, "dsi_tcp_open: setsockopt(SO_SNDBUF): %s", strerror(errno));
+    if (obj->options.tcp_sndbuf) {
+        if (setsockopt(dsi->socket,
+                       SOL_SOCKET,
+                       SO_SNDBUF,
+                       &obj->options.tcp_sndbuf,
+                       sizeof(obj->options.tcp_sndbuf)) != 0) {
+            LOG(log_error, logtype_dsi, "dsi_tcp_open: setsockopt(SO_SNDBUF): %s", strerror(errno));
+        }
     }
 
     /* get stuck here until the end */
index 0f6711853076524e9aaa21c4eb53bf764616f2dc..7283d136fa1542bf63b1db29fa1e3a05fa1c70f0 100644 (file)
@@ -186,8 +186,8 @@ void afp_options_init(struct afp_options *options)
     options->dircachesize = DEFAULT_MAX_DIRCACHE_SIZE;
     options->flags |= OPTION_ACL2MACCESS;
     options->flags |= OPTION_UUID;
-    options->tcp_sndbuf = 65535;
-    options->tcp_rcvbuf = 65535;
+    options->tcp_sndbuf = 0;    /* 0 means don't change OS default */
+    options->tcp_rcvbuf = 0;    /* 0 means don't change OS default */
 }
 
 /* parse an afpd.conf line. i'm doing it this way because it's