/* 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.
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;
}
/* 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) {