| 1234567891011121314151617181920212223242526272829303132333435363738 |
- --- a/nametoaddr.c
- +++ b/nametoaddr.c
- @@ -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)) {
- --- a/scanner.l
- +++ b/scanner.l
- @@ -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 18400
- %o 21500
- @@ -310,7 +311,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
- @@ -328,6 +329,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; }
|