1 /* Copyright (C) 2007-2010 Open Information Security Foundation 2 * 3 * You can copy, redistribute or modify this Program under the terms of 4 * the GNU General Public License version 2 as published by the Free 5 * Software Foundation. 6 * 7 * This program is distributed in the hope that it will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * GNU General Public License for more details. 11 * 12 * You should have received a copy of the GNU General Public License 13 * version 2 along with this program; if not, write to the Free Software 14 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 15 * 02110-1301, USA. 16 */ 17 18 /** 19 * \file 20 * 21 * \author Victor Julien <victor@inliniac.net> 22 */ 23 24 #ifndef __DETECT_ENGINE_IPONLY_H__ 25 #define __DETECT_ENGINE_IPONLY_H__ 26 27 /** 28 * SigNumArray is a bit array representing signatures 29 * it can be used linked to src/dst address to indicate 30 * which signatures apply to this addres 31 * at IP Only we store SigNumArrays at the radix trees 32 */ 33 typedef struct SigNumArray_ { 34 uint8_t *array; /* bit array of sig nums */ 35 uint32_t size; /* size in bytes of the array */ 36 } SigNumArray; 37 38 void IPOnlyCIDRListFree(IPOnlyCIDRItem *tmphead); 39 int IPOnlySigParseAddress(const DetectEngineCtx *, Signature *, const char *, char); 40 void IPOnlyMatchPacket(ThreadVars *tv, const DetectEngineCtx *, 41 DetectEngineThreadCtx *, const DetectEngineIPOnlyCtx *, 42 DetectEngineIPOnlyThreadCtx *, Packet *); 43 void IPOnlyInit(DetectEngineCtx *, DetectEngineIPOnlyCtx *); 44 void IPOnlyPrint(DetectEngineCtx *, DetectEngineIPOnlyCtx *); 45 void IPOnlyDeinit(DetectEngineCtx *, DetectEngineIPOnlyCtx *); 46 void IPOnlyPrepare(DetectEngineCtx *); 47 void DetectEngineIPOnlyThreadInit(DetectEngineCtx *, DetectEngineIPOnlyThreadCtx *); 48 void DetectEngineIPOnlyThreadDeinit(DetectEngineIPOnlyThreadCtx *); 49 void IPOnlyAddSignature(DetectEngineCtx *, DetectEngineIPOnlyCtx *, Signature *); 50 void IPOnlyRegisterTests(void); 51 52 #endif /* __DETECT_ENGINE_IPONLY_H__ */ 53 54