Skip to content

Commit 70ab00c

Browse files
leonardocavagnispennam
authored andcommitted
SocketWrapper: use static instead lambda for sock deleter
1 parent 27cef2a commit 70ab00c

3 files changed

Lines changed: 17 additions & 19 deletions

File tree

libraries/SocketWrapper/SocketWrapper.h

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -68,20 +68,18 @@ class ZephyrSocketWrapper {
6868
#endif
6969

7070
// custom deleter for shared_ptr to close automatically the socket
71-
static auto socket_deleter() {
72-
return [](int *fd) {
73-
if (fd && *fd != -1) {
74-
::close(*fd);
75-
delete fd;
76-
}
77-
};
71+
static void socket_deleter(int *fd) {
72+
if (fd && *fd != -1) {
73+
::close(*fd);
74+
}
75+
delete fd;
7876
}
7977

8078
public:
8179
ZephyrSocketWrapper() = default;
8280

8381
ZephyrSocketWrapper(int fd)
84-
: sock_fd(std::shared_ptr<int>(fd < 0 ? nullptr : new int(fd), socket_deleter())) {
82+
: sock_fd(std::shared_ptr<int>(fd < 0 ? nullptr : new int(fd), socket_deleter)) {
8583
}
8684

8785
~ZephyrSocketWrapper() = default; // socket close managed by shared_ptr
@@ -116,8 +114,8 @@ class ZephyrSocketWrapper {
116114
}
117115

118116
raw_sock_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
119-
sock_fd = std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd),
120-
socket_deleter());
117+
sock_fd =
118+
std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd), socket_deleter);
121119
if (!sock_fd) {
122120
rv = false;
123121

@@ -150,8 +148,8 @@ class ZephyrSocketWrapper {
150148
inet_pton(AF_INET, _host, &addr.sin_addr);
151149

152150
raw_sock_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
153-
sock_fd = std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd),
154-
socket_deleter());
151+
sock_fd =
152+
std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd), socket_deleter);
155153
if (!sock_fd) {
156154
return false;
157155
}
@@ -228,8 +226,8 @@ class ZephyrSocketWrapper {
228226
}
229227

230228
raw_sock_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TLS_1_2);
231-
sock_fd = std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd),
232-
socket_deleter());
229+
sock_fd =
230+
std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd), socket_deleter);
233231
if (!sock_fd) {
234232
goto exit;
235233
}
@@ -321,8 +319,8 @@ class ZephyrSocketWrapper {
321319
addr.sin_addr.s_addr = INADDR_ANY;
322320

323321
raw_sock_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
324-
sock_fd = std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd),
325-
socket_deleter());
322+
sock_fd =
323+
std::shared_ptr<int>(raw_sock_fd < 0 ? nullptr : new int(raw_sock_fd), socket_deleter);
326324
if (!sock_fd) {
327325
return false;
328326
}

libraries/SocketWrapper/ZephyrClient.h

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

1818
protected:
1919
void setSocket(int sock) {
20-
sock_fd = std::shared_ptr<int>(sock < 0 ? nullptr : new int(sock), socket_deleter());
20+
sock_fd = std::shared_ptr<int>(sock < 0 ? nullptr : new int(sock), socket_deleter);
2121
_connected = true;
2222
}
2323

@@ -104,7 +104,7 @@ class ZephyrClient : public arduino::Client, ZephyrSocketWrapper {
104104
}
105105

106106
operator bool() {
107-
return sock_fd;
107+
return (sock_fd != nullptr);
108108
}
109109

110110
String remoteIP() {

libraries/SocketWrapper/ZephyrServer.h

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

4444
explicit operator bool() {
45-
return sock_fd;
45+
return (sock_fd != nullptr);
4646
}
4747

4848
ZephyrClient accept(uint8_t *status = nullptr) {

0 commit comments

Comments
 (0)