Moved the mkfifo() and socket-making stuff from tru64.diff to here so
[rsync/rsync-patches.git] / tru64.diff
CommitLineData
2c8f6e6e 1This is an adapted version of the original by Zoong Pham.
fbc35144 2
13bed3dd
WD
3--- orig/lib/getaddrinfo.c 2004-03-16 01:26:36
4+++ lib/getaddrinfo.c 2004-06-18 17:38:35
5@@ -41,6 +41,20 @@
6
7 #include <rsync.h>
8
9+/****** Start Zoong added here */
10+
11+#define EAI_BADHINTS 12
12+#define EAI_PROTOCOL 13
13+#define EAI_MAX 14
14+
15+#define AI_PASSIVE 0x00000001 /* get address to use bind() */
16+#define AI_CANONNAME 0x00000002 /* fill ai_canonname */
17+#define AI_NUMERICHOST 0x00000004 /* prevent name resolution */
18+#define AI_MASK (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST)
19+
20+/****** End Zoong added here */
21+
22+
23 #if defined(__KAME__) && defined(INET6)
24 # define FAITH
25 #endif
f635ed27 26--- orig/rsync.h 2004-08-03 15:41:32
13bed3dd 27+++ rsync.h 2004-07-03 20:23:33
f635ed27 28@@ -162,6 +162,11 @@ enum msgcode {
fbc35144
MP
29 #include <sys/socket.h>
30 #endif
31
32+#ifdef HAVE_SYS_UN_H
33+#define _SOCKADDR_LEN
34+#include <sys/un.h>
35+#endif
36+
37 #ifdef HAVE_STRING_H
38 #include <string.h>
39 #endif
f635ed27 40--- orig/syscall.c 2004-08-02 21:56:59
13bed3dd 41+++ syscall.c 2004-06-18 17:38:35
2c8f6e6e 42@@ -76,6 +76,29 @@ int do_mknod(char *pathname, mode_t mode
fbc35144
MP
43 {
44 if (dry_run) return 0;
2c8f6e6e
WD
45 RETURN_ERROR_IF_RO_OR_LO;
46+# if HAVE_MKFIFO
47+ if (S_ISFIFO(mode))
48+ return mkfifo(pathname, mode);
49+# endif
50+# if HAVE_SYS_UN_H
51+ if (S_ISSOCK(mode)) {
52+ int sock;
53+ struct sockaddr_un saddr;
54+ int len = strlen(pathname) + 1; /* include null */
fbc35144 55+
2c8f6e6e
WD
56+ saddr.sun_family = AF_UNIX;
57+ strncpy(saddr.sun_path, pathname, sizeof saddr.sun_path);
58+ saddr.sun_len = len > sizeof saddr.sun_path ? sizeof saddr.sun_path: len;
fbc35144 59+
2c8f6e6e
WD
60+ if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
61+ return -1;
62+ unlink(pathname);
63+ if ((bind(sock, (struct sockaddr*)&saddr, sizeof saddr)) < 0)
64+ return -1;
65+ close(sock);
66+ return do_chmod(pathname, mode);
67+ }
68+# endif
69 return mknod(pathname, mode, dev);
70 }
71 #endif