Skip to content
Snippets Groups Projects
  1. Aug 25, 2016
  2. Aug 24, 2016
    • Marek Vavrusa's avatar
      lib/resolve: track rtt of all tried servers · d5f3f4e2
      Marek Vavrusa authored
      when doing fast retransmit, each address may be
      contacted 1-N times, but previously only cumulative
      RTT was tracked for the NS that sent the answer.
      
      now the approximate query start time is subtracted
      from cumulative RTT to give an idea how long it
      took since the query was actually sent, and all
      the NSs that didn't respond within their retransmit
      windows are penalised too
      d5f3f4e2
  3. Aug 05, 2016
  4. Jul 16, 2016
  5. Jul 06, 2016
    • Marek Vavrusa's avatar
      daemon/worker: reverted inbound deduping · 61873e79
      Marek Vavrusa authored
      the e638f9fb introduced deduplication
      for queries over UDP, the idea is to track same queries and answer
      only once, however that introduces both constant processing and
      memory overhead and could break clients who count packet loss
      by queries sent/received. disabling for now.
      61873e79
    • Marek Vavrusa's avatar
      daemon/worker: track query in BEGIN and dst addr · e4747066
      Marek Vavrusa authored
      * in the begin() layer, the incoming query is
        exposed as req->qsource.packet, it is invalidated
        after begin() and should not be modified
      * the destination address (local interface) is
        also tracked for filtering purposes
      e4747066
  6. May 12, 2016
    • Marek Vavrusa's avatar
      daemon/worker: deduplicate inbound queries · e638f9fb
      Marek Vavrusa authored
      many clients do frequent retransmits of the query
      to avoid network losses and get better service,
      but then fail to work properly when a resolver
      answers SERVFAIL to some of them because of the
      time limit and some of them NOERROR. 
      it's also a good idea to avoid wasting time
      tracking pending tasks to solve the same thing.
      e638f9fb
  7. May 03, 2016
    • Marek Vavrusa's avatar
      daemon: out-of-order processing for TCP · c23edd06
      Marek Vavrusa authored
      * daemon now processes messages over TCP stream
      out-of-order and concurrently
      * support for TCP_DEFER_ACCEPT
      * support for TCP Fast-Open
      * there are now deadlines for TCP for idle/slow
      streams (to prevent slowloris; pruning)
      * there is now per-request limit on timeouts
      (each request is allowed 4 timeouts before bailing)
      * faster request closing, unified retry/timeout timers
      * rare race condition in timer closing fixed
      c23edd06
  8. Jan 30, 2016
  9. Dec 17, 2015
  10. Dec 08, 2015
  11. Dec 03, 2015
    • Marek Vavruša's avatar
      daemon/worker: deduplicate outbound queries · 6addcded
      Marek Vavruša authored
      worker can track outbound requests and if N resolutions want the same
      subrequest, only one will lead it and others will be notified when it
      finishes
      
      this massively reduces number of outbound requests for
      slow/unresponsive/low ttl requests
      6addcded
  12. Nov 27, 2015
  13. Oct 10, 2015
  14. Sep 23, 2015
  15. Jul 21, 2015
  16. Jul 19, 2015
  17. Jul 14, 2015
  18. Jul 08, 2015
  19. Jul 07, 2015
  20. Jul 05, 2015
  21. Jun 07, 2015
  22. Jun 05, 2015
  23. Jun 04, 2015
  24. May 05, 2015
    • Marek Vavruša's avatar
      daemon/io: fixed corrupted handles with exhausted TCP clients · 8002457b
      Marek Vavruša authored
      the TCP allowed parallel processing of multiple requests over
      one client socket, however if the client socket disconnected,
      it left the running tasks reading from bad handle
      now each task takes ownership of the handle until it is finished,
      only then it is returned to the loop and closed
      8002457b
  25. Apr 26, 2015
    • Marek Vavruša's avatar
      daemon/worker: reworked multiplexed worker · c7d62055
      Marek Vavruša authored
      * each query is assigned a task
      * each task contains request, some primitives and mempool
      * worker can process multiple tasks at once and
        offload I/O to event loop
      
      Not finished:
      
      * it depends on icmp/system timeouts, #22
      * tcp reads are going to be bad if the messages
        arrive fragmented #21
      c7d62055
  26. Apr 24, 2015
  27. Apr 10, 2015
  28. Mar 27, 2015
  29. Mar 18, 2015
  30. Jan 03, 2015
  31. Dec 31, 2014