Skip to content

Commit

Permalink
Move unpwd to security_options struct.
Browse files Browse the repository at this point in the history
  • Loading branch information
ralight committed Aug 18, 2020
1 parent 581e843 commit b66ffb8
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 21 deletions.
2 changes: 1 addition & 1 deletion src/database.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
6 changes: 2 additions & 4 deletions src/mosquitto_broker_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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;
Expand Down
30 changes: 14 additions & 16 deletions src/security_default.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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;
}
}
Expand Down Expand Up @@ -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){
Expand Down Expand Up @@ -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;

Expand Down

0 comments on commit b66ffb8

Please sign in to comment.