未验证 提交 cb3ffd0b 编写于 作者: 2 20162026 提交者: GitHub

Add full setsocketoption to WifiClient and WifiClientSecure (#7030)

上级 12169d85
......@@ -303,9 +303,14 @@ int WiFiClient::connect(const char *host, uint16_t port, int32_t timeout)
int WiFiClient::setSocketOption(int option, char* value, size_t len)
{
int res = setsockopt(fd(), SOL_SOCKET, option, value, len);
return setSocketOption(SOL_SOCKET, option, (const void*)value, len);
}
int WiFiClient::setSocketOption(int level, int option, const void* value, size_t len)
{
int res = setsockopt(fd(), level, option, value, len);
if(res < 0) {
log_e("%X : %d", option, errno);
log_e("fail on %d, errno: %d, \"%s\"", fd(), errno, strerror(errno));
}
return res;
}
......@@ -330,11 +335,7 @@ int WiFiClient::setTimeout(uint32_t seconds)
int WiFiClient::setOption(int option, int *value)
{
int res = setsockopt(fd(), IPPROTO_TCP, option, (char *) value, sizeof(int));
if(res < 0) {
log_e("fail on fd %d, errno: %d, \"%s\"", fd(), errno, strerror(errno));
}
return res;
return setSocketOption(IPPROTO_TCP, option, (const void*)value, sizeof(int));
}
int WiFiClient::getOption(int option, int *value)
......
......@@ -87,6 +87,7 @@ public:
int fd() const;
int setSocketOption(int option, char* value, size_t len);
int setSocketOption(int level, int option, const void* value, size_t len);
int setOption(int option, int *value);
int getOption(int option, int *value);
int setTimeout(uint32_t seconds);
......
......@@ -378,9 +378,14 @@ int WiFiClientSecure::setTimeout(uint32_t seconds)
}
int WiFiClientSecure::setSocketOption(int option, char* value, size_t len)
{
int res = setsockopt(sslclient->socket, SOL_SOCKET, option, value, len);
return setSocketOption(SOL_SOCKET, option, (const void*)value, len);
}
int WiFiClientSecure::setSocketOption(int level, int option, const void* value, size_t len)
{
int res = setsockopt(sslclient->socket, level, option, value, len);
if(res < 0) {
log_e("%X : %d", option, errno);
log_e("fail on %d, errno: %d, \"%s\"", sslclient->socket, errno, strerror(errno));
}
return res;
}
......@@ -81,6 +81,7 @@ public:
bool getFingerprintSHA256(uint8_t sha256_result[32]) { return get_peer_fingerprint(sslclient, sha256_result); };
int setTimeout(uint32_t seconds);
int setSocketOption(int option, char* value, size_t len);
int setSocketOption(int level, int option, const void* value, size_t len);
operator bool()
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册