aboutsummaryrefslogtreecommitdiff
path: root/src/dht/plugin_dhtlog_mysql.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dht/plugin_dhtlog_mysql.c')
-rw-r--r--src/dht/plugin_dhtlog_mysql.c678
1 files changed, 297 insertions, 381 deletions
diff --git a/src/dht/plugin_dhtlog_mysql.c b/src/dht/plugin_dhtlog_mysql.c
index c653f912a..33028fb09 100644
--- a/src/dht/plugin_dhtlog_mysql.c
+++ b/src/dht/plugin_dhtlog_mysql.c
@@ -73,8 +73,7 @@ struct StatementHandle
73 * @param values values returned by MySQL 73 * @param values values returned by MySQL
74 * @return GNUNET_OK to continue iterating, GNUNET_SYSERR to abort 74 * @return GNUNET_OK to continue iterating, GNUNET_SYSERR to abort
75 */ 75 */
76typedef int (*GNUNET_MysqlDataProcessor) (void *cls, 76typedef int (*GNUNET_MysqlDataProcessor) (void *cls, unsigned int num_values,
77 unsigned int num_values,
78 MYSQL_BIND * values); 77 MYSQL_BIND * values);
79 78
80static unsigned long max_varchar_len; 79static unsigned long max_varchar_len;
@@ -203,128 +202,121 @@ itable ()
203{ 202{
204#define MRUNS(a) (GNUNET_OK != run_statement (a) ) 203#define MRUNS(a) (GNUNET_OK != run_statement (a) )
205 204
206 if (MRUNS ("CREATE TABLE IF NOT EXISTS `dhtkeys` (" 205 if (MRUNS
207 "dhtkeyuid int(10) unsigned NOT NULL auto_increment COMMENT 'Unique Key given to each query'," 206 ("CREATE TABLE IF NOT EXISTS `dhtkeys` ("
208 "`dhtkey` varchar(255) NOT NULL COMMENT 'The ASCII value of the key being searched for'," 207 "dhtkeyuid int(10) unsigned NOT NULL auto_increment COMMENT 'Unique Key given to each query',"
209 "trialuid int(10) unsigned NOT NULL," 208 "`dhtkey` varchar(255) NOT NULL COMMENT 'The ASCII value of the key being searched for',"
210 "keybits blob NOT NULL," 209 "trialuid int(10) unsigned NOT NULL," "keybits blob NOT NULL,"
211 "UNIQUE KEY `dhtkeyuid` (`dhtkeyuid`)" 210 "UNIQUE KEY `dhtkeyuid` (`dhtkeyuid`)"
212 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1")) 211 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"))
213 return GNUNET_SYSERR; 212 return GNUNET_SYSERR;
214 213
215 if (MRUNS ("CREATE TABLE IF NOT EXISTS `nodes` (" 214 if (MRUNS
216 "`nodeuid` int(10) unsigned NOT NULL auto_increment," 215 ("CREATE TABLE IF NOT EXISTS `nodes` ("
217 "`trialuid` int(10) unsigned NOT NULL," 216 "`nodeuid` int(10) unsigned NOT NULL auto_increment,"
218 "`nodeid` varchar(255) NOT NULL," 217 "`trialuid` int(10) unsigned NOT NULL," "`nodeid` varchar(255) NOT NULL,"
219 "`nodebits` blob NOT NULL," 218 "`nodebits` blob NOT NULL," "PRIMARY KEY (`nodeuid`)"
220 "PRIMARY KEY (`nodeuid`)" 219 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"))
221 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"))
222 return GNUNET_SYSERR; 220 return GNUNET_SYSERR;
223 221
224 if (MRUNS ("CREATE TABLE IF NOT EXISTS `queries` (" 222 if (MRUNS
225 "`trialuid` int(10) unsigned NOT NULL," 223 ("CREATE TABLE IF NOT EXISTS `queries` ("
226 "`queryuid` int(10) unsigned NOT NULL auto_increment," 224 "`trialuid` int(10) unsigned NOT NULL,"
227 "`dhtqueryid` bigint(20) NOT NULL," 225 "`queryuid` int(10) unsigned NOT NULL auto_increment,"
228 "`querytype` enum('1','2','3','4','5') NOT NULL," 226 "`dhtqueryid` bigint(20) NOT NULL,"
229 "`hops` int(10) unsigned NOT NULL," 227 "`querytype` enum('1','2','3','4','5') NOT NULL,"
230 "`succeeded` tinyint NOT NULL," 228 "`hops` int(10) unsigned NOT NULL," "`succeeded` tinyint NOT NULL,"
231 "`nodeuid` int(10) unsigned NOT NULL," 229 "`nodeuid` int(10) unsigned NOT NULL,"
232 "`time` timestamp NOT NULL default CURRENT_TIMESTAMP," 230 "`time` timestamp NOT NULL default CURRENT_TIMESTAMP,"
233 "`dhtkeyuid` int(10) unsigned NOT NULL," 231 "`dhtkeyuid` int(10) unsigned NOT NULL," "PRIMARY KEY (`queryuid`)"
234 "PRIMARY KEY (`queryuid`)" 232 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"))
235 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"))
236 return GNUNET_SYSERR; 233 return GNUNET_SYSERR;
237 234
238 if (MRUNS ("CREATE TABLE IF NOT EXISTS `routes` (" 235 if (MRUNS
239 "`trialuid` int(10) unsigned NOT NULL," 236 ("CREATE TABLE IF NOT EXISTS `routes` ("
240 "`queryuid` int(10) unsigned NOT NULL auto_increment," 237 "`trialuid` int(10) unsigned NOT NULL,"
241 "`dhtqueryid` bigint(20) NOT NULL," 238 "`queryuid` int(10) unsigned NOT NULL auto_increment,"
242 "`querytype` enum('1','2','3','4','5') NOT NULL," 239 "`dhtqueryid` bigint(20) NOT NULL,"
243 "`hops` int(10) unsigned NOT NULL," 240 "`querytype` enum('1','2','3','4','5') NOT NULL,"
244 "`succeeded` tinyint NOT NULL," 241 "`hops` int(10) unsigned NOT NULL," "`succeeded` tinyint NOT NULL,"
245 "`nodeuid` int(10) unsigned NOT NULL," 242 "`nodeuid` int(10) unsigned NOT NULL,"
246 "`time` timestamp NOT NULL default CURRENT_TIMESTAMP," 243 "`time` timestamp NOT NULL default CURRENT_TIMESTAMP,"
247 "`dhtkeyuid` int(10) unsigned NOT NULL," 244 "`dhtkeyuid` int(10) unsigned NOT NULL,"
248 "`from_node` int(10) unsigned NOT NULL," 245 "`from_node` int(10) unsigned NOT NULL,"
249 "`to_node` int(10) unsigned NOT NULL," 246 "`to_node` int(10) unsigned NOT NULL," "PRIMARY KEY (`queryuid`)"
250 "PRIMARY KEY (`queryuid`)" 247 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"))
251 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"))
252 return GNUNET_SYSERR; 248 return GNUNET_SYSERR;
253 249
254 if (MRUNS ("CREATE TABLE IF NOT EXISTS `trials` (" 250 if (MRUNS
255 "`trialuid` int(10) unsigned NOT NULL auto_increment," 251 ("CREATE TABLE IF NOT EXISTS `trials` ("
256 "`other_trial_identifier` int(10) unsigned NOT NULL default '0'," 252 "`trialuid` int(10) unsigned NOT NULL auto_increment,"
257 "`numnodes` int(10) unsigned NOT NULL," 253 "`other_trial_identifier` int(10) unsigned NOT NULL default '0',"
258 "`topology` int(10) NOT NULL," 254 "`numnodes` int(10) unsigned NOT NULL," "`topology` int(10) NOT NULL,"
259 "`blacklist_topology` int(11) NOT NULL," 255 "`blacklist_topology` int(11) NOT NULL,"
260 "`connect_topology` int(11) NOT NULL," 256 "`connect_topology` int(11) NOT NULL,"
261 "`connect_topology_option` int(11) NOT NULL," 257 "`connect_topology_option` int(11) NOT NULL,"
262 "`topology_percentage` float NOT NULL," 258 "`topology_percentage` float NOT NULL,"
263 "`topology_probability` float NOT NULL," 259 "`topology_probability` float NOT NULL,"
264 "`connect_topology_option_modifier` float NOT NULL," 260 "`connect_topology_option_modifier` float NOT NULL,"
265 "`starttime` datetime NOT NULL," 261 "`starttime` datetime NOT NULL," "`endtime` datetime NOT NULL,"
266 "`endtime` datetime NOT NULL," 262 "`puts` int(10) unsigned NOT NULL," "`gets` int(10) unsigned NOT NULL,"
267 "`puts` int(10) unsigned NOT NULL," 263 "`concurrent` int(10) unsigned NOT NULL,"
268 "`gets` int(10) unsigned NOT NULL," 264 "`settle_time` int(10) unsigned NOT NULL,"
269 "`concurrent` int(10) unsigned NOT NULL," 265 "`totalConnections` int(10) unsigned NOT NULL,"
270 "`settle_time` int(10) unsigned NOT NULL," 266 "`message` text NOT NULL," "`num_rounds` int(10) unsigned NOT NULL,"
271 "`totalConnections` int(10) unsigned NOT NULL," 267 "`malicious_getters` int(10) unsigned NOT NULL,"
272 "`message` text NOT NULL," 268 "`malicious_putters` int(10) unsigned NOT NULL,"
273 "`num_rounds` int(10) unsigned NOT NULL," 269 "`malicious_droppers` int(10) unsigned NOT NULL,"
274 "`malicious_getters` int(10) unsigned NOT NULL," 270 "`topology_modifier` double NOT NULL,"
275 "`malicious_putters` int(10) unsigned NOT NULL," 271 "`malicious_get_frequency` int(10) unsigned NOT NULL,"
276 "`malicious_droppers` int(10) unsigned NOT NULL," 272 "`malicious_put_frequency` int(10) unsigned NOT NULL,"
277 "`topology_modifier` double NOT NULL," 273 "`stop_closest` int(10) unsigned NOT NULL,"
278 "`malicious_get_frequency` int(10) unsigned NOT NULL," 274 "`stop_found` int(10) unsigned NOT NULL,"
279 "`malicious_put_frequency` int(10) unsigned NOT NULL," 275 "`strict_kademlia` int(10) unsigned NOT NULL,"
280 "`stop_closest` int(10) unsigned NOT NULL," 276 "`gets_succeeded` int(10) unsigned NOT NULL,"
281 "`stop_found` int(10) unsigned NOT NULL," 277 "PRIMARY KEY (`trialuid`)," "UNIQUE KEY `trialuid` (`trialuid`)"
282 "`strict_kademlia` int(10) unsigned NOT NULL," 278 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"))
283 "`gets_succeeded` int(10) unsigned NOT NULL,"
284 "PRIMARY KEY (`trialuid`),"
285 "UNIQUE KEY `trialuid` (`trialuid`)"
286 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"))
287 return GNUNET_SYSERR; 279 return GNUNET_SYSERR;
288 280
289 if (MRUNS ("CREATE TABLE IF NOT EXISTS `topology` (" 281 if (MRUNS
290 "`topology_uid` int(10) unsigned NOT NULL AUTO_INCREMENT," 282 ("CREATE TABLE IF NOT EXISTS `topology` ("
291 "`trialuid` int(10) unsigned NOT NULL," 283 "`topology_uid` int(10) unsigned NOT NULL AUTO_INCREMENT,"
292 "`date` datetime NOT NULL," 284 "`trialuid` int(10) unsigned NOT NULL," "`date` datetime NOT NULL,"
293 "`connections` int(10) unsigned NOT NULL," 285 "`connections` int(10) unsigned NOT NULL,"
294 "PRIMARY KEY (`topology_uid`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1")) 286 "PRIMARY KEY (`topology_uid`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"))
295 return GNUNET_SYSERR; 287 return GNUNET_SYSERR;
296 288
297 if (MRUNS ("CREATE TABLE IF NOT EXISTS `extended_topology` (" 289 if (MRUNS
298 "`extended_uid` int(10) unsigned NOT NULL AUTO_INCREMENT," 290 ("CREATE TABLE IF NOT EXISTS `extended_topology` ("
299 "`topology_uid` int(10) unsigned NOT NULL," 291 "`extended_uid` int(10) unsigned NOT NULL AUTO_INCREMENT,"
300 "`uid_first` int(10) unsigned NOT NULL," 292 "`topology_uid` int(10) unsigned NOT NULL,"
301 "`uid_second` int(10) unsigned NOT NULL," 293 "`uid_first` int(10) unsigned NOT NULL,"
302 "PRIMARY KEY (`extended_uid`)" 294 "`uid_second` int(10) unsigned NOT NULL," "PRIMARY KEY (`extended_uid`)"
303 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1")) 295 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"))
304 return GNUNET_SYSERR; 296 return GNUNET_SYSERR;
305 297
306 if (MRUNS ("CREATE TABLE IF NOT EXISTS `node_statistics` (" 298 if (MRUNS
307 "`stat_uid` int(10) unsigned NOT NULL AUTO_INCREMENT," 299 ("CREATE TABLE IF NOT EXISTS `node_statistics` ("
308 "`trialuid` int(10) unsigned NOT NULL," 300 "`stat_uid` int(10) unsigned NOT NULL AUTO_INCREMENT,"
309 "`nodeuid` int(10) unsigned NOT NULL," 301 "`trialuid` int(10) unsigned NOT NULL,"
310 "`route_requests` int(10) unsigned NOT NULL," 302 "`nodeuid` int(10) unsigned NOT NULL,"
311 "`route_forwards` int(10) unsigned NOT NULL," 303 "`route_requests` int(10) unsigned NOT NULL,"
312 "`result_requests` int(10) unsigned NOT NULL," 304 "`route_forwards` int(10) unsigned NOT NULL,"
313 "`client_results` int(10) unsigned NOT NULL," 305 "`result_requests` int(10) unsigned NOT NULL,"
314 "`result_forwards` int(10) unsigned NOT NULL," 306 "`client_results` int(10) unsigned NOT NULL,"
315 "`gets` int(10) unsigned NOT NULL," 307 "`result_forwards` int(10) unsigned NOT NULL,"
316 "`puts` int(10) unsigned NOT NULL," 308 "`gets` int(10) unsigned NOT NULL," "`puts` int(10) unsigned NOT NULL,"
317 "`data_inserts` int(10) unsigned NOT NULL," 309 "`data_inserts` int(10) unsigned NOT NULL,"
318 "`find_peer_requests` int(10) unsigned NOT NULL," 310 "`find_peer_requests` int(10) unsigned NOT NULL,"
319 "`find_peers_started` int(10) unsigned NOT NULL," 311 "`find_peers_started` int(10) unsigned NOT NULL,"
320 "`gets_started` int(10) unsigned NOT NULL," 312 "`gets_started` int(10) unsigned NOT NULL,"
321 "`puts_started` int(10) unsigned NOT NULL," 313 "`puts_started` int(10) unsigned NOT NULL,"
322 "`find_peer_responses_received` int(10) unsigned NOT NULL," 314 "`find_peer_responses_received` int(10) unsigned NOT NULL,"
323 "`get_responses_received` int(10) unsigned NOT NULL," 315 "`get_responses_received` int(10) unsigned NOT NULL,"
324 "`find_peer_responses_sent` int(10) unsigned NOT NULL," 316 "`find_peer_responses_sent` int(10) unsigned NOT NULL,"
325 "`get_responses_sent` int(10) unsigned NOT NULL," 317 "`get_responses_sent` int(10) unsigned NOT NULL,"
326 "PRIMARY KEY (`stat_uid`)" 318 "PRIMARY KEY (`stat_uid`)"
327 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;")) 319 ") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;"))
328 return GNUNET_SYSERR; 320 return GNUNET_SYSERR;
329 321
330 if (MRUNS ("SET AUTOCOMMIT = 1")) 322 if (MRUNS ("SET AUTOCOMMIT = 1"))
@@ -388,37 +380,37 @@ iopen (struct GNUNET_DHTLOG_Plugin *plugin)
388 if (conn == NULL) 380 if (conn == NULL)
389 return GNUNET_SYSERR; 381 return GNUNET_SYSERR;
390 382
391 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_string (plugin->cfg, 383 if (GNUNET_OK !=
392 "MYSQL", "DATABASE", 384 GNUNET_CONFIGURATION_get_value_string (plugin->cfg, "MYSQL", "DATABASE",
393 &database)) 385 &database))
394 { 386 {
395 database = GNUNET_strdup ("gnunet"); 387 database = GNUNET_strdup ("gnunet");
396 } 388 }
397 389
398 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_string (plugin->cfg, 390 if (GNUNET_OK !=
399 "MYSQL", "USER", 391 GNUNET_CONFIGURATION_get_value_string (plugin->cfg, "MYSQL", "USER",
400 &user)) 392 &user))
401 { 393 {
402 user = GNUNET_strdup ("dht"); 394 user = GNUNET_strdup ("dht");
403 } 395 }
404 396
405 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_string (plugin->cfg, 397 if (GNUNET_OK !=
406 "MYSQL", "PASSWORD", 398 GNUNET_CONFIGURATION_get_value_string (plugin->cfg, "MYSQL", "PASSWORD",
407 &password)) 399 &password))
408 { 400 {
409 password = GNUNET_strdup ("dhttest**"); 401 password = GNUNET_strdup ("dhttest**");
410 } 402 }
411 403
412 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_string (plugin->cfg, 404 if (GNUNET_OK !=
413 "MYSQL", "SERVER", 405 GNUNET_CONFIGURATION_get_value_string (plugin->cfg, "MYSQL", "SERVER",
414 &server)) 406 &server))
415 { 407 {
416 server = GNUNET_strdup ("localhost"); 408 server = GNUNET_strdup ("localhost");
417 } 409 }
418 410
419 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (plugin->cfg, 411 if (GNUNET_OK !=
420 "MYSQL", "MYSQL_PORT", 412 GNUNET_CONFIGURATION_get_value_number (plugin->cfg, "MYSQL", "MYSQL_PORT",
421 &port)) 413 &port))
422 { 414 {
423 port = 0; 415 port = 0;
424 } 416 }
@@ -434,9 +426,8 @@ iopen (struct GNUNET_DHTLOG_Plugin *plugin)
434 mysql_options (conn, MYSQL_SET_CHARSET_NAME, "UTF8"); 426 mysql_options (conn, MYSQL_SET_CHARSET_NAME, "UTF8");
435 mysql_options (conn, MYSQL_OPT_READ_TIMEOUT, (const void *) &timeout); 427 mysql_options (conn, MYSQL_OPT_READ_TIMEOUT, (const void *) &timeout);
436 mysql_options (conn, MYSQL_OPT_WRITE_TIMEOUT, (const void *) &timeout); 428 mysql_options (conn, MYSQL_OPT_WRITE_TIMEOUT, (const void *) &timeout);
437 mysql_real_connect (conn, server, user, password, 429 mysql_real_connect (conn, server, user, password, database,
438 database, (unsigned int) port, NULL, 430 (unsigned int) port, NULL, CLIENT_IGNORE_SIGPIPE);
439 CLIENT_IGNORE_SIGPIPE);
440 431
441 GNUNET_free_non_null (server); 432 GNUNET_free_non_null (server);
442 GNUNET_free_non_null (password); 433 GNUNET_free_non_null (password);
@@ -508,8 +499,8 @@ prepare_statement (struct StatementHandle *ret)
508 499
509 if (mysql_stmt_prepare (ret->statement, ret->query, strlen (ret->query))) 500 if (mysql_stmt_prepare (ret->statement, ret->query, strlen (ret->query)))
510 { 501 {
511 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 502 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "mysql_stmt_prepare `%s', %s",
512 "mysql_stmt_prepare `%s', %s", ret->query, mysql_error (conn)); 503 ret->query, mysql_error (conn));
513 mysql_stmt_close (ret->statement); 504 mysql_stmt_close (ret->statement);
514 ret->statement = NULL; 505 ret->statement = NULL;
515 return GNUNET_SYSERR; 506 return GNUNET_SYSERR;
@@ -588,8 +579,8 @@ init_params (struct StatementHandle *s, va_list ap)
588 { 579 {
589 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 580 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
590 _("`%s' failed at %s:%d with error: %s\n"), 581 _("`%s' failed at %s:%d with error: %s\n"),
591 "mysql_stmt_bind_param", 582 "mysql_stmt_bind_param", __FILE__, __LINE__,
592 __FILE__, __LINE__, mysql_stmt_error (s->statement)); 583 mysql_stmt_error (s->statement));
593 return GNUNET_SYSERR; 584 return GNUNET_SYSERR;
594 } 585 }
595 586
@@ -597,8 +588,8 @@ init_params (struct StatementHandle *s, va_list ap)
597 { 588 {
598 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 589 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
599 _("`%s' failed at %s:%d with error: %s\n"), 590 _("`%s' failed at %s:%d with error: %s\n"),
600 "mysql_stmt_execute", 591 "mysql_stmt_execute", __FILE__, __LINE__,
601 __FILE__, __LINE__, mysql_stmt_error (s->statement)); 592 mysql_stmt_error (s->statement));
602 return GNUNET_SYSERR; 593 return GNUNET_SYSERR;
603 } 594 }
604 595
@@ -623,10 +614,9 @@ init_params (struct StatementHandle *s, va_list ap)
623 */ 614 */
624int 615int
625prepared_statement_run_select (struct StatementHandle *s, 616prepared_statement_run_select (struct StatementHandle *s,
626 unsigned int result_size, 617 unsigned int result_size, MYSQL_BIND * results,
627 MYSQL_BIND * results, 618 GNUNET_MysqlDataProcessor processor,
628 GNUNET_MysqlDataProcessor 619 void *processor_cls, ...)
629 processor, void *processor_cls, ...)
630{ 620{
631 va_list ap; 621 va_list ap;
632 int ret; 622 int ret;
@@ -656,8 +646,8 @@ prepared_statement_run_select (struct StatementHandle *s,
656 { 646 {
657 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 647 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
658 _("`%s' failed at %s:%d with error: %s\n"), 648 _("`%s' failed at %s:%d with error: %s\n"),
659 "mysql_stmt_bind_result", 649 "mysql_stmt_bind_result", __FILE__, __LINE__,
660 __FILE__, __LINE__, mysql_stmt_error (s->statement)); 650 mysql_stmt_error (s->statement));
661 return GNUNET_SYSERR; 651 return GNUNET_SYSERR;
662 } 652 }
663 653
@@ -671,8 +661,8 @@ prepared_statement_run_select (struct StatementHandle *s,
671 { 661 {
672 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 662 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
673 _("`%s' failed at %s:%d with error: %s\n"), 663 _("`%s' failed at %s:%d with error: %s\n"),
674 "mysql_stmt_fetch", 664 "mysql_stmt_fetch", __FILE__, __LINE__,
675 __FILE__, __LINE__, mysql_stmt_error (s->statement)); 665 mysql_stmt_error (s->statement));
676 return GNUNET_SYSERR; 666 return GNUNET_SYSERR;
677 } 667 }
678 if (processor != NULL) 668 if (processor != NULL)
@@ -700,17 +690,11 @@ get_node_uid (unsigned long long *nodeuid, const GNUNET_HashCode * peerHash)
700 GNUNET_CRYPTO_hash_to_enc (peerHash, &encPeer); 690 GNUNET_CRYPTO_hash_to_enc (peerHash, &encPeer);
701 p_len = strlen ((char *) &encPeer); 691 p_len = strlen ((char *) &encPeer);
702 692
703 if (1 != prepared_statement_run_select (get_nodeuid, 693 if (1 !=
704 1, 694 prepared_statement_run_select (get_nodeuid, 1, rbind, return_ok, NULL,
705 rbind, 695 MYSQL_TYPE_LONGLONG, &current_trial,
706 return_ok, 696 GNUNET_YES, MYSQL_TYPE_VAR_STRING,
707 NULL, 697 &encPeer, max_varchar_len, &p_len, -1))
708 MYSQL_TYPE_LONGLONG,
709 &current_trial,
710 GNUNET_YES,
711 MYSQL_TYPE_VAR_STRING,
712 &encPeer,
713 max_varchar_len, &p_len, -1))
714 { 698 {
715#if DEBUG_DHTLOG 699#if DEBUG_DHTLOG
716 fprintf (stderr, "FAILED\n"); 700 fprintf (stderr, "FAILED\n");
@@ -731,8 +715,8 @@ get_current_trial (unsigned long long *trialuid)
731 rbind[0].buffer = trialuid; 715 rbind[0].buffer = trialuid;
732 716
733 if ((GNUNET_OK != 717 if ((GNUNET_OK !=
734 prepared_statement_run_select (get_trial, 718 prepared_statement_run_select (get_trial, 1, rbind, return_ok, NULL,
735 1, rbind, return_ok, NULL, -1))) 719 -1)))
736 { 720 {
737 return GNUNET_SYSERR; 721 return GNUNET_SYSERR;
738 } 722 }
@@ -751,8 +735,8 @@ get_current_topology (unsigned long long *topologyuid)
751 rbind[0].buffer = topologyuid; 735 rbind[0].buffer = topologyuid;
752 736
753 if ((GNUNET_OK != 737 if ((GNUNET_OK !=
754 prepared_statement_run_select (get_topology, 738 prepared_statement_run_select (get_topology, 1, rbind, return_ok, NULL,
755 1, rbind, return_ok, NULL, -1))) 739 -1)))
756 { 740 {
757 return GNUNET_SYSERR; 741 return GNUNET_SYSERR;
758 } 742 }
@@ -779,16 +763,11 @@ get_dhtkey_uid (unsigned long long *dhtkeyuid, const GNUNET_HashCode * key)
779 current_trial); 763 current_trial);
780#endif 764#endif
781 if ((GNUNET_OK != 765 if ((GNUNET_OK !=
782 prepared_statement_run_select (get_dhtkeyuid, 766 prepared_statement_run_select (get_dhtkeyuid, 1, rbind, return_ok, NULL,
783 1, 767 MYSQL_TYPE_VAR_STRING, &encKey,
784 rbind, 768 max_varchar_len, &k_len,
785 return_ok, NULL, 769 MYSQL_TYPE_LONGLONG, &current_trial,
786 MYSQL_TYPE_VAR_STRING, 770 GNUNET_YES, -1)))
787 &encKey,
788 max_varchar_len,
789 &k_len,
790 MYSQL_TYPE_LONGLONG,
791 &current_trial, GNUNET_YES, -1)))
792 { 771 {
793 return GNUNET_SYSERR; 772 return GNUNET_SYSERR;
794 } 773 }
@@ -860,51 +839,46 @@ add_trial (struct GNUNET_DHTLOG_TrialInfo *trial_info)
860 839
861 stmt = mysql_stmt_init (conn); 840 stmt = mysql_stmt_init (conn);
862 if (GNUNET_OK != 841 if (GNUNET_OK !=
863 (ret = prepared_statement_run (insert_trial, &current_trial, 842 (ret =
864 MYSQL_TYPE_LONG, 843 prepared_statement_run (insert_trial, &current_trial, MYSQL_TYPE_LONG,
865 &trial_info->other_identifier, GNUNET_YES, 844 &trial_info->other_identifier, GNUNET_YES,
866 MYSQL_TYPE_LONG, &trial_info->num_nodes, 845 MYSQL_TYPE_LONG, &trial_info->num_nodes,
867 GNUNET_YES, MYSQL_TYPE_LONG, 846 GNUNET_YES, MYSQL_TYPE_LONG,
868 &trial_info->topology, GNUNET_YES, 847 &trial_info->topology, GNUNET_YES,
869 MYSQL_TYPE_FLOAT, 848 MYSQL_TYPE_FLOAT,
870 &trial_info->topology_percentage, 849 &trial_info->topology_percentage,
871 MYSQL_TYPE_FLOAT, 850 MYSQL_TYPE_FLOAT,
872 &trial_info->topology_probability, 851 &trial_info->topology_probability,
873 MYSQL_TYPE_LONG, 852 MYSQL_TYPE_LONG, &trial_info->blacklist_topology,
874 &trial_info->blacklist_topology, 853 GNUNET_YES, MYSQL_TYPE_LONG,
875 GNUNET_YES, MYSQL_TYPE_LONG, 854 &trial_info->connect_topology, GNUNET_YES,
876 &trial_info->connect_topology, GNUNET_YES, 855 MYSQL_TYPE_LONG,
877 MYSQL_TYPE_LONG, 856 &trial_info->connect_topology_option, GNUNET_YES,
878 &trial_info->connect_topology_option, 857 MYSQL_TYPE_FLOAT,
879 GNUNET_YES, MYSQL_TYPE_FLOAT, 858 &trial_info->connect_topology_option_modifier,
880 &trial_info->connect_topology_option_modifier, 859 MYSQL_TYPE_LONG, &trial_info->puts, GNUNET_YES,
881 MYSQL_TYPE_LONG, &trial_info->puts, 860 MYSQL_TYPE_LONG, &trial_info->gets, GNUNET_YES,
882 GNUNET_YES, MYSQL_TYPE_LONG, 861 MYSQL_TYPE_LONG, &trial_info->concurrent,
883 &trial_info->gets, GNUNET_YES, 862 GNUNET_YES, MYSQL_TYPE_LONG,
884 MYSQL_TYPE_LONG, &trial_info->concurrent, 863 &trial_info->settle_time, GNUNET_YES,
885 GNUNET_YES, MYSQL_TYPE_LONG, 864 MYSQL_TYPE_LONG, &trial_info->num_rounds,
886 &trial_info->settle_time, GNUNET_YES, 865 GNUNET_YES, MYSQL_TYPE_LONG,
887 MYSQL_TYPE_LONG, &trial_info->num_rounds, 866 &trial_info->malicious_getters, GNUNET_YES,
888 GNUNET_YES, MYSQL_TYPE_LONG, 867 MYSQL_TYPE_LONG, &trial_info->malicious_putters,
889 &trial_info->malicious_getters, GNUNET_YES, 868 GNUNET_YES, MYSQL_TYPE_LONG,
890 MYSQL_TYPE_LONG, 869 &trial_info->malicious_droppers, GNUNET_YES,
891 &trial_info->malicious_putters, GNUNET_YES, 870 MYSQL_TYPE_LONG,
892 MYSQL_TYPE_LONG, 871 &trial_info->malicious_get_frequency, GNUNET_YES,
893 &trial_info->malicious_droppers, 872 MYSQL_TYPE_LONG,
894 GNUNET_YES, MYSQL_TYPE_LONG, 873 &trial_info->malicious_put_frequency, GNUNET_YES,
895 &trial_info->malicious_get_frequency, 874 MYSQL_TYPE_LONG, &trial_info->stop_closest,
896 GNUNET_YES, MYSQL_TYPE_LONG, 875 GNUNET_YES, MYSQL_TYPE_LONG,
897 &trial_info->malicious_put_frequency, 876 &trial_info->stop_found, GNUNET_YES,
898 GNUNET_YES, MYSQL_TYPE_LONG, 877 MYSQL_TYPE_LONG, &trial_info->strict_kademlia,
899 &trial_info->stop_closest, GNUNET_YES, 878 GNUNET_YES, MYSQL_TYPE_LONG,
900 MYSQL_TYPE_LONG, &trial_info->stop_found, 879 &trial_info->gets_succeeded, GNUNET_YES,
901 GNUNET_YES, MYSQL_TYPE_LONG, 880 MYSQL_TYPE_BLOB, trial_info->message,
902 &trial_info->strict_kademlia, GNUNET_YES, 881 max_varchar_len + max_varchar_len, &m_len, -1)))
903 MYSQL_TYPE_LONG,
904 &trial_info->gets_succeeded, GNUNET_YES,
905 MYSQL_TYPE_BLOB, trial_info->message,
906 max_varchar_len + max_varchar_len, &m_len,
907 -1)))
908 { 882 {
909 if (ret == GNUNET_SYSERR) 883 if (ret == GNUNET_SYSERR)
910 { 884 {
@@ -935,11 +909,11 @@ add_round (unsigned int round_type, unsigned int round_count)
935 int ret; 909 int ret;
936 910
937 stmt = mysql_stmt_init (conn); 911 stmt = mysql_stmt_init (conn);
938 ret = prepared_statement_run (insert_round, 912 ret =
939 NULL, 913 prepared_statement_run (insert_round, NULL, MYSQL_TYPE_LONGLONG,
940 MYSQL_TYPE_LONGLONG, &current_trial, GNUNET_YES, 914 &current_trial, GNUNET_YES, MYSQL_TYPE_LONG,
941 MYSQL_TYPE_LONG, &round_type, GNUNET_YES, 915 &round_type, GNUNET_YES, MYSQL_TYPE_LONG,
942 MYSQL_TYPE_LONG, &round_count, GNUNET_YES, -1); 916 &round_count, GNUNET_YES, -1);
943 mysql_stmt_close (stmt); 917 mysql_stmt_close (stmt);
944 if (ret != GNUNET_OK) 918 if (ret != GNUNET_OK)
945 return GNUNET_SYSERR; 919 return GNUNET_SYSERR;
@@ -966,14 +940,13 @@ add_round_details (unsigned int round_type, unsigned int round_count,
966 int ret; 940 int ret;
967 941
968 stmt = mysql_stmt_init (conn); 942 stmt = mysql_stmt_init (conn);
969 ret = prepared_statement_run (insert_round_details, 943 ret =
970 NULL, 944 prepared_statement_run (insert_round_details, NULL, MYSQL_TYPE_LONGLONG,
971 MYSQL_TYPE_LONGLONG, &current_trial, GNUNET_YES, 945 &current_trial, GNUNET_YES, MYSQL_TYPE_LONG,
972 MYSQL_TYPE_LONG, &round_type, GNUNET_YES, 946 &round_type, GNUNET_YES, MYSQL_TYPE_LONG,
973 MYSQL_TYPE_LONG, &round_count, GNUNET_YES, 947 &round_count, GNUNET_YES, MYSQL_TYPE_LONG,
974 MYSQL_TYPE_LONG, &num_messages, GNUNET_YES, 948 &num_messages, GNUNET_YES, MYSQL_TYPE_LONG,
975 MYSQL_TYPE_LONG, &num_messages_succeeded, 949 &num_messages_succeeded, GNUNET_YES, -1);
976 GNUNET_YES, -1);
977 mysql_stmt_close (stmt); 950 mysql_stmt_close (stmt);
978 if (ret != GNUNET_OK) 951 if (ret != GNUNET_OK)
979 return GNUNET_SYSERR; 952 return GNUNET_SYSERR;
@@ -1007,10 +980,10 @@ int
1007add_stat (const struct GNUNET_PeerIdentity *peer, unsigned int route_requests, 980add_stat (const struct GNUNET_PeerIdentity *peer, unsigned int route_requests,
1008 unsigned int route_forwards, unsigned int result_requests, 981 unsigned int route_forwards, unsigned int result_requests,
1009 unsigned int client_requests, unsigned int result_forwards, 982 unsigned int client_requests, unsigned int result_forwards,
1010 unsigned int gets, unsigned int puts, 983 unsigned int gets, unsigned int puts, unsigned int data_inserts,
1011 unsigned int data_inserts, unsigned int find_peer_requests, 984 unsigned int find_peer_requests, unsigned int find_peers_started,
1012 unsigned int find_peers_started, unsigned int gets_started, 985 unsigned int gets_started, unsigned int puts_started,
1013 unsigned int puts_started, unsigned int find_peer_responses_received, 986 unsigned int find_peer_responses_received,
1014 unsigned int get_responses_received, 987 unsigned int get_responses_received,
1015 unsigned int find_peer_responses_sent, 988 unsigned int find_peer_responses_sent,
1016 unsigned int get_responses_sent) 989 unsigned int get_responses_sent)
@@ -1030,33 +1003,28 @@ add_stat (const struct GNUNET_PeerIdentity *peer, unsigned int route_requests,
1030 1003
1031 stmt = mysql_stmt_init (conn); 1004 stmt = mysql_stmt_init (conn);
1032 if (GNUNET_OK != 1005 if (GNUNET_OK !=
1033 (ret = prepared_statement_run (insert_stat, 1006 (ret =
1034 &return_uid, 1007 prepared_statement_run (insert_stat, &return_uid, MYSQL_TYPE_LONGLONG,
1035 MYSQL_TYPE_LONGLONG, &current_trial, 1008 &current_trial, GNUNET_YES, MYSQL_TYPE_LONGLONG,
1036 GNUNET_YES, MYSQL_TYPE_LONGLONG, &peer_uid, 1009 &peer_uid, GNUNET_YES, MYSQL_TYPE_LONG,
1037 GNUNET_YES, MYSQL_TYPE_LONG, 1010 &route_requests, GNUNET_YES, MYSQL_TYPE_LONG,
1038 &route_requests, GNUNET_YES, 1011 &route_forwards, GNUNET_YES, MYSQL_TYPE_LONG,
1039 MYSQL_TYPE_LONG, &route_forwards, 1012 &result_requests, GNUNET_YES, MYSQL_TYPE_LONG,
1040 GNUNET_YES, MYSQL_TYPE_LONG, 1013 &client_requests, GNUNET_YES, MYSQL_TYPE_LONG,
1041 &result_requests, GNUNET_YES, 1014 &result_forwards, GNUNET_YES, MYSQL_TYPE_LONG,
1042 MYSQL_TYPE_LONG, &client_requests, 1015 &gets, GNUNET_YES, MYSQL_TYPE_LONG, &puts,
1043 GNUNET_YES, MYSQL_TYPE_LONG, 1016 GNUNET_YES, MYSQL_TYPE_LONG, &data_inserts,
1044 &result_forwards, GNUNET_YES, 1017 GNUNET_YES, MYSQL_TYPE_LONG, &find_peer_requests,
1045 MYSQL_TYPE_LONG, &gets, GNUNET_YES, 1018 GNUNET_YES, MYSQL_TYPE_LONG, &find_peers_started,
1046 MYSQL_TYPE_LONG, &puts, GNUNET_YES, 1019 GNUNET_YES, MYSQL_TYPE_LONG, &gets_started,
1047 MYSQL_TYPE_LONG, &data_inserts, GNUNET_YES, 1020 GNUNET_YES, MYSQL_TYPE_LONG, &puts_started,
1048 MYSQL_TYPE_LONG, &find_peer_requests, 1021 GNUNET_YES, MYSQL_TYPE_LONG,
1049 GNUNET_YES, MYSQL_TYPE_LONG, 1022 &find_peer_responses_received, GNUNET_YES,
1050 &find_peers_started, GNUNET_YES, 1023 MYSQL_TYPE_LONG, &get_responses_received,
1051 MYSQL_TYPE_LONG, &gets_started, GNUNET_YES, 1024 GNUNET_YES, MYSQL_TYPE_LONG,
1052 MYSQL_TYPE_LONG, &puts_started, GNUNET_YES, 1025 &find_peer_responses_sent, GNUNET_YES,
1053 MYSQL_TYPE_LONG, 1026 MYSQL_TYPE_LONG, &get_responses_sent, GNUNET_YES,
1054 &find_peer_responses_received, GNUNET_YES, 1027 -1)))
1055 MYSQL_TYPE_LONG, &get_responses_received,
1056 GNUNET_YES, MYSQL_TYPE_LONG,
1057 &find_peer_responses_sent, GNUNET_YES,
1058 MYSQL_TYPE_LONG, &get_responses_sent,
1059 GNUNET_YES, -1)))
1060 { 1028 {
1061 if (ret == GNUNET_SYSERR) 1029 if (ret == GNUNET_SYSERR)
1062 { 1030 {
@@ -1080,8 +1048,8 @@ add_stat (const struct GNUNET_PeerIdentity *peer, unsigned int route_requests,
1080 * @return GNUNET_OK on success, GNUNET_SYSERR on failure 1048 * @return GNUNET_OK on success, GNUNET_SYSERR on failure
1081 */ 1049 */
1082int 1050int
1083add_generic_stat (const struct GNUNET_PeerIdentity *peer, 1051add_generic_stat (const struct GNUNET_PeerIdentity *peer, const char *name,
1084 const char *name, const char *section, uint64_t value) 1052 const char *section, uint64_t value)
1085{ 1053{
1086 unsigned long long peer_uid; 1054 unsigned long long peer_uid;
1087 unsigned long long section_len; 1055 unsigned long long section_len;
@@ -1100,16 +1068,14 @@ add_generic_stat (const struct GNUNET_PeerIdentity *peer,
1100 name_len = strlen (name); 1068 name_len = strlen (name);
1101 1069
1102 if (GNUNET_OK != 1070 if (GNUNET_OK !=
1103 (ret = prepared_statement_run (insert_generic_stat, 1071 (ret =
1104 NULL, 1072 prepared_statement_run (insert_generic_stat, NULL, MYSQL_TYPE_LONGLONG,
1105 MYSQL_TYPE_LONGLONG, &current_trial, 1073 &current_trial, GNUNET_YES, MYSQL_TYPE_LONGLONG,
1106 GNUNET_YES, MYSQL_TYPE_LONGLONG, &peer_uid, 1074 &peer_uid, GNUNET_YES, MYSQL_TYPE_VAR_STRING,
1107 GNUNET_YES, MYSQL_TYPE_VAR_STRING, 1075 &section, max_varchar_len, &section_len,
1108 &section, max_varchar_len, &section_len, 1076 MYSQL_TYPE_VAR_STRING, &name, max_varchar_len,
1109 MYSQL_TYPE_VAR_STRING, &name, 1077 &name_len, MYSQL_TYPE_LONGLONG, &value,
1110 max_varchar_len, &name_len, 1078 GNUNET_YES, -1)))
1111 MYSQL_TYPE_LONGLONG, &value, GNUNET_YES,
1112 -1)))
1113 { 1079 {
1114 if (ret == GNUNET_SYSERR) 1080 if (ret == GNUNET_SYSERR)
1115 { 1081 {
@@ -1157,18 +1123,12 @@ add_dhtkey (unsigned long long *dhtkeyuid, const GNUNET_HashCode * dhtkey)
1157 } 1123 }
1158 1124
1159 if (GNUNET_OK != 1125 if (GNUNET_OK !=
1160 (ret = prepared_statement_run (insert_dhtkey, 1126 (ret =
1161 dhtkeyuid, 1127 prepared_statement_run (insert_dhtkey, dhtkeyuid, MYSQL_TYPE_VAR_STRING,
1162 MYSQL_TYPE_VAR_STRING, 1128 &encKey, max_varchar_len, &k_len,
1163 &encKey, 1129 MYSQL_TYPE_LONG, &current_trial, GNUNET_YES,
1164 max_varchar_len, 1130 MYSQL_TYPE_BLOB, dhtkey,
1165 &k_len, 1131 sizeof (GNUNET_HashCode), &h_len, -1)))
1166 MYSQL_TYPE_LONG,
1167 &current_trial,
1168 GNUNET_YES,
1169 MYSQL_TYPE_BLOB,
1170 dhtkey,
1171 sizeof (GNUNET_HashCode), &h_len, -1)))
1172 { 1132 {
1173 if (ret == GNUNET_SYSERR) 1133 if (ret == GNUNET_SYSERR)
1174 { 1134 {
@@ -1204,13 +1164,12 @@ add_node (unsigned long long *nodeuid, struct GNUNET_PeerIdentity *node)
1204 p_len = (unsigned long) strlen ((char *) &encPeer); 1164 p_len = (unsigned long) strlen ((char *) &encPeer);
1205 h_len = sizeof (GNUNET_HashCode); 1165 h_len = sizeof (GNUNET_HashCode);
1206 if (GNUNET_OK != 1166 if (GNUNET_OK !=
1207 (ret = prepared_statement_run (insert_node, 1167 (ret =
1208 nodeuid, 1168 prepared_statement_run (insert_node, nodeuid, MYSQL_TYPE_LONGLONG,
1209 MYSQL_TYPE_LONGLONG, &current_trial, 1169 &current_trial, GNUNET_YES,
1210 GNUNET_YES, MYSQL_TYPE_VAR_STRING, 1170 MYSQL_TYPE_VAR_STRING, &encPeer, max_varchar_len,
1211 &encPeer, max_varchar_len, &p_len, 1171 &p_len, MYSQL_TYPE_BLOB, &node->hashPubKey,
1212 MYSQL_TYPE_BLOB, &node->hashPubKey, 1172 sizeof (GNUNET_HashCode), &h_len, -1)))
1213 sizeof (GNUNET_HashCode), &h_len, -1)))
1214 { 1173 {
1215 if (ret == GNUNET_SYSERR) 1174 if (ret == GNUNET_SYSERR)
1216 { 1175 {
@@ -1233,11 +1192,10 @@ update_trials (unsigned int gets_succeeded)
1233 int ret; 1192 int ret;
1234 1193
1235 if (GNUNET_OK != 1194 if (GNUNET_OK !=
1236 (ret = prepared_statement_run (update_trial, 1195 (ret =
1237 NULL, 1196 prepared_statement_run (update_trial, NULL, MYSQL_TYPE_LONG,
1238 MYSQL_TYPE_LONG, &gets_succeeded, 1197 &gets_succeeded, GNUNET_YES, MYSQL_TYPE_LONGLONG,
1239 GNUNET_YES, MYSQL_TYPE_LONGLONG, 1198 &current_trial, GNUNET_YES, -1)))
1240 &current_trial, GNUNET_YES, -1)))
1241 { 1199 {
1242 if (ret == GNUNET_SYSERR) 1200 if (ret == GNUNET_SYSERR)
1243 { 1201 {
@@ -1270,11 +1228,11 @@ set_malicious (struct GNUNET_PeerIdentity *peer)
1270 p_len = strlen (temp_str); 1228 p_len = strlen (temp_str);
1271 1229
1272 if (GNUNET_OK != 1230 if (GNUNET_OK !=
1273 (ret = prepared_statement_run (update_node_malicious, 1231 (ret =
1274 NULL, 1232 prepared_statement_run (update_node_malicious, NULL, MYSQL_TYPE_LONGLONG,
1275 MYSQL_TYPE_LONGLONG, &current_trial, 1233 &current_trial, GNUNET_YES,
1276 GNUNET_YES, MYSQL_TYPE_VAR_STRING, 1234 MYSQL_TYPE_VAR_STRING, temp_str, max_varchar_len,
1277 temp_str, max_varchar_len, &p_len, -1))) 1235 &p_len, -1)))
1278 { 1236 {
1279 if (ret == GNUNET_SYSERR) 1237 if (ret == GNUNET_SYSERR)
1280 { 1238 {
@@ -1298,13 +1256,11 @@ add_connections (unsigned int totalConnections)
1298 int ret; 1256 int ret;
1299 1257
1300 if (GNUNET_OK != 1258 if (GNUNET_OK !=
1301 (ret = prepared_statement_run (update_connection, 1259 (ret =
1302 NULL, 1260 prepared_statement_run (update_connection, NULL, MYSQL_TYPE_LONG,
1303 MYSQL_TYPE_LONG, 1261 &totalConnections, GNUNET_YES,
1304 &totalConnections, 1262 MYSQL_TYPE_LONGLONG, &current_trial, GNUNET_YES,
1305 GNUNET_YES, 1263 -1)))
1306 MYSQL_TYPE_LONGLONG,
1307 &current_trial, GNUNET_YES, -1)))
1308 { 1264 {
1309 if (ret == GNUNET_SYSERR) 1265 if (ret == GNUNET_SYSERR)
1310 { 1266 {
@@ -1341,8 +1297,8 @@ add_query (unsigned long long *sqlqueryuid, unsigned long long queryid,
1341 peer_uid = 0; 1297 peer_uid = 0;
1342 key_uid = 0; 1298 key_uid = 0;
1343 1299
1344 if ((node != NULL) 1300 if ((node != NULL) &&
1345 && (GNUNET_OK == get_node_uid (&peer_uid, &node->hashPubKey))) 1301 (GNUNET_OK == get_node_uid (&peer_uid, &node->hashPubKey)))
1346 { 1302 {
1347 1303
1348 } 1304 }
@@ -1365,28 +1321,15 @@ add_query (unsigned long long *sqlqueryuid, unsigned long long queryid,
1365 } 1321 }
1366 1322
1367 if (GNUNET_OK != 1323 if (GNUNET_OK !=
1368 (ret = prepared_statement_run (insert_query, 1324 (ret =
1369 sqlqueryuid, 1325 prepared_statement_run (insert_query, sqlqueryuid, MYSQL_TYPE_LONGLONG,
1370 MYSQL_TYPE_LONGLONG, 1326 &current_trial, GNUNET_YES, MYSQL_TYPE_LONG,
1371 &current_trial, 1327 &type, GNUNET_NO, MYSQL_TYPE_LONG, &hops,
1372 GNUNET_YES, 1328 GNUNET_YES, MYSQL_TYPE_LONGLONG, &key_uid,
1373 MYSQL_TYPE_LONG, 1329 GNUNET_YES, MYSQL_TYPE_LONGLONG, &queryid,
1374 &type, 1330 GNUNET_YES, MYSQL_TYPE_LONG, &succeeded,
1375 GNUNET_NO, 1331 GNUNET_NO, MYSQL_TYPE_LONGLONG, &peer_uid,
1376 MYSQL_TYPE_LONG, 1332 GNUNET_YES, -1)))
1377 &hops,
1378 GNUNET_YES,
1379 MYSQL_TYPE_LONGLONG,
1380 &key_uid,
1381 GNUNET_YES,
1382 MYSQL_TYPE_LONGLONG,
1383 &queryid,
1384 GNUNET_YES,
1385 MYSQL_TYPE_LONG,
1386 &succeeded,
1387 GNUNET_NO,
1388 MYSQL_TYPE_LONGLONG,
1389 &peer_uid, GNUNET_YES, -1)))
1390 { 1333 {
1391 if (ret == GNUNET_SYSERR) 1334 if (ret == GNUNET_SYSERR)
1392 { 1335 {
@@ -1416,9 +1359,8 @@ add_query (unsigned long long *sqlqueryuid, unsigned long long queryid,
1416 */ 1359 */
1417int 1360int
1418add_route (unsigned long long *sqlqueryuid, unsigned long long queryid, 1361add_route (unsigned long long *sqlqueryuid, unsigned long long queryid,
1419 unsigned int type, unsigned int hops, 1362 unsigned int type, unsigned int hops, int succeeded,
1420 int succeeded, const struct GNUNET_PeerIdentity *node, 1363 const struct GNUNET_PeerIdentity *node, const GNUNET_HashCode * key,
1421 const GNUNET_HashCode * key,
1422 const struct GNUNET_PeerIdentity *from_node, 1364 const struct GNUNET_PeerIdentity *from_node,
1423 const struct GNUNET_PeerIdentity *to_node) 1365 const struct GNUNET_PeerIdentity *to_node)
1424{ 1366{
@@ -1457,34 +1399,17 @@ add_route (unsigned long long *sqlqueryuid, unsigned long long queryid,
1457 return GNUNET_SYSERR; 1399 return GNUNET_SYSERR;
1458 1400
1459 if (GNUNET_OK != 1401 if (GNUNET_OK !=
1460 (ret = prepared_statement_run (insert_route, 1402 (ret =
1461 sqlqueryuid, 1403 prepared_statement_run (insert_route, sqlqueryuid, MYSQL_TYPE_LONGLONG,
1462 MYSQL_TYPE_LONGLONG, 1404 &current_trial, GNUNET_YES, MYSQL_TYPE_LONG,
1463 &current_trial, 1405 &type, GNUNET_NO, MYSQL_TYPE_LONG, &hops,
1464 GNUNET_YES, 1406 GNUNET_YES, MYSQL_TYPE_LONGLONG, &key_uid,
1465 MYSQL_TYPE_LONG, 1407 GNUNET_YES, MYSQL_TYPE_LONGLONG, &queryid,
1466 &type, 1408 GNUNET_YES, MYSQL_TYPE_LONG, &succeeded,
1467 GNUNET_NO, 1409 GNUNET_NO, MYSQL_TYPE_LONGLONG, &peer_uid,
1468 MYSQL_TYPE_LONG, 1410 GNUNET_YES, MYSQL_TYPE_LONGLONG, &from_uid,
1469 &hops, 1411 GNUNET_YES, MYSQL_TYPE_LONGLONG, &to_uid,
1470 GNUNET_YES, 1412 GNUNET_YES, -1)))
1471 MYSQL_TYPE_LONGLONG,
1472 &key_uid,
1473 GNUNET_YES,
1474 MYSQL_TYPE_LONGLONG,
1475 &queryid,
1476 GNUNET_YES,
1477 MYSQL_TYPE_LONG,
1478 &succeeded,
1479 GNUNET_NO,
1480 MYSQL_TYPE_LONGLONG,
1481 &peer_uid,
1482 GNUNET_YES,
1483 MYSQL_TYPE_LONGLONG,
1484 &from_uid,
1485 GNUNET_YES,
1486 MYSQL_TYPE_LONGLONG,
1487 &to_uid, GNUNET_YES, -1)))
1488 { 1413 {
1489 if (ret == GNUNET_SYSERR) 1414 if (ret == GNUNET_SYSERR)
1490 { 1415 {
@@ -1513,13 +1438,10 @@ update_current_topology (unsigned int connections)
1513 get_current_topology (&topologyuid); 1438 get_current_topology (&topologyuid);
1514 1439
1515 if (GNUNET_OK != 1440 if (GNUNET_OK !=
1516 (ret = prepared_statement_run (update_topology, 1441 (ret =
1517 NULL, 1442 prepared_statement_run (update_topology, NULL, MYSQL_TYPE_LONG,
1518 MYSQL_TYPE_LONG, 1443 &connections, GNUNET_YES, MYSQL_TYPE_LONGLONG,
1519 &connections, 1444 &topologyuid, GNUNET_YES, -1)))
1520 GNUNET_YES,
1521 MYSQL_TYPE_LONGLONG,
1522 &topologyuid, GNUNET_YES, -1)))
1523 { 1445 {
1524 if (ret == GNUNET_SYSERR) 1446 if (ret == GNUNET_SYSERR)
1525 { 1447 {
@@ -1545,11 +1467,10 @@ add_topology (int num_connections)
1545 int ret; 1467 int ret;
1546 1468
1547 if (GNUNET_OK != 1469 if (GNUNET_OK !=
1548 (ret = prepared_statement_run (insert_topology, 1470 (ret =
1549 NULL, 1471 prepared_statement_run (insert_topology, NULL, MYSQL_TYPE_LONGLONG,
1550 MYSQL_TYPE_LONGLONG, &current_trial, 1472 &current_trial, GNUNET_YES, MYSQL_TYPE_LONG,
1551 GNUNET_YES, MYSQL_TYPE_LONG, 1473 &num_connections, GNUNET_YES, -1)))
1552 &num_connections, GNUNET_YES, -1)))
1553 { 1474 {
1554 if (ret == GNUNET_SYSERR) 1475 if (ret == GNUNET_SYSERR)
1555 { 1476 {
@@ -1586,16 +1507,11 @@ add_extended_topology (const struct GNUNET_PeerIdentity *first,
1586 return GNUNET_SYSERR; 1507 return GNUNET_SYSERR;
1587 1508
1588 if (GNUNET_OK != 1509 if (GNUNET_OK !=
1589 (ret = prepared_statement_run (extend_topology, 1510 (ret =
1590 NULL, 1511 prepared_statement_run (extend_topology, NULL, MYSQL_TYPE_LONGLONG,
1591 MYSQL_TYPE_LONGLONG, 1512 &topologyuid, GNUNET_YES, MYSQL_TYPE_LONGLONG,
1592 &topologyuid, 1513 &first_uid, GNUNET_YES, MYSQL_TYPE_LONGLONG,
1593 GNUNET_YES, 1514 &second_uid, GNUNET_YES, -1)))
1594 MYSQL_TYPE_LONGLONG,
1595 &first_uid,
1596 GNUNET_YES,
1597 MYSQL_TYPE_LONGLONG,
1598 &second_uid, GNUNET_YES, -1)))
1599 { 1515 {
1600 if (ret == GNUNET_SYSERR) 1516 if (ret == GNUNET_SYSERR)
1601 { 1517 {