• Show log

    Commit

  • Hash : 227510d5
    Author : Vladislav Gusev
    Date : 2023-07-13T22:20:33

    Fix EVDNS_BASE_DISABLE_WHEN_INACTIVE (#1493)
    
    I faced with strange problem: event loop doesn't exit after dns resolving with
    `EVDNS_BASE_DISABLE_WHEN_INACTIVE`.
    
    Stand:
    - Ubuntu 22;
    - libevent release-2.1.12-stable
    - `resolve.conf` contains 2 nameservers;
    - I use `evdns_base_new` with `EVDNS_BASE_DISABLE_WHEN_INACTIVE | EVDNS_BASE_INITIALIZE_NAMESERVERS` to avoid OS specific code.
    
    After small investigation, look like events related with dns sockets added to
    event_base before `evdns->disable_when_inactive` was initialized. `libevent`
    did epoll_ctl(DEL) after resolving completed on the first socket, but the
    second socket remained in the `epoll` interest list.