From 21eb79655a8c227626e3b1a6c9f67c7ebf0f88a1 Mon Sep 17 00:00:00 2001 From: Ryan Tharp Date: Wed, 21 Nov 2018 15:37:47 -0800 Subject: [PATCH] llarp_buffer_t conversion --- llarp/dnsd.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/llarp/dnsd.cpp b/llarp/dnsd.cpp index dc6afb462..c4b6ee8b2 100644 --- a/llarp/dnsd.cpp +++ b/llarp/dnsd.cpp @@ -396,16 +396,16 @@ handle_dnsc_result(dnsc_answer_request *client_request) // our generic version void -handle_recvfrom(const char *buffer, __attribute__((unused)) ssize_t nbytes, +handle_recvfrom(llarp_buffer_t buffer, dnsd_question_request *request) { const size_t HDR_OFFSET = 12; - const char *p_buffer = buffer; + const char *p_buffer = (const char *)buffer.base; int rcode = (buffer[3] & 0x0F); llarp::LogDebug("dnsd rcode ", rcode); - dns_msg_header *msg = decode_hdr(p_buffer); + dns_msg_header *msg = decode_hdr(buffer); p_buffer += HDR_OFFSET; request->id = msg->id; std::string m_qName = ""; @@ -537,12 +537,16 @@ llarp_handle_dnsd_recvfrom(struct llarp_udp_io *udp, &llarp_sendto_dns_hook_func; // set sock hook // llarp::LogInfo("Server request's UDP ", llarp_dns_request->user); - handle_recvfrom((char *)buf, sz, llarp_dns_request); + llarp_buffer_t buffer; + buffer.base = (byte_t *)buf; + buffer.cur = buffer.base; + buffer.sz = sz; + + handle_recvfrom(buffer, llarp_dns_request); } void -raw_handle_recvfrom(int *sockfd, const struct sockaddr *saddr, const void *buf, - ssize_t sz) +raw_handle_recvfrom(int *sockfd, const struct sockaddr *saddr, llarp_buffer_t buffer) { if(!dns_udp_tracker.dnsd) { @@ -556,7 +560,8 @@ raw_handle_recvfrom(int *sockfd, const struct sockaddr *saddr, const void *buf, llarp_dns_request->user = (void *)sockfd; llarp_dns_request->llarp = false; llarp_dns_request->sendto_hook = &raw_sendto_dns_hook_func; - handle_recvfrom((char *)buf, sz, llarp_dns_request); + + handle_recvfrom(buffer, llarp_dns_request); } bool