Skip to content

Commit 4c3ce13

Browse files
SocketWrapper: use static instead lambda for sock deleter
1 parent c80ccfa commit 4c3ce13

File tree

3 files changed

+14
-16
lines changed

3 files changed

+14
-16
lines changed

libraries/SocketWrapper/SocketWrapper.h

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,18 @@ class ZephyrSocketWrapper {
1717
int ssl_sock_temp_char = -1;
1818

1919
// custom deleter for shared_ptr to close automatically the socket
20-
static auto socket_deleter() {
21-
return [](int *fd) {
22-
if (fd && *fd != -1) {
23-
::close(*fd);
24-
delete fd;
25-
}
26-
};
27-
}
20+
static void socket_deleter(int* fd) {
21+
if (fd && *fd != -1) {
22+
::close(*fd);
23+
}
24+
delete fd;
25+
}
2826

2927
public:
3028
ZephyrSocketWrapper() = default;
3129

3230
ZephyrSocketWrapper(int fd)
33-
: sock_fd(std::shared_ptr<int>(fd < 0 ? nullptr : new int(fd), socket_deleter())) {
31+
: sock_fd(std::shared_ptr<int>(fd < 0 ? nullptr : new int(fd), socket_deleter)) {
3432
}
3533

3634
~ZephyrSocketWrapper() = default; // socket close managed by shared_ptr
@@ -66,7 +64,7 @@ class ZephyrSocketWrapper {
6664

6765
raw_sock_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
6866
sock_fd = std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd),
69-
socket_deleter());
67+
socket_deleter);
7068
if (!sock_fd) {
7169
rv = false;
7270

@@ -100,7 +98,7 @@ class ZephyrSocketWrapper {
10098

10199
raw_sock_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
102100
sock_fd = std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd),
103-
socket_deleter());
101+
socket_deleter);
104102
if (!sock_fd) {
105103
return false;
106104
}
@@ -161,7 +159,7 @@ class ZephyrSocketWrapper {
161159

162160
raw_sock_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TLS_1_2);
163161
sock_fd = std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd),
164-
socket_deleter());
162+
socket_deleter);
165163
if (!sock_fd) {
166164
goto exit;
167165
}
@@ -254,7 +252,7 @@ class ZephyrSocketWrapper {
254252

255253
raw_sock_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
256254
sock_fd = std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd),
257-
socket_deleter());
255+
socket_deleter);
258256
if (!sock_fd) {
259257
return false;
260258
}

libraries/SocketWrapper/ZephyrClient.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class ZephyrClient : public arduino::Client, ZephyrSocketWrapper {
1111

1212
protected:
1313
void setSocket(int sock) {
14-
sock_fd = std::shared_ptr<int>(sock < 0 ? nullptr : new int(sock), socket_deleter());
14+
sock_fd = std::shared_ptr<int>(sock < 0 ? nullptr : new int(sock), socket_deleter);
1515
_connected = true;
1616
}
1717

@@ -98,7 +98,7 @@ class ZephyrClient : public arduino::Client, ZephyrSocketWrapper {
9898
}
9999

100100
operator bool() {
101-
return sock_fd;
101+
return (sock_fd != nullptr);
102102
}
103103

104104
String remoteIP() {

libraries/SocketWrapper/ZephyrServer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class ZephyrServer : public arduino::Server, ZephyrSocketWrapper {
3636
}
3737

3838
explicit operator bool() {
39-
return sock_fd;
39+
return (sock_fd != nullptr);
4040
}
4141

4242
ZephyrClient accept(uint8_t *status = nullptr) {

0 commit comments

Comments
 (0)