1. 03 Feb, 2017 2 commits
  2. 27 Jan, 2017 2 commits
  3. 23 Jan, 2017 1 commit
  4. 20 Jan, 2017 1 commit
  5. 18 Jan, 2017 1 commit
  6. 16 Jan, 2017 4 commits
  7. 11 Jan, 2017 3 commits
  8. 19 Dec, 2016 3 commits
    • Ondřej Surý's avatar
      Commit newly generated kres-gen.lua · d7347c48
      Ondřej Surý authored
      d7347c48
    • Ondřej Surý's avatar
      Remove bashisms from script/gen-cdefs.sh · e450beda
      Ondřej Surý authored
      e450beda
    • Vladimír Čunát's avatar
      allow generating most cdefs for lua · 06b0d3d4
      Vladimír Čunát authored
      Motivation: maintaining these by hand in kres.lua is tricky, as just
      inserting or reordering the structures can do anything and isn't
      detected in general.  For example, `rr_array_t::at` has always
      "missed a star".
      
      A couple libknot structure fields have apparently changed name since
      the old definitions were written; in most cases I renamed them in *.lua.
      
      The file daemon/lua/kres-gen.lua will be regenerated only if explicitly
      deleted.  That requires building with debug symbols and gdb on $PATH.
      06b0d3d4
  9. 02 Dec, 2016 1 commit
  10. 28 Nov, 2016 1 commit
  11. 14 Nov, 2016 1 commit
  12. 13 Nov, 2016 1 commit
  13. 08 Nov, 2016 2 commits
    • Vladimír Čunát's avatar
      lua ffi bindings: fix incorrect structs · 36ca5eed
      Vladimír Čunát authored
      Some structures have changed but lua was still using the old ABI.
      I think no our lua code used the fields misplaced due to this,
      except an example in documentation.
      
      I didn't check much of the ABI in there.  I wish I knew some
      (half-)automatic way how to do that.
      36ca5eed
    • Vladimír Čunát's avatar
      layer: refactor and better describe the API · cc47973e
      Vladimír Čunát authored
      - The API and ABI for modules changes slightly (details below).
        KR_MODULE_API is bumped to avoid loading incompatible code.
        We have bumped libkres ABIVER since the last release 1.1.1,
        so leaving that one intact.
      
      - Make KR_STATE_YIELD not reuse 0 value anymore.
        It's easy to e.g. return kr_ok() by mistake.
      - struct kr_layer_t:
        * ::mm was unused, uninitialized, etc.
        * Make ::state an int, as it was everywhere else.
        * void *data was ugly and always containing struct kr_request *
      - struct kr_layer_api:
        * Drop the void* parameter from ::begin, as it was only used
          for the request which is available as ctx->req anyway
          (formerly ctx->data).
        * Drop ::fail.  It wasn't even called.  Modules can watch for
          KR_STATE_FAIL in ::finish.
      - Document the apparent meaning of the layer interface, deduced mainly
        from the way it's used in the code.  Caveats:
        * enum knot_layer_state handling seems to assume that it holds exactly
          one of the possibilities at a time.  The cookie module does NOT
          follow that (intentionally), apparently depending on the exact
          implementation of the handling at that moment.  It feels fragile.
        * I was unable to deduce a plausible description of when ::reset is
          called.  It's practically unused in modules, too.
      cc47973e
  14. 24 Oct, 2016 1 commit
  15. 20 Oct, 2016 1 commit
  16. 25 Aug, 2016 1 commit
  17. 23 Aug, 2016 2 commits
  18. 11 Aug, 2016 3 commits
  19. 10 Aug, 2016 1 commit
  20. 16 Jul, 2016 1 commit
  21. 06 Jul, 2016 5 commits
    • Marek Vavrusa's avatar
      daemon: worker publishes usage information · 93303da5
      Marek Vavrusa authored
      93303da5
    • Marek Vavrusa's avatar
      daemon: workers are interconnected with IPC pipes · de7b3862
      Marek Vavrusa authored
      forks are connected with IPC pipes to process
      group leader and can execute expressions on its
      behalf. so running commands over all workers
      is easy now:
      
      > hostname() -- single
      localhost
      
      > map 'hostname()' -- all
      localhost
      localhost
      localhost
      de7b3862
    • 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
    • Marek Vavrusa's avatar
      lib/resolve: store auth addr/rtt in consume() layer · e9ffeb1a
      Marek Vavrusa authored
      during the consume step, the information about
      upstream authoritative (address and current rtt)
      is exposed in the request structure, just like
      information about current query
      e9ffeb1a
    • Marek Vavrusa's avatar
      modules/http: graphs, prometheus metrics, websocks · cf2a18b0
      Marek Vavrusa authored
      * http embeds modified lua-http server code that
        reuses single cqueue for all h2 client sockets,
        this is also because the API in upstream is unstable
      * http embeds rickshaw for real-time graphs over
        websockets, it displays latency heatmap by default
        and can show several other metrics
      * http shows a world map with pinned recently contacted
        authoritatives, where diameter represents number
        of queries sent and colour its average RTT, so
        you can see where the queries are going
      * http now exports several endpoints and websockets:
        /stats for statistics in JSON, and /metrics for
        metrics in Prometheus text format
      cf2a18b0
  22. 20 May, 2016 1 commit
    • Marek Vavrusa's avatar
      lib: cache api v2, removed dep on libknot db.h · e68c3a0a
      Marek Vavrusa authored
      this change introduces new API for cache backends,
      that is a subset of knot_db_api_t from libknot
      with several cache-specific operations
      
      major changes are:
      * merged 'cachectl' module into 'cache' as it is
        99% default-on and it simplifies things
      * not transaction oriented, transactions may be
        reused and cached for higher performance
      * scatter/gather API, this is important for
        latency and performance of non-local backends
        like Redis
      * faster and reliable cache clearing
      * cache-specific operations (prefix scan, ...) in
        the API not hacked in
      * simpler code for both backends and caller
      e68c3a0a
  23. 18 Apr, 2016 1 commit
    • Marek Vavrusa's avatar
      daemon: mode(strict|normal|permissive) · e61c48ef
      Marek Vavrusa authored
      the daemon has now three modes of strictness
      checking from strict to permissive.
      it reflects the tradeoff between resolving the
      query in as few steps as possible and security
      for insecure zones
      e61c48ef