summaryrefslogtreecommitdiffstats
path: root/src/responder
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2014-12-08 17:39:57 +0100
committerJakub Hrozek <jhrozek@redhat.com>2015-01-15 10:33:01 +0100
commitf3d91181d4ee9da3f8bbf4ddf8782951c0ae46c1 (patch)
treebac7a56e6bf8d336437396d937f01ed1d04ebd11 /src/responder
parent0e8a48e38e467b05951d2719956f8c0d5aed76b3 (diff)
downloadsssd-f3d91181d4ee9da3f8bbf4ddf8782951c0ae46c1.tar.gz
sssd-f3d91181d4ee9da3f8bbf4ddf8782951c0ae46c1.tar.xz
sssd-f3d91181d4ee9da3f8bbf4ddf8782951c0ae46c1.zip
UTIL: Unify the fd_nonblocking implementation
The responder and child_common modules each had their own implementation. Unify it instead and add a unit test. Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Diffstat (limited to 'src/responder')
-rw-r--r--src/responder/common/responder_common.c25
1 files changed, 1 insertions, 24 deletions
diff --git a/src/responder/common/responder_common.c b/src/responder/common/responder_common.c
index a5a444787..666abe610 100644
--- a/src/responder/common/responder_common.c
+++ b/src/responder/common/responder_common.c
@@ -22,8 +22,6 @@
#include "config.h"
#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/socket.h>
@@ -45,27 +43,6 @@
#include "monitor/monitor_interfaces.h"
#include "sbus/sbus_client.h"
-static errno_t set_nonblocking(int fd)
-{
- int v;
- int ferr;
- errno_t error;
-
- /* Get the current flags for this file descriptor */
- v = fcntl(fd, F_GETFL, 0);
-
- errno = 0;
- /* Set the non-blocking flag on this fd */
- ferr = fcntl(fd, F_SETFL, v | O_NONBLOCK);
- if (ferr < 0) {
- error = errno;
- DEBUG(SSSDBG_FATAL_FAILURE, "Unable to set fd non-blocking: [%d][%s]\n",
- error, strerror(error));
- return error;
- }
- return EOK;
-}
-
static errno_t set_close_on_exec(int fd)
{
int v;
@@ -601,7 +578,7 @@ int create_pipe_fd(const char *sock_name, int *_fd, mode_t umaskval)
orig_umaskval = umask(umaskval);
- ret = set_nonblocking(fd);
+ ret = sss_fd_nonblocking(fd);
if (ret != EOK) {
goto done;
}