1 /* @(#) $Id: ./src/analysisd/lists.c, 2011/09/08 dcid Exp $
4 /* Copyright (C) 2009 Trend Micro Inc.
7 * This program is a free software; you can redistribute it
8 * and/or modify it under the terms of the GNU General Public
9 * License (version 3) as published by the FSF - Free Software
12 * License details at the LICENSE file included with OSSEC or
13 * online at: http://www.ossec.net/en/licensing.html
19 #include "eventinfo.h"
23 /* Lists_OP_CreateLists, v0.1, 2010/01/08
24 * Will initilalize the cdb lookup lists
26 void Lists_OP_CreateLists()
32 int Lists_OP_LoadList(char * listfile)
34 /* XXX Jeremy: I hate this. I think I'm missing something dumb here */
36 char a_filename[OS_MAXSTR];
37 char b_filename[OS_MAXSTR];
38 ListNode *tmp_listnode_pt = NULL;
40 a_filename[OS_MAXSTR - 2] = '\0';
41 b_filename[OS_MAXSTR - 2] = '\0';
43 tmp_listnode_pt = (ListNode *)calloc(1,sizeof(ListNode));
44 if (tmp_listnode_pt == NULL)
45 ErrorExit(MEM_ERROR,ARGV0);
46 snprintf(a_filename, OS_MAXSTR-1, "%s", listfile);
47 if((strchr(a_filename, '/') == NULL))
49 /* default to rules/ if a path is not given */
50 snprintf(b_filename, OS_MAXSTR-1, "rules/%s", a_filename);
51 snprintf(a_filename, OS_MAXSTR-1, "%s", b_filename);
53 if((holder = strstr(a_filename, ".cdb")))
55 snprintf(b_filename, (int)(holder - a_filename) + 1, "%s", a_filename);
56 snprintf(a_filename, OS_MAXSTR-1, "%s", b_filename);
58 snprintf(b_filename, OS_MAXSTR-1, "%s.cdb", a_filename);
59 os_strdup(a_filename, tmp_listnode_pt->txt_filename);
60 os_strdup(b_filename, tmp_listnode_pt->cdb_filename);
61 tmp_listnode_pt->loaded = 0;
62 OS_AddList(tmp_listnode_pt);