Mercurial > dovecot > core-2.2
changeset 19915:0b2569fca146
doveadm: Don't treat doveadm_api_key differently when it's unset vs set to empty.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Wed, 02 Mar 2016 20:32:25 +0200 |
parents | 2d3f8802f263 |
children | 92ebcea64322 |
files | src/doveadm/client-connection-http.c src/doveadm/doveadm-settings.c |
diffstat | 2 files changed, 4 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/client-connection-http.c Wed Mar 02 17:45:18 2016 +0200 +++ b/src/doveadm/client-connection-http.c Wed Mar 02 20:32:25 2016 +0200 @@ -638,7 +638,7 @@ struct http_auth_credentials creds; /* no authentication specified */ - if (doveadm_settings->doveadm_api_key == NULL && + if (doveadm_settings->doveadm_api_key[0] == '\0' && *conn->client.set->doveadm_password == '\0') { http_server_request_fail_close(conn->http_server_request, 500, "Internal Server Error"); i_error("No authentication defined in configuration. Add API key or password"); @@ -653,7 +653,7 @@ if (strcmp(creds.data, str_c(b64_value)) == 0) auth = TRUE; else i_error("Invalid authencition attempt to HTTP API"); } - else if (strcasecmp(creds.scheme, "X-Doveadm-API") == 0 && doveadm_settings->doveadm_api_key != NULL) { + else if (strcasecmp(creds.scheme, "X-Doveadm-API") == 0 && doveadm_settings->doveadm_api_key[0] != '\0') { string_t *b64_value = str_new(conn->client.pool, 32); base64_encode(doveadm_settings->doveadm_api_key, strlen(doveadm_settings->doveadm_api_key), b64_value); if (strcmp(creds.data, str_c(b64_value)) == 0) auth = TRUE; @@ -663,7 +663,7 @@ } if (auth == FALSE) { conn->http_response = http_server_response_create(conn->http_server_request, 401, "Authentication required"); - if (doveadm_settings->doveadm_api_key != NULL) + if (doveadm_settings->doveadm_api_key[0] != '\0') http_server_response_add_header(conn->http_response, "WWW-Authenticate", "X-Dovecot-API Realm=\"doveadm\"" );
--- a/src/doveadm/doveadm-settings.c Wed Mar 02 17:45:18 2016 +0200 +++ b/src/doveadm/doveadm-settings.c Wed Mar 02 20:32:25 2016 +0200 @@ -93,7 +93,7 @@ .ssl_client_ca_dir = "", .ssl_client_ca_file = "", .director_username_hash = "%Lu", - .doveadm_api_key = NULL, + .doveadm_api_key = "", .plugin_envs = ARRAY_INIT };