summaryrefslogtreecommitdiff
path: root/sys/src/cmd/webfs/url.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2019-03-23 00:49:07 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2019-03-23 00:49:07 +0100
commit151039caf055a741c69656ae9034b4829e4d6c94 (patch)
treeff83464daf054af30218ddfb802cdfb9df287a66 /sys/src/cmd/webfs/url.c
parent1e97adc86b3ca9ef5c9834fa802e4003df1b86e2 (diff)
webfs: bracket literal ipv6 host in "Host:" header
Diffstat (limited to 'sys/src/cmd/webfs/url.c')
-rw-r--r--sys/src/cmd/webfs/url.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/src/cmd/webfs/url.c b/sys/src/cmd/webfs/url.c
index 1f460a8cb..870a3cdc2 100644
--- a/sys/src/cmd/webfs/url.c
+++ b/sys/src/cmd/webfs/url.c
@@ -83,6 +83,14 @@ Nfmt(Fmt *f)
}
int
+Mfmt(Fmt *f)
+{
+ char *s = va_arg(f->args, char*);
+ fmtprint(f, (*s != '[' && strchr(s, ':') != nil)? "[%s]" : "%s", s);
+ return 0;
+}
+
+int
Ufmt(Fmt *f)
{
char *s;
@@ -101,7 +109,7 @@ Ufmt(Fmt *f)
fmtprint(f, "@");
}
if(u->host){
- fmtprint(f, strchr(u->host, ':') ? "[%s]" : "%s", u->host);
+ fmtprint(f, "%]", u->host);
if(u->port)
fmtprint(f, ":%s", u->port);
}