]> rtime.felk.cvut.cz Git - frescor/forb.git/blobdiff - src/proto_inet.c
Fixed warnings on printf() on 64 bit systems
[frescor/forb.git] / src / proto_inet.c
index a5b616f699d8a9a47bfa4502f6b21f10702784c9..a97b20d417974fad82418b2ffcce0b43046d7e9f 100644 (file)
@@ -61,6 +61,7 @@
 #include <forb/config.h>
 #include "discovery.h"
 #include <stdlib.h>
+#include <netinet/tcp.h>
 #include "iop.h" /* FIXME: Sending hello should be handled in IOP layer */
 
 /**
@@ -147,7 +148,23 @@ inet_deserialize_addr(FORB_CDR_Codec *codec, void **addr)
        return ret;
 }
 
-int setnonblocking(int fd);
+static int
+setnonblocking(int fd);
+
+static int
+setnodelay(int fd)
+{
+       int ret = 0;
+#if 0                          /* For nice graphs in benchmarks */
+       int yes = 1;
+       ret = setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &yes, sizeof(yes));
+       if (ret < 0) {
+               ul_logerr("setsockopt(TCP_NODELAY): %s\n", strerror(errno));
+       }
+#endif
+       return ret;
+       
+}
 
 static int
 inet_connect(forb_peer_t *peer)
@@ -180,6 +197,7 @@ inet_connect(forb_peer_t *peer)
        }
 
        setnonblocking(ipeer->socket);
+       setnodelay(ipeer->socket);
 
        struct epoll_event ev;
        struct inet_port *p = peer->port->desc.proto_priv;
@@ -226,7 +244,7 @@ inet_send(forb_peer_t *peer, const void *buf, size_t len)
        }
 
        sent = 0;
-       ul_logtrash("send fd=%d len=%d\n", ipeer->socket, len);
+       ul_logtrash("send fd=%d len=%zu\n", ipeer->socket, len);
        do {
                ret = send(ipeer->socket, buf, len, 0);
                if (ret < 0) {
@@ -288,6 +306,7 @@ inet_accept_connection(forb_port_t *port)
                close(client);
                return -1;
        }
+       setnodelay(client);
 
        peer = forb_peer_new();
        if (peer) {
@@ -386,7 +405,7 @@ inet_recv(forb_port_t *port, void *buf, size_t len)
                        iport->last_recv_fd = -1;
                        continue;
                }
-               ul_logtrash("recv fd=%d len=%d\n", iport->last_recv_fd, ret);
+               ul_logtrash("recv fd=%d len=%zd\n", iport->last_recv_fd, ret);
                return ret;
        }
 #else