summaryrefslogtreecommitdiff
path: root/net/darkstat/patches/patch-aa
diff options
context:
space:
mode:
Diffstat (limited to 'net/darkstat/patches/patch-aa')
-rw-r--r--net/darkstat/patches/patch-aa63
1 files changed, 46 insertions, 17 deletions
diff --git a/net/darkstat/patches/patch-aa b/net/darkstat/patches/patch-aa
index 589b5e55014..3175faab8b2 100644
--- a/net/darkstat/patches/patch-aa
+++ b/net/darkstat/patches/patch-aa
@@ -1,19 +1,48 @@
-$NetBSD: patch-aa,v 1.1.1.1 2006/07/19 04:41:47 minskim Exp $
+$NetBSD: patch-aa,v 1.2 2006/10/07 07:49:01 obache Exp $
---- queue.h.orig 2006-03-14 10:10:02.000000000 +0100
-+++ queue.h
-@@ -51,12 +51,14 @@ struct { \
+--- decode.c.orig 2006-08-07 02:26:32.000000000 +0200
++++ decode.c
+@@ -54,6 +54,8 @@ static void decode_ether(u_char *, const
+ const u_char *);
+ static void decode_loop(u_char *, const struct pcap_pkthdr *,
+ const u_char *);
++static void decode_ppp(u_char *, const struct pcap_pkthdr *,
++ const u_char *);
+ static void decode_pppoe(u_char *, const struct pcap_pkthdr *,
+ const u_char *);
+ static void decode_linux_sll(u_char *, const struct pcap_pkthdr *,
+@@ -67,7 +69,10 @@ static const linkhdr_t linkhdrs[] = {
+ { DLT_EN10MB, ETHER_HDR_LEN, decode_ether },
+ { DLT_LOOP, NULL_HDR_LEN, decode_loop },
+ { DLT_NULL, NULL_HDR_LEN, decode_loop },
+- { DLT_PPP, PPP_HDR_LEN, NULL },
++ { DLT_PPP, PPP_HDR_LEN, decode_ppp },
++#if defined(__NetBSD__)
++ { DLT_PPP_SERIAL, PPP_HDR_LEN, decode_ppp },
++#endif
+ { DLT_FDDI, FDDI_HDR_LEN, NULL },
+ { DLT_PPP_ETHER, PPPOE_HDR_LEN, decode_pppoe },
+ { DLT_LINUX_SLL, SLL_HDR_LEN, decode_linux_sll },
+@@ -172,6 +177,22 @@ decode_loop(u_char *user _unused_,
+ }
- #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
-
-+#undef STAILQ_INSERT_TAIL
- #define STAILQ_INSERT_TAIL(head, elm, field) do { \
- STAILQ_NEXT((elm), field) = NULL; \
- *(head)->stqh_last = (elm); \
- (head)->stqh_last = &STAILQ_NEXT((elm), field); \
- } while (0)
-
-+#undef STAILQ_REMOVE_HEAD
- #define STAILQ_REMOVE_HEAD(head, field) do { \
- if ((STAILQ_FIRST((head)) = \
- STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \
+ static void
++decode_ppp(u_char *user _unused_,
++ const struct pcap_pkthdr *pheader,
++ const u_char *pdata)
++{
++ pktsummary sm;
++ memset(&sm, 0, sizeof(sm));
++
++ if (pdata[2] == 0x00 && pdata[3] == 0x21) {
++ decode_ip(pdata + PPP_HDR_LEN, pheader->caplen - PPP_HDR_LEN, &sm);
++ sm.time = pheader->ts.tv_sec;
++ acct_for(&sm);
++ } else
++ verbosef("non-IP PPP packet; ignoring.");
++}
++
++static void
+ decode_pppoe(u_char *user _unused_,
+ const struct pcap_pkthdr *pheader,
+ const u_char *pdata)