Changeset 4a74b5b in code for dns.c


Ignore:
Timestamp:
Apr 17, 2025, 11:33:16 PM (7 weeks ago)
Author:
Izuru Yakumo <eternal-servant@…>
Branches:
master
Parents:
2be3612
Message:

Nitori Engineering

File:
1 edited

Legend:

Unmodified
Added
Removed
  • dns.c

    r2be3612 r4a74b5b  
    2828#include <syslog.h>
    2929
     30#ifdef __NetBSD__
     31#define NO_ASYNC
     32#endif
     33
     34#ifdef NO_ASYNC
     35struct asr_result {
     36        struct addrinfo* ar_addrinfo;
     37        int ar_gai_errno;
     38};
     39#else
    3040#include <asr.h>
     41#endif
    3142
    3243#include "icb.h"
     
    8697{
    8798        struct icb_session *is = arg;
     99#ifdef NO_ASYNC
     100        struct asr_result result;
     101#else
    88102        struct asr_query *as;
     103#endif
    89104        struct addrinfo hints;
    90105
     
    100115                memset(&hints, 0, sizeof(hints));
    101116                hints.ai_family = PF_UNSPEC;
     117#ifdef NO_ASYNC
     118                getaddrinfo(is->hostname, NULL, &hints, &result.ar_addrinfo);
     119                result.ar_gai_errno = errno;
     120                dns_done_host(&result, is);
     121#else
    102122                as = getaddrinfo_async(is->hostname, NULL, &hints, NULL);
    103123                event_asr_run(as, dns_done_host, is);
     124#endif
    104125        } else {
    105126                icbd_log(is, LOG_DEBUG, "reverse dns resolution failed: %s",
     
    130151dns_resolve(struct icb_session *is)
    131152{
     153#ifdef NO_ASYNC
     154        struct asr_result result;
     155#else
    132156        struct asr_query *as;
     157#endif
    133158
    134159        if (!dodns)
     
    140165                icbd_log(is, LOG_DEBUG, "resolving: %s", is->host);
    141166
     167#ifdef NO_ASYNC
     168        getnameinfo((struct sockaddr *)&is->ss,
     169                    ((struct sockaddr *)&is->ss)->sa_len, is->hostname,
     170                    sizeof is->hostname, NULL, 0, NI_NOFQDN);
     171        result.ar_gai_errno = errno;
     172        dns_done_reverse(&result, is);
     173#else
    142174        as = getnameinfo_async((struct sockaddr *)&is->ss,
    143175            ((struct sockaddr *)&is->ss)->sa_len, is->hostname,
    144176            sizeof is->hostname, NULL, 0, NI_NOFQDN, NULL);
    145177        event_asr_run(as, dns_done_reverse, is);
     178#endif
    146179}
    147180
Note: See TracChangeset for help on using the changeset viewer.