fix misc small bugs
This commit is contained in:
parent
841950b910
commit
49da00cc2b
@ -115,6 +115,9 @@ handle_admin_add_incoming_finished (void *cls,
|
|||||||
json_error_t error;
|
json_error_t error;
|
||||||
json_t *json;
|
json_t *json;
|
||||||
|
|
||||||
|
fprintf (stderr,
|
||||||
|
"FINISHED AAI request\n");
|
||||||
|
|
||||||
json = NULL;
|
json = NULL;
|
||||||
if (0 == aai->eno)
|
if (0 == aai->eno)
|
||||||
{
|
{
|
||||||
@ -203,9 +206,6 @@ admin_add_incoming_download_cb (char *bufptr,
|
|||||||
size_t msize;
|
size_t msize;
|
||||||
void *buf;
|
void *buf;
|
||||||
|
|
||||||
fprintf (stderr,
|
|
||||||
"Downloading %u bytes from aai\n",
|
|
||||||
(unsigned int) (nitems * size));
|
|
||||||
if (0 == size * nitems)
|
if (0 == size * nitems)
|
||||||
{
|
{
|
||||||
/* Nothing (left) to do */
|
/* Nothing (left) to do */
|
||||||
|
@ -605,7 +605,7 @@ context_task (void *cls,
|
|||||||
rs = GNUNET_NETWORK_fdset_create ();
|
rs = GNUNET_NETWORK_fdset_create ();
|
||||||
GNUNET_NETWORK_fdset_copy_native (rs,
|
GNUNET_NETWORK_fdset_copy_native (rs,
|
||||||
&read_fd_set,
|
&read_fd_set,
|
||||||
max_fd);
|
max_fd + 1);
|
||||||
ws = GNUNET_NETWORK_fdset_create ();
|
ws = GNUNET_NETWORK_fdset_create ();
|
||||||
GNUNET_NETWORK_fdset_copy_native (ws,
|
GNUNET_NETWORK_fdset_copy_native (ws,
|
||||||
&write_fd_set,
|
&write_fd_set,
|
||||||
|
@ -57,7 +57,7 @@ check_permissions (struct MHD_Connection *connection)
|
|||||||
{
|
{
|
||||||
const struct sockaddr_in *sin = (const struct sockaddr_in *) addr;
|
const struct sockaddr_in *sin = (const struct sockaddr_in *) addr;
|
||||||
|
|
||||||
if (INADDR_LOOPBACK != sin->sin_addr.s_addr)
|
if (INADDR_LOOPBACK != ntohl (sin->sin_addr.s_addr))
|
||||||
{
|
{
|
||||||
res = TMH_RESPONSE_reply_permission_denied (connection,
|
res = TMH_RESPONSE_reply_permission_denied (connection,
|
||||||
"/admin/ only allowed via loopback");
|
"/admin/ only allowed via loopback");
|
||||||
@ -114,17 +114,16 @@ TMH_ADMIN_handler_admin_add_incoming (struct TMH_RequestHandler *rh,
|
|||||||
json_t *root;
|
json_t *root;
|
||||||
struct TMH_PARSE_FieldSpecification spec[] = {
|
struct TMH_PARSE_FieldSpecification spec[] = {
|
||||||
TMH_PARSE_MEMBER_FIXED ("reserve_pub", &reserve_pub),
|
TMH_PARSE_MEMBER_FIXED ("reserve_pub", &reserve_pub),
|
||||||
TMH_PARSE_MEMBER_AMOUNT ("amount", &amount),
|
TMH_PARSE_member_amount ("amount", &amount),
|
||||||
TMH_PARSE_MEMBER_TIME_ABS ("execution_date", &at),
|
TMH_PARSE_member_time_abs ("execution_date", &at),
|
||||||
TMH_PARSE_MEMBER_OBJECT ("wire", &wire),
|
TMH_PARSE_member_object ("wire", &wire),
|
||||||
TMH_PARSE_MEMBER_END
|
TMH_PARSE_MEMBER_END
|
||||||
};
|
};
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
res = check_permissions (connection);
|
res = check_permissions (connection);
|
||||||
if (GNUNET_OK != res)
|
if (GNUNET_OK != res)
|
||||||
return (GNUNET_OK == res) ? MHD_YES : MHD_NO;
|
return (GNUNET_NO == res) ? MHD_YES : MHD_NO;
|
||||||
|
|
||||||
res = TMH_PARSE_post_json (connection,
|
res = TMH_PARSE_post_json (connection,
|
||||||
connection_cls,
|
connection_cls,
|
||||||
upload_data,
|
upload_data,
|
||||||
|
@ -147,8 +147,8 @@ parse_and_handle_deposit_request (struct MHD_Connection *connection,
|
|||||||
TMH_PARSE_MEMBER_FIXED ("H_wire", &deposit.h_wire),
|
TMH_PARSE_MEMBER_FIXED ("H_wire", &deposit.h_wire),
|
||||||
TMH_PARSE_MEMBER_FIXED ("coin_sig", &deposit.csig),
|
TMH_PARSE_MEMBER_FIXED ("coin_sig", &deposit.csig),
|
||||||
TMH_PARSE_MEMBER_FIXED ("transaction_id", &deposit.transaction_id),
|
TMH_PARSE_MEMBER_FIXED ("transaction_id", &deposit.transaction_id),
|
||||||
TMH_PARSE_MEMBER_TIME_ABS ("timestamp", &deposit.timestamp),
|
TMH_PARSE_member_time_abs ("timestamp", &deposit.timestamp),
|
||||||
TMH_PARSE_MEMBER_TIME_ABS ("refund_deadline", &deposit.refund_deadline),
|
TMH_PARSE_member_time_abs ("refund_deadline", &deposit.refund_deadline),
|
||||||
TMH_PARSE_MEMBER_END
|
TMH_PARSE_MEMBER_END
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -531,6 +531,7 @@ TMH_PARSE_navigate_json (struct MHD_Connection *connection,
|
|||||||
|
|
||||||
if ( (-1 != typ) && (json_typeof (root) != typ))
|
if ( (-1 != typ) && (json_typeof (root) != typ))
|
||||||
{
|
{
|
||||||
|
*r_json = NULL;
|
||||||
ret = (MHD_YES ==
|
ret = (MHD_YES ==
|
||||||
TMH_RESPONSE_reply_json_pack (connection,
|
TMH_RESPONSE_reply_json_pack (connection,
|
||||||
MHD_HTTP_BAD_REQUEST,
|
MHD_HTTP_BAD_REQUEST,
|
||||||
@ -543,6 +544,7 @@ TMH_PARSE_navigate_json (struct MHD_Connection *connection,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
*r_json = root;
|
*r_json = root;
|
||||||
|
json_incref ((json_t *) root);
|
||||||
ret = GNUNET_OK;
|
ret = GNUNET_OK;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -793,7 +795,7 @@ TMH_PARSE_json_data (struct MHD_Connection *connection,
|
|||||||
TMH_PARSE_JNC_FIELD,
|
TMH_PARSE_JNC_FIELD,
|
||||||
spec[i].field_name,
|
spec[i].field_name,
|
||||||
TMH_PARSE_JNC_RET_AMOUNT,
|
TMH_PARSE_JNC_RET_AMOUNT,
|
||||||
&spec[i].destination);
|
spec[i].destination);
|
||||||
break;
|
break;
|
||||||
case TMH_PARSE_JNC_RET_TIME_ABSOLUTE:
|
case TMH_PARSE_JNC_RET_TIME_ABSOLUTE:
|
||||||
GNUNET_assert (sizeof (struct GNUNET_TIME_Absolute) ==
|
GNUNET_assert (sizeof (struct GNUNET_TIME_Absolute) ==
|
||||||
@ -803,7 +805,7 @@ TMH_PARSE_json_data (struct MHD_Connection *connection,
|
|||||||
TMH_PARSE_JNC_FIELD,
|
TMH_PARSE_JNC_FIELD,
|
||||||
spec[i].field_name,
|
spec[i].field_name,
|
||||||
TMH_PARSE_JNC_RET_TIME_ABSOLUTE,
|
TMH_PARSE_JNC_RET_TIME_ABSOLUTE,
|
||||||
&spec[i].destination);
|
spec[i].destination);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1049,5 +1051,54 @@ TMH_PARSE_amount_json (struct MHD_Connection *connection,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate line in parser specification for JSON object value.
|
||||||
|
*
|
||||||
|
* @param field name of the field
|
||||||
|
* @param ptraddr address of pointer to JSON to initialize
|
||||||
|
* @return corresponding field spec
|
||||||
|
*/
|
||||||
|
struct TMH_PARSE_FieldSpecification
|
||||||
|
TMH_PARSE_member_object (const char *field,
|
||||||
|
json_t **jsonp)
|
||||||
|
{
|
||||||
|
struct TMH_PARSE_FieldSpecification ret =
|
||||||
|
{ field, (void **) jsonp, 0, 0, TMH_PARSE_JNC_RET_TYPED_JSON, JSON_OBJECT };
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate line in parser specification for an absolute time.
|
||||||
|
*
|
||||||
|
* @param field name of the field
|
||||||
|
* @param[out] atime time to initialize
|
||||||
|
*/
|
||||||
|
struct TMH_PARSE_FieldSpecification
|
||||||
|
TMH_PARSE_member_time_abs (const char *field,
|
||||||
|
struct GNUNET_TIME_Absolute *atime)
|
||||||
|
{
|
||||||
|
struct TMH_PARSE_FieldSpecification ret =
|
||||||
|
{ field, atime, sizeof(struct GNUNET_TIME_Absolute), 0, TMH_PARSE_JNC_RET_TIME_ABSOLUTE, 0 };
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate line in parser specification for an amount.
|
||||||
|
*
|
||||||
|
* @param field name of the field
|
||||||
|
* @param amount a `struct TALER_Amount *` to initialize
|
||||||
|
* @return corresponding field spec
|
||||||
|
*/
|
||||||
|
struct TMH_PARSE_FieldSpecification
|
||||||
|
TMH_PARSE_member_amount (const char *field,
|
||||||
|
struct TALER_Amount *amount)
|
||||||
|
{
|
||||||
|
struct TMH_PARSE_FieldSpecification ret =
|
||||||
|
{ field, amount, sizeof(struct TALER_Amount), 0, TMH_PARSE_JNC_RET_AMOUNT, 0 };
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* end of taler-mint-httpd_parsing.c */
|
/* end of taler-mint-httpd_parsing.c */
|
||||||
|
@ -260,13 +260,18 @@ TMH_PARSE_release_data (struct TMH_PARSE_FieldSpecification *spec);
|
|||||||
*/
|
*/
|
||||||
#define TMH_PARSE_MEMBER_ARRAY(field,ptraddr) { field, ptraddr, 0, 0, TMH_PARSE_JNC_RET_TYPED_JSON, JSON_ARRAY }
|
#define TMH_PARSE_MEMBER_ARRAY(field,ptraddr) { field, ptraddr, 0, 0, TMH_PARSE_JNC_RET_TYPED_JSON, JSON_ARRAY }
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate line in parser specification for JSON object value.
|
* Generate line in parser specification for JSON object value.
|
||||||
*
|
*
|
||||||
* @param field name of the field
|
* @param field name of the field
|
||||||
* @param ptraddr address of pointer to initialize (a `void **`)
|
* @param ptraddr address of pointer to JSON to initialize
|
||||||
|
* @return corresponding field spec
|
||||||
*/
|
*/
|
||||||
#define TMH_PARSE_MEMBER_OBJECT(field,ptraddr) { field, ptraddr, 0, 0, TMH_PARSE_JNC_RET_TYPED_JSON, JSON_OBJECT }
|
struct TMH_PARSE_FieldSpecification
|
||||||
|
TMH_PARSE_member_object (const char *field,
|
||||||
|
json_t **jsonp);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate line in parser specification for RSA public key.
|
* Generate line in parser specification for RSA public key.
|
||||||
@ -284,21 +289,30 @@ TMH_PARSE_release_data (struct TMH_PARSE_FieldSpecification *spec);
|
|||||||
*/
|
*/
|
||||||
#define TMH_PARSE_MEMBER_DENOMINATION_SIGNATURE(field,ptrsig) { field, ptrsig, 0, 0, TMH_PARSE_JNC_RET_RSA_SIGNATURE, 0 }
|
#define TMH_PARSE_MEMBER_DENOMINATION_SIGNATURE(field,ptrsig) { field, ptrsig, 0, 0, TMH_PARSE_JNC_RET_RSA_SIGNATURE, 0 }
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate line in parser specification for an amount.
|
* Generate line in parser specification for an amount.
|
||||||
*
|
*
|
||||||
* @param field name of the field
|
* @param field name of the field
|
||||||
* @param amount a `struct TALER_Amount *` to initialize
|
* @param[out] amount a `struct TALER_Amount *` to initialize
|
||||||
|
* @return corresponding field spec
|
||||||
*/
|
*/
|
||||||
#define TMH_PARSE_MEMBER_AMOUNT(field,amount) { field, amount, sizeof(*amount), 0, TMH_PARSE_JNC_RET_AMOUNT, 0 }
|
struct TMH_PARSE_FieldSpecification
|
||||||
|
TMH_PARSE_member_amount (const char *field,
|
||||||
|
struct TALER_Amount *amount);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate line in parser specification for an absolute time.
|
* Generate line in parser specification for an absolute time.
|
||||||
*
|
*
|
||||||
* @param field name of the field
|
* @param field name of the field
|
||||||
* @param atime a `struct GNUNET_TIME_Absolute *` to initialize
|
* @param[out] atime time to initialize
|
||||||
|
* @return corresponding field spec
|
||||||
*/
|
*/
|
||||||
#define TMH_PARSE_MEMBER_TIME_ABS(field,atime) { field, atime, sizeof(*atime), 0, TMH_PARSE_JNC_RET_TIME_ABSOLUTE, 0 }
|
struct TMH_PARSE_FieldSpecification
|
||||||
|
TMH_PARSE_member_time_abs (const char *field,
|
||||||
|
struct GNUNET_TIME_Absolute *atime);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -177,7 +177,7 @@ get_coin_public_info (struct MHD_Connection *connection,
|
|||||||
TMH_PARSE_MEMBER_DENOMINATION_SIGNATURE ("denom_sig", &sig.rsa_signature),
|
TMH_PARSE_MEMBER_DENOMINATION_SIGNATURE ("denom_sig", &sig.rsa_signature),
|
||||||
TMH_PARSE_MEMBER_DENOMINATION_PUBLIC_KEY ("denom_pub", &pk.rsa_public_key),
|
TMH_PARSE_MEMBER_DENOMINATION_PUBLIC_KEY ("denom_pub", &pk.rsa_public_key),
|
||||||
TMH_PARSE_MEMBER_FIXED ("confirm_sig", &melt_sig),
|
TMH_PARSE_MEMBER_FIXED ("confirm_sig", &melt_sig),
|
||||||
TMH_PARSE_MEMBER_AMOUNT ("value_with_fee", &amount),
|
TMH_PARSE_member_amount ("value_with_fee", &amount),
|
||||||
TMH_PARSE_MEMBER_END
|
TMH_PARSE_MEMBER_END
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -50,11 +50,20 @@ TMH_RESPONSE_reply_json (struct MHD_Connection *connection,
|
|||||||
resp = MHD_create_response_from_buffer (strlen (json_str), json_str,
|
resp = MHD_create_response_from_buffer (strlen (json_str), json_str,
|
||||||
MHD_RESPMEM_MUST_FREE);
|
MHD_RESPMEM_MUST_FREE);
|
||||||
if (NULL == resp)
|
if (NULL == resp)
|
||||||
|
{
|
||||||
|
GNUNET_break (0);
|
||||||
return MHD_NO;
|
return MHD_NO;
|
||||||
|
}
|
||||||
(void) MHD_add_response_header (resp,
|
(void) MHD_add_response_header (resp,
|
||||||
MHD_HTTP_HEADER_CONTENT_TYPE,
|
MHD_HTTP_HEADER_CONTENT_TYPE,
|
||||||
"application/json");
|
"application/json");
|
||||||
ret = MHD_queue_response (connection, response_code, resp);
|
ret = MHD_queue_response (connection,
|
||||||
|
response_code,
|
||||||
|
resp);
|
||||||
|
fprintf (stderr,
|
||||||
|
"Queued response %u (%d)\n",
|
||||||
|
response_code,
|
||||||
|
ret);
|
||||||
MHD_destroy_response (resp);
|
MHD_destroy_response (resp);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -84,7 +93,10 @@ TMH_RESPONSE_reply_json_pack (struct MHD_Connection *connection,
|
|||||||
json = json_vpack_ex (NULL, 0, fmt, argp);
|
json = json_vpack_ex (NULL, 0, fmt, argp);
|
||||||
va_end (argp);
|
va_end (argp);
|
||||||
if (NULL == json)
|
if (NULL == json)
|
||||||
|
{
|
||||||
|
GNUNET_break (0);
|
||||||
return MHD_NO;
|
return MHD_NO;
|
||||||
|
}
|
||||||
ret = TMH_RESPONSE_reply_json (connection,
|
ret = TMH_RESPONSE_reply_json (connection,
|
||||||
json,
|
json,
|
||||||
response_code);
|
response_code);
|
||||||
|
Loading…
Reference in New Issue
Block a user