From 2cce91de9a69e9bf395ddab6dbb99e363447d543 Mon Sep 17 00:00:00 2001 From: Sergey Lyubka <valenok@gmail.com> Date: Tue, 14 Oct 2014 14:22:26 +0100 Subject: [PATCH] Refactored code for multiple listeners --- mongoose.c | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/mongoose.c b/mongoose.c index 46b7e66ad..76efa7a3b 100644 --- a/mongoose.c +++ b/mongoose.c @@ -4946,22 +4946,6 @@ static void set_default_option_values(char **opts) { } } -static const char *add_listener(struct mg_server *server, char **v, - const char *value) { - const char *error_msg = NULL; - struct ns_connection *c; - - if ((c = ns_bind(&server->ns_mgr, value, mg_ev_handler, NULL)) == NULL) { - error_msg = "Cannot bind to port"; - } else { - char buf[100]; - ns_sock_to_str(c->sock, buf, sizeof(buf), 2); - free(*v); - *v = mg_strdup(buf); - } - return error_msg; -} - const char *mg_set_option(struct mg_server *server, const char *name, const char *value) { int ind = get_option_index(name); @@ -4989,8 +4973,18 @@ const char *mg_set_option(struct mg_server *server, const char *name, if (ind == LISTENING_PORT) { struct vec vec; - while (!error_msg && (value = next_option(value, &vec, NULL)) != NULL) { - error_msg = add_listener(server, v, vec.ptr); + while ((value = next_option(value, &vec, NULL)) != NULL) { + struct ns_connection *c = ns_bind(&server->ns_mgr, vec.ptr, + mg_ev_handler, NULL); + if (c== NULL) { + error_msg = "Cannot bind to port"; + break; + } else { + char buf[100]; + ns_sock_to_str(c->sock, buf, sizeof(buf), 2); + free(*v); + *v = mg_strdup(buf); + } } #ifndef MONGOOSE_NO_FILESYSTEM } else if (ind == HEXDUMP_FILE) { -- GitLab