From a49c8676d8f90079222a0df80b11e775d767ca45 Mon Sep 17 00:00:00 2001 From: Kunoi Sayami <46131041+KunoiSayami@users.noreply.github.com> Date: Tue, 10 Nov 2020 04:46:07 +0800 Subject: [PATCH] Add parameters specify tcp server bind ip address (#1287) --- tdnet/td/net/TcpListener.cpp | 7 +++++-- tdnet/td/net/TcpListener.h | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) 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;