gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r37344 - gnunet/src/datastore


From: gnunet
Subject: [GNUnet-SVN] r37344 - gnunet/src/datastore
Date: Fri, 24 Jun 2016 14:07:29 +0200

Author: christophe.genevey
Date: 2016-06-24 14:07:28 +0200 (Fri, 24 Jun 2016)
New Revision: 37344

Modified:
   gnunet/src/datastore/plugin_datastore_mysql.c
Log:
continue to fix execute select

Modified: gnunet/src/datastore/plugin_datastore_mysql.c
===================================================================
--- gnunet/src/datastore/plugin_datastore_mysql.c       2016-06-24 11:54:36 UTC 
(rev 37343)
+++ gnunet/src/datastore/plugin_datastore_mysql.c       2016-06-24 12:07:28 UTC 
(rev 37344)
@@ -214,6 +214,7 @@
 
 };
 
+#define MAX_PARAM 16
 
 /**
  * Delete an entry from the gn090 table.
@@ -534,7 +535,6 @@
   va_start (ap, proc_cls);
 
   int pc = 0;
-  pc = mysql_stmt_param_count (stmt);
 
   struct GNUNET_MY_QueryParam *params_select = NULL;
 
@@ -546,6 +546,12 @@
   unsigned long long *param_longlong = NULL;
   void *param_blob = NULL;
 
+  pc = mysql_stmt_param_count (stmt);
+  if (pc  > MAX_PARAM)
+  {
+    GNUNET_break (0);
+  }
+  
 //  enum enum_field_type ft;
   int ft;
   int j = 0;
@@ -556,6 +562,12 @@
   {
    switch (ft)
    {
+    case MYSQL_TYPE_LONGLONG:
+      param_longlong = va_arg (ap, unsigned long long *);
+      param_is_unsigned = va_arg (ap, int);
+      params_select[j] = GNUNET_MY_query_param_uint64 (param_longlong);
+      break;
+
     case MYSQL_TYPE_LONG:
       param_long = va_arg (ap, unsigned int*);
       param_is_unsigned = va_arg (ap, int);
@@ -562,20 +574,16 @@
       params_select[j] = GNUNET_MY_query_param_uint32 (param_long);
       break;
 
-    case MYSQL_TYPE_LONGLONG:
-      param_longlong = va_arg (ap, unsigned long long *);
-      param_is_unsigned = va_arg (ap, int);
-      params_select[j] = GNUNET_MY_query_param_uint64 (param_longlong);
-      break;
-
+    case MYSQL_TYPE_VAR_STRING:
+    case MYSQL_TYPE_STRING:
     case MYSQL_TYPE_BLOB:
       param_blob = va_arg (ap, void *);
       param_length = va_arg (ap, unsigned long);
       length = va_arg (ap, unsigned long *);
-      params_select[j] = GNUNET_MY_query_param_fixed_size (param_blob, 
param_length);
-      fprintf(stderr, "indice de segfault : %d\n", j);
+      //params_select[j] = GNUNET_MY_query_param_fixed_size (param_blob, 
param_length);
+      params_select[j] = GNUNET_MY_query_param_auto_from_type(&key);
+
       break;
-
     default:
       GNUNET_break(0);
    }
@@ -598,14 +606,20 @@
 /* 
 
   !!!! FAIL HERE FOR SELECT QUERY
-  ret = GNUNET_MY_exec_prepared (plugin->mc, stmt, params_select);
+*/  ret = GNUNET_MY_exec_prepared (plugin->mc, stmt, params_select);
 
-  if (ret <= 0)
+  if(GNUNET_OK != ret)
   {
     proc (proc_cls, NULL, 0, NULL, 0, 0, 0, GNUNET_TIME_UNIT_ZERO_ABS, 0);
     return;
   }
-*/
+  
+/*  if (ret <= 0)
+  {
+    proc (proc_cls, NULL, 0, NULL, 0, 0, 0, GNUNET_TIME_UNIT_ZERO_ABS, 0);
+    return;
+  }
+
   va_end (ap);
 
 /*




reply via email to

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