generic_handle_dnsc_recvfrom() remove unneeded parameter, start making daemon/dns better, deprecate raw_handle_recvfrom()

This commit is contained in:
Ryan Tharp 2018-11-21 16:29:42 -08:00
parent 811b8451f5
commit 0046b705e8
3 changed files with 38 additions and 9 deletions

View File

@ -94,8 +94,11 @@ main(int argc, char *argv[])
dns_iptracker_init();
// llarp::SetLogLevel(llarp::eLogDebug);
bool enableDLL = false;
bool useLlarp = true;
if(1)
if(enableDLL)
{
// libev version w/router context
ctx = llarp_main_init(conffname, !TESTNET);
@ -163,7 +166,7 @@ main(int argc, char *argv[])
llarp_main_run(ctx);
llarp_main_free(ctx);
}
else if(0)
else if(useLlarp)
{
// libev version
llarp_ev_loop *netloop = nullptr;
@ -267,9 +270,30 @@ main(int argc, char *argv[])
if(nbytes == -1)
continue;
llarp::LogInfo("Received Bytes ", nbytes);
llarp_buffer_t lbuffer;
lbuffer.base = (byte_t *)buffer;
lbuffer.cur = lbuffer.base;
lbuffer.sz = nbytes;
dns_msg_header *hdr = decode_hdr(lbuffer);
raw_handle_recvfrom(&m_sockfd, (const struct sockaddr *)&clientAddress,
buffer, nbytes);
// if we sent this out, then there's an id
struct dns_tracker *tracker = (struct dns_tracker *)dnsd.client.tracker;
struct dnsc_answer_request *request = tracker->client_request[hdr->id].get();
if (request)
{
request->packet.header = hdr;
generic_handle_dnsc_recvfrom(tracker->client_request[hdr->id].get(), lbuffer, hdr);
}
else
{
llarp::LogWarn("Ignoring multiple responses on ID #", hdr->id);
}
//raw_handle_recvfrom(&m_sockfd, (const struct sockaddr *)&clientAddress,
// buffer, nbytes);
}
}

View File

@ -63,9 +63,17 @@ llarp_handle_dnsc_recvfrom(struct llarp_udp_io *const udp,
/// because we don't need a callback like recvfrom
/// because we're not evented
/// however daemon/dns expects this
/*
void
raw_handle_recvfrom(int *sockfd, const struct sockaddr *addr, const void *buf,
const ssize_t sz);
*/
// removed saddr, if needed get through request
void
generic_handle_dnsc_recvfrom(dnsc_answer_request *request,
llarp_buffer_t buffer, dns_msg_header *hdr);
/// DNS client context (one needed per upstream DNS server)
struct dnsc_context

View File

@ -153,8 +153,6 @@ answer_request_alloc(struct dnsc_context *dnsc, void *sock, const char *url,
/// generic dnsc handler
void
generic_handle_dnsc_recvfrom(dnsc_answer_request *request,
__attribute__((unused))
const struct sockaddr *saddr,
llarp_buffer_t buffer, dns_msg_header *hdr)
{
if(!request)
@ -644,8 +642,7 @@ raw_resolve_host(struct dnsc_context *const dnsc, const char *url,
if (request)
{
request->packet.header = hdr;
generic_handle_dnsc_recvfrom(tracker->client_request[hdr->id].get(), nullptr,
lbuffer, hdr);
generic_handle_dnsc_recvfrom(tracker->client_request[hdr->id].get(), lbuffer, hdr);
}
else
{
@ -689,7 +686,7 @@ llarp_handle_dnsc_recvfrom(struct llarp_udp_io *const udp,
if(request)
{
request->packet.header = hdr;
generic_handle_dnsc_recvfrom(request, saddr, buffer, hdr);
generic_handle_dnsc_recvfrom(request, buffer, hdr);
}
else
{