3 /* Copyright (C) 2009 Trend Micro Inc.
6 * This program is a free software; you can redistribute it
7 * and/or modify it under the terms of the GNU General Public
8 * License (version 3) as published by the FSF - Free Software
11 * License details at the LICENSE file included with OSSEC or
12 * online at: http://www.ossec.net/en/licensing.html
18 #include "eventinfo.h"
22 /* Lists_OP_CreateLists, v0.1, 2010/01/08
23 * Will initilalize the cdb lookup lists
25 void Lists_OP_CreateLists()
31 int Lists_OP_LoadList(char * listfile)
33 /* XXX Jeremy: I hate this. I think I'm missing something dumb here */
35 char a_filename[OS_MAXSTR];
36 a_filename[OS_MAXSTR - 2] = '\0';
37 char b_filename[OS_MAXSTR];
38 b_filename[OS_MAXSTR - 2] = '\0';
40 ListNode *tmp_listnode_pt = NULL;
41 tmp_listnode_pt = (ListNode *)calloc(1,sizeof(ListNode));
42 debug1("crated new listnode for %s\n", listfile);
43 if (tmp_listnode_pt == NULL)
44 ErrorExit(MEM_ERROR,ARGV0);
45 snprintf(a_filename, OS_MAXSTR-1, "%s", listfile);
46 if((strchr(a_filename, '/') == NULL))
48 /* default to rules/ if a path is not given */
49 snprintf(b_filename, OS_MAXSTR-1, "rules/%s", a_filename);
50 snprintf(a_filename, OS_MAXSTR-1, "%s", b_filename);
52 if((holder = strstr(a_filename, ".cdb")))
54 snprintf(b_filename, (int)(holder - a_filename) + 1, "%s", a_filename);
55 snprintf(a_filename, OS_MAXSTR-1, "%s", b_filename);
57 snprintf(b_filename, OS_MAXSTR-1, "%s.cdb", a_filename);
58 os_strdup(a_filename, tmp_listnode_pt->txt_filename);
59 os_strdup(b_filename, tmp_listnode_pt->cdb_filename);
60 tmp_listnode_pt->loaded = 0;
61 OS_AddList(tmp_listnode_pt);