Skip to content

Commit cd0b758

Browse files
committed
Implement remoteIP() in Ethernet and WiFi
1 parent bdd4c50 commit cd0b758

File tree

5 files changed

+9
-5
lines changed

5 files changed

+9
-5
lines changed

libraries/Ethernet/src/EthernetClient.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ int arduino::EthernetClient::connect(SocketAddress socketAddress) {
3131
}
3232
//sock->sigio(mbed::callback(this, &EthernetClient::getStatus));
3333
//sock->set_blocking(false);
34+
address = socketAddress;
3435
sock->set_timeout(SOCKET_TIMEOUT);
3536
nsapi_error_t returnCode = static_cast<TCPSocket*>(sock)->connect(socketAddress);
3637
return returnCode == NSAPI_ERROR_OK ? 1 : 0;
@@ -134,7 +135,7 @@ uint8_t arduino::EthernetClient::connected() {
134135
}
135136

136137
IPAddress arduino::EthernetClient::remoteIP() {
137-
return IPAddress((uint32_t)0);
138+
return Ethernet.ipAddressFromSocketAddress(address);
138139
}
139140

140141
uint16_t arduino::EthernetClient::remotePort() {

libraries/Ethernet/src/EthernetClient.h

+1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ class EthernetClient : public arduino::Client {
8080
RingBufferN<256> rxBuffer;
8181
uint8_t _status;
8282
mbed::Callback<int(void)> beforeConnect;
83+
SocketAddress address;
8384

8485
void getStatus();
8586
};

libraries/Ethernet/src/EthernetUdp.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include "EthernetUdp.h"
22

3-
extern arduino::EthernetClass WiFi;
3+
extern arduino::EthernetClass Ethernet;
44

55
#ifndef ETHERNET_UDP_BUFFER_SIZE
66
#define ETHERNET_UDP_BUFFER_SIZE 508
@@ -198,4 +198,4 @@ int arduino::EthernetUDP::peek(){
198198
}
199199

200200
return _current_packet[0];
201-
}
201+
}

libraries/WiFi/src/WiFiClient.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ int arduino::WiFiClient::connect(SocketAddress socketAddress) {
3737
}
3838
//sock->sigio(mbed::callback(this, &WiFiClient::getStatus));
3939
//sock->set_blocking(false);
40-
sock->set_timeout(SOCKET_TIMEOUT);
40+
address = socketAddress;
41+
sock->set_timeout(SOCKET_TIMEOUT);
4142
nsapi_error_t returnCode = static_cast<TCPSocket*>(sock)->connect(socketAddress);
4243
return returnCode == NSAPI_ERROR_OK ? 1 : 0;
4344
}
@@ -140,7 +141,7 @@ uint8_t arduino::WiFiClient::connected() {
140141
}
141142

142143
IPAddress arduino::WiFiClient::remoteIP() {
143-
return IPAddress((uint32_t)0);
144+
return WiFi.ipAddressFromSocketAddress(address);
144145
}
145146

146147
uint16_t arduino::WiFiClient::remotePort() {

libraries/WiFi/src/WiFiClient.h

+1
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ class WiFiClient : public arduino::Client {
8181
RingBufferN<256> rxBuffer;
8282
uint8_t _status;
8383
mbed::Callback<int(void)> beforeConnect;
84+
SocketAddress address;
8485

8586
void getStatus();
8687
};

0 commit comments

Comments
 (0)