[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-exchange] 124/152: fixed endianness in taler_sq_lib
From: |
gnunet |
Subject: |
[taler-exchange] 124/152: fixed endianness in taler_sq_lib |
Date: |
Sun, 05 Jul 2020 20:48:00 +0200 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository exchange.
commit 9bbaff19c17b28df98ad34e44948d4d174fabe65
Author: Jonathan Buchanan <jonathan.russ.buchanan@gmail.com>
AuthorDate: Wed Jun 3 12:40:15 2020 -0400
fixed endianness in taler_sq_lib
---
src/sq/sq_query_helper.c | 61 ++++++++++++++++------------------
src/sq/sq_result_helper.c | 84 ++++++++++++++++++++++-------------------------
2 files changed, 69 insertions(+), 76 deletions(-)
diff --git a/src/sq/sq_query_helper.c b/src/sq/sq_query_helper.c
index 8e385355..e9070e14 100644
--- a/src/sq/sq_query_helper.c
+++ b/src/sq/sq_query_helper.c
@@ -29,7 +29,7 @@
* Function called to convert input argument into SQL parameters.
*
* @param cls closure
- * @param data pointer to input argument, here a `struct TALER_AmountNBO`
+ * @param data pointer to input argument, here a `struct TALER_Amount`
* @param data_len number of bytes in @a data (if applicable)
* @param stmt sqlite statement to parameters for
* @param off offset of the argument to bind in @a stmt, numbered from 1,
@@ -37,16 +37,16 @@
* @return #GNUNET_SYSERR on error, #GNUNET_OK on success
*/
static int
-qconv_amount_nbo (void *cls,
- const void *data,
- size_t data_len,
- sqlite3_stmt *stmt,
- unsigned int off)
+qconv_amount (void *cls,
+ const void *data,
+ size_t data_len,
+ sqlite3_stmt *stmt,
+ unsigned int off)
{
- const struct TALER_AmountNBO *amount = data;
+ const struct TALER_Amount *amount = data;
(void) cls;
- GNUNET_assert (sizeof (struct TALER_AmountNBO) == data_len);
+ GNUNET_assert (sizeof (struct TALER_Amount) == data_len);
if (SQLITE_OK != sqlite3_bind_int64 (stmt,
(int) off,
(sqlite3_int64) amount->value))
@@ -67,10 +67,10 @@ qconv_amount_nbo (void *cls,
* @param x pointer to the query parameter to pass
*/
struct GNUNET_SQ_QueryParam
-TALER_SQ_query_param_amount_nbo (const struct TALER_AmountNBO *x)
+TALER_SQ_query_param_amount (const struct TALER_Amount *x)
{
struct GNUNET_SQ_QueryParam res =
- { &qconv_amount_nbo, NULL, x, sizeof (*x), 2 };
+ { &qconv_amount, NULL, x, sizeof (*x), 2 };
return res;
}
@@ -79,7 +79,7 @@ TALER_SQ_query_param_amount_nbo (const struct TALER_AmountNBO
*x)
* Function called to convert input argument into SQL parameters.
*
* @param cls closure
- * @param data pointer to input argument, here a `struct TALER_Amount`
+ * @param data pointer to input argument, here a `struct TALER_AmountNBO`
* @param data_len number of bytes in @a data (if applicable)
* @param stmt sqlite statement to parameters for
* @param off offset of the argument to bind in @a stmt, numbered from 1,
@@ -87,24 +87,23 @@ TALER_SQ_query_param_amount_nbo (const struct
TALER_AmountNBO *x)
* @return #GNUNET_SYSERR on error, #GNUNET_OK on success
*/
static int
-qconv_amount (void *cls,
- const void *data,
- size_t data_len,
- sqlite3_stmt *stmt,
- unsigned int off)
+qconv_amount_nbo (void *cls,
+ const void *data,
+ size_t data_len,
+ sqlite3_stmt *stmt,
+ unsigned int off)
{
- const struct TALER_Amount *amount_hbo = data;
- struct TALER_AmountNBO amount;
+ const struct TALER_AmountNBO *amount = data;
+ struct TALER_Amount amount_hbo;
(void) cls;
- GNUNET_assert (sizeof (struct TALER_AmountNBO) == data_len);
- TALER_amount_hton (&amount,
- amount_hbo);
- return qconv_amount_nbo (cls,
- &amount,
- sizeof (struct TALER_AmountNBO),
- stmt,
- off);
+ TALER_amount_ntoh (&amount_hbo,
+ amount);
+ return qconv_amount (cls,
+ &amount_hbo,
+ sizeof (struct TALER_Amount),
+ stmt,
+ off);
}
@@ -116,10 +115,10 @@ qconv_amount (void *cls,
* @param x pointer to the query parameter to pass
*/
struct GNUNET_SQ_QueryParam
-TALER_SQ_query_param_amount (const struct TALER_Amount *x)
+TALER_SQ_query_param_amount_nbo (const struct TALER_AmountNBO *x)
{
struct GNUNET_SQ_QueryParam res =
- { &qconv_amount, NULL, x, sizeof (*x), 2 };
+ { &qconv_amount_nbo, NULL, x, sizeof (*x), 2 };
return res;
}
@@ -199,7 +198,6 @@ qconv_round_time (void *cls,
{
const struct GNUNET_TIME_Absolute *at = data;
struct GNUNET_TIME_Absolute tmp;
- struct GNUNET_TIME_AbsoluteNBO buf;
(void) cls;
GNUNET_assert (sizeof (struct GNUNET_TIME_AbsoluteNBO) == data_len);
@@ -207,10 +205,9 @@ qconv_round_time (void *cls,
tmp = *at;
GNUNET_assert (GNUNET_OK ==
GNUNET_TIME_round_abs (&tmp));
- buf = GNUNET_TIME_absolute_hton (tmp);
if (SQLITE_OK != sqlite3_bind_int64 (stmt,
(int) off,
- (sqlite3_int64) buf.abs_value_us__))
+ (sqlite3_int64) at->abs_value_us))
return GNUNET_SYSERR;
return GNUNET_OK;
}
@@ -263,7 +260,7 @@ qconv_round_time_abs (void *cls,
GNUNET_TIME_round_abs (&tmp));
if (SQLITE_OK != sqlite3_bind_int64 (stmt,
(int) off,
- (sqlite3_int64) at->abs_value_us__))
+ (sqlite3_int64) tmp.abs_value_us))
return GNUNET_SYSERR;
return GNUNET_OK;
}
diff --git a/src/sq/sq_result_helper.c b/src/sq/sq_result_helper.c
index d313ed59..bc52913b 100644
--- a/src/sq/sq_result_helper.c
+++ b/src/sq/sq_result_helper.c
@@ -39,15 +39,15 @@
* #GNUNET_SYSERR if a result was invalid (non-existing field or NULL)
*/
static int
-extract_amount_nbo (void *cls,
- sqlite3_stmt *result,
- unsigned int column,
- size_t *dst_size,
- void *dst)
+extract_amount (void *cls,
+ sqlite3_stmt *result,
+ unsigned int column,
+ size_t *dst_size,
+ void *dst)
{
- struct TALER_AmountNBO *amount = dst;
+ struct TALER_Amount *amount = dst;
const char *currency = cls;
- if ((sizeof (struct TALER_AmountNBO) != *dst_size) ||
+ if ((sizeof (struct TALER_Amount) != *dst_size) ||
(SQLITE_INTEGER != sqlite3_column_type (result,
(int) column)) ||
(SQLITE_INTEGER != sqlite3_column_type (result,
@@ -56,11 +56,13 @@ extract_amount_nbo (void *cls,
GNUNET_break (0);
return GNUNET_SYSERR;
}
- GNUNET_strlcpy (amount->currency, currency, TALER_CURRENCY_LEN);
+ GNUNET_strlcpy (amount->currency,
+ currency,
+ TALER_CURRENCY_LEN);
amount->value = (uint64_t) sqlite3_column_int64 (result,
(int) column);
uint64_t frac = (uint64_t) sqlite3_column_int64 (result,
- column + 1);
+ (int) column + 1);
amount->fraction = (uint32_t) frac;
return GNUNET_YES;
}
@@ -74,14 +76,14 @@ extract_amount_nbo (void *cls,
* @return array entry for the result specification to use
*/
struct GNUNET_SQ_ResultSpec
-TALER_SQ_result_spec_amount_nbo (const char *currency,
- struct TALER_AmountNBO *amount)
+TALER_SQ_result_spec_amount (const char *currency,
+ struct TALER_Amount *amount)
{
struct GNUNET_SQ_ResultSpec res = {
- .conv = &extract_amount_nbo,
+ .conv = &extract_amount,
.cls = (void *) currency,
.dst = (void *) amount,
- .dst_size = sizeof (struct TALER_AmountNBO),
+ .dst_size = sizeof (struct TALER_Amount),
.num_params = 2
};
@@ -102,29 +104,27 @@ TALER_SQ_result_spec_amount_nbo (const char *currency,
* #GNUNET_SYSERR if a result was invalid (non-existing field or NULL)
*/
static int
-extract_amount (void *cls,
- sqlite3_stmt *result,
- unsigned int column,
- size_t *dst_size,
- void *dst)
+extract_amount_nbo (void *cls,
+ sqlite3_stmt *result,
+ unsigned int column,
+ size_t *dst_size,
+ void *dst)
{
- struct TALER_Amount *amount = dst;
- struct TALER_AmountNBO amount_nbo;
- if (GNUNET_YES == extract_amount_nbo (cls,
- result,
- column,
- dst_size,
- &amount_nbo))
- {
- TALER_amount_ntoh (amount,
- &amount_nbo);
- return GNUNET_YES;
- }
- else
+ struct TALER_AmountNBO *amount = dst;
+ struct TALER_Amount amount_hbo;
+ size_t amount_hbo_size = sizeof (struct TALER_Amount);
+ if (GNUNET_YES != extract_amount (cls,
+ result,
+ column,
+ &amount_hbo_size,
+ &amount_hbo))
{
+ GNUNET_break (0);
return GNUNET_SYSERR;
}
-
+ TALER_amount_hton (amount,
+ &amount_hbo);
+ return GNUNET_YES;
}
@@ -136,14 +136,14 @@ extract_amount (void *cls,
* @return array entry for the result specification to use
*/
struct GNUNET_SQ_ResultSpec
-TALER_SQ_result_spec_amount (const char *currency,
- struct TALER_Amount *amount)
+TALER_SQ_result_spec_amount_nbo (const char *currency,
+ struct TALER_AmountNBO *amount)
{
struct GNUNET_SQ_ResultSpec res = {
- .conv = &extract_amount,
+ .conv = &extract_amount_nbo,
.cls = (void *) currency,
.dst = (void *) amount,
- .dst_size = sizeof (struct TALER_Amount),
+ .dst_size = sizeof (struct TALER_AmountNBO),
.num_params = 2
};
@@ -264,7 +264,6 @@ extract_round_time (void *cls,
void *dst)
{
struct GNUNET_TIME_Absolute *udst = dst;
- struct GNUNET_TIME_AbsoluteNBO res;
struct GNUNET_TIME_Absolute tmp;
(void) cls;
@@ -280,9 +279,8 @@ extract_round_time (void *cls,
GNUNET_break (0);
return GNUNET_SYSERR;
}
- res.abs_value_us__ = sqlite3_column_int64 (result,
- (int) column);
- tmp = GNUNET_TIME_absolute_ntoh (res);
+ tmp.abs_value_us = sqlite3_column_int64 (result,
+ (int) column);
GNUNET_break (GNUNET_OK ==
GNUNET_TIME_round_abs (&tmp));
*udst = tmp;
@@ -333,7 +331,6 @@ extract_round_time_nbo (void *cls,
void *dst)
{
struct GNUNET_TIME_AbsoluteNBO *udst = dst;
- struct GNUNET_TIME_AbsoluteNBO res;
struct GNUNET_TIME_Absolute tmp;
(void) cls;
@@ -349,9 +346,8 @@ extract_round_time_nbo (void *cls,
GNUNET_break (0);
return GNUNET_SYSERR;
}
- res.abs_value_us__ = sqlite3_column_int64 (result,
- (int) column);
- tmp = GNUNET_TIME_absolute_ntoh (res);
+ tmp.abs_value_us = sqlite3_column_int64 (result,
+ (int) column);
GNUNET_break (GNUNET_OK ==
GNUNET_TIME_round_abs (&tmp));
*udst = GNUNET_TIME_absolute_hton (tmp);
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-exchange] 91/152: void basedb due to signature format change, (continued)
- [taler-exchange] 91/152: void basedb due to signature format change, gnunet, 2020/07/05
- [taler-exchange] 101/152: implement #6181, gnunet, 2020/07/05
- [taler-exchange] 106/152: more ecs, gnunet, 2020/07/05
- [taler-exchange] 103/152: modify TALER_EXCHANGE_deposits_get() API to avoid NULL pointers and need for deep copies, gnunet, 2020/07/05
- [taler-exchange] 108/152: implement #6181, gnunet, 2020/07/05
- [taler-exchange] 110/152: modify TALER_EXCHANGE_deposits_get() API to combine returned arguments into a struct (simplifies merchant later), gnunet, 2020/07/05
- [taler-exchange] 117/152: fix drop call, gnunet, 2020/07/05
- [taler-exchange] 116/152: update, gnunet, 2020/07/05
- [taler-exchange] 121/152: update ECs, gnunet, 2020/07/05
- [taler-exchange] 120/152: more ECs, gnunet, 2020/07/05
- [taler-exchange] 124/152: fixed endianness in taler_sq_lib,
gnunet <=
- [taler-exchange] 125/152: taler_error_codes.h auto generated from gnunet/gana.git as a submodule, gnunet, 2020/07/05
- [taler-exchange] 113/152: modify TALER_EXCHANGE_deposits_get() API to combine returned arguments into a struct (simplifies merchant later), gnunet, 2020/07/05
- [taler-exchange] 112/152: return fee as well, gnunet, 2020/07/05
- [taler-exchange] 64/152: update gana, gnunet, 2020/07/05
- [taler-exchange] 77/152: synchronize with latest GANA, gnunet, 2020/07/05
- [taler-exchange] 80/152: bump required version, gnunet, 2020/07/05
- [taler-exchange] 83/152: expand justifications / agree with append-only log, gnunet, 2020/07/05
- [taler-exchange] 82/152: minor typo, gnunet, 2020/07/05
- [taler-exchange] 84/152: fix typo, gnunet, 2020/07/05
- [taler-exchange] 87/152: v8 bump, gnunet, 2020/07/05