Skip to content

Commit 220d831

Browse files
committed
EthernetClient: constructor with int
1 parent 3a08cd0 commit 220d831

2 files changed

Lines changed: 15 additions & 2 deletions

File tree

ArduinoCore-Linux/cores/arduino/Ethernet.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,23 @@ inline EthernetImpl Ethernet;
3838
class EthernetClient : public Client {
3939
public:
4040
EthernetClient() {
41+
setTimeout(2000);
4142
readBuffer = RingBufferExt(bufferSize);
4243
writeBuffer = RingBufferExt(bufferSize);
43-
setTimeout(2000);
4444
}
4545
EthernetClient(SocketImpl sock, int bufferSize = 256, long timeout = 2000) {
46+
setTimeout(timeout);
4647
this->bufferSize = bufferSize;
4748
readBuffer = RingBufferExt(bufferSize);
4849
writeBuffer = RingBufferExt(bufferSize);
4950
this->sock = sock;
50-
setTimeout(timeout);
51+
is_connected = sock.connected();
52+
}
53+
EthernetClient(int socket){
54+
setTimeout(2000);
55+
readBuffer = RingBufferExt(bufferSize);
56+
writeBuffer = RingBufferExt(bufferSize);
57+
sock = SocketImpl(socket);
5158
is_connected = sock.connected();
5259
}
5360

ArduinoCore-Linux/cores/arduino/SocketImpl.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,18 @@
44
* Separate implementation class for the WIFI client to prevent import conflicts
55
***/
66
#include <netinet/in.h>
7+
#include <string.h>
78

89
namespace arduino {
910

1011
class SocketImpl {
1112
public:
1213
SocketImpl() = default;
14+
SocketImpl(int socket) {
15+
sock = socket;
16+
is_connected = true;
17+
memset(&serv_addr, 0, sizeof(serv_addr));
18+
};
1319
SocketImpl(int socket, struct sockaddr_in* address) {
1420
sock = socket;
1521
is_connected = true;

0 commit comments

Comments
 (0)