diff options
author | lioux <lioux@FreeBSD.org> | 2004-07-21 06:11:31 +0800 |
---|---|---|
committer | lioux <lioux@FreeBSD.org> | 2004-07-21 06:11:31 +0800 |
commit | b0a70ef47c03dba1c7de7bd9d65749d8960f7137 (patch) | |
tree | 598d413cb6011634f978277b14159e6783fe3d1d /net/udpcast | |
parent | 996dca988490c3bb8d6d4419a8262f46357e6631 (diff) | |
download | freebsd-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/Makefile | 60 | ||||
-rw-r--r-- | net/udpcast/distinfo | 2 | ||||
-rw-r--r-- | net/udpcast/files/patch-participants.h | 10 | ||||
-rw-r--r-- | net/udpcast/files/patch-socklib.c | 38 | ||||
-rw-r--r-- | net/udpcast/files/patch-statistics.c | 11 | ||||
-rw-r--r-- | net/udpcast/files/patch-udpr-negotiate.c | 60 | ||||
-rw-r--r-- | net/udpcast/pkg-descr | 10 |
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/ |