Commit 6a54704b authored by Sergey Lyubka's avatar Sergey Lyubka

mg_set_option(): always set correct actual listening port

parent 8a2fbac4
...@@ -502,21 +502,6 @@ static const char *test_rewrites(void) { ...@@ -502,21 +502,6 @@ static const char *test_rewrites(void) {
return NULL; return NULL;
} }
static const char *test_mg_parse_url(void) {
unsigned short port;
char a[100], b[100];
ASSERT(parse_url("", a, sizeof(a), b, sizeof(b), &port) == 0);
ASSERT(parse_url("ws://foo ", a, sizeof(a), b, sizeof(b), &port) == 8);
ASSERT(strcmp(a, "ws") == 0 && strcmp(b, "foo") == 0 && port == 80);
ASSERT(parse_url("xx://y:123 ", a, sizeof(a), b, sizeof(b), &port) == 10);
ASSERT(strcmp(a, "xx") == 0 && strcmp(b, "y") == 0 && port == 123);
ASSERT(parse_url(" foo ", a, sizeof(a), b, sizeof(b), &port) == 0);
ASSERT(parse_url(" foo:44 ", a, sizeof(a), b, sizeof(b), &port) == 0);
ASSERT(parse_url("foo:44 ", a, sizeof(a), b, sizeof(b), &port) == 6);
ASSERT(strcmp(a, "") == 0 && strcmp(b, "foo") == 0 && port == 44);
return NULL;
}
static const char *run_all_tests(void) { static const char *run_all_tests(void) {
RUN_TEST(test_should_keep_alive); RUN_TEST(test_should_keep_alive);
RUN_TEST(test_match_prefix); RUN_TEST(test_match_prefix);
...@@ -533,7 +518,6 @@ static const char *run_all_tests(void) { ...@@ -533,7 +518,6 @@ static const char *run_all_tests(void) {
RUN_TEST(test_mg_set_option); RUN_TEST(test_mg_set_option);
RUN_TEST(test_server); RUN_TEST(test_server);
RUN_TEST(test_rewrites); RUN_TEST(test_rewrites);
RUN_TEST(test_mg_parse_url);
return NULL; return NULL;
} }
......
...@@ -677,8 +677,8 @@ void ns_sock_to_str(sock_t sock, char *buf, size_t len, int flags) { ...@@ -677,8 +677,8 @@ void ns_sock_to_str(sock_t sock, char *buf, size_t len, int flags) {
#endif #endif
} }
if (flags & 2) { if (flags & 2) {
snprintf(buf + strlen(buf), len - (strlen(buf) + 1), ":%d", snprintf(buf + strlen(buf), len - (strlen(buf) + 1), "%s%d",
(int) ntohs(sa.sin.sin_port)); flags & 1 ? ":" : "", (int) ntohs(sa.sin.sin_port));
} }
} }
} }
...@@ -4732,13 +4732,11 @@ const char *mg_set_option(struct mg_server *server, const char *name, ...@@ -4732,13 +4732,11 @@ const char *mg_set_option(struct mg_server *server, const char *name,
if (port < 0) { if (port < 0) {
error_msg = "Cannot bind to port"; error_msg = "Cannot bind to port";
} else { } else {
if (!strcmp(value, "0")) { char buf[100];
char buf[10]; ns_sock_to_str(server->ns_server.listening_sock, buf, sizeof(buf), 2);
mg_snprintf(buf, sizeof(buf), "%d", port);
free(*v); free(*v);
*v = mg_strdup(buf); *v = mg_strdup(buf);
} }
}
#ifndef _WIN32 #ifndef _WIN32
} else if (ind == RUN_AS_USER) { } else if (ind == RUN_AS_USER) {
struct passwd *pw; struct passwd *pw;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment