diff --git a/src/handle_connect.c b/src/handle_connect.c index 75bec11a..b40e404f 100644 --- a/src/handle_connect.c +++ b/src/handle_connect.c @@ -153,6 +153,7 @@ int connect__on_authorised(struct mosquitto *context, void *auth_data_out, uint1 memcpy(&context->msgs_in, &found_context->msgs_in, sizeof(struct mosquitto_msg_data)); memcpy(&context->msgs_out, &found_context->msgs_out, sizeof(struct mosquitto_msg_data)); + context->last_cmsg_id = found_context->last_cmsg_id; memset(&found_context->msgs_in, 0, sizeof(struct mosquitto_msg_data)); memset(&found_context->msgs_out, 0, sizeof(struct mosquitto_msg_data)); diff --git a/test/broker/15-persist-client-msg-in-v3-1-1.py b/test/broker/15-persist-client-msg-in-v3-1-1.py index a6e9fbf4..eb8c7055 100755 --- a/test/broker/15-persist-client-msg-in-v3-1-1.py +++ b/test/broker/15-persist-client-msg-in-v3-1-1.py @@ -78,6 +78,9 @@ try: helper.send(pubrec2_packet) mosq_test.do_receive_send(helper, pubrel2_packet, pubcomp2_packet, "pubcomp2 receive") + # Send ping and wait for the PINGRESP to make sure the broker has processed all sent puback + mosq_test.do_ping(helper) + # Kill broker (broker_terminate_rc, stde) = mosq_test.terminate_broker(broker) broker = None diff --git a/test/broker/15-persist-client-msg-in-v5-0.py b/test/broker/15-persist-client-msg-in-v5-0.py index 39a4765d..10da8867 100755 --- a/test/broker/15-persist-client-msg-in-v5-0.py +++ b/test/broker/15-persist-client-msg-in-v5-0.py @@ -77,6 +77,9 @@ try: helper.send(pubrec2_packet) mosq_test.do_receive_send(helper, pubrel2_packet, pubcomp2_packet, "pubcomp2 receive") + # Send ping and wait for the PINGRESP to make sure the broker has processed all sent puback + mosq_test.do_ping(helper) + # Kill broker (broker_terminate_rc, stde) = mosq_test.terminate_broker(broker) broker = None diff --git a/test/broker/15-persist-client-msg-out-queue-v3-1-1.py b/test/broker/15-persist-client-msg-out-queue-v3-1-1.py index 5a979e40..cfa79529 100755 --- a/test/broker/15-persist-client-msg-out-queue-v3-1-1.py +++ b/test/broker/15-persist-client-msg-out-queue-v3-1-1.py @@ -81,6 +81,8 @@ try: mosq_test.do_receive_send(sock, publish_packet1, puback_packet, "publish 1") mosq_test.do_receive_send(sock, publish_packet2, pubrec_packet, "publish 2") mosq_test.do_receive_send(sock, pubrel_packet, pubcomp_packet, "pubrel 2") + # Send ping and wait for the PINGRESP to make sure the broker has processed all sent pubcomp + mosq_test.do_ping(sock) sock.close() # Connect client again, it should have a session diff --git a/test/broker/15-persist-client-msg-out-v3-1-1.py b/test/broker/15-persist-client-msg-out-v3-1-1.py index 266d4c21..4980f2d4 100755 --- a/test/broker/15-persist-client-msg-out-v3-1-1.py +++ b/test/broker/15-persist-client-msg-out-v3-1-1.py @@ -78,6 +78,8 @@ try: mosq_test.do_receive_send(sock, publish_packet1, puback_packet, "publish 1") mosq_test.do_receive_send(sock, publish_packet2, pubrec_packet, "publish 2") mosq_test.do_receive_send(sock, pubrel_packet, pubcomp_packet, "pubrel 2") + # Send ping and wait for the PINGRESP to make sure the broker has processed all sent pubcomp + mosq_test.do_ping(sock) sock.close() # Connect client again, it should have a session diff --git a/test/broker/15-persist-client-msg-out-v5-0.py b/test/broker/15-persist-client-msg-out-v5-0.py index 01746ca2..f251912f 100755 --- a/test/broker/15-persist-client-msg-out-v5-0.py +++ b/test/broker/15-persist-client-msg-out-v5-0.py @@ -84,6 +84,8 @@ try: mosq_test.do_receive_send(sock, publish_packet1, puback_packet, "publish 1") mosq_test.do_receive_send(sock, publish_packet2, pubrec_packet, "publish 2") mosq_test.do_receive_send(sock, pubrel_packet, pubcomp_packet, "pubrel 2") + # Send ping and wait for the PINGRESP to make sure the broker has processed all sent pubcomp + mosq_test.do_ping(sock) sock.close() # Connect client again, it should have a session