+ rbldb_resource_t *res = resource_get("iplist", file);
+ if (res == NULL) {
+ debug("No resource found");
+ res = p_new(rbldb_resource_t, 1);
+ resource_set("iplist", file, res, (resource_destructor_t)rbldb_resource_wipe);
+ }
+
+ db = p_new(rbldb_t, 1);
+ db->filename = m_strdup(file);
+ db->ips = res->ips;
+ if (map.st.st_size == res->size && map.st.st_mtime == res->mtime) {
+ info("rbl %s up to date", file);
+ file_map_close(&map);
+ return db;
+ }
+ debug("mtime %d/%d, size %d/%d", (int)map.st.st_mtime, (int)res->mtime, (int)map.st.st_size, (int)res->size);
+ res->size = map.st.st_size;
+ res->mtime = map.st.st_mtime;
+