integrate new REST calls, add timeout to helper invocations
This commit is contained in:
parent
2a3de6555a
commit
09abf5e7e0
@ -606,8 +606,6 @@ handle_post_management (const struct TEH_RequestHandler *rh,
|
|||||||
&exchange_pub,
|
&exchange_pub,
|
||||||
root);
|
root);
|
||||||
}
|
}
|
||||||
#if FIXME
|
|
||||||
/* not yet implemented! */
|
|
||||||
if (0 == strcmp (args[0],
|
if (0 == strcmp (args[0],
|
||||||
"keys"))
|
"keys"))
|
||||||
{
|
{
|
||||||
@ -619,7 +617,6 @@ handle_post_management (const struct TEH_RequestHandler *rh,
|
|||||||
return TEH_handler_management_post_keys (connection,
|
return TEH_handler_management_post_keys (connection,
|
||||||
root);
|
root);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
if (0 == strcmp (args[0],
|
if (0 == strcmp (args[0],
|
||||||
"wire"))
|
"wire"))
|
||||||
{
|
{
|
||||||
@ -808,7 +805,7 @@ handle_mhd_request (void *cls,
|
|||||||
{
|
{
|
||||||
.url = "keys",
|
.url = "keys",
|
||||||
.method = MHD_HTTP_METHOD_GET,
|
.method = MHD_HTTP_METHOD_GET,
|
||||||
.handler.get = &TEH_handler_keys,
|
.handler.get = &TEH_handler_keys, // FIXME => TEH_keys_get_handler
|
||||||
},
|
},
|
||||||
/* Requests for wiring information */
|
/* Requests for wiring information */
|
||||||
{
|
{
|
||||||
|
@ -1700,7 +1700,7 @@ krd_search_comparator (const void *key,
|
|||||||
|
|
||||||
|
|
||||||
MHD_RESULT
|
MHD_RESULT
|
||||||
TEH_handler_keys_NEW (const struct TEH_RequestHandler *rh,
|
TEH_keys_get_handler (const struct TEH_RequestHandler *rh,
|
||||||
struct MHD_Connection *connection,
|
struct MHD_Connection *connection,
|
||||||
const char *const args[])
|
const char *const args[])
|
||||||
{
|
{
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "taler_util.h"
|
#include "taler_util.h"
|
||||||
#include "taler_signatures.h"
|
#include "taler_signatures.h"
|
||||||
#include "taler-helper-crypto-rsa.h"
|
#include "taler-helper-crypto-rsa.h"
|
||||||
|
#include <poll.h>
|
||||||
|
|
||||||
|
|
||||||
struct TALER_CRYPTO_DenominationHelper
|
struct TALER_CRYPTO_DenominationHelper
|
||||||
@ -465,6 +466,35 @@ TALER_CRYPTO_helper_denom_sign (
|
|||||||
const struct GNUNET_MessageHeader *hdr
|
const struct GNUNET_MessageHeader *hdr
|
||||||
= (const struct GNUNET_MessageHeader *) buf;
|
= (const struct GNUNET_MessageHeader *) buf;
|
||||||
|
|
||||||
|
{
|
||||||
|
/* wait for reply with 5s timeout */
|
||||||
|
struct pollfd pfd = {
|
||||||
|
.fd = dh->sock,
|
||||||
|
.events = POLLIN
|
||||||
|
};
|
||||||
|
sigset_t sigmask;
|
||||||
|
struct timespec ts = {
|
||||||
|
.tv_sec = 5
|
||||||
|
};
|
||||||
|
|
||||||
|
GNUNET_assert (0 == sigemptyset (&sigmask));
|
||||||
|
GNUNET_assert (0 == sigaddset (&sigmask, SIGTERM));
|
||||||
|
GNUNET_assert (0 == sigaddset (&sigmask, SIGHUP));
|
||||||
|
ret = ppoll (&pfd,
|
||||||
|
1,
|
||||||
|
&ts,
|
||||||
|
&sigmask);
|
||||||
|
if ( (-1 == ret) &&
|
||||||
|
(EINTR != errno) )
|
||||||
|
GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR,
|
||||||
|
"ppoll");
|
||||||
|
if (0 >= ret)
|
||||||
|
{
|
||||||
|
do_disconnect (dh);
|
||||||
|
*ec = TALER_EC_GENERIC_TIMEOUT;
|
||||||
|
return ds;
|
||||||
|
}
|
||||||
|
}
|
||||||
ret = recv (dh->sock,
|
ret = recv (dh->sock,
|
||||||
buf,
|
buf,
|
||||||
sizeof (buf),
|
sizeof (buf),
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "taler_util.h"
|
#include "taler_util.h"
|
||||||
#include "taler_signatures.h"
|
#include "taler_signatures.h"
|
||||||
#include "taler-helper-crypto-eddsa.h"
|
#include "taler-helper-crypto-eddsa.h"
|
||||||
|
#include <poll.h>
|
||||||
|
|
||||||
|
|
||||||
struct TALER_CRYPTO_ExchangeSignHelper
|
struct TALER_CRYPTO_ExchangeSignHelper
|
||||||
@ -421,6 +422,34 @@ TALER_CRYPTO_helper_esign_sign_ (
|
|||||||
const struct GNUNET_MessageHeader *hdr
|
const struct GNUNET_MessageHeader *hdr
|
||||||
= (const struct GNUNET_MessageHeader *) buf;
|
= (const struct GNUNET_MessageHeader *) buf;
|
||||||
|
|
||||||
|
{
|
||||||
|
/* wait for reply with 5s timeout */
|
||||||
|
struct pollfd pfd = {
|
||||||
|
.fd = esh->sock,
|
||||||
|
.events = POLLIN
|
||||||
|
};
|
||||||
|
sigset_t sigmask;
|
||||||
|
struct timespec ts = {
|
||||||
|
.tv_sec = 5
|
||||||
|
};
|
||||||
|
|
||||||
|
GNUNET_assert (0 == sigemptyset (&sigmask));
|
||||||
|
GNUNET_assert (0 == sigaddset (&sigmask, SIGTERM));
|
||||||
|
GNUNET_assert (0 == sigaddset (&sigmask, SIGHUP));
|
||||||
|
ret = ppoll (&pfd,
|
||||||
|
1,
|
||||||
|
&ts,
|
||||||
|
&sigmask);
|
||||||
|
if ( (-1 == ret) &&
|
||||||
|
(EINTR != errno) )
|
||||||
|
GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR,
|
||||||
|
"ppoll");
|
||||||
|
if (0 >= ret)
|
||||||
|
{
|
||||||
|
do_disconnect (esh);
|
||||||
|
return TALER_EC_GENERIC_TIMEOUT;
|
||||||
|
}
|
||||||
|
}
|
||||||
ret = recv (esh->sock,
|
ret = recv (esh->sock,
|
||||||
buf,
|
buf,
|
||||||
sizeof (buf),
|
sizeof (buf),
|
||||||
|
Loading…
Reference in New Issue
Block a user