add nick name for cached records
[oweals/gnunet.git] / src / datastore / plugin_datastore_mysql.c
index b92877d9809e7eb7a1e9c6a78b56d1ac2b8c0305..cf017258322205f1100f326639dc355354f3fc85 100644 (file)
@@ -47,7 +47,7 @@
  *
  * MANUAL SETUP INSTRUCTIONS
  *
- * 1) in /etc/gnunet.conf, set
+ * 1) in gnunet.conf, set
  * @verbatim
        [datastore]
        DATABASE = "mysql"
@@ -176,7 +176,7 @@ struct Plugin
 #define UPDATE_ENTRY "UPDATE gn090 SET prio=prio+?,expire=IF(expire>=?,expire,?) WHERE uid=?"
   struct GNUNET_MYSQL_StatementHandle *update_entry;
 
-#define DEC_REPL "UPDATE gn090 SET repl=GREATEST (0, repl - 1) WHERE uid=?"
+#define DEC_REPL "UPDATE gn090 SET repl=GREATEST (1, repl) - 1 WHERE uid=?"
   struct GNUNET_MYSQL_StatementHandle *dec_repl;
 
 #define SELECT_SIZE "SELECT SUM(BIT_LENGTH(value) DIV 8) FROM gn090"
@@ -290,7 +290,7 @@ mysql_plugin_put (void *cls, const struct GNUNET_HashCode * key, uint32_t size,
   unsigned int irepl = replication;
   unsigned int ipriority = priority;
   unsigned int ianonymity = anonymity;
-  unsigned long long lexpiration = expiration.abs_value;
+  unsigned long long lexpiration = expiration.abs_value_us;
   unsigned long long lrvalue =
       (unsigned long long) GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK,
                                                      UINT64_MAX);
@@ -358,12 +358,13 @@ mysql_plugin_update (void *cls, uint64_t uid, int delta,
 {
   struct Plugin *plugin = cls;
   unsigned long long vkey = uid;
-  unsigned long long lexpire = expire.abs_value;
+  unsigned long long lexpire = expire.abs_value_us;
   int ret;
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Updating value %llu adding %d to priority and maxing exp at %llu\n",
-              vkey, delta, lexpire);
+              "Updating value %llu adding %d to priority and maxing exp at %s\n",
+              vkey, delta,
+             GNUNET_STRINGS_absolute_time_to_string (expire));
   ret =
     GNUNET_MYSQL_statement_run_prepared (plugin->mc, plugin->update_entry, NULL,
                                         MYSQL_TYPE_LONG, &delta, GNUNET_NO,
@@ -449,11 +450,13 @@ execute_select (struct Plugin *plugin, struct GNUNET_MYSQL_StatementHandle *stmt
     proc (proc_cls, NULL, 0, NULL, 0, 0, 0, GNUNET_TIME_UNIT_ZERO_ABS, 0);
     return;
   }
+  expiration.abs_value_us = exp;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Found %u-byte value under key `%s' with prio %u, anon %u, expire %llu selecting from gn090 table\n",
-              (unsigned int) size, GNUNET_h2s (&key), priority, anonymity, exp);
+              "Found %u-byte value under key `%s' with prio %u, anon %u, expire %s selecting from gn090 table\n",
+              (unsigned int) size, GNUNET_h2s (&key),
+             priority, anonymity,
+             GNUNET_STRINGS_absolute_time_to_string (expiration));
   GNUNET_assert (size < MAX_DATUM_SIZE);
-  expiration.abs_value = exp;
   ret =
       proc (proc_cls, &key, size, value, type, priority, anonymity, expiration,
             uid);
@@ -766,7 +769,7 @@ mysql_plugin_get_keys (void *cls,
   struct GNUNET_HashCode key;
   MYSQL_BIND cbind[1];
   unsigned long length;
+
   statement = GNUNET_MYSQL_statement_get_stmt (plugin->mc,
                                               plugin->get_all_keys);
   if (statement == NULL)
@@ -809,14 +812,14 @@ mysql_plugin_get_keys (void *cls,
   while (0 == (ret = mysql_stmt_fetch (statement)))
   {
     if (sizeof (struct GNUNET_HashCode) == length)
-      proc (proc_cls, &key, 1);    
+      proc (proc_cls, &key, 1);
   }
   if (ret != MYSQL_NO_DATA)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 _("`%s' failed at %s:%d with error: %s\n"),
                     "mysql_stmt_fetch", __FILE__, __LINE__,
-                    mysql_stmt_error (statement));    
+                    mysql_stmt_error (statement));
     GNUNET_MYSQL_statements_invalidate (plugin->mc);
     return;
   }
@@ -907,7 +910,7 @@ mysql_plugin_get_expiration (void *cls, PluginDatumProcessor proc,
   rc.plugin = plugin;
   rc.proc = proc;
   rc.proc_cls = proc_cls;
-  nt = (long long) GNUNET_TIME_absolute_get ().abs_value;
+  nt = (long long) GNUNET_TIME_absolute_get ().abs_value_us;
   execute_select (plugin, plugin->select_expiration, expi_proc, &rc,
                   MYSQL_TYPE_LONGLONG, &nt, GNUNET_YES, -1);