X-Git-Url: https://jfr.im/git/irc/evilnet/x3.git/blobdiff_plain/d76ed9a966ee3d955c8ef00ecc02e643c2005e2e..e0ee1ed8a1244740d4cad80273e0f4603e9cf744:/src/recdb.c diff --git a/src/recdb.c b/src/recdb.c index 67c3e70..7565c61 100644 --- a/src/recdb.c +++ b/src/recdb.c @@ -1,9 +1,9 @@ /* 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 * (at your option) any later version. @@ -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) {