summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin@dahyabhai.net>2013-08-27 15:51:19 -0400
committerNalin Dahyabhai <nalin@dahyabhai.net>2013-08-27 15:51:19 -0400
commitc7d39f4088115b8aa250251b4a7af7fa2d553374 (patch)
treef5add7b4beeba6ea66c9efc4447e4a46b2641a9a /src
parenta282a73105b52a306ceaacae3805524be725fbb4 (diff)
downloadslapi-nis-c7d39f4088115b8aa250251b4a7af7fa2d553374.tar.gz
slapi-nis-c7d39f4088115b8aa250251b4a7af7fa2d553374.tar.xz
slapi-nis-c7d39f4088115b8aa250251b4a7af7fa2d553374.zip
Error out if the listener can't be non-blocking
Diffstat (limited to 'src')
-rw-r--r--src/plug-nis.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/plug-nis.c b/src/plug-nis.c
index 212063a..a3aa8c1 100644
--- a/src/plug-nis.c
+++ b/src/plug-nis.c
@@ -402,7 +402,15 @@ plugin_state_init(Slapi_PBlock *pb, struct plugin_state **lstate)
}
flags = fcntl(sockfd, F_GETFL);
if ((flags & O_NONBLOCK) == 0) {
- fcntl(sockfd, F_SETFL, flags | O_NONBLOCK);
+ if (fcntl(sockfd, F_SETFL, flags | O_NONBLOCK) == -1) {
+ slapi_log_error(SLAPI_LOG_FATAL,
+ plugin_description.spd_id,
+ "error marking %s socket as "
+ "non-blocking: %s\n", sock_desc,
+ strerror(errno));
+ close(sockfd);
+ goto failed;
+ }
}
/* If it's a stream socket, let the kernel know that we're
* ready to accept client connections. */
@@ -413,7 +421,6 @@ plugin_state_init(Slapi_PBlock *pb, struct plugin_state **lstate)
"error marking %s socket for "
"listening: %s\n", sock_desc,
strerror(errno));
- flags = fcntl(sockfd, F_GETFL);
close(sockfd);
goto failed;
}