diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-01-06 10:07:12 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-01-06 10:07:12 +0100 |
commit | e6f44e22aca3e6aecb5f74e4c32ee347857701c2 (patch) | |
tree | 983ec8dacc21a625c5d2ad51871fd397c51f4107 /src/util | |
parent | ad3d0a899793f22e717a97f5c9b10cb63f702d2d (diff) |
use blocking sendto() call to possibly eliminate need for nanosleep()
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/taler-helper-crypto-eddsa.c | 15 | ||||
-rw-r--r-- | src/util/taler-helper-crypto-rsa.c | 15 |
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, |