Use abstract SocketListener class
Makes the code more general and not directly tied to specifically
TCP sockets.
diff --git a/common/network/Socket.h b/common/network/Socket.h
index 7a30cac..382b270 100644
--- a/common/network/Socket.h
+++ b/common/network/Socket.h
@@ -99,6 +99,8 @@
// if one is installed. Otherwise, returns 0.
virtual Socket* accept() = 0;
+ virtual int getMyPort() = 0;
+
// setFilter() applies the specified filter to all new connections
void setFilter(ConnectionFilter* f) {filter = f;}
int getFd() {return fd;}
diff --git a/common/network/TcpSocket.cxx b/common/network/TcpSocket.cxx
index 9603c38..4287132 100644
--- a/common/network/TcpSocket.cxx
+++ b/common/network/TcpSocket.cxx
@@ -532,7 +532,7 @@
}
-void network::createLocalTcpListeners(std::list<TcpListener*> *listeners,
+void network::createLocalTcpListeners(std::list<SocketListener*> *listeners,
int port)
{
struct addrinfo ai[2];
@@ -562,7 +562,7 @@
createTcpListeners(listeners, ai);
}
-void network::createTcpListeners(std::list<TcpListener*> *listeners,
+void network::createTcpListeners(std::list<SocketListener*> *listeners,
const char *addr,
int port)
{
@@ -594,11 +594,11 @@
}
}
-void network::createTcpListeners(std::list<TcpListener*> *listeners,
+void network::createTcpListeners(std::list<SocketListener*> *listeners,
const struct addrinfo *ai)
{
const struct addrinfo *current;
- std::list<TcpListener*> new_listeners;
+ std::list<SocketListener*> new_listeners;
initSockets();
diff --git a/common/network/TcpSocket.h b/common/network/TcpSocket.h
index c1b142f..74ff4c5 100644
--- a/common/network/TcpSocket.h
+++ b/common/network/TcpSocket.h
@@ -80,16 +80,17 @@
virtual void shutdown();
virtual Socket* accept();
+ virtual int getMyPort();
+
static void getMyAddresses(std::list<char*>* result);
- int getMyPort();
};
- void createLocalTcpListeners(std::list<TcpListener*> *listeners,
+ void createLocalTcpListeners(std::list<SocketListener*> *listeners,
int port);
- void createTcpListeners(std::list<TcpListener*> *listeners,
+ void createTcpListeners(std::list<SocketListener*> *listeners,
const char *addr,
int port);
- void createTcpListeners(std::list<TcpListener*> *listeners,
+ void createTcpListeners(std::list<SocketListener*> *listeners,
const struct addrinfo *ai);
typedef struct vnc_sockaddr {