This commit is contained in:
Roger A. Light 2020-07-16 09:36:42 +01:00
parent f846711ea2
commit b5be4fb4af

View File

@ -45,54 +45,53 @@ void db__msg_store_free(struct mosquitto_msg_store *store)
mosquitto__free(store); mosquitto__free(store);
} }
int db__message_store(struct mosquitto_db *db, const struct mosquitto *source, struct mosquitto_msg_store *temp, struct mosquitto_msg_store **stored, uint32_t message_expiry_interval, dbid_t store_id, enum mosquitto_msg_origin origin) int db__message_store(struct mosquitto_db *db, const struct mosquitto *source, struct mosquitto_msg_store *stored, uint32_t message_expiry_interval, dbid_t store_id, enum mosquitto_msg_origin origin)
{ {
int rc = MOSQ_ERR_SUCCESS; int rc = MOSQ_ERR_SUCCESS;
if(source && source->id){ if(source && source->id){
temp->source_id = mosquitto__strdup(source->id); stored->source_id = mosquitto__strdup(source->id);
}else{ }else{
temp->source_id = mosquitto__strdup(""); stored->source_id = mosquitto__strdup("");
} }
if(!temp->source_id){ if(!stored->source_id){
rc = MOSQ_ERR_NOMEM; rc = MOSQ_ERR_NOMEM;
goto error; goto error;
} }
if(source && source->username){ if(source && source->username){
temp->source_username = mosquitto__strdup(source->username); stored->source_username = mosquitto__strdup(source->username);
if(!temp->source_username){ if(!stored->source_username){
rc = MOSQ_ERR_NOMEM; rc = MOSQ_ERR_NOMEM;
goto error; goto error;
} }
} }
if(source){ if(source){
temp->source_listener = source->listener; stored->source_listener = source->listener;
} }
temp->mid = 0; stored->mid = 0;
if(message_expiry_interval > 0){ if(message_expiry_interval > 0){
temp->message_expiry_time = time(NULL) + message_expiry_interval; stored->message_expiry_time = time(NULL) + message_expiry_interval;
}else{ }else{
temp->message_expiry_time = 0; stored->message_expiry_time = 0;
} }
temp->dest_ids = NULL; stored->dest_ids = NULL;
temp->dest_id_count = 0; stored->dest_id_count = 0;
db->msg_store_count++; db->msg_store_count++;
db->msg_store_bytes += temp->payloadlen; db->msg_store_bytes += stored->payloadlen;
(*stored) = temp;
if(!store_id){ if(!store_id){
temp->db_id = ++db->last_db_id; stored->db_id = ++db->last_db_id;
}else{ }else{
temp->db_id = store_id; stored->db_id = store_id;
} }
db->msg_store = temp; db->msg_store = stored;
return MOSQ_ERR_SUCCESS; return MOSQ_ERR_SUCCESS;
error: error:
db__msg_store_free(temp); db__msg_store_free(stored);
return rc; return rc;
} }