1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-09 09:49:43 +02:00
openwrt-xburst/package/libpcap/patches/102-alt-ether.patch

43 lines
1.5 KiB
Diff
Raw Normal View History

Index: libpcap-0.9.4/nametoaddr.c
===================================================================
--- libpcap-0.9.4.orig/nametoaddr.c 2007-06-04 13:22:03.499323304 +0200
+++ libpcap-0.9.4/nametoaddr.c 2007-06-04 13:22:03.986249280 +0200
@@ -410,7 +410,7 @@
e = ep = (u_char *)malloc(6);
while (*s) {
- if (*s == ':')
+ if (*s == ':' || *s == '.')
s += 1;
d = xdtoi(*s++);
if (isxdigit((unsigned char)*s)) {
Index: libpcap-0.9.4/scanner.l
===================================================================
--- libpcap-0.9.4.orig/scanner.l 2007-06-04 13:22:03.506322240 +0200
+++ libpcap-0.9.4/scanner.l 2007-06-04 13:22:03.987249128 +0200
@@ -80,6 +80,7 @@
N ([0-9]+|(0X|0x)[0-9A-Fa-f]+)
B ([0-9A-Fa-f][0-9A-Fa-f]?)
W ([0-9A-Fa-f][0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?)
+X [0-9A-Fa-f]
%a 16000
%o 19000
@@ -306,7 +307,7 @@
{N} { yylval.i = stoi((char *)yytext); return NUM; }
({N}\.{N})|({N}\.{N}\.{N})|({N}\.{N}\.{N}\.{N}) {
yylval.s = sdup((char *)yytext); return HID; }
-{B}:{B}:{B}:{B}:{B}:{B} { yylval.e = pcap_ether_aton((char *)yytext);
+({B}:{B}:{B}:{B}:{B}:{B})|({B}\.{B}\.{B}\.{B}\.{B}\.{B}) { yylval.e = pcap_ether_aton((char *)yytext);
return EID; }
{V6} {
#ifdef INET6
@@ -324,6 +325,7 @@
#endif /*INET6*/
}
{B}:+({B}:+)+ { bpf_error("bogus ethernet address %s", yytext); }
+{X}{12} { yylval.e = pcap_ether_aton((char *)yytext); return EID;}
icmptype { yylval.i = 0; return NUM; }
icmpcode { yylval.i = 1; return NUM; }
icmp-echoreply { yylval.i = 0; return NUM; }