Skip to content

Commit

Permalink
Restore list changes.
Browse files Browse the repository at this point in the history
  • Loading branch information
FranciscoKnebel committed Jul 30, 2020
1 parent 04834a3 commit ac6f93f
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 37 deletions.
64 changes: 31 additions & 33 deletions src/database.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,32 +180,32 @@ int db__close(struct mosquitto_db *db)

void db__msg_store_add(struct mosquitto_db *db, struct mosquitto_msg_store *store, int is_critical_publish)
{
// if(is_critical_publish){
if(is_critical_publish){
// PREPEND
store->next = db->msg_store;
store->prev = NULL;
if(db->msg_store){
db->msg_store->prev = store;
}
db->msg_store = store;
// }else{
// // APPEND
// if (db->msg_store)
// {
// (store)->prev = (db->msg_store)->prev;
// if(db->msg_store->prev) {
// (db->msg_store)->prev->next = (store);
// }
// (db->msg_store)->prev = (store);
// (store)->next = NULL;
// }
// else
// {
// (db->msg_store) = (store);
// (db->msg_store)->prev = (db->msg_store);
// (db->msg_store)->next = NULL;
// }
// }
}else{
// APPEND
if (db->msg_store)
{
(store)->prev = (db->msg_store)->prev;
if(db->msg_store->prev) {
(db->msg_store)->prev->next = (store);
}
(db->msg_store)->prev = (store);
(store)->next = NULL;
}
else
{
(db->msg_store) = (store);
(db->msg_store)->prev = (db->msg_store);
(db->msg_store)->next = NULL;
}
}
}


Expand Down Expand Up @@ -313,18 +313,18 @@ void db__message_dequeue_first(struct mosquitto *context, struct mosquitto_msg_d
msg = msg_data->queued;
DL_DELETE(msg_data->queued, msg);

// int is_critical_publish = 0;
// if(msg->store->payloadlen >= 2){
// is_critical_publish =
// ((char *) UHPA_ACCESS(msg->store->payload, msg->store->payloadlen))[0] == '!' &&
// ((char *) UHPA_ACCESS(msg->store->payload, msg->store->payloadlen))[1] == '!';
// }
int is_critical_publish = 0;
if(msg->store->payloadlen >= 2){
is_critical_publish =
((char *) UHPA_ACCESS(msg->store->payload, msg->store->payloadlen))[0] == '!' &&
((char *) UHPA_ACCESS(msg->store->payload, msg->store->payloadlen))[1] == '!';
}

// if(is_critical_publish){
// DL_PREPEND(msg_data->inflight, msg);
// }else{
if(is_critical_publish){
DL_PREPEND(msg_data->inflight, msg);
}else{
DL_APPEND(msg_data->inflight, msg);
// }
}

if(msg_data->inflight_quota > 0){
msg_data->inflight_quota--;
Expand Down Expand Up @@ -517,15 +517,13 @@ int db__message_insert(struct mosquitto_db *db, struct mosquitto *context, uint1

if(state == mosq_ms_queued){
if (is_critical_publish){
// DL_PREPEND(msg_data->queued, msg);
DL_APPEND(msg_data->queued, msg);
DL_PREPEND(msg_data->queued, msg);
}else{
DL_APPEND(msg_data->queued, msg);
}
}else{
if (is_critical_publish){
// DL_PREPEND(msg_data->inflight, msg);
DL_APPEND(msg_data->inflight, msg);
DL_PREPEND(msg_data->inflight, msg);
}else{
DL_APPEND(msg_data->inflight, msg);
}
Expand Down
10 changes: 7 additions & 3 deletions src/handle_publish.c
Original file line number Diff line number Diff line change
Expand Up @@ -296,9 +296,13 @@ int handle__publish(struct mosquitto_db *db, struct mosquitto *context)

log__printf(NULL, MOSQ_LOG_DEBUG, "Received PUBLISH from %s (d%d, q%d, r%d, m%d, '%s', ... (%ld bytes))", context->id, dup, qos, retain, mid, topic, (long)payloadlen);
int print_len = payloadlen;
if (((char *)UHPA_ACCESS(payload, payloadlen))[payloadlen - 1] == '\n')
print_len = payloadlen - 1;
log__printf(NULL, MOSQ_LOG_PAYLOAD, "> payload: '%.*s'", print_len, (char *)UHPA_ACCESS(payload, payloadlen));
if (payloadlen > 0) {
if (((char *)UHPA_ACCESS(payload, payloadlen))[payloadlen - 1] == '\n')
print_len = payloadlen - 1;
log__printf(NULL, MOSQ_LOG_PAYLOAD, "> payload: '%.*s'", print_len, (char *)UHPA_ACCESS(payload, payloadlen));
} else {
log__printf(NULL, MOSQ_LOG_PAYLOAD, "> payload: ''");
}

if(qos > 0){
db__message_store_find(context, mid, &stored);
Expand Down
1 change: 0 additions & 1 deletion src/read_handle.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ int handle__packet(struct mosquitto_db *db, struct mosquitto *context)
case CMD_PUBCOMP:
return handle__pubackcomp(db, context, "PUBCOMP");
case CMD_PUBLISH:
case 0x00: // TEMP CMD_CRITICAL_PUBLISH
return handle__publish(db, context);
case CMD_PUBREC:
return handle__pubrec(db, context);
Expand Down

0 comments on commit ac6f93f

Please sign in to comment.