From b66ffb8039e7437290f3aafc19d16f8d4a76fd14 Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Tue, 18 Aug 2020 15:20:48 +0100 Subject: [PATCH] Move unpwd to security_options struct. --- src/database.c | 2 +- src/mosquitto_broker_internal.h | 6 ++---- src/security_default.c | 30 ++++++++++++++---------------- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/database.c b/src/database.c index e868ecd88d..144fc73c9b 100644 --- a/src/database.c +++ b/src/database.c @@ -137,7 +137,7 @@ int db__open(struct mosquitto__config *config, struct mosquitto_db *db) retain__init(db); - db->unpwd = NULL; + db->config->security_options.unpwd = NULL; #ifdef WITH_PERSISTENCE if(persist__restore(db)) return 1; diff --git a/src/mosquitto_broker_internal.h b/src/mosquitto_broker_internal.h index c06fb264b5..0ec608f436 100644 --- a/src/mosquitto_broker_internal.h +++ b/src/mosquitto_broker_internal.h @@ -219,6 +219,8 @@ struct mosquitto__security_options { * in config__read() with regards whether allow_anonymous * should be disabled when these options are set. */ + struct mosquitto__unpwd *unpwd; + struct mosquitto__unpwd *psk_id; struct mosquitto__acl_user *acl_list; struct mosquitto__acl *acl_patterns; char *password_file; @@ -271,8 +273,6 @@ struct mosquitto__listener { struct libwebsocket_protocols *ws_protocol; #endif struct mosquitto__security_options security_options; - struct mosquitto__unpwd *unpwd; - struct mosquitto__unpwd *psk_id; #ifdef WITH_UNIX_SOCKETS char *unix_socket_path; #endif @@ -458,8 +458,6 @@ struct mosquitto_db{ dbid_t last_db_id; struct mosquitto__subhier *subs; struct mosquitto__retainhier *retains; - struct mosquitto__unpwd *unpwd; - struct mosquitto__unpwd *psk_id; struct mosquitto *contexts_by_id; struct mosquitto *contexts_by_sock; struct mosquitto *contexts_for_free; diff --git a/src/security_default.c b/src/security_default.c index a6171a201a..1056f3cffd 100644 --- a/src/security_default.c +++ b/src/security_default.c @@ -54,7 +54,7 @@ int mosquitto_security_init_default(struct mosquitto_db *db, bool reload) for(i=0; iconfig->listener_count; i++){ pwf = db->config->listeners[i].security_options.password_file; if(pwf){ - rc = unpwd__file_parse(&db->config->listeners[i].unpwd, pwf); + rc = unpwd__file_parse(&db->config->listeners[i].security_options.unpwd, pwf); if(rc){ log__printf(NULL, MOSQ_LOG_ERR, "Error opening password file \"%s\".", pwf); return rc; @@ -65,7 +65,7 @@ int mosquitto_security_init_default(struct mosquitto_db *db, bool reload) if(db->config->security_options.password_file){ pwf = db->config->security_options.password_file; if(pwf){ - rc = unpwd__file_parse(&db->unpwd, pwf); + rc = unpwd__file_parse(&db->config->security_options.unpwd, pwf); if(rc){ log__printf(NULL, MOSQ_LOG_ERR, "Error opening password file \"%s\".", pwf); return rc; @@ -100,7 +100,7 @@ int mosquitto_security_init_default(struct mosquitto_db *db, bool reload) for(i=0; iconfig->listener_count; i++){ pskf = db->config->listeners[i].security_options.psk_file; if(pskf){ - rc = psk__file_parse(db, &db->config->listeners[i].psk_id, pskf); + rc = psk__file_parse(db, &db->config->listeners[i].security_options.psk_id, pskf); if(rc){ log__printf(NULL, MOSQ_LOG_ERR, "Error opening psk file \"%s\".", pskf); return rc; @@ -110,7 +110,7 @@ int mosquitto_security_init_default(struct mosquitto_db *db, bool reload) }else{ char *pskf = db->config->security_options.psk_file; if(pskf){ - rc = psk__file_parse(db, &db->psk_id, pskf); + rc = psk__file_parse(db, &db->config->security_options.psk_id, pskf); if(rc){ log__printf(NULL, MOSQ_LOG_ERR, "Error opening psk file \"%s\".", pskf); return rc; @@ -129,22 +129,22 @@ int mosquitto_security_cleanup_default(struct mosquitto_db *db, bool reload) rc = acl__cleanup(db, reload); if(rc != MOSQ_ERR_SUCCESS) return rc; - rc = unpwd__cleanup(&db->unpwd, reload); + rc = unpwd__cleanup(&db->config->security_options.unpwd, reload); if(rc != MOSQ_ERR_SUCCESS) return rc; for(i=0; iconfig->listener_count; i++){ - if(db->config->listeners[i].unpwd){ - rc = unpwd__cleanup(&db->config->listeners[i].unpwd, reload); + if(db->config->listeners[i].security_options.unpwd){ + rc = unpwd__cleanup(&db->config->listeners[i].security_options.unpwd, reload); if(rc != MOSQ_ERR_SUCCESS) return rc; } } - rc = unpwd__cleanup(&db->psk_id, reload); + rc = unpwd__cleanup(&db->config->security_options.psk_id, reload); if(rc != MOSQ_ERR_SUCCESS) return rc; for(i=0; iconfig->listener_count; i++){ - if(db->config->listeners[i].psk_id){ - rc = unpwd__cleanup(&db->config->listeners[i].psk_id, reload); + if(db->config->listeners[i].security_options.psk_id){ + rc = unpwd__cleanup(&db->config->listeners[i].security_options.psk_id, reload); if(rc != MOSQ_ERR_SUCCESS) return rc; } } @@ -903,11 +903,11 @@ int mosquitto_unpwd_check_default(struct mosquitto_db *db, struct mosquitto *con if(context->bridge) return MOSQ_ERR_SUCCESS; if(!context->listener) return MOSQ_ERR_INVAL; if(context->listener->security_options.password_file == NULL) return MOSQ_ERR_PLUGIN_DEFER; - unpwd_ref = context->listener->unpwd; + unpwd_ref = context->listener->security_options.unpwd; allow_anonymous = context->listener->security_options.allow_anonymous; }else{ if(db->config->security_options.password_file == NULL) return MOSQ_ERR_PLUGIN_DEFER; - unpwd_ref = db->unpwd; + unpwd_ref = db->config->security_options.unpwd; allow_anonymous = db->config->security_options.allow_anonymous; } if(context->username == NULL){ @@ -1207,11 +1207,9 @@ int mosquitto_psk_key_get_default(struct mosquitto_db *db, struct mosquitto *con if(db->config->per_listener_settings){ if(!context->listener) return MOSQ_ERR_INVAL; - if(!context->listener->psk_id) return MOSQ_ERR_PLUGIN_DEFER; - psk_id_ref = context->listener->psk_id; + psk_id_ref = context->listener->security_options.psk_id; }else{ - if(!db->psk_id) return MOSQ_ERR_PLUGIN_DEFER; - psk_id_ref = db->psk_id; + psk_id_ref = db->config->security_options.psk_id; } if(!psk_id_ref) return MOSQ_ERR_PLUGIN_DEFER;