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
 };