)]}'
{
  "commit": "75ea9f40ade3ff29fbe3dfca6d93b62e6959ef2b",
  "tree": "5bf6680a772227388eca051c8517566e3749c7a3",
  "parents": [
    "4a18022bda00b3d3b844471e7f5cf16b24455b68"
  ],
  "author": {
    "name": "Jan Schär",
    "email": "jan@monogon.tech",
    "time": "Mon Jul 29 17:01:41 2024 +0200"
  },
  "committer": {
    "name": "Jan Schär",
    "email": "jan@monogon.tech",
    "time": "Wed Aug 21 11:10:01 2024 +0000"
  },
  "message": "osbase/net/dns/forward: add DNS forward handler\n\nThis adds a DNS server handler for forwarding queries to upstream DNS\nresolvers, with a built-in cache. The implementation is partially based\non CoreDNS. The proxy, cache and up packages are only lightly modified.\nThe forward package itself however is mostly new code. Unlike CoreDNS,\nit supports changing upstreams at runtime, and has integrated caching\nand answer order randomization.\n\nSome improvements over CoreDNS:\n- Concurrent identical queries only result in one upstream query.\n- In case of errors, Extended DNS Errors are added to replies.\n- Very large replies are not stored in the cache to avoid using too much\nmemory.\n\nChange-Id: I42294ae4997d621a6e55c98e46a04874eab75c99\nReviewed-on: https://review.monogon.dev/c/monogon/+/3258\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0728ff18b964894ae82a70d55daf3c7783878af6",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "98f9935871eb411e2979a2ae23f86d6a07f4dada",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/LICENSE-3RD-PARTY.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d2422a902a7fbdfc08fafefd77b91d31d2005bf0",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/cache.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3d91fa2c50efaac9101cd77b42e37e1df0783d7d",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/cache/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8c151a6412341f5405fa2e43418822625977196e",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/cache/cache.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8a2b80c433c8afbdac438786a5f7cd0c476d2cfc",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/cache/cache_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "452f8cc09671ca58e38f975c2c4e53b4d988c75d",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/cache/shard_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "00271ec16f935da629f65b02c3ecb81ddae1612b",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/forward.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f8505912394d3c4aae66d2ba50c6ee3c1dfa6ce7",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/forward_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4977b02a353b2952fc3ef51fd8cdcd293fb480c9",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/metrics.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5f3b177fea0795e354fd0591fa96441b7171651c",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/proxy/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d1c5b8e5cc83b66b0d730da37c9bb853d7321114",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/proxy/connect.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4630cdcc08af03ad3ecb63826e62c16f99833347",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/proxy/health.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ef8b60ac7f7198b7fcc16dd5093e8d36d524c665",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/proxy/health_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c08f1d8155815e907d9a9a3376f06bf73444ccdb",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/proxy/metrics.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cb4f618a913713e34f495efdabb8dbe9eeb69353",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/proxy/persistent.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2856c3f4bd653731bcc5125e9891208bef70adad",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/proxy/persistent_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dc25a319986b75b6644863fc56d56c770a3442ed",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/proxy/proxy.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a9297daf09d269844ce8a7a167c0bb4708933c99",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/proxy/proxy_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6eb78cef66cd940ad11d09e774f0bf5257e7ce14",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/proxy/type.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b9f26837fb0d9424377f4a5e1aefd1789b7366be",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/up/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "98063192d528625da71183f6b6172c5f46ed645d",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/up/up.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0d0f928d0ecfb692288ac0cf941450c4de7fc3d0",
      "new_mode": 33188,
      "new_path": "osbase/net/dns/forward/up/up_test.go"
    },
    {
      "type": "modify",
      "old_id": "ba015a29b263f305ab6d358901356e22ff1f21e6",
      "old_mode": 33188,
      "old_path": "osbase/supervisor/supervisor_testhelpers.go",
      "new_id": "cca93ffc21f1f9264f066544ffcd64fc42c1ec64",
      "new_mode": 33188,
      "new_path": "osbase/supervisor/supervisor_testhelpers.go"
    }
  ]
}
