pespin submitted this change.

View Change

Approvals: laforge: Looks good to me, but someone else must approve Jenkins Builder: Verified osmith: Looks good to me, approved
stream: Log failure to apply NODELAY sockopt

Failing to apply NODLEAY if asked to will close the fd after accepting
it. Log the error so users understand why the client is rejected after
the connection is opened.

Change-Id: I14feff9ad0fefcd0d30d88073408dd598e7dd067
---
M src/stream.c
M src/stream_srv.c
2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/stream.c b/src/stream.c
index 339dd6a..e2aaf59 100644
--- a/src/stream.c
+++ b/src/stream.c
@@ -182,10 +182,22 @@
#ifdef HAVE_LIBSCTP
case IPPROTO_SCTP:
rc = setsockopt(fd, IPPROTO_SCTP, SCTP_NODELAY, &on, sizeof(on));
+ if (rc < 0) {
+ char errbuf[256];
+ strerror_r(errno, errbuf, sizeof(errbuf));
+ LOGP(DLINP, LOGL_ERROR, "setsockopt(IPPROTO_SCTP, SCTP_NODELAY, %u) failed: %d (%s)\n",
+ on, errno, errbuf);
+ }
break;
#endif
case IPPROTO_TCP:
rc = setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on));
+ if (rc < 0) {
+ char errbuf[256];
+ strerror_r(errno, errbuf, sizeof(errbuf));
+ LOGP(DLINP, LOGL_ERROR, "setsockopt(IPPROTO_TCP, TCP_NODELAY, %u) failed: %d (%s)\n",
+ on, errno, errbuf);
+ }
break;
default:
rc = -1;
diff --git a/src/stream_srv.c b/src/stream_srv.c
index 695a46f..6f86cfd 100644
--- a/src/stream_srv.c
+++ b/src/stream_srv.c
@@ -172,8 +172,11 @@

if (link->flags & OSMO_STREAM_SRV_F_NODELAY) {
ret = stream_setsockopt_nodelay(sock_fd, link->proto, 1);
- if (ret < 0)
+ if (ret < 0) {
+ LOGSLNK(link, LOGL_ERROR, "stream_setsockopt_nodelay: failed setsockopt err=%d\n",
+ errno);
goto error_close_socket;
+ }
}

if (link->ip_dscp > 0) {

To view, visit change 41665. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I14feff9ad0fefcd0d30d88073408dd598e7dd067
Gerrit-Change-Number: 41665
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>