Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
704f908
)
put set_nonblocking() code back in.
author
Andrew Tridgell
<tridge@samba.org>
Thu, 18 Jun 1998 09:32:45 +0000
(09:32 +0000)
committer
Andrew Tridgell
<tridge@samba.org>
Thu, 18 Jun 1998 09:32:45 +0000
(09:32 +0000)
util.c
patch
|
blob
|
blame
|
history
diff --git
a/util.c
b/util.c
index
b80d516
..
639a4a4
100644
(file)
--- a/
util.c
+++ b/
util.c
@@
-24,15
+24,33
@@
*/
#include "rsync.h"
*/
#include "rsync.h"
-int num_waiting(int fd)
+/****************************************************************************
+Set a fd into nonblocking mode. Uses POSIX O_NONBLOCK if available,
+else
+if SYSV use O_NDELAY
+if BSD use FNDELAY
+****************************************************************************/
+int set_nonblocking(int fd)
{
{
- int len=0;
- ioctl(fd,FIONREAD,&len);
- return(len);
+ int val;
+#ifdef O_NONBLOCK
+#define FLAG_TO_SET O_NONBLOCK
+#else
+#ifdef SYSV
+#define FLAG_TO_SET O_NDELAY
+#else /* BSD */
+#define FLAG_TO_SET FNDELAY
+#endif
+#endif
+
+ if((val = fcntl(fd, F_GETFL, 0)) == -1)
+ return -1;
+ val |= FLAG_TO_SET;
+ return fcntl( fd, F_SETFL, val);
+#undef FLAG_TO_SET
}
}
-
/* this is taken from CVS */
int piped_child(char **command,int *f_in,int *f_out)
{
/* this is taken from CVS */
int piped_child(char **command,int *f_in,int *f_out)
{
@@
-206,7
+224,7
@@
int create_directory_path(char *fname)
derived from GNU C's cccp.c.
*/
derived from GNU C's cccp.c.
*/
-int full_write(int desc, char *ptr, int len)
+
static
int full_write(int desc, char *ptr, int len)
{
int total_written;
{
int total_written;