]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
Merge master into cache-aggr-wip
authorVladimír Čunát <vladimir.cunat@nic.cz>
Thu, 25 Jan 2018 08:32:11 +0000 (09:32 +0100)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Thu, 25 Jan 2018 08:32:11 +0000 (09:32 +0100)
... to start fixing conflicts with changes in logging

16 files changed:
1  2 
NEWS
config.mk
daemon/README.rst
daemon/bindings.c
daemon/engine.c
daemon/lua/kres-gen.lua
daemon/worker.c
doc/modules.rst
lib/layer/iterate.c
lib/lib.mk
lib/resolve.c
lib/resolve.h
lib/rplan.h
lib/utils.c
lib/utils.h
modules/modules.mk

diff --cc NEWS
Simple merge
diff --cc config.mk
Simple merge
Simple merge
Simple merge
diff --cc daemon/engine.c
Simple merge
Simple merge
diff --cc daemon/worker.c
Simple merge
diff --cc doc/modules.rst
Simple merge
Simple merge
diff --cc lib/lib.mk
Simple merge
diff --cc lib/resolve.c
index 712c1979d2dedf9e9057cddbf4493827a27bf5d9,d068cfc39b8ebdf8539f72512496c819addda78d..e3d68be1089b8ec5de0dcd3f90ad98e7be5609a6
@@@ -723,9 -717,10 +723,11 @@@ int kr_resolve_begin(struct kr_request 
        array_init(request->additional);
        array_init(request->answ_selected);
        array_init(request->auth_selected);
 +      array_init(request->add_selected);
        request->answ_validated = false;
        request->auth_validated = false;
+       request->trace_log = NULL;
+       request->trace_finish = NULL;
  
        /* Expect first query */
        kr_rplan_init(&request->rplan, request, &request->pool);
diff --cc lib/resolve.h
Simple merge
diff --cc lib/rplan.h
Simple merge
diff --cc lib/utils.c
index 56d27f471a4f25ba54bbe55729c428ccc2f14b2e,5f61b10c87fb1ce9d8a89360e15dcb3f65a8c355..97df669e16c701b384a7f02ec876f1141121e178
@@@ -919,44 -926,3 +929,44 @@@ uint64_t kr_now(
  {
        return uv_now(uv_default_loop());
  }
- }
 +
 +int knot_dname_lf2wire(knot_dname_t * const dst, uint8_t len, const uint8_t *lf)
 +{
 +      knot_dname_t *d = dst; /* moving "cursor" as we write it out */
 +      bool ok = d && (len == 0 || lf);
 +      if (!ok) {
 +              assert(false);
 +              return kr_error(EINVAL);
 +      }
 +      /* we allow the final zero byte to be omitted */
 +      if (!len) {
 +              goto finish;
 +      }
 +      if (lf[len - 1]) {
 +              ++len;
 +      }
 +      /* convert the name, one label at a time */
 +      int label_end = len - 1; /* index of the zero byte after the current label */
 +      while (label_end >= 0) {
 +              /* find label_start */
 +              int i = label_end - 1;
 +              while (i >= 0 && lf[i])
 +                      --i;
 +              const int label_start = i + 1; /* index of the first byte of the current label */
 +              const int label_len = label_end - label_start;
 +              assert(label_len >= 0);
 +              if (label_len > 63 || label_len <= 0)
 +                      return kr_error(EILSEQ);
 +              /* write the label */
 +              *d = label_len;
 +              ++d;
 +              memcpy(d, lf + label_start, label_len);
 +              d += label_len;
 +              /* next label */
 +              label_end = label_start - 1;
 +      }
 +finish:
 +      *d = 0; /* the final zero */
 +      ++d;
 +      return d - dst;
++}
diff --cc lib/utils.h
Simple merge
Simple merge