From: Richard Mudgett Date: Tue, 14 Jun 2011 17:21:39 +0000 (+0000) Subject: Made ast_sockaddr_split_hostport() port warning msgs more meaningful. X-Git-Tag: 1.8.5-rc1~11^2~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0fe02d01838beca4167e36e2f6fee495888e9fb1;p=thirdparty%2Fasterisk.git Made ast_sockaddr_split_hostport() port warning msgs more meaningful. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@323394 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/netsock2.c b/main/netsock2.c index f57c8425ab..b6c6d89d42 100644 --- a/main/netsock2.c +++ b/main/netsock2.c @@ -121,8 +121,10 @@ char *ast_sockaddr_stringify_fmt(const struct ast_sockaddr *sa, int format) int ast_sockaddr_split_hostport(char *str, char **host, char **port, int flags) { char *s = str; + char *orig_str = str;/* Original string in case the port presence is incorrect. */ + char *host_end = NULL;/* Delay terminating the host in case the port presence is incorrect. */ - ast_debug(5, "Splitting '%s' gives...\n", str); + ast_debug(5, "Splitting '%s' into...\n", str); *host = NULL; *port = NULL; if (*s == '[') { @@ -130,7 +132,8 @@ int ast_sockaddr_split_hostport(char *str, char **host, char **port, int flags) for (; *s && *s != ']'; ++s) { } if (*s == ']') { - *s++ = '\0'; + host_end = s; + ++s; } if (*s == ':') { *port = s + 1; @@ -148,11 +151,10 @@ int ast_sockaddr_split_hostport(char *str, char **host, char **port, int flags) } } if (*port) { - **port = '\0'; + host_end = *port; ++*port; } } - ast_debug(5, "...host '%s' and port '%s'.\n", *host, *port); switch (flags & PARSE_PORT_MASK) { case PARSE_PORT_IGNORE: @@ -160,18 +162,23 @@ int ast_sockaddr_split_hostport(char *str, char **host, char **port, int flags) break; case PARSE_PORT_REQUIRE: if (*port == NULL) { - ast_log(LOG_WARNING, "missing port\n"); + ast_log(LOG_WARNING, "Port missing in %s\n", orig_str); return 0; } break; case PARSE_PORT_FORBID: if (*port != NULL) { - ast_log(LOG_WARNING, "port disallowed\n"); + ast_log(LOG_WARNING, "Port disallowed in %s\n", orig_str); return 0; } break; } + /* Can terminate the host string now if needed. */ + if (host_end) { + *host_end = '\0'; + } + ast_debug(5, "...host '%s' and port '%s'.\n", *host, *port ? *port : ""); return 1; }