]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/recdb.c
mod-python: generalised the setting of the PYTHONPATH environment variable
[irc/evilnet/x3.git] / src / recdb.c
index 67c3e7054b195b1ef98ddb0a1fd5854fcee4bd2a..024bc9a7eb78c98161247f678fcf05bc012943eb 100644 (file)
@@ -1,11 +1,11 @@
 /* recdb.c - recursive/record database implementation
  * Copyright 2000-2004 srvx Development Team
  *
- * This file is part of srvx.
+ * This file is part of x3.
  *
- * srvx is free software; you can redistribute it and/or modify
+ * x3 is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
@@ -240,6 +240,10 @@ database_get_path(dict_t db, const char *path)
 void*
 database_get_data(dict_t db, const char *path, enum recdb_type type)
 {
+    assert(path != NULL);
+    if(!path)
+        log_module(MAIN_LOG, LOG_WARNING, "Null path in database_get_data()");
+    /* log_module(MAIN_LOG, LOG_DEBUG, "Reading config option '%s'", path); */
     struct record_data *rd = database_get_path(db, path);
     return (rd && rd->type == type) ? rd->d.whatever : NULL;
 }
@@ -621,6 +625,7 @@ parse_database(const char *filename)
     /* Try mmap */
     if (!mmap_error && (recdb.s = mmap(NULL, recdb.length, PROT_READ|PROT_WRITE, MAP_PRIVATE, fileno(recdb.f), 0)) != MAP_FAILED) {
         recdb.type = RECDB_MMAP;
+        madvise(recdb.s, recdb.length, MADV_SEQUENTIAL);
     } else {
         /* Fall back to stdio */
         if (!mmap_error) {