summaryrefslogtreecommitdiff
path: root/src/socket.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2016-05-30 12:57:55 +0200
committerNikos Mavrogiannopoulos <nmav@redhat.com>2016-05-30 12:57:59 +0200
commit5d51fe80c6250c60adbf0b83f5e3cf40088973f7 (patch)
treec0a6c301ea118d73b45a1318e42259b9e9ad444c /src/socket.c
parent0767d02d7459ebad93e061b5b509dead59f68609 (diff)
downloadgnutls-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.c18
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)