net/fping: Update to 5.3

* Replace PORTVERSION with DISTVERSION
* Remove USES= autoreconf
* Remove GNU_CONFIGURE_MANPREFIX
* Remove patch (fixed upstream)
* Adjustments to port makefile to more closely follow Porters Handbook

Changelog: https://github.com/schweikert/fping/releases/tag/v5.3

Initial patch submitted by Andre Albsmeier with additions done by
committer

PR:		283648
Approved by:	portmgr (maintainer timeout, 1+ month)
This commit is contained in:
Andre Albsmeier 2025-02-02 19:19:39 +01:00 committed by Daniel Engberg
parent 2b3af2667f
commit eba24a3574
3 changed files with 9 additions and 50 deletions

View File

@ -1,9 +1,8 @@
PORTNAME= fping
PORTVERSION= 5.0
PORTREVISION= 3
DISTVERSION= 5.3
CATEGORIES= net
MASTER_SITES= http://fping.org/dist/ \
https://github.com/schweikert/${PORTNAME}/releases/download/v${PORTVERSION}/
https://github.com/schweikert/${PORTNAME}/releases/download/v${DISTVERSION}/
MAINTAINER= jharris@widomaker.com
COMMENT= Quickly ping multiple hosts without flooding the network
@ -15,18 +14,17 @@ LICENSE_NAME= Previous BSD License
LICENSE_FILE= ${WRKSRC}/COPYING
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
USES= autoreconf
GNU_CONFIGURE= yes
GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share
INSTALL_TARGET= install-strip
OPTIONS_DEFINE= IPV6
OPTIONS_SUB= yes
IPV6_CONFIGURE_OFF=--disable-ipv6
IPV6_CONFIGURE_OFF= --disable-ipv6
post-install-IPV6-on:
${RLN} ${STAGEDIR}${PREFIX}/sbin/fping ${STAGEDIR}${PREFIX}/sbin/fping6
${RLN} ${STAGEDIR}${PREFIX}/sbin/fping ${STAGEDIR}${PREFIX}/sbin/fping6
${RLN} ${STAGEDIR}${PREFIX}/share/man/man8/fping.8 ${STAGEDIR}${PREFIX}/share/man/man8/fping6.8
.include <bsd.port.mk>

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1597788763
SHA256 (fping-5.0.tar.gz) = ed38c0b9b64686a05d1b3bc1d66066114a492e04e44eef1821d43b1263cd57b8
SIZE (fping-5.0.tar.gz) = 185281
TIMESTAMP = 1735991851
SHA256 (fping-5.3.tar.gz) = d57bd0141aea082e3adfc198bfc3db5dfd12a7014c7c2655e97f61cd54901d0e
SIZE (fping-5.3.tar.gz) = 197370

View File

@ -1,39 +0,0 @@
--- src/fping.c.orig 2020-08-05 11:10:13 UTC
+++ src/fping.c
@@ -1060,11 +1060,11 @@ int main(int argc, char** argv)
exit(num_noaddress ? 2 : 1);
}
- if (socket4 >= 0) {
+ if (src_addr_set && socket4 >= 0) {
socket_set_src_addr_ipv4(socket4, &src_addr, (socktype4 == SOCK_DGRAM) ? &ident4 : NULL);
}
#ifdef IPV6
- if (socket6 >= 0) {
+ if (src_addr6_set && socket6 >= 0) {
socket_set_src_addr_ipv6(socket6, &src_addr6, (socktype6 == SOCK_DGRAM) ? &ident6 : NULL);
}
#endif
@@ -2299,6 +2299,22 @@ int wait_for_reply(int64_t wait_time)
#endif
else {
return 1;
+ }
+
+ /* Check that src address is one of the hosts we pinged before */
+ int found = 0;
+ for (int i = 0; i < num_hosts; i++) {
+ HOST_ENTRY *h = table[i];
+ if (!addr_cmp((struct sockaddr*)&response_addr, (struct sockaddr*)&h->saddr)) {
+ found = 1;
+ break;
+ }
+ }
+ if (!found) {
+ // char buf[INET6_ADDRSTRLEN];
+ // getnameinfo((struct sockaddr*)&response_addr, sizeof(response_addr), buf, INET6_ADDRSTRLEN, NULL, 0, NI_NUMERICHOST);
+ // fprintf(stderr, "ignoring response from %s\n", buf);
+ return 1; /* packet received, but not from a host we pinged */
}
seqmap_value = seqmap_fetch(seq, current_time_ns);