summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/sys/posix
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-08-05 17:03:16 +0000
committerGordon Sim <gsim@apache.org>2008-08-05 17:03:16 +0000
commitbd47fd629bb2356df93af70b174a6a070f3a58cc (patch)
treec92b2cc932fe806ce9e41521de9f4d01557ec2ba /cpp/src/qpid/sys/posix
parent6bed4cf29dda54560af44d16143fa4b24b65245b (diff)
downloadqpid-python-bd47fd629bb2356df93af70b174a6a070f3a58cc.tar.gz
* revised approach for setting tcp-nodelay on client to avoid breaking platform abstractions
* added ability to set tcp-nodelay on server side of the socket also Merged from r682785. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@682791 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/sys/posix')
-rw-r--r--cpp/src/qpid/sys/posix/Socket.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/cpp/src/qpid/sys/posix/Socket.cpp b/cpp/src/qpid/sys/posix/Socket.cpp
index 65345219f0..415d5293ef 100644
--- a/cpp/src/qpid/sys/posix/Socket.cpp
+++ b/cpp/src/qpid/sys/posix/Socket.cpp
@@ -29,6 +29,7 @@
#include <sys/socket.h>
#include <sys/errno.h>
#include <netinet/in.h>
+#include <netinet/tcp.h>
#include <netdb.h>
#include <cstdlib>
#include <string.h>
@@ -251,9 +252,13 @@ int Socket::getError() const
return result;
}
-void Socket::configure(const Configuration& c)
+void Socket::setTcpNoDelay(bool nodelay) const
{
- c.configurePosixTcpSocket(impl->fd);
+ if (nodelay) {
+ int flag = 1;
+ int result = setsockopt(impl->fd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(flag));
+ QPID_POSIX_CHECK(result);
+ }
}
}} // namespace qpid::sys