File tree Expand file tree Collapse file tree 4 files changed +39
-0
lines changed Expand file tree Collapse file tree 4 files changed +39
-0
lines changed Original file line number Diff line number Diff line change @@ -69,6 +69,8 @@ namespace kiwix
6969 int getPort () const ;
7070 IpAddress getAddress () const ;
7171 IpMode getIpMode () const ;
72+ std::string getDisplayableAddress ();
73+ std::string getDisplayableAddress6 ();
7274
7375 protected:
7476 std::shared_ptr<Library> mp_library;
Original file line number Diff line number Diff line change @@ -106,4 +106,27 @@ IpMode Server::getIpMode() const
106106 return mp_server->getIpMode ();
107107}
108108
109+ std::string Server::getDisplayableAddress ()
110+ {
111+ kiwix::IpAddress addresses = Server::getAddress ();
112+ if (addresses.addr .empty ()) return getDisplayableAddress6 (); // as a fallback return ipv6 address as one of them has to be set
113+
114+ std::string result = " http://" ;
115+ std::string suffix=mp_server->getSuffixOfRootUrlWithPort ();
116+
117+ result = result + addresses.addr + suffix;
118+ return result;
119+ }
120+
121+ std::string Server::getDisplayableAddress6 ()
122+ {
123+ kiwix::IpAddress addresses = Server::getAddress ();
124+ if (addresses.addr6 .empty ()) return getDisplayableAddress (); // as a fallback return ipv4 address as one of them has to be set
125+
126+ std::string result = " http://" ;
127+ std::string suffix=mp_server->getSuffixOfRootUrlWithPort ();
128+
129+ result = result + " [" + addresses.addr6 + " ]" + suffix;
130+ return result;
109131}
132+ }
Original file line number Diff line number Diff line change @@ -272,6 +272,19 @@ struct NoDelete
272272
273273} // unnamed namespace
274274
275+ std::string InternalServer::getSuffixOfRootUrlWithPort ()
276+ {
277+ std::string suffix;
278+ if (m_port == 80 )
279+ {
280+ suffix = m_rootPrefixOfDecodedURL;
281+ } else
282+ {
283+ suffix = " :" + std::to_string (m_port) + m_rootPrefixOfDecodedURL;
284+ }
285+ return suffix;
286+ }
287+
275288std::pair<std::string, Library::BookIdSet> InternalServer::selectBooks (const RequestContext& request) const
276289{
277290 // Try old API
Original file line number Diff line number Diff line change @@ -124,6 +124,7 @@ class InternalServer {
124124 IpAddress getAddress () const { return m_addr; }
125125 int getPort () const { return m_port; }
126126 IpMode getIpMode () const { return m_ipMode; }
127+ std::string getSuffixOfRootUrlWithPort ();
127128
128129 private: // functions
129130 std::unique_ptr<Response> handle_request (const RequestContext& request);
You can’t perform that action at this time.
0 commit comments