gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r33299 - in gnunet/src: include peerstore


From: gnunet
Subject: [GNUnet-SVN] r33299 - in gnunet/src: include peerstore
Date: Wed, 14 May 2014 19:06:27 +0200

Author: otarabai
Date: 2014-05-14 19:06:27 +0200 (Wed, 14 May 2014)
New Revision: 33299

Modified:
   gnunet/src/include/gnunet_peerstore_plugin.h
   gnunet/src/peerstore/gnunet-service-peerstore.c
   gnunet/src/peerstore/plugin_peerstore_sqlite.c
Log:
added record expiry to sqlite


Modified: gnunet/src/include/gnunet_peerstore_plugin.h
===================================================================
--- gnunet/src/include/gnunet_peerstore_plugin.h        2014-05-14 16:51:12 UTC 
(rev 33298)
+++ gnunet/src/include/gnunet_peerstore_plugin.h        2014-05-14 17:06:27 UTC 
(rev 33299)
@@ -83,7 +83,8 @@
       const struct GNUNET_PeerIdentity *peer,
       const char *key,
       const void *value,
-      size_t size);
+      size_t size,
+      struct GNUNET_TIME_Absolute expiry);
 
   /**
    * Iterate over the records given an optional peer id

Modified: gnunet/src/peerstore/gnunet-service-peerstore.c
===================================================================
--- gnunet/src/peerstore/gnunet-service-peerstore.c     2014-05-14 16:51:12 UTC 
(rev 33298)
+++ gnunet/src/peerstore/gnunet-service-peerstore.c     2014-05-14 17:06:27 UTC 
(rev 33299)
@@ -115,24 +115,14 @@
     GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
     return;
   }
-  if(NULL == record->sub_system)
+  if(NULL == record->sub_system
+      || NULL == record->peer
+      || NULL == record->key)
   {
-    GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Sub system not supplied in client 
store request\n");
+    GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Full key not supplied in client store 
request\n");
     GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
     return;
   }
-  if(NULL == record->peer)
-  {
-    GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Peer id not supplied in client store 
request\n");
-    GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
-    return;
-  }
-  if(NULL == record->key)
-  {
-    GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Key not supplied in client store 
request\n");
-    GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
-    return;
-  }
   GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Received a store request (size: %lu) for 
sub system `%s', peer `%s', key `%s'\n",
       record->value_size,
       record->sub_system,
@@ -143,7 +133,8 @@
       record->peer,
       record->key,
       record->value,
-      record->value_size))
+      record->value_size,
+      GNUNET_TIME_relative_to_absolute(record->lifetime)))
   {
     response_type = GNUNET_MESSAGE_TYPE_PEERSTORE_STORE_RESULT_OK;
   }

Modified: gnunet/src/peerstore/plugin_peerstore_sqlite.c
===================================================================
--- gnunet/src/peerstore/plugin_peerstore_sqlite.c      2014-05-14 16:51:12 UTC 
(rev 33298)
+++ gnunet/src/peerstore/plugin_peerstore_sqlite.c      2014-05-14 17:06:27 UTC 
(rev 33299)
@@ -208,7 +208,8 @@
     const struct GNUNET_PeerIdentity *peer,
     const char *key,
     const void *value,
-    size_t size)
+    size_t size,
+    struct GNUNET_TIME_Absolute expiry)
 {
   struct Plugin *plugin = cls;
   sqlite3_stmt *stmt = plugin->insert_peerstoredata;
@@ -218,7 +219,8 @@
   if(SQLITE_OK != sqlite3_bind_text(stmt, 1, sub_system, strlen(sub_system) + 
1, SQLITE_STATIC)
       || SQLITE_OK != sqlite3_bind_blob(stmt, 2, peer, sizeof(struct 
GNUNET_PeerIdentity), SQLITE_STATIC)
       || SQLITE_OK != sqlite3_bind_text(stmt, 3, key, strlen(key) + 1, 
SQLITE_STATIC)
-      || SQLITE_OK != sqlite3_bind_blob(stmt, 4, value, size, SQLITE_STATIC))
+      || SQLITE_OK != sqlite3_bind_blob(stmt, 4, value, size, SQLITE_STATIC)
+      || SQLITE_OK != sqlite3_bind_int64(stmt, 5, 
(sqlite3_int64)expiry.abs_value_us))
     LOG_SQLITE (plugin, GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
                     "sqlite3_bind");
   else if (SQLITE_DONE != sqlite3_step (stmt))
@@ -343,30 +345,31 @@
       "  sub_system TEXT NOT NULL,\n"
       "  peer_id BLOB NOT NULL,\n"
       "  key TEXT NOT NULL,\n"
-      "  value BLOB NULL"
+      "  value BLOB NULL,\n"
+      "  expiry INTEGER NOT NULL"
       ");");
 
   /* Prepare statements */
 
   sql_prepare (plugin->dbh,
-      "INSERT INTO peerstoredata (sub_system, peer_id, key, value) VALUES 
(?,?,?,?);",
+      "INSERT INTO peerstoredata (sub_system, peer_id, key, value, expiry) 
VALUES (?,?,?,?,?);",
       &plugin->insert_peerstoredata);
   sql_prepare(plugin->dbh,
-      "SELECT peer_id, sub_system, value FROM peerstoredata"
+      "SELECT * FROM peerstoredata"
       " WHERE sub_system = ?",
       &plugin->select_peerstoredata);
   sql_prepare(plugin->dbh,
-      "SELECT peer_id, sub_system, value FROM peerstoredata"
+      "SELECT * FROM peerstoredata"
       " WHERE sub_system = ?"
       " AND peer_id = ?",
       &plugin->select_peerstoredata_by_pid);
   sql_prepare(plugin->dbh,
-      "SELECT peer_id, sub_system, value FROM peerstoredata"
+      "SELECT * FROM peerstoredata"
       " WHERE sub_system = ?"
       " AND key = ?",
       &plugin->select_peerstoredata_by_key);
   sql_prepare(plugin->dbh,
-      "SELECT peer_id, sub_system, value FROM peerstoredata"
+      "SELECT * FROM peerstoredata"
       " WHERE sub_system = ?"
       " AND peer_id = ?"
       " AND key = ?",




reply via email to

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