mintdb postgres: implement create_refresh_session

This commit is contained in:
Sree Harsha Totakura 2015-04-10 10:39:59 +02:00
parent 764bd4dc10
commit 65953dfbc3

View File

@ -405,6 +405,15 @@ postgres_prepare (PGconn *db_conn)
" FROM refresh_sessions " " FROM refresh_sessions "
" WHERE session_hash = $1 ", " WHERE session_hash = $1 ",
1, NULL); 1, NULL);
PREPARE ("insert_refresh_session",
"INSERT INTO refresh_sessions ( "
" session_hash "
",num_oldcoins "
",num_newcoins "
",noreveal_index "
") "
"VALUES ($1, $2, $3, $4) ",
4, NULL);
PREPARE ("get_known_coin", PREPARE ("get_known_coin",
"SELECT " "SELECT "
@ -484,13 +493,6 @@ postgres_prepare (PGconn *db_conn)
"FROM refresh_melt " "FROM refresh_melt "
"WHERE session_hash = $1 AND oldcoin_index = $2", "WHERE session_hash = $1 AND oldcoin_index = $2",
2, NULL); 2, NULL);
PREPARE ("insert_refresh_session",
"INSERT INTO refresh_sessions ( "
" session_hash "
",noreveal_index "
") "
"VALUES ($1, $2) ",
2, NULL);
PREPARE ("insert_refresh_commit_link", PREPARE ("insert_refresh_commit_link",
"INSERT INTO refresh_commit_link ( " "INSERT INTO refresh_commit_link ( "
" session_hash " " session_hash "
@ -1522,28 +1524,29 @@ postgres_create_refresh_session (void *cls,
const struct GNUNET_HashCode *session_hash, const struct GNUNET_HashCode *session_hash,
const struct TALER_MINTDB_RefreshSession *refresh_session) const struct TALER_MINTDB_RefreshSession *refresh_session)
{ {
// FIXME: actually store session data! PGresult *result;
uint16_t num_oldcoins;
uint16_t num_newcoins;
uint16_t noreveal_index; uint16_t noreveal_index;
struct TALER_PQ_QueryParam params[] = { struct TALER_PQ_QueryParam params[] = {
TALER_PQ_QUERY_PARAM_PTR(session_hash), TALER_PQ_QUERY_PARAM_PTR(session_hash),
TALER_PQ_QUERY_PARAM_PTR(&num_oldcoins),
TALER_PQ_QUERY_PARAM_PTR(&num_newcoins),
TALER_PQ_QUERY_PARAM_PTR(&noreveal_index), TALER_PQ_QUERY_PARAM_PTR(&noreveal_index),
TALER_PQ_QUERY_PARAM_END TALER_PQ_QUERY_PARAM_END
}; };
num_oldcoins = htons (refresh_session->num_oldcoins);
noreveal_index = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, 1<<15); num_newcoins = htons (refresh_session->num_newcoins);
noreveal_index = htonl (noreveal_index); noreveal_index = htons (refresh_session->noreveal_index);
result = TALER_PQ_exec_prepared (session->conn,
PGresult *result = TALER_PQ_exec_prepared (session->conn,
"insert_refresh_session", "insert_refresh_session",
params); params);
if (PGRES_COMMAND_OK != PQresultStatus (result)) if (PGRES_COMMAND_OK != PQresultStatus (result))
{ {
BREAK_DB_ERR (result); BREAK_DB_ERR (result);
PQclear (result); PQclear (result);
return GNUNET_SYSERR; return GNUNET_SYSERR;
} }
PQclear (result); PQclear (result);
return GNUNET_OK; return GNUNET_OK;
} }