FreeBSD Bugzilla – Attachment 212105 Details for
Bug 244565
net/mcjoin: Update to 2.5
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
net/mcjoin: Update to 2.5
patch-net_mcjoin-2.5.txt (text/plain), 6.69 KB, created by
John W. O'Brien
on 2020-03-02 23:43:09 UTC
(
hide
)
Description:
net/mcjoin: Update to 2.5
Filename:
MIME Type:
Creator:
John W. O'Brien
Created:
2020-03-02 23:43:09 UTC
Size:
6.69 KB
patch
obsolete
>Index: net/mcjoin/Makefile >=================================================================== >--- net/mcjoin/Makefile (revision 527628) >+++ net/mcjoin/Makefile (working copy) >@@ -2,7 +2,7 @@ > > PORTNAME= mcjoin > DISTVERSIONPREFIX= v >-DISTVERSION= 2.4 >+DISTVERSION= 2.5 > CATEGORIES= net > > MAINTAINER= john@saltant.com >Index: net/mcjoin/distinfo >=================================================================== >--- net/mcjoin/distinfo (revision 527628) >+++ net/mcjoin/distinfo (working copy) >@@ -1,3 +1,3 @@ >-TIMESTAMP = 1580591567 >-SHA256 (troglobit-mcjoin-v2.4_GH0.tar.gz) = 8374018bba71621f48e67ce37f25ba095ce7ff247d67e46ac6171a9e68b30cc7 >-SIZE (troglobit-mcjoin-v2.4_GH0.tar.gz) = 16108 >+TIMESTAMP = 1583154280 >+SHA256 (troglobit-mcjoin-v2.5_GH0.tar.gz) = 385b87ecd6591a1a8ac663e2c7bf91a341f41aaa9d18b34e9604c75053bbcaf2 >+SIZE (troglobit-mcjoin-v2.5_GH0.tar.gz) = 17605 >Index: net/mcjoin/files/patch-27657e27db1704fd258139a57ad3312003a6cef9 >=================================================================== >--- net/mcjoin/files/patch-27657e27db1704fd258139a57ad3312003a6cef9 (revision 527628) >+++ net/mcjoin/files/patch-27657e27db1704fd258139a57ad3312003a6cef9 (nonexistent) >@@ -1,163 +0,0 @@ >-commit 27657e27db1704fd258139a57ad3312003a6cef9 >-Author: Ryan Libby <rlibby@FreeBSD.org> >-Date: Sun Nov 24 21:33:49 2019 -0800 >- >- Build and run on FreeBSD >- >- An assortment of small changes to build and run on FreeBSD. FreeBSD: >- - Doesn't have IP_PKTINFO, but does have IP_RECVDSTADDR. >- - Doesn't have IP_MULTICAST_ALL (and doesn't need to disable it). >- - Is sensitive about the claimed size of the sockaddr, and has >- sockaddrs with builtin len fields. >- - Doesn't export s6_addr32. >- >---- configure.ac.orig 2019-04-04 07:57:50 UTC >-+++ configure.ac >-@@ -10,4 +10,9 @@ AC_PROG_INSTALL >- >- AC_HEADER_STDC >- >-+AC_CHECK_MEMBERS([struct sockaddr_storage.ss_len], , , >-+[ >-+#include <sys/socket.h> >-+]) >-+ >- AC_OUTPUT >---- mcjoin.c.orig 2019-04-04 07:57:50 UTC >-+++ mcjoin.c >-@@ -123,6 +123,18 @@ static const char *convert_address(inet_addr_t *ss, ch >- return inet_ntop(AF_INET, &sin->sin_addr, buf, len); >- } >- >-+static socklen_t ss_get_len(const struct sockaddr_storage *ss) >-+{ >-+ >-+#ifdef AF_INET6 >-+ if (ss->ss_family == AF_INET6) >-+ return sizeof(struct sockaddr_in6); >-+#endif >-+ if (ss->ss_family == AF_INET) >-+ return sizeof(struct sockaddr_in); >-+ return 0; >-+} >-+ >- static int alloc_socket(inet_addr_t group) >- { >- int sd, val, proto; >-@@ -148,15 +160,22 @@ static int alloc_socket(inet_addr_t group) >- if (setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val))) >- ERROR("Failed enabling SO_REUSEADDR: %s", strerror(errno)); >- >-+#if defined(IP_PKTINFO) || !defined(IP_RECVDSTADDR) >- if (setsockopt(sd, SOL_IP, IP_PKTINFO, &val, sizeof(val))) >- ERROR("Failed enabling IP_PKTINFO: %s", strerror(errno)); >-+#elif defined(IP_RECVDSTADDR) >-+ if (setsockopt(sd, IPPROTO_IP, IP_RECVDSTADDR, &val, sizeof(val))) >-+ ERROR("Failed enabling IP_RECVDSTADDR: %s", strerror(errno)); >-+#endif >- >- val = 0; >-+#ifdef IP_MULTICAST_ALL >- if (setsockopt(sd, proto, IP_MULTICAST_ALL, &val, sizeof(val))) >- ERROR("Failed disabling IP_MULTICAST_ALL: %s", strerror(errno)); >-+#endif >- >-- if (bind(sd, (struct sockaddr *)&group, sizeof(group))) { >-- ERROR("Faild binding to socket: %s", strerror(errno)); >-+ if (bind(sd, (struct sockaddr *)&group, ss_get_len(&group))) { >-+ ERROR("Failed binding to socket: %s", strerror(errno)); >- close(sd); >- return -1; >- } >-@@ -266,7 +285,7 @@ static void send_mcast(int signo) >- >- for (i = 0; i < group_num; i++) { >- struct sockaddr *dest = (struct sockaddr *)&groups[i].grp; >-- socklen_t len = sizeof(groups[i].grp); >-+ socklen_t len = ss_get_len(&groups[i].grp); >- >- snprintf(buf, sizeof(buf), "%s%u, MC group %s ... count: %u", MAGIC_KEY, getpid(), groups[i].group, counter++); >- DEBUG("Sending packet on signal %d, msg: %s", signo, buf); >-@@ -275,15 +294,21 @@ static void send_mcast(int signo) >- } >- } >- >--struct in_pktinfo *find_pktinfo(struct msghdr *msgh) >-+struct in_addr *find_dstaddr(struct msghdr *msgh) >- { >- struct cmsghdr *cmsg; >- >- for (cmsg = CMSG_FIRSTHDR(msgh); cmsg; cmsg = CMSG_NXTHDR(msgh, cmsg)) { >-- if (cmsg->cmsg_level != SOL_IP || cmsg->cmsg_type != IP_PKTINFO) >-- continue; >-- >-- return (struct in_pktinfo *)CMSG_DATA(cmsg); >-+#if defined(IP_PKTINFO) || !defined(IP_RECVDSTADDR) >-+ if (cmsg->cmsg_level == IPPROTO_IP && >-+ cmsg->cmsg_type == IP_PKTINFO) >-+ return &((struct in_pktinfo *)CMSG_DATA(cmsg))-> >-+ ipi_addr; >-+#elif defined(IP_RECVDSTADDR) >-+ if (cmsg->cmsg_level == IPPROTO_IP && >-+ cmsg->cmsg_type == IP_RECVDSTADDR) >-+ return (struct in_addr *)CMSG_DATA(cmsg); >-+#endif >- } >- >- return NULL; >-@@ -314,7 +339,7 @@ static void progress(void) >- static ssize_t recv_mcast(int id) >- { >- struct sockaddr_storage src; >-- struct in_pktinfo *ipi; >-+ struct in_addr *dstaddr; >- struct msghdr msgh; >- struct iovec iov[1]; >- ssize_t bytes; >-@@ -336,8 +361,8 @@ static ssize_t recv_mcast(int id) >- if (bytes < 0) >- return -1; >- >-- ipi = find_pktinfo(&msgh); >-- if (ipi) { >-+ dstaddr = find_dstaddr(&msgh); >-+ if (dstaddr) { >- char *ptr; >- int pid = 0; >- >-@@ -348,7 +373,7 @@ static ssize_t recv_mcast(int id) >- >- DEBUG("Count %5zu, our PID %d, sender PID %d, group %s msg: %s", groups[id].count, getpid(), pid, groups[id].group, buf); >- if (pid != getpid()) { >-- char *dst = inet_ntoa(ipi->ipi_addr); >-+ char *dst = inet_ntoa(*dstaddr); >- >- if (strcmp(dst, groups[id].group)) { >- ERROR("Packet for group %s received on wrong socket, expected group %s.", dst, groups[id].group); >-@@ -658,9 +683,11 @@ int main(int argc, char *argv[]) >- /* Next group ... */ >- #ifdef AF_INET6 >- if (strchr(group, ':')) { >-- step = ntohl(sin6->sin6_addr.s6_addr32[3]); >-- step++; >-- sin6->sin6_addr.s6_addr32[3] = htonl(step); >-+ memcpy(&step, &sin6->sin6_addr.s6_addr[12], >-+ sizeof(step)); >-+ step = htonl(ntohl(step) + 1); >-+ memcpy(&sin6->sin6_addr.s6_addr[12], &step, >-+ sizeof(step)); >- len = sizeof(*sin6); >- } else >- #endif >-@@ -706,6 +733,11 @@ int main(int argc, char *argv[]) >- src->sin_port = htons(port); >- } >- } >-+#ifdef HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN >-+ groups[i].grp.ss_len = ss_get_len(&groups[i].grp); >-+ if (groups[i].source) >-+ groups[i].src.ss_len = ss_get_len(&groups[i].src); >-+#endif >- } >- >- /* > >Property changes on: net/mcjoin/files/patch-27657e27db1704fd258139a57ad3312003a6cef9 >___________________________________________________________________ >Deleted: fbsd:nokeywords >## -1 +0,0 ## >-yes >\ No newline at end of property >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Deleted: svn:mime-type >## -1 +0,0 ## >-text/plain >\ No newline at end of property
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
john
:
maintainer-approval+
Actions:
View
Attachments on
bug 244565
: 212105