daemon.c: Add option for tcp no delay

Allow the NFS tcp sockets to conditionally use TCP_NODELAY

Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/

---
 daemon.c |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

--- a/daemon.c
+++ b/daemon.c
@@ -17,6 +17,7 @@
 #ifndef WIN32
 #include <sys/socket.h>
 #include <netinet/in.h>
+#include <netinet/tcp.h>
 #include <arpa/inet.h>
 #include <syslog.h>
 #else				       /* WIN32 */
@@ -75,6 +76,7 @@ unsigned int opt_mount_port = NFS_PORT;
 int opt_singleuser = FALSE;
 int opt_brute_force = FALSE;
 int opt_testconfig = FALSE;
+int opt_tcp_nodelay = FALSE;
 struct in_addr opt_bind_addr;
 int opt_readable_executables = FALSE;
 char *opt_pid_file = NULL;
@@ -208,7 +210,7 @@ static void parse_options(int argc, char
 {
 
     int opt = 0;
-    char *optstring = "bcC:de:hl:m:n:prstTuwi:x:y:";
+    char *optstring = "bcC:de:hl:m:Nn:prstTuwi:x:y:";
 
     while (opt != -1) {
 	opt = getopt(argc, argv, optstring);
@@ -295,6 +297,9 @@ static void parse_options(int argc, char
 		    exit(1);
 		}
 		break;
+	    case 'N':
+		opt_tcp_nodelay = TRUE;
+		break;
 	    case 'n':
 		opt_nfs_port = strtol(optarg, NULL, 10);
 		if (opt_nfs_port == 0) {
@@ -802,6 +807,8 @@ static SVCXPRT *create_tcp_transport(uns
 	sin.sin_addr.s_addr = opt_bind_addr.s_addr;
 	sock = socket(PF_INET, SOCK_STREAM, 0);
 	setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const char *) &on, sizeof(on));
+	if (opt_tcp_nodelay)
+	    setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on));
 	if (bind(sock, (struct sockaddr *) &sin, sizeof(struct sockaddr))) {
 	    perror("bind");
 	    fprintf(stderr, "Couldn't bind to tcp port %d\n", port);
