[dovecot-cvs] dovecot/src/lib Makefile.am, 1.52,
1.53 fd-set-nonblock.c, NONE, 1.1 fd-set-nonblock.h, NONE,
1.1 ioloop-notify-dn.c, 1.7, 1.8 network.c, 1.33, 1.34
cras at dovecot.org
cras at dovecot.org
Sun Sep 25 14:12:26 EEST 2005
Update of /var/lib/cvs/dovecot/src/lib
In directory talvi:/tmp/cvs-serv9193
Modified Files:
Makefile.am ioloop-notify-dn.c network.c
Added Files:
fd-set-nonblock.c fd-set-nonblock.h
Log Message:
Added fd_set_nonblock() and changed net_set_nonblock() to use it.
Index: Makefile.am
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/Makefile.am,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -d -r1.52 -r1.53
--- Makefile.am 12 Jul 2005 15:40:33 -0000 1.52
+++ Makefile.am 25 Sep 2005 11:12:24 -0000 1.53
@@ -8,6 +8,7 @@
env-util.c \
failures.c \
fd-close-on-exec.c \
+ fd-set-nonblock.c \
fdpass.c \
file-cache.c \
file-dotlock.c \
@@ -83,6 +84,7 @@
env-util.h \
failures.h \
fd-close-on-exec.h \
+ fd-set-nonblock.h \
fdpass.h \
file-cache.h \
file-dotlock.h \
--- NEW FILE: fd-set-nonblock.c ---
/* Copyright (c) 1999-2005 Timo Sirainen */
#include "lib.h"
#include "fd-set-nonblock.h"
#include <fcntl.h>
int fd_set_nonblock(int fd, int nonblock)
{
int flags;
flags = fcntl(fd, F_GETFL, 0);
if (flags < 0) {
i_error("fcntl(%d, F_GETFL) failed: %m", fd);
return -1;
}
if (nonblock)
flags |= O_NONBLOCK;
else
flags &= ~O_NONBLOCK;
if (fcntl(fd, F_SETFL, flags) < 0) {
i_error("fcntl(%d, F_SETFL) failed: %m", fd);
return -1;
}
return 0;
}
--- NEW FILE: fd-set-nonblock.h ---
#ifndef __FD_SET_NONBLOCK_H
#define __FD_SET_NONBLOCK_H
/* Set file descriptor to blocking/nonblocking state */
int fd_set_nonblock(int fd, int nonblock);
#endif
Index: ioloop-notify-dn.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/ioloop-notify-dn.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- ioloop-notify-dn.c 14 Aug 2005 21:54:20 -0000 1.7
+++ ioloop-notify-dn.c 25 Sep 2005 11:12:24 -0000 1.8
@@ -8,7 +8,7 @@
#ifdef IOLOOP_NOTIFY_DNOTIFY
#include "ioloop-internal.h"
-#include "network.h"
+#include "fd-set-nonblock.h"
#include "fd-close-on-exec.h"
#include <signal.h>
@@ -154,8 +154,8 @@
return;
}
- net_set_nonblock(event_pipe[0], TRUE);
- net_set_nonblock(event_pipe[1], TRUE);
+ fd_set_nonblock(event_pipe[0], TRUE);
+ fd_set_nonblock(event_pipe[1], TRUE);
fd_close_on_exec(event_pipe[0], TRUE);
fd_close_on_exec(event_pipe[1], TRUE);
Index: network.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/network.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- network.c 18 Sep 2005 11:29:05 -0000 1.33
+++ network.c 25 Sep 2005 11:12:24 -0000 1.34
@@ -1,6 +1,7 @@
-/* Copyright (c) 1999-2003 Timo Sirainen */
+/* Copyright (c) 1999-2005 Timo Sirainen */
#include "lib.h"
+#include "fd-set-nonblock.h"
#include "network.h"
#include <unistd.h>
@@ -203,23 +204,10 @@
}
/* Set socket blocking/nonblocking */
-void net_set_nonblock(int fd __attr_unused__, int nonblock __attr_unused__)
+void net_set_nonblock(int fd, int nonblock)
{
-#ifdef HAVE_FCNTL
- int flags;
-
- flags = fcntl(fd, F_GETFL, 0);
- if (flags == -1)
- i_fatal("net_set_nonblock() failed: %m");
-
- if (nonblock)
- flags |= O_NONBLOCK;
- else
- flags &= ~O_NONBLOCK;
-
- if (fcntl(fd, F_SETFL, flags) < 0)
- i_fatal("net_set_nonblock() failed: %m");
-#endif
+ if (fd_set_nonblock(fd, nonblock) < 0)
+ i_fatal("fd_set_nonblock(%d) failed: %m", fd);
}
int net_set_cork(int fd __attr_unused__, int cork __attr_unused__)
More information about the dovecot-cvs
mailing list