1. 06 Jul, 2016 1 commit
    • 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
  2. 12 May, 2016 1 commit
    • 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
  3. 03 May, 2016 1 commit
    • 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
  4. 30 Jan, 2016 1 commit
  5. 17 Dec, 2015 1 commit
  6. 08 Dec, 2015 1 commit
  7. 03 Dec, 2015 1 commit
    • 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
  8. 27 Nov, 2015 1 commit
  9. 10 Oct, 2015 1 commit
  10. 23 Sep, 2015 1 commit
  11. 21 Jul, 2015 1 commit
  12. 19 Jul, 2015 1 commit
  13. 14 Jul, 2015 1 commit
  14. 08 Jul, 2015 1 commit
  15. 07 Jul, 2015 1 commit
  16. 05 Jul, 2015 1 commit
  17. 07 Jun, 2015 1 commit
  18. 05 Jun, 2015 2 commits
  19. 04 Jun, 2015 1 commit
  20. 05 May, 2015 1 commit
    • 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
  21. 26 Apr, 2015 1 commit
    • 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
  22. 24 Apr, 2015 1 commit
  23. 10 Apr, 2015 1 commit
  24. 27 Mar, 2015 2 commits
    • Marek Vavruša's avatar
      daemon: split worker to 'engine' and workers · 65e0473a
      Marek Vavruša authored
      The engine is responsible for central managemento of resources and work
      distribution. This allows to spawn multiple loops.
      
      The engine configuration / interface is based on Lua 5.1-5.2, including
      a RPC and a simple CLI interface. This is going to be the core of configuration
      later on.
      65e0473a
    • Marek Vavruša's avatar
      daemon: cleanup worker · 10103e6e
      Marek Vavruša authored
      10103e6e
  25. 18 Mar, 2015 2 commits
  26. 03 Jan, 2015 1 commit
  27. 31 Dec, 2014 1 commit
  28. 30 Dec, 2014 1 commit
  29. 12 Nov, 2014 1 commit
  30. 28 Oct, 2014 1 commit
  31. 08 Aug, 2014 2 commits
  32. 05 Aug, 2014 1 commit
  33. 04 Aug, 2014 1 commit
  34. 31 Jul, 2014 1 commit