pespin has uploaded this change for review.

View Change

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(-)

git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/65/41665/1
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: newchange
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I14feff9ad0fefcd0d30d88073408dd598e7dd067
Gerrit-Change-Number: 41665
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>