From: Victor Julien Date: Fri, 3 Jul 2020 12:35:07 +0000 (+0200) Subject: stream: add state to string funcs X-Git-Tag: suricata-6.0.0-beta1~270 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1b0319ea98a04cf43de0fb08f2f9097d1ed2d594;p=thirdparty%2Fsuricata.git stream: add state to string funcs --- diff --git a/src/stream-tcp-private.h b/src/stream-tcp-private.h index bd1f6d04ba..c74feb601e 100644 --- a/src/stream-tcp-private.h +++ b/src/stream-tcp-private.h @@ -134,7 +134,7 @@ typedef struct TcpStream_ { #define STREAM_LOG_PROGRESS(stream) (STREAM_BASE_OFFSET((stream)) + (stream)->log_progress_rel) /* from /usr/include/netinet/tcp.h */ -enum +enum TcpState { TCP_NONE, TCP_LISTEN, diff --git a/src/stream-tcp.c b/src/stream-tcp.c index ec3b7fa896..10cc5ccc01 100644 --- a/src/stream-tcp.c +++ b/src/stream-tcp.c @@ -6271,6 +6271,57 @@ void TcpSessionSetReassemblyDepth(TcpSession *ssn, uint32_t size) return; } +const char *StreamTcpStateAsString(const enum TcpState state) +{ + const char *tcp_state = NULL; + switch (state) { + case TCP_NONE: + tcp_state = "none"; + break; + case TCP_LISTEN: + tcp_state = "listen"; + break; + case TCP_SYN_SENT: + tcp_state = "syn_sent"; + break; + case TCP_SYN_RECV: + tcp_state = "syn_recv"; + break; + case TCP_ESTABLISHED: + tcp_state = "established"; + break; + case TCP_FIN_WAIT1: + tcp_state = "fin_wait1"; + break; + case TCP_FIN_WAIT2: + tcp_state = "fin_wait2"; + break; + case TCP_TIME_WAIT: + tcp_state = "time_wait"; + break; + case TCP_LAST_ACK: + tcp_state = "last_ack"; + break; + case TCP_CLOSE_WAIT: + tcp_state = "close_wait"; + break; + case TCP_CLOSING: + tcp_state = "closing"; + break; + case TCP_CLOSED: + tcp_state = "closed"; + break; + } + return tcp_state; +} + +const char *StreamTcpSsnStateAsString(const TcpSession *ssn) +{ + if (ssn == NULL) + return NULL; + return StreamTcpStateAsString(ssn->state); +} + #ifdef UNITTESTS #define SET_ISN(stream, setseq) \ diff --git a/src/stream-tcp.h b/src/stream-tcp.h index 64a4f86bc0..653e8d3aa1 100644 --- a/src/stream-tcp.h +++ b/src/stream-tcp.h @@ -140,6 +140,8 @@ void StreamReassembleRawUpdateProgress(TcpSession *ssn, Packet *p, uint64_t prog void StreamTcpDetectLogFlush(ThreadVars *tv, StreamTcpThread *stt, Flow *f, Packet *p, PacketQueueNoLock *pq); +const char *StreamTcpStateAsString(const enum TcpState); +const char *StreamTcpSsnStateAsString(const TcpSession *ssn); /** ------- Inline functions: ------ */