From 877514e50fdbfedb5755d5d5c7316d2dd20f8104 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sun, 16 Dec 2001 19:24:44 +0000 Subject: [PATCH] Added url_auto_canonicalize(). --- lib/url.c | 15 ++++++++++++++- lib/url.h | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/url.c b/lib/url.c index 73e3b501..a6dcf7aa 100644 --- a/lib/url.c +++ b/lib/url.c @@ -500,7 +500,7 @@ url_error(uns err) return errmsg[err]; } -/* A "macro" for canonical split */ +/* Standard cookbook recipes */ int url_canon_split(byte *u, byte *buf1, byte *buf2, struct url *url) @@ -516,6 +516,19 @@ url_canon_split(byte *u, byte *buf1, byte *buf2, struct url *url) return url_canonicalize(url); } +int +url_auto_canonicalize(byte *src, byte *dst) +{ + byte buf1[MAX_URL_SIZE], buf2[MAX_URL_SIZE], buf3[MAX_URL_SIZE]; + int err; + struct url ur; + + (void)((err = url_canon_split(src, buf1, buf2, &ur)) || + (err = url_pack(&ur, buf3)) || + (err = url_enescape(buf3, dst))); + return err; +} + /* Testing */ #ifdef TEST diff --git a/lib/url.h b/lib/url.h index 0c275129..baa44f42 100644 --- a/lib/url.h +++ b/lib/url.h @@ -46,6 +46,7 @@ int url_normalize(struct url *, struct url *); int url_canonicalize(struct url *); int url_pack(struct url *, byte *); int url_canon_split(byte *, byte *, byte *, struct url *); +int url_auto_canonicalize(byte *, byte *); uns identify_protocol(byte *); int url_has_repeated_component(byte *url); -- 2.39.2