--- lib/cpp/src/server/TNonblockingServer.cpp +++ lib/cpp/src/server/TNonblockingServer.cpp @@ -622,8 +622,8 @@ hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG; sprintf(port, "%d", port_); - // Wildcard address - error = getaddrinfo(NULL, port, &hints, &res0); + // Wildcard or specified address + error = getaddrinfo(host_ == "" || host_ =="*"? NULL : host_.c_str(), port, &hints, &res0); if (error) { string errStr = "TNonblockingServer::serve() getaddrinfo " + string(gai_strerror(error)); GlobalOutput(errStr.c_str()); --- lib/cpp/src/server/TNonblockingServer.h +++ lib/cpp/src/server/TNonblockingServer.h @@ -65,6 +65,9 @@ // Server socket file descriptor int serverSocket_; + // Host server runs on + std::string host_; + // Port server runs on int port_; @@ -117,10 +120,12 @@ TNonblockingServer(boost::shared_ptr processor, boost::shared_ptr protocolFactory, + std::string host, int port, boost::shared_ptr threadManager = boost::shared_ptr()) : TServer(processor), serverSocket_(-1), + host_(host), port_(port), threadManager_(threadManager), eventBase_(NULL),