Skip to content

Commit d05839c

Browse files
committed
fix(server): IPv4 NetworkServer not binding to address and port
Fixes issue where the server is not accessible when IPv6 is OFF
1 parent f5f509c commit d05839c

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

Diff for: libraries/Network/src/NetworkServer.cpp

+5-2
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ NetworkClient NetworkServer::accept() {
5050
struct sockaddr_in6 _client;
5151
int cs = sizeof(struct sockaddr_in6);
5252
#else
53-
struct sockaddr _client;
54-
int cs = sizeof(struct sockaddr);
53+
struct sockaddr_in _client;
54+
int cs = sizeof(struct sockaddr_in);
5555
#endif
5656
#ifdef ESP_IDF_VERSION_MAJOR
5757
client_sock = lwip_accept(sockfd, (struct sockaddr *)&_client, (socklen_t *)&cs);
@@ -101,12 +101,15 @@ void NetworkServer::begin(uint16_t port, int enable) {
101101
server.sin6_port = htons(_port);
102102
#else
103103
struct sockaddr_in server;
104+
memset(&server, 0x0, sizeof(sockaddr_in));
105+
server.sin_family = AF_INET;
104106
sockfd = socket(AF_INET, SOCK_STREAM, 0);
105107
if (sockfd < 0) {
106108
return;
107109
}
108110
setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(int));
109111
memcpy((uint8_t *)&(server.sin_addr.s_addr), (uint8_t *)&_addr[0], 4);
112+
server.sin_port = htons(_port);
110113
#endif
111114
if (bind(sockfd, (struct sockaddr *)&server, sizeof(server)) < 0) {
112115
return;

0 commit comments

Comments
 (0)