diff --git a/include/Prefs.h b/include/Prefs.h index 9f02dff1ad..b4933431aa 100644 --- a/include/Prefs.h +++ b/include/Prefs.h @@ -106,8 +106,9 @@ class Prefs { void setTraceLevelFromRedis(); void setAlertsEnabledFromRedis(); void parseHTTPPort(char *arg); - void bind_http_to_loopback() { http_binding_address = strdup((char*)CONST_LOOPBACK_ADDRESS); }; - void bind_https_to_loopback() { https_binding_address = strdup((char*)CONST_LOOPBACK_ADDRESS); }; + void bind_http_to_loopback() { bind_http_to_address((char*)CONST_LOOPBACK_ADDRESS); }; + void bind_https_to_loopback() { bind_https_to_address((char*)CONST_LOOPBACK_ADDRESS); }; + bool getDefaultBoolPrefsValue(const char *pref_key, const bool default_value); public: @@ -117,6 +118,9 @@ class Prefs { bool is_pro_edition(); bool is_enterprise_edition(); + void bind_http_to_address(char *addr) { if(http_binding_address) free(http_binding_address); http_binding_address = strdup(addr); }; + void bind_https_to_address(char *addr) { if(https_binding_address) free(https_binding_address); https_binding_address = strdup(addr); }; + inline bool is_embedded_edition() { #ifdef NTOPNG_EMBEDDED_EDITION return(true); diff --git a/src/HTTPserver.cpp b/src/HTTPserver.cpp index 9b7f234d9a..5d8ca96bc9 100644 --- a/src/HTTPserver.cpp +++ b/src/HTTPserver.cpp @@ -720,7 +720,10 @@ HTTPserver::HTTPserver(const char *_docs_dir, const char *_scripts_dir) { char tmp[16]; if(ntop->getPrefs()->get_alt_http_port() != 0) - snprintf(tmp, sizeof(tmp), ",%d", ntop->getPrefs()->get_alt_http_port()); + snprintf(tmp, sizeof(tmp), ",%s%s%d", + http_binding_addr, + (http_binding_addr[0] == '\0') ? "" : ":", + ntop->getPrefs()->get_alt_http_port()); else tmp[0] = '\0'; diff --git a/src/Ntop.cpp b/src/Ntop.cpp index 43faaba61e..edf0aaffe1 100644 --- a/src/Ntop.cpp +++ b/src/Ntop.cpp @@ -338,6 +338,7 @@ void Ntop::start() { iface[i]->startPacketPolling(); } + registerHTTPserver(new HTTPserver(prefs->get_docs_dir(), prefs->get_scripts_dir())); sleep(2); address->startResolveAddressLoop(); diff --git a/src/main.cpp b/src/main.cpp index 0a55867c0c..28d60e0c2a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -270,8 +270,6 @@ int main(int argc, char *argv[]) ntop->loadGeolocation(prefs->get_docs_dir()); ntop->loadMacManufacturers(prefs->get_docs_dir()); - ntop->registerHTTPserver(new HTTPserver(prefs->get_docs_dir(), - prefs->get_scripts_dir())); /* If mysql flows dump is enabled, then it is necessary to create