1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-11 07:22:22 +00:00

Upgrade net/miniupnpd from 2.0.20180503 to 2.1.20190210

Add a patch to unbreak port when CHECK_PORTINUSE option
is activated. The issue was caussed by changes in the
structures xtcpcb and xinpcb returned by the kernel after
r315662. The fix was inspired by changes made in
usr.bin/systat/netstat.c tool.

The patch was submitted to the upstream project and
merged : https://github.com/miniupnp/miniupnp/pull/353

PR:		236173
Reported by:	Igor Pavlov <igor.arabesc.pavlov@gmail.com>
Approved by:	Tor Halvard Furulund <squat@squat.no> (maintainer)
This commit is contained in:
Rodrigo Osorio 2019-03-25 13:28:37 +00:00
parent e3bc0d6c63
commit 083963b000
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=496821
3 changed files with 53 additions and 4 deletions

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= miniupnpd
PORTVERSION= 2.0.20180503
PORTVERSION= 2.1.20190210
PORTEPOCH= 1
CATEGORIES= net
MASTER_SITES= http://miniupnp.tuxfamily.org/files/ \

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1525713934
SHA256 (miniupnpd-2.0.20180503.tar.gz) = b61bed16865f8692803a9f155523ca7c6e01c65db20362b6173226b08ce12a0c
SIZE (miniupnpd-2.0.20180503.tar.gz) = 225454
TIMESTAMP = 1551791337
SHA256 (miniupnpd-2.1.20190210.tar.gz) = 1aaecd25cf152d99557dfe80c7508af9cb06e97ecad4786ce5dafb4c958d196b
SIZE (miniupnpd-2.1.20190210.tar.gz) = 235093

View File

@ -0,0 +1,49 @@
--- portinuse.c.orig 2017-11-02 17:38:02 UTC
+++ portinuse.c
@@ -280,7 +280,7 @@ static struct nlist list[] = {
struct xinpgen *xig, *exig;
struct xinpcb *xip;
struct xtcpcb *xtp;
- struct inpcb *inp;
+ struct in_conninfo *inc;
void *buf = NULL;
size_t len;
@@ -339,7 +339,8 @@ static struct nlist list[] = {
free(buf);
return -1;
}
- inp = &xtp->xt_inp;
+ xip = &xtp->xt_inp;
+ inc = &xip->inp_inc;
break;
case IPPROTO_UDP:
xip = (struct xinpcb *)xig;
@@ -349,21 +350,21 @@ static struct nlist list[] = {
free(buf);
return -1;
}
- inp = &xip->xi_inp;
+ inc = &xip->inp_inc;
break;
default:
abort();
}
/* no support for IPv6 */
- if ((inp->inp_vflag & INP_IPV6) != 0)
+ if ((xip->inp_vflag & INP_IPV6) != 0)
continue;
syslog(LOG_DEBUG, "%08lx:%hu %08lx:%hu <=> %hu %08lx:%hu",
- (u_long)inp->inp_laddr.s_addr, ntohs(inp->inp_lport),
- (u_long)inp->inp_faddr.s_addr, ntohs(inp->inp_fport),
+ (u_long)inc->inc_laddr.s_addr, ntohs(inc->inc_lport),
+ (u_long)inc->inc_faddr.s_addr, ntohs(inc->inc_fport),
eport, (u_long)ip_addr.s_addr, iport
);
- if (eport == (unsigned)ntohs(inp->inp_lport)) {
- if (inp->inp_laddr.s_addr == INADDR_ANY || inp->inp_laddr.s_addr == ip_addr.s_addr) {
+ if (eport == (unsigned)ntohs(inc->inc_lport)) {
+ if (inc->inc_laddr.s_addr == INADDR_ANY || inc->inc_laddr.s_addr == ip_addr.s_addr) {
found++;
break; /* don't care how many, just that we found at least one */
}