diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2016-05-30 12:57:55 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2016-05-30 12:57:59 +0200 |
commit | 5d51fe80c6250c60adbf0b83f5e3cf40088973f7 (patch) | |
tree | c0a6c301ea118d73b45a1318e42259b9e9ad444c /src/socket.c | |
parent | 0767d02d7459ebad93e061b5b509dead59f68609 (diff) | |
download | gnutls-5d51fe80c6250c60adbf0b83f5e3cf40088973f7.tar.gz |
tools: allow specifying a hostname with a port attached
That is: gnutls-cli www.example.com:443 is equivalent to
gnutls-cli www.example.com -p 443
Diffstat (limited to 'src/socket.c')
-rw-r--r-- | src/socket.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/socket.c b/src/socket.c index 979c387ba9..ddf9b0aec7 100644 --- a/src/socket.c +++ b/src/socket.c @@ -333,6 +333,24 @@ void socket_bye(socket_st * socket) socket->secure = 0; } +/* Handle host:port format. + */ +void canonicalize_host(char *hostname, char *service, unsigned service_size) +{ + char *p; + unsigned char buf[sizeof(struct in6_addr)]; + + p = strchr(hostname, ':'); + if (p == NULL) + return; + + if (inet_pton(AF_INET6, hostname, buf) == 1) + return; + + *p = 0; + snprintf(service, service_size, "%s", p+1); +} + void socket_open(socket_st * hd, const char *hostname, const char *service, int udp, const char *msg) |