aboutsummaryrefslogtreecommitdiffstats
path: root/net/udpcast
diff options
context:
space:
mode:
authorlioux <lioux@FreeBSD.org>2004-07-21 06:11:31 +0800
committerlioux <lioux@FreeBSD.org>2004-07-21 06:11:31 +0800
commitb0a70ef47c03dba1c7de7bd9d65749d8960f7137 (patch)
tree598d413cb6011634f978277b14159e6783fe3d1d /net/udpcast
parent996dca988490c3bb8d6d4419a8262f46357e6631 (diff)
downloadfreebsd-ports-gnome-b0a70ef47c03dba1c7de7bd9d65749d8960f7137.tar.gz
freebsd-ports-gnome-b0a70ef47c03dba1c7de7bd9d65749d8960f7137.tar.zst
freebsd-ports-gnome-b0a70ef47c03dba1c7de7bd9d65749d8960f7137.zip
New port udpcast version 20040531: A file transfer tool using
ethernet's multicast
Diffstat (limited to 'net/udpcast')
-rw-r--r--net/udpcast/Makefile60
-rw-r--r--net/udpcast/distinfo2
-rw-r--r--net/udpcast/files/patch-participants.h10
-rw-r--r--net/udpcast/files/patch-socklib.c38
-rw-r--r--net/udpcast/files/patch-statistics.c11
-rw-r--r--net/udpcast/files/patch-udpr-negotiate.c60
-rw-r--r--net/udpcast/pkg-descr10
7 files changed, 191 insertions, 0 deletions
diff --git a/net/udpcast/Makefile b/net/udpcast/Makefile
new file mode 100644
index 000000000000..64cff1058aae
--- /dev/null
+++ b/net/udpcast/Makefile
@@ -0,0 +1,60 @@
+# New ports collection makefile for: udpcast
+# Date created: Mon Jul 19 19:10:56 UTC 2004
+# Whom: Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= udpcast
+PORTVERSION= 0.${RELEASE_DATE}
+CATEGORIES= mbone sysutils
+MASTER_SITES= http://udpcast.linux.lu/current/
+DISTNAME= ${PORTNAME}-${RELEASE_DATE}
+
+MAINTAINER= lioux@FreeBSD.org
+COMMENT= A file transfer tool using ethernet's multicast
+
+USE_REINPLACE= yes
+USE_GETOPT_LONG=yes
+USE_GMAKE= yes
+WRKSRC= ${WRKDIR}/${PORTNAME}
+
+RELEASE_DATE= 20040531
+
+PROGRAM_SBIN_FILES= udp-receiver udp-sender
+
+PLIST_FILES= sbin/udp-receiver \
+ sbin/udp-sender
+PORTDOCS= Changelog.txt cmd.html
+
+MAN1= udp-receiver.1 udp-sender.1
+
+post-patch:
+ @${REINPLACE_CMD} -E \
+ -e 's|<malloc.h>|<stdlib.h>|' \
+ ${WRKSRC}/libbb_udpcast.h
+
+do-configure:
+# C{C,FLAGS}, PTHREAD_* safeness
+ @${REINPLACE_CMD} -E \
+ -e 's|gcc|${CC}|' \
+ -e 's|^(CFLAGS[[:space:]]*=.+)$$|\1 ${CFLAGS} ${CPPFLAGS} ${PTHREAD_CFLAGS}|' \
+ -e 's|^(LDFLAGS[[:space:]]*=.+)$$|\1 ${LDFLAGS}|' \
+ -e 's|-lpthread|${PTHREAD_LIBS}|g' \
+ ${BUILD_WRKSRC}/${MAKEFILE}
+
+
+do-install:
+.ifndef(NOPORTDOCS)
+. for file in ${PORTDOCS}
+ @${INSTALL_DATA} ${WRKSRC}/${file} ${DOCSDIR}
+. endfor
+.endif
+.for file in ${PROGRAM_SBIN_FILES}
+ @${INSTALL_PROGRAM} ${WRKSRC}/${file} ${PREFIX}/sbin/
+.endfor
+.for file in ${MAN1}
+ @${INSTALL_MAN} ${WRKSRC}/${file} ${MANPREFIX}/man/man1/
+.endfor
+
+.include <bsd.port.mk>
diff --git a/net/udpcast/distinfo b/net/udpcast/distinfo
new file mode 100644
index 000000000000..a810bd158ea0
--- /dev/null
+++ b/net/udpcast/distinfo
@@ -0,0 +1,2 @@
+MD5 (udpcast-20040531.tar.gz) = e965fae35ae7450098c29984d3997344
+SIZE (udpcast-20040531.tar.gz) = 67213
diff --git a/net/udpcast/files/patch-participants.h b/net/udpcast/files/patch-participants.h
new file mode 100644
index 000000000000..f09b1aa4c62b
--- /dev/null
+++ b/net/udpcast/files/patch-participants.h
@@ -0,0 +1,10 @@
+--- participants.h.orig Tue Jul 20 13:49:28 2004
++++ participants.h Tue Jul 20 13:49:40 2004
+@@ -3,6 +3,7 @@
+
+ #define MAX_CLIENTS 1024
+
++#include <sys/types.h>
+ #include <sys/socket.h>
+
+ typedef struct participantsDb *participantsDb_t;
diff --git a/net/udpcast/files/patch-socklib.c b/net/udpcast/files/patch-socklib.c
new file mode 100644
index 000000000000..03d62095cdad
--- /dev/null
+++ b/net/udpcast/files/patch-socklib.c
@@ -0,0 +1,38 @@
+--- socklib.c.orig Sat Feb 21 13:58:37 2004
++++ socklib.c Tue Jul 20 17:58:51 2004
+@@ -16,6 +16,8 @@
+ #include "log.h"
+ #include "socklib.h"
+
++#undef SIOCGIFINDEX
++
+ #ifdef LOSSTEST
+ /**
+ * Packet loss/swap testing...
+@@ -289,7 +291,7 @@
+
+ int setTtl(int sock, int ttl) {
+ /* set the socket to broadcast */
+- return setsockopt(sock, SOL_IP, IP_MULTICAST_TTL, &ttl, sizeof(int));
++ return setsockopt(sock, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, sizeof(int));
+ }
+
+ #ifdef SIOCGIFINDEX
+@@ -334,7 +336,7 @@
+ int r;
+
+ fillMreq(sock, ifname, addr, &mreq);
+- r = setsockopt(sock, SOL_IP, code, &mreq, sizeof(mreq));
++ r = setsockopt(sock, IPPROTO_IP, code, &mreq, sizeof(mreq));
+ if(r < 0) {
+ perror(message);
+ exit(1);
+@@ -366,7 +368,7 @@
+
+
+ int setMcastDestination(int sock, char *ifname, struct sockaddr *addr) {
+-#ifdef __CYGWIN__
++#if defined(__CYGWIN__) || defined(__FreeBSD__)
+ int r;
+ struct sockaddr interface_addr;
+ struct in_addr if_addr;
diff --git a/net/udpcast/files/patch-statistics.c b/net/udpcast/files/patch-statistics.c
new file mode 100644
index 000000000000..176e5136b246
--- /dev/null
+++ b/net/udpcast/files/patch-statistics.c
@@ -0,0 +1,11 @@
+--- statistics.c.orig Tue Jul 20 10:46:11 2004
++++ statistics.c Tue Jul 20 12:00:59 2004
+@@ -37,7 +37,7 @@
+ static void printFilePosition(int fd) {
+ #ifndef __CYGWIN__
+ if(fd != -1) {
+- loff_t offset = lseek64(fd, 0, SEEK_CUR);
++ off_t offset = lseek(fd, 0, SEEK_CUR);
+ printLongNum(offset);
+ }
+ #endif
diff --git a/net/udpcast/files/patch-udpr-negotiate.c b/net/udpcast/files/patch-udpr-negotiate.c
new file mode 100644
index 000000000000..db9f50ba147d
--- /dev/null
+++ b/net/udpcast/files/patch-udpr-negotiate.c
@@ -0,0 +1,60 @@
+--- udpr-negotiate.c.orig Sat Feb 21 14:08:49 2004
++++ udpr-negotiate.c Tue Jul 20 13:44:05 2004
+@@ -2,6 +2,10 @@
+ #include <unistd.h>
+ #include <errno.h>
+
++#if (defined(__unix__) || defined(unix)) && !defined(USG)
++#include <sys/param.h>
++#endif
++
+ #include "log.h"
+ #include "socklib.h"
+ #include "udpcast.h"
+@@ -16,6 +20,10 @@
+ # define O_BINARY 0
+ #endif
+
++#ifdef __FreeBSD__
++struct client_config client_config_on_exit_hack;
++#endif
++
+ static int sendConnectReq(struct client_config *client_config,
+ struct net_config *net_config,
+ int haveServerAddress) {
+@@ -48,6 +56,12 @@
+ sendDisconnect(exitStatus, (struct client_config *) args);
+ }
+
++#ifdef __FreeBSD__
++static void sendDisconnectWrapper_on_exit_handler() {
++ sendDisconnectWrapper(0, &client_config_on_exit_hack);
++}
++#endif
++
+ void sendDisconnect(int exitStatus,
+ struct client_config *client_config) {
+ int endianness = client_config->endianness;
+@@ -144,7 +158,7 @@
+ if(disk_config->fileName != NULL) {
+ int oflags = O_CREAT | O_WRONLY;
+ if(!(disk_config->flags & FLAG_NOSYNC)) {
+- oflags |= O_SYNC;
++ oflags |= O_FSYNC;
+ }
+ outFile = open(disk_config->fileName, oflags | O_BINARY, 0644);
+ if(outFile < 0) {
+@@ -333,7 +347,13 @@
+ pipedOutFile = openPipe(client_config.toServer, outFile, disk_config,
+ &pipePid);
+ #ifndef __CYGWIN__
++# ifdef __FreeBSD__
++ client_config_on_exit_hack = client_config;
++
++ atexit(sendDisconnectWrapper_on_exit_handler);
++# else
+ on_exit(sendDisconnectWrapper, &client_config);
++# endif
+ #endif
+ {
+ struct fifo fifo;
diff --git a/net/udpcast/pkg-descr b/net/udpcast/pkg-descr
new file mode 100644
index 000000000000..834bd3b3e5e3
--- /dev/null
+++ b/net/udpcast/pkg-descr
@@ -0,0 +1,10 @@
+[ excerpt taken from developer's www site ]
+
+UDPcast is a file transfer tool that can send data simultaneously
+to many destinations on a LAN. This can for instance be used to
+install entire classrooms of PC's at once. The advantage of UDPcast
+over using other methods (nfs, ftp, whatever) is that UDPcast uses
+Ethernet's multicast abilities: it won't take longer to install 15
+machines than it would to install just 2.
+
+WWW: http://udpcast.linux.lu/