diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-07-13 10:02:09 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-07-13 10:02:09 +0000 |
commit | c99ee078ba2c713839aad1043d846e2a4a61d501 (patch) | |
tree | d2d25af8a280e54aa4170a0c0dbcc9672d10c8a8 /src | |
parent | 40bcae34248944ddb77b7939a69ddde62d682277 (diff) | |
download | gnunet-c99ee078ba2c713839aad1043d846e2a4a61d501.tar.gz gnunet-c99ee078ba2c713839aad1043d846e2a4a61d501.zip |
-notes on issues
Diffstat (limited to 'src')
-rw-r--r-- | src/psycstore/plugin_psycstore_mysql.c | 215 |
1 files changed, 119 insertions, 96 deletions
diff --git a/src/psycstore/plugin_psycstore_mysql.c b/src/psycstore/plugin_psycstore_mysql.c index b1d36a160..80a560d0f 100644 --- a/src/psycstore/plugin_psycstore_mysql.c +++ b/src/psycstore/plugin_psycstore_mysql.c | |||
@@ -244,7 +244,7 @@ mysql_trace (void *cls, const char *sql) | |||
244 | */ | 244 | */ |
245 | static int | 245 | static int |
246 | mysql_prepare (struct GNUNET_MYSQL_Context *mc, | 246 | mysql_prepare (struct GNUNET_MYSQL_Context *mc, |
247 | const char *sql, | 247 | const char *sql, |
248 | struct GNUNET_MYSQL_StatementHandle *stmt) | 248 | struct GNUNET_MYSQL_StatementHandle *stmt) |
249 | { | 249 | { |
250 | stmt = GNUNET_MYSQL_statement_prepare (mc, | 250 | stmt = GNUNET_MYSQL_statement_prepare (mc, |
@@ -326,9 +326,9 @@ database_setup (struct Plugin *plugin) | |||
326 | { | 326 | { |
327 | LOG(GNUNET_ERROR_TYPE_ERROR, | 327 | LOG(GNUNET_ERROR_TYPE_ERROR, |
328 | _("Unable to initialize Mysql.\n")); | 328 | _("Unable to initialize Mysql.\n")); |
329 | return GNUNET_SYSERR; | 329 | return GNUNET_SYSERR; |
330 | } | 330 | } |
331 | 331 | ||
332 | /* | 332 | /* |
333 | #if DEBUG_PSYCSTORE | 333 | #if DEBUG_PSYCSTORE |
334 | sqlite3_trace (plugin->dbh, &sql_trace, NULL); | 334 | sqlite3_trace (plugin->dbh, &sql_trace, NULL); |
@@ -418,27 +418,27 @@ database_setup (struct Plugin *plugin) | |||
418 | ");"); | 418 | ");"); |
419 | 419 | ||
420 | /* Prepare statements */ | 420 | /* Prepare statements */ |
421 | mysql_prepare (plugin->mc, | 421 | mysql_prepare (plugin->mc, |
422 | "BEGIN", | 422 | "BEGIN", |
423 | plugin->transaction_begin); | 423 | plugin->transaction_begin); |
424 | 424 | ||
425 | mysql_prepare (plugin->mc, | 425 | mysql_prepare (plugin->mc, |
426 | "COMMIT", | 426 | "COMMIT", |
427 | plugin->transaction_commit); | 427 | plugin->transaction_commit); |
428 | 428 | ||
429 | mysql_prepare (plugin->mc, | 429 | mysql_prepare (plugin->mc, |
430 | "ROLLBACK;", | 430 | "ROLLBACK;", |
431 | plugin->transaction_rollback); | 431 | plugin->transaction_rollback); |
432 | 432 | ||
433 | mysql_prepare (plugin->mc, | 433 | mysql_prepare (plugin->mc, |
434 | "INSERT OR IGNORE INTO channels (pub_key) VALUES (?);", | 434 | "INSERT OR IGNORE INTO channels (pub_key) VALUES (?);", |
435 | plugin->insert_channel_key); | 435 | plugin->insert_channel_key); |
436 | 436 | ||
437 | mysql_prepare (plugin->mc, | 437 | mysql_prepare (plugin->mc, |
438 | "INSERT OR IGNORE INTO slaves (pub_key) VALUES (?);", | 438 | "INSERT OR IGNORE INTO slaves (pub_key) VALUES (?);", |
439 | plugin->insert_slave_key); | 439 | plugin->insert_slave_key); |
440 | 440 | ||
441 | mysql_prepare (plugin->mc, | 441 | mysql_prepare (plugin->mc, |
442 | "INSERT INTO membership\n" | 442 | "INSERT INTO membership\n" |
443 | " (channel_id, slave_id, did_join, announced_at,\n" | 443 | " (channel_id, slave_id, did_join, announced_at,\n" |
444 | " effective_since, group_generation)\n" | 444 | " effective_since, group_generation)\n" |
@@ -675,14 +675,14 @@ exec_channel (struct Plugin *plugin, struct GNUNET_MYSQL_StatementHandle *stmt, | |||
675 | params)) | 675 | params)) |
676 | { | 676 | { |
677 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 677 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
678 | "mysql exec_channel", statement); | 678 | "mysql exec_channel", statement); |
679 | } | 679 | } |
680 | 680 | ||
681 | if (0 != mysql_stmt_reset (statement)) | 681 | if (0 != mysql_stmt_reset (statement)) |
682 | { | 682 | { |
683 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 683 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
684 | "mysql_stmt_reset", statement); | 684 | "mysql_stmt_reset", statement); |
685 | return GNUNET_SYSERR; | 685 | return GNUNET_SYSERR; |
686 | } | 686 | } |
687 | 687 | ||
688 | return GNUNET_OK; | 688 | return GNUNET_OK; |
@@ -717,14 +717,14 @@ transaction_begin (struct Plugin *plugin, enum Transactions transaction) | |||
717 | { | 717 | { |
718 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 718 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
719 | "mysql extract_result", statement); | 719 | "mysql extract_result", statement); |
720 | return GNUNET_SYSERR; | 720 | return GNUNET_SYSERR; |
721 | } | 721 | } |
722 | 722 | ||
723 | if (0 != mysql_stmt_reset (statement)) | 723 | if (0 != mysql_stmt_reset (statement)) |
724 | { | 724 | { |
725 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 725 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
726 | "mysql_stmt_reset", statement); | 726 | "mysql_stmt_reset", statement); |
727 | return GNUNET_SYSERR; | 727 | return GNUNET_SYSERR; |
728 | } | 728 | } |
729 | 729 | ||
730 | plugin->transaction = transaction; | 730 | plugin->transaction = transaction; |
@@ -747,7 +747,7 @@ transaction_commit (struct Plugin *plugin) | |||
747 | { | 747 | { |
748 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 748 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
749 | "mysql statement invalide", statement); | 749 | "mysql statement invalide", statement); |
750 | return GNUNET_SYSERR; | 750 | return GNUNET_SYSERR; |
751 | } | 751 | } |
752 | 752 | ||
753 | struct GNUNET_MY_QueryParam params[] = { | 753 | struct GNUNET_MY_QueryParam params[] = { |
@@ -760,14 +760,14 @@ transaction_commit (struct Plugin *plugin) | |||
760 | { | 760 | { |
761 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 761 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
762 | "mysql extract_result", statement); | 762 | "mysql extract_result", statement); |
763 | return GNUNET_SYSERR; | 763 | return GNUNET_SYSERR; |
764 | } | 764 | } |
765 | 765 | ||
766 | if (0 != mysql_stmt_reset (statement)) | 766 | if (0 != mysql_stmt_reset (statement)) |
767 | { | 767 | { |
768 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 768 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
769 | "mysql_stmt_reset", statement); | 769 | "mysql_stmt_reset", statement); |
770 | return GNUNET_SYSERR; | 770 | return GNUNET_SYSERR; |
771 | } | 771 | } |
772 | 772 | ||
773 | plugin->transaction = TRANSACTION_NONE; | 773 | plugin->transaction = TRANSACTION_NONE; |
@@ -789,7 +789,7 @@ transaction_rollback (struct Plugin *plugin) | |||
789 | { | 789 | { |
790 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 790 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
791 | "mysql statement invalide", statement); | 791 | "mysql statement invalide", statement); |
792 | return GNUNET_SYSERR; | 792 | return GNUNET_SYSERR; |
793 | } | 793 | } |
794 | 794 | ||
795 | struct GNUNET_MY_QueryParam params[] = { | 795 | struct GNUNET_MY_QueryParam params[] = { |
@@ -802,14 +802,14 @@ transaction_rollback (struct Plugin *plugin) | |||
802 | { | 802 | { |
803 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 803 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
804 | "mysql extract_result", statement); | 804 | "mysql extract_result", statement); |
805 | return GNUNET_SYSERR; | 805 | return GNUNET_SYSERR; |
806 | } | 806 | } |
807 | 807 | ||
808 | if (0 != mysql_stmt_reset (statement)) | 808 | if (0 != mysql_stmt_reset (statement)) |
809 | { | 809 | { |
810 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 810 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
811 | "mysql_stmt_reset", statement); | 811 | "mysql_stmt_reset", statement); |
812 | return GNUNET_SYSERR; | 812 | return GNUNET_SYSERR; |
813 | } | 813 | } |
814 | 814 | ||
815 | plugin->transaction = TRANSACTION_NONE; | 815 | plugin->transaction = TRANSACTION_NONE; |
@@ -830,7 +830,7 @@ channel_key_store (struct Plugin *plugin, | |||
830 | { | 830 | { |
831 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 831 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
832 | "mysql statement invalide", statement); | 832 | "mysql statement invalide", statement); |
833 | return GNUNET_SYSERR; | 833 | return GNUNET_SYSERR; |
834 | } | 834 | } |
835 | 835 | ||
836 | struct GNUNET_MY_QueryParam params[] = { | 836 | struct GNUNET_MY_QueryParam params[] = { |
@@ -851,7 +851,7 @@ channel_key_store (struct Plugin *plugin, | |||
851 | { | 851 | { |
852 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 852 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
853 | "mysql_stmt_reset", statement); | 853 | "mysql_stmt_reset", statement); |
854 | return GNUNET_SYSERR; | 854 | return GNUNET_SYSERR; |
855 | } | 855 | } |
856 | 856 | ||
857 | return GNUNET_OK; | 857 | return GNUNET_OK; |
@@ -871,7 +871,7 @@ slave_key_store (struct Plugin *plugin, | |||
871 | { | 871 | { |
872 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 872 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
873 | "mysql statement invalide", statement); | 873 | "mysql statement invalide", statement); |
874 | return GNUNET_SYSERR; | 874 | return GNUNET_SYSERR; |
875 | } | 875 | } |
876 | 876 | ||
877 | struct GNUNET_MY_QueryParam params[] = { | 877 | struct GNUNET_MY_QueryParam params[] = { |
@@ -892,7 +892,7 @@ slave_key_store (struct Plugin *plugin, | |||
892 | { | 892 | { |
893 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 893 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
894 | "mysql_stmt_reset", statement); | 894 | "mysql_stmt_reset", statement); |
895 | return GNUNET_SYSERR; | 895 | return GNUNET_SYSERR; |
896 | } | 896 | } |
897 | 897 | ||
898 | return GNUNET_OK; | 898 | return GNUNET_OK; |
@@ -917,7 +917,7 @@ mysql_membership_store (void *cls, | |||
917 | uint64_t group_generation) | 917 | uint64_t group_generation) |
918 | { | 918 | { |
919 | struct Plugin *plugin = cls; | 919 | struct Plugin *plugin = cls; |
920 | 920 | ||
921 | uint32_t idid_join = (uint32_t)did_join; | 921 | uint32_t idid_join = (uint32_t)did_join; |
922 | uint64_t iannounced_at = (uint64_t)announced_at; | 922 | uint64_t iannounced_at = (uint64_t)announced_at; |
923 | uint64_t ieffective_since = (uint64_t)effective_since; | 923 | uint64_t ieffective_since = (uint64_t)effective_since; |
@@ -926,7 +926,7 @@ mysql_membership_store (void *cls, | |||
926 | struct GNUNET_MYSQL_StatementHandle *stmt = plugin->insert_membership; | 926 | struct GNUNET_MYSQL_StatementHandle *stmt = plugin->insert_membership; |
927 | MYSQL_STMT *statement = NULL; | 927 | MYSQL_STMT *statement = NULL; |
928 | 928 | ||
929 | /**** FAIL HERE ****/ | 929 | /**** FAIL HERE ****/ |
930 | statement = GNUNET_MYSQL_statement_get_stmt (stmt); | 930 | statement = GNUNET_MYSQL_statement_get_stmt (stmt); |
931 | 931 | ||
932 | GNUNET_assert (TRANSACTION_NONE == plugin->transaction); | 932 | GNUNET_assert (TRANSACTION_NONE == plugin->transaction); |
@@ -959,14 +959,14 @@ mysql_membership_store (void *cls, | |||
959 | { | 959 | { |
960 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 960 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
961 | "mysql extract_result", statement); | 961 | "mysql extract_result", statement); |
962 | return GNUNET_SYSERR; | 962 | return GNUNET_SYSERR; |
963 | } | 963 | } |
964 | 964 | ||
965 | if (0 != mysql_stmt_reset (statement)) | 965 | if (0 != mysql_stmt_reset (statement)) |
966 | { | 966 | { |
967 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 967 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
968 | "mysql_stmt_reset", statement); | 968 | "mysql_stmt_reset", statement); |
969 | return GNUNET_SYSERR; | 969 | return GNUNET_SYSERR; |
970 | } | 970 | } |
971 | return GNUNET_OK; | 971 | return GNUNET_OK; |
972 | } | 972 | } |
@@ -989,7 +989,7 @@ membership_test (void *cls, | |||
989 | 989 | ||
990 | struct GNUNET_MYSQL_StatementHandle *stmt = plugin->select_membership; | 990 | struct GNUNET_MYSQL_StatementHandle *stmt = plugin->select_membership; |
991 | MYSQL_STMT *statement = NULL; | 991 | MYSQL_STMT *statement = NULL; |
992 | 992 | ||
993 | uint32_t did_join = 0; | 993 | uint32_t did_join = 0; |
994 | 994 | ||
995 | statement = GNUNET_MYSQL_statement_get_stmt (stmt); | 995 | statement = GNUNET_MYSQL_statement_get_stmt (stmt); |
@@ -998,7 +998,7 @@ membership_test (void *cls, | |||
998 | { | 998 | { |
999 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 999 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1000 | "mysql statement invalide", statement); | 1000 | "mysql statement invalide", statement); |
1001 | return GNUNET_SYSERR; | 1001 | return GNUNET_SYSERR; |
1002 | } | 1002 | } |
1003 | 1003 | ||
1004 | int ret = GNUNET_SYSERR; | 1004 | int ret = GNUNET_SYSERR; |
@@ -1016,7 +1016,7 @@ membership_test (void *cls, | |||
1016 | { | 1016 | { |
1017 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1017 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1018 | "mysql execute prepared", statement); | 1018 | "mysql execute prepared", statement); |
1019 | return GNUNET_SYSERR; | 1019 | return GNUNET_SYSERR; |
1020 | } | 1020 | } |
1021 | 1021 | ||
1022 | struct GNUNET_MY_ResultSpec results_select[] = { | 1022 | struct GNUNET_MY_ResultSpec results_select[] = { |
@@ -1029,7 +1029,7 @@ membership_test (void *cls, | |||
1029 | { | 1029 | { |
1030 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1030 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1031 | "mysql extract_result", statement); | 1031 | "mysql extract_result", statement); |
1032 | return GNUNET_SYSERR; | 1032 | return GNUNET_SYSERR; |
1033 | } | 1033 | } |
1034 | 1034 | ||
1035 | if(0 != did_join) | 1035 | if(0 != did_join) |
@@ -1045,7 +1045,7 @@ membership_test (void *cls, | |||
1045 | { | 1045 | { |
1046 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1046 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1047 | "mysql_stmt_reset", statement); | 1047 | "mysql_stmt_reset", statement); |
1048 | return GNUNET_SYSERR; | 1048 | return GNUNET_SYSERR; |
1049 | } | 1049 | } |
1050 | 1050 | ||
1051 | return ret; | 1051 | return ret; |
@@ -1065,7 +1065,7 @@ fragment_store (void *cls, | |||
1065 | uint32_t psycstore_flags) | 1065 | uint32_t psycstore_flags) |
1066 | { | 1066 | { |
1067 | struct Plugin *plugin = cls; | 1067 | struct Plugin *plugin = cls; |
1068 | 1068 | ||
1069 | struct GNUNET_MYSQL_StatementHandle *stmt = plugin->insert_fragment; | 1069 | struct GNUNET_MYSQL_StatementHandle *stmt = plugin->insert_fragment; |
1070 | MYSQL_STMT *statement = NULL; | 1070 | MYSQL_STMT *statement = NULL; |
1071 | 1071 | ||
@@ -1113,16 +1113,16 @@ fragment_store (void *cls, | |||
1113 | { | 1113 | { |
1114 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1114 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1115 | "mysql execute prepared", statement); | 1115 | "mysql execute prepared", statement); |
1116 | return GNUNET_SYSERR; | 1116 | return GNUNET_SYSERR; |
1117 | } | 1117 | } |
1118 | 1118 | ||
1119 | if (0 != mysql_stmt_reset (statement)) | 1119 | if (0 != mysql_stmt_reset (statement)) |
1120 | { | 1120 | { |
1121 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1121 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1122 | "mysql_stmt_reset", statement); | 1122 | "mysql_stmt_reset", statement); |
1123 | return GNUNET_SYSERR; | 1123 | return GNUNET_SYSERR; |
1124 | } | 1124 | } |
1125 | 1125 | ||
1126 | return GNUNET_OK; | 1126 | return GNUNET_OK; |
1127 | } | 1127 | } |
1128 | 1128 | ||
@@ -1161,54 +1161,77 @@ message_add_flags (void *cls, | |||
1161 | { | 1161 | { |
1162 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1162 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1163 | "mysql execute prepared", statement); | 1163 | "mysql execute prepared", statement); |
1164 | return GNUNET_SYSERR; | 1164 | return GNUNET_SYSERR; |
1165 | } | 1165 | } |
1166 | 1166 | ||
1167 | if (0 != mysql_stmt_reset (statement)) | 1167 | if (0 != mysql_stmt_reset (statement)) |
1168 | { | 1168 | { |
1169 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1169 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1170 | "mysql_stmt_reset", statement); | 1170 | "mysql_stmt_reset", statement); |
1171 | return GNUNET_SYSERR; | 1171 | return GNUNET_SYSERR; |
1172 | } | 1172 | } |
1173 | 1173 | ||
1174 | return ret; | 1174 | return ret; |
1175 | } | 1175 | } |
1176 | 1176 | ||
1177 | |||
1177 | static int | 1178 | static int |
1178 | fragment_row (struct GNUNET_MYSQL_StatementHandle *stmt, GNUNET_PSYCSTORE_FragmentCallback cb, | 1179 | fragment_row (struct GNUNET_MYSQL_StatementHandle *stmt, |
1180 | GNUNET_PSYCSTORE_FragmentCallback cb, | ||
1179 | void *cb_cls) | 1181 | void *cb_cls) |
1180 | { | 1182 | { |
1181 | int data_size = 0 ; | ||
1182 | uint64_t data8 = 0; | ||
1183 | MYSQL_STMT * statement = NULL; | ||
1184 | statement = GNUNET_MYSQL_statement_get_stmt (stmt); | ||
1185 | |||
1186 | struct GNUNET_MULTICAST_MessageHeader *msg | ||
1187 | = GNUNET_malloc (sizeof (*msg) + data_size); | ||
1188 | 1183 | ||
1184 | uint64_t fragment_id; | ||
1185 | uint64_t fragment_offset; | ||
1186 | uint64_t message_id; | ||
1187 | uint64_t group_generation; | ||
1188 | struct GNUNET_MULTICAST_MessageHeader msg; // to be removed... | ||
1189 | void *buf; | ||
1190 | size_t buf_size; | ||
1191 | int ret; | ||
1192 | uint64_t flags; | ||
1193 | struct GNUNET_MULTICAST_MessageHeader *mp; | ||
1189 | struct GNUNET_MY_ResultSpec results[] = { | 1194 | struct GNUNET_MY_ResultSpec results[] = { |
1190 | GNUNET_MY_result_spec_uint32 ((uint32_t *)&msg->hop_counter), | 1195 | GNUNET_MY_result_spec_uint32 ((uint32_t *)&msg.hop_counter), // FIXME |
1191 | GNUNET_MY_result_spec_auto_from_type (&msg->signature), | 1196 | GNUNET_MY_result_spec_auto_from_type (&msg.signature), // FIXME |
1192 | GNUNET_MY_result_spec_auto_from_type (&msg->purpose), | 1197 | GNUNET_MY_result_spec_auto_from_type (&msg.purpose), // FIXME |
1193 | GNUNET_MY_result_spec_uint64 (&msg->fragment_id), | 1198 | GNUNET_MY_result_spec_uint64 (&fragment_id), |
1194 | GNUNET_MY_result_spec_uint64 (&msg->fragment_offset), | 1199 | GNUNET_MY_result_spec_uint64 (&fragment_offset), |
1195 | GNUNET_MY_result_spec_uint64 (&msg->message_id), | 1200 | GNUNET_MY_result_spec_uint64 (&message_id), |
1196 | GNUNET_MY_result_spec_uint64 (&msg->group_generation), | 1201 | GNUNET_MY_result_spec_uint64 (&group_generation), |
1197 | GNUNET_MY_result_spec_uint32 (&msg->flags), | 1202 | GNUNET_MY_result_spec_uint32 (&msg.flags), // FIXME |
1198 | GNUNET_MY_result_spec_uint64 (&data8), | 1203 | GNUNET_MY_result_spec_uint64 (&flags), |
1199 | GNUNET_MY_result_spec_auto_from_type (&msg[1]), | 1204 | GNUNET_MY_result_spec_variable_size (&buf, |
1205 | &buf_size), | ||
1200 | GNUNET_MY_result_spec_end | 1206 | GNUNET_MY_result_spec_end |
1201 | }; | 1207 | }; |
1202 | 1208 | ||
1203 | if (GNUNET_OK != GNUNET_MY_extract_result (stmt, | 1209 | if (GNUNET_OK != |
1204 | results)) | 1210 | GNUNET_MY_extract_result (stmt, |
1211 | results)) | ||
1205 | { | 1212 | { |
1206 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1213 | LOG_MYSQL(plugin, |
1207 | "mysql extract_result", statement); | 1214 | GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1215 | "mysql extract_result", | ||
1216 | GNUNET_MYSQL_statement_get_stmt (stmt)); | ||
1208 | return GNUNET_SYSERR; | 1217 | return GNUNET_SYSERR; |
1209 | } | 1218 | } |
1210 | 1219 | ||
1211 | return cb (cb_cls, (void *) msg, data8); | 1220 | mp = GNUNET_malloc (sizeof (msg) + buf_size); |
1221 | *mp = msg; | ||
1222 | mp->fragment_id = GNUNET_htonll (fragment_id); | ||
1223 | mp->fragment_offset = GNUNET_htonllk (fragment_offset); | ||
1224 | mp->message_id = GNUNET_htonllk (message_id); | ||
1225 | mp->group_generation = GNUNET_htonllk (group_generation); | ||
1226 | GNUNET_memcpy (&mp[1], | ||
1227 | buf, | ||
1228 | buf_size); | ||
1229 | ret = cb (cb_cls, | ||
1230 | mp, | ||
1231 | (enum GNUNET_PSYCSTORE_MessageFlags) flags); | ||
1232 | GNUNET_free (mp); | ||
1233 | GNUNET_MY_cleanup_result (results); | ||
1234 | return ret; | ||
1212 | } | 1235 | } |
1213 | 1236 | ||
1214 | 1237 | ||
@@ -1274,7 +1297,7 @@ fragment_select (struct Plugin *plugin, struct GNUNET_MYSQL_StatementHandle *stm | |||
1274 | break; | 1297 | break; |
1275 | default: | 1298 | default: |
1276 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1299 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1277 | "mysql extract_result", statement); | 1300 | "mysql extract_result", statement); |
1278 | } | 1301 | } |
1279 | } | 1302 | } |
1280 | while (sql_ret == GNUNET_YES); | 1303 | while (sql_ret == GNUNET_YES); |
@@ -1308,7 +1331,7 @@ fragment_get (void *cls, | |||
1308 | { | 1331 | { |
1309 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1332 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1310 | "mysql get_stmt", statement); | 1333 | "mysql get_stmt", statement); |
1311 | return GNUNET_SYSERR; | 1334 | return GNUNET_SYSERR; |
1312 | } | 1335 | } |
1313 | 1336 | ||
1314 | int ret = GNUNET_SYSERR; | 1337 | int ret = GNUNET_SYSERR; |
@@ -1327,7 +1350,7 @@ fragment_get (void *cls, | |||
1327 | { | 1350 | { |
1328 | LOG_MYSQL (plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1351 | LOG_MYSQL (plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1329 | "mysql_stmt_reset", statement); | 1352 | "mysql_stmt_reset", statement); |
1330 | return GNUNET_SYSERR; | 1353 | return GNUNET_SYSERR; |
1331 | } | 1354 | } |
1332 | 1355 | ||
1333 | return ret; | 1356 | return ret; |
@@ -1371,8 +1394,8 @@ fragment_get_latest (void *cls, | |||
1371 | { | 1394 | { |
1372 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1395 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1373 | "mysql_stmt_reset", statement); | 1396 | "mysql_stmt_reset", statement); |
1374 | return GNUNET_SYSERR; | 1397 | return GNUNET_SYSERR; |
1375 | } | 1398 | } |
1376 | 1399 | ||
1377 | return ret; | 1400 | return ret; |
1378 | } | 1401 | } |
@@ -1419,8 +1442,8 @@ message_get (void *cls, | |||
1419 | { | 1442 | { |
1420 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1443 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1421 | "mysql_stmt_reset", statement); | 1444 | "mysql_stmt_reset", statement); |
1422 | return GNUNET_SYSERR; | 1445 | return GNUNET_SYSERR; |
1423 | } | 1446 | } |
1424 | 1447 | ||
1425 | return ret; | 1448 | return ret; |
1426 | } | 1449 | } |
@@ -1464,8 +1487,8 @@ message_get_latest (void *cls, | |||
1464 | { | 1487 | { |
1465 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1488 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1466 | "mysql_stmt_reset", statement); | 1489 | "mysql_stmt_reset", statement); |
1467 | return GNUNET_SYSERR; | 1490 | return GNUNET_SYSERR; |
1468 | } | 1491 | } |
1469 | 1492 | ||
1470 | return ret; | 1493 | return ret; |
1471 | } | 1494 | } |
@@ -1509,7 +1532,7 @@ message_get_fragment (void *cls, | |||
1509 | { | 1532 | { |
1510 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1533 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1511 | "mysql execute prepared", statement); | 1534 | "mysql execute prepared", statement); |
1512 | return GNUNET_SYSERR; | 1535 | return GNUNET_SYSERR; |
1513 | } | 1536 | } |
1514 | /****** CHANGER ICI ****/ | 1537 | /****** CHANGER ICI ****/ |
1515 | ret = fragment_row (stmt, cb, cb_cls); | 1538 | ret = fragment_row (stmt, cb, cb_cls); |
@@ -1518,8 +1541,8 @@ message_get_fragment (void *cls, | |||
1518 | { | 1541 | { |
1519 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1542 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1520 | "mysql_stmt_reset", statement); | 1543 | "mysql_stmt_reset", statement); |
1521 | return GNUNET_SYSERR; | 1544 | return GNUNET_SYSERR; |
1522 | } | 1545 | } |
1523 | 1546 | ||
1524 | return ret; | 1547 | return ret; |
1525 | } | 1548 | } |
@@ -1539,7 +1562,7 @@ counters_message_get (void *cls, | |||
1539 | uint64_t *max_group_generation) | 1562 | uint64_t *max_group_generation) |
1540 | { | 1563 | { |
1541 | struct Plugin *plugin = cls; | 1564 | struct Plugin *plugin = cls; |
1542 | 1565 | ||
1543 | struct GNUNET_MYSQL_StatementHandle *stmt = plugin->select_counters_message; | 1566 | struct GNUNET_MYSQL_StatementHandle *stmt = plugin->select_counters_message; |
1544 | MYSQL_STMT *statement = NULL; | 1567 | MYSQL_STMT *statement = NULL; |
1545 | 1568 | ||
@@ -1549,7 +1572,7 @@ counters_message_get (void *cls, | |||
1549 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1572 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1550 | "mysql get statement", statement); | 1573 | "mysql get statement", statement); |
1551 | return GNUNET_SYSERR; | 1574 | return GNUNET_SYSERR; |
1552 | } | 1575 | } |
1553 | 1576 | ||
1554 | int ret = GNUNET_SYSERR; | 1577 | int ret = GNUNET_SYSERR; |
1555 | 1578 | ||
@@ -1588,8 +1611,8 @@ counters_message_get (void *cls, | |||
1588 | { | 1611 | { |
1589 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1612 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1590 | "mysql_stmt_reset", statement); | 1613 | "mysql_stmt_reset", statement); |
1591 | return GNUNET_SYSERR; | 1614 | return GNUNET_SYSERR; |
1592 | } | 1615 | } |
1593 | 1616 | ||
1594 | return ret; | 1617 | return ret; |
1595 | } | 1618 | } |
@@ -1616,7 +1639,7 @@ counters_state_get (void *cls, | |||
1616 | { | 1639 | { |
1617 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1640 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1618 | "mysql get_stmt", statement); | 1641 | "mysql get_stmt", statement); |
1619 | return GNUNET_SYSERR; | 1642 | return GNUNET_SYSERR; |
1620 | } | 1643 | } |
1621 | 1644 | ||
1622 | int ret = GNUNET_SYSERR; | 1645 | int ret = GNUNET_SYSERR; |
@@ -1654,8 +1677,8 @@ counters_state_get (void *cls, | |||
1654 | { | 1677 | { |
1655 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1678 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1656 | "mysql_stmt_reset", statement); | 1679 | "mysql_stmt_reset", statement); |
1657 | return GNUNET_SYSERR; | 1680 | return GNUNET_SYSERR; |
1658 | } | 1681 | } |
1659 | 1682 | ||
1660 | return ret; | 1683 | return ret; |
1661 | } | 1684 | } |
@@ -1705,8 +1728,8 @@ state_assign (struct Plugin *plugin, struct GNUNET_MYSQL_StatementHandle *stmt, | |||
1705 | { | 1728 | { |
1706 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1729 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1707 | "mysql_stmt_reset", statement); | 1730 | "mysql_stmt_reset", statement); |
1708 | return GNUNET_SYSERR; | 1731 | return GNUNET_SYSERR; |
1709 | } | 1732 | } |
1710 | 1733 | ||
1711 | return ret; | 1734 | return ret; |
1712 | } | 1735 | } |
@@ -1746,9 +1769,9 @@ update_message_id (struct Plugin *plugin, struct GNUNET_MYSQL_StatementHandle *s | |||
1746 | { | 1769 | { |
1747 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 1770 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
1748 | "mysql_stmt_reset", statement); | 1771 | "mysql_stmt_reset", statement); |
1749 | return GNUNET_SYSERR; | 1772 | return GNUNET_SYSERR; |
1750 | } | 1773 | } |
1751 | 1774 | ||
1752 | return GNUNET_OK; | 1775 | return GNUNET_OK; |
1753 | } | 1776 | } |
1754 | 1777 | ||
@@ -2006,8 +2029,8 @@ state_get (void *cls, const struct GNUNET_CRYPTO_EddsaPublicKey *channel_key, | |||
2006 | { | 2029 | { |
2007 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 2030 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
2008 | "mysql_stmt_reset", statement); | 2031 | "mysql_stmt_reset", statement); |
2009 | return GNUNET_SYSERR; | 2032 | return GNUNET_SYSERR; |
2010 | } | 2033 | } |
2011 | 2034 | ||
2012 | return ret; | 2035 | return ret; |
2013 | } | 2036 | } |
@@ -2093,7 +2116,7 @@ state_get_prefix (void *cls, const struct GNUNET_CRYPTO_EddsaPublicKey *channel_ | |||
2093 | { | 2116 | { |
2094 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 2117 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
2095 | "mysql_stmt_reset", statement); | 2118 | "mysql_stmt_reset", statement); |
2096 | return GNUNET_SYSERR; | 2119 | return GNUNET_SYSERR; |
2097 | } | 2120 | } |
2098 | 2121 | ||
2099 | return ret; | 2122 | return ret; |
@@ -2123,7 +2146,7 @@ state_get_signed (void *cls, | |||
2123 | { | 2146 | { |
2124 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 2147 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
2125 | "mysql get_stmt", statement); | 2148 | "mysql get_stmt", statement); |
2126 | return GNUNET_SYSERR; | 2149 | return GNUNET_SYSERR; |
2127 | } | 2150 | } |
2128 | 2151 | ||
2129 | struct GNUNET_MY_QueryParam params_select[] = { | 2152 | struct GNUNET_MY_QueryParam params_select[] = { |
@@ -2176,7 +2199,7 @@ state_get_signed (void *cls, | |||
2176 | { | 2199 | { |
2177 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 2200 | LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
2178 | "mysql_stmt_reset", statement); | 2201 | "mysql_stmt_reset", statement); |
2179 | return GNUNET_SYSERR; | 2202 | return GNUNET_SYSERR; |
2180 | } | 2203 | } |
2181 | 2204 | ||
2182 | return ret; | 2205 | return ret; |