gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r37559 - gnunet/src/psycstore


From: gnunet
Subject: [GNUnet-SVN] r37559 - gnunet/src/psycstore
Date: Fri, 22 Jul 2016 09:52:50 +0200

Author: christophe.genevey
Date: 2016-07-22 09:52:50 +0200 (Fri, 22 Jul 2016)
New Revision: 37559

Modified:
   gnunet/src/psycstore/plugin_psycstore_mysql.c
Log:
fix mysql_prepare function

Modified: gnunet/src/psycstore/plugin_psycstore_mysql.c
===================================================================
--- gnunet/src/psycstore/plugin_psycstore_mysql.c       2016-07-21 23:10:54 UTC 
(rev 37558)
+++ gnunet/src/psycstore/plugin_psycstore_mysql.c       2016-07-22 07:52:50 UTC 
(rev 37559)
@@ -245,19 +245,19 @@
 static int
 mysql_prepare (struct GNUNET_MYSQL_Context *mc,
               const char *sql,
-              struct GNUNET_MYSQL_StatementHandle *stmt)
+              struct GNUNET_MYSQL_StatementHandle **stmt)
 {
-  stmt = GNUNET_MYSQL_statement_prepare (mc,
+  *stmt = GNUNET_MYSQL_statement_prepare (mc,
                                           sql);
 
   LOG(GNUNET_ERROR_TYPE_DEBUG,
        "Prepared `%s' / %p\n", sql, stmt);
-  if(NULL == stmt)
+  if(NULL == *stmt)
     LOG(GNUNET_ERROR_TYPE_ERROR,
    _("Error preparing SQL query: %s\n  %s\n"),
    mysql_stmt_error (GNUNET_MYSQL_statement_get_stmt (stmt)), sql);
 
-  return 1;
+  return 0;
 }
 
 
@@ -339,7 +339,7 @@
                               " max_state_message_id INT,\n"
                               " state_hash_message_id INT,\n"
                               " PRIMARY KEY(id),\n"
-                              " UNIQUE KEY(pub_key(10))\n"
+                              " UNIQUE KEY(pub_key(5))\n"
                               ");");
 
   GNUNET_MYSQL_statement_run (plugin->mc,
@@ -347,7 +347,7 @@
                               " id INT,\n"
                               " pub_key BLOB,\n"
                               " PRIMARY KEY(id),\n"
-                              " UNIQUE KEY(pub_key(10))\n"
+                              " UNIQUE KEY(pub_key(5))\n"
                               ");");
 
   GNUNET_MYSQL_statement_run (plugin->mc,
@@ -389,7 +389,7 @@
                               "  name TEXT NOT NULL,\n"
                               "  value_current BLOB,\n"
                               "  value_signed BLOB,\n"
-                              "  PRIMARY KEY (channel_id, name(10))\n"
+                              "  PRIMARY KEY (channel_id, name(5))\n"
                               ");");
 
   GNUNET_MYSQL_statement_run (plugin->mc,
@@ -397,29 +397,29 @@
                               "  channel_id INT NOT NULL REFERENCES 
channels(id),\n"
                               "  name TEXT NOT NULL,\n"
                               "  value BLOB,\n"
-                              "  PRIMARY KEY (channel_id, name(10))\n"
+                              "  PRIMARY KEY (channel_id, name(5))\n"
                               ");");
 
   /* Prepare statements */
   mysql_prepare (plugin->mc,
                 "BEGIN",
-                plugin->transaction_begin);
+                &plugin->transaction_begin);
 
   mysql_prepare (plugin->mc,
                 "COMMIT",
-                plugin->transaction_commit);
+                &plugin->transaction_commit);
 
   mysql_prepare (plugin->mc,
                 "ROLLBACK;",
-                plugin->transaction_rollback);
+                &plugin->transaction_rollback);
 
   mysql_prepare (plugin->mc,
-                "INSERT OR IGNORE INTO channels (pub_key) VALUES (?);",
-                plugin->insert_channel_key);
+                "INSERT IGNORE INTO channels (pub_key) VALUES (?);",
+                &plugin->insert_channel_key);
 
   mysql_prepare (plugin->mc,
-                "INSERT OR IGNORE INTO slaves (pub_key) VALUES (?);",
-                plugin->insert_slave_key);
+                "INSERT IGNORE INTO slaves (pub_key) VALUES (?);",
+                &plugin->insert_slave_key);
 
   mysql_prepare (plugin->mc,
                 "INSERT INTO membership\n"
@@ -428,7 +428,7 @@
                 "VALUES ((SELECT id FROM channels WHERE pub_key = ?),\n"
                 "        (SELECT id FROM slaves WHERE pub_key = ?),\n"
                 "        ?, ?, ?, ?);",
-                plugin->insert_membership);
+                &plugin->insert_membership);
 
   mysql_prepare (plugin->mc,
                 "SELECT did_join FROM membership\n"
@@ -436,16 +436,16 @@
                "      AND slave_id = (SELECT id FROM slaves WHERE pub_key = 
?)\n"
                "      AND effective_since <= ? AND did_join = 1\n"
                "ORDER BY announced_at DESC LIMIT 1;",
-               plugin->select_membership);
+               &plugin->select_membership);
 
   mysql_prepare (plugin->mc,
-                "INSERT OR IGNORE INTO messages\n"
+                "INSERT IGNORE INTO messages\n"
                " (channel_id, hop_counter, signature, purpose,\n"
                "  fragment_id, fragment_offset, message_id,\n"
                "  group_generation, multicast_flags, psycstore_flags, data)\n"
                "VALUES ((SELECT id FROM channels WHERE pub_key = ?),\n"
                "        ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);",
-                plugin->insert_fragment);
+                &plugin->insert_fragment);
 
   mysql_prepare (plugin->mc,
                 "UPDATE messages\n"
@@ -452,7 +452,7 @@
                 "SET psycstore_flags = psycstore_flags | ?\n"
                 "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?)\n"
                 "      AND message_id = ? AND fragment_offset = 0;",
-                plugin->update_message_flags);
+                &plugin->update_message_flags);
 
   mysql_prepare (plugin->mc,
                   "SELECT hop_counter, signature, purpose, fragment_id,\n"
@@ -461,7 +461,7 @@
                   "FROM messages\n"
                   "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?)\n"
                   "      AND ? <= fragment_id AND fragment_id <= ?;",
-               plugin->select_fragments);
+                &plugin->select_fragments);
 
   /** @todo select_messages: add method_prefix filter */
   mysql_prepare (plugin->mc,
@@ -472,7 +472,7 @@
                 "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?)\n"
                 "      AND ? <= message_id AND message_id <= ?"
                 "LIMIT ?;",
-                plugin->select_messages);
+                &plugin->select_messages);
 
   mysql_prepare (plugin->mc,
                 "SELECT * FROM\n"
@@ -484,7 +484,7 @@
                 " ORDER BY fragment_id DESC\n"
                 " LIMIT ?)\n"
                 "ORDER BY fragment_id;",
-                plugin->select_latest_fragments);
+                &plugin->select_latest_fragments);
 
   /** @todo select_latest_messages: add method_prefix filter */
   mysql_prepare (plugin->mc,
@@ -501,7 +501,7 @@
                 "       ORDER BY message_id\n"
                 "       DESC LIMIT ?)\n"
                 "ORDER BY fragment_id;",
-               plugin->select_latest_messages);
+                &plugin->select_latest_messages);
 
   mysql_prepare (plugin->mc,
                 "SELECT hop_counter, signature, purpose, fragment_id,\n"
@@ -510,35 +510,35 @@
                 "FROM messages\n"
                 "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?)\n"
                 "      AND message_id = ? AND fragment_offset = ?;",
-                plugin->select_message_fragment);
+                &plugin->select_message_fragment);
 
   mysql_prepare (plugin->mc,
                 "SELECT fragment_id, message_id, group_generation\n"
-               "FROM messages\n"
-               "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?)\n"
-               "ORDER BY fragment_id DESC LIMIT 1;",
-               plugin->select_counters_message);
+                "FROM messages\n"
+                "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?)\n"
+                "ORDER BY fragment_id DESC LIMIT 1;",
+                &plugin->select_counters_message);
 
   mysql_prepare (plugin->mc,
                 "SELECT max_state_message_id\n"
                 "FROM channels\n"
                 "WHERE pub_key = ? AND max_state_message_id IS NOT NULL;",
-               plugin->select_counters_state);
+                &plugin->select_counters_state);
 
   mysql_prepare (plugin->mc,
                 "UPDATE channels\n"
                 "SET max_state_message_id = ?\n"
                 "WHERE pub_key = ?;",
-               plugin->update_max_state_message_id);
+                &plugin->update_max_state_message_id);
 
   mysql_prepare (plugin->mc,
                 "UPDATE channels\n"
                 "SET state_hash_message_id = ?\n"
                 "WHERE pub_key = ?;",
-                plugin->update_state_hash_message_id);
+                &plugin->update_state_hash_message_id);
 
   mysql_prepare (plugin->mc,
-                "INSERT OR REPLACE INTO state\n"
+                "REPLACE INTO state\n"
                 "  (channel_id, name, value_current, value_signed)\n"
                 "SELECT new.channel_id, new.name,\n"
                 "       new.value_current, old.value_signed\n"
@@ -548,7 +548,7 @@
                 "LEFT JOIN (SELECT channel_id, name, value_signed\n"
                 "           FROM state) AS old\n"
                 "ON new.channel_id = old.channel_id AND new.name = old.name;",
-                plugin->insert_state_current);
+                &plugin->insert_state_current);
 
   mysql_prepare (plugin->mc,
                 "DELETE FROM state\n"
@@ -555,23 +555,23 @@
                 "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?)\n"
                 "      AND (value_current IS NULL OR length(value_current) = 
0)\n"
                 "      AND (value_signed IS NULL OR length(value_signed) = 
0);",
-               plugin->delete_state_empty);
+                &plugin->delete_state_empty);
 
   mysql_prepare (plugin->mc,
                 "UPDATE state\n"
                 "SET value_signed = value_current\n"
                 "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?);",
-                plugin->update_state_signed);
+                &plugin->update_state_signed);
 
   mysql_prepare (plugin->mc,
                 "DELETE FROM state\n"
                 "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?);",
-                plugin->delete_state);
+                &plugin->delete_state);
 
   mysql_prepare (plugin->mc,
                 "INSERT INTO state_sync (channel_id, name, value)\n"
                 "VALUES ((SELECT id FROM channels WHERE pub_key = ?), ?, ?);",
-                plugin->insert_state_sync);
+                &plugin->insert_state_sync);
 
   mysql_prepare (plugin->mc,
                 "INSERT INTO state\n"
@@ -579,12 +579,12 @@
                 "SELECT channel_id, name, value, value\n"
                 "FROM state_sync\n"
                 "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?);",
-                plugin->insert_state_from_sync);
+                &plugin->insert_state_from_sync);
 
   mysql_prepare (plugin->mc,
                 "DELETE FROM state_sync\n"
                 "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?);",
-                plugin->delete_state_sync);
+                &plugin->delete_state_sync);
 
   mysql_prepare (plugin->mc,
                 "SELECT value_current\n"
@@ -591,7 +591,7 @@
                 "FROM state\n"
                 "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?)\n"
                 "      AND name = ?;",
-                plugin->select_state_one);
+                &plugin->select_state_one);
 
   mysql_prepare (plugin->mc,
                 "SELECT name, value_current\n"
@@ -598,7 +598,7 @@
                 "FROM state\n"
                 "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?)\n"
                 "      AND (name = ? OR substr(name, 1, ?) = ? || '_');",
-                plugin->select_state_prefix);
+                &plugin->select_state_prefix);
 
   mysql_prepare (plugin->mc,
                 "SELECT name, value_signed\n"
@@ -605,7 +605,7 @@
                 "FROM state\n"
                 "WHERE channel_id = (SELECT id FROM channels WHERE pub_key = 
?)"
                 "      AND value_signed IS NOT NULL;",
-                plugin->select_state_signed);
+                &plugin->select_state_signed);
 
   return GNUNET_OK;
 }
@@ -778,7 +778,7 @@
                                             params))
   {
     LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
-                "mysql extract_result", stmt);
+                "mysql exec_prepared", stmt);
     return GNUNET_SYSERR;
   }
 
@@ -809,7 +809,7 @@
                                             params))
   {
     LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
-                "mysql extract_result", stmt);
+                "mysql exec_prepared", stmt);
     return GNUNET_SYSERR;
   }
 
@@ -876,7 +876,7 @@
                                             params))
   {
     LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
-                "mysql extract_result", stmt);
+                "mysql exec_prepared", stmt);
     return GNUNET_SYSERR;
   }
 
@@ -911,6 +911,11 @@
 
   int ret = GNUNET_SYSERR;
 
+  if (NULL == plugin->select_membership)
+  {
+    fprintf(stderr, "Erreur plugin->select_membership\n");
+  }
+
   struct GNUNET_MY_QueryParam params_select[] = {
     GNUNET_MY_query_param_auto_from_type (channel_key),
     GNUNET_MY_query_param_auto_from_type (slave_key),
@@ -932,23 +937,20 @@
     GNUNET_MY_result_spec_end
   };
 
-  if (GNUNET_OK != GNUNET_MY_extract_result (stmt,
+  switch(GNUNET_MY_extract_result (stmt,
                                 results_select))
   {
-    LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
+    case GNUNET_NO:
+      ret = GNUNET_NO;
+      break;
+    case GNUNET_YES:
+      ret = GNUNET_YES;
+    default:
+      LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
                 "mysql extract_result", stmt);
-    return GNUNET_SYSERR;
+      return GNUNET_SYSERR;
   }
 
-  if(0 != did_join)
-  {
-    ret = GNUNET_YES;
-  }
-  else
-  {
-    ret = GNUNET_NO;
-  }
-
   if (0 != mysql_stmt_reset (GNUNET_MYSQL_statement_get_stmt (stmt)))
   {
     LOG_MYSQL(plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]