summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-01-06 10:07:12 +0100
committerChristian Grothoff <christian@grothoff.org>2021-01-06 10:07:12 +0100
commite6f44e22aca3e6aecb5f74e4c32ee347857701c2 (patch)
tree983ec8dacc21a625c5d2ad51871fd397c51f4107 /src/util
parentad3d0a899793f22e717a97f5c9b10cb63f702d2d (diff)
downloadexchange-e6f44e22aca3e6aecb5f74e4c32ee347857701c2.tar.gz
exchange-e6f44e22aca3e6aecb5f74e4c32ee347857701c2.tar.bz2
exchange-e6f44e22aca3e6aecb5f74e4c32ee347857701c2.zip
use blocking sendto() call to possibly eliminate need for nanosleep()
Diffstat (limited to 'src/util')
-rw-r--r--src/util/taler-helper-crypto-eddsa.c15
-rw-r--r--src/util/taler-helper-crypto-rsa.c15
2 files changed, 16 insertions, 14 deletions
diff --git a/src/util/taler-helper-crypto-eddsa.c b/src/util/taler-helper-crypto-eddsa.c
index 8e05302c8..7839ac841 100644
--- a/src/util/taler-helper-crypto-eddsa.c
+++ b/src/util/taler-helper-crypto-eddsa.c
@@ -450,18 +450,19 @@ transmit (const struct sockaddr_un *addr,
socklen_t addr_size,
const struct GNUNET_MessageHeader *hdr)
{
- ssize_t ret;
-
for (unsigned int i = 0; i<100; i++)
{
- ret = GNUNET_NETWORK_socket_sendto (unix_sock,
- hdr,
- ntohs (hdr->size),
- (const struct sockaddr *) addr,
- addr_size);
+ ssize_t ret = sendto (GNUNET_NETWORK_get_fd (unix_sock),
+ hdr,
+ ntohs (hdr->size),
+ 0 /* no flags => blocking! */,
+ (const struct sockaddr *) addr,
+ addr_size);
if ( (-1 == ret) &&
(EAGAIN == errno) )
{
+ /* _Maybe_ with blocking sendto(), this should no
+ longer be needed; still keeping it just in case. */
/* Wait a bit, in case client is just too slow */
struct timespec req = {
.tv_sec = 0,
diff --git a/src/util/taler-helper-crypto-rsa.c b/src/util/taler-helper-crypto-rsa.c
index 9539277ce..ae75e5a2a 100644
--- a/src/util/taler-helper-crypto-rsa.c
+++ b/src/util/taler-helper-crypto-rsa.c
@@ -516,18 +516,19 @@ transmit (const struct sockaddr_un *addr,
socklen_t addr_size,
const struct GNUNET_MessageHeader *hdr)
{
- ssize_t ret;
-
for (unsigned int i = 0; i<100; i++)
{
- ret = GNUNET_NETWORK_socket_sendto (unix_sock,
- hdr,
- ntohs (hdr->size),
- (const struct sockaddr *) addr,
- addr_size);
+ ssize_t ret = sendto (GNUNET_NETWORK_get_fd (unix_sock),
+ hdr,
+ ntohs (hdr->size),
+ 0 /* no flags => blocking! */,
+ (const struct sockaddr *) addr,
+ addr_size);
if ( (-1 == ret) &&
(EAGAIN == errno) )
{
+ /* _Maybe_ with blocking sendto(), this should no
+ longer be needed; still keeping it just in case. */
/* Wait a bit, in case client is just too slow */
struct timespec req = {
.tv_sec = 0,