diff options
-rw-r--r-- | degesch.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -4385,7 +4385,7 @@ irc_on_connector_connected (void *user_data, int socket) static void irc_split_host_port (char *s, char **host, char **port) { - char *colon = strchr (s, ':'); + char *colon = strrchr (s, ':'); if (colon) { *colon = '\0'; @@ -4394,6 +4394,11 @@ irc_split_host_port (char *s, char **host, char **port) else *port = "6667"; + // Unwrap IPv6 addresses in format_host_port_pair() format + size_t host_end = strlen (s) - 1; + if (*s == '[' && s[host_end] == ']') + s++[host_end] = '\0'; + *host = s; } |