--- /dev/null
+/* @(#) $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;
+}