Commit | Line | Data |
---|---|---|
2c8f6e6e | 1 | This 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 |