aboutsummaryrefslogtreecommitdiff
path: root/src/namecache
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2018-04-26 16:40:09 +0200
committerChristian Grothoff <christian@grothoff.org>2018-04-26 16:40:09 +0200
commit823215c974ccb1ef3cad9eb1082999cd1b910416 (patch)
tree7984816482be2a6a50786796d7c24d297a707593 /src/namecache
parent1b21e0b643f37675683b09b9e528721cb7df74e5 (diff)
downloadgnunet-823215c974ccb1ef3cad9eb1082999cd1b910416.tar.gz
gnunet-823215c974ccb1ef3cad9eb1082999cd1b910416.zip
misc zoneimporter fixes
Diffstat (limited to 'src/namecache')
-rw-r--r--src/namecache/plugin_namecache_sqlite.c75
1 files changed, 48 insertions, 27 deletions
diff --git a/src/namecache/plugin_namecache_sqlite.c b/src/namecache/plugin_namecache_sqlite.c
index 6f5f2d952..e0f64a6b0 100644
--- a/src/namecache/plugin_namecache_sqlite.c
+++ b/src/namecache/plugin_namecache_sqlite.c
@@ -136,13 +136,16 @@ create_indices (sqlite3 * dbh)
136{ 136{
137 /* create indices */ 137 /* create indices */
138 if ( (SQLITE_OK != 138 if ( (SQLITE_OK !=
139 sqlite3_exec (dbh, "CREATE INDEX IF NOT EXISTS ir_query_hash ON ns096blocks (query,expiration_time)", 139 sqlite3_exec (dbh,
140 "CREATE INDEX IF NOT EXISTS ir_query_hash ON ns096blocks (query,expiration_time)",
140 NULL, NULL, NULL)) || 141 NULL, NULL, NULL)) ||
141 (SQLITE_OK != 142 (SQLITE_OK !=
142 sqlite3_exec (dbh, "CREATE INDEX IF NOT EXISTS ir_block_expiration ON ns096blocks (expiration_time)", 143 sqlite3_exec (dbh,
144 "CREATE INDEX IF NOT EXISTS ir_block_expiration ON ns096blocks (expiration_time)",
143 NULL, NULL, NULL)) ) 145 NULL, NULL, NULL)) )
144 LOG (GNUNET_ERROR_TYPE_ERROR, 146 LOG (GNUNET_ERROR_TYPE_ERROR,
145 "Failed to create indices: %s\n", sqlite3_errmsg (dbh)); 147 "Failed to create indices: %s\n",
148 sqlite3_errmsg (dbh));
146} 149}
147 150
148 151
@@ -208,28 +211,44 @@ database_setup (struct Plugin *plugin)
208 return GNUNET_SYSERR; 211 return GNUNET_SYSERR;
209 } 212 }
210 CHECK (SQLITE_OK == 213 CHECK (SQLITE_OK ==
211 sqlite3_exec (plugin->dbh, "PRAGMA temp_store=MEMORY", NULL, NULL, 214 sqlite3_exec (plugin->dbh,
215 "PRAGMA temp_store=MEMORY",
216 NULL, NULL,
212 ENULL)); 217 ENULL));
213 CHECK (SQLITE_OK == 218 CHECK (SQLITE_OK ==
214 sqlite3_exec (plugin->dbh, "PRAGMA synchronous=NORMAL", NULL, NULL, 219 sqlite3_exec (plugin->dbh,
220 "PRAGMA synchronous=NORMAL",
221 NULL, NULL,
215 ENULL)); 222 ENULL));
216 CHECK (SQLITE_OK == 223 CHECK (SQLITE_OK ==
217 sqlite3_exec (plugin->dbh, "PRAGMA legacy_file_format=OFF", NULL, NULL, 224 sqlite3_exec (plugin->dbh,
225 "PRAGMA legacy_file_format=OFF",
226 NULL, NULL,
218 ENULL)); 227 ENULL));
219 CHECK (SQLITE_OK == 228 CHECK (SQLITE_OK ==
220 sqlite3_exec (plugin->dbh, "PRAGMA auto_vacuum=INCREMENTAL", NULL, 229 sqlite3_exec (plugin->dbh,
221 NULL, ENULL)); 230 "PRAGMA auto_vacuum=INCREMENTAL",
231 NULL, NULL,
232 ENULL));
222 CHECK (SQLITE_OK == 233 CHECK (SQLITE_OK ==
223 sqlite3_exec (plugin->dbh, "PRAGMA encoding=\"UTF-8\"", NULL, 234 sqlite3_exec (plugin->dbh,
224 NULL, ENULL)); 235 "PRAGMA encoding=\"UTF-8\"",
236 NULL, NULL,
237 ENULL));
225 CHECK (SQLITE_OK == 238 CHECK (SQLITE_OK ==
226 sqlite3_exec (plugin->dbh, "PRAGMA locking_mode=EXCLUSIVE", NULL, NULL, 239 sqlite3_exec (plugin->dbh,
240 "PRAGMA locking_mode=EXCLUSIVE",
241 NULL, NULL,
227 ENULL)); 242 ENULL));
228 CHECK (SQLITE_OK == 243 CHECK (SQLITE_OK ==
229 sqlite3_exec (plugin->dbh, "PRAGMA page_size=4092", NULL, NULL, 244 sqlite3_exec (plugin->dbh,
245 "PRAGMA page_size=4092",
246 NULL, NULL,
230 ENULL)); 247 ENULL));
231 248
232 CHECK (SQLITE_OK == sqlite3_busy_timeout (plugin->dbh, BUSY_TIMEOUT_MS)); 249 CHECK (SQLITE_OK ==
250 sqlite3_busy_timeout (plugin->dbh,
251 BUSY_TIMEOUT_MS));
233 252
234 253
235 /* Create tables */ 254 /* Create tables */
@@ -237,17 +256,19 @@ database_setup (struct Plugin *plugin)
237 sq_prepare (plugin->dbh, 256 sq_prepare (plugin->dbh,
238 "SELECT 1 FROM sqlite_master WHERE tbl_name = 'ns096blocks'", 257 "SELECT 1 FROM sqlite_master WHERE tbl_name = 'ns096blocks'",
239 &stmt)); 258 &stmt));
240 if ((sqlite3_step (stmt) == SQLITE_DONE) && 259 if ( (sqlite3_step (stmt) == SQLITE_DONE) &&
241 (sqlite3_exec 260 (SQLITE_OK !=
242 (plugin->dbh, 261 sqlite3_exec (plugin->dbh,
243 "CREATE TABLE ns096blocks (" 262 "CREATE TABLE ns096blocks ("
244 " query BLOB NOT NULL," 263 " query BLOB NOT NULL,"
245 " block BLOB NOT NULL," 264 " block BLOB NOT NULL,"
246 " expiration_time INT8 NOT NULL" 265 " expiration_time INT8 NOT NULL"
247 ")", 266 ")",
248 NULL, NULL, NULL) != SQLITE_OK)) 267 NULL, NULL, NULL)) )
249 { 268 {
250 LOG_SQLITE (plugin, GNUNET_ERROR_TYPE_ERROR, "sqlite3_exec"); 269 LOG_SQLITE (plugin,
270 GNUNET_ERROR_TYPE_ERROR,
271 "sqlite3_exec");
251 sqlite3_finalize (stmt); 272 sqlite3_finalize (stmt);
252 return GNUNET_SYSERR; 273 return GNUNET_SYSERR;
253 } 274 }
@@ -411,11 +432,11 @@ namecache_sqlite_cache_block (void *cls,
411 GNUNET_CRYPTO_hash (&block->derived_key, 432 GNUNET_CRYPTO_hash (&block->derived_key,
412 sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey), 433 sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey),
413 &query); 434 &query);
414 fprintf (stderr, // GNUNET_log (GNUNET_ERROR_TYPE_INFO,
415 "Caching new version of block %s (expires %s)\n",
416 GNUNET_h2s (&query),
417 GNUNET_STRINGS_absolute_time_to_string (expiration));
418 expiration = GNUNET_TIME_absolute_ntoh (block->expiration_time); 435 expiration = GNUNET_TIME_absolute_ntoh (block->expiration_time);
436 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
437 "Caching new version of block %s (expires %s)\n",
438 GNUNET_h2s (&query),
439 GNUNET_STRINGS_absolute_time_to_string (expiration));
419 if (block_size > 64 * 65536) 440 if (block_size > 64 * 65536)
420 { 441 {
421 GNUNET_break (0); 442 GNUNET_break (0);