X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?p=ossec-hids.git;a=blobdiff_plain;f=src%2Fanalysisd%2Flists.c;fp=src%2Fanalysisd%2Flists.c;h=4c0b2c4d34653658e21f6ec9c0d1c0834f54275d;hp=0000000000000000000000000000000000000000;hb=301048b51990573e58a30dc4a5bb4ec285cad554;hpb=914feba5d54f979cd5d7e69c349c3d01f630042a diff --git a/src/analysisd/lists.c b/src/analysisd/lists.c new file mode 100644 index 0000000..4c0b2c4 --- /dev/null +++ b/src/analysisd/lists.c @@ -0,0 +1,63 @@ +/* @(#) $Id$ */ + +/* Copyright (C) 2009 Trend Micro Inc. + * All rights reserved. + * + * This program is a free software; you can redistribute it + * and/or modify it under the terms of the GNU General Public + * License (version 3) as published by the FSF - Free Software + * Foundation. + * + * License details at the LICENSE file included with OSSEC or + * online at: http://www.ossec.net/en/licensing.html + */ + + + +#include "config.h" +#include "eventinfo.h" + + + +/* Lists_OP_CreateLists, v0.1, 2010/01/08 + * Will initilalize the cdb lookup lists + */ +void Lists_OP_CreateLists() +{ + OS_CreateListsList(); + return; +} + +int Lists_OP_LoadList(char * listfile) +{ + /* XXX Jeremy: I hate this. I think I'm missing something dumb here */ + char *holder; + char a_filename[OS_MAXSTR]; + a_filename[OS_MAXSTR - 2] = '\0'; + char b_filename[OS_MAXSTR]; + b_filename[OS_MAXSTR - 2] = '\0'; + + ListNode *tmp_listnode_pt = NULL; + tmp_listnode_pt = (ListNode *)calloc(1,sizeof(ListNode)); + debug1("crated new listnode for %s\n", listfile); + if (tmp_listnode_pt == NULL) + ErrorExit(MEM_ERROR,ARGV0); + snprintf(a_filename, OS_MAXSTR-1, "%s", listfile); + if((strchr(a_filename, '/') == NULL)) + { + /* default to rules/ if a path is not given */ + snprintf(b_filename, OS_MAXSTR-1, "rules/%s", a_filename); + snprintf(a_filename, OS_MAXSTR-1, "%s", b_filename); + } + if((holder = strstr(a_filename, ".cdb"))) + { + snprintf(b_filename, (int)(holder - a_filename) + 1, "%s", a_filename); + snprintf(a_filename, OS_MAXSTR-1, "%s", b_filename); + } + snprintf(b_filename, OS_MAXSTR-1, "%s.cdb", a_filename); + os_strdup(a_filename, tmp_listnode_pt->txt_filename); + os_strdup(b_filename, tmp_listnode_pt->cdb_filename); + tmp_listnode_pt->loaded = 0; + OS_AddList(tmp_listnode_pt); + return 0; +}