Skip to content

Commit 521b48a

Browse files
committed
socket_ops: add valid_socket() function and use in roc_panic_if's
1 parent 8238ac2 commit 521b48a

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed

src/internal_modules/roc_netio/target_berkley/roc_netio/socket_ops.cpp

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,20 @@ bool is_malformed(int err) {
9292
return err == EBADF || err == EFAULT || err == ENOTSOCK;
9393
}
9494

95+
#ifndef ROC_TARGET_WINDOWS
96+
97+
bool valid_socket(SocketHandle sock) {
98+
return sock >= 0;
99+
}
100+
101+
#else
102+
103+
bool valid_socket(SocketHandle sock) {
104+
return sock != SocketInvalid;
105+
}
106+
107+
#endif
108+
95109
bool get_local_address(SocketHandle sock, address::SocketAddr& address) {
96110
socklen_t addrlen = address.max_slen();
97111

@@ -307,7 +321,7 @@ bool socket_create(address::AddrFamily family, SocketType type, SocketHandle& ne
307321
bool socket_accept(SocketHandle sock,
308322
SocketHandle& new_sock,
309323
address::SocketAddr& remote_address) {
310-
roc_panic_if(sock < 0);
324+
roc_panic_if(!valid_socket(sock));
311325

312326
socklen_t addrlen = remote_address.max_slen();
313327

@@ -338,7 +352,7 @@ bool socket_accept(SocketHandle sock,
338352
bool socket_accept(SocketHandle sock,
339353
SocketHandle& new_sock,
340354
address::SocketAddr& remote_address) {
341-
roc_panic_if(sock < 0);
355+
roc_panic_if(!valid_socket(sock));
342356

343357
socklen_t addrlen = remote_address.max_slen();
344358

@@ -374,7 +388,7 @@ bool socket_accept(SocketHandle sock,
374388
#endif // defined(ROC_TARGET_POSIX) && defined(SOCK_CLOEXEC) && defined(SOCK_NONBLOCK)
375389

376390
bool socket_setup(SocketHandle sock, const SocketOpts& options) {
377-
roc_panic_if(sock < 0);
391+
roc_panic_if(!valid_socket(sock));
378392

379393
// If SO_NOSIGPIPE is available, enable it here for socket_try_send().
380394
#if defined(SO_NOSIGPIPE)
@@ -392,7 +406,7 @@ bool socket_setup(SocketHandle sock, const SocketOpts& options) {
392406
}
393407

394408
bool socket_bind(SocketHandle sock, address::SocketAddr& local_address) {
395-
roc_panic_if(sock < 0);
409+
roc_panic_if(!valid_socket(sock));
396410
roc_panic_if(!local_address.has_host_port());
397411

398412
// If IPV6_V6ONLY is available, use it for IPv6 addresses.
@@ -420,7 +434,7 @@ bool socket_bind(SocketHandle sock, address::SocketAddr& local_address) {
420434
}
421435

422436
bool socket_listen(SocketHandle sock, size_t backlog) {
423-
roc_panic_if(sock < 0);
437+
roc_panic_if(!valid_socket(sock));
424438

425439
if (listen(sock, (int)backlog) == -1) {
426440
roc_panic_if(is_malformed(errno));
@@ -435,7 +449,7 @@ bool socket_listen(SocketHandle sock, size_t backlog) {
435449
bool socket_begin_connect(SocketHandle sock,
436450
const address::SocketAddr& remote_address,
437451
bool& completed_immediately) {
438-
roc_panic_if(sock < 0);
452+
roc_panic_if(!valid_socket(sock));
439453
roc_panic_if(!remote_address.has_host_port());
440454

441455
int saved_errno = errno;
@@ -463,7 +477,7 @@ bool socket_begin_connect(SocketHandle sock,
463477
}
464478

465479
bool socket_end_connect(SocketHandle sock) {
466-
roc_panic_if(sock < 0);
480+
roc_panic_if(!valid_socket(sock));
467481

468482
int err = 0;
469483

@@ -483,7 +497,7 @@ bool socket_end_connect(SocketHandle sock) {
483497
}
484498

485499
ssize_t socket_try_recv(SocketHandle sock, void* buf, size_t bufsz) {
486-
roc_panic_if(sock < 0);
500+
roc_panic_if(!valid_socket(sock));
487501
roc_panic_if(!buf);
488502

489503
if (bufsz == 0) {
@@ -533,7 +547,7 @@ ssize_t socket_try_recv(SocketHandle sock, void* buf, size_t bufsz) {
533547
//
534548
// If MSG_NOSIGNAL is available (e.g. on Linux), we pass it to send().
535549
ssize_t socket_try_send(SocketHandle sock, const void* buf, size_t bufsz) {
536-
roc_panic_if(sock < 0);
550+
roc_panic_if(!valid_socket(sock));
537551
roc_panic_if(!buf);
538552

539553
if (bufsz == 0) {
@@ -593,7 +607,7 @@ ssize_t socket_try_send(SocketHandle sock, const void* buf, size_t bufsz) {
593607
//
594608
// This implementation requires POSIX 2001.
595609
ssize_t socket_try_send(SocketHandle sock, const void* buf, size_t bufsz) {
596-
roc_panic_if(sock < 0);
610+
roc_panic_if(!valid_socket(sock));
597611
roc_panic_if(!buf);
598612

599613
if (bufsz == 0) {
@@ -679,7 +693,7 @@ ssize_t socket_try_send_to(SocketHandle sock,
679693
const void* buf,
680694
size_t bufsz,
681695
const address::SocketAddr& remote_address) {
682-
roc_panic_if(sock < 0);
696+
roc_panic_if(!valid_socket(sock));
683697
roc_panic_if(!buf);
684698
roc_panic_if(!remote_address.has_host_port());
685699

@@ -725,7 +739,7 @@ ssize_t socket_try_send_to(SocketHandle sock,
725739
#endif
726740

727741
bool socket_shutdown(SocketHandle sock) {
728-
roc_panic_if(sock < 0);
742+
roc_panic_if(!valid_socket(sock));
729743

730744
int flags = 0;
731745

@@ -755,7 +769,7 @@ bool socket_shutdown(SocketHandle sock) {
755769
#ifndef ROC_TARGET_WINDOWS
756770

757771
bool socket_close(SocketHandle sock) {
758-
roc_panic_if(sock < 0);
772+
roc_panic_if(!valid_socket(sock));
759773

760774
if (close(sock) == -1) {
761775
roc_panic_if(is_malformed(errno));
@@ -794,7 +808,7 @@ bool socket_close(SocketHandle sock) {
794808
#endif // ROC_TARGET_WINDOWS
795809

796810
bool socket_close_with_reset(SocketHandle sock) {
797-
roc_panic_if(sock < 0);
811+
roc_panic_if(!valid_socket(sock));
798812

799813
// SO_LINGER with zero timeout instructs close() to send RST instead of FIN.
800814
struct linger ling;

0 commit comments

Comments
 (0)