aboutsummaryrefslogtreecommitdiff
path: root/src/util/network.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2009-10-17 21:20:13 +0000
committerChristian Grothoff <christian@grothoff.org>2009-10-17 21:20:13 +0000
commite23e73bc2790e1185957157bc04675ba94ea9032 (patch)
tree75aeccdd531fff75816480741eacb02dc2371afb /src/util/network.c
parent2936a30e0ae70b8d1a984914f93113716a8bc620 (diff)
downloadgnunet-e23e73bc2790e1185957157bc04675ba94ea9032.tar.gz
gnunet-e23e73bc2790e1185957157bc04675ba94ea9032.zip
use nodelay for a MAJOR performance boost for GNUnet code
Diffstat (limited to 'src/util/network.c')
-rw-r--r--src/util/network.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/util/network.c b/src/util/network.c
index 5ba849138..07364a36b 100644
--- a/src/util/network.c
+++ b/src/util/network.c
@@ -125,6 +125,23 @@ socket_set_inheritable (const struct GNUNET_NETWORK_Handle
125 125
126 126
127/** 127/**
128 * Disable delays when sending data via the socket.
129 * (GNUnet makes sure that messages are as big as
130 * possible already).
131 *
132 * @param h the socket to make non-delaying
133 */
134static void
135socket_set_nodelay (const struct GNUNET_NETWORK_Handle
136 *h)
137{
138 int value = 1;
139 setsockopt (h->fd, IPPROTO_TCP, TCP_NODELAY, &value, sizeof(value));
140}
141
142
143
144/**
128 * accept a new connection on a socket 145 * accept a new connection on a socket
129 * 146 *
130 * @param desc bound socket 147 * @param desc bound socket
@@ -170,6 +187,7 @@ GNUNET_NETWORK_socket_accept (const struct GNUNET_NETWORK_Handle *desc,
170 GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, 187 GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
171 "socket_set_inheritable"); 188 "socket_set_inheritable");
172#endif 189#endif
190 socket_set_nodelay (ret);
173 return ret; 191 return ret;
174} 192}
175 193
@@ -476,6 +494,8 @@ GNUNET_NETWORK_socket_create (int domain, int type, int protocol)
476 GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, 494 GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
477 "socket_set_inheritable"); 495 "socket_set_inheritable");
478#endif 496#endif
497 if (type == SOCK_STREAM)
498 socket_set_nodelay (ret);
479 499
480 return ret; 500 return ret;
481} 501}