Debug test45 pending-tokens

This commit is contained in:
Ian Craggs 2019-08-02 17:10:31 +01:00
parent f07dcbdae2
commit 6fdcc7bd2b
3 changed files with 9 additions and 34 deletions

View File

@ -1305,14 +1305,6 @@ static void MQTTAsync_writeComplete(int socket, int rc)
MQTTAsync_command* command = m->pending_write;
MQTTAsync_queuedCommand* com = NULL;
Log(TRACE_PROTOCOL, -1, "Response list start - before delete");
while (ListNextElement(m->responses, &cur_response))
{
com = (MQTTAsync_queuedCommand*)(cur_response->content);
Log(TRACE_PROTOCOL, -1, "Response for token: %d", com->command.token);
}
Log(TRACE_PROTOCOL, -1, "Response list end");
cur_response = NULL;
while (ListNextElement(m->responses, &cur_response))
{
@ -1384,21 +1376,13 @@ static void MQTTAsync_writeComplete(int socket, int rc)
}
if (com)
{
Log(TRACE_PROTOCOL, -1, "writeComplete: Removing response for msgid %d", com->command.token);
ListDetach(m->responses, com);
MQTTAsync_freeCommand(com);
Log(TRACE_PROTOCOL, -1, "writeComplete: Removing response for msgid %d", com->command.token);
ListDetach(m->responses, com);
MQTTAsync_freeCommand(com);
}
Log(TRACE_PROTOCOL, -1, "Response list start - after delete");
cur_response = NULL;
while (ListNextElement(m->responses, &cur_response))
{
com = (MQTTAsync_queuedCommand*)(cur_response->content);
Log(TRACE_PROTOCOL, -1, "Response for token: %d", com->command.token);
}
Log(TRACE_PROTOCOL, -1, "Response list end");
}
} /* if cur_response */
m->pending_write = NULL;
}
} /* if pending_write */
}
FUNC_EXIT;
}
@ -3831,8 +3815,6 @@ static MQTTPacket* MQTTAsync_cycle(int* sock, unsigned long timeout, int* rc)
*rc = MQTTProtocol_handlePubacks(pack, *sock);
if (!m)
Log(LOG_ERROR, -1, "PUBCOMP, PUBACK or PUBREC received for no client, msgid %d", msgid);
if (pack->header.bits.type == PUBACK)
Log(TRACE_PROTOCOL, -1, "PUBACK m %p ackrc %d", m, ackrc);
if (m && (msgtype != PUBREC || ackrc >= MQTTREASONCODE_UNSPECIFIED_ERROR))
{
ListElement* current = NULL;
@ -3842,16 +3824,12 @@ static MQTTPacket* MQTTAsync_cycle(int* sock, unsigned long timeout, int* rc)
Log(TRACE_MIN, -1, "Calling deliveryComplete for client %s, msgid %d", m->c->clientID, msgid);
(*(m->dc))(m->dcContext, msgid);
}
if (pack->header.bits.type == PUBACK)
Log(TRACE_PROTOCOL, -1, "PUBACK finding msgid %d", msgid);
/* use the msgid to find the callback to be called */
while (ListNextElement(m->responses, &current))
{
MQTTAsync_queuedCommand* command = (MQTTAsync_queuedCommand*)(current->content);
if (command->command.token == msgid)
{
if (pack->header.bits.type == PUBACK)
Log(TRACE_PROTOCOL, -1, "PUBACK found msgid %d %p", msgid, command->command.onSuccess);
if (!ListDetach(m->responses, command)) /* then remove the response from the list */
Log(LOG_ERROR, -1, "Publish command not removed from command list");
if (command->command.onSuccess)

View File

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2009, 2018 IBM Corp.
* Copyright (c) 2009, 2019 IBM Corp.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@ -1484,7 +1484,7 @@ int test7_run(int qos, int start_mqtt_version, int restore_mqtt_version)
test_finished = 0;
createOpts.MQTTVersion = start_mqtt_version;
MQTTAsync_setTraceLevel(MQTTASYNC_TRACE_ERROR);
MQTTAsync_setTraceLevel(MQTTASYNC_TRACE_PROTOCOL);
rc = MQTTAsync_createWithOptions(&c, options.connection, "async_test7",
MQTTCLIENT_PERSISTENCE_DEFAULT, NULL, &createOpts);
assert("good rc from create", rc == MQTTASYNC_SUCCESS, "rc was %d\n", rc);
@ -1614,7 +1614,7 @@ int test7_run(int qos, int start_mqtt_version, int restore_mqtt_version)
MQTTAsync_destroy(&c); /* force re-reading persistence on create */
MQTTAsync_setTraceLevel(MQTTASYNC_TRACE_ERROR);
MQTTAsync_setTraceLevel(MQTTASYNC_TRACE_PROTOCOL);
createOpts.MQTTVersion = restore_mqtt_version;
rc = MQTTAsync_createWithOptions(&c, options.connection, "async_test7",
MQTTCLIENT_PERSISTENCE_DEFAULT, NULL, &createOpts);

View File

@ -2561,10 +2561,7 @@ int main(int argc, char** argv)
}
else
{
if (options.test_no == 10)
MQTTAsync_setTraceLevel(MQTTASYNC_TRACE_PROTOCOL);
else
MQTTAsync_setTraceLevel(MQTTASYNC_TRACE_ERROR);
MQTTAsync_setTraceLevel(MQTTASYNC_TRACE_ERROR);
rc = tests[options.test_no](options); /* run just the selected test */
}