zeek/src/GTPv1.cc
Jon Siwek 7cf54b2541 Change binpac exceptions in AYIYA/GTP analyzers to do protocol_violation
As opposed to creating weirds for e.g. "binpac::ExceptionOutOfBound".
The protocol_violation will also result in the disabling of the
analyzer by default.
2012-10-29 12:15:48 -05:00

31 lines
640 B
C++

#include "GTPv1.h"
GTPv1_Analyzer::GTPv1_Analyzer(Connection* conn)
: Analyzer(AnalyzerTag::GTPv1, conn)
{
interp = new binpac::GTPv1::GTPv1_Conn(this);
}
GTPv1_Analyzer::~GTPv1_Analyzer()
{
delete interp;
}
void GTPv1_Analyzer::Done()
{
Analyzer::Done();
Event(udp_session_done);
}
void GTPv1_Analyzer::DeliverPacket(int len, const u_char* data, bool orig, int seq, const IP_Hdr* ip, int caplen)
{
Analyzer::DeliverPacket(len, data, orig, seq, ip, caplen);
try
{
interp->NewData(orig, data, data + len);
}
catch ( const binpac::Exception& e )
{
ProtocolViolation(fmt("Binpac exception: %s", e.c_msg()));
}
}