diff --git a/src/lib/http/listener.cc b/src/lib/http/listener.cc index 3cc8ec944d..544a4b46e7 100644 --- a/src/lib/http/listener.cc +++ b/src/lib/http/listener.cc @@ -42,6 +42,11 @@ HttpListener::getLocalPort() const { return (impl_->getEndpoint().getPort()); } +int +HttpListener::getNative() const { + return (impl_->getNative()); +} + void HttpListener::start() { impl_->start(); diff --git a/src/lib/http/listener.h b/src/lib/http/listener.h index 6cc1a7d7e3..c05a60d1db 100644 --- a/src/lib/http/listener.h +++ b/src/lib/http/listener.h @@ -115,6 +115,9 @@ public: /// @brief Returns local port on which server is listening. uint16_t getLocalPort() const; + /// @brief file descriptor of the underlying acceptor socket. + int getNative() const; + /// @brief Starts accepting new connections. /// /// This method starts accepting and handling new HTTP connections on diff --git a/src/lib/http/listener_impl.cc b/src/lib/http/listener_impl.cc index 7f28858de2..771b6e9469 100644 --- a/src/lib/http/listener_impl.cc +++ b/src/lib/http/listener_impl.cc @@ -67,6 +67,11 @@ HttpListenerImpl::getEndpoint() const { return (*endpoint_); } +int +HttpListenerImpl::getNative() const { + return (acceptor_ ? acceptor_->getNative() : -1); +} + void HttpListenerImpl::start() { try { diff --git a/src/lib/http/listener_impl.h b/src/lib/http/listener_impl.h index d41ff29901..1608c94553 100644 --- a/src/lib/http/listener_impl.h +++ b/src/lib/http/listener_impl.h @@ -59,6 +59,9 @@ public: /// @brief Returns reference to the current listener endpoint. const asiolink::TCPEndpoint& getEndpoint() const; + /// @brief file descriptor of the underlying acceptor socket. + int getNative() const; + /// @brief Starts accepting new connections. /// /// This method starts accepting and handling new HTTP connections on