Skip to content

Commit abb0123

Browse files
authored
Merge branch 'master' into feature/ppp_modem_support
2 parents 35a6293 + 1788867 commit abb0123

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

libraries/NetworkClientSecure/src/ssl_client.cpp

+18-7
Original file line numberDiff line numberDiff line change
@@ -62,21 +62,32 @@ int start_ssl_client(sslclient_context *ssl_client, const IPAddress& ip, uint32_
6262
return -1;
6363
}
6464

65-
log_v("Starting socket");
65+
int domain = ip.type() == IPv6 ? AF_INET6 : AF_INET;
66+
log_v("Starting socket (domain %d)", domain);
6667
ssl_client->socket = -1;
6768

68-
ssl_client->socket = lwip_socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
69+
ssl_client->socket = lwip_socket(domain, SOCK_STREAM, IPPROTO_TCP);
6970
if (ssl_client->socket < 0) {
7071
log_e("ERROR opening socket");
7172
return ssl_client->socket;
7273
}
7374

7475
fcntl( ssl_client->socket, F_SETFL, fcntl( ssl_client->socket, F_GETFL, 0 ) | O_NONBLOCK );
75-
struct sockaddr_in serv_addr;
76-
memset(&serv_addr, 0, sizeof(serv_addr));
77-
serv_addr.sin_family = AF_INET;
78-
serv_addr.sin_addr.s_addr = ip;
79-
serv_addr.sin_port = htons(port);
76+
struct sockaddr_storage serv_addr = {};
77+
if (domain == AF_INET6) {
78+
struct sockaddr_in6 *tmpaddr = (struct sockaddr_in6 *)&serv_addr;
79+
tmpaddr->sin6_family = AF_INET6;
80+
for (int index = 0; index < 16; index++) {
81+
tmpaddr->sin6_addr.s6_addr[index] = ip[index];
82+
}
83+
tmpaddr->sin6_port = htons(port);
84+
tmpaddr->sin6_scope_id = ip.zone();
85+
} else {
86+
struct sockaddr_in *tmpaddr = (struct sockaddr_in *)&serv_addr;
87+
tmpaddr->sin_family = AF_INET;
88+
tmpaddr->sin_addr.s_addr = ip;
89+
tmpaddr->sin_port = htons(port);
90+
}
8091

8192
if(timeout <= 0){
8293
timeout = 30000; // Milli seconds.

libraries/SD/src/sd_diskio.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,7 @@ uint8_t sdcard_uninit(uint8_t pdrv)
718718
if (pdrv >= FF_VOLUMES || card == NULL) {
719719
return 1;
720720
}
721+
AcquireSPI lock(card);
721722
sdTransaction(pdrv, GO_IDLE_STATE, 0, NULL);
722723
ff_diskio_register(pdrv, NULL);
723724
s_cards[pdrv] = NULL;

0 commit comments

Comments
 (0)