From 2914e811771b2895273313eaf087bd9048403f9d Mon Sep 17 00:00:00 2001 From: Ashok Narayanan Date: Wed, 16 May 2001 21:32:05 +0000 Subject: Added 'text2pcap', a utility to convert text hexdumps into pcap files. See text2pcap.1 (built from doc/text2pcap.pod) for details. Changed 'tethereal -x' output to match hex dump format of text2pcap, Ethereal and others. svn path=/trunk/; revision=3421 --- text2pcap-scanner.l | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 text2pcap-scanner.l (limited to 'text2pcap-scanner.l') diff --git a/text2pcap-scanner.l b/text2pcap-scanner.l new file mode 100644 index 0000000000..63835a1e39 --- /dev/null +++ b/text2pcap-scanner.l @@ -0,0 +1,71 @@ +/* -*-mode: flex-*- */ + +%{ + +/******************************************************************************** + * + * text2pcap-scanner.l + * + * Utility to convert an ASCII hexdump into a libpcap-format capture file + * + * (c) Copyright 2001 Ashok Narayanan + * + * $Id: text2pcap-scanner.l,v 1.1 2001/05/16 21:32:04 ashokn Exp $ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs + * Copyright 1998 Gerald Combs + * + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + *******************************************************************************/ + +#include +#include + +#include "text2pcap.h" + +%} + +hexdigit [0-9A-Fa-f] +directive #TEXT2PCAP.* +comment #[^W].* +byte [0-9A-Fa-f][0-9A-Fa-f][ \t] +byte_eol [0-9A-Fa-f][0-9A-Fa-f]\n +offset [0-9A-Fa-f]+[ \t\n] +text [^ \n\t]+ +mailfwd > +eol \r?\n\r? + +%% + +{byte} { parse_token(T_BYTE, yytext); } +{byte_eol} { parse_token(T_BYTE, yytext); parse_token(T_EOL, NULL); } +{offset} { parse_token(T_OFFSET, yytext); } +{mailfwd}{offset} { parse_token(T_OFFSET, yytext+1); } +{eol} { parse_token(T_EOL, NULL); } +[ \t] ; /* ignore whitespace */ +{directive} { parse_token(T_DIRECTIVE, yytext); } +{comment} ; /* ignore comments */ +{text} { parse_token(T_TEXT, yytext); } + +%% + +int yywrap() +{ + return 1; +} -- cgit v1.2.1