Skip to content

Commit e4376b9

Browse files
committed
fix : fix mqtt bug
1 parent 2adb215 commit e4376b9

File tree

5 files changed

+53
-86
lines changed

5 files changed

+53
-86
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
.vscode/
12
build/
23
libmqttclient/

mqttclient/mqttclient.c

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* @Author: jiejie
33
* @Github: https://github.com/jiejieTop
44
* @Date: 2019-12-09 21:31:25
5-
* @LastEditTime: 2021-01-14 10:00:12
5+
* @LastEditTime : 2022-06-12 17:39:43
66
* @Description: the code belongs to jiejie, please keep the author information and source code according to the license.
77
*/
88
#include "mqttclient.h"
@@ -154,6 +154,7 @@ static int mqtt_read_packet(mqtt_client_t* c, int* packet_type, platform_timer_t
154154
if (NULL == packet_type)
155155
RETURN_ERROR(MQTT_NULL_VALUE_ERROR);
156156

157+
platform_timer_init(timer);
157158
platform_timer_cutdown(timer, c->mqtt_cmd_timeout);
158159

159160
/* 1. read the header byte. This has the packet type in it */
@@ -192,6 +193,7 @@ static int mqtt_send_packet(mqtt_client_t* c, int length, platform_timer_t* time
192193
int len = 0;
193194
int sent = 0;
194195

196+
platform_timer_init(timer);
195197
platform_timer_cutdown(timer, c->mqtt_cmd_timeout);
196198

197199
/* send mqtt packet in a blocking manner or exit when it timer is expired */
@@ -302,7 +304,7 @@ static int mqtt_deliver_message(mqtt_client_t* c, MQTTString* topic_name, mqtt_m
302304
rc = MQTT_SUCCESS_ERROR;
303305
}
304306

305-
memset(message->payload, 0, strlen((const char *)message->payload));
307+
memset(message->payload, 0, strlen(message->payload));
306308
memset(topic_name->lenstring.data, 0, topic_name->lenstring.len);
307309

308310
RETURN_ERROR(rc);
@@ -317,7 +319,7 @@ static ack_handlers_t *mqtt_ack_handler_create(mqtt_client_t* c, int type, uint1
317319
return NULL;
318320

319321
mqtt_list_init(&ack_handler->list);
320-
322+
platform_timer_init(&ack_handler->timer);
321323
platform_timer_cutdown(&ack_handler->timer, c->mqtt_cmd_timeout); /* No response within timeout will be destroyed or resent */
322324

323325
ack_handler->type = type;
@@ -341,7 +343,7 @@ static void mqtt_ack_handler_destroy(ack_handlers_t* ack_handler)
341343
static void mqtt_ack_handler_resend(mqtt_client_t* c, ack_handlers_t* ack_handler)
342344
{
343345
platform_timer_t timer;
344-
346+
platform_timer_init(&timer);
345347
platform_timer_cutdown(&timer, c->mqtt_cmd_timeout);
346348
platform_timer_cutdown(&ack_handler->timer, c->mqtt_cmd_timeout); /* timeout, recutdown */
347349

@@ -351,7 +353,6 @@ static void mqtt_ack_handler_resend(mqtt_client_t* c, ack_handlers_t* ack_handle
351353
mqtt_send_packet(c, ack_handler->payload_len, &timer); /* resend data */
352354
platform_mutex_unlock(&c->mqtt_write_lock);
353355
MQTT_LOG_W("%s:%d %s()... resend %d package, packet_id is %d ", __FILE__, __LINE__, __FUNCTION__, ack_handler->type, ack_handler->packet_id);
354-
355356
}
356357

357358
static int mqtt_ack_list_node_is_exist(mqtt_client_t* c, int type, uint16_t packet_id)
@@ -515,6 +516,7 @@ static void mqtt_clean_session(mqtt_client_t* c)
515516
msg_handler->topic_filter = NULL;
516517
platform_memory_free(msg_handler);
517518
}
519+
// MQTT_LOG_D("%s:%d %s() mqtt_msg_handler_list delete", __FILE__, __LINE__, __FUNCTION__);
518520
mqtt_list_del_init(&c->mqtt_msg_handler_list);
519521
}
520522

@@ -568,8 +570,10 @@ static int mqtt_try_resubscribe(mqtt_client_t* c)
568570

569571
MQTT_LOG_W("%s:%d %s()... mqtt try resubscribe ...", __FILE__, __LINE__, __FUNCTION__);
570572

571-
if (mqtt_list_is_empty(&c->mqtt_msg_handler_list))
573+
if (mqtt_list_is_empty(&c->mqtt_msg_handler_list)) {
574+
// MQTT_LOG_D("%s:%d %s() mqtt_msg_handler_list is empty", __FILE__, __LINE__, __FUNCTION__);
572575
RETURN_ERROR(MQTT_SUCCESS_ERROR);
576+
}
573577

574578
LIST_FOR_EACH_SAFE(curr, next, &c->mqtt_msg_handler_list) {
575579
msg_handler = LIST_ENTRY(curr, message_handlers_t, list);
@@ -626,7 +630,9 @@ static int mqtt_publish_ack_packet(mqtt_client_t *c, uint16_t packet_id, int pac
626630
int len = 0;
627631
int rc = MQTT_SUCCESS_ERROR;
628632
platform_timer_t timer;
629-
633+
platform_timer_init(&timer);
634+
platform_timer_cutdown(&timer, c->mqtt_cmd_timeout);
635+
630636
platform_mutex_lock(&c->mqtt_write_lock);
631637

632638
switch (packet_type) {
@@ -851,7 +857,7 @@ static int mqtt_packet_handle(mqtt_client_t* c, platform_timer_t* timer)
851857
break;
852858

853859
default:
854-
break;
860+
goto exit;
855861
}
856862

857863
rc = mqtt_keep_alive(c);
@@ -888,7 +894,7 @@ static int mqtt_yield(mqtt_client_t* c, int timeout_ms)
888894
if (0 == timeout_ms)
889895
timeout_ms = c->mqtt_cmd_timeout;
890896

891-
897+
platform_timer_init(&timer);
892898
platform_timer_cutdown(&timer, timeout_ms);
893899

894900
while (!platform_timer_is_expired(&timer)) {
@@ -966,8 +972,6 @@ static int mqtt_connect_with_results(mqtt_client_t* c)
966972
if (CLIENT_STATE_CONNECTED == mqtt_get_client_state(c))
967973
RETURN_ERROR(MQTT_SUCCESS_ERROR);
968974

969-
970-
971975
#ifndef MQTT_NETWORK_TYPE_NO_TLS
972976
rc = network_init(c->mqtt_network, c->mqtt_host, c->mqtt_port, c->mqtt_ca);
973977
#else
@@ -1036,7 +1040,7 @@ static int mqtt_connect_with_results(mqtt_client_t* c)
10361040
/*creat the thread fail and disconnect the mqtt socket connect*/
10371041
network_release(c->mqtt_network);
10381042
rc = MQTT_CONNECT_FAILED_ERROR;
1039-
MQTT_LOG_W("%s:%d %s()... mqtt yield thread creat faile...", __FILE__, __LINE__, __FUNCTION__);
1043+
MQTT_LOG_W("%s:%d %s()... mqtt yield thread creat failed...", __FILE__, __LINE__, __FUNCTION__);
10401044
}
10411045
} else {
10421046
mqtt_set_client_state(c, CLIENT_STATE_CONNECTED); /* reconnect, mqtt thread is already exists */
@@ -1196,8 +1200,9 @@ int mqtt_keep_alive(mqtt_client_t* c)
11961200
} else {
11971201
platform_timer_t timer;
11981202
int len = MQTTSerialize_pingreq(c->mqtt_write_buf, c->mqtt_write_buf_size);
1199-
if (len > 0 && (rc = mqtt_send_packet(c, len, &timer)) == MQTT_SUCCESS_ERROR) // send the ping packet
1200-
c->mqtt_ping_outstanding++;
1203+
if (len > 0)
1204+
rc = mqtt_send_packet(c, len, &timer); // 100ask, send the ping packet
1205+
c->mqtt_ping_outstanding++;
12011206
}
12021207
}
12031208

@@ -1229,7 +1234,7 @@ int mqtt_release(mqtt_client_t* c)
12291234
if (NULL == c)
12301235
RETURN_ERROR(MQTT_NULL_VALUE_ERROR);
12311236

1232-
1237+
platform_timer_init(&timer);
12331238
platform_timer_cutdown(&timer, c->mqtt_cmd_timeout);
12341239

12351240
/* wait for the clean session to complete */
@@ -1276,7 +1281,7 @@ int mqtt_disconnect(mqtt_client_t* c)
12761281
platform_timer_t timer;
12771282
int len = 0;
12781283

1279-
1284+
platform_timer_init(&timer);
12801285
platform_timer_cutdown(&timer, c->mqtt_cmd_timeout);
12811286

12821287
platform_mutex_lock(&c->mqtt_write_lock);
@@ -1306,10 +1311,10 @@ int mqtt_subscribe(mqtt_client_t* c, const char* topic_filter, mqtt_qos_t qos, m
13061311
if (CLIENT_STATE_CONNECTED != mqtt_get_client_state(c))
13071312
RETURN_ERROR(MQTT_NOT_CONNECT_ERROR);
13081313

1309-
packet_id = mqtt_get_next_packet_id(c);
1310-
13111314
platform_mutex_lock(&c->mqtt_write_lock);
13121315

1316+
packet_id = mqtt_get_next_packet_id(c);
1317+
13131318
/* serialize subscribe packet and send it */
13141319
len = MQTTSerialize_subscribe(c->mqtt_write_buf, c->mqtt_write_buf_size, 0, packet_id, 1, &topic, (int*)&qos);
13151320
if (len <= 0)
@@ -1350,10 +1355,10 @@ int mqtt_unsubscribe(mqtt_client_t* c, const char* topic_filter)
13501355
if (CLIENT_STATE_CONNECTED != mqtt_get_client_state(c))
13511356
RETURN_ERROR(MQTT_NOT_CONNECT_ERROR);
13521357

1358+
platform_mutex_lock(&c->mqtt_write_lock);
13531359

13541360
packet_id = mqtt_get_next_packet_id(c);
13551361

1356-
platform_mutex_lock(&c->mqtt_write_lock);
13571362
/* serialize unsubscribe packet and send it */
13581363
if ((len = MQTTSerialize_unsubscribe(c->mqtt_write_buf, c->mqtt_write_buf_size, 0, packet_id, 1, &topic)) <= 0)
13591364
goto exit;
@@ -1385,8 +1390,10 @@ int mqtt_publish(mqtt_client_t* c, const char* topic_filter, mqtt_message_t* msg
13851390
topic.cstring = (char *)topic_filter;
13861391

13871392
if (CLIENT_STATE_CONNECTED != mqtt_get_client_state(c)) {
1393+
msg->payloadlen = 0; // clear
13881394
rc = MQTT_NOT_CONNECT_ERROR;
1389-
goto exit;
1395+
RETURN_ERROR(rc);
1396+
// goto exit; /* 100ask */
13901397
}
13911398

13921399
if ((NULL != msg->payload) && (0 == msg->payloadlen))
@@ -1417,7 +1424,7 @@ int mqtt_publish(mqtt_client_t* c, const char* topic_filter, mqtt_message_t* msg
14171424
goto exit;
14181425

14191426
if (QOS0 != msg->qos) {
1420-
mqtt_set_publish_dup(c,1); /* may resend this data, set the dup flag in advance */
1427+
mqtt_set_publish_dup(c, 1); /* may resend this data, set the dup flag in advance */
14211428

14221429
if (QOS1 == msg->qos) {
14231430
/* expect to receive PUBACK, otherwise data will be resent */
@@ -1431,7 +1438,7 @@ int mqtt_publish(mqtt_client_t* c, const char* topic_filter, mqtt_message_t* msg
14311438

14321439
exit:
14331440
msg->payloadlen = 0; // clear
1434-
1441+
14351442
platform_mutex_unlock(&c->mqtt_write_lock);
14361443

14371444
if ((MQTT_ACK_HANDLER_NUM_TOO_MUCH_ERROR == rc) || (MQTT_MEM_NOT_ENOUGH_ERROR == rc)) {

mqttclient/mqttclient.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* @Author: jiejie
33
* @Github: https://github.com/jiejieTop
44
* @Date: 2019-12-09 21:31:25
5-
* @LastEditTime: 2020-10-17 14:16:58
5+
* @LastEditTime : 2022-06-11 22:45:02
66
* @Description: the code belongs to jiejie, please keep the author information and source code according to the license.
77
*/
88
#ifndef _MQTTCLIENT_H_

test/emqx/test.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* @Author: jiejie
33
* @Github: https://github.com/jiejieTop
44
* @Date: 2019-12-11 21:53:07
5-
* @LastEditTime: 2020-06-08 20:45:33
5+
* @LastEditTime : 2022-06-12 17:48:06
66
* @Description: the code belongs to jiejie, please keep the author information and source code according to the license.
77
*/
88
#include <stdio.h>
@@ -16,7 +16,7 @@
1616
#include "mqttclient.h"
1717

1818
// #define TEST_USEING_TLS
19-
extern const char *test_ca_get();
19+
// extern const char *test_ca_get();
2020

2121
static void topic1_handler(void* client, message_data_t* msg)
2222
{
@@ -76,7 +76,7 @@ int main(void)
7676
mqtt_set_port(client, "1883");
7777
#endif
7878

79-
mqtt_set_host(client, "www.jiejie01.top");
79+
mqtt_set_host(client, "120.25.213.14");
8080
mqtt_set_client_id(client, random_string(10));
8181
mqtt_set_user_name(client, random_string(10));
8282
mqtt_set_password(client, random_string(10));

test/emqx/test_ca.c

Lines changed: 19 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -2,71 +2,30 @@
22
* @Author: jiejie
33
* @Github: https://github.com/jiejieTop
44
* @Date: 2020-01-12 10:51:11
5-
* @LastEditTime: 2020-03-21 21:07:24
5+
* @LastEditTime : 2022-06-12 17:47:53
66
* @Description: the code belongs to jiejie, please keep the author information and source code according to the license.
77
*/
8+
89
static const char *test_ca_crt = {
910
"-----BEGIN CERTIFICATE-----\r\n"
10-
"MIIFrTCCBJWgAwIBAgIQDApSGhCHMtFicAaXgcO0vjANBgkqhkiG9w0BAQsFADBy\r\n"
11-
"MQswCQYDVQQGEwJDTjElMCMGA1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywg\r\n"
12-
"SW5jLjEdMBsGA1UECxMURG9tYWluIFZhbGlkYXRlZCBTU0wxHTAbBgNVBAMTFFRy\r\n"
13-
"dXN0QXNpYSBUTFMgUlNBIENBMB4XDTIwMDEyOTAwMDAwMFoXDTIxMDQyODEyMDAw\r\n"
14-
"MFowGzEZMBcGA1UEAxMQd3d3LmppZWppZTAxLnRvcDCCASIwDQYJKoZIhvcNAQEB\r\n"
15-
"BQADggEPADCCAQoCggEBAKIDMo45w085LaCMG1LWY5b8V94zDqdt+weVhKolgsLZ\r\n"
16-
"htAQTDrafBx1sNJtOpa8ADeQkFbWOTEy3tgViOBvBr+8Qhl6vYsESJrg7DXeCVRm\r\n"
17-
"04pk+cFrdWYRE70AUz8RXRuaWLv1Fu2L+qlymrnZB/WBJFnETINh6yzqY8FNETUV\r\n"
18-
"EL08eE0LoXt/4b7iAJYEFRYTyBKjLpkr04e92SQIuL/l42j92lYNOjYfYOlpWZUC\r\n"
19-
"cp4WHXEDd1YXdTMmXpfsU3VlYS3RTusOFsgXpLFET9xGRvtDSu5qw6rPGf/y/PhT\r\n"
20-
"1LFB/xlL2E6Rpo/6VWuQ8A5rA+H3D1I/fIBB97orMYUCAwEAAaOCApQwggKQMB8G\r\n"
21-
"A1UdIwQYMBaAFH/TmfOgRw4xAFZWIo63zJ7dygGKMB0GA1UdDgQWBBQyzyOTN1l5\r\n"
22-
"Rg1Ih1tQ0TPYMqfw+jApBgNVHREEIjAgghB3d3cuamllamllMDEudG9wggxqaWVq\r\n"
23-
"aWUwMS50b3AwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr\r\n"
24-
"BgEFBQcDAjBMBgNVHSAERTBDMDcGCWCGSAGG/WwBAjAqMCgGCCsGAQUFBwIBFhxo\r\n"
25-
"dHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAgGBmeBDAECATCBkgYIKwYBBQUH\r\n"
26-
"AQEEgYUwgYIwNAYIKwYBBQUHMAGGKGh0dHA6Ly9zdGF0dXNlLmRpZ2l0YWxjZXJ0\r\n"
27-
"dmFsaWRhdGlvbi5jb20wSgYIKwYBBQUHMAKGPmh0dHA6Ly9jYWNlcnRzLmRpZ2l0\r\n"
28-
"YWxjZXJ0dmFsaWRhdGlvbi5jb20vVHJ1c3RBc2lhVExTUlNBQ0EuY3J0MAkGA1Ud\r\n"
29-
"EwQCMAAwggEEBgorBgEEAdZ5AgQCBIH1BIHyAPAAdQB9PvL4j/+IVWgkwsDKnlKJ\r\n"
30-
"eSvFDngJfy5ql2iZfiLw1wAAAW/wKSTgAAAEAwBGMEQCIGFq0FdvZfXf4lV20Am1\r\n"
31-
"HRP6F7wxzkesK0r1566sNqvxAiBp5W3iTLWEgeJa/PfH5hX/d+K5CIyXScLa4qqa\r\n"
32-
"MCLHwwB3AFzcQ5L+5qtFRLFemtRW5hA3+9X6R9yhc5SyXub2xw7KAAABb/ApJJIA\r\n"
33-
"AAQDAEgwRgIhANEsjShyRf0GGpwJ6ZTQKBHo933rlSpaNIvor7cG8RBQAiEAkeDf\r\n"
34-
"7+n+zyEGZUMOYI0E0R2chjPBJGvtw1yD12sxekowDQYJKoZIhvcNAQELBQADggEB\r\n"
35-
"AIzaZ5X1So+xVe2JWkMfmJA8IQhdp9WghCDLRORcIggcY9BtYxFSBdusxIa1bhdt\r\n"
36-
"rCY6RoepCwTrhV9PotwMgZtSOu8szHHRlqX8zNUhIh628yzPSTDDZ4xgeJvlGAkT\r\n"
37-
"Zlv0XrezkDLRZkKN9R6KX1ccaPNbn9PD6SMtpHPbE7UEZYfrV3wAJhFzsyhp2JF4\r\n"
38-
"KLLNPaeDgDM3Lu6tUm/bznDEyxi7/ZoR+7fSQAMF5Jo1ysKUAOC00I9Ne+7eSbTh\r\n"
39-
"flV//8NBN+Z2ShCV0uFedf6ugDUMOuOUCtp0c7N+sM1IVE5MOhLRDAGRIUyi7/43\r\n"
40-
"dJ0Okust1fXo4UTDGJtyp30=\r\n"
11+
"MIIDEzCCAfugAwIBAgIBAjANBgkqhkiG9w0BAQsFADA/MQswCQYDVQQGEwJDTjER\r\n"
12+
"MA8GA1UECAwIaGFuZ3pob3UxDDAKBgNVBAoMA0VNUTEPMA0GA1UEAwwGUm9vdENB\r\n"
13+
"MB4XDTIwMDUwODA4MDcwNVoXDTMwMDUwNjA4MDcwNVowPzELMAkGA1UEBhMCQ04x\r\n"
14+
"ETAPBgNVBAgMCGhhbmd6aG91MQwwCgYDVQQKDANFTVExDzANBgNVBAMMBlNlcnZl\r\n"
15+
"cjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNeWT3pE+QFfiRJzKmn\r\n"
16+
"AMUrWo3K2j/Tm3+Xnl6WLz67/0rcYrJbbKvS3uyRP/stXyXEKw9CepyQ1ViBVFkW\r\n"
17+
"Aoy8qQEOWFDsZc/5UzhXUnb6LXr3qTkFEjNmhj+7uzv/lbBxlUG1NlYzSeOB6/RT\r\n"
18+
"8zH/lhOeKhLnWYPXdXKsa1FL6ij4X8DeDO1kY7fvAGmBn/THh1uTpDizM4YmeI+7\r\n"
19+
"4dmayA5xXvARte5h4Vu5SIze7iC057N+vymToMk2Jgk+ZZFpyXrnq+yo6RaD3ANc\r\n"
20+
"lrc4FbeUQZ5a5s5Sxgs9a0Y3WMG+7c5VnVXcbjBRz/aq2NtOnQQjikKKQA8GF080\r\n"
21+
"BQkCAwEAAaMaMBgwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwDQYJKoZIhvcNAQEL\r\n"
22+
"BQADggEBAJefnMZpaRDHQSNUIEL3iwGXE9c6PmIsQVE2ustr+CakBp3TZ4l0enLt\r\n"
23+
"iGMfEVFju69cO4oyokWv+hl5eCMkHBf14Kv51vj448jowYnF1zmzn7SEzm5Uzlsa\r\n"
24+
"sqjtAprnLyof69WtLU1j5rYWBuFX86yOTwRAFNjm9fvhAcrEONBsQtqipBWkMROp\r\n"
25+
"iUYMkRqbKcQMdwxov+lHBYKq9zbWRoqLROAn54SRqgQk6c15JdEfgOOjShbsOkIH\r\n"
26+
"UhqcwRkQic7n1zwHVGVDgNIZVgmJ2IdIWBlPEC7oLrRrBD/X1iEEXtKab6p5o22n\r\n"
27+
"KB5mN+iQaE+Oe2cpGKZJiJRdM+IqDDQ=\r\n"
4128
"-----END CERTIFICATE-----\r\n"
42-
"-----BEGIN CERTIFICATE-----\r\n"
43-
"MIIErjCCA5agAwIBAgIQBYAmfwbylVM0jhwYWl7uLjANBgkqhkiG9w0BAQsFADBh\r\n"
44-
"MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\r\n"
45-
"d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\r\n"
46-
"QTAeFw0xNzEyMDgxMjI4MjZaFw0yNzEyMDgxMjI4MjZaMHIxCzAJBgNVBAYTAkNO\r\n"
47-
"MSUwIwYDVQQKExxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMR0wGwYDVQQL\r\n"
48-
"ExREb21haW4gVmFsaWRhdGVkIFNTTDEdMBsGA1UEAxMUVHJ1c3RBc2lhIFRMUyBS\r\n"
49-
"U0EgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCgWa9X+ph+wAm8\r\n"
50-
"Yh1Fk1MjKbQ5QwBOOKVaZR/OfCh+F6f93u7vZHGcUU/lvVGgUQnbzJhR1UV2epJa\r\n"
51-
"e+m7cxnXIKdD0/VS9btAgwJszGFvwoqXeaCqFoP71wPmXjjUwLT70+qvX4hdyYfO\r\n"
52-
"JcjeTz5QKtg8zQwxaK9x4JT9CoOmoVdVhEBAiD3DwR5fFgOHDwwGxdJWVBvktnoA\r\n"
53-
"zjdTLXDdbSVC5jZ0u8oq9BiTDv7jAlsB5F8aZgvSZDOQeFrwaOTbKWSEInEhnchK\r\n"
54-
"ZTD1dz6aBlk1xGEI5PZWAnVAba/ofH33ktymaTDsE6xRDnW97pDkimCRak6CEbfe\r\n"
55-
"3dXw6OV5AgMBAAGjggFPMIIBSzAdBgNVHQ4EFgQUf9OZ86BHDjEAVlYijrfMnt3K\r\n"
56-
"AYowHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDgYDVR0PAQH/BAQD\r\n"
57-
"AgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAG\r\n"
58-
"AQH/AgEAMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3Au\r\n"
59-
"ZGlnaWNlcnQuY29tMEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHA6Ly9jcmwzLmRpZ2lj\r\n"
60-
"ZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwTAYDVR0gBEUwQzA3Bglg\r\n"
61-
"hkgBhv1sAQIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29t\r\n"
62-
"L0NQUzAIBgZngQwBAgEwDQYJKoZIhvcNAQELBQADggEBAK3dVOj5dlv4MzK2i233\r\n"
63-
"lDYvyJ3slFY2X2HKTYGte8nbK6i5/fsDImMYihAkp6VaNY/en8WZ5qcrQPVLuJrJ\r\n"
64-
"DSXT04NnMeZOQDUoj/NHAmdfCBB/h1bZ5OGK6Sf1h5Yx/5wR4f3TUoPgGlnU7EuP\r\n"
65-
"ISLNdMRiDrXntcImDAiRvkh5GJuH4YCVE6XEntqaNIgGkRwxKSgnU3Id3iuFbW9F\r\n"
66-
"UQ9Qqtb1GX91AJ7i4153TikGgYCdwYkBURD8gSVe8OAco6IfZOYt/TEwii1Ivi1C\r\n"
67-
"qnuUlWpsF1LdQNIdfbW3TSe0BhQa7ifbVIfvPWHYOu3rkg1ZeMo6XRU9B4n5VyJY\r\n"
68-
"RmE=\r\n"
69-
"-----END CERTIFICATE-----"
7029
};
7130

7231
const char *test_ca_get()

0 commit comments

Comments
 (0)