# HG changeset patch # User Timo Sirainen # Date 1456943545 -7200 # Node ID 0b2569fca146b5df1a58ceea925af9e73594c2ff # Parent 2d3f8802f2638fdd4cd6c691ffe65eb9dd173110 doveadm: Don't treat doveadm_api_key differently when it's unset vs set to empty. diff -r 2d3f8802f263 -r 0b2569fca146 src/doveadm/client-connection-http.c --- 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\"" ); diff -r 2d3f8802f263 -r 0b2569fca146 src/doveadm/doveadm-settings.c --- 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 };