X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=src%2Fweb_server.c;h=593a82a57f4abfd5a9508130a84cd341d73cee63;hb=38ba87238755bb0adceef06cb23483c728fd5fee;hp=20b25f0aa7b30c9a87ed58e2a57b4b76b716c84c;hpb=655715342478c5da5d43c5a8e619bd214585db4d;p=netdata.git diff --git a/src/web_server.c b/src/web_server.c index 20b25f0a..593a82a5 100644 --- a/src/web_server.c +++ b/src/web_server.c @@ -5,7 +5,8 @@ size_t listen_fds_count = 0; int listen_fds[MAX_LISTEN_FDS] = { [0 ... 99] = -1 }; char *listen_fds_names[MAX_LISTEN_FDS] = { [0 ... 99] = NULL }; int listen_port = LISTEN_PORT; -int web_server_mode = WEB_SERVER_MODE_MULTI_THREADED; + +WEB_SERVER_MODE web_server_mode = WEB_SERVER_MODE_MULTI_THREADED; static int shown_server_socket_error = 0; @@ -83,6 +84,29 @@ int accept4(int sock, struct sockaddr *addr, socklen_t *addrlen, int flags) { } #endif +WEB_SERVER_MODE web_server_mode_id(const char *mode) { + if(!strcmp(mode, "none")) + return WEB_SERVER_MODE_NONE; + else if(!strcmp(mode, "single") || !strcmp(mode, "single-threaded")) + return WEB_SERVER_MODE_SINGLE_THREADED; + else // if(!strcmp(mode, "multi") || !strcmp(mode, "multi-threaded")) + return WEB_SERVER_MODE_MULTI_THREADED; +} + +const char *web_server_mode_name(WEB_SERVER_MODE id) { + switch(id) { + case WEB_SERVER_MODE_NONE: + return "none"; + + case WEB_SERVER_MODE_SINGLE_THREADED: + return "single-threaded"; + + default: + case WEB_SERVER_MODE_MULTI_THREADED: + return "multi-threaded"; + } +} + int create_listen_socket4(const char *ip, int port, int listen_backlog) { int sock; int sockopt = 1; @@ -256,7 +280,7 @@ static inline int bind_to_one(const char *definition, int default_port, int list *e = '\0'; } - if(!*ip || *ip == '*' || !strsame(ip, "any") || !strsame(ip, "all")) + if(!*ip || *ip == '*' || !strcmp(ip, "any") || !strcmp(ip, "all")) ip = NULL; if(!*port) port = buffer2; @@ -316,22 +340,16 @@ static inline int bind_to_one(const char *definition, int default_port, int list int create_listen_sockets(void) { shown_server_socket_error = 0; - listen_backlog = (int) config_get_number("global", "http port listen backlog", LISTEN_BACKLOG); - - if(config_exists("global", "bind socket to IP") && !config_exists("global", "bind to")) - config_rename("global", "bind socket to IP", "bind to"); - - if(config_exists("global", "port") && !config_exists("global", "default port")) - config_rename("global", "port", "default port"); + listen_backlog = (int) config_get_number(CONFIG_SECTION_WEB, "listen backlog", LISTEN_BACKLOG); - listen_port = (int) config_get_number("global", "default port", LISTEN_PORT); + listen_port = (int) config_get_number(CONFIG_SECTION_WEB, "default port", LISTEN_PORT); if(listen_port < 1 || listen_port > 65535) { error("Invalid listen port %d given. Defaulting to %d.", listen_port, LISTEN_PORT); - listen_port = (int) config_set_number("global", "default port", LISTEN_PORT); + listen_port = (int) config_set_number(CONFIG_SECTION_WEB, "default port", LISTEN_PORT); } debug(D_OPTIONS, "Default listen port set to %d.", listen_port); - char *s = config_get("global", "bind to", "*"); + char *s = config_get(CONFIG_SECTION_WEB, "bind to", "*"); while(*s) { char *e = s; @@ -614,7 +632,7 @@ void *socket_listen_main_single_threaded(void *ptr) { if (w->mode != WEB_CLIENT_MODE_FILECOPY) { debug(D_WEB_CLIENT, "%llu: Processing received data.", w->id); - web_client_process(w); + web_client_process_request(w); } }