+Depends-On-Patch: mkfifo.diff
+
This is an adapted version of the original by Zoong Pham.
--- orig/lib/getaddrinfo.c 2004-03-16 01:26:36
#if defined(__KAME__) && defined(INET6)
# define FAITH
#endif
---- orig/rsync.h 2004-08-03 15:41:32
+--- orig/rsync.h 2004-07-03 20:23:33
+++ rsync.h 2004-07-03 20:23:33
-@@ -162,6 +162,11 @@ enum msgcode {
- #include <sys/socket.h>
+@@ -164,6 +164,7 @@ enum msgcode {
#endif
-+#ifdef HAVE_SYS_UN_H
+ #ifdef HAVE_SYS_UN_H
+#define _SOCKADDR_LEN
-+#include <sys/un.h>
-+#endif
-+
- #ifdef HAVE_STRING_H
- #include <string.h>
- #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);
- }
+ #include <sys/un.h>
#endif
+