Skip to content

Commit 8ab0c56

Browse files
committed
fix(dns): Config for dynamic DNS sorting so AF_UNSPEC works in IPv6-only network
This fix adds a KConfig option to enable the LWIP dynamic DNS selection, based on the addresses available on the device, allowing a device with both IPv4 and IPv6 enabled to work in any network configuration, including IPv4-only, IPv6-only, and dual-stack. The example is also updated with instructions to turn on TLS and DNS logging, and example output updated to show the IPv4 and IPv6 addresses being used.
1 parent a7d1da9 commit 8ab0c56

File tree

5 files changed

+162
-26
lines changed

5 files changed

+162
-26
lines changed

components/lwip/Kconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1104,6 +1104,16 @@ menu "LWIP"
11041104
help
11051105
This option allows you to config dns fallback server address.
11061106

1107+
config LWIP_DNS_DYNAMIC_SORT
1108+
bool "Dynamically sort DNS results"
1109+
default n
1110+
help
1111+
Dynamically sorts DNS results by available source addresses (based on RFC 6724).
1112+
This allows a device to return results based on the current network
1113+
and work across IPv4-only, IPv6-only, and dual-stack networks.
1114+
If this option is disabled, DNS results have a static preference for IPv4,
1115+
which will work in most cases but fails for some network configurations
1116+
11071117
endmenu # DNS
11081118

11091119
config LWIP_BRIDGEIF_MAX_PORTS

components/lwip/port/include/lwipopts.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,16 @@ static inline uint32_t timeout_from_offered(uint32_t lease, uint32_t min)
499499
#define LWIP_DNS_SUPPORT_MDNS_QUERIES 0
500500
#endif
501501

502+
/**
503+
* LWIP_DNS_DYNAMIC_SORT==1: Dynamically sorts DNS results by available source addresses.
504+
* This option is set via menuconfig.
505+
*/
506+
#ifdef CONFIG_LWIP_DNS_DYNAMIC_SORT
507+
#define LWIP_DNS_DYNAMIC_SORT 1
508+
#else
509+
#define LWIP_DNS_DYNAMIC_SORT 0
510+
#endif
511+
502512
/*
503513
---------------------------------
504514
---------- UDP options ----------

examples/protocols/https_request/README.md

Lines changed: 135 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,14 @@ Before project configuration and build, be sure to set the correct chip target u
2727
```
2828
idf.py menuconfig
2929
```
30+
3031
Open the project configuration menu (`idf.py menuconfig`) to configure Wi-Fi or Ethernet. See "Establishing Wi-Fi or Ethernet Connection" section in [examples/protocols/README.md](../../README.md) for more details.
3132

33+
For additional logging of TLS and DNS, in project configuration:
34+
35+
* `Component config` -> `Log output` -> `Maximum log verbosity`, select `Debug`
36+
* `Component config` -> `LWIP` -> `Enable LWIP Debug` -> `Enable DNS debug messages`, enable
37+
3238
#### Configuring Client Session Tickets
3339

3440
Note: This example has client session tickets enabled by default.
@@ -54,36 +60,139 @@ See the Getting Started Guide for full steps to configure and use ESP-IDF to bui
5460

5561
## Example Output
5662

63+
Run on a dual-stack network with DNS64/NAT64 available, and with DNS logging turned on.
64+
65+
At the time of the first check the device has an IPv4 global address, but only link-local IPv6, so even though DNS64 returns both IPv4 and IPv6 addresses, the IPv4 address is used as it has a matching scope.
66+
67+
By the time of the second check, the device has received IPv6 RA (router advertisement) prefixes and configured IPv6 addresses. Both addresses have matching scopes and labels, so DNS precedence rules use the IPv6 NAT64 address.
68+
5769
```
58-
I (5634) example_connect: - IPv4 address: 192.168.194.219
59-
I (5634) example_connect: - IPv6 address: fe80:0000:0000:0000:266f:28ff:fe80:2c74, type: ESP_IP6_ADDR_IS_LINK_LOCAL
60-
I (5644) example: Start https_request example
61-
I (5654) example: https_request using crt bundle
62-
W (6514) wifi:<ba-add>idx:1 (ifx:0, ee:6d:19:60:f6:0e), tid:4, ssn:0, winSize:64
63-
I (7074) esp-x509-crt-bundle: Certificate validated
64-
I (9384) example: Connection established...
65-
I (9384) example: 107 bytes written
66-
I (9384) example: Reading HTTP response...
70+
I (843) example_connect: Connecting to Astral...
71+
I (843) example_connect: Waiting for IP(s)
72+
I (3263) wifi:new:<1,0>, old:<1,0>, ap:<255,255>, sta:<1,0>, prof:1
73+
I (3513) wifi:state: init -> auth (b0)
74+
I (3523) wifi:state: auth -> assoc (0)
75+
I (3543) wifi:state: assoc -> run (10)
76+
I (3553) wifi:connected with Astral, aid = 7, channel 1, BW20, bssid = c0:56:27:73:4b:14
77+
I (3553) wifi:security: WPA2-PSK, phy: bgn, rssi: -58
78+
I (3553) wifi:pm start, type: 1
79+
80+
I (3553) wifi:dp: 1, bi: 102400, li: 3, scale listen interval from 307200 us to 307200 us
81+
I (3583) wifi:dp: 2, bi: 102400, li: 4, scale listen interval from 307200 us to 409600 us
82+
I (3583) wifi:AP's beacon interval = 102400 us, DTIM period = 2
83+
I (4633) example_connect: Got IPv6 event: Interface "example_netif_sta" address: fe80:0000:0000:0000:0a3a:f2ff:fe65:db28, type: ESP_IP6_ADDR_IS_LINK_LOCAL
84+
I (5063) esp_netif_handlers: example_netif_sta ip: 192.168.1.146, mask: 255.255.255.0, gw: 192.168.1.1
85+
I (5063) example_connect: Got IPv4 event: Interface "example_netif_sta" address: 192.168.1.146
86+
I (5073) example_common: Connected to example_netif_sta
87+
I (5073) example_common: - IPv4 address: 192.168.1.146,
88+
I (5083) example_common: - IPv6 address: fe80:0000:0000:0000:0a3a:f2ff:fe65:db28, type: ESP_IP6_ADDR_IS_LINK_LOCAL
89+
I (5093) example: Updating time from NVS
90+
I (5103) example: Start https_request example
91+
I (5103) example: https_request using crt bundle
92+
D (5103) esp-tls: host:www.howsmyssl.com: strlen 17
93+
dns_enqueue: "www.howsmyssl.com": use DNS entry 0
94+
dns_enqueue: "www.howsmyssl.com": use DNS pcb 0
95+
I (5123) main_task: Returned from app_main()
96+
dns_send: dns_servers[0] "www.howsmyssl.com": request
97+
sending DNS request ID 22389 for name "www.howsmyssl.com" to server 0
98+
dns_recv: "www.howsmyssl.com": response = 64:ff9b:0:0:0:0:2247:2dc8
99+
dns_enqueue: "www.howsmyssl.com": use DNS entry 1
100+
dns_enqueue: "www.howsmyssl.com": use DNS pcb 0
101+
dns_send: dns_servers[0] "www.howsmyssl.com": request
102+
sending DNS request ID 50477 for name "www.howsmyssl.com" to server 0
103+
dns_recv: "www.howsmyssl.com": response = 34.71.45.200
104+
dns_select: selecting from 2 candidates
105+
dns_select: precedence labels flags 0x0013, ipv6 scopes flags 0x0004, ipv4 scopes flags 0x4004
106+
dns_select: rule 2, cand_0 scope (14) match 0, cand_1 scope (14) match 1
107+
D (5233) esp-tls: [sock=54] Resolved IPv4 address: 34.71.45.200
108+
D (5243) esp-tls: [sock=54] Connecting to server. HOST: www.howsmyssl.com/a/check, Port: 443
109+
D (5643) esp-tls: handshake in progress...
110+
I (6103) esp-x509-crt-bundle: Certificate validated
111+
dns_tmr: dns_check_entries
112+
dns_tmr: dns_check_entries
113+
I (7383) example: Connection established...
114+
I (7393) example: 106 bytes written
115+
I (7393) example: Reading HTTP response...
116+
I (7633) example_connect: Got IPv6 event: Interface "example_netif_sta" address: 2407:8800:bc61:1340:0a3a:f2ff:fe65:db28, type: ESP_IP6_ADDR_IS_GLOBAL
117+
I (7633) example_connect: Got IPv6 event: Interface "example_netif_sta" address: fd7c:e25e:67e8:0040:0a3a:f2ff:fe65:db28, type: ESP_IP6_ADDR_IS_UNIQUE_LOCAL
118+
dns_tmr: dns_check_entries
67119
HTTP/1.1 200 OK
68-
Content-Length: 2091
69120
Access-Control-Allow-Origin: *
70121
Connection: close
122+
Content-Length: 2545
71123
Content-Type: application/json
72-
Date: Tue, 07 Sep 2021 08:30:00 GMT
73124
Strict-Transport-Security: max-age=631138519; includeSubdomains; preload
74-
75-
{"given_cipher_suites":["TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_DHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_AES_256_CCM","TLS_DHE_RSA_WITH_AES_256_CCM","TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384","TLS_ECDHE_RSA_WITH_AES_
76-
256_CBC_SHA384","TLS_DHE_RSA_WITH_AES_256_CBC_SHA256","TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA","TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA","TLS_DHE_RSA_WITH_AES_256_CBC_SHA","TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8","TLS_DHE_RSA_WITH_AES_256_CCM_8","TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_DHE_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_CCM","TLS_DHE_RSA_WITH_AES_128_CCM","TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256","TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256","TLS_DHE
77-
_RSA_WITH_AES_128_CBC_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA","TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA","TLS_DHE_RSA_WITH_AES_128_CBC_SHA","TLS_ECDHE_ECDSA
78-
_WITH_AES_128_CCM_8","TLS_DHE_RSA_WITH_AES_128_CCM_8","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_256_CCM","TLS_RSA_WITH_AES_256_CBC_SHA256","TLS_RSA_WITH_AES_256_CBC_SHA","TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384","TLS_ECDH_RSA_WITH_AES_256_CBC_SHA","TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384","TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384","TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA","TLS_RSA_WITH_AES_256_CCM_8","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_RSA_WITH_AES_128_CCM","TLS_RS
79-
A_WITH_AES_128_CBC_SHA256","TLS_RSA_WITH_AES_128_CBC_SHA","TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256","TLS_ECDH_RSA_WITH_AES_128_CBC_SHA","TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256","TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256","TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA","TLS_RSA_WITH_AES_128_CCM_8","TLS_EMPTY_RENEGOTIATION_INFO_SCSV"],"ephemeral_keys_supported":true,"session_ticket_supported":true,"tls_compression_supported":false,"unknown_cipher_suite_supported":false,"beast_vuln":fal
80-
se,"able_to_detect_n_minus_one_splitting":false,"insecure_cipher_suites":{},"tls_version":"TLS 1.2","rating":"Probably Okay"}
81-
I (10204) example: connection closed
82-
I (10204) example: 10...
83-
I (11204) example: 9...
84-
I (12204) example: 8...
85-
I (13204) example: 7...
86-
I (14204) example: 6...
87-
I (15204) example: 5...
88-
I (16204) example: 4...
125+
Vary: Accept-Encoding
126+
Date: Tue, 27 Feb 2024 22:11:22 GMT
127+
128+
{"given_cipher_suites":["TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_AES_256_CCM","TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384","TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384","TLS_ECDHE_ECDSA_WITH_AES_256_
129+
CBC_SHA","TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA","TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8","TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384","TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384","TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_CCM","TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256","TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA","TLS_ECDHE_RSA_WITH_AE
130+
S_128_CBC_SHA","TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8","TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256","TLS_ECDHE_ECDSA_WITH
131+
dns_tmr: dns_check_entries
132+
_ARIA_128_CBC_SHA256","TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_256_CCM","TLS_RSA_WITH_AES_256_CBC_SHA256","TLS_RSA_WITH_AES_256_CBC_SHA","TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384","TLS_ECDH_RSA_WITH_AES_256_CBC_SHA","TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384","TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384","TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA","TLS_RSA_WITH_AES_256_CCM_8","TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384","TLS_ECDH_RSA_WIT
133+
H_ARIA_256_GCM_SHA384","TLS_RSA_WITH_ARIA_256_GCM_SHA384","TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384","TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384","TLS_RSA_WITH_ARIA_256_CBC_SHA384","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_RSA_WITH_AES_128_CCM","TLS_RSA_WITH_AES_128_CBC_SHA256","TLS_RSA_WITH_AES_128_CBC_SHA","TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256","TLS_ECDH_RSA_WITH_AES_128_CBC_SHA","TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256","TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256","TLS_ECDH_ECDS
134+
A_WITH_AES_128_CBC_SHA","TLS_RSA_WITH_AES_128_CCM_8","TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256","TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256","TLS_RSA_WITH_ARIA_128_GCM_SHA256","TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256","TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256","TLS_RSA_WITH_ARIA_128_CBC_SHA256","TLS_EMPTY_RENEGOTIATION_INFO_SCSV"],"ephemeral_keys_supported":true,"session_ticket_supported":true,"tls_compression_supported":false,"unknown_cipher_suite_supported":false,"beast_vuln":false,"able_to_detect_n_minus_one_spl
135+
itting":false,"insecure_cipher_suites":{},"tls_version":"TLS 1.2","rating":"Probably Okay"}
136+
I (9463) example: connection closed
137+
I (9473) example: 10...
138+
dns_tmr: dns_check_entries
139+
I (10473) example: 9...
140+
dns_tmr: dns_check_entries
141+
I (11473) example: 8...
142+
dns_tmr: dns_check_entries
143+
I (12473) example: 7...
144+
dns_tmr: dns_check_entries
145+
I (13473) example: 6...
146+
dns_tmr: dns_check_entries
147+
I (14473) example: 5...
148+
dns_tmr: dns_check_entries
149+
I (15473) example: 4...
150+
dns_tmr: dns_check_entries
151+
I (16473) example: 3...
152+
dns_tmr: dns_check_entries
153+
I (17473) example: 2...
154+
dns_tmr: dns_check_entries
155+
I (18473) example: 1...
156+
dns_tmr: dns_check_entries
157+
I (19473) example: 0...
158+
dns_tmr: dns_check_entries
159+
I (20473) example: Minimum free heap size: 181364 bytes
160+
I (20473) example: https_request using cacert_buf
161+
D (20473) esp-tls: host:www.howsmyssl.com: strlen 17
162+
dns_lookup: "www.howsmyssl.com": found = 64:ff9b:0:0:0:0:2247:2dc8
163+
dns_lookup: "www.howsmyssl.com": found = 34.71.45.200
164+
dns_select: selecting from 2 candidates
165+
dns_select: precedence labels flags 0x2013, ipv6 scopes flags 0x4004, ipv4 scopes flags 0x4004
166+
dns_select: rule 2, cand_0 scope (14) match 1, cand_1 scope (14) match 1
167+
dns_select: rule 5, cand_0 label (1) match 1, cand_1 label (4) match 1
168+
dns_select: rule 6, cand_0 precedence 40, cand_1 precedence 35
169+
D (20513) esp-tls: [sock=54] Resolved IPv6 address: 64:FF9B::2247:2DC8
170+
D (20523) esp-tls: [sock=54] Connecting to server. HOST: www.howsmyssl.com/a/check, Port: 443
171+
D (20903) esp-tls: handshake in progress...
172+
dns_tmr: dns_check_entries
173+
dns_tmr: dns_check_entries
174+
I (22753) example: Connection established...
175+
I (22753) example: 106 bytes written
176+
I (22753) example: Reading HTTP response...
177+
dns_tmr: dns_check_entries
178+
HTTP/1.1 200 OK
179+
Access-Control-Allow-Origin: *
180+
Connection: close
181+
Content-Length: 2545
182+
Content-Type: application/json
183+
Strict-Transport-Security: max-age=631138519; includeSubdomains; preload
184+
Vary: Accept-Encoding
185+
Date: Tue, 27 Feb 2024 22:11:37 GMT
186+
187+
{"given_cipher_suites":["TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_AES_256_CCM","TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384","TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384","TLS_ECDHE_ECDSA_WITH_AES_256_
188+
CBC_SHA","TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA","TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8","TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384","TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384","TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_CCM","TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256","TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA","TLS_ECDHE_RSA_WITH_AE
189+
S_128_CBC_SHA","TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8","TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256","TLS_ECDHE_ECDSA_WITH
190+
_ARIA_128_CBC_SHA256","TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_256_CCM","TLS_RSA_WITH_AES_256_CBC_SHA256","TLS_RSA_WITH_AES_256_CBC_SHA","TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384","TLS_ECDH_RSA_WITH_AES_256_CBC_SHA","TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384","TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384","TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA","TLS_RSA_WITH_AES_256_CCM_8","TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384","TLS_ECDH_RSA_WIT
191+
H_ARIA_256_GCM_SHA384","TLS_RSA_WITH_ARIA_256_GCM_SHA384","TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384","TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384","TLS_RSA_WITH_ARIA_256_CBC_SHA384","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_RSA_WITH_AES_128_CCM","TLS_RSA_WITH_AES_128_CBC_SHA256","TLS_RSA_WITH_AES_128_CBC_SHA","TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256","TLS_ECDH_RSA_WITH_AES_128_CBC_SHA","TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256","TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256","TLS_ECDH_ECDS
192+
A_WITH_AES_128_CBC_SHA","TLS_RSA_WITH_AES_128_CCM_8","TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256","TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256","TLS_RSA_WITH_ARIA_128_GCM_SHA256","TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256","TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256","TLS_RSA_WITH_ARIA_128_CBC_SHA256","TLS_EMPTY_RENEGOTIATION_INFO_SCSV"],"ephemeral_keys_supported":true,"session_ticket_supported":true,"tls_compression_supported":false,"unknown_cipher_suite_supported":false,"beast_vuln":false,"able_to_detect_n_minus_one_spl
193+
itting":false,"insecure_cipher_suites":{},"tls_version":"TLS 1.2","rating":"Probably Okay"}
194+
I (23393) example: connection closed
195+
I (23393) example: 10...
196+
dns_tmr: dns_check_entries
197+
I (24393) example: 9...
89198
```

examples/protocols/https_request/main/https_request_example_main.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,9 @@ static void https_request_task(void *pvparameters)
298298

299299
void app_main(void)
300300
{
301+
// Enable debug logging for esp-tls (if Maximum log verbosity is set in menuconfig)
302+
esp_log_level_set("esp-tls", ESP_LOG_DEBUG);
303+
301304
ESP_ERROR_CHECK(nvs_flash_init());
302305
ESP_ERROR_CHECK(esp_netif_init());
303306
ESP_ERROR_CHECK(esp_event_loop_create_default());
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
CONFIG_MBEDTLS_HAVE_TIME_DATE=y
2+
CONFIG_LWIP_DNS_DYNAMIC_SORT=y
3+
CONFIG_LWIP_IPV6_AUTOCONFIG=y
4+
CONFIG_LWIP_IPV6_DHCP6=y
5+
CONFIG_LWIP_IPV6_RDNSS_MAX_DNS_SERVERS=2
26
CONFIG_LWIP_SNTP_MAX_SERVERS=2
37
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y

0 commit comments

Comments
 (0)