aboutsummaryrefslogtreecommitdiffstats
path: root/common/network
diff options
context:
space:
mode:
authorPeter Åstrand (astrand) <astrand@cendio.se>2017-10-10 12:56:04 +0200
committerPeter Åstrand (astrand) <astrand@cendio.se>2017-11-08 10:40:12 +0100
commit01dc1a67dc5afad21822930d34b2b44eec414790 (patch)
tree2474cb838280811aa003e32e82e7a017597c4166 /common/network
parent3112f50062d57835148b5540cce1be5fa63a512b (diff)
downloadtigervnc-01dc1a67dc5afad21822930d34b2b44eec414790.tar.gz
tigervnc-01dc1a67dc5afad21822930d34b2b44eec414790.zip
Define cork() as pure virtual in Socket class
This makes it possible to create a derived class from Socket which is not TCP based, without having VNCSConnectionST.cxx trying to call setsockopt() on a non-socket.
Diffstat (limited to 'common/network')
-rw-r--r--common/network/Socket.h1
-rw-r--r--common/network/TcpSocket.cxx4
-rw-r--r--common/network/TcpSocket.h2
3 files changed, 4 insertions, 3 deletions
diff --git a/common/network/Socket.h b/common/network/Socket.h
index 874a59cd..7a30cacf 100644
--- a/common/network/Socket.h
+++ b/common/network/Socket.h
@@ -50,6 +50,7 @@ namespace network {
// if shutdown() is overridden then the override MUST call on to here
virtual void shutdown() {isShutdown_ = true;}
bool isShutdown() const {return isShutdown_;}
+ virtual bool cork(bool enable) = 0;
// information about this end of the socket
virtual int getMyPort() = 0;
diff --git a/common/network/TcpSocket.cxx b/common/network/TcpSocket.cxx
index cf03c10d..9603c385 100644
--- a/common/network/TcpSocket.cxx
+++ b/common/network/TcpSocket.cxx
@@ -349,12 +349,12 @@ bool TcpSocket::enableNagles(int sock, bool enable) {
return true;
}
-bool TcpSocket::cork(int sock, bool enable) {
+bool TcpSocket::cork(bool enable) {
#ifndef TCP_CORK
return false;
#else
int one = enable ? 1 : 0;
- if (setsockopt(sock, IPPROTO_TCP, TCP_CORK, (char *)&one, sizeof(one)) < 0)
+ if (setsockopt(getFd(), IPPROTO_TCP, TCP_CORK, (char *)&one, sizeof(one)) < 0)
return false;
return true;
#endif
diff --git a/common/network/TcpSocket.h b/common/network/TcpSocket.h
index a97e6839..c1b142ff 100644
--- a/common/network/TcpSocket.h
+++ b/common/network/TcpSocket.h
@@ -62,9 +62,9 @@ namespace network {
virtual bool sameMachine();
virtual void shutdown();
+ virtual bool cork(bool enable);
static bool enableNagles(int sock, bool enable);
- static bool cork(int sock, bool enable);
static bool isListening(int sock);
static int getSockPort(int sock);
private: