Move unpwd to security_options struct.

This commit is contained in:
Roger A. Light 2020-08-18 15:20:48 +01:00
parent 581e843131
commit b66ffb8039
3 changed files with 17 additions and 21 deletions

View File

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

View File

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

View File

@ -54,7 +54,7 @@ int mosquitto_security_init_default(struct mosquitto_db *db, bool reload)
for(i=0; i<db->config->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; i<db->config->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; i<db->config->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; i<db->config->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;