dovecot-2.2: lib-http: http_url_parse() now returns the http_url...
dovecot at dovecot.org
dovecot at dovecot.org
Thu Nov 29 01:57:50 EET 2012
details: http://hg.dovecot.org/dovecot-2.2/rev/c9f6deb65d7b
changeset: 15431:c9f6deb65d7b
user: Timo Sirainen <tss at iki.fi>
date: Thu Nov 29 01:57:40 2012 +0200
description:
lib-http: http_url_parse() now returns the http_url allocated from given memory pool.
diffstat:
src/lib-http/http-client-request.c | 3 ++-
src/lib-http/http-url.c | 6 +++---
src/lib-http/http-url.h | 2 +-
src/lib-http/test-http-url.c | 8 +++++---
4 files changed, 11 insertions(+), 8 deletions(-)
diffs (81 lines):
diff -r 22799e820158 -r c9f6deb65d7b src/lib-http/http-client-request.c
--- a/src/lib-http/http-client-request.c Wed Nov 28 09:14:33 2012 +0200
+++ b/src/lib-http/http-client-request.c Thu Nov 29 01:57:40 2012 +0200
@@ -320,7 +320,8 @@
unsigned int newport;
/* parse URL */
- if (http_url_parse(location, NULL, 0, &url, &error) < 0) {
+ if (http_url_parse(location, NULL, 0,
+ pool_datastack_create(), &url, &error) < 0) {
http_client_request_error(req, HTTP_CLIENT_REQUEST_ERROR_INVALID_REDIRECT,
t_strdup_printf("Invalid redirect location: %s", error));
return;
diff -r 22799e820158 -r c9f6deb65d7b src/lib-http/http-url.c
--- a/src/lib-http/http-url.c Wed Nov 28 09:14:33 2012 +0200
+++ b/src/lib-http/http-url.c Thu Nov 29 01:57:40 2012 +0200
@@ -209,7 +209,7 @@
/* Public API */
int http_url_parse(const char *url, struct http_url *base,
- enum http_url_parse_flags flags,
+ enum http_url_parse_flags flags, pool_t pool,
struct http_url **url_r, const char **error_r)
{
struct http_url_parser url_parser;
@@ -219,9 +219,9 @@
i_assert((flags & HTTP_URL_PARSE_SCHEME_EXTERNAL) == 0 || base == NULL);
memset(&url_parser, '\0', sizeof(url_parser));
- uri_parser_init(&url_parser.parser, pool_datastack_create(), url);
+ uri_parser_init(&url_parser.parser, pool, url);
- url_parser.url = t_new(struct http_url, 1);
+ url_parser.url = p_new(pool, struct http_url, 1);
url_parser.base = base;
url_parser.flags = flags;
diff -r 22799e820158 -r c9f6deb65d7b src/lib-http/http-url.h
--- a/src/lib-http/http-url.h Wed Nov 28 09:14:33 2012 +0200
+++ b/src/lib-http/http-url.h Thu Nov 29 01:57:40 2012 +0200
@@ -34,7 +34,7 @@
};
int http_url_parse(const char *url, struct http_url *base,
- enum http_url_parse_flags flags,
+ enum http_url_parse_flags flags, pool_t pool,
struct http_url **url_r, const char **error_r);
/*
diff -r 22799e820158 -r c9f6deb65d7b src/lib-http/test-http-url.c
--- a/src/lib-http/test-http-url.c Wed Nov 28 09:14:33 2012 +0200
+++ b/src/lib-http/test-http-url.c Thu Nov 29 01:57:40 2012 +0200
@@ -269,7 +269,7 @@
test_begin(t_strdup_printf("http url valid [%d]", i));
if (urlb->host_name == NULL) urlb = NULL;
- if (http_url_parse(url, urlb, flags, &urlp, &error) < 0)
+ if (http_url_parse(url, urlb, flags, pool_datastack_create(), &urlp, &error) < 0)
urlp = NULL;
test_out_reason(t_strdup_printf("http_url_parse(%s)",
@@ -396,7 +396,8 @@
test_begin(t_strdup_printf("http url invalid [%d]", i));
- if (http_url_parse(url, urlb, flags, &urlp, &error) < 0)
+ if (http_url_parse(url, urlb, flags,
+ pool_datastack_create(), &urlp, &error) < 0)
urlp = NULL;
test_out_reason(t_strdup_printf("parse %s", url), urlp == NULL, error);
@@ -435,7 +436,8 @@
test_begin(t_strdup_printf("http url parse/create [%d]", i));
if (http_url_parse
- (url, NULL, HTTP_URL_ALLOW_FRAGMENT_PART, &urlp, &error) < 0)
+ (url, NULL, HTTP_URL_ALLOW_FRAGMENT_PART,
+ pool_datastack_create(), &urlp, &error) < 0)
urlp = NULL;
test_out_reason(t_strdup_printf("parse %s", url), urlp != NULL, error);
if (urlp != NULL) {
More information about the dovecot-cvs
mailing list