*/
static void
my_clean_query (void *cls,
- MYSQL_BIND *qbind)
+ MYSQL_BIND *qbind)
{
GNUNET_free (qbind[0].buffer);
}
const struct GNUNET_MY_QueryParam * qp,
MYSQL_BIND *qbind)
{
- const uint16_t *u_hbo = qp->data;
- uint16_t *u_nbo;
-
GNUNET_assert (1 == qp->num_params);
-
- u_nbo = GNUNET_new (uint16_t);
- if (NULL == u_nbo)
- return -1;
-
- *u_nbo = *u_hbo;
-
- qbind->buffer = (void *) u_nbo;
- qbind->buffer_length = sizeof(uint16_t);
+ qbind->buffer = (void *) qp->data;
+ qbind->buffer_length = sizeof (uint16_t);
qbind->buffer_type = MYSQL_TYPE_SHORT;
-
return 1;
}
{
struct GNUNET_MY_QueryParam res = {
.conv = &my_conv_uint16,
- .cleaner = &my_clean_query,
+ .cleaner = NULL,
.conv_cls = NULL,
.num_params = 1,
.data = x,
const struct GNUNET_MY_QueryParam *qp,
MYSQL_BIND *qbind)
{
- const uint32_t *u_hbo = qp->data;
- uint32_t * u_nbo;
-
GNUNET_assert (1 == qp->num_params);
-
- u_nbo = GNUNET_new (uint32_t);
-
- *u_nbo = *u_hbo;
-
- qbind->buffer = (void *) u_nbo;
+ qbind->buffer = (void *) qp->data;
qbind->buffer_length = sizeof(uint32_t);
qbind->buffer_type = MYSQL_TYPE_LONG;
{
struct GNUNET_MY_QueryParam res = {
.conv = &my_conv_uint32,
- .cleaner = &my_clean_query,
+ .cleaner = NULL,
.conv_cls = NULL,
.num_params = 1,
.data = x,
*/
static int
my_conv_uint64 (void *cls,
- const struct GNUNET_MY_QueryParam *qp,
- MYSQL_BIND * qbind)
+ const struct GNUNET_MY_QueryParam *qp,
+ MYSQL_BIND * qbind)
{
- const uint64_t * u_hbo = qp->data;
- uint64_t *u_nbo;
-
GNUNET_assert (1 == qp->num_params);
-
- u_nbo = GNUNET_new(uint64_t);
-
- *u_nbo = *u_hbo;
-
- qbind->buffer = (void *) u_nbo;
+ qbind->buffer = (void *) qp->data;
qbind->buffer_length = sizeof (uint64_t);
qbind->buffer_type = MYSQL_TYPE_LONGLONG;
-
return 1;
}
{
struct GNUNET_MY_QueryParam res = {
.conv = &my_conv_uint64,
- .cleaner = &my_clean_query,
+ .cleaner = NULL,
.conv_cls = NULL,
.num_params = 1,
.data = x,
}
-/* end of my_query_helper.c */
\ No newline at end of file
+/* end of my_query_helper.c */
if (NULL != *ptr)
{
GNUNET_free (*ptr);
- *ptr = NULL;
+ *ptr = NULL;
}
}
GNUNET_free (buf);
return GNUNET_SYSERR;
}
-
+
*pk = GNUNET_CRYPTO_rsa_public_key_decode (buf,
size);
GNUNET_free (buf);
*/
static int
post_extract_rsa_signature (void *cls,
- struct GNUNET_MY_ResultSpec *rs,
- MYSQL_STMT *stmt,
- unsigned int column,
- MYSQL_BIND *results)
+ struct GNUNET_MY_ResultSpec *rs,
+ MYSQL_STMT *stmt,
+ unsigned int column,
+ MYSQL_BIND *results)
{
struct GNUNET_CRYPTO_RsaSignature **sig = rs->dst;
void *buf;
/**
- * Extract data from a Mysql database @a result at row @a row
- *
- * @param cls closure
- * @param[in,out] rs
- * @param stmt the mysql statement that is being run
- * @param column the column that is being processed
- * @param[out] results
- * @return
- * #GNUNET_OK if all results could be extracted
- * #GNUNET_SYSERR if a result was invalid (non existing field or NULL)
- */
+ * Extract data from a Mysql database @a result at row @a row
+ *
+ * @param cls closure
+ * @param[in,out] rs
+ * @param stmt the mysql statement that is being run
+ * @param column the column that is being processed
+ * @param[out] results
+ * @return
+ * #GNUNET_OK if all results could be extracted
+ * #GNUNET_SYSERR if a result was invalid (non existing field or NULL)
+ */
static int
pre_extract_string (void * cls,
- struct GNUNET_MY_ResultSpec *rs,
- MYSQL_STMT *stmt,
- unsigned int column,
- MYSQL_BIND *results)
+ struct GNUNET_MY_ResultSpec *rs,
+ MYSQL_STMT *stmt,
+ unsigned int column,
+ MYSQL_BIND *results)
{
results[0].buffer = NULL;
results[0].buffer_length = 0;
/**
- * Check size of extracted fixed size data from a Mysql database @a
- *
- * @param cls closure
- * @param[in,out] rs
- * @param stmt the mysql statement that is being run
- * @param column the column that is being processed
- * @param[out] results
- * @return
- * #GNUNET_OK if all results could be extracted
- * #GNUNET_SYSERR if a result was invalid (non existing field or NULL)
- */
+ * Check size of extracted fixed size data from a Mysql database @a
+ *
+ * @param cls closure
+ * @param[in,out] rs
+ * @param stmt the mysql statement that is being run
+ * @param column the column that is being processed
+ * @param[out] results
+ * @return
+ * #GNUNET_OK if all results could be extracted
+ * #GNUNET_SYSERR if a result was invalid (non existing field or NULL)
+ */
static int
post_extract_string (void * cls,
- struct GNUNET_MY_ResultSpec *rs,
- MYSQL_STMT *stmt,
- unsigned int column,
- MYSQL_BIND *results)
+ struct GNUNET_MY_ResultSpec *rs,
+ MYSQL_STMT *stmt,
+ unsigned int column,
+ MYSQL_BIND *results)
{
- size_t size;
-
- size = (size_t) rs->mysql_bind_output_length;
- char buf[size];
+ size_t size = (size_t) rs->mysql_bind_output_length;
+ char *buf;
if (rs->mysql_bind_output_length != size)
return GNUNET_SYSERR;
+ buf = GNUNET_malloc (size);
results[0].buffer = buf;
results[0].buffer_length = size;
results[0].buffer_type = MYSQL_TYPE_BLOB;
GNUNET_free (buf);
return GNUNET_SYSERR;
}
-
rs->dst = buf;
-
return GNUNET_OK;
}
*/
static int
pre_extract_uint16 (void *cls,
- struct GNUNET_MY_ResultSpec *rs,
- MYSQL_STMT *stmt,
- unsigned int column,
- MYSQL_BIND *results)
+ struct GNUNET_MY_ResultSpec *rs,
+ MYSQL_STMT *stmt,
+ unsigned int column,
+ MYSQL_BIND *results)
{
- results[0].buffer = (char *)rs->dst;
+ results[0].buffer = rs->dst;
results[0].buffer_length = rs->dst_size;
results[0].length = &rs->mysql_bind_output_length;
results[0].buffer_type = MYSQL_TYPE_SHORT;
*/
static int
post_extract_uint16 (void *cls,
- struct GNUNET_MY_ResultSpec *rs,
- MYSQL_STMT *stmt,
- unsigned int column,
- MYSQL_BIND *results)
+ struct GNUNET_MY_ResultSpec *rs,
+ MYSQL_STMT *stmt,
+ unsigned int column,
+ MYSQL_BIND *results)
{
if (rs->dst_size != rs->mysql_bind_output_length)
return GNUNET_SYSERR;
*/
static int
pre_extract_uint32 (void *cls,
- struct GNUNET_MY_ResultSpec *rs,
- MYSQL_STMT *stmt,
- unsigned int column,
- MYSQL_BIND *results)
+ struct GNUNET_MY_ResultSpec *rs,
+ MYSQL_STMT *stmt,
+ unsigned int column,
+ MYSQL_BIND *results)
{
- results[0].buffer = (int *)rs->dst;
+ results[0].buffer = rs->dst;
results[0].buffer_length = rs->dst_size;
results[0].length = &rs->mysql_bind_output_length;
results[0].buffer_type = MYSQL_TYPE_LONG;
*/
static int
post_extract_uint32 (void *cls,
- struct GNUNET_MY_ResultSpec *rs,
- MYSQL_STMT * stmt,
- unsigned int column,
- MYSQL_BIND *results)
+ struct GNUNET_MY_ResultSpec *rs,
+ MYSQL_STMT * stmt,
+ unsigned int column,
+ MYSQL_BIND *results)
{
if (rs->dst_size != rs->mysql_bind_output_length)
return GNUNET_SYSERR;
/**
- * Extract data from a MYSQL database @a result at row @a row
- *
- * @param cls closure
- * @param[in,out] rs
- * @param stmt the mysql statement that is being run
- * @param column the column that is being processed
- * @param[out] results
- * @return
- * #GNUNET_OK if all results could be extracted
- * #GNUNET_SYSERR if a result was invalid (non-existing field or NULL)
- */
+ * Extract data from a MYSQL database @a result at row @a row
+ *
+ * @param cls closure
+ * @param[in,out] rs
+ * @param stmt the mysql statement that is being run
+ * @param column the column that is being processed
+ * @param[out] results
+ * @return
+ * #GNUNET_OK if all results could be extracted
+ * #GNUNET_SYSERR if a result was invalid (non-existing field or NULL)
+ */
static int
pre_extract_uint64 (void *cls,
- struct GNUNET_MY_ResultSpec *rs,
- MYSQL_STMT *stmt,
- unsigned int column,
- MYSQL_BIND *results)
+ struct GNUNET_MY_ResultSpec *rs,
+ MYSQL_STMT *stmt,
+ unsigned int column,
+ MYSQL_BIND *results)
{
results[0].buffer = rs->dst;
results[0].buffer_length = rs->dst_size;
/**
- * Check size of extracted fixe size data from a Mysql database
- *
- * @param cls closure
- * @param[in,out] rs
- * @param stmt the mysql statement that is being run
- * @param column the column that is being processed
- * @param[out] results
- * @return
- * #GNUNET_OK if all results could be extracted
- * #GNUNET_SYSERR if a result was invalid (non-existing field or NULL)
- */
+ * Check size of extracted fixe size data from a Mysql database
+ *
+ * @param cls closure
+ * @param[in,out] rs
+ * @param stmt the mysql statement that is being run
+ * @param column the column that is being processed
+ * @param[out] results
+ * @return
+ * #GNUNET_OK if all results could be extracted
+ * #GNUNET_SYSERR if a result was invalid (non-existing field or NULL)
+ */
static int
post_extract_uint64 (void *cls,
- struct GNUNET_MY_ResultSpec *rs,
- MYSQL_STMT *stmt,
- unsigned int column,
- MYSQL_BIND *results)
+ struct GNUNET_MY_ResultSpec *rs,
+ MYSQL_STMT *stmt,
+ unsigned int column,
+ MYSQL_BIND *results)
{
if (rs->dst_size != rs->mysql_bind_output_length)
return GNUNET_SYSERR;
/**
- * uint64_t expected.
- *
- * @param[out] u64 where to store the result
- * @return array entry for the result specification to use
- */
+ * uint64_t expected.
+ *
+ * @param[out] u64 where to store the result
+ * @return array entry for the result specification to use
+ */
struct GNUNET_MY_ResultSpec
GNUNET_MY_result_spec_uint64 (uint64_t *u64)
{
pub = GNUNET_CRYPTO_rsa_private_key_get_public (priv);
memset (&hmsg, 42, sizeof(hmsg));
sig = GNUNET_CRYPTO_rsa_sign_fdh (priv,
- &hmsg);
+ &hmsg);
u16 = 16;
u32 = 32;
- u64 = 64;
+ u64 = UINT64_MAX;
memset (&hc, 0, sizeof(hc));
memset (&hc2, 0, sizeof(hc2));
- statements_handle_insert = GNUNET_MYSQL_statement_prepare (context,
- "INSERT INTO test_my2 ("
- " pub"
- ",sig"
- ",abs_time"
- ",forever"
- ",abs_time_nbo"
- ",hash"
- ",vsize"
- ",str"
- ",u16"
- ",u32"
- ",u64"
- ") VALUES "
- "( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
+ statements_handle_insert
+ = GNUNET_MYSQL_statement_prepare (context,
+ "INSERT INTO test_my2 ("
+ " pub"
+ ",sig"
+ ",abs_time"
+ ",forever"
+ ",abs_time_nbo"
+ ",hash"
+ ",vsize"
+ ",str"
+ ",u16"
+ ",u32"
+ ",u64"
+ ") VALUES "
+ "( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
if (NULL == statements_handle_insert)
{
return 1;
}
- statements_handle_select = GNUNET_MYSQL_statement_prepare (context,
- "SELECT"
- " pub"
- ",sig"
- ",abs_time"
- ",forever"
- ",hash"
- ",vsize"
- ",str"
- ",u16"
- ",u32"
- ",u64"
- " FROM test_my2");
+ statements_handle_select
+ = GNUNET_MYSQL_statement_prepare (context,
+ "SELECT"
+ " pub"
+ ",sig"
+ ",abs_time"
+ ",forever"
+ ",hash"
+ ",vsize"
+ ",str"
+ ",u16"
+ ",u32"
+ ",u64"
+ " FROM test_my2");
if (NULL == statements_handle_select)
{
msg2,
msg2_len));
-GNUNET_break (strlen (msg3) == strlen(msg4));
-GNUNET_break (0 ==
+ GNUNET_break (strlen (msg3) == strlen(msg4));
+ GNUNET_break (0 ==
strcmp (msg3,
msg4));
GNUNET_break (16 == u162);
GNUNET_break (32 == u322);
- GNUNET_break (64 == u642);
+ GNUNET_break (UINT64_MAX == u642);
GNUNET_MY_cleanup_result (results_select);
GNUNET_CRYPTO_rsa_signature_free (sig);
GNUNET_CRYPTO_rsa_private_key_free (priv);
- GNUNET_CRYPTO_rsa_public_key_free (pub);
-
+ GNUNET_CRYPTO_rsa_public_key_free (pub);
+
if (GNUNET_OK != ret)
return 1;
int
main (int argc, const char * const argv[])
{
- struct GNUNET_CONFIGURATION_Handle *config = NULL;
- struct GNUNET_MYSQL_Context *context = NULL;
+ struct GNUNET_CONFIGURATION_Handle *config;
+ struct GNUNET_MYSQL_Context *context;
int ret;
GNUNET_log_setup ("test-my",