From e330e86abcad7cf60e46a5038ea492a9c5ca0e01 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Mon, 23 May 2022 12:45:14 +0000
Subject: [PATCH] Check if sending was successful
---
dns.c | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/dns.c b/dns.c
index ad58873..bc6f7cf 100644
--- a/dns.c
+++ b/dns.c
@@ -114,13 +114,15 @@
//send request
// return less than 0 is a fail
clock_gettime(CLOCK_MONOTONIC, &start);
- sendto(s,(char*)buf, sizeof(struct DNS_HEADER)+strlen((const char*)qname)+1+sizeof(struct QUESTION), 0, (struct sockaddr*)&dest, sizeof(dest));
+ i = sendto(s,(char*)buf, sizeof(struct DNS_HEADER)+strlen((const char*)qname)+1+sizeof(struct QUESTION), 0, (struct sockaddr*)&dest, sizeof(dest));
- //receive response
- //negative return is a fail
- i = sizeof(dest);
- i = recvfrom(s, (char*)buf, 65536, 0, (struct sockaddr*)&dest, (socklen_t*)&i);
- clock_gettime(CLOCK_MONOTONIC, &end);
+ if (i < 0) {
+ //receive response
+ //negative return is a fail
+ i = sizeof(dest);
+ i = recvfrom(s, (char*)buf, 65536, 0, (struct sockaddr*)&dest, (socklen_t*)&i);
+ clock_gettime(CLOCK_MONOTONIC, &end);
+ }
// Make sure packet was returned
if (i == -1)
--
Gitblit v1.10.0