]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Invoke auth policy callback on URL parse errors
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 4 Mar 2020 09:06:37 +0000 (11:06 +0200)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Fri, 6 Mar 2020 10:53:45 +0000 (10:53 +0000)
Otherwise logins will hang if auth_policy_server_url contains invalid URL.

src/auth/auth-policy.c

index 6318db8bf7ad58b918680a86238add1adf73a0c2..e714a08e4da0e7e2fa52b38c0f5e53105ba06f1b 100644 (file)
@@ -417,10 +417,13 @@ void auth_policy_send_request(struct policy_lookup_ctx *context)
 {
        const char *error;
        struct http_url *url;
+
+       auth_request_ref(context->request);
        if (http_url_parse(context->url, NULL, HTTP_URL_ALLOW_USERINFO_PART,
                           context->pool, &url, &error) != 0) {
                e_error(context->event,
                        "Could not parse url %s: %s", context->url, error);
+               auth_policy_callback(context);
                auth_policy_finish(context);
                return;
        }
@@ -447,7 +450,6 @@ void auth_policy_send_request(struct policy_lookup_ctx *context)
        http_client_request_set_payload(context->http_request, is, FALSE);
        i_stream_unref(&is);
        http_client_request_submit(context->http_request);
-       auth_request_ref(context->request);
 }
 
 static