From: Mats Klepsland Date: Wed, 4 May 2016 10:14:13 +0000 (+0200) Subject: tls: register logger functions X-Git-Tag: suricata-3.1RC1~166 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1f98915ebe072e7af1c7c93a223d901f91f71c09;p=thirdparty%2Fsuricata.git tls: register logger functions --- diff --git a/src/app-layer-ssl.c b/src/app-layer-ssl.c index cde8497e90..057ae2a155 100644 --- a/src/app-layer-ssl.c +++ b/src/app-layer-ssl.c @@ -190,6 +190,22 @@ uint64_t SSLGetTxCnt(void *state) return 1; } +void SSLSetTxLogged(void *state, void *tx, uint32_t logger) +{ + SSLState *ssl_state = (SSLState *)state; + if (ssl_state) + ssl_state->logged |= logger; +} + +int SSLGetTxLogged(void *state, void *tx, uint32_t logger) +{ + SSLState *ssl_state = (SSLState *)state; + if (ssl_state && (ssl_state->logged & logger)) + return 1; + + return 0; +} + int SSLGetAlstateProgressCompletionStatus(uint8_t direction) { return TLS_STATE_FINISHED; @@ -1740,6 +1756,8 @@ void RegisterSSLParsers(void) AppLayerParserRegisterGetStateProgressFunc(IPPROTO_TCP, ALPROTO_TLS, SSLGetAlstateProgress); + AppLayerParserRegisterLoggerFuncs(IPPROTO_TCP, ALPROTO_TLS, SSLGetTxLogged, SSLSetTxLogged); + AppLayerParserRegisterGetStateProgressCompletionStatus(ALPROTO_TLS, SSLGetAlstateProgressCompletionStatus); diff --git a/src/app-layer-ssl.h b/src/app-layer-ssl.h index 12f76219a8..2df1362ebe 100644 --- a/src/app-layer-ssl.h +++ b/src/app-layer-ssl.h @@ -183,6 +183,9 @@ typedef struct SSLState_ { /* holds some state flags we need */ uint32_t flags; + /* specifies which loggers are done logging */ + uint32_t logged; + /* there might be a better place to store this*/ uint16_t hb_record_len;