From 4372118a2371db2efbb7b2de9134850ec0bae1f8 Mon Sep 17 00:00:00 2001
From: Irene Y Zhang <iyzhang@cs.washington.edu>
Date: Fri, 13 May 2016 14:55:57 -0700
Subject: [PATCH] turning off Nagle algorithm

---
 lib/tcptransport.cc | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/lib/tcptransport.cc b/lib/tcptransport.cc
index 3216ba4..63faccc 100644
--- a/lib/tcptransport.cc
+++ b/lib/tcptransport.cc
@@ -271,6 +271,13 @@ TCPTransport::Register(TransportReceiver *receiver,
         PWarning("Failed to set SO_REUSEADDR on TCP listening socket");
     }
 
+    // Set TCP_NODELAY
+    n = 1;
+    if (setsockopt(fd, IPPROTO_TCP,
+                   TCP_NODELAY, (char *)&n, sizeof(n)) < 0) {
+        PWarning("Failed to set TCP_NODELAY on TCP listening socket");
+    }
+
     // Registering a replica. Bind socket to the designated
     // host/port
     const string &host = config.replica(replicaIdx).host;
@@ -555,6 +562,9 @@ TCPTransport::TCPReadableCallback(struct bufferevent *bev, void *arg)
     
     uint32_t *magic;
     magic = (uint32_t *)evbuffer_pullup(evbuf, sizeof(*magic));
+    if (magic == NULL) {
+        return;
+    }
     ASSERT(*magic == MAGIC);
     
     size_t *sz;
-- 
GitLab