From f3ea2e1338054ec0143ac7054e5e91373bcbd558 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 6 Jan 2018 21:36:15 +0100 Subject: handle error properly, do not just log but continue gracefully --- src/gns/gnunet-dns2gns.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'src/gns/gnunet-dns2gns.c') diff --git a/src/gns/gnunet-dns2gns.c b/src/gns/gnunet-dns2gns.c index 424677d14..bf7cca042 100644 --- a/src/gns/gnunet-dns2gns.c +++ b/src/gns/gnunet-dns2gns.c @@ -533,14 +533,21 @@ read_dns4 (void *cls) } { char buf[size + 1]; + ssize_t sret; addrlen = sizeof (v4); - GNUNET_break (size == - GNUNET_NETWORK_socket_recvfrom (listen_socket4, - buf, - size + 1, - (struct sockaddr *) &v4, - &addrlen)); + sret = GNUNET_NETWORK_socket_recvfrom (listen_socket4, + buf, + size + 1, + (struct sockaddr *) &v4, + &addrlen); + if (0 > sret) + { + GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, + "recvfrom"); + return; + } + GNUNET_break (size == (size_t) sret); handle_request (listen_socket4, &v4, addrlen, -- cgit v1.2.3 From 328aade82c1f698ac7b93894a4bd659e14f41e4d Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 6 Jan 2018 21:37:27 +0100 Subject: handle error properly, do not just log but continue gracefully -- v6 also --- src/gns/gnunet-dns2gns.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'src/gns/gnunet-dns2gns.c') diff --git a/src/gns/gnunet-dns2gns.c b/src/gns/gnunet-dns2gns.c index bf7cca042..2f0de030d 100644 --- a/src/gns/gnunet-dns2gns.c +++ b/src/gns/gnunet-dns2gns.c @@ -586,16 +586,26 @@ read_dns6 (void *cls) } { char buf[size]; + ssize_t sret; addrlen = sizeof (v6); - GNUNET_break (size == - GNUNET_NETWORK_socket_recvfrom (listen_socket6, - buf, - size, - (struct sockaddr *) &v6, - &addrlen)); - handle_request (listen_socket6, &v6, addrlen, - buf, size); + sret = GNUNET_NETWORK_socket_recvfrom (listen_socket6, + buf, + size, + (struct sockaddr *) &v6, + &addrlen); + if (0 > sret) + { + GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, + "recvfrom"); + return; + } + GNUNET_break (size == (size_t) sret); + handle_request (listen_socket6, + &v6, + addrlen, + buf, + size); } } -- cgit v1.2.3