diff options
author | Oliver Eikemeier <eik@FreeBSD.org> | 2004-08-24 16:30:50 +0000 |
---|---|---|
committer | Oliver Eikemeier <eik@FreeBSD.org> | 2004-08-24 16:30:50 +0000 |
commit | 2e261a96c0c9b7bd9c745fa390fe67e91aa551a4 (patch) | |
tree | 9bcc3e0e9409e9ce6614d0f11dfb7916e0b5bf3b /net | |
parent | - Remove dead mirrors, add few new ones (diff) |
enable copying of fifos/sockets
Requested by: Eike Bernhardt <eike@unorganized.net>
PR: 59814
Obtained from: Thomas Quinot <thomas@cuivre.fr.eu.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/rsync/Makefile | 2 | ||||
-rw-r--r-- | net/rsync/distinfo | 2 | ||||
-rw-r--r-- | net/rsync/files/patch-rsync.h | 18 | ||||
-rw-r--r-- | net/rsync/files/patch-syscall.c | 39 |
4 files changed, 60 insertions, 1 deletions
diff --git a/net/rsync/Makefile b/net/rsync/Makefile index 0b870819b9a8..3523ff66e529 100644 --- a/net/rsync/Makefile +++ b/net/rsync/Makefile @@ -7,7 +7,7 @@ PORTNAME= rsync PORTVERSION= 2.6.2 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= net ipv6 MASTER_SITES= http://rsync.samba.org/ftp/%SUBDIR%/ \ ftp://sunsite.auc.dk/pub/unix/%SUBDIR%/ \ diff --git a/net/rsync/distinfo b/net/rsync/distinfo index 579857711242..cd94e46f84e3 100644 --- a/net/rsync/distinfo +++ b/net/rsync/distinfo @@ -1,2 +1,4 @@ MD5 (rsync-2.6.2.tar.gz) = bcacd9a9108a9e4760832212ec3d658d SIZE (rsync-2.6.2.tar.gz) = 515402 +MD5 (rsync-2.6.2-2.6.3pre1.diffs.gz) = 2ecd11b83c06a18c764ccee5dbdb25ab +SIZE (rsync-2.6.2-2.6.3pre1.diffs.gz) = 102947 diff --git a/net/rsync/files/patch-rsync.h b/net/rsync/files/patch-rsync.h new file mode 100644 index 000000000000..d9039e2c5f59 --- /dev/null +++ b/net/rsync/files/patch-rsync.h @@ -0,0 +1,18 @@ +# +# enable copying of fifos/sockets +# <http://lists.samba.org/archive/rsync/2002-June/002966.html> +# <http://www.freebsd.org/cgi/query-pr.cgi?pr=59814> +# +--- rsync.h.orig Tue Aug 24 16:37:59 2004 ++++ rsync.h Tue Aug 24 16:38:28 2004 +@@ -156,6 +156,10 @@ + #include <sys/socket.h> + #endif + ++#ifdef HAVE_SYS_UN_H ++#include <sys/un.h> ++#endif ++ + #ifdef HAVE_STRING_H + #include <string.h> + #endif diff --git a/net/rsync/files/patch-syscall.c b/net/rsync/files/patch-syscall.c new file mode 100644 index 000000000000..a68cac8c7225 --- /dev/null +++ b/net/rsync/files/patch-syscall.c @@ -0,0 +1,39 @@ +# +# enable copying of fifos/sockets +# <http://lists.samba.org/archive/rsync/2002-June/002966.html> +# <http://www.freebsd.org/cgi/query-pr.cgi?pr=59814> +# +--- syscall.c.orig Wed Feb 18 23:33:21 2004 ++++ syscall.c Tue Aug 24 17:56:25 2004 +@@ -76,6 +76,31 @@ + { + 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 fd; ++ struct sockaddr_un *su; ++ size_t len; ++ if ((fd = socket(PF_UNIX, SOCK_STREAM, 0)) == -1) ++ return -1; ++ unlink(pathname); ++ len = sizeof(*su) - sizeof(su->sun_path) + strlen(pathname); ++ if ((su = calloc(1, len + 1)) == NULL) ++ return -1; ++ su->sun_len = len; ++ su->sun_family = AF_UNIX; ++ strcpy(su->sun_path, pathname); ++ if (bind(fd, (const struct sockaddr *)su, len) < 0) ++ return -1; ++ free(su); ++ close(fd); ++ return do_chmod(pathname, mode); ++ } ++#endif + return mknod(pathname, mode, dev); + } + #endif |