diff options
author | vsevolod <vsevolod@FreeBSD.org> | 2015-03-04 18:33:32 +0800 |
---|---|---|
committer | vsevolod <vsevolod@FreeBSD.org> | 2015-03-04 18:33:32 +0800 |
commit | 758058775318724d7caca719429265ea5dc48a0a (patch) | |
tree | fb1ff503d9003ba28f9c60c99f34ba2937edee98 | |
parent | bd7474943fd9dae3623da5795a77ca1e8cd8c053 (diff) | |
download | freebsd-ports-graphics-758058775318724d7caca719429265ea5dc48a0a.tar.gz freebsd-ports-graphics-758058775318724d7caca719429265ea5dc48a0a.tar.zst freebsd-ports-graphics-758058775318724d7caca719429265ea5dc48a0a.zip |
- Use github for port fetching
- Remove included patches
- Add patch to lock pcbinfo hash [1]
- Update version to 20150304
Submitted by: Eugene Grossbein via IRC [1]
-rw-r--r-- | net-mgmt/ng_ipacct/Makefile | 14 | ||||
-rw-r--r-- | net-mgmt/ng_ipacct/distinfo | 4 | ||||
-rw-r--r-- | net-mgmt/ng_ipacct/files/patch-ipacctctl | 15 | ||||
-rw-r--r-- | net-mgmt/ng_ipacct/files/patch-ng_ipacct.c | 58 | ||||
-rw-r--r-- | net-mgmt/ng_ipacct/files/patch-ng_ipacct_hash.h | 134 |
5 files changed, 9 insertions, 216 deletions
diff --git a/net-mgmt/ng_ipacct/Makefile b/net-mgmt/ng_ipacct/Makefile index 5e006ad92fa..57248b4f1f0 100644 --- a/net-mgmt/ng_ipacct/Makefile +++ b/net-mgmt/ng_ipacct/Makefile @@ -2,28 +2,28 @@ # $FreeBSD$ PORTNAME= ng_ipacct -PORTVERSION= 20061223 -PORTREVISION= 3 +PORTVERSION= 20150304 CATEGORIES= net-mgmt -MASTER_SITES= ${MASTER_SITE_LOCAL:S!$!skv/!} \ - http://highsecure.ru/distfiles/ MAINTAINER= vsevolod@FreeBSD.org COMMENT= Netgraph IP accounting LICENSE= BSD2CLAUSE +USE_GITHUB= yes USES= kmod uidfix +GH_ACCOUNT= vstakhov +GH_PROJECT= ng_ipacct +GH_TAGNAME= ${PORTVERSION} +GH_COMMIT= 68ff97c + MAKE_ENV= BINDIR="${PREFIX}/sbin" USE_RC_SUBR= ng_ipacct SUB_FILES= pkg-message CFLAGS+= -DMEM_USE_ZONE -post-extract: - @${MV} ${WRKDIR}/${PORTNAME} ${WRKSRC} - post-patch: @${REINPLACE_CMD} 's,{MANDIR},{DESTDIR}$$&,' ${WRKSRC}/man_ru/Makefile diff --git a/net-mgmt/ng_ipacct/distinfo b/net-mgmt/ng_ipacct/distinfo index ff82162b0a9..e78ce7ef381 100644 --- a/net-mgmt/ng_ipacct/distinfo +++ b/net-mgmt/ng_ipacct/distinfo @@ -1,2 +1,2 @@ -SHA256 (ng_ipacct-20061223.tar.gz) = 5c0d1f8626c80d9bc0ec0a5296adcc88645c4309f9accd2619ed852a5a9356e2 -SIZE (ng_ipacct-20061223.tar.gz) = 25543 +SHA256 (ng_ipacct-20150304.tar.gz) = 10d0ca1d77cd836edbc0fa258c7db2a428a59a772ec96de4c9213a598e8108cc +SIZE (ng_ipacct-20150304.tar.gz) = 24569 diff --git a/net-mgmt/ng_ipacct/files/patch-ipacctctl b/net-mgmt/ng_ipacct/files/patch-ipacctctl deleted file mode 100644 index 1aac68d9172..00000000000 --- a/net-mgmt/ng_ipacct/files/patch-ipacctctl +++ /dev/null @@ -1,15 +0,0 @@ ---- ipacctctl/ipacctctl.c.orig 2010-03-29 23:36:30.000000000 +0700 -+++ ipacctctl/ipacctctl.c 2010-03-29 23:37:38.000000000 +0700 -@@ -53,6 +53,10 @@ - - #include "../ng_ipacct/ng_ipacct.h" - -+#ifndef NG_PATHLEN -+#define NG_PATHLEN (NG_PATHSIZ - 1) -+#endif -+ - #define TIME_FMT "%Y/%m/%d %H:%M:%S" /* used in strftime() */ - #define IN_HOOK 0 - #define OUT_HOOK 1 - - diff --git a/net-mgmt/ng_ipacct/files/patch-ng_ipacct.c b/net-mgmt/ng_ipacct/files/patch-ng_ipacct.c deleted file mode 100644 index 93b4e3db4fd..00000000000 --- a/net-mgmt/ng_ipacct/files/patch-ng_ipacct.c +++ /dev/null @@ -1,58 +0,0 @@ ---- ng_ipacct/ng_ipacct.c.orig 2006-12-05 23:46:04.000000000 +0300 -+++ ng_ipacct/ng_ipacct.c 2013-08-13 16:21:16.000000000 +0400 -@@ -140,9 +140,6 @@ - struct ipacct_hook { - hook_p hook; - node_p node; --#if __FreeBSD_version >= 503000 -- struct mtx h_mtx; /* protects hook data */ --#endif - struct ip_acct_hash *active; /* active database */ - struct ip_acct_hash *checked; /* checkpointed database */ - struct ng_ipacct_hinfo hi; /* hook info */ -@@ -242,9 +239,6 @@ - - if (!strncmp(name + strlen(name) - 3, "_in", 3)) - hip->hi.hi_flags |= HI_INCOMING_HOOK; --#if __FreeBSD_version >= 503000 -- mtx_init(&hip->h_mtx, "ng_ipacct hash", NULL, MTX_DEF); --#endif - NG_HOOK_SET_PRIVATE(hook, hip); - hip->hi.hi_debug = 0; - #ifdef VERBOSE -@@ -531,13 +525,7 @@ - if (!error) { - Dbg_print(DBG_DLT, ("IP packet, m_pkthdr.len = %d, m_len = %d\n", - m->m_pkthdr.len, m->m_len)); --#if __FreeBSD_version >= 503000 -- mtx_lock(&hip->h_mtx); --#endif - error = ip_account_add(hip, &m); --#if __FreeBSD_version >= 503000 -- mtx_unlock(&hip->h_mtx); --#endif - } - - #if __FreeBSD_version >= 503000 -@@ -581,9 +569,6 @@ - - ip_account_stop(hip); - NG_HOOK_SET_PRIVATE(hook, NULL); --#if __FreeBSD_version >= 503000 -- mtx_destroy(&hip->h_mtx); --#endif - FREE(hip, M_NETGRAPH); - #ifdef VERBOSE - printf("NG_ipacct: disconnect hook %s\n", NG_HOOK_NAME(hook)); -@@ -902,7 +899,11 @@ - int i; - - for (i = 0, ina = r->r_dst, port = r->r_dport; i < 2; i++) { -+#if __FreeBSD_version >= 700110 -+ pcb = in_pcblookup_local(pcbinfo, ina, port, 1, NOCRED); -+#else - pcb = in_pcblookup_local(pcbinfo, ina, port, 1); -+#endif - if ((pcb != NULL) && - (pcb->inp_laddr.s_addr == ina.s_addr)) { - break; diff --git a/net-mgmt/ng_ipacct/files/patch-ng_ipacct_hash.h b/net-mgmt/ng_ipacct/files/patch-ng_ipacct_hash.h deleted file mode 100644 index d517e4fa18b..00000000000 --- a/net-mgmt/ng_ipacct/files/patch-ng_ipacct_hash.h +++ /dev/null @@ -1,134 +0,0 @@ ---- ng_ipacct/ng_ipacct_hash.h.orig 2004-11-27 23:35:19.000000000 +0300 -+++ ng_ipacct/ng_ipacct_hash.h 2013-08-13 20:50:07.000000000 +0400 -@@ -26,7 +26,10 @@ - * $Id: ng_ipacct_hash.h,v 1.6 2004/11/27 20:35:19 romanp Exp $ - */ - --#define NBUCKETS (256) /* must be power of 2 */ -+#define NBUCKETS (512) /* must be power of 2 */ -+ -+#include <sys/lock.h> -+#include <sys/rmlock.h> - - #define NG_IPACCT_HASH3(faddr, fport, lport)\ - ((faddr) ^ ((faddr) >> 16) ^ ntohs((lport) ^ (fport))) -@@ -34,6 +37,7 @@ - ((faddr ^ (faddr >> 23) ^ (faddr >> 17))) - - struct ip_acct_hash { -+ struct rmlock bl; - SLIST_HEAD( ,ip_acct_chunk) head; - }; - -@@ -42,12 +46,20 @@ - static __inline int - ip_hash_init(struct ip_acct_hash **h) - { -+ int i; -+ struct ip_acct_hash *ph; -+ - MALLOC(*h, struct ip_acct_hash *, - NBUCKETS * sizeof(struct ip_acct_hash), - M_NETGRAPH, M_NOWAIT | M_ZERO); - if (*h == NULL) - return (ENOMEM); - -+ ph = *h; -+ for (i = 0; i < NBUCKETS; i ++) { -+ rm_init(&ph[i].bl, "ng_ipacct hash lock"); -+ } -+ - return (0); - } - -@@ -59,15 +71,18 @@ - struct ip_acct_chunk *pe, *lastpe; - struct ip_acct_record *pr; - int i; -+ struct rm_priotracker track; - #ifdef HASH_DEBUG - int nchunk = 0; - #endif - - pe = lastpe = NULL; -+ rm_rlock(&h[slot].bl, &track); - SLIST_FOREACH(pe, &(h[slot].head), next) { - lastpe = pe; - for (i = 0; i < pe->nrecs; i++) { - if(bcmp(s, &pe->recs[i].s, sizeof(struct ip_acct_stream)) == 0) { -+ rm_runlock(&h[slot].bl, &track); - return (&pe->recs[i]); - } - } -@@ -75,12 +90,29 @@ - nchunk ++; - #endif - } -+ rm_runlock(&h[slot].bl, &track); - #ifdef HASH_DEBUG - if (nchunk) - nchunk --; - #endif - /* stream is not in hash. Add it if we allowed to do so. */ - if (ok_to_insert) { -+ -+ rm_wlock(&h[slot].bl); -+ if (lastpe != NULL && SLIST_NEXT(lastpe, next) != NULL) { -+ /* It has been changed, need to scan again */ -+ pe = lastpe; -+ while (pe != NULL) { -+ lastpe = pe; -+ for (i = 0; i < pe->nrecs; i++) { -+ if(bcmp(s, &pe->recs[i].s, sizeof(struct ip_acct_stream)) == 0) { -+ rm_wunlock(&h[slot].bl); -+ return (&pe->recs[i]); -+ } -+ } -+ pe = SLIST_NEXT(pe, next); -+ } -+ } - /* - * This is first chunk in slot or no - * more space left in current chunk ? -@@ -92,8 +124,10 @@ - sizeof(*pe)); - #endif - /* allocate new accounting chunk */ -- if ((pe = HASH_ALLOC()) == NULL) -+ if ((pe = HASH_ALLOC()) == NULL) { -+ rm_wunlock(&h[slot].bl); - return (NULL); -+ } - if (lastpe == NULL) - SLIST_INSERT_HEAD(&(h[slot].head), pe, next); - else -@@ -109,6 +143,7 @@ - pr->when = time_second; - bcopy(s, &pr->s, sizeof(pr->s)); - (*nrecs) ++; -+ rm_wunlock(&h[slot].bl); - return (pr); - } else { - return (NULL); -@@ -120,6 +155,7 @@ - { - int i; - struct ip_acct_chunk *ipe, *nxt; -+ struct ip_acct_hash *ph = *h; - - /* sanity check */ - if (*h == NULL) -@@ -127,10 +163,13 @@ - - /* walk down through *next and free all memory */ - for(i = 0; i < NBUCKETS; i++) { -+ rm_wlock(&ph[i].bl); - for(ipe = SLIST_FIRST(&((*h)[i].head)); ipe; ipe = nxt) { - nxt = SLIST_NEXT(ipe, next); - HASH_FREE(ipe); - } -+ rm_wunlock(&ph[i].bl); -+ rm_destroy(&ph[i].bl); - } - FREE(*h, M_NETGRAPH); - *h = NULL; |