Skip to content

Commit

Permalink
Warn about getsockopt() errors
Browse files Browse the repository at this point in the history
  • Loading branch information
jes committed Feb 16, 2024
1 parent fa3471e commit dca1048
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 4 deletions.
6 changes: 5 additions & 1 deletion modules/tls_openssl/openssl_conn_ops.c
Original file line number Diff line number Diff line change
Expand Up @@ -756,7 +756,11 @@ int openssl_tls_async_connect(struct tcp_connection *con, int fd,
#endif
{
err_len=sizeof(err);
getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &err_len);
if (getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &err_len) != 0) {
LM_WARN("getsockopt error: fd=%d [server=%s:%d]: (%d) %s\n", fd,
ip_addr2a(&con->rcv.src_ip), con->rcv.src_port,
errno, strerror(errno));
}
if ((err==0) && (poll_err==0))
continue; /* retry ssl connect */
if (err!=EINPROGRESS && err!=EALREADY){
Expand Down
6 changes: 5 additions & 1 deletion modules/tls_wolfssl/wolfssl_conn_ops.c
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,11 @@ int _wolfssl_tls_async_connect(struct tcp_connection *con, int fd,
#endif
{
err_len=sizeof(err);
getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &err_len);
if (getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &err_len) != 0) {
LM_WARN("getsockopt error: fd=%d [server=%s:%d]: (%d) %s\n", fd,
ip_addr2a(&con->rcv.src_ip), con->rcv.src_port,
errno, strerror(errno));
}
if ((err==0) && (poll_err==0))
continue; /* retry ssl connect */
if (err!=EINPROGRESS && err!=EALREADY){
Expand Down
12 changes: 10 additions & 2 deletions net/tcp_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,11 @@ int tcp_connect_blocking_timeout(int fd, const struct sockaddr *servaddr,
#endif
{
err_len=sizeof(err);
getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &err_len);
if (getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &err_len) != 0) {
get_su_info( servaddr, ip, port);
LM_WARN("getsockopt error: fd=%d [server=%s:%d]: (%d) %s\n", fd,
ip, port, errno, strerror(errno));
}
if ((err==0) && (poll_err==0)) goto end;
if (err!=EINPROGRESS && err!=EALREADY){
get_su_info( servaddr, ip, port);
Expand Down Expand Up @@ -316,7 +320,11 @@ int tcp_async_connect(const struct socket_info* send_sock,
#endif
{
err_len=sizeof(err);
getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &err_len);
if (getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &err_len) != 0) {
get_su_info( servaddr, ip, port);
LM_WARN("getsockopt error: fd=%d [server=%s:%d]: (%d) %s\n", fd,
ip, port, errno, strerror(errno));
}
if ((err==0) && (poll_err==0)) goto local_connect;
if (err!=EINPROGRESS && err!=EALREADY){
get_su_info(&server->s, ip, port);
Expand Down

0 comments on commit dca1048

Please sign in to comment.