Skip to content

Commit 472ebb4

Browse files
SocketWrapper: use static instead lambda for sock deleter
1 parent c80ccfa commit 472ebb4

File tree

3 files changed

+17
-19
lines changed

3 files changed

+17
-19
lines changed

libraries/SocketWrapper/SocketWrapper.h

Lines changed: 14 additions & 16 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-
};
20+
static void socket_deleter(int *fd) {
21+
if (fd && *fd != -1) {
22+
::close(*fd);
23+
}
24+
delete fd;
2725
}
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
@@ -65,8 +63,8 @@ class ZephyrSocketWrapper {
6563
}
6664

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

@@ -99,8 +97,8 @@ class ZephyrSocketWrapper {
9997
inet_pton(AF_INET, _host, &addr.sin_addr);
10098

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

162160
raw_sock_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TLS_1_2);
163-
sock_fd = std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd),
164-
socket_deleter());
161+
sock_fd =
162+
std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd), socket_deleter);
165163
if (!sock_fd) {
166164
goto exit;
167165
}
@@ -253,8 +251,8 @@ class ZephyrSocketWrapper {
253251
addr.sin_addr.s_addr = INADDR_ANY;
254252

255253
raw_sock_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
256-
sock_fd = std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd),
257-
socket_deleter());
254+
sock_fd =
255+
std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd), 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)