Merge branch 'puscas-port_in_use'

This commit is contained in:
Tatsuhiro Tsujikawa 2018-11-23 11:00:39 +09:00
commit eb6792533d
6 changed files with 20 additions and 0 deletions

View File

@ -200,6 +200,15 @@ server::io_services() const {
return io_service_pool_.io_services(); return io_service_pool_.io_services();
} }
const std::vector<int> server::ports() const {
auto ports = std::vector<int>(acceptors_.size());
auto index = 0;
for (const auto &acceptor : acceptors_) {
ports[index++] = acceptor.local_endpoint().port();
}
return ports;
}
} // namespace server } // namespace server
} // namespace asio_http2 } // namespace asio_http2
} // namespace nghttp2 } // namespace nghttp2

View File

@ -79,6 +79,9 @@ public:
const std::vector<std::shared_ptr<boost::asio::io_service>> & const std::vector<std::shared_ptr<boost::asio::io_service>> &
io_services() const; io_services() const;
/// Returns a vector with all the acceptors ports in use.
const std::vector<int> ports() const;
private: private:
/// Initiate an asynchronous accept operation. /// Initiate an asynchronous accept operation.
void start_accept(tcp::acceptor &acceptor, serve_mux &mux); void start_accept(tcp::acceptor &acceptor, serve_mux &mux);

View File

@ -90,6 +90,8 @@ http2::io_services() const {
return impl_->io_services(); return impl_->io_services();
} }
std::vector<int> http2::ports() const { return impl_->ports(); }
} // namespace server } // namespace server
} // namespace asio_http2 } // namespace asio_http2

View File

@ -78,6 +78,8 @@ http2_impl::io_services() const {
return server_->io_services(); return server_->io_services();
} }
std::vector<int> http2_impl::ports() const { return server_->ports(); }
} // namespace server } // namespace server
} // namespace asio_http2 } // namespace asio_http2

View File

@ -54,6 +54,7 @@ public:
void join(); void join();
const std::vector<std::shared_ptr<boost::asio::io_service>> & const std::vector<std::shared_ptr<boost::asio::io_service>> &
io_services() const; io_services() const;
std::vector<int> ports() const;
private: private:
std::unique_ptr<server> server_; std::unique_ptr<server> server_;

View File

@ -214,6 +214,9 @@ public:
const std::vector<std::shared_ptr<boost::asio::io_service>> & const std::vector<std::shared_ptr<boost::asio::io_service>> &
io_services() const; io_services() const;
// Returns a vector with the ports in use
std::vector<int> ports() const;
private: private:
std::unique_ptr<http2_impl> impl_; std::unique_ptr<http2_impl> impl_;
}; };