Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libpcap explicitly parse IPv6 address, to avoid conflict...



details:   https://anonhg.NetBSD.org/src/rev/c907745ad2c2
branches:  trunk
changeset: 484902:c907745ad2c2
user:      itojun <itojun%NetBSD.org@localhost>
date:      Fri Apr 14 14:25:40 2000 +0000

description:
explicitly parse IPv6 address, to avoid conflict with "ip[2:2]" syntax.

diffstat:

 lib/libpcap/scanner.l |  92 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 88 insertions(+), 4 deletions(-)

diffs (128 lines):

diff -r 1c28fff20d15 -r c907745ad2c2 lib/libpcap/scanner.l
--- a/lib/libpcap/scanner.l     Fri Apr 14 14:21:55 2000 +0000
+++ b/lib/libpcap/scanner.l     Fri Apr 14 14:25:40 2000 +0000
@@ -1,5 +1,5 @@
 %{
-/*     $NetBSD: scanner.l,v 1.9 1999/10/25 16:39:37 is Exp $   */
+/*     $NetBSD: scanner.l,v 1.10 2000/04/14 14:25:40 itojun Exp $      */
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
@@ -28,7 +28,7 @@
 static const char rcsid[] =
     "@(#) Header: scanner.l,v 1.56 97/07/21 13:31:50 leres Exp  (LBL)";
 #else
-__RCSID("$NetBSD: scanner.l,v 1.9 1999/10/25 16:39:37 is Exp $");
+__RCSID("$NetBSD: scanner.l,v 1.10 2000/04/14 14:25:40 itojun Exp $");
 #endif
 #endif
 
@@ -92,6 +92,84 @@
 
 %a 3000
 
+V680           {W}:{W}:{W}:{W}:{W}:{W}:{W}:{W}
+
+V670           ::{W}:{W}:{W}:{W}:{W}:{W}:{W}
+V671           {W}::{W}:{W}:{W}:{W}:{W}:{W}
+V672           {W}:{W}::{W}:{W}:{W}:{W}:{W}
+V673           {W}:{W}:{W}::{W}:{W}:{W}:{W}
+V674           {W}:{W}:{W}:{W}::{W}:{W}:{W}
+V675           {W}:{W}:{W}:{W}:{W}::{W}:{W}
+V676           {W}:{W}:{W}:{W}:{W}:{W}::{W}
+V677           {W}:{W}:{W}:{W}:{W}:{W}:{W}::
+
+V660           ::{W}:{W}:{W}:{W}:{W}:{W}
+V661           {W}::{W}:{W}:{W}:{W}:{W}
+V662           {W}:{W}::{W}:{W}:{W}:{W}
+V663           {W}:{W}:{W}::{W}:{W}:{W}
+V664           {W}:{W}:{W}:{W}::{W}:{W}
+V665           {W}:{W}:{W}:{W}:{W}::{W}
+V666           {W}:{W}:{W}:{W}:{W}:{W}::
+
+V650           ::{W}:{W}:{W}:{W}:{W}
+V651           {W}::{W}:{W}:{W}:{W}
+V652           {W}:{W}::{W}:{W}:{W}
+V653           {W}:{W}:{W}::{W}:{W}
+V654           {W}:{W}:{W}:{W}::{W}
+V655           {W}:{W}:{W}:{W}:{W}::
+
+V640           ::{W}:{W}:{W}:{W}
+V641           {W}::{W}:{W}:{W}
+V642           {W}:{W}::{W}:{W}
+V643           {W}:{W}:{W}::{W}
+V644           {W}:{W}:{W}:{W}::
+
+V630           ::{W}:{W}:{W}
+V631           {W}::{W}:{W}
+V632           {W}:{W}::{W}
+V633           {W}:{W}:{W}::
+
+V620           ::{W}:{W}
+V621           {W}::{W}
+V622           {W}:{W}::
+
+V610           ::{W}
+V611           {W}::
+
+V600           ::
+
+V6604          {W}:{W}:{W}:{W}:{W}:{W}:{N}\.{N}\.{N}\.{N}
+
+V6504          ::{W}:{W}:{W}:{W}:{W}:{N}\.{N}\.{N}\.{N}
+V6514          {W}::{W}:{W}:{W}:{W}:{N}\.{N}\.{N}\.{N}
+V6524          {W}:{W}::{W}:{W}:{W}:{N}\.{N}\.{N}\.{N}
+V6534          {W}:{W}:{W}::{W}:{W}:{N}\.{N}\.{N}\.{N}
+V6544          {W}:{W}:{W}:{W}::{W}:{N}\.{N}\.{N}\.{N}
+V6554          {W}:{W}:{W}:{W}:{W}::{N}\.{N}\.{N}\.{N}
+
+V6404          ::{W}:{W}:{W}:{W}:{N}\.{N}\.{N}\.{N}
+V6414          {W}::{W}:{W}:{W}:{N}\.{N}\.{N}\.{N}
+V6424          {W}:{W}::{W}:{W}:{N}\.{N}\.{N}\.{N}
+V6434          {W}:{W}:{W}::{W}:{N}\.{N}\.{N}\.{N}
+V6444          {W}:{W}:{W}:{W}::{N}\.{N}\.{N}\.{N}
+
+V6304          ::{W}:{W}:{W}:{N}\.{N}\.{N}\.{N}
+V6314          {W}::{W}:{W}:{N}\.{N}\.{N}\.{N}
+V6324          {W}:{W}::{W}:{N}\.{N}\.{N}\.{N}
+V6334          {W}:{W}:{W}::{N}\.{N}\.{N}\.{N}
+
+V6204          ::{W}:{W}:{N}\.{N}\.{N}\.{N}
+V6214          {W}::{W}:{N}\.{N}\.{N}\.{N}
+V6224          {W}:{W}::{N}\.{N}\.{N}\.{N}
+
+V6104          ::{W}:{N}\.{N}\.{N}\.{N}
+V6114          {W}::{N}\.{N}\.{N}\.{N}
+
+V6004          ::{N}\.{N}\.{N}\.{N}
+
+
+V6             
({V680}|{V670}|{V671}|{V672}|{V673}|{V674}|{V675}|{V676}|{V677}|{V660}|{V661}|{V662}|{V663}|{V664}|{V665}|{V666}|{V650}|{V651}|{V652}|{V653}|{V654}|{V655}|{V640}|{V641}|{V642}|{V643}|{V644}|{V630}|{V631}|{V632}|{V633}|{V620}|{V621}|{V622}|{V610}|{V611}|{V600}|{V6604}|{V6504}|{V6514}|{V6524}|{V6534}|{V6544}|{V6554}|{V6404}|{V6414}|{V6424}|{V6434}|{V6444}|{V6304}|{V6314}|{V6324}|{V6334}|{V6204}|{V6214}|{V6224}|{V6104}|{V6114}|{V6004})
+
 %%
 dst            return DST;
 src            return SRC;
@@ -125,7 +203,13 @@
 mask           return MASK;
 port           return PORT;
 proto          return PROTO;
-protochain     return PROTOCHAIN;
+protochain     {
+#ifdef NO_PROTOCHAIN
+                 bpf_error("%s not supported", yytext);
+#else
+                 return PROTOCHAIN;
+#endif
+               }
 
 gateway                return GATEWAY;
 
@@ -158,7 +242,7 @@
                        yylval.s = sdup((char *)yytext); return HID; }
 {B}:{B}:{B}:{B}:{B}:{B} { yylval.e = pcap_ether_aton((char *)yytext);
                          return EID; }
-[0-9a-zA-Z:]*:[0-9a-zA-Z:]*(:{N}\.{N}\.{N}\.{N})?      {
+{V6}                   {
 #ifdef INET6
                          struct addrinfo hints, *res;
                          memset(&hints, 0, sizeof(hints));



Home | Main Index | Thread Index | Old Index