From 5d24532c4a2eb2ec6d55c6d4878629582403c3f0 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Wed, 22 Sep 2004 16:37:10 +0000 Subject: [PATCH] Moved the mkfifo() and socket-making stuff from tru64.diff to here so that a system like FreeBSD can use it without the extra tru64 stuff. --- mkfifo.diff | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 mkfifo.diff diff --git a/mkfifo.diff b/mkfifo.diff new file mode 100644 index 0000000..2703d7d --- /dev/null +++ b/mkfifo.diff @@ -0,0 +1,45 @@ +--- orig/rsync.h 2004-09-22 08:47:31 ++++ rsync.h 2004-07-03 20:23:33 +@@ -163,6 +163,10 @@ enum msgcode { + #include + #endif + ++#ifdef HAVE_SYS_UN_H ++#include ++#endif ++ + #ifdef HAVE_STRING_H + #include + #endif +--- orig/syscall.c 2004-08-02 21:56:59 ++++ syscall.c 2004-06-18 17:38:35 +@@ -76,6 +76,29 @@ int do_mknod(char *pathname, mode_t mode + { + if (dry_run) return 0; + RETURN_ERROR_IF_RO_OR_LO; ++# if HAVE_MKFIFO ++ if (S_ISFIFO(mode)) ++ return mkfifo(pathname, mode); ++# endif ++# if HAVE_SYS_UN_H ++ if (S_ISSOCK(mode)) { ++ int sock; ++ struct sockaddr_un saddr; ++ int len = strlen(pathname) + 1; /* include null */ ++ ++ saddr.sun_family = AF_UNIX; ++ strncpy(saddr.sun_path, pathname, sizeof saddr.sun_path); ++ saddr.sun_len = len > sizeof saddr.sun_path ? sizeof saddr.sun_path : len; ++ ++ if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) ++ return -1; ++ unlink(pathname); ++ if ((bind(sock, (struct sockaddr*)&saddr, sizeof saddr)) < 0) ++ return -1; ++ close(sock); ++ return do_chmod(pathname, mode); ++ } ++# endif + return mknod(pathname, mode, dev); + } + #endif -- 2.34.1