diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-08-25 11:33:14 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-08-25 11:33:14 +0000 |
commit | 6b13a87d2165669c5b0f4a16b4c599d9cf0ac1db (patch) | |
tree | 402c187ada7749cb0205d107059b09f3373f0a8b /src/namestore | |
parent | bc3f45a82f10905c9630618e12cb062348cf21ac (diff) | |
download | gnunet-6b13a87d2165669c5b0f4a16b4c599d9cf0ac1db.tar.gz gnunet-6b13a87d2165669c5b0f4a16b4c599d9cf0ac1db.zip |
-nicer indentation
Diffstat (limited to 'src/namestore')
-rw-r--r-- | src/namestore/gnunet-namestore.c | 50 | ||||
-rw-r--r-- | src/namestore/gnunet-service-namestore.c | 55 | ||||
-rw-r--r-- | src/namestore/plugin_namestore_sqlite.c | 122 |
3 files changed, 155 insertions, 72 deletions
diff --git a/src/namestore/gnunet-namestore.c b/src/namestore/gnunet-namestore.c index 82213497c..9e654cc34 100644 --- a/src/namestore/gnunet-namestore.c +++ b/src/namestore/gnunet-namestore.c | |||
@@ -411,7 +411,8 @@ display_record (void *cls, | |||
411 | rd[i].data_size); | 411 | rd[i].data_size); |
412 | if (NULL == s) | 412 | if (NULL == s) |
413 | { | 413 | { |
414 | FPRINTF (stdout, _("\tCorrupt or unsupported record of type %u\n"), | 414 | FPRINTF (stdout, |
415 | _("\tCorrupt or unsupported record of type %u\n"), | ||
415 | (unsigned int) rd[i].record_type); | 416 | (unsigned int) rd[i].record_type); |
416 | continue; | 417 | continue; |
417 | } | 418 | } |
@@ -579,7 +580,9 @@ get_existing_record (void *cls, | |||
579 | break; | 580 | break; |
580 | } | 581 | } |
581 | memset (rdn, 0, sizeof (struct GNUNET_GNSRECORD_Data)); | 582 | memset (rdn, 0, sizeof (struct GNUNET_GNSRECORD_Data)); |
582 | GNUNET_memcpy (&rdn[1], rd, rd_count * sizeof (struct GNUNET_GNSRECORD_Data)); | 583 | GNUNET_memcpy (&rdn[1], |
584 | rd, | ||
585 | rd_count * sizeof (struct GNUNET_GNSRECORD_Data)); | ||
583 | rde = &rdn[0]; | 586 | rde = &rdn[0]; |
584 | rde->data = data; | 587 | rde->data = data; |
585 | rde->data_size = data_size; | 588 | rde->data_size = data_size; |
@@ -846,7 +849,8 @@ testservice_task (void *cls, | |||
846 | { | 849 | { |
847 | fprintf (stderr, | 850 | fprintf (stderr, |
848 | _("Missing option `%s' for operation `%s'\n"), | 851 | _("Missing option `%s' for operation `%s'\n"), |
849 | "-e", _("add")); | 852 | "-e", |
853 | _("add")); | ||
850 | GNUNET_SCHEDULER_shutdown (); | 854 | GNUNET_SCHEDULER_shutdown (); |
851 | ret = 1; | 855 | ret = 1; |
852 | return; | 856 | return; |
@@ -862,12 +866,19 @@ testservice_task (void *cls, | |||
862 | &etime_rel)) | 866 | &etime_rel)) |
863 | { | 867 | { |
864 | etime_is_rel = GNUNET_YES; | 868 | etime_is_rel = GNUNET_YES; |
869 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
870 | "Storing record with relative expiration time of %s\n", | ||
871 | GNUNET_STRINGS_relative_time_to_string (etime_rel, | ||
872 | GNUNET_NO)); | ||
865 | } | 873 | } |
866 | else if (GNUNET_OK == | 874 | else if (GNUNET_OK == |
867 | GNUNET_STRINGS_fancy_time_to_absolute (expirationstring, | 875 | GNUNET_STRINGS_fancy_time_to_absolute (expirationstring, |
868 | &etime_abs)) | 876 | &etime_abs)) |
869 | { | 877 | { |
870 | etime_is_rel = GNUNET_NO; | 878 | etime_is_rel = GNUNET_NO; |
879 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
880 | "Storing record with absolute expiration time of %s\n", | ||
881 | GNUNET_STRINGS_absolute_time_to_string (etime_abs)); | ||
871 | } | 882 | } |
872 | else | 883 | else |
873 | { | 884 | { |
@@ -996,8 +1007,11 @@ testservice_task (void *cls, | |||
996 | ret = 1; | 1007 | ret = 1; |
997 | return; | 1008 | return; |
998 | } | 1009 | } |
999 | add_qe_uri = GNUNET_NAMESTORE_set_nick(ns, &zone_pkey, nickstring, | 1010 | add_qe_uri = GNUNET_NAMESTORE_set_nick(ns, |
1000 | &add_continuation, &add_qe_uri); | 1011 | &zone_pkey, |
1012 | nickstring, | ||
1013 | &add_continuation, | ||
1014 | &add_qe_uri); | ||
1001 | } | 1015 | } |
1002 | if (monitor) | 1016 | if (monitor) |
1003 | { | 1017 | { |
@@ -1084,7 +1098,8 @@ id_connect_cb (void *cls, | |||
1084 | { | 1098 | { |
1085 | get_default = GNUNET_IDENTITY_get (idh, | 1099 | get_default = GNUNET_IDENTITY_get (idh, |
1086 | "namestore", | 1100 | "namestore", |
1087 | &default_ego_cb, (void *) cfg); | 1101 | &default_ego_cb, |
1102 | (void *) cfg); | ||
1088 | } | 1103 | } |
1089 | } | 1104 | } |
1090 | 1105 | ||
@@ -1093,6 +1108,7 @@ static void | |||
1093 | testservice_id_task (void *cls, int result) | 1108 | testservice_id_task (void *cls, int result) |
1094 | { | 1109 | { |
1095 | const struct GNUNET_CONFIGURATION_Handle *cfg = cls; | 1110 | const struct GNUNET_CONFIGURATION_Handle *cfg = cls; |
1111 | |||
1096 | if (result != GNUNET_YES) | 1112 | if (result != GNUNET_YES) |
1097 | { | 1113 | { |
1098 | fprintf (stderr, | 1114 | fprintf (stderr, |
@@ -1101,11 +1117,14 @@ testservice_id_task (void *cls, int result) | |||
1101 | ret = -1; | 1117 | ret = -1; |
1102 | return; | 1118 | return; |
1103 | } | 1119 | } |
1104 | GNUNET_SCHEDULER_add_shutdown (&do_shutdown, (void *) cfg); | 1120 | GNUNET_SCHEDULER_add_shutdown (&do_shutdown, |
1121 | (void *) cfg); | ||
1105 | 1122 | ||
1106 | if (NULL == ego_name) | 1123 | if (NULL == ego_name) |
1107 | { | 1124 | { |
1108 | idh = GNUNET_IDENTITY_connect (cfg, &id_connect_cb, (void *) cfg); | 1125 | idh = GNUNET_IDENTITY_connect (cfg, |
1126 | &id_connect_cb, | ||
1127 | (void *) cfg); | ||
1109 | if (NULL == idh) | 1128 | if (NULL == idh) |
1110 | fprintf (stderr, _("Cannot connect to identity service\n")); | 1129 | fprintf (stderr, _("Cannot connect to identity service\n")); |
1111 | ret = -1; | 1130 | ret = -1; |
@@ -1127,7 +1146,9 @@ testservice_id_task (void *cls, int result) | |||
1127 | * @param cfg configuration | 1146 | * @param cfg configuration |
1128 | */ | 1147 | */ |
1129 | static void | 1148 | static void |
1130 | run (void *cls, char *const *args, const char *cfgfile, | 1149 | run (void *cls, |
1150 | char *const *args, | ||
1151 | const char *cfgfile, | ||
1131 | const struct GNUNET_CONFIGURATION_Handle *cfg) | 1152 | const struct GNUNET_CONFIGURATION_Handle *cfg) |
1132 | { | 1153 | { |
1133 | if ( (NULL != args[0]) && (NULL == uri) ) | 1154 | if ( (NULL != args[0]) && (NULL == uri) ) |
@@ -1148,7 +1169,8 @@ run (void *cls, char *const *args, const char *cfgfile, | |||
1148 | * @return 0 ok, 1 on error | 1169 | * @return 0 ok, 1 on error |
1149 | */ | 1170 | */ |
1150 | int | 1171 | int |
1151 | main (int argc, char *const *argv) | 1172 | main (int argc, |
1173 | char *const *argv) | ||
1152 | { | 1174 | { |
1153 | is_public = -1; | 1175 | is_public = -1; |
1154 | is_shadow = -1; | 1176 | is_shadow = -1; |
@@ -1202,9 +1224,13 @@ main (int argc, char *const *argv) | |||
1202 | if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv)) | 1224 | if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv)) |
1203 | return 2; | 1225 | return 2; |
1204 | 1226 | ||
1205 | GNUNET_log_setup ("gnunet-namestore", "WARNING", NULL); | 1227 | GNUNET_log_setup ("gnunet-namestore", |
1228 | "WARNING", | ||
1229 | NULL); | ||
1206 | if (GNUNET_OK != | 1230 | if (GNUNET_OK != |
1207 | GNUNET_PROGRAM_run (argc, argv, "gnunet-namestore", | 1231 | GNUNET_PROGRAM_run (argc, |
1232 | argv, | ||
1233 | "gnunet-namestore", | ||
1208 | _("GNUnet zone manipulation tool"), | 1234 | _("GNUnet zone manipulation tool"), |
1209 | options, | 1235 | options, |
1210 | &run, NULL)) | 1236 | &run, NULL)) |
diff --git a/src/namestore/gnunet-service-namestore.c b/src/namestore/gnunet-service-namestore.c index 593763894..05bcd94ce 100644 --- a/src/namestore/gnunet-service-namestore.c +++ b/src/namestore/gnunet-service-namestore.c | |||
@@ -472,20 +472,19 @@ get_nick_record (const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone) | |||
472 | 472 | ||
473 | 473 | ||
474 | static void | 474 | static void |
475 | merge_with_nick_records ( const struct GNUNET_GNSRECORD_Data *nick_rd, | 475 | merge_with_nick_records (const struct GNUNET_GNSRECORD_Data *nick_rd, |
476 | unsigned int rdc2, | 476 | unsigned int rdc2, |
477 | const struct GNUNET_GNSRECORD_Data *rd2, | 477 | const struct GNUNET_GNSRECORD_Data *rd2, |
478 | unsigned int *rdc_res, | 478 | unsigned int *rdc_res, |
479 | struct GNUNET_GNSRECORD_Data **rd_res) | 479 | struct GNUNET_GNSRECORD_Data **rd_res) |
480 | { | 480 | { |
481 | uint64_t latest_expiration; | 481 | uint64_t latest_expiration; |
482 | int c; | ||
483 | size_t req; | 482 | size_t req; |
484 | char *data; | 483 | char *data; |
485 | int record_offset; | 484 | int record_offset; |
486 | size_t data_offset; | 485 | size_t data_offset; |
487 | (*rdc_res) = 1 + rdc2; | ||
488 | 486 | ||
487 | (*rdc_res) = 1 + rdc2; | ||
489 | if (0 == 1 + rdc2) | 488 | if (0 == 1 + rdc2) |
490 | { | 489 | { |
491 | (*rd_res) = NULL; | 490 | (*rd_res) = NULL; |
@@ -493,16 +492,16 @@ merge_with_nick_records ( const struct GNUNET_GNSRECORD_Data *nick_rd, | |||
493 | } | 492 | } |
494 | 493 | ||
495 | req = 0; | 494 | req = 0; |
496 | for (c=0; c< 1; c++) | 495 | for (unsigned int c=0; c< 1; c++) |
497 | req += sizeof (struct GNUNET_GNSRECORD_Data) + nick_rd[c].data_size; | 496 | req += sizeof (struct GNUNET_GNSRECORD_Data) + nick_rd[c].data_size; |
498 | for (c=0; c< rdc2; c++) | 497 | for (unsigned int c=0; c< rdc2; c++) |
499 | req += sizeof (struct GNUNET_GNSRECORD_Data) + rd2[c].data_size; | 498 | req += sizeof (struct GNUNET_GNSRECORD_Data) + rd2[c].data_size; |
500 | (*rd_res) = GNUNET_malloc (req); | 499 | (*rd_res) = GNUNET_malloc (req); |
501 | data = (char *) &(*rd_res)[1 + rdc2]; | 500 | data = (char *) &(*rd_res)[1 + rdc2]; |
502 | data_offset = 0; | 501 | data_offset = 0; |
503 | latest_expiration = 0; | 502 | latest_expiration = 0; |
504 | 503 | ||
505 | for (c=0; c< rdc2; c++) | 504 | for (unsigned int c=0; c< rdc2; c++) |
506 | { | 505 | { |
507 | if (0 != (rd2[c].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION)) | 506 | if (0 != (rd2[c].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION)) |
508 | { | 507 | { |
@@ -514,19 +513,17 @@ merge_with_nick_records ( const struct GNUNET_GNSRECORD_Data *nick_rd, | |||
514 | latest_expiration = rd2[c].expiration_time; | 513 | latest_expiration = rd2[c].expiration_time; |
515 | (*rd_res)[c] = rd2[c]; | 514 | (*rd_res)[c] = rd2[c]; |
516 | (*rd_res)[c].data = (void *) &data[data_offset]; | 515 | (*rd_res)[c].data = (void *) &data[data_offset]; |
517 | // WTF? | ||
518 | GNUNET_memcpy ((void *) (*rd_res)[c].data, | 516 | GNUNET_memcpy ((void *) (*rd_res)[c].data, |
519 | rd2[c].data, | 517 | rd2[c].data, |
520 | rd2[c].data_size); | 518 | rd2[c].data_size); |
521 | data_offset += (*rd_res)[c].data_size; | 519 | data_offset += (*rd_res)[c].data_size; |
522 | } | 520 | } |
523 | record_offset = rdc2; | 521 | record_offset = rdc2; |
524 | for (c=0; c< 1; c++) | 522 | for (unsigned int c=0; c< 1; c++) |
525 | { | 523 | { |
526 | (*rd_res)[c+record_offset] = nick_rd[c]; | 524 | (*rd_res)[c+record_offset] = nick_rd[c]; |
527 | (*rd_res)[c+record_offset].expiration_time = latest_expiration; | 525 | (*rd_res)[c+record_offset].expiration_time = latest_expiration; |
528 | (*rd_res)[c+record_offset].data = (void *) &data[data_offset]; | 526 | (*rd_res)[c+record_offset].data = (void *) &data[data_offset]; |
529 | // WTF? | ||
530 | GNUNET_memcpy ((void *) (*rd_res)[c+record_offset].data, | 527 | GNUNET_memcpy ((void *) (*rd_res)[c+record_offset].data, |
531 | nick_rd[c].data, | 528 | nick_rd[c].data, |
532 | nick_rd[c].data_size); | 529 | nick_rd[c].data_size); |
@@ -571,15 +568,17 @@ send_lookup_response (struct GNUNET_SERVER_NotificationContext *nc, | |||
571 | if ((NULL != nick) && (0 != strcmp(name, GNUNET_GNS_MASTERZONE_STR))) | 568 | if ((NULL != nick) && (0 != strcmp(name, GNUNET_GNS_MASTERZONE_STR))) |
572 | { | 569 | { |
573 | nick->flags = (nick->flags | GNUNET_GNSRECORD_RF_PRIVATE) ^ GNUNET_GNSRECORD_RF_PRIVATE; | 570 | nick->flags = (nick->flags | GNUNET_GNSRECORD_RF_PRIVATE) ^ GNUNET_GNSRECORD_RF_PRIVATE; |
574 | merge_with_nick_records (nick, rd_count, rd, &res_count, &res); | 571 | merge_with_nick_records (nick, |
575 | //fprintf (stderr, "Merging %u records for `%s' with NICK records\n",rd_count, name); | 572 | rd_count, |
573 | rd, | ||
574 | &res_count, | ||
575 | &res); | ||
576 | GNUNET_free (nick); | 576 | GNUNET_free (nick); |
577 | } | 577 | } |
578 | else | 578 | else |
579 | { | 579 | { |
580 | res_count = rd_count; | 580 | res_count = rd_count; |
581 | res = (struct GNUNET_GNSRECORD_Data *) rd; | 581 | res = (struct GNUNET_GNSRECORD_Data *) rd; |
582 | //fprintf (stderr, "Not merging %u records for `%s' with NICK records\n",rd_count, name); | ||
583 | } | 582 | } |
584 | 583 | ||
585 | name_len = strlen (name) + 1; | 584 | name_len = strlen (name) + 1; |
@@ -599,8 +598,7 @@ send_lookup_response (struct GNUNET_SERVER_NotificationContext *nc, | |||
599 | rd_ser = &name_tmp[name_len]; | 598 | rd_ser = &name_tmp[name_len]; |
600 | GNUNET_GNSRECORD_records_serialize (res_count, res, rd_ser_len, rd_ser); | 599 | GNUNET_GNSRECORD_records_serialize (res_count, res, rd_ser_len, rd_ser); |
601 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 600 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
602 | "Sending `%s' message with %u records and size %zu\n", | 601 | "Sending RECORD_RESULT message with %u records and size %zu\n", |
603 | "RECORD_RESULT", | ||
604 | res_count, | 602 | res_count, |
605 | msg_size); | 603 | msg_size); |
606 | GNUNET_SERVER_notification_context_unicast (nc, | 604 | GNUNET_SERVER_notification_context_unicast (nc, |
@@ -776,7 +774,9 @@ lookup_it (void *cls, | |||
776 | rlc->found = GNUNET_YES; | 774 | rlc->found = GNUNET_YES; |
777 | if (0 != rd_count) | 775 | if (0 != rd_count) |
778 | { | 776 | { |
779 | if ((NULL != rlc->nick) && (0 != strcmp(label, GNUNET_GNS_MASTERZONE_STR))) | 777 | if ( (NULL != rlc->nick) && |
778 | (0 != strcmp (label, | ||
779 | GNUNET_GNS_MASTERZONE_STR)) ) | ||
780 | { | 780 | { |
781 | /* Merge */ | 781 | /* Merge */ |
782 | rd_res = NULL; | 782 | rd_res = NULL; |
@@ -786,10 +786,14 @@ lookup_it (void *cls, | |||
786 | rd_count, rd, | 786 | rd_count, rd, |
787 | &rdc_res, &rd_res); | 787 | &rdc_res, &rd_res); |
788 | 788 | ||
789 | rlc->rd_ser_len = GNUNET_GNSRECORD_records_get_size (rdc_res, rd_res); | 789 | rlc->rd_ser_len = GNUNET_GNSRECORD_records_get_size (rdc_res, |
790 | rd_res); | ||
790 | rlc->res_rd_count = rdc_res; | 791 | rlc->res_rd_count = rdc_res; |
791 | rlc->res_rd = GNUNET_malloc (rlc->rd_ser_len); | 792 | rlc->res_rd = GNUNET_malloc (rlc->rd_ser_len); |
792 | GNUNET_GNSRECORD_records_serialize (rdc_res, rd_res, rlc->rd_ser_len , rlc->res_rd); | 793 | GNUNET_GNSRECORD_records_serialize (rdc_res, |
794 | rd_res, | ||
795 | rlc->rd_ser_len, | ||
796 | rlc->res_rd); | ||
793 | 797 | ||
794 | GNUNET_free (rd_res); | 798 | GNUNET_free (rd_res); |
795 | GNUNET_free (rlc->nick); | 799 | GNUNET_free (rlc->nick); |
@@ -797,10 +801,14 @@ lookup_it (void *cls, | |||
797 | } | 801 | } |
798 | else | 802 | else |
799 | { | 803 | { |
800 | rlc->rd_ser_len = GNUNET_GNSRECORD_records_get_size (rd_count, rd); | 804 | rlc->rd_ser_len = GNUNET_GNSRECORD_records_get_size (rd_count, |
805 | rd); | ||
801 | rlc->res_rd_count = rd_count; | 806 | rlc->res_rd_count = rd_count; |
802 | rlc->res_rd = GNUNET_malloc (rlc->rd_ser_len); | 807 | rlc->res_rd = GNUNET_malloc (rlc->rd_ser_len); |
803 | GNUNET_GNSRECORD_records_serialize (rd_count, rd, rlc->rd_ser_len , rlc->res_rd); | 808 | GNUNET_GNSRECORD_records_serialize (rd_count, |
809 | rd, | ||
810 | rlc->rd_ser_len, | ||
811 | rlc->res_rd); | ||
804 | } | 812 | } |
805 | } | 813 | } |
806 | else | 814 | else |
@@ -923,7 +931,6 @@ handle_record_lookup (void *cls, | |||
923 | client, | 931 | client, |
924 | &llr_msg->gns_header.header, | 932 | &llr_msg->gns_header.header, |
925 | GNUNET_NO); | 933 | GNUNET_NO); |
926 | |||
927 | GNUNET_free_non_null (rlc.res_rd); | 934 | GNUNET_free_non_null (rlc.res_rd); |
928 | GNUNET_free (llr_msg); | 935 | GNUNET_free (llr_msg); |
929 | } | 936 | } |
diff --git a/src/namestore/plugin_namestore_sqlite.c b/src/namestore/plugin_namestore_sqlite.c index e93f800c3..d64ce10a8 100644 --- a/src/namestore/plugin_namestore_sqlite.c +++ b/src/namestore/plugin_namestore_sqlite.c | |||
@@ -137,16 +137,20 @@ create_indices (sqlite3 * dbh) | |||
137 | { | 137 | { |
138 | /* create indices */ | 138 | /* create indices */ |
139 | if ( (SQLITE_OK != | 139 | if ( (SQLITE_OK != |
140 | sqlite3_exec (dbh, "CREATE INDEX IF NOT EXISTS ir_pkey_reverse ON ns097records (zone_private_key,pkey)", | 140 | sqlite3_exec (dbh, |
141 | "CREATE INDEX IF NOT EXISTS ir_pkey_reverse ON ns097records (zone_private_key,pkey)", | ||
141 | NULL, NULL, NULL)) || | 142 | NULL, NULL, NULL)) || |
142 | (SQLITE_OK != | 143 | (SQLITE_OK != |
143 | sqlite3_exec (dbh, "CREATE INDEX IF NOT EXISTS ir_pkey_iter ON ns097records (zone_private_key,rvalue)", | 144 | sqlite3_exec (dbh, |
145 | "CREATE INDEX IF NOT EXISTS ir_pkey_iter ON ns097records (zone_private_key,rvalue)", | ||
144 | NULL, NULL, NULL)) || | 146 | NULL, NULL, NULL)) || |
145 | (SQLITE_OK != | 147 | (SQLITE_OK != |
146 | sqlite3_exec (dbh, "CREATE INDEX IF NOT EXISTS it_iter ON ns097records (rvalue)", | 148 | sqlite3_exec (dbh, |
149 | "CREATE INDEX IF NOT EXISTS it_iter ON ns097records (rvalue)", | ||
147 | NULL, NULL, NULL)) ) | 150 | NULL, NULL, NULL)) ) |
148 | LOG (GNUNET_ERROR_TYPE_ERROR, | 151 | LOG (GNUNET_ERROR_TYPE_ERROR, |
149 | "Failed to create indices: %s\n", sqlite3_errmsg (dbh)); | 152 | "Failed to create indices: %s\n", |
153 | sqlite3_errmsg (dbh)); | ||
150 | } | 154 | } |
151 | 155 | ||
152 | 156 | ||
@@ -178,16 +182,21 @@ database_setup (struct Plugin *plugin) | |||
178 | #endif | 182 | #endif |
179 | 183 | ||
180 | if (GNUNET_OK != | 184 | if (GNUNET_OK != |
181 | GNUNET_CONFIGURATION_get_value_filename (plugin->cfg, "namestore-sqlite", | 185 | GNUNET_CONFIGURATION_get_value_filename (plugin->cfg, |
182 | "FILENAME", &afsdir)) | 186 | "namestore-sqlite", |
187 | "FILENAME", | ||
188 | &afsdir)) | ||
183 | { | 189 | { |
184 | GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, | 190 | GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, |
185 | "namestore-sqlite", "FILENAME"); | 191 | "namestore-sqlite", |
192 | "FILENAME"); | ||
186 | return GNUNET_SYSERR; | 193 | return GNUNET_SYSERR; |
187 | } | 194 | } |
188 | if (GNUNET_OK != GNUNET_DISK_file_test (afsdir)) | 195 | if (GNUNET_OK != |
196 | GNUNET_DISK_file_test (afsdir)) | ||
189 | { | 197 | { |
190 | if (GNUNET_OK != GNUNET_DISK_directory_create_for_file (afsdir)) | 198 | if (GNUNET_OK != |
199 | GNUNET_DISK_directory_create_for_file (afsdir)) | ||
191 | { | 200 | { |
192 | GNUNET_break (0); | 201 | GNUNET_break (0); |
193 | GNUNET_free (afsdir); | 202 | GNUNET_free (afsdir); |
@@ -206,28 +215,37 @@ database_setup (struct Plugin *plugin) | |||
206 | return GNUNET_SYSERR; | 215 | return GNUNET_SYSERR; |
207 | } | 216 | } |
208 | CHECK (SQLITE_OK == | 217 | CHECK (SQLITE_OK == |
209 | sqlite3_exec (plugin->dbh, "PRAGMA temp_store=MEMORY", NULL, NULL, | 218 | sqlite3_exec (plugin->dbh, |
219 | "PRAGMA temp_store=MEMORY", NULL, NULL, | ||
210 | ENULL)); | 220 | ENULL)); |
211 | CHECK (SQLITE_OK == | 221 | CHECK (SQLITE_OK == |
212 | sqlite3_exec (plugin->dbh, "PRAGMA synchronous=NORMAL", NULL, NULL, | 222 | sqlite3_exec (plugin->dbh, |
223 | "PRAGMA synchronous=NORMAL", NULL, NULL, | ||
213 | ENULL)); | 224 | ENULL)); |
214 | CHECK (SQLITE_OK == | 225 | CHECK (SQLITE_OK == |
215 | sqlite3_exec (plugin->dbh, "PRAGMA legacy_file_format=OFF", NULL, NULL, | 226 | sqlite3_exec (plugin->dbh, |
227 | "PRAGMA legacy_file_format=OFF", NULL, NULL, | ||
216 | ENULL)); | 228 | ENULL)); |
217 | CHECK (SQLITE_OK == | 229 | CHECK (SQLITE_OK == |
218 | sqlite3_exec (plugin->dbh, "PRAGMA auto_vacuum=INCREMENTAL", NULL, | 230 | sqlite3_exec (plugin->dbh, |
231 | "PRAGMA auto_vacuum=INCREMENTAL", NULL, | ||
219 | NULL, ENULL)); | 232 | NULL, ENULL)); |
220 | CHECK (SQLITE_OK == | 233 | CHECK (SQLITE_OK == |
221 | sqlite3_exec (plugin->dbh, "PRAGMA encoding=\"UTF-8\"", NULL, | 234 | sqlite3_exec (plugin->dbh, |
235 | "PRAGMA encoding=\"UTF-8\"", NULL, | ||
222 | NULL, ENULL)); | 236 | NULL, ENULL)); |
223 | CHECK (SQLITE_OK == | 237 | CHECK (SQLITE_OK == |
224 | sqlite3_exec (plugin->dbh, "PRAGMA locking_mode=EXCLUSIVE", NULL, NULL, | 238 | sqlite3_exec (plugin->dbh, |
239 | "PRAGMA locking_mode=EXCLUSIVE", NULL, NULL, | ||
225 | ENULL)); | 240 | ENULL)); |
226 | CHECK (SQLITE_OK == | 241 | CHECK (SQLITE_OK == |
227 | sqlite3_exec (plugin->dbh, "PRAGMA page_size=4092", NULL, NULL, | 242 | sqlite3_exec (plugin->dbh, |
243 | "PRAGMA page_size=4092", NULL, NULL, | ||
228 | ENULL)); | 244 | ENULL)); |
229 | 245 | ||
230 | CHECK (SQLITE_OK == sqlite3_busy_timeout (plugin->dbh, BUSY_TIMEOUT_MS)); | 246 | CHECK (SQLITE_OK == |
247 | sqlite3_busy_timeout (plugin->dbh, | ||
248 | BUSY_TIMEOUT_MS)); | ||
231 | 249 | ||
232 | 250 | ||
233 | /* Create table */ | 251 | /* Create table */ |
@@ -248,7 +266,8 @@ database_setup (struct Plugin *plugin) | |||
248 | ")", | 266 | ")", |
249 | NULL, NULL, NULL) != SQLITE_OK)) | 267 | NULL, NULL, NULL) != SQLITE_OK)) |
250 | { | 268 | { |
251 | LOG_SQLITE (plugin, GNUNET_ERROR_TYPE_ERROR, "sqlite3_exec"); | 269 | LOG_SQLITE (plugin, GNUNET_ERROR_TYPE_ERROR, |
270 | "sqlite3_exec"); | ||
252 | sqlite3_finalize (stmt); | 271 | sqlite3_finalize (stmt); |
253 | return GNUNET_SYSERR; | 272 | return GNUNET_SYSERR; |
254 | } | 273 | } |
@@ -371,14 +390,17 @@ namestore_sqlite_store_records (void *cls, | |||
371 | for (i=0;i<rd_count;i++) | 390 | for (i=0;i<rd_count;i++) |
372 | if (GNUNET_GNSRECORD_TYPE_PKEY == rd[i].record_type) | 391 | if (GNUNET_GNSRECORD_TYPE_PKEY == rd[i].record_type) |
373 | { | 392 | { |
374 | GNUNET_break (sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey) == rd[i].data_size); | 393 | GNUNET_break (sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey) == |
394 | rd[i].data_size); | ||
375 | GNUNET_memcpy (&pkey, | 395 | GNUNET_memcpy (&pkey, |
376 | rd[i].data, | 396 | rd[i].data, |
377 | rd[i].data_size); | 397 | rd[i].data_size); |
378 | break; | 398 | break; |
379 | } | 399 | } |
380 | rvalue = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK, UINT64_MAX); | 400 | rvalue = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK, |
381 | data_size = GNUNET_GNSRECORD_records_get_size (rd_count, rd); | 401 | UINT64_MAX); |
402 | data_size = GNUNET_GNSRECORD_records_get_size (rd_count, | ||
403 | rd); | ||
382 | if (data_size > 64 * 65536) | 404 | if (data_size > 64 * 65536) |
383 | { | 405 | { |
384 | GNUNET_break (0); | 406 | GNUNET_break (0); |
@@ -387,17 +409,29 @@ namestore_sqlite_store_records (void *cls, | |||
387 | { | 409 | { |
388 | char data[data_size]; | 410 | char data[data_size]; |
389 | 411 | ||
390 | if (data_size != GNUNET_GNSRECORD_records_serialize (rd_count, rd, | 412 | if (data_size != |
391 | data_size, data)) | 413 | GNUNET_GNSRECORD_records_serialize (rd_count, |
414 | rd, | ||
415 | data_size, | ||
416 | data)) | ||
392 | { | 417 | { |
393 | GNUNET_break (0); | 418 | GNUNET_break (0); |
394 | return GNUNET_SYSERR; | 419 | return GNUNET_SYSERR; |
395 | } | 420 | } |
396 | 421 | ||
397 | /* First delete 'old' records */ | 422 | /* First delete 'old' records */ |
398 | if ((SQLITE_OK != sqlite3_bind_blob (plugin->delete_records, 1, | 423 | if ((SQLITE_OK != |
399 | zone_key, sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey), SQLITE_STATIC)) || | 424 | sqlite3_bind_blob (plugin->delete_records, |
400 | (SQLITE_OK != sqlite3_bind_text (plugin->delete_records, 2, label, -1, SQLITE_STATIC))) | 425 | 1, |
426 | zone_key, | ||
427 | sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey), | ||
428 | SQLITE_STATIC)) || | ||
429 | (SQLITE_OK != | ||
430 | sqlite3_bind_text (plugin->delete_records, | ||
431 | 2, | ||
432 | label, | ||
433 | -1, | ||
434 | SQLITE_STATIC))) | ||
401 | { | 435 | { |
402 | LOG_SQLITE (plugin, | 436 | LOG_SQLITE (plugin, |
403 | GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 437 | GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
@@ -416,14 +450,30 @@ namestore_sqlite_store_records (void *cls, | |||
416 | 450 | ||
417 | if (0 != rd_count) | 451 | if (0 != rd_count) |
418 | { | 452 | { |
419 | if ((SQLITE_OK != sqlite3_bind_blob (plugin->store_records, 1, | 453 | if ((SQLITE_OK != |
420 | zone_key, sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey), SQLITE_STATIC)) || | 454 | sqlite3_bind_blob (plugin->store_records, |
421 | (SQLITE_OK != sqlite3_bind_blob (plugin->store_records, 2, | 455 | 1, |
422 | &pkey, sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey), SQLITE_STATIC)) || | 456 | zone_key, |
423 | (SQLITE_OK != sqlite3_bind_int64 (plugin->store_records, 3, rvalue)) || | 457 | sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey), |
424 | (SQLITE_OK != sqlite3_bind_int (plugin->store_records, 4, rd_count)) || | 458 | SQLITE_STATIC)) || |
425 | (SQLITE_OK != sqlite3_bind_blob (plugin->store_records, 5, data, data_size, SQLITE_STATIC)) || | 459 | (SQLITE_OK != |
426 | (SQLITE_OK != sqlite3_bind_text (plugin->store_records, 6, label, -1, SQLITE_STATIC))) | 460 | sqlite3_bind_blob (plugin->store_records, |
461 | 2, | ||
462 | &pkey, | ||
463 | sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey), | ||
464 | SQLITE_STATIC)) || | ||
465 | (SQLITE_OK != | ||
466 | sqlite3_bind_int64 (plugin->store_records, 3, rvalue)) || | ||
467 | (SQLITE_OK != | ||
468 | sqlite3_bind_int (plugin->store_records, 4, rd_count)) || | ||
469 | (SQLITE_OK != | ||
470 | sqlite3_bind_blob (plugin->store_records, 5, | ||
471 | data, data_size, | ||
472 | SQLITE_STATIC)) || | ||
473 | (SQLITE_OK != | ||
474 | sqlite3_bind_text (plugin->store_records, 6, | ||
475 | label, -1, | ||
476 | SQLITE_STATIC))) | ||
427 | { | 477 | { |
428 | LOG_SQLITE (plugin, | 478 | LOG_SQLITE (plugin, |
429 | GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 479 | GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |