*/
static int
delete_by_rowid (struct Plugin *plugin,
- unsigned int rowid)
+ uint32_t rowid)
{
- const char *paramValues[] = { (const char *) &rowid };
- int paramLengths[] = { sizeof (rowid) };
+ uint32_t brow = htonl (rowid);
+ const char *paramValues[] = { (const char *) &brow };
+ int paramLengths[] = { sizeof (brow) };
const int paramFormats[] = { 1 };
PGresult *ret;
* @param discard_time when to discard the value in any case
* @return 0 on error, number of bytes used otherwise
*/
-static uint32_t
+static size_t
postgres_plugin_put (void *cls,
const GNUNET_HashCode * key,
- uint32_t size,
+ size_t size,
const char *data,
enum GNUNET_BLOCK_Type type,
struct GNUNET_TIME_Absolute discard_time)
return 0;
}
if (iter == NULL)
- return cnt;
+ {
+ PQclear (res);
+ return cnt;
+ }
if ( (3 != PQnfields (res)) ||
(sizeof (uint64_t) != PQfsize (res, 0)) ||
(sizeof (uint32_t) != PQfsize (res, 1)))
return GNUNET_SYSERR;
plugin->env->delete_notify (plugin->env->cls,
&key,
- size);
+ size + OVERHEAD);
return GNUNET_OK;
}
struct GNUNET_DATACACHE_PluginFunctions *api = cls;
struct Plugin *plugin = api->cls;
- fprintf (stderr,
- "Unloading postgres plugin\n");
PQfinish (plugin->dbh);
GNUNET_free (plugin);
GNUNET_free (api);