diff --git a/libraries/WiFi/src/WiFiClient.cpp b/libraries/WiFi/src/WiFiClient.cpp index a4301ad0e09..91247d17386 100644 --- a/libraries/WiFi/src/WiFiClient.cpp +++ b/libraries/WiFi/src/WiFiClient.cpp @@ -322,6 +322,16 @@ int WiFiClient::setSocketOption(int level, int option, const void* value, size_t return res; } +int WiFiClient::getSocketOption(int level, int option, const void* value, size_t size) +{ + int res = getsockopt(fd(), level, option, (char *)value, (socklen_t*)&size); + if(res < 0) { + log_e("fail on fd %d, errno: %d, \"%s\"", fd(), errno, strerror(errno)); + } + return res; +} + + int WiFiClient::setTimeout(uint32_t seconds) { Client::setTimeout(seconds * 1000); // This should be here? diff --git a/libraries/WiFi/src/WiFiClient.h b/libraries/WiFi/src/WiFiClient.h index b18f9324209..cdb0e0539e9 100644 --- a/libraries/WiFi/src/WiFiClient.h +++ b/libraries/WiFi/src/WiFiClient.h @@ -88,6 +88,7 @@ class WiFiClient : public ESPLwIPClient int setSocketOption(int option, char* value, size_t len); int setSocketOption(int level, int option, const void* value, size_t len); + int getSocketOption(int level, int option, const void* value, size_t size); int setOption(int option, int *value); int getOption(int option, int *value); int setTimeout(uint32_t seconds);