lib/url: Add pb_url_to_string
authorJeremy Kerr <jk@ozlabs.org>
Thu, 2 May 2013 09:46:56 +0000 (17:46 +0800)
committerJeremy Kerr <jk@ozlabs.org>
Wed, 15 May 2013 06:50:45 +0000 (14:50 +0800)
Add a function to unparse a URL, to make comparisons in tests easy.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
lib/url/url.c
lib/url/url.h

index 1e69774efb4e2a230d8cf24ca0dcd1973b699dcf..42bd4a1afb0e3e5bae5c8db61e2d316d06234c92 100644 (file)
@@ -242,18 +242,21 @@ static bool is_url(const char *str)
        return strstr(str, "://") != NULL;
 }
 
-static void pb_url_update_full(struct pb_url *url)
+char *pb_url_to_string(struct pb_url *url)
 {
        const struct pb_scheme_info *scheme = pb_url_scheme_info(url->scheme);
-
        assert(scheme);
 
-       talloc_free(url->full);
-
-       url->full = talloc_asprintf(url, "%s://%s%s", scheme->str,
+       return talloc_asprintf(url, "%s://%s%s", scheme->str,
                        scheme->has_host ? url->host : "", url->path);
 }
 
+static void pb_url_update_full(struct pb_url *url)
+{
+       talloc_free(url->full);
+       url->full = pb_url_to_string(url);
+}
+
 static struct pb_url *pb_url_copy(void *ctx, const struct pb_url *url)
 {
        struct pb_url *new_url;
index 40c11645877907d67617c23866799d1c6b3010df..997cdcb1333465889a561bf1115449cc51c0c6c0 100644 (file)
@@ -60,6 +60,7 @@ struct pb_url {
 
 struct pb_url *pb_url_parse(void *ctx, const char *url_str);
 struct pb_url *pb_url_join(void *ctx, const struct pb_url *url, const char *s);
+char *pb_url_to_string(struct pb_url *url);
 
 const char *pb_url_scheme_name(enum pb_url_scheme scheme);