diff options
-rw-r--r-- | src/tcp_socket.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/tcp_socket.cpp b/src/tcp_socket.cpp index 6df9ef6..5c7d60d 100644 --- a/src/tcp_socket.cpp +++ b/src/tcp_socket.cpp @@ -38,6 +38,21 @@ int zmq::tcp_socket_t::open (fd_t fd_, uint64_t sndbuf_, uint64_t rcvbuf_) { zmq_assert (s == retired_fd); s = fd_; + + if (sndbuf_) { + int sz = (int) sndbuf_; + int rc = setsockopt (s, SOL_SOCKET, SO_SNDBUF, + (char*) &sz, sizeof (int)); + errno_assert (rc == 0); + } + + if (rcvbuf_) { + int sz = (int) rcvbuf_; + int rc = setsockopt (s, SOL_SOCKET, SO_RCVBUF, + (char*) &sz, sizeof (int)); + errno_assert (rc == 0); + } + return 0; } |