From: Russ Combs (rucombs) Date: Mon, 28 Sep 2015 20:58:29 +0000 (-0400) Subject: Merge pull request #50 in SNORT/snort3 from crc/nonprod to master X-Git-Tag: 3.0.0-233~813 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=72d4fb2eea82d3bde75bdd4372ff537944c9aa5d;p=thirdparty%2Fsnort3.git Merge pull request #50 in SNORT/snort3 from crc/nonprod to master Squashed commit of the following: commit d2aea5a72d4931c531bf85ee57ff5a30b2b1dc90 Author: Russ Combs Date: Mon Sep 28 14:47:36 2015 -0400 update cmake for non-ether refactoring commit 56d247864ff821c55f268d21d6a610111fb5a583 Author: Russ Combs Date: Mon Sep 28 13:46:25 2015 -0400 additional refactoring cleanup commit c5d410acf122065cf71d798fff5f7e58228f60e5 Author: Russ Combs Date: Mon Sep 28 13:13:04 2015 -0400 add dags dir to extras make commit a2ac74bd63bce6e47b484947a7dee4c752637a5d Author: Russ Combs Date: Mon Sep 28 13:11:28 2015 -0400 move non-ether plugins to extras --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 530f35b8f..f53c0b9c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,6 +22,7 @@ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_COMPILER_FLAGS}") # c++11 flag # include this directory for the config.h file. created in sanityChecks.cmake include_directories(${PROJECT_BINARY_DIR}) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) add_subdirectory (src) add_subdirectory (tools) diff --git a/configure.ac b/configure.ac index 72d61b961..1a51d19db 100644 --- a/configure.ac +++ b/configure.ac @@ -937,12 +937,9 @@ fi AC_DEFINE_UNQUOTED([API_OPTIONS], ["$API_OPTIONS"], [plugin api related build options]) -# hmmm, why are we doing this again? -#CFLAGS=`echo $CFLAGS | sed -e 's/-I\/usr\/include //g'` -#CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-I\/usr\/include //g'` -#CPPFLAGS=`echo $CPPFLAGS | sed -e 's/-I\/usr\/include //g'` +AM_CPPFLAGS='-I$(top_builddir) -I$(top_srcdir) -I$(top_srcdir)/src \ + -I$(top_srcdir)/src/network_inspectors' -AM_CPPFLAGS='-I$(top_builddir) -I$(top_srcdir)/src -I$(top_srcdir)/src/network_inspectors' snort2lua_CPPFLAGS='-I$(top_builddir) -I$(top_srcdir)/tools/snort2lua' AC_SUBST(AM_CPPFLAGS) diff --git a/daqs/CMakeLists.txt b/daqs/CMakeLists.txt index d82dfb870..e1d5c995e 100644 --- a/daqs/CMakeLists.txt +++ b/daqs/CMakeLists.txt @@ -1,4 +1,8 @@ +set (DAQS_INCLUDES + daq_user.h +) + set(EXTERNAL_INCLUDES ${DAQ_INCLUDE_DIR} ${PCAP_INCLUDE_DIR} @@ -8,7 +12,9 @@ set(EXTERNAL_INCLUDES include_directories(AFTER ${EXTERNAL_INCLUDES}) -add_shared_library(daq_socket daqs daq_socket.c daq_socket.h) -add_shared_library(daq_file daqs daq_file.c daq_socket.h) -add_shared_library(daq_hext daqs daq_hext.c daq_socket.h) +add_shared_library(daq_file daqs daq_file.c daq_user.h) +add_shared_library(daq_hext daqs daq_hext.c daq_user.h) +install (FILES ${DAQS_INCLUDES} + DESTINATION "${INCLUDE_INSTALL_PATH}/daqs" +) diff --git a/daqs/Makefile.am b/daqs/Makefile.am index 7c4e85003..9b8f0cf1d 100644 --- a/daqs/Makefile.am +++ b/daqs/Makefile.am @@ -1,18 +1,16 @@ -daqlibdir = $(pkglibdir)/daqs +x_includedir = $(pkgincludedir)/daqs +x_include_HEADERS = daq_user.h -daqlib_LTLIBRARIES = daq_socket.la -daq_socket_la_CFLAGS = -DBUILDING_SO -daq_socket_la_LDFLAGS = -module -export-dynamic -avoid-version -shared -daq_socket_la_SOURCES = daq_socket.c daq_socket.h +daqlibdir = $(pkglibdir)/daqs -daqlib_LTLIBRARIES += daq_file.la +daqlib_LTLIBRARIES = daq_file.la daq_file_la_CFLAGS = -DBUILDING_SO daq_file_la_LDFLAGS = -module -export-dynamic -avoid-version -shared -daq_file_la_SOURCES = daq_file.c daq_socket.h +daq_file_la_SOURCES = daq_file.c daqlib_LTLIBRARIES += daq_hext.la daq_hext_la_CFLAGS = -DBUILDING_SO daq_hext_la_LDFLAGS = -module -export-dynamic -avoid-version -shared -daq_hext_la_SOURCES = daq_hext.c daq_socket.h +daq_hext_la_SOURCES = daq_hext.c diff --git a/daqs/daq_file.c b/daqs/daq_file.c index c39778302..374150157 100644 --- a/daqs/daq_file.c +++ b/daqs/daq_file.c @@ -18,7 +18,7 @@ */ /* daq_file.c author Russ Combs */ -#include "daq_socket.h" +#include "daq_user.h" #ifdef HAVE_CONFIG_H #include "config.h" @@ -55,7 +55,7 @@ typedef struct { uint8_t* buf; char error[DAQ_ERRBUF_SIZE]; - DAQ_SktHdr_t pci; + DAQ_UsrHdr_t pci; DAQ_State state; DAQ_Stats_t stats; } FileImpl; @@ -137,11 +137,11 @@ static void set_pkt_hdr(FileImpl* impl, DAQ_PktHdr_t* phdr, ssize_t len) if ( impl->start ) { - impl->pci.flags = DAQ_SKT_FLAG_START_FLOW; + impl->pci.flags = DAQ_USR_FLAG_START_FLOW; impl->start = 0; } else if ( impl->eof ) - impl->pci.flags = DAQ_SKT_FLAG_END_FLOW; + impl->pci.flags = DAQ_USR_FLAG_END_FLOW; else impl->pci.flags = 0; @@ -335,7 +335,7 @@ static uint32_t file_daq_get_capabilities (void* handle) static int file_daq_get_datalink_type(void *handle) { (void)handle; - return DLT_SOCKET; + return DLT_USER; } static const char* file_daq_get_errbuf (void* handle) diff --git a/daqs/daq_hext.c b/daqs/daq_hext.c index d096870f7..03213a9bf 100644 --- a/daqs/daq_hext.c +++ b/daqs/daq_hext.c @@ -18,7 +18,7 @@ */ /* daq_hext.c author Russ Combs */ -#include "daq_socket.h" +#include "daq_user.h" #ifdef HAVE_CONFIG_H #include "config.h" @@ -62,8 +62,8 @@ typedef struct { char line[MAX_LINE_SZ]; char error[DAQ_ERRBUF_SIZE]; - DAQ_SktHdr_t pci; - DAQ_SktHdr_t cfg; + DAQ_UsrHdr_t pci; + DAQ_UsrHdr_t cfg; DAQ_State state; DAQ_Stats_t stats; @@ -85,7 +85,7 @@ static void set_c2s(FileImpl* impl, int c2s) impl->pci.dst_addr = impl->cfg.src_addr; impl->pci.src_port = impl->cfg.dst_port; impl->pci.dst_port = impl->cfg.src_port; - impl->pci.flags &= ~DAQ_SKT_FLAG_TO_SERVER; + impl->pci.flags &= ~DAQ_USR_FLAG_TO_SERVER; } } @@ -122,9 +122,9 @@ static void parse_pci(FileImpl* impl, const char* s) // hack until client / server is resolved: if ( impl->pci.src_port >= impl->pci.dst_port ) - impl->pci.flags |= DAQ_SKT_FLAG_TO_SERVER; + impl->pci.flags |= DAQ_USR_FLAG_TO_SERVER; else - impl->pci.flags &= ~DAQ_SKT_FLAG_TO_SERVER; + impl->pci.flags &= ~DAQ_USR_FLAG_TO_SERVER; } static unsigned flush(FileImpl* impl) @@ -272,7 +272,7 @@ static int hext_setup(FileImpl* impl) parse_host("10.1.2.3 80", &impl->cfg.dst_addr, &impl->cfg.dst_port); impl->cfg.ip_proto = impl->pci.ip_proto = IPPROTO_TCP; - impl->cfg.flags = impl->pci.flags = DAQ_SKT_FLAG_TO_SERVER; + impl->cfg.flags = impl->pci.flags = DAQ_USR_FLAG_TO_SERVER; impl->start = 1; return 0; @@ -301,7 +301,7 @@ static int hext_read(FileImpl* impl) if ( !n ) { - if ( (impl->dlt == DLT_SOCKET) && !impl->eof ) + if ( (impl->dlt == DLT_USER) && !impl->eof ) { impl->eof = 1; return 1; // <= zero won't make it :( @@ -364,20 +364,20 @@ static void set_pkt_hdr(FileImpl* impl, DAQ_PktHdr_t* phdr, ssize_t len) phdr->address_space_id = 0; phdr->opaque = 0; - if ( impl->dlt != DLT_SOCKET ) + if ( impl->dlt != DLT_USER ) { phdr->priv_ptr = NULL; return; } - impl->pci.flags &= ~(DAQ_SKT_FLAG_START_FLOW|DAQ_SKT_FLAG_END_FLOW); + impl->pci.flags &= ~(DAQ_USR_FLAG_START_FLOW|DAQ_USR_FLAG_END_FLOW); if ( impl->start ) { - impl->pci.flags |= DAQ_SKT_FLAG_START_FLOW; + impl->pci.flags |= DAQ_USR_FLAG_START_FLOW; impl->start = 0; } else if ( impl->eof ) - impl->pci.flags |= DAQ_SKT_FLAG_END_FLOW; + impl->pci.flags |= DAQ_USR_FLAG_END_FLOW; phdr->priv_ptr = &impl->pci; } @@ -435,7 +435,7 @@ static int hext_daq_initialize ( } impl->snaplen = cfg->snaplen ? cfg->snaplen : DEF_BUF_SZ; - impl->dlt = DLT_SOCKET; + impl->dlt = DLT_USER; if ( !get_vars(impl, cfg, errBuf, errMax) ) { diff --git a/daqs/daq_socket.h b/daqs/daq_user.h similarity index 78% rename from daqs/daq_socket.h rename to daqs/daq_user.h index 5f7fc6e64..64de51256 100644 --- a/daqs/daq_socket.h +++ b/daqs/daq_user.h @@ -16,22 +16,22 @@ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. //-------------------------------------------------------------------------- */ -/* daq_socket.h author Russ Combs */ +/* daq_user.h author Russ Combs */ /* this is a C include, not C++ */ -#ifndef DAQ_AUX_H -#define DAQ_AUX_H +#ifndef DAQ_USER_H +#define DAQ_USER_H #include -/* for socket / proxy connections handling payload only */ -#define DLT_SOCKET 230 +/* for raw payload only */ +#define DLT_USER 230 -#define DAQ_SKT_FLAG_TO_SERVER 0x01 -#define DAQ_SKT_FLAG_START_FLOW 0x02 -#define DAQ_SKT_FLAG_END_FLOW 0x04 +#define DAQ_USR_FLAG_TO_SERVER 0x01 +#define DAQ_USR_FLAG_START_FLOW 0x02 +#define DAQ_USR_FLAG_END_FLOW 0x04 -/* socket DAQ sets priv_ptr to this */ +/* user-related DAQs set priv_ptr to this */ typedef struct { uint32_t src_addr; @@ -40,7 +40,7 @@ typedef struct uint16_t dst_port; uint8_t ip_proto; uint8_t flags; -} DAQ_SktHdr_t; +} DAQ_UsrHdr_t; #endif diff --git a/extra/src/CMakeLists.txt b/extra/src/CMakeLists.txt index bd6aa0b02..8552dcfaf 100644 --- a/extra/src/CMakeLists.txt +++ b/extra/src/CMakeLists.txt @@ -79,6 +79,7 @@ endif (BUILD_EXTRA_PLUGINS) add_subdirectory (codecs) +add_subdirectory (daqs) add_subdirectory (inspectors) add_subdirectory (ips_options) add_subdirectory (loggers) diff --git a/extra/src/Makefile.am b/extra/src/Makefile.am index 29bda60c7..5fed5eafe 100644 --- a/extra/src/Makefile.am +++ b/extra/src/Makefile.am @@ -1,6 +1,7 @@ SUBDIRS = \ codecs \ +daqs \ inspectors \ ips_options \ loggers \ diff --git a/extra/src/codecs/CMakeLists.txt b/extra/src/codecs/CMakeLists.txt index 398824b9e..0ef7941d1 100644 --- a/extra/src/codecs/CMakeLists.txt +++ b/extra/src/codecs/CMakeLists.txt @@ -1,4 +1,14 @@ -add_example_library(pim codecs pim.cc) -add_example_library(token_ring codecs token_ring.cc) +add_example_library(cd_eapol codecs cd_eapol.cc) +add_example_library(cd_i4l_rawip codecs cd_i4l_rawip.cc) +add_example_library(cd_linux_sll codecs cd_linux_sll.cc) +add_example_library(cd_null codecs cd_null.cc) +add_example_library(cd_pflog codecs cd_pflog.cc) +add_example_library(cd_pim codecs cd_pim.cc) +add_example_library(cd_ppp codecs cd_ppp.cc) +add_example_library(cd_raw4 codecs cd_raw4.cc) +add_example_library(cd_raw6 codecs cd_raw6.cc) +add_example_library(cd_slip codecs cd_slip.cc) +add_example_library(cd_token_ring codecs cd_token_ring.cc) +add_example_library(cd_wlan codecs cd_wlan.cc) diff --git a/extra/src/codecs/Makefile.am b/extra/src/codecs/Makefile.am index e93da5740..e0741531f 100644 --- a/extra/src/codecs/Makefile.am +++ b/extra/src/codecs/Makefile.am @@ -1,15 +1,65 @@ cdlibdir = $(pkglibdir)/codecs -cdlib_LTLIBRARIES = libpim.la +cdlib_LTLIBRARIES = libeapol.la +libeapol_la_CXXFLAGS = $(AM_CXXFLAGS) +libeapol_la_LDFLAGS = -export-dynamic -shared +libeapol_la_SOURCES = cd_eapol.cc + +cdlib_LTLIBRARIES += libi4l_rawip.la +libi4l_rawip_la_CXXFLAGS = $(AM_CXXFLAGS) +libi4l_rawip_la_LDFLAGS = -export-dynamic -shared +libi4l_rawip_la_SOURCES = cd_i4l_rawip.cc + +cdlib_LTLIBRARIES += liblinux_sll.la +liblinux_sll_la_CXXFLAGS = $(AM_CXXFLAGS) +liblinux_sll_la_LDFLAGS = -export-dynamic -shared +liblinux_sll_la_SOURCES = cd_linux_sll.cc + +cdlib_LTLIBRARIES += libnull.la +libnull_la_CXXFLAGS = $(AM_CXXFLAGS) +libnull_la_LDFLAGS = -export-dynamic -shared +libnull_la_SOURCES = cd_null.cc + +cdlib_LTLIBRARIES += libpflog.la +libpflog_la_CXXFLAGS = $(AM_CXXFLAGS) +libpflog_la_LDFLAGS = -export-dynamic -shared +libpflog_la_SOURCES = cd_pflog.cc + +cdlib_LTLIBRARIES += libpim.la libpim_la_CXXFLAGS = $(AM_CXXFLAGS) libpim_la_LDFLAGS = -export-dynamic -shared -libpim_la_SOURCES = pim.cc +libpim_la_SOURCES = cd_pim.cc + +cdlib_LTLIBRARIES += libppp.la +libppp_la_CXXFLAGS = $(AM_CXXFLAGS) +libppp_la_LDFLAGS = -export-dynamic -shared +libppp_la_SOURCES = cd_ppp.cc + +cdlib_LTLIBRARIES += libraw4.la +libraw4_la_CXXFLAGS = $(AM_CXXFLAGS) +libraw4_la_LDFLAGS = -export-dynamic -shared +libraw4_la_SOURCES = cd_raw4.cc + +cdlib_LTLIBRARIES += libraw6.la +libraw6_la_CXXFLAGS = $(AM_CXXFLAGS) +libraw6_la_LDFLAGS = -export-dynamic -shared +libraw6_la_SOURCES = cd_raw6.cc + +cdlib_LTLIBRARIES += libslip.la +libslip_la_CXXFLAGS = $(AM_CXXFLAGS) +libslip_la_LDFLAGS = -export-dynamic -shared +libslip_la_SOURCES = cd_slip.cc cdlib_LTLIBRARIES += libtoken_ring.la libtoken_ring_la_CXXFLAGS = $(AM_CXXFLAGS) libtoken_ring_la_LDFLAGS = -export-dynamic -shared -libtoken_ring_la_SOURCES = token_ring.cc +libtoken_ring_la_SOURCES = cd_token_ring.cc + +cdlib_LTLIBRARIES += libwlan.la +libwlan_la_CXXFLAGS = $(AM_CXXFLAGS) +libwlan_la_LDFLAGS = -export-dynamic -shared +libwlan_la_SOURCES = cd_wlan.cc AM_CXXFLAGS = @AM_CXXFLAGS@ diff --git a/src/codecs/link/cd_eapol.cc b/extra/src/codecs/cd_eapol.cc similarity index 100% rename from src/codecs/link/cd_eapol.cc rename to extra/src/codecs/cd_eapol.cc diff --git a/src/codecs/root/cd_i4l_rawip.cc b/extra/src/codecs/cd_i4l_rawip.cc similarity index 100% rename from src/codecs/root/cd_i4l_rawip.cc rename to extra/src/codecs/cd_i4l_rawip.cc diff --git a/src/codecs/root/cd_linux_sll.cc b/extra/src/codecs/cd_linux_sll.cc similarity index 100% rename from src/codecs/root/cd_linux_sll.cc rename to extra/src/codecs/cd_linux_sll.cc diff --git a/src/codecs/root/cd_null.cc b/extra/src/codecs/cd_null.cc similarity index 100% rename from src/codecs/root/cd_null.cc rename to extra/src/codecs/cd_null.cc diff --git a/src/codecs/root/cd_pflog.cc b/extra/src/codecs/cd_pflog.cc similarity index 100% rename from src/codecs/root/cd_pflog.cc rename to extra/src/codecs/cd_pflog.cc diff --git a/extra/src/codecs/pim.cc b/extra/src/codecs/cd_pim.cc similarity index 100% rename from extra/src/codecs/pim.cc rename to extra/src/codecs/cd_pim.cc diff --git a/src/codecs/root/cd_ppp.cc b/extra/src/codecs/cd_ppp.cc similarity index 100% rename from src/codecs/root/cd_ppp.cc rename to extra/src/codecs/cd_ppp.cc diff --git a/src/codecs/root/cd_raw4.cc b/extra/src/codecs/cd_raw4.cc similarity index 100% rename from src/codecs/root/cd_raw4.cc rename to extra/src/codecs/cd_raw4.cc diff --git a/src/codecs/root/cd_raw6.cc b/extra/src/codecs/cd_raw6.cc similarity index 100% rename from src/codecs/root/cd_raw6.cc rename to extra/src/codecs/cd_raw6.cc diff --git a/src/codecs/root/cd_slip.cc b/extra/src/codecs/cd_slip.cc similarity index 100% rename from src/codecs/root/cd_slip.cc rename to extra/src/codecs/cd_slip.cc diff --git a/extra/src/codecs/token_ring.cc b/extra/src/codecs/cd_token_ring.cc similarity index 100% rename from extra/src/codecs/token_ring.cc rename to extra/src/codecs/cd_token_ring.cc diff --git a/src/codecs/root/cd_wlan.cc b/extra/src/codecs/cd_wlan.cc similarity index 100% rename from src/codecs/root/cd_wlan.cc rename to extra/src/codecs/cd_wlan.cc diff --git a/extra/src/daqs/CMakeLists.txt b/extra/src/daqs/CMakeLists.txt new file mode 100644 index 000000000..f9b11e1a1 --- /dev/null +++ b/extra/src/daqs/CMakeLists.txt @@ -0,0 +1,3 @@ + +add_example_library(daq_socket daqs daq_socket.c) + diff --git a/extra/src/daqs/Makefile.am b/extra/src/daqs/Makefile.am new file mode 100644 index 000000000..262b995cd --- /dev/null +++ b/extra/src/daqs/Makefile.am @@ -0,0 +1,8 @@ + +daqlibdir = $(pkglibdir)/daqs + +daqlib_LTLIBRARIES = daq_socket.la +daq_socket_la_CFLAGS = -DBUILDING_SO +daq_socket_la_LDFLAGS = -module -export-dynamic -avoid-version -shared +daq_socket_la_SOURCES = daq_socket.c + diff --git a/daqs/daq_socket.c b/extra/src/daqs/daq_socket.c similarity index 97% rename from daqs/daq_socket.c rename to extra/src/daqs/daq_socket.c index 16e2080b2..287257bc9 100644 --- a/daqs/daq_socket.c +++ b/extra/src/daqs/daq_socket.c @@ -18,7 +18,7 @@ */ /* daq_socket.c author Russ Combs */ -#include "daq_socket.h" +#include "daqs/daq_user.h" #ifdef HAVE_CONFIG_H #include "config.h" @@ -62,7 +62,7 @@ typedef struct { struct sockaddr_in sin_a; struct sockaddr_in sin_b; - DAQ_SktHdr_t pci; + DAQ_UsrHdr_t pci; uint8_t* buf; char error[DAQ_ERRBUF_SIZE]; @@ -130,7 +130,7 @@ static int sock_recv(SockImpl* impl, int* sock) { DPE(impl->error, "%s: can't recv from socket (%s)\n", __FUNCTION__, strerror(errno)); - impl->pci.flags = DAQ_SKT_FLAG_END_FLOW; + impl->pci.flags = DAQ_USR_FLAG_END_FLOW; *sock = -1; } return 0; @@ -176,7 +176,7 @@ static int sock_accept(SockImpl* impl, int* sock, struct sockaddr_in* psin) banner = impl->use_a ? "client\n" : "server\n"; sock_send(impl, *sock, (const uint8_t*)banner, 7); - impl->pci.flags = DAQ_SKT_FLAG_START_FLOW; + impl->pci.flags = DAQ_USR_FLAG_START_FLOW; return 0; } @@ -258,7 +258,7 @@ static void set_pkt_hdr(SockImpl* impl, DAQ_PktHdr_t* phdr, ssize_t len) impl->pci.dst_addr = impl->sin_a.sin_addr.s_addr; impl->pci.src_port = impl->sin_b.sin_port; impl->pci.dst_port = impl->sin_a.sin_port; - impl->pci.flags &= ~DAQ_SKT_FLAG_TO_SERVER; + impl->pci.flags &= ~DAQ_USR_FLAG_TO_SERVER; } else { @@ -266,10 +266,10 @@ static void set_pkt_hdr(SockImpl* impl, DAQ_PktHdr_t* phdr, ssize_t len) impl->pci.dst_addr = impl->sin_b.sin_addr.s_addr; impl->pci.src_port = impl->sin_a.sin_port; impl->pci.dst_port = impl->sin_b.sin_port; - impl->pci.flags |= DAQ_SKT_FLAG_TO_SERVER; + impl->pci.flags |= DAQ_USR_FLAG_TO_SERVER; } - if ( impl->pci.flags & DAQ_SKT_FLAG_END_FLOW ) + if ( impl->pci.flags & DAQ_USR_FLAG_END_FLOW ) clear(impl); phdr->priv_ptr = &impl->pci; @@ -547,7 +547,7 @@ static uint32_t socket_daq_get_capabilities (void* handle) static int socket_daq_get_datalink_type(void *handle) { (void)handle; - return DLT_SOCKET; + return DLT_USER; } static const char* socket_daq_get_errbuf (void* handle) diff --git a/src/codecs/codec_api.cc b/src/codecs/codec_api.cc index 7a914343d..27ebd5069 100644 --- a/src/codecs/codec_api.cc +++ b/src/codecs/codec_api.cc @@ -35,7 +35,6 @@ extern const BaseApi* cd_tcp; // static because only file that specific func extern const BaseApi* cd_ah; extern const BaseApi* cd_arp; extern const BaseApi* cd_dstopts; -extern const BaseApi* cd_eapol; extern const BaseApi* cd_erspan2; extern const BaseApi* cd_erspan3; extern const BaseApi* cd_esp; @@ -44,36 +43,28 @@ extern const BaseApi* cd_fabricpath; extern const BaseApi* cd_frag; extern const BaseApi* cd_gre; extern const BaseApi* cd_gtp; -extern const BaseApi* cd_i4l_rawip; extern const BaseApi* cd_icmp4; extern const BaseApi* cd_icmp4_ip; extern const BaseApi* cd_icmp6; extern const BaseApi* cd_icmp6_ip; extern const BaseApi* cd_ipv6; extern const BaseApi* cd_igmp; -extern const BaseApi* cd_linux_sll; extern const BaseApi* cd_llc; extern const BaseApi* cd_mobility; extern const BaseApi* cd_mpls; extern const BaseApi* cd_no_next; -extern const BaseApi* cd_null; -extern const BaseApi* cd_pflog; extern const BaseApi* cd_pgm; -extern const BaseApi* cd_ppp; extern const BaseApi* cd_pppencap; extern const BaseApi* cd_pppoepkt_disc; extern const BaseApi* cd_pppoepkt_sess; -extern const BaseApi* cd_raw4; -extern const BaseApi* cd_raw6; extern const BaseApi* cd_routing; -extern const BaseApi* cd_socket; extern const BaseApi* cd_sun_nd; extern const BaseApi* cd_swipe; extern const BaseApi* cd_teredo; extern const BaseApi* cd_transbridge; extern const BaseApi* cd_udp; +extern const BaseApi* cd_user; extern const BaseApi* cd_vlan; -extern const BaseApi* cd_wlan; #endif const BaseApi* codecs[] = @@ -86,7 +77,6 @@ const BaseApi* codecs[] = cd_ah, cd_arp, cd_dstopts, - cd_eapol, cd_erspan2, cd_erspan3, cd_esp, @@ -95,36 +85,28 @@ const BaseApi* codecs[] = cd_frag, cd_gre, cd_gtp, - cd_i4l_rawip, cd_icmp4, cd_icmp4_ip, cd_icmp6, cd_icmp6_ip, cd_ipv6, cd_igmp, - cd_linux_sll, cd_llc, cd_mobility, cd_mpls, cd_no_next, - cd_null, - cd_pflog, cd_pgm, - cd_ppp, cd_pppencap, cd_pppoepkt_disc, cd_pppoepkt_sess, - cd_raw4, - cd_raw6, cd_routing, - cd_socket, cd_sun_nd, cd_swipe, cd_teredo, cd_transbridge, cd_udp, + cd_user, cd_vlan, - cd_wlan, #endif nullptr diff --git a/src/codecs/link/CMakeLists.txt b/src/codecs/link/CMakeLists.txt index 2a5c98e27..1ee38dca8 100644 --- a/src/codecs/link/CMakeLists.txt +++ b/src/codecs/link/CMakeLists.txt @@ -2,7 +2,6 @@ if(STATIC_CODECS) set( PLUGIN_SOURCES cd_arp.cc - cd_eapol.cc cd_erspan2.cc cd_erspan3.cc cd_fabricpath.cc @@ -24,7 +23,6 @@ else(STATIC_CODECS) add_shared_library(cd_pppoe codecs cd_pppoe.cc) add_shared_library(cd_trans_bridge codecs cd_trans_bridge.cc) add_shared_library(cd_vlan codecs cd_vlan.cc) - add_shared_library(cd_eapol codecs cd_eapol.cc) endif(STATIC_CODECS) diff --git a/src/codecs/link/Makefile.am b/src/codecs/link/Makefile.am index b5d75e32e..5a9e0fbb8 100644 --- a/src/codecs/link/Makefile.am +++ b/src/codecs/link/Makefile.am @@ -5,7 +5,6 @@ noinst_LIBRARIES = liblink_codecs.a liblink_codecs_a_SOURCES = \ cd_arp.cc \ -cd_eapol.cc \ cd_erspan2.cc \ cd_erspan3.cc \ cd_fabricpath.cc \ @@ -16,7 +15,6 @@ cd_trans_bridge.cc \ cd_vlan.cc else - ehlibdir = $(pkglibdir)/codecs ehlib_LTLIBRARIES = libcd_arp.la @@ -63,15 +61,6 @@ ehlib_LTLIBRARIES += libcd_pppoe.la libcd_pppoe_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO libcd_pppoe_la_LDFLAGS = -export-dynamic -shared libcd_pppoe_la_SOURCES = cd_pppoe.cc - - -ehlib_LTLIBRARIES += libcd_eapol.la -libcd_eapol_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO -libcd_eapol_la_LDFLAGS = -export-dynamic -shared -libcd_eapol_la_SOURCES = cd_eapol.cc - - endif - AM_CXXFLAGS = @AM_CXXFLAGS@ diff --git a/src/codecs/misc/CMakeLists.txt b/src/codecs/misc/CMakeLists.txt index 8cc21b100..8105a2d71 100644 --- a/src/codecs/misc/CMakeLists.txt +++ b/src/codecs/misc/CMakeLists.txt @@ -5,8 +5,8 @@ if(STATIC_CODECS) cd_icmp4_ip.cc cd_icmp6_ip.cc cd_llc.cc - cd_socket.cc cd_teredo.cc + cd_user.cc ) else(STATIC_CODECS) @@ -14,8 +14,8 @@ else(STATIC_CODECS) add_shared_library(cd_icmp4_ip codecs cd_icmp4_ip.cc) add_shared_library(cd_icmp6_ip codecs cd_icmp6_ip.cc) add_shared_library(cd_llc codecs cd_llc.cc) - add_shared_library(cd_socket codecs cd_socket.cc) add_shared_library(cd_teredo codecs cd_teredo.cc) + add_shared_library(cd_user codecs cd_user.cc) endif(STATIC_CODECS) diff --git a/src/codecs/misc/Makefile.am b/src/codecs/misc/Makefile.am index 8672cbe77..c3e43f9cd 100644 --- a/src/codecs/misc/Makefile.am +++ b/src/codecs/misc/Makefile.am @@ -8,8 +8,8 @@ cd_gtp.cc \ cd_icmp4_ip.cc \ cd_icmp6_ip.cc \ cd_llc.cc \ -cd_socket.cc \ -cd_teredo.cc +cd_teredo.cc \ +cd_user.cc if STATIC_CODECS libmisc_codecs_a_SOURCES += $(plugin_list) @@ -37,15 +37,15 @@ libcd_llc_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO libcd_llc_la_LDFLAGS = -export-dynamic -shared libcd_llc_la_SOURCES = cd_llc.cc -cdlib_LTLIBRARIES += libcd_socket.la -libcd_socket_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO -libcd_socket_la_LDFLAGS = -export-dynamic -shared -libcd_socket_la_SOURCES = cd_socket.cc - cdlib_LTLIBRARIES += libcd_teredo.la libcd_teredo_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO libcd_teredo_la_LDFLAGS = -export-dynamic -shared libcd_teredo_la_SOURCES = cd_teredo.cc + +cdlib_LTLIBRARIES += libcd_user.la +libcd_user_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO +libcd_user_la_LDFLAGS = -export-dynamic -shared +libcd_user_la_SOURCES = cd_user.cc endif AM_CXXFLAGS = @AM_CXXFLAGS@ diff --git a/src/codecs/misc/cd_socket.cc b/src/codecs/misc/cd_user.cc similarity index 77% rename from src/codecs/misc/cd_socket.cc rename to src/codecs/misc/cd_user.cc index 77850480c..f10e76dc2 100644 --- a/src/codecs/misc/cd_socket.cc +++ b/src/codecs/misc/cd_user.cc @@ -15,37 +15,37 @@ // with this program; if not, write to the Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. //-------------------------------------------------------------------------- -// cd_socket.cc author Russ Combs +// cd_user.cc author Russ Combs #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "framework/codec.h" -#include "../daqs/daq_socket.h" +#include "daqs/daq_user.h" #include "protocols/packet.h" #include "sfip/sf_ip.h" -#define CD_NAME "socket" -#define CD_HELP_STR "support for sockets / proxied sessions" -#define CD_HELP ADD_DLT(CD_HELP_STR, DLT_SOCKET) +#define CD_NAME "user" +#define CD_HELP_STR "support for user sessions" +#define CD_HELP ADD_DLT(CD_HELP_STR, DLT_USER) -class SocketCodec : public Codec +class UserCodec : public Codec { public: - SocketCodec() : Codec(CD_NAME) { }; - ~SocketCodec() { }; + UserCodec() : Codec(CD_NAME) { }; + ~UserCodec() { }; void get_data_link_type(std::vector& v) override; bool decode(const RawData&, CodecData&, DecodeData&) override; }; -void SocketCodec::get_data_link_type(std::vector& v) +void UserCodec::get_data_link_type(std::vector& v) { - v.push_back(DLT_SOCKET); + v.push_back(DLT_USER); } -static void set_ip(const DAQ_SktHdr_t* pci, CodecData& codec, DecodeData& snort) +static void set_ip(const DAQ_UsrHdr_t* pci, CodecData& codec, DecodeData& snort) { // FIXIT support ip6 sfip_t sip, dip; @@ -77,15 +77,15 @@ static void set_key(CodecData& codec, DecodeData& snort) } static void set_flags( - const DAQ_SktHdr_t* pci, const RawData& raw, CodecData& codec, DecodeData& snort) + const DAQ_UsrHdr_t* pci, const RawData& raw, CodecData& codec, DecodeData& snort) { - if ( pci->flags & DAQ_SKT_FLAG_TO_SERVER ) + if ( pci->flags & DAQ_USR_FLAG_TO_SERVER ) snort.decode_flags |= DECODE_C2S; - if ( pci->flags & DAQ_SKT_FLAG_START_FLOW ) + if ( pci->flags & DAQ_USR_FLAG_START_FLOW ) snort.decode_flags |= DECODE_SOF; - if ( pci->flags & DAQ_SKT_FLAG_END_FLOW ) + if ( pci->flags & DAQ_USR_FLAG_END_FLOW ) { snort.decode_flags |= DECODE_EOF; codec.lyr_len = raw.len; @@ -94,9 +94,9 @@ static void set_flags( codec.lyr_len = 0; } -bool SocketCodec::decode(const RawData& raw, CodecData& codec, DecodeData& snort) +bool UserCodec::decode(const RawData& raw, CodecData& codec, DecodeData& snort) { - const DAQ_SktHdr_t* pci = (DAQ_SktHdr_t*)raw.pkth->priv_ptr; + const DAQ_UsrHdr_t* pci = (DAQ_UsrHdr_t*)raw.pkth->priv_ptr; if ( pci->ip_proto ) { @@ -118,12 +118,12 @@ bool SocketCodec::decode(const RawData& raw, CodecData& codec, DecodeData& snort //------------------------------------------------------------------------- static Codec* ctor(Module*) -{ return new SocketCodec; } +{ return new UserCodec; } static void dtor(Codec* cd) { delete cd; } -static const CodecApi socket_api = +static const CodecApi user_api = { { PT_CODEC, @@ -148,10 +148,10 @@ static const CodecApi socket_api = #ifdef BUILDING_SO SO_PUBLIC const BaseApi* snort_plugins[] = { - &socket_api.base, + &user_api.base, nullptr }; #else -const BaseApi* cd_socket = &socket_api.base; +const BaseApi* cd_user = &user_api.base; #endif diff --git a/src/codecs/root/CMakeLists.txt b/src/codecs/root/CMakeLists.txt index 1f63640d4..4b6441124 100644 --- a/src/codecs/root/CMakeLists.txt +++ b/src/codecs/root/CMakeLists.txt @@ -2,38 +2,11 @@ if (STATIC_CODECS) set (PLUGIN_LIST cd_eth.cc - cd_i4l_rawip.cc - cd_linux_sll.cc - cd_null.cc - cd_pflog.cc - cd_ppp.cc - cd_raw4.cc - cd_raw6.cc - cd_slip.cc - cd_wlan.cc -# cd_fddi.cc -# cd_i4lrawip.cc -# cd_oldpflog.cc -# cd_enc.cc -# cd_pppserial.cc -# cd_chdlc.cc -# cd_i4lciscoip.cc -# cd_ipx.cc -# cd_eap.cc ) else (STATIC_CODECS) add_shared_library (cd_eth codecs cd_eth.cc) - add_shared_library (cd_i4l_rawip codecs cd_i4l_rawip.cc) - add_shared_library (cd_linux_sll codecs cd_linux_sll.cc) - add_shared_library (cd_null codecs cd_null.cc) - add_shared_library (cd_pflog codecs cd_pflog.cc) - add_shared_library (cd_ppp codecs cd_ppp.cc) - add_shared_library (cd_raw4 codecs cd_raw4.cc) - add_shared_library (cd_raw6 codecs cd_raw6.cc) - add_shared_library (cd_slip codecs cd_slip.cc) - add_shared_library (cd_wlan codecs cd_wlan.cc) endif (STATIC_CODECS) diff --git a/src/codecs/root/Makefile.am b/src/codecs/root/Makefile.am index 5f96f9b86..0499feef8 100644 --- a/src/codecs/root/Makefile.am +++ b/src/codecs/root/Makefile.am @@ -3,26 +3,7 @@ if STATIC_CODECS noinst_LIBRARIES = libroot_codecs.a libroot_codecs_a_SOURCES = \ -cd_eth.cc \ -cd_i4l_rawip.cc \ -cd_linux_sll.cc \ -cd_null.cc \ -cd_pflog.cc \ -cd_ppp.cc \ -cd_raw4.cc \ -cd_raw6.cc \ -cd_slip.cc \ -cd_wlan.cc -#root_fddi.cc \ -#root_i4lrawip.cc \ -#root_oldpflog.cc \ -#root_enc.cc \ -#root_ppp.cc \ -#root_pflog.cc \ -#root_pppserial.cc \ -#root_chdlc.cc \ -#root_i4lciscoip.cc - +cd_eth.cc else ehlibdir = $(pkglibdir)/codecs @@ -31,52 +12,6 @@ ehlib_LTLIBRARIES = libcd_eth.la libcd_eth_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO libcd_eth_la_LDFLAGS = -export-dynamic -shared libcd_eth_la_SOURCES = cd_eth.cc - -ehlib_LTLIBRARIES += libcd_i4l_rawip.la -libcd_i4l_rawip_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO -libcd_i4l_rawip_la_LDFLAGS = -export-dynamic -shared -libcd_i4l_rawip_la_SOURCES = cd_i4l_rawip.cc - -ehlib_LTLIBRARIES += libcd_linux_sll.la -libcd_linux_sll_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO -libcd_linux_sll_la_LDFLAGS = -export-dynamic -shared -libcd_linux_sll_la_SOURCES = cd_linux_sll.cc - -ehlib_LTLIBRARIES += libcd_null.la -libcd_null_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO -libcd_null_la_LDFLAGS = -export-dynamic -shared -libcd_null_la_SOURCES = cd_null.cc - -ehlib_LTLIBRARIES += libcd_pflog.la -libcd_pflog_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO -libcd_pflog_la_LDFLAGS = -export-dynamic -shared -libcd_pflog_la_SOURCES = cd_pflog.cc - -ehlib_LTLIBRARIES += libcd_ppp.la -libcd_ppp_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO -libcd_ppp_la_LDFLAGS = -export-dynamic -shared -libcd_ppp_la_SOURCES = cd_ppp.cc - -ehlib_LTLIBRARIES += libcd_raw4.la -libcd_raw4_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO -libcd_raw4_la_LDFLAGS = -export-dynamic -shared -libcd_raw4_la_SOURCES = cd_raw4.cc - -ehlib_LTLIBRARIES += libcd_raw6.la -libcd_raw6_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO -libcd_raw6_la_LDFLAGS = -export-dynamic -shared -libcd_raw6_la_SOURCES = cd_raw6.cc - -ehlib_LTLIBRARIES += libcd_slip.la -libcd_slip_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO -libcd_slip_la_LDFLAGS = -export-dynamic -shared -libcd_slip_la_SOURCES = cd_slip.cc - -ehlib_LTLIBRARIES += libcd_wlan.la -libcd_wlan_la_CXXFLAGS = $(AM_CXXFLAGS) -DBUILDING_SO -libcd_wlan_la_LDFLAGS = -export-dynamic -shared -libcd_wlan_la_SOURCES = cd_wlan.cc - endif AM_CXXFLAGS = @AM_CXXFLAGS@ diff --git a/src/log/log_text.cc b/src/log/log_text.cc index c10ef7a59..886c80d71 100644 --- a/src/log/log_text.cc +++ b/src/log/log_text.cc @@ -112,55 +112,6 @@ void LogPriorityData(TextLog* log, const Event* e, bool doNewLine) * Layer 2 header stuff cloned from log.c *-------------------------------------------------------------------- */ -/*-------------------------------------------------------------------- - * Function: LogTrHeader(TextLog*, Packet*) - * - * Purpose: Print the packet TokenRing header to the given TextLog - * - * Arguments: log => pointer to TextLog to print to - * - * Returns: void function - *-------------------------------------------------------------------- - */ - -void LogTrHeader(TextLog* log, Packet* p) -{ - const token_ring::Trh_hdr* trh = - reinterpret_cast(layer::get_root_layer(p)); - - TextLog_Print(log, "%X:%X:%X:%X:%X:%X -> ", trh->saddr[0], - trh->saddr[1], trh->saddr[2], trh->saddr[3], - trh->saddr[4], trh->saddr[5]); - TextLog_Print(log, "%X:%X:%X:%X:%X:%X\n", trh->daddr[0], - trh->daddr[1], trh->daddr[2], trh->daddr[3], - trh->daddr[4], trh->daddr[5]); - - const token_ring::Trh_llc* trhllc = - reinterpret_cast(trh + sizeof(*trh)); - - TextLog_Print(log, "access control:0x%X frame control:0x%X\n", trh->ac, - trh->fc); - - TextLog_Print(log, "DSAP: 0x%X SSAP 0x%X protoID: %X%X%X Ethertype: %X\n", - trhllc->dsap, trhllc->ssap, trhllc->protid[0], - trhllc->protid[1], trhllc->protid[2], trhllc->ethertype); - - const token_ring::Trh_mr* trhmr = token_ring::get_trhmr(trhllc); - - if (trhmr) - { - TextLog_Print(log, "RIF structure is present:\n"); - TextLog_Print(log, "bcast: 0x%X length: 0x%X direction: 0x%X largest" - "fr. size: 0x%X res: 0x%X\n", - TRH_MR_BCAST(trhmr), TRH_MR_LEN(trhmr), - TRH_MR_DIR(trhmr), TRH_MR_LF(trhmr), - TRH_MR_RES(trhmr)); - TextLog_Print(log, "rseg -> %X:%X:%X:%X:%X:%X:%X:%X\n", - trhmr->rseg[0], trhmr->rseg[1], trhmr->rseg[2], - trhmr->rseg[3], trhmr->rseg[4], trhmr->rseg[5], - trhmr->rseg[6], trhmr->rseg[7]); - } -} /*-------------------------------------------------------------------- * Function: LogEthHeader() @@ -208,200 +159,6 @@ static void LogGREHeader(TextLog* log, Packet* p) greh->get_version(), greh->flags, greh->proto()); } -/*-------------------------------------------------------------------- - * Function: LogSLLHeader(TextLog* ) - * - * Purpose: Print the packet SLL (fake) header to the given TextLog - * (piece partly is borrowed from tcpdump :)) - * - * Arguments: log => pointer to TextLog to print to - * - * Returns: void function - *-------------------------------------------------------------------- - */ -#ifdef DLT_LINUX_SLL -static void LogSLLHeader(TextLog* log, Packet* p) -{ - const linux_sll::SLLHdr* sllh = - reinterpret_cast(layer::get_root_layer(p)); - - switch (ntohs(sllh->sll_pkttype)) - { - case LINUX_SLL_HOST: - TextLog_Puts(log, "< "); - break; - case LINUX_SLL_BROADCAST: - TextLog_Puts(log, "B "); - break; - case LINUX_SLL_MULTICAST: - TextLog_Puts(log, "M "); - break; - case LINUX_SLL_OTHERHOST: - TextLog_Puts(log, "P "); - break; - case LINUX_SLL_OUTGOING: - TextLog_Puts(log, "> "); - break; - default: - TextLog_Puts(log, "? "); - break; - } - - /* mac addr */ - TextLog_Print(log, "l/l len: %i l/l type: 0x%X %02X:%02X:%02X:%02X:%02X:%02X\n", - htons(sllh->sll_halen), ntohs(sllh->sll_hatype), - sllh->sll_addr[0], sllh->sll_addr[1], sllh->sll_addr[2], - sllh->sll_addr[3], sllh->sll_addr[4], sllh->sll_addr[5]); - - /* protocol and pkt size */ - TextLog_Print(log, "pkt type:0x%X proto: 0x%X len:0x%X\n", - ntohs(sllh->sll_pkttype), - ntohs(sllh->sll_protocol), p->pkth->pktlen); -} - -#endif - -/*-------------------------------------------------------------------- - * Function: LogWifiHeader(TextLog* ) - * - * Purpose: Print the packet 802.11 header to the given TextLog - * - * Arguments: log => pointer to TextLog to print to - * - * Returns: void function - *-------------------------------------------------------------------- - */ -static void LogWifiHeader(TextLog* log, Packet* p) -{ - const wlan::WifiHdr* wifih = - reinterpret_cast< const wlan::WifiHdr*>(layer::get_root_layer(p)); - - /* This assumes we are printing a data packet, could be changed - to print other types as well */ - const uint8_t* da = NULL, * sa = NULL, * bssid = NULL, * ra = NULL, - * ta = NULL; - /* per table 4, IEEE802.11 section 7.2.2 */ - if ((wifih->frame_control & WLAN_FLAG_TODS) && - (wifih->frame_control & WLAN_FLAG_FROMDS)) - { - ra = wifih->addr1; - ta = wifih->addr2; - da = wifih->addr3; - sa = wifih->addr4; - } - else if (wifih->frame_control & WLAN_FLAG_TODS) - { - bssid = wifih->addr1; - sa = wifih->addr2; - da = wifih->addr3; - } - else if (wifih->frame_control & WLAN_FLAG_FROMDS) - { - da = wifih->addr1; - bssid = wifih->addr2; - sa = wifih->addr3; - } - else - { - da = wifih->addr1; - sa = wifih->addr2; - bssid = wifih->addr3; - } - - /* DO this switch to provide additional info on the type */ - switch (wifih->frame_control & 0x00ff) - { - case WLAN_TYPE_MGMT_BEACON: - TextLog_Puts(log, "Beacon "); - break; - /* management frames */ - case WLAN_TYPE_MGMT_ASREQ: - TextLog_Puts(log, "Assoc. Req. "); - break; - case WLAN_TYPE_MGMT_ASRES: - TextLog_Puts(log, "Assoc. Resp. "); - break; - case WLAN_TYPE_MGMT_REREQ: - TextLog_Puts(log, "Reassoc. Req. "); - break; - case WLAN_TYPE_MGMT_RERES: - TextLog_Puts(log, "Reassoc. Resp. "); - break; - case WLAN_TYPE_MGMT_PRREQ: - TextLog_Puts(log, "Probe Req. "); - break; - case WLAN_TYPE_MGMT_PRRES: - TextLog_Puts(log, "Probe Resp. "); - break; - case WLAN_TYPE_MGMT_ATIM: - TextLog_Puts(log, "ATIM "); - break; - case WLAN_TYPE_MGMT_DIS: - TextLog_Puts(log, "Dissassoc. "); - break; - case WLAN_TYPE_MGMT_AUTH: - TextLog_Puts(log, "Authent. "); - break; - case WLAN_TYPE_MGMT_DEAUTH: - TextLog_Puts(log, "Deauthent. "); - break; - - /* Control frames */ - case WLAN_TYPE_CONT_PS: - case WLAN_TYPE_CONT_RTS: - case WLAN_TYPE_CONT_CTS: - case WLAN_TYPE_CONT_ACK: - case WLAN_TYPE_CONT_CFE: - case WLAN_TYPE_CONT_CFACK: - TextLog_Puts(log, "Control "); - break; - } - - if (sa != NULL) - { - TextLog_Print(log, "%X:%X:%X:%X:%X:%X -> ", sa[0], - sa[1], sa[2], sa[3], sa[4], sa[5]); - } - else if (ta != NULL) - { - TextLog_Print(log, "ta: %X:%X:%X:%X:%X:%X da: ", ta[0], - ta[1], ta[2], ta[3], ta[4], ta[5]); - } - - TextLog_Print(log, "%X:%X:%X:%X:%X:%X\n", da[0], - da[1], da[2], da[3], da[4], da[5]); - - if (bssid != NULL) - { - TextLog_Print(log, "bssid: %X:%X:%X:%X:%X:%X", bssid[0], - bssid[1], bssid[2], bssid[3], bssid[4], bssid[5]); - } - - if (ra != NULL) - { - TextLog_Print(log, " ra: %X:%X:%X:%X:%X:%X", ra[0], - ra[1], ra[2], ra[3], ra[4], ra[5]); - } - TextLog_Puts(log, " Flags:"); - if (wifih->frame_control & WLAN_FLAG_TODS) - TextLog_Puts(log," ToDs"); - if (wifih->frame_control & WLAN_FLAG_TODS) - TextLog_Puts(log," FrDs"); - if (wifih->frame_control & WLAN_FLAG_FRAG) - TextLog_Puts(log," Frag"); - if (wifih->frame_control & WLAN_FLAG_RETRY) - TextLog_Puts(log," Re"); - if (wifih->frame_control & WLAN_FLAG_PWRMGMT) - TextLog_Puts(log," Pwr"); - if (wifih->frame_control & WLAN_FLAG_MOREDAT) - TextLog_Puts(log," MD"); - if (wifih->frame_control & WLAN_FLAG_WEP) - TextLog_Puts(log," Wep"); - if (wifih->frame_control & WLAN_FLAG_ORDER) - TextLog_Puts(log," Ord"); - TextLog_NewLine(log); -} - /*-------------------------------------------------------------------- * Function: Log2ndHeader(TextLog* , Packet p) * @@ -420,22 +177,6 @@ void Log2ndHeader(TextLog* log, Packet* p) if (p && (p->num_layers > 0)) LogEthHeader(log, p); break; -#ifdef DLT_IEEE802_11 - case DLT_IEEE802_11: - if (p && (p->num_layers > 0)) - LogWifiHeader(log, p); - break; -#endif - case DLT_IEEE802: /* Token Ring */ - if (p && (p->num_layers > 0)) - LogTrHeader(log, p); - break; -#ifdef DLT_LINUX_SLL - case DLT_LINUX_SLL: - if (p && (p->num_layers > 0)) - LogSLLHeader(log, p); /* Linux cooked sockets */ - break; -#endif default: if (SnortConfig::log_verbose()) { @@ -1811,257 +1552,3 @@ void LogPayload(TextLog* log, Packet* p) } } -/*-------------------------------------------------------------------- - * ARP stuff cloned from log.c - * FIXIT-L these must be converted to use TextLog (or just deleted) - *-------------------------------------------------------------------- - */ - -#if 0 -/**************************************************************************** - * - * Function: PrintEapolKey(FILE *) - * - * Purpose: Dump the EAP header to the specified file stream - * - * Arguments: fp => file stream - * - * Returns: void function - * - ***************************************************************************/ -static void PrintEapolKey(FILE* fp, const eapol::EapolKey* eapolk) -{ - uint16_t length; - - if (eapolk == NULL) - { - fprintf(fp, "Eapol Key truncated\n"); - return; - } - fprintf(fp, "KEY type: "); - if (eapolk->type == 1) - { - fprintf(fp, "RC4"); - } - - memcpy(&length, &eapolk->length, 2); - length = ntohs(length); - fprintf(fp, " len: %d", length); - fprintf(fp, " index: %d ", eapolk->index & 0x7F); - fprintf(fp, eapolk->index & 0x80 ? " unicast\n" : " broadcast\n"); -} - -/**************************************************************************** - * - * Function: PrintEapolHeader(FILE *, Packet *) - * - * Purpose: Dump the EAPOL header info to the specified stream - * - * Arguments: fp => stream to print to - * - * Returns: void function - * - ***************************************************************************/ -static void PrintEapolHeader(FILE* fp, const eapol::EtherEapol* eplh) -{ - fprintf(fp, "EAPOL type: "); - switch (eplh->eaptype) - { - case EAPOL_TYPE_EAP: - fprintf(fp, "EAP"); - break; - case EAPOL_TYPE_START: - fprintf(fp, "Start"); - break; - case EAPOL_TYPE_LOGOFF: - fprintf(fp, "Logoff"); - break; - case EAPOL_TYPE_KEY: - fprintf(fp, "Key"); - break; - case EAPOL_TYPE_ASF: - fprintf(fp, "ASF Alert"); - break; - default: - fprintf(fp, "Unknown"); - } - fprintf(fp, " Len: %d\n", ntohs(eplh->len)); -} - -/**************************************************************************** - * - * Function: PrintEAPHeader(FILE *) - * - * Purpose: Dump the EAP header to the specified file stream - * - * Arguments: fp => file stream - * - * Returns: void function - * - ***************************************************************************/ -static void PrintEAPHeader(FILE* fp, const eapol::EAPHdr* eaph) -{ - uint8_t* eaptype = 0; - - if (eaph == NULL) - { - fprintf(fp, "EAP header truncated\n"); - return; - } - fprintf(fp, "code: "); - switch (eaph->code) - { - case EAP_CODE_REQUEST: - fprintf(fp, "Req "); - eaptype = (uint8_t*)(eaph + sizeof(*eaph)); - break; - case EAP_CODE_RESPONSE: - fprintf(fp, "Resp"); - eaptype = (uint8_t*)(eaph + sizeof(*eaph)); - break; - case EAP_CODE_SUCCESS: - fprintf(fp, "Succ"); - break; - case EAP_CODE_FAILURE: - fprintf(fp, "Fail"); - break; - } - fprintf(fp, " id: 0x%x len: %d", eaph->id, ntohs(eaph->len)); - if (eaptype != NULL) - { - fprintf(fp, " type: "); - switch (*(eaptype)) - { - case EAP_TYPE_IDENTITY: - fprintf(fp, "id"); - break; - case EAP_TYPE_NOTIFY: - fprintf(fp, "notify"); - break; - case EAP_TYPE_NAK: - fprintf(fp, "nak"); - break; - case EAP_TYPE_MD5: - fprintf(fp, "md5"); - break; - case EAP_TYPE_OTP: - fprintf(fp, "otp"); - break; - case EAP_TYPE_GTC: - fprintf(fp, "token"); - break; - case EAP_TYPE_TLS: - fprintf(fp, "tls"); - break; - default: - fprintf(fp, "undef"); - break; - } - } - fprintf(fp, "\n"); -} - -/* - * Function: PrintEapolPkt(FILE *, Packet *) - * - * Purpose: Dump the packet to the stream pointer - * - * Arguments: fp => pointer to print data to - * type => packet protocol - * p => pointer to decoded packet struct - * - * Returns: void function - */ -void PrintEapolPkt(FILE* fp, Packet* p) -{ - char timestamp[TIMEBUF_SIZE]; - - memset((char*)timestamp, 0, TIMEBUF_SIZE); - ts_print((struct timeval*)&p->pkth->ts, timestamp); - - /* dump the timestamp */ - fwrite(timestamp, strlen(timestamp), 1, fp); - - /* dump the ethernet header if we're doing that sort of thing */ - if (SnortConfig::output_datalink()) - { - Print2ndHeader(fp, p); - } - - const eapol::EtherEapol* eplh = layer::get_eapol_layer(p); - - if (eplh) - { - PrintEapolHeader(fp, eplh); - if (eplh->eaptype == EAPOL_TYPE_EAP) - { - PrintEAPHeader(fp, (const eapol::EAPHdr*)eplh + sizeof(*eplh)); - } - else if (eplh->eaptype == EAPOL_TYPE_KEY) - { - PrintEapolKey(fp, (const eapol::EapolKey*)eplh + sizeof(*eplh)); - } - } - else - { - fprintf(fp, "EAP header truncated\n"); - } - - /* dump the application layer data */ - if (SnortConfig::output_app_data() && !SnortConfig::verbose_byte_dump()) - { - if (SnortConfig::output_char_data()) - PrintCharData(fp, (char*)p->data, p->dsize); - else - PrintNetData(fp, p->data, p->dsize, NULL); - } - else if (SnortConfig::verbose_byte_dump()) - { - PrintNetData(fp, p->pkt, p->pkth->caplen, p); - } - - fprintf(fp, "%s\n", SEPARATOR); -} - -/* - * Function: PrintWifiPkt(FILE *, Packet *) - * - * Purpose: Dump the packet to the stream pointer - * - * Arguments: fp => pointer to print data to - * p => pointer to decoded packet struct - * - * Returns: void function - */ -void PrintWifiPkt(FILE* fp, Packet* p) -{ - char timestamp[TIMEBUF_SIZE]; - - memset((char*)timestamp, 0, TIMEBUF_SIZE); - ts_print((struct timeval*)&p->pkth->ts, timestamp); - - /* dump the timestamp */ - fwrite(timestamp, strlen(timestamp), 1, fp); - - /* dump the ethernet header if we're doing that sort of thing */ - Print2ndHeader(fp, p); - - /* dump the application layer data */ - if (SnortConfig::output_app_data() && !SnortConfig::verbose_byte_dump()) - { - if (SnortConfig::output_char_data()) - PrintCharData(fp, (char*)p->data, p->dsize); - else - PrintNetData(fp, p->data, p->dsize, NULL); - } - else if (SnortConfig::verbose_byte_dump()) - { - PrintNetData(fp, p->pkt, p->pkth->caplen, p); - } - - fprintf(fp, "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+" - "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+\n\n"); -} - -#endif -