1 /* Copyright (C) 2009 Trend Micro Inc.
2 * All rights reserved.
3 *
4 * This program is a free software; you can redistribute it
5 * and/or modify it under the terms of the GNU General Public
6 * License (version 3) as published by the FSF - Free Software
7 * Foundation.
8 */
9
10 #include "config.h"
11 #include "eventinfo.h"
12
13
14 /* Initialize the cdb lookup lists */
Lists_OP_CreateLists()15 void Lists_OP_CreateLists()
16 {
17 OS_CreateListsList();
18 return;
19 }
20
Lists_OP_LoadList(char * listfile)21 int Lists_OP_LoadList(char *listfile)
22 {
23 /* XXX Jeremy: I hate this. I think I'm missing something dumb here */
24 char *holder;
25 char a_filename[OS_MAXSTR];
26 char b_filename[OS_MAXSTR];
27 ListNode *tmp_listnode_pt = NULL;
28
29 a_filename[OS_MAXSTR - 2] = '\0';
30 b_filename[OS_MAXSTR - 2] = '\0';
31
32 tmp_listnode_pt = (ListNode *)calloc(1, sizeof(ListNode));
33 if (tmp_listnode_pt == NULL) {
34 ErrorExit(MEM_ERROR, ARGV0, errno, strerror(errno));
35 }
36
37 snprintf(a_filename, OS_MAXSTR - 1, "%s", listfile);
38 if ((strchr(a_filename, '/') == NULL)) {
39 /* default to rules/ if a path is not given */
40 snprintf(b_filename, OS_MAXSTR - 1, "rules/%s", a_filename);
41 snprintf(a_filename, OS_MAXSTR - 1, "%s", b_filename);
42 }
43 if ((holder = strstr(a_filename, ".cdb"))) {
44 snprintf(b_filename, (size_t)(holder - a_filename) + 1, "%s", a_filename);
45 snprintf(a_filename, OS_MAXSTR - 1, "%s", b_filename);
46 }
47
48 snprintf(b_filename, OS_MAXSTR - 1, "%s.cdb", a_filename);
49
50 os_strdup(a_filename, tmp_listnode_pt->txt_filename);
51 os_strdup(b_filename, tmp_listnode_pt->cdb_filename);
52
53 tmp_listnode_pt->loaded = 0;
54
55 OS_AddList(tmp_listnode_pt);
56
57 return 0;
58 }
59
60