diff --git a/tdnet/td/net/TcpListener.cpp b/tdnet/td/net/TcpListener.cpp index e6161811c..d211e590f 100644 --- a/tdnet/td/net/TcpListener.cpp +++ b/tdnet/td/net/TcpListener.cpp @@ -11,7 +11,10 @@ namespace td { -TcpListener::TcpListener(int port, ActorShared callback) : port_(port), callback_(std::move(callback)) { + + +TcpListener::TcpListener(int port, ActorShared callback, Slice server_address) : + port_(port), callback_(std::move(callback)), server_address_(server_address.str()) { } void TcpListener::hangup() { @@ -19,7 +22,7 @@ void TcpListener::hangup() { } void TcpListener::start_up() { - auto r_socket = ServerSocketFd::open(port_); + auto r_socket = ServerSocketFd::open(port_, server_address_); if (r_socket.is_error()) { LOG(ERROR) << "Can't open server socket: " << r_socket.error(); set_timeout_in(5); diff --git a/tdnet/td/net/TcpListener.h b/tdnet/td/net/TcpListener.h index dfbed9a59..8577aa26d 100644 --- a/tdnet/td/net/TcpListener.h +++ b/tdnet/td/net/TcpListener.h @@ -20,13 +20,14 @@ class TcpListener final : public Actor { virtual void accept(SocketFd fd) = 0; }; - TcpListener(int port, ActorShared callback); + TcpListener(int port, ActorShared callback, Slice server_address = Slice("0.0.0.0")); void hangup() override; private: int port_; ServerSocketFd server_fd_; ActorShared callback_; + const string server_address_; void start_up() override; void tear_down() override; void loop() override;