)]}'
{
  "log": [
    {
      "commit": "1ad658f87e561a9a111a39fe5f9ecfc6a4fc7b21",
      "tree": "76b35a99c2af96ee6a45eaf2c56a90b17c031b2c",
      "parents": [
        "7274295bf62df24ee735908f812b4f88d6dd7ca9"
      ],
      "author": {
        "name": "paulhu",
        "email": "paulhu@google.com",
        "time": "Thu Feb 10 21:54:34 2022 +0800"
      },
      "committer": {
        "name": "paulhu",
        "email": "paulhu@google.com",
        "time": "Thu Mar 31 14:06:34 2022 +0000"
      },
      "message": "Update MDnsSdListener to use MDns aidl\n\n- Remove the mdns socket connection to framework.\n- Let MDnsService call to MDnsSdListener directly so that\n  MDnsSdListener doesn\u0027t need to listen the socket.\n- MDnsSdListener report the mdns result through\n  IMDnsEventListener.\n\nBug: 209894875\nTest: cd system/netd ; atest\nChange-Id: Iab666563116da030931ca42b499a028fe676eb91\n"
    },
    {
      "commit": "c8a58ffa4269bf6925b469aa27bc714b1d072ea6",
      "tree": "ffe6a2c965ddfffc0c43980974c4a5611b353e94",
      "parents": [
        "b791bd6f3896403ae48f10323a615cc88ac5ec4e"
      ],
      "author": {
        "name": "paulhu",
        "email": "paulhu@google.com",
        "time": "Wed Feb 09 18:37:27 2022 +0800"
      },
      "committer": {
        "name": "paulhu",
        "email": "paulhu@google.com",
        "time": "Thu Mar 31 13:59:59 2022 +0000"
      },
      "message": "Add MDnsService\n\n- Register MDnsService as a native system service \"mdns\" which\n  can be used by NsdService to commnuicate with mdnsresponder.\n  This service is used to replace the NDC design between\n  NsdService and MDnsSdListener.\n- A binder call interface for calling to MDnsSdListener.\n- Move checkAnyPermssion() to BinderUtil.h which can be used by\n  any component.\n\nBug: 209894875\nTest: cd system/netd ; atest\nChange-Id: I3543c0ac8ac8da0030ad05baef4d0847730fcae8\n"
    },
    {
      "commit": "b371bc3171c5c8d4b5242994328ac4c6d4dfdc6f",
      "tree": "12d6f07ca44c7b636afe6c85d000dfda561a8754",
      "parents": [
        "822beb5c71ef68f7211fe41547c557c09056bc55"
      ],
      "author": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Tue Feb 01 22:43:23 2022 +0100"
      },
      "committer": {
        "name": "Patrick Rohr",
        "email": "prohr@google.com",
        "time": "Thu Feb 17 22:40:43 2022 +0100"
      },
      "message": "Remove setCounterSet and deleteTagData support from FwmarkServer\n\nRemoving all references to setCounterSet and deleteTagData from\nFwmarkServer and FwmarkClient.\n\nThe symbols cannot be removed from NetdClient as some older VNDK\nversions might still rely on them (they use dlsym, and do not reference\nthe symbol directly, so TH may not catch this).\n\nTest: builds and boots\nChange-Id: Ic2c971d066c6579e5cebc61ae33b369e1f54310e\n"
    },
    {
      "commit": "ebdeba8f1c64e6321f10461aa5ff1273a721b2f5",
      "tree": "0d1f60f4bc5f3783db2d80ce1bfb86df70305a23",
      "parents": [
        "87c43762d2396e5bb637c2a1b932d3259d72e79c"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "cken@google.com",
        "time": "Thu Oct 28 09:54:46 2021 +0800"
      },
      "committer": {
        "name": "Ken Chen",
        "email": "cken@google.com",
        "time": "Wed Jan 26 08:06:34 2022 +0800"
      },
      "message": "[NETD-BPF#18] Mainline part of bpf code from netd\n\n1. Add libnetd_updatable.so in com.android.tethering. The library is\nloaded by netd. Currently, it mainly targets on a few functions which\naccess BPF maps. The functionality may extend in the future.\n\n2. Attach gcroup progs from libnetd_updatable.so.\n\n3. Move (privileged)TagSocket and untagSocket implementation to mainline\nmodule. Combine privilegedTagSocket and untagSocket into a single\nfunction.\n\n4. Split related unit tests from netd_unit_test to\nlibnetd_updatable_unit_test as well.\n\nBug: 202086915\nTest: cd system/netd; atest\nTest: cd packages/modules/Connectivity/netd; atest\n\nChange-Id: I6afe3eee0fbe7c5141bd9e1c24c756f7edc9db4f\n"
    },
    {
      "commit": "65f0455e80a0c0c948d36b42f4b196a6ec23842f",
      "tree": "16f260b1fcb839a15b0a33c761274af47fec5ef0",
      "parents": [
        "0a45f9775035a14dc377a414ced5c5802300b8ea"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "cken@google.com",
        "time": "Thu Oct 28 20:42:40 2021 +0800"
      },
      "committer": {
        "name": "Ken Chen",
        "email": "cken@google.com",
        "time": "Sat Dec 04 02:34:19 2021 +0000"
      },
      "message": "[NETD-BPF#17] Modify WaitForProgsLoaded.h include path\n\nWaitForProgsLoaded.h has been moved to framework/lib/net/../bpf/\n\nBug: 202086915\nTest: m; flash; boot; atest\nChange-Id: Ide198766d8385900f76530afc1166247bf521dfb\n"
    },
    {
      "commit": "352984c4fc8ffe1b8b4614bab52aa11bf81fec8c",
      "tree": "bf28b1a31c8bd5ed2298d831bd963ea48667b73c",
      "parents": [
        "ed730a296147b9459ca161d43ca78194f4cc93f4"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "cken@google.com",
        "time": "Tue Oct 26 11:38:05 2021 +0800"
      },
      "committer": {
        "name": "Ken Chen",
        "email": "cken@google.com",
        "time": "Fri Dec 03 02:17:19 2021 +0000"
      },
      "message": "[NETD-BPF#12] Netd includes WaitForProgsLoaded.h\n\nwaitForProgsLoaded() is moved to WaitForProgsLoaded.h\n\nBug: 202086915\nTest: m; flash; boot\nTest: cd system/netd \u0026\u0026 atest\nChange-Id: I9d5e9877719b4b317bb3bfc52b22adcee6c5b471\n"
    },
    {
      "commit": "8fe808f09f3acf968c811ac2d0f07ce5157e57e2",
      "tree": "d9ebae1df398d04cb66cf8703550f6ec74a47714",
      "parents": [
        "491f5b785589c610b418107dbbe10b1f9e182258"
      ],
      "author": {
        "name": "Aaron Huang",
        "email": "huangaaron@google.com",
        "time": "Wed Nov 17 21:31:32 2021 +0800"
      },
      "committer": {
        "name": "Aaron Huang",
        "email": "huangaaron@google.com",
        "time": "Thu Nov 18 10:24:45 2021 +0000"
      },
      "message": "Split tagSocket into tagSocket and privilegedTagSocket\n\nCurrently resovler via tagSocketCallback calls tagSocket and\nchecks permission which doesn\u0027t make sense that the callback\ngoes via permission check.\n\nThus, split tagSocket into tagSocket which checks permission\nand privilegedTagSocket without permission check. Then update\ntagSocketCallback to call privilegedTagSocket directly.\n\nBug: 158133572\nTest: atest netd_integration_test\n      atest netd_unit_test\nChange-Id: I6e59e0387f67e4d8e149bb74dec01160f0c65c04\n"
    },
    {
      "commit": "66e860ffb217954ff27b6588ed479d88928153b1",
      "tree": "1a71b42cf4bae295902760bf43abc8663c7744bf",
      "parents": [
        "2f6615218e16e4bd7edd85b909869d6b8cc17d87"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "cken@google.com",
        "time": "Thu Apr 01 15:50:28 2021 +0800"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Fri Apr 02 02:16:02 2021 +0000"
      },
      "message": "Add debug trace for netd stuck issue\n\nSomehow netd may stuck during initialization. We don\u0027t have enough\ninformation to know which step it is stuck. Add traces to narrow down\nscope.\n\nTest: adb logcat | grep netd\nBug: 183677095\nChange-Id: Ib7bba4301e238c8cc3f6e8ea11bdcbe86f68f4e4\n"
    },
    {
      "commit": "e9d140ba2908ac2faf2cd45c62825e4363b1982a",
      "tree": "5160483ca14947f323e784f5d3215b579a5cd3b5",
      "parents": [
        "d2c23b42438f4c46aec6bd1cfa4de29e84637bcf"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Thu Jul 02 04:08:59 2020 -0700"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Thu Jul 16 10:54:59 2020 +0000"
      },
      "message": "do not drop ingress dns replies with non bypassable vpn\n\nSee:\n  aosp-master packages/modules/DnsResolver/include/netd_resolv/resolv.h\n  119: #define TAG_SYSTEM_DNS 0xFFFFFF82\n\n  aosp-master frameworks/base/core/java/com/android/internal/util/TrafficStatsConstants.java\n  43: public static final int TAG_SYSTEM_DNS \u003d 0xFFFFFF82;\n\n  aosp-master packages/modules/DnsResolver/resolv_private.h\n  171: if (int err \u003d android::net::gResNetdCallbacks.tagSocket(sock, TAG_SYSTEM_DNS, uid, pid)) {\n\nTest: via new tests on aosp master \u0026 via test build with carrier\nBug: 159994981\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nMerged-In: I8765153c1d7b10970f48bd7e85780f24d2549190\nChange-Id: I8765153c1d7b10970f48bd7e85780f24d2549190\n"
    },
    {
      "commit": "e234902f4e4c493c3eeb8daf24d844334ed6b699",
      "tree": "1e84b52a9cc5d64bb6e844372e99b78575168567",
      "parents": [
        "b601c04f77924d09ffc377ec7c07a3c7e311b27a"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jan 10 15:38:03 2020 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jan 10 15:38:03 2020 -0800"
      },
      "message": "Use libbpf_android to wait for bpf.\n\nSince it would be annoying to copy these four lines of waiting logic\neverywhere.\n\nBug: 140330870\nTest: boot \u0026 use network\nChange-Id: I68f68d889dfc4e165b7214e7c17dcc86a6b02ea3\n"
    },
    {
      "commit": "3e64aa182fef7af15f62a937b0e2aebcc218d977",
      "tree": "09cc16a11daa523133cbc3ad42a3172a87e6dca9",
      "parents": [
        "071fc8b80a5fa8d25d8ee40a7d688b8beefa330b"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Nov 27 15:36:29 2019 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Nov 27 16:22:46 2019 +0900"
      },
      "message": "Use stubs generated by build system\n\ninstead of hand-crafted stub for libnetd_resolv apex.\n\nBug: N/A\nTest: m \u0026\u0026 flash \u0026\u0026 boot\nTest: adb shell ldd /system/bin/netd # shows libnetd_resolv.so from apex\nChange-Id: I0eefe1fb2bfef70489c32fd075a11cef538e048b\n"
    },
    {
      "commit": "ccdecaa0c5cd3004fd6493b6056abff71b8c85b3",
      "tree": "2273ff2393ca0a33bcb1ddc431000bbe2357e891",
      "parents": [
        "47085528b81989907b9497a38548614925c92af4"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Aug 26 17:36:42 2019 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Nov 18 21:37:19 2019 +0000"
      },
      "message": "Don\u0027t create sp\u003c\u003e to stack allocated mHwSvc\n\nRefBase-derived objects should always be allocated in the heap.\nThey should also immediately become the target of an sp.\n\nThe original NetdHwService did not allow correct use. It privately\n(and indirectly) inherited from RefBase, making it impossible to\ngenerate an sp\u003c\u003e to it, as all clients should. We change the interface\nto make this possible.\n\nBug: 138956784\nTest: Booted with change.\nChange-Id: Ia977f8a7f1a8bb554fc5e0bfcce056939c688812\n"
    },
    {
      "commit": "feafd1842fabc7ee4d63ba0d7808f0b32fa848f3",
      "tree": "8f6d0c8530fdab194424cae1f82d95ee3816cc1f",
      "parents": [
        "e5f329818eaffd19669c752e9f8f6a3548237b8c"
      ],
      "author": {
        "name": "Felipe Mosso Ferfoglia",
        "email": "f.ferfoglia@samsung.com",
        "time": "Thu Oct 31 10:31:25 2019 -0300"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Nov 01 08:28:53 2019 +0000"
      },
      "message": "Add evaluate domain name callback in netd\n\nBug: 131051938\n"
    },
    {
      "commit": "2e75458f364cc539b64e844561d808375a13abbf",
      "tree": "27b50598ba18c6095b7c08442d1c30f33c67f66c",
      "parents": [
        "1fb0730120e1eec3746bfc823385530b805ed317",
        "f7b003ddb939b70fb30485955ee16bcbafde3024"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "cken@google.com",
        "time": "Tue Oct 22 03:19:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 22 03:19:57 2019 +0000"
      },
      "message": "Merge \"Support RDNS on cache and uid/pid tagging\""
    },
    {
      "commit": "f7b003ddb939b70fb30485955ee16bcbafde3024",
      "tree": "c2f3d5f99e471da5835a8e25aab0c5c82695046e",
      "parents": [
        "c6c8d4ffd6602d2bafcc8fe1451270b02d252b4e"
      ],
      "author": {
        "name": "Praveen Moongalam Thyagarajan",
        "email": "p.thyagarajan@samsung.com",
        "time": "Wed Sep 04 15:08:22 2019 -0700"
      },
      "committer": {
        "name": "Ken Chen",
        "email": "cken@google.com",
        "time": "Tue Oct 15 06:51:57 2019 +0000"
      },
      "message": "Support RDNS on cache and uid/pid tagging\n\nRDNS on local cache\n\nFunction that performs RDNS on local cache. Takes\nip address and net id as input and gives domain\nname as output.\n\nTag DNS query\n\nFunction that tags the uid and pid of the application\nthat sends DNS query.\n\nBug: 131051938\nTest: build, flash, boot\n\nChange-Id: I0f3be4ef90e78c85b59b76baa96fb54a21c21d36\n"
    },
    {
      "commit": "6b35750fd5fe0066460c322374576b9c25ee967e",
      "tree": "d1ee378faec7fb65e7fd535f45ecb6a91442726c",
      "parents": [
        "485a477dfe5ad0cbfea17c9f94b01364237a0732"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Fri Oct 11 09:26:44 2019 -0700"
      },
      "committer": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Fri Oct 11 09:28:14 2019 -0700"
      },
      "message": "[netd] fix -Wreorder-init-list\n\nC++20 will require members in a designated initializer to be in order\nunlike C99.\n\nBug: 139945549\nTest: mm\nChange-Id: I4b856942f5c323898cf572dc60622d62c6ffed94\nSigned-off-by: Nick Desaulniers \u003cndesaulniers@google.com\u003e\n"
    },
    {
      "commit": "b953a915f72fe9674e0186c086520c48bb6dacbb",
      "tree": "a558f623e8ec823df5662305761ed386b68d3acf",
      "parents": [
        "84f8e595d24fd4f4d97b0d5d136c528f59652b01"
      ],
      "author": {
        "name": "Sehee Park",
        "email": "sehee32.park@samsung.com",
        "time": "Thu Jul 04 13:53:45 2019 +0900"
      },
      "committer": {
        "name": "Sehee Park",
        "email": "sehee32.park@samsung.com",
        "time": "Mon Aug 26 08:27:41 2019 +0000"
      },
      "message": "Tag with TAG_SYSTEM_DNS for dns packets.\n\nTag with TAG_SYSTEM_DNS for dns packets so that apps know that\nthe traffic is not sent by them but is sent by the system on\ntheir behalf.\n\nTest: atest resolv_integration_test\nBug: 132125333\nChange-Id: I2e3502d75bd1a6a55f5e62a7fa23141e4cf2e375\n"
    },
    {
      "commit": "196f1b8a0f3d64b02a37069c37b35f32d358939a",
      "tree": "5b81c54dc25d45856a8f40b98708a7354a174e2f",
      "parents": [
        "e48bf0b636f9e0e0330f69ea5798f5bec48ec67e"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Mon May 20 16:34:16 2019 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Wed May 29 15:10:48 2019 +0900"
      },
      "message": "Remove floating-point time functions from StopWatch\n\nConverting time units between floating-point milliseconds to integral\nmicros and floating-point seconds is error prone and leads to subtle\nrounding bugs. Thus, consolidate all callers on microseconds and delete\nthe older methods.\n\nTest: cd system/netd \u0026\u0026 atest .\nChange-Id: Ief6ad4dbd21f442bfd65e78d49548677f3172a53\n"
    },
    {
      "commit": "3875839c2ebfeef250058313fa2fd4ab3bf0e17e",
      "tree": "366a70023c8c58a02bd05755d43aca4d5cc14b01",
      "parents": [
        "aae6f53ed0a1b0769c58774f702f9cbb49a0bf98"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Thu May 09 05:47:59 2019 +0000"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Thu May 09 05:47:59 2019 +0000"
      },
      "message": "Revert \"netd: set CLOEXEC on inherited /dev/socket/netd fd\"\n\nThis reverts commit aae6f53ed0a1b0769c58774f702f9cbb49a0bf98.\n\nReason for revert: https://android-review.googlesource.com/c/platform/system/netd/+/957201 removed the netd socket.\n\nBug: 65862741\nChange-Id: Ie7e598b9e50e1abfc9a90c25603d66bd08fa028a\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\n"
    },
    {
      "commit": "aae6f53ed0a1b0769c58774f702f9cbb49a0bf98",
      "tree": "f4b6a749428a92a69d513cb5afe5c0da462d6a4b",
      "parents": [
        "5a914821d3d912cc9a735719cc641f397696e1fc"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Sat May 04 02:28:22 2019 -0700"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Sat May 04 02:50:02 2019 -0700"
      },
      "message": "netd: set CLOEXEC on inherited /dev/socket/netd fd\n\nTest: on aosp_blueline no longer see iptables/ip6tables/dnsmasq/clatd with open\n  /dev/system/netd fd which matches environment variable ANDROID_SOCKET_netd\u003d18.\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nChange-Id: I7dd4f53751dd36c15aa8cb9ee1651b93cffa4745\n"
    },
    {
      "commit": "cfd04b232b89f9c98d421ff1cc7343a57f6954d3",
      "tree": "45ebc95486b0ae05dbf90cf60b66149f08236721",
      "parents": [
        "7720e4a569eacecce3d8c02ecdc023907e6c4c87"
      ],
      "author": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Mon Mar 18 15:53:21 2019 +0800"
      },
      "committer": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Wed Apr 24 18:31:45 2019 +0800"
      },
      "message": "NDC migration to binder ver.\n\nMake ndc communicating with netd via binder\n\nBug: 65862741\nTest: built, flashed, booted\n      system/netd/tests/runtests.sh pass\n      manual test ndc commands\nChange-Id: I9edfda61d8c3a4d7b404a428e7dbb4d08eff62a9\n"
    },
    {
      "commit": "7720e4a569eacecce3d8c02ecdc023907e6c4c87",
      "tree": "f60bed9175cdcae4a4a93b9dc4474526abe778b0",
      "parents": [
        "efe0c6f21b1abc5a8d3039e9d6085642078408ae"
      ],
      "author": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Wed Feb 20 15:09:28 2019 +0800"
      },
      "committer": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Wed Apr 24 18:31:41 2019 +0800"
      },
      "message": "Refactor CommandListener to binder version for preparing ndc\n\n1. Remove unused command\n2. use binder call instead of calling controller\n\nBug: 65862741\nTest: built, flashed, booted\nChange-Id: I43aa4cd04beb3429f3135edc987e8f8d122bc0a1\n"
    },
    {
      "commit": "e7e332fc6caed28284895cbecac2b0bd4630b669",
      "tree": "a92d74d3ac6a459db3d7666a955412a98efd7823",
      "parents": [
        "ccd04c58cf0dd6931272eddb092945b6185da513"
      ],
      "author": {
        "name": "Mike Yu",
        "email": "yumike@google.com",
        "time": "Wed Mar 13 17:15:48 2019 +0800"
      },
      "committer": {
        "name": "Mike Yu",
        "email": "yumike@google.com",
        "time": "Wed Apr 03 11:46:52 2019 +0800"
      },
      "message": "Move Stopwatch to libnetdutils\n\nMove Stopwatch to libnetdutils as it is an useful utility across\nnetd and the resolver library.\n\nBug: 128662167\nTest: system/netd/tests/runtests.sh passed\n\nChange-Id: Iebaffc66202fbe3a787ca645847762af1ed94bd7\n"
    },
    {
      "commit": "f29fe68e00635ba19c1b80c249ce847d15ea2400",
      "tree": "7fb0414f81545e54e518211a9c95931596469463",
      "parents": [
        "d33a8f4361e3b6c2453d549cea057958430c88a6"
      ],
      "author": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Tue Mar 26 15:15:44 2019 +0800"
      },
      "committer": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Fri Mar 29 05:42:05 2019 +0000"
      },
      "message": "Clean up Netd and libnetd_resolv for resolver related commands\n\n1. remove all resolver related commands in netd\n2. remove unused API in libnetd_resolv\n\nBug: 126141549\nTest: built, flashed, booted\n      system/netd/tests/runtests.sh pass\n\nChange-Id: I35ac8f241eebd6284a6a685ef86cd77a1fce4388\n"
    },
    {
      "commit": "a5161a006c572aeb82b012df5dd8bcf4533b64c7",
      "tree": "15d78f24a761792ef7d3fb07fb4ada76cb434e95",
      "parents": [
        "0b8bbc5fe3e4ee20b3b521c74cad2c6efa6323e3"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Wed Jan 30 22:40:53 2019 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Feb 01 20:07:56 2019 +0900"
      },
      "message": "Enable more clang-tidy checks and treat them as errors\n\nTest: tests/runtests.sh\nChange-Id: If59480cee6460847f5c1cef17e3ef036b8e75651\n"
    },
    {
      "commit": "0ae31afb61759dd35a64a4a3d31ad04a96e40a69",
      "tree": "45c975c84554125b6ea97e41241ce1d3f85232a8",
      "parents": [
        "1b4bcab0961ba7f8529f950bdcc08f3988d68567"
      ],
      "author": {
        "name": "Mike Yu",
        "email": "yumike@google.com",
        "time": "Thu Nov 15 21:58:19 2018 +0800"
      },
      "committer": {
        "name": "Mike Yu",
        "email": "yumike@google.com",
        "time": "Mon Jan 21 15:55:29 2019 +0800"
      },
      "message": "Move DnsProxyListener to libnetd_resolv\n\n[1] Support APIs for netd to set callbacks and bring up\n    DnsProxyListener.\n\n[2] Keep DnsProxyListener functioning as usual by function pointers,\n    including getNetworkContext(), checkCallingPermission(), and\n    getPrefix64().\n\n[3] Use libbinder_ndk to report onDnsEvent().\n\nTest: as follows\n    - built, flashed, booted\n    - system/netd/tests/runtests.sh passed\n    - netd_benchmark passed\n    - Browsing websites passed\nChange-Id: Ib6575833c248579aa079e302795b6d6cddde1f2b\n"
    },
    {
      "commit": "cd257648c84c6a452904c2a329d16427d67e7036",
      "tree": "c8d55392cfe95e33138cc940af0d0f1de31a7351",
      "parents": [
        "054321124a697b5fe3b5b01330c1df40e2b6ca9a"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Thu Dec 20 15:56:40 2018 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Mon Jan 21 07:35:19 2019 +0900"
      },
      "message": "Remove DNS event reporting level\n\nReporting level was used only by microbenchmarks, but CI go/apct-net\ndoesn\u0027t show a significant timing difference between test runs with and\nwithout reporting enabled.\n\nTest: atest resolv_integration_test\nTest: m netd_benchmark \u0026\u0026 adb sync data \u0026\u0026 adb shell /data/benchmarktest64/netd_benchmark/netd_benchmark\nChange-Id: I0db0522e1cf229649c2516973d8942549ccd5476\n"
    },
    {
      "commit": "a03aced8b7c9dee7d71ae77cd9997d8725ab57a6",
      "tree": "428750571b7c5583fd18a76d399cfaa0ab4aa637",
      "parents": [
        "e45746650275e72427640a69b6ac7f38184e0655"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jan 10 11:24:11 2019 -0500"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Fri Jan 11 08:59:46 2019 -0500"
      },
      "message": "Make netd wait for BPF programs to get loaded\n\nBPF programs are being loaded by bpfloader started by init. Since there\nis a possible race where bpfloader starts before netd starts, because make sure\nnetd waits if bpfloader started too soon.\n\nTest: force bpfloader to start later and see netd wait.\n\nBug: 112334572\nChange-Id: I1cff053f228cc8ee852d5e2de79cafb5d42d6aff\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "afaaa8edd218fa8257b6173a46cb39ffd30c9aa0",
      "tree": "ebb68c132a7a069dfeec720c0592517a389fad05",
      "parents": [
        "3efd988362c48071a3e3aafb40c00c3b4a6de07a"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Dec 18 19:16:12 2018 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Dec 19 18:49:32 2018 +0900"
      },
      "message": "Use dlopen() and dlsym() for resolver functions\n\nThis is a workaround to allow us to use libnetd_resolv.so from\nthe resolver APEX before b/120661824 is fixed.\n\nTest: builds, boots\nTest: system/netd/tests/runtests.sh\nTest: atest FrameworksNetTests android.net.cts.ConnectivityManagerTest\nChange-Id: I752ae248bb59545b0a4fbc1a7b8c9bcd697a31d4\n"
    },
    {
      "commit": "d1ee462e94c34193bf5e8eb2975fff61b82ab1fb",
      "tree": "dd8ba06ec3939751c61f9f1a672b2474729f2e5f",
      "parents": [
        "d4c0be8ed437ee2198a0d5d8561093ab23e51c2e"
      ],
      "author": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Fri Jun 29 13:49:58 2018 +0800"
      },
      "committer": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Wed Jul 11 15:04:07 2018 +0800"
      },
      "message": "Replace RW lock with mutex, shared_mutex\n\nTest: built, flashed, booted\n      system/netd/tests/runtests.sh passes\nChange-Id: I42b52d815b6ba0ba6f93dc27e83a900d2abec715\n"
    },
    {
      "commit": "b31fd69b1683915e73006fcc5f45b15c7ed5b941",
      "tree": "4bdbdf01596650d152ceef9c1f7a9b4ed745c859",
      "parents": [
        "4e19cb8648df44b1642fbe13890e1f76fc938588"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Jun 06 20:50:11 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jul 10 16:05:04 2018 +0900"
      },
      "message": "Add basic logging infrastructure for bugreports\n\nTest: as follows\n    - built, flashed, booted\n    - \"adb shell dumpsys netd\" shows logs\n    - tests/runtests.sh passes\nChange-Id: I0e44da7f9a9cc53074ffc396b958e9e2dbcd2603\n"
    },
    {
      "commit": "85890045e2c9f6c213211b10b180517408be831b",
      "tree": "fa0fa007e10229ce44fb3428a81f7d779e790715",
      "parents": [
        "5f7a46558f381ef9d87aa40ff52e90e83757b4e0"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri May 25 19:19:11 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Jun 06 18:34:25 2018 +0900"
      },
      "message": "Add static Process class and improved dump output\n\nTest: as follows\n    - built, flashed, booted\n    - adb shell dumpsys netd shows new output\nChange-Id: Ib78dbdc982f5db747bff445db21b8408c9c407cc\n"
    },
    {
      "commit": "3f461489b13b803fae5cbbdea949d44f75221615",
      "tree": "517434a693b3e7bb1bd854224b597154d52924b8",
      "parents": [
        "8e3a7c9840885ceafd496cc9a960ed4d43c8b26f"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Apr 23 14:31:32 2018 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Apr 23 14:38:51 2018 +0800"
      },
      "message": "Rename \u003ccutils/log.h\u003e to \u003clog/log.h\u003e\n\nBug: 78370064\nTest: lunch aosp_walleye-userdebug \u0026\u0026 cd system/netd \u0026\u0026 mma\nChange-Id: I495f7cdc3f2aab26947f10041fc559700367f2ea\n"
    },
    {
      "commit": "9944ba87ad061fd6add45521044c3503771e43c2",
      "tree": "de037dd6a27e586f374ba31dfb0649d65e72db88",
      "parents": [
        "f275968b1b3499a6095d64648d16fe0dc5168c80"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Tue Oct 10 17:33:20 2017 -0700"
      },
      "committer": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Thu Nov 09 17:59:09 2017 -0800"
      },
      "message": "New commands for replacing qtaguid native API\n\nAdded four new commands in FWmark server client module to realize the\nfunctionality of the native qtaguid code inside libcutils. These\ncommands allows processes to tag/untag a specific socket. Change counter\nset of a specific uid and delete the statistics of a uid tag pair\n\nTest: netd_integration_test: all tests pass\n      netd_unit_test: 71 tests passed, test program ended with\n      segmentation fault.\n      netd_benchmark_test:\n\tBenchmark                                                                    Time           CPU Iterations\n\t-----------------------------------------------------------------------------------------------------------\n\tipv4_metrics_reporting_no_fwmark/min_time:0.500/manual_time             490311 ns    1321836 ns       1523 734166\n\tipv4_metrics_reporting_no_load/min_time:0.500/manual_time               971644 ns    1754024 ns        677 1498332\n\tipv4_full_reporting_no_load/min_time:0.500/manual_time                 1668522 ns    1905846 ns        330 2428333\n\tipv4_metrics_reporting_high_load/min_time:0.500/real_time/threads:1    1563602 ns    1152833 ns        329\n\tipv4_full_reporting_high_load/min_time:0.500/real_time/threads:1       2186832 ns    1446244 ns        337\n\tipv6_metrics_reporting_no_fwmark/min_time:0.500/manual_time             518447 ns    1402849 ns       1194 766667\n\tipv6_metrics_reporting_no_load/min_time:0.500/manual_time              1124998 ns    1872343 ns        551 1585000\n\tipv6_full_reporting_no_load/min_time:0.500/manual_time                 1707226 ns    1999032 ns        503 2586667\n\tipv6_metrics_reporting_high_load/min_time:0.500/real_time/threads:1    1790899 ns    1311401 ns        447\n\tipv6_full_reporting_high_load/min_time:0.500/real_time/threads:1       2224263 ns    1443308 ns        311\n\tDnsFixture/getaddrinfo_log_nothing/real_time/threads:1                 8738083 ns    1648450 ns        100\n\tDnsFixture/getaddrinfo_log_nothing/real_time/threads:2                 4154537 ns     989402 ns        136\n\tDnsFixture/getaddrinfo_log_nothing/real_time/threads:4                 3849070 ns     988386 ns        232\n\tDnsFixture/getaddrinfo_log_nothing/real_time/threads:8                 1867350 ns     603123 ns        552\n\tDnsFixture/getaddrinfo_log_nothing/real_time/threads:16                4677366 ns     809034 ns        160\n\tDnsFixture/getaddrinfo_log_nothing/real_time/threads:32                2932518 ns     680202 ns        320\n\tDnsFixture/getaddrinfo_log_metrics/real_time/threads:1                 6851425 ns    1285477 ns        100\n\tDnsFixture/getaddrinfo_log_metrics/real_time/threads:2                 4348378 ns     973831 ns        122\n\tDnsFixture/getaddrinfo_log_metrics/real_time/threads:4                 3850877 ns     900753 ns        204\n\tDnsFixture/getaddrinfo_log_metrics/real_time/threads:8                 1492482 ns     593676 ns        536\n\tDnsFixture/getaddrinfo_log_metrics/real_time/threads:16                2170729 ns     598599 ns        304\n\tDnsFixture/getaddrinfo_log_metrics/real_time/threads:32                2159187 ns     600411 ns        320\n\tDnsFixture/getaddrinfo_log_everything/real_time/threads:1              5321642 ns     906195 ns        101\n\tDnsFixture/getaddrinfo_log_everything/real_time/threads:2              3689002 ns     887944 ns        266\n\tDnsFixture/getaddrinfo_log_everything/real_time/threads:4              2879940 ns     789382 ns        440\n\tDnsFixture/getaddrinfo_log_everything/real_time/threads:8              2578146 ns     696420 ns        408\n\tDnsFixture/getaddrinfo_log_everything/real_time/threads:16             1857378 ns     593976 ns        544\n\tDnsFixture/getaddrinfo_log_everything/real_time/threads:32             2395951 ns     617320 ns        640\n\nBug: 30950746\nChange-Id: I3a20f4dc523097d46fc1f7a9117b59f083d5c23d\n"
    },
    {
      "commit": "984f1d061a383b012dff3df4dc954733fb89a54c",
      "tree": "473fbcecc0eef80b4c24514263a14a6a8d43da84",
      "parents": [
        "d5dbccd452085107cb411768ef9371b9c924c796",
        "b0f35bad8a2231ee8ead6fe31377b15ba3f1b58a"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Aug 29 11:29:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 29 11:29:06 2017 +0000"
      },
      "message": "Merge \"Ensure the sockets we inherit from init are FD_CLOEXEC.\"\nam: b0f35bad8a\n\nChange-Id: I873832d55f7cd1fdf7e7919ee145d784f0b31dc5\n"
    },
    {
      "commit": "548bbd4643841bbd058c31e832af5e9d213edf90",
      "tree": "af362ed6d0f01f30dca6ce77bbdcb7b1c4e2b13f",
      "parents": [
        "e2e18f0400f9b5ef5a1329cbdddfb447d72910f5"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Aug 28 23:05:12 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Aug 28 23:13:39 2017 +0900"
      },
      "message": "Ensure the sockets we inherit from init are FD_CLOEXEC.\n\nBug: 65104811\nTest: bullhead builds, boots\nTest: lsof of iptables-restore doesn\u0027t show /dev/socket/netd and friends\nChange-Id: I64c7c30364662147ae1b010500635f8ce21b2d0a\n"
    },
    {
      "commit": "7e08f852440c4e9aaada7acc734e45920ec5c398",
      "tree": "4ff2f6d56bf0b473b489158432b8563c150f4fad",
      "parents": [
        "7f64548921f4c6d4954f293c6da73cec10c3632e"
      ],
      "author": {
        "name": "Niranjan Pendharkar",
        "email": "npendhar@codeaurora.org",
        "time": "Mon Jul 24 11:40:05 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jul 28 08:28:14 2017 -0700"
      },
      "message": "netd: HAL implmentation\n\nImplement Netd HAL server and register service.\nOEM network create and destroy\n\nTest: ran VtsHalNetNetdV1_0TargetTest, netd_unit_test, netd_integration_test\nBug: 36682246\nCRs-fixed: 2070022\nChange-Id: I35681f0fbffbe09bf6db0ad25a276844ea997398\n(cherry picked from commit 9560bedd6ce334d64d4e9e9331d00f90f5103e0e)\n"
    },
    {
      "commit": "685deb534a198ae6febae516f6d623b754757b13",
      "tree": "1ab899e78db4d511c9b4dc3725e809f59c9827dc",
      "parents": [
        "b19e2ae3cacdc1325381434a970aad230667a2f2"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Wed Jun 14 10:27:47 2017 +0900"
      },
      "committer": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Thu Jun 22 10:21:28 2017 +0900"
      },
      "message": "Avoid netlink socket address conflict\n\nNetlinkManager previously bound all netlink sockets with nl_pid \u003d\ngetpid(). Unfortunately only the first such socket is allowed to claim\nnl_pid \u003d getpid(). The kernel is happy to assign this value\nautomatically if nl_pid \u003d 0. For more information on nl_pid see \"man 7\nnetlink\".\n\nWhen NFLogListener was added, it created a socket with a kernel assigned\nnl_pid, unfortunately the kernel assigns getpid() to the first such\nsocket and listener was initialized earlier in the startup process than\nNetlinkManager.\n\nThis change alters NetlinkManager to request a kernel assigned nl_pid and\ndefensively moves the initialization of NFLogListener later in the\nstartup sequence to favor proper operation of existing code in\nNetlinkManager. Error logging is also slightly improved.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - \"runtest -x .../netd_unit_test.cpp\" passes\n    - \"cts-tradefed run commandAndExit cts-dev -m CtsOsTestCases -t\n       android.os.cts.StrictModeTest\" passes\nBug: 62353125\n(cherry picked from commit 519ffc3fbce7fa8113fa81d44ca313da6e6305ea)\n\nChange-Id: Ia9599bd25c3c5fb751bfe24a530392b999169175\n"
    },
    {
      "commit": "519ffc3fbce7fa8113fa81d44ca313da6e6305ea",
      "tree": "0ab8611edbb6fcc80d38f3268d4af2fb7647d8a8",
      "parents": [
        "341e77d1705bfb902630e6fcad55021b00c14e4a"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Wed Jun 14 10:27:47 2017 +0900"
      },
      "committer": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Wed Jun 14 10:40:47 2017 +0900"
      },
      "message": "Avoid netlink socket address conflict\n\nNetlinkManager previously bound all netlink sockets with nl_pid \u003d\ngetpid(). Unfortunately only the first such socket is allowed to claim\nnl_pid \u003d getpid(). The kernel is happy to assign this value\nautomatically if nl_pid \u003d 0. For more information on nl_pid see \"man 7\nnetlink\".\n\nWhen NFLogListener was added, it created a socket with a kernel assigned\nnl_pid, unfortunately the kernel assigns getpid() to the first such\nsocket and listener was initialized earlier in the startup process than\nNetlinkManager.\n\nThis change alters NetlinkManager to request a kernel assigned nl_pid and\ndefensively moves the initialization of NFLogListener later in the\nstartup sequence to favor proper operation of existing code in\nNetlinkManager. Error logging is also slightly improved.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - \"runtest -x .../netd_unit_test.cpp\" passes\n    - \"cts-tradefed run commandAndExit cts-dev -m CtsOsTestCases -t\n       android.os.cts.StrictModeTest\" passes\nBug: 62353125\n\nChange-Id: I9c1c76e5769de75ff624bf43634ac4061c447a72\n"
    },
    {
      "commit": "08b84cd0d223ae3059ce7d4d55b389fdea187580",
      "tree": "a7b90f858a205a555951fe50b8cab72a41439b02",
      "parents": [
        "98d8c08b8c55748735c2ff8ccbf7ad01a8f6e882"
      ],
      "author": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Mon May 22 13:11:54 2017 +0900"
      },
      "committer": {
        "name": "Joel Scherpelz",
        "email": "jscherpelz@google.com",
        "time": "Thu May 25 11:30:32 2017 +0900"
      },
      "message": "Add WakeupController and NFLogListener\n\nThese classes work together to parse and dispatch NFLOG messages in\nresponse to inbound packets annotated by the WiFi driver.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - netd_unit_test passes\n\nChange-Id: Id26d62858bf4bc4186ae66850f08077adf6fc2ac\n"
    },
    {
      "commit": "839d7d6b8e3558b92e55aa70894e13c12870e310",
      "tree": "3f9eee334d9602f9778d9637853c36882a5e4dab",
      "parents": [
        "b4140197bc5606564e2a16790517d10876e43911"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Apr 03 15:37:19 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Apr 03 15:53:52 2017 +0900"
      },
      "message": "Block SIGPIPE in IptablesRestoreControllerTest.\n\nOtherwise, testRestartOnMalformedCommand fails most of the time\non sailfish.\n\nTest: netd_unit_test no longer crashes\nChange-Id: I546950cd3f4cbaed358020f25a27b70702566e54\n"
    },
    {
      "commit": "f91e8ed5c906483348b4f00eae234825821943b1",
      "tree": "3ae35da9296b726fcaa90e1dcc98255002ab4307",
      "parents": [
        "a10b28e080b57b59e4897a5b8d8d05e7ecfdf53b"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Mar 27 05:48:33 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Mar 27 06:01:19 2017 +0900"
      },
      "message": "Log how long it takes to start more netd components.\n\nThis allows us to catch issues such as:\n\n03-27 05:46:16.268   398   398 I Netd    : Registering NetdNativeService: 1005.5ms\n\nBug: 34873832\nTest: bullhead builds, boots\nTest: observed log messages on boot\nChange-Id: I69a33affa2379a206c6a8d76b481913a248a715d\n"
    },
    {
      "commit": "7035f228d17e925116b1b64a7c917b3196ab8818",
      "tree": "9b9885872f05379d891a070e84b09b45c0afd37d",
      "parents": [
        "1e1253aaaf196a76cfdd0bc5e94e6ad2ca4e7b25"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Feb 13 18:29:00 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Feb 14 12:46:43 2017 +0900"
      },
      "message": "Put most of netd into the android::net namespace.\n\nTest: netd_{unit,integration}_test pass\nTest: bullhead builds, boots\nBug: 34873832\nChange-Id: I0a252328041b342f9c03cd08c11a69d452b045b3\n"
    },
    {
      "commit": "19ee8a8dd675ecf788a5a527b843b59fbbe3255f",
      "tree": "3b1231f52de229949760d5cbbb9115837c054064",
      "parents": [
        "1ed96e2d3fa89ca4848750a6b3bbbcf677946d27"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Feb 02 12:59:05 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Feb 02 16:22:08 2017 +0900"
      },
      "message": "Add finer-grained logging of netd startup times.\n\nExample output:\n\n02-02 12:57:30.481 10703 10703 I Netd    : Netd 1.0 starting\n02-02 12:57:32.593 10703 10703 I Netd    : Creating child chains: 2105.7ms\n02-02 12:57:32.594 10703 10703 I Netd    : Setting up OEM hooks: 1.0ms\n02-02 12:57:32.703 10703 10703 I Netd    : Setting up FirewallController hooks: 109.5ms\n02-02 12:57:32.859 10703 10703 I Netd    : Setting up NatController hooks: 156.0ms\n02-02 12:57:32.867 10703 10703 I Netd    : Setting up BandwidthController hooks: 7.7ms\n02-02 12:57:32.867 10703 10703 I Netd    : Setting up IdletimerController hooks: 0.1ms\n02-02 12:57:32.876 10703 10703 I Netd    : Disabling bandwidth control: 8.9ms\n02-02 12:57:32.920 10703 10703 E Netd    : netlink response contains error (File exists)\n02-02 12:57:32.920 10703 10703 E Netd    : Can\u0027t add IPv4 default route to dummy0: File exists\n02-02 12:57:32.921 10703 10703 I Netd    : Initializing RouteController: 44.7ms\n02-02 12:57:32.935 10703 10703 I Netd    : Netd started in 2455ms\n\nTest: builds, boots, log messages appear\nBug: 32323979\nChange-Id: I54f167b5e9291b888dc72e03714c4f2718b23a8c\n"
    },
    {
      "commit": "1ed96e2d3fa89ca4848750a6b3bbbcf677946d27",
      "tree": "4ab9fbfbc11d3bead9613998fa530a469e0a6c0b",
      "parents": [
        "ac5bd0362c3d4be6d98c0ce66b8f63ab36fe6844"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Feb 02 12:21:56 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Feb 02 15:53:09 2017 +0900"
      },
      "message": "Move some code out of CommandListener.\n\n1. Move lots of initialization code to Controllers.cpp.\n2. Move stringToPermission to Permission.h, which seems like a\n   better place for it.\n\nBug: 34873832\nTest: builds, boots\nChange-Id: I01ba8e1d062d298eab71a1b90899df042fdc2360\n"
    },
    {
      "commit": "4362bb2cc1da214c023bf1fcc4120058abca066d",
      "tree": "f59539f9650fdbd2ae7ff75ee4ccef1de19c43d5",
      "parents": [
        "c12d8730e79171081ec390eb217a7631597afd3d"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sat Jan 21 15:00:36 2017 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sat Jan 21 15:02:44 2017 +0900"
      },
      "message": "Log the time it takes netd to start up.\n\nCurrently on, bullhead-eng, I see:\n\n01-21 14:59:26.174 21421 21421 I Netd    : Netd started in 2432ms\n\nTest: restarted netd and observed log message.\nBug: 32323979\nBug: 33279878\nChange-Id: I7195d06d7ed1a09858185555f60b07e5bfe306ed\n"
    },
    {
      "commit": "7d374533e2daadee5d7f01dd9aa3c98e42759d50",
      "tree": "1c7d68bc8f22686cbfa4d2ffc2030de33c8a7b31",
      "parents": [
        "d46aa71fdad655f9dc2e33e0fbb96a776a55d095"
      ],
      "author": {
        "name": "Michal Karpinski",
        "email": "mkarpinski@google.com",
        "time": "Thu Oct 06 19:33:55 2016 +0100"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Oct 27 18:15:49 2016 +0900"
      },
      "message": "Add connect event reporting\n\nAdds reporting of connect events including netId, destination IP address,\ndestination port, uid and connect latency.\n\nAlso enables the relevant tests in the connect_benchmark.\n\nCurrently ignores the new data it receives, further work will be\ndone in the subsequent CLs.\n\nTest: for now just the benchmarking, in the future CTS\n\nBug: 29748723\n\n(cherry picked from commit 4b9b78aa02336de9291e5085401cef44c03c3bba)\n\nChange-Id: If8e5ddcd2d29271e2f63a3338a3daf83e7afccdc\n"
    },
    {
      "commit": "d544011db2537092fe4f76d238dfe3a82ad15a36",
      "tree": "11def72016b5de70d19629ca2610759ad02599a0",
      "parents": [
        "e6b936ebe8e8a9cbe47b87be0f1b72bb85a8d80d"
      ],
      "author": {
        "name": "Michal Karpinski",
        "email": "mkarpinski@google.com",
        "time": "Thu Oct 06 16:56:04 2016 +0100"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Oct 27 18:15:49 2016 +0900"
      },
      "message": "Adding EventReporter class\n\nThis class stores the reporting level and can be used to get\nthe event listener service.\n\nBug: 29748723\n\n(cherry picked from commit be581e228bd1a97efd179edcdd3e744622fb99b8)\n\nChange-Id: I98bfa97cb502f4d19ccf8c79f32d347e7e168492\n"
    },
    {
      "commit": "e4851dede1dd24bbd80ffd30c4e89c7753fed121",
      "tree": "56318c04595cc7002874e33ac86810f3216054d5",
      "parents": [
        "5ebbbd83bb204b916a60f68221fa9ea9506e5769"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Mar 17 13:23:28 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Mar 17 13:23:28 2016 +0900"
      },
      "message": "Start NetdNativeService before CommandListener.\n\nStarting CommandListener tells NetworkManagementService that netd\nis ready to accept commands. Ensure that the binder service is\nstarted (i.e., we have called startThreadPool) before we do this.\n\nBug: 27239233\nChange-Id: Ica89e72f51eb4752cb5cea2e4096c6a9dc5776d7\n"
    },
    {
      "commit": "0a3eb8540d1df3d2e74e546e80b0815419708f40",
      "tree": "97ff8072f43e7fef0faf05943085849458768c3f",
      "parents": [
        "ccf7b99be6dd256e6743b34cf497ac1db5b18569"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Feb 23 16:59:21 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Feb 25 17:27:47 2016 +0900"
      },
      "message": "Don\u0027t use a manually-sized buffer for the PID.\n\nChange-Id: Ibdda590b828c61caa488e959f3e596dc981a2c65\n"
    },
    {
      "commit": "1cfa54374f5ba63d69d6fcca767c4f6647cb6de2",
      "tree": "6e331e481b4d750e094d518255bd67153b148b38",
      "parents": [
        "c2c7b755b2017f71ded5784bd377fdba7d5aae6a"
      ],
      "author": {
        "name": "Pierre Imai",
        "email": "imaipi@google.com",
        "time": "Wed Feb 24 18:00:03 2016 +0900"
      },
      "committer": {
        "name": "Pierre Imai",
        "email": "imaipi@google.com",
        "time": "Thu Feb 25 16:05:55 2016 +0900"
      },
      "message": "Wrap netd\u0027s controller to make them usable from other classes\n\nChange-Id: Icb76b43e89c5a9e5806b95002d3653dd99912494\n"
    },
    {
      "commit": "e4d626ea35b7a402388b524e2feafc81e6387697",
      "tree": "38a40bd14c090f037d8678d2a18a26a947c09650",
      "parents": [
        "904ce3a4fadf47dd2490e274febcb38844d994a2"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Feb 02 17:19:04 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Feb 23 17:35:52 2016 +0900"
      },
      "message": "Initial netd binder interface.\n\nIn this change:\n\n1. AIDL files for a new, android.net.INetd service, and\n   corresponding implementation using generated code. For now the\n   interface is just a prototype: it only has one trivial method.\n2. Permission checking code to check for CONNECTIVITY_INTERNAL.\n3. Add a Big Netd Lock and provide a wrapper that makes it easy\n   to ensure that it is taken by every CommandListener command.\n\nBug: 27239233\nChange-Id: I448d0ac233edd0e351a7fe7f13901fb6871683a2\n"
    },
    {
      "commit": "347f69312176a54250a35afdc712b044c466fc73",
      "tree": "903db1ed6d5183f3a570f6c079f9b9f68127aa37",
      "parents": [
        "64166e7666e3cc7f4b9c715f2b4e19d28ae44c5a"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Oct 31 18:54:06 2014 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Nov 03 13:59:34 2014 -0800"
      },
      "message": "Write pid file so we can tell when netd bounces.\n\nWe clear the file early so people know it\u0027s died and rewrite after all the\nsetup and flushing of data is done so people know when it\u0027s safe to\nrepopulate the data.\n\nbug:18069270\nChange-Id: I954cf43ff02f1d352015f128ef88b659e6d0f95a\n"
    },
    {
      "commit": "f4f6c8de3f091be4b91a5a9d7f14e8882ec6d502",
      "tree": "096f5672a478e9eb9a5a374cba625a949fb645c8",
      "parents": [
        "1077d298655efa7755925e788d49a73e9db10afc"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Mon Jun 23 09:54:06 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue Jul 01 10:54:43 2014 -0700"
      },
      "message": "Refactor: Encapsulate permissions and interfaces into a Network class.\n\nCurrently, there\u0027s a lot of logic in NetworkController surrounding events such\nas interface addition/removal, network creation/destruction and default network\nchange, because these events are interwined. For example, adding an interface\nmeans also adding a corresponding default network rule if the interface is being\nadded to the current default network.\n\nWhen we introduce VPNs into this mix, things will get hairy real quick for all\nthis logic in NetworkController.\n\nIn this refactor, we introduce an abstract base class Network which supports\nadding and removing interfaces. The main concrete implementation of this is\nPhysicalNetwork, which allows setting permissions and \"default network\" state.\n\nSince we\u0027ve moved network permissions into the above class, and user permissions\ninto NetworkController, PermissionsController is unused and has been removed.\n\nAlso fix a few bugs in RouteController:\n+ Use uidEnd correctly.\n+ Check for all error cases in inet_pton.\n+ Check the return value of android_fork_execvp() correctly.\n+ The \"return cmd1() \u0026\u0026 cmd2()\" pattern is wrong. Rewrite that code.\n\nAlso (non-functional changes):\n+ Remove instantiations of RouteController. It has static methods only.\n+ Reorder some blocks in CommandListener so that the most frequent commands are\n  checked first.\n+ Remove unused paramError() and clearNetworkPreference().\n+ Change all return codes to int (negative errno) wherever applicable.\n+ Add WARN_UNUSED_RESULT everywhere.\n+ Cleanup some style in RouteController and NetworkController.\n+ Use uid_t instead of unsigned for user IDs.\n+ Add clearer log messages at the source of failures.\n+ Add a check for when fwmark bits are set without corresponding mask bits.\n\nBug: 15409918\n\nChange-Id: Ibba78b0850160f9f3d17d476f16331a6db0025d1\n"
    },
    {
      "commit": "56afacf838d24cf8e54d2cf0d8ab9182ab704125",
      "tree": "905e375d2eae15018f3e05c45c30e0d299928452",
      "parents": [
        "38b7af1f2cb9579895465fabc37865f5dadcac25"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 28 15:07:00 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Thu May 29 20:33:18 2014 -0700"
      },
      "message": "Turn on C++11 and make all warnings into errors.\n\nAs a consequence:\n+ Comment out the names of all unused parameters.\n+ Remove all unused variables and functions.\n\nIn server/Android.mk, there are a couple of non-trivial changes:\n+ Use libcxx instead of stlport. This is needed to fix a bunch of errors due to\n  specifying -std\u003dc++11.\n+ LOCAL_SHARED_LIBRARIES is sorted. Technically, the order in which libraries\n  are listed has an effect on linking, but nobody should be doing such brittle\n  things anyway.\n\nChange-Id: I0aff5b745e04609da23144d0e8be4c5694321b8b\n"
    },
    {
      "commit": "f4cfad361175a7f9ccf4d41e76a9b289c3c3da22",
      "tree": "adef9c2f736b8a566b0edd9ff83f92493c367f34",
      "parents": [
        "5ff58d494a5ddf7e544adc77590300f04daf8e31"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 21 08:54:07 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 21 09:03:35 2014 -0700"
      },
      "message": "Move netd_client into netd.\n\nChange-Id: Ie4b6b303225c93f2448a503d6ea9cebb552cbad5\n"
    },
    {
      "commit": "030b36ecb93b72ca9a3797c10f0a82ebf8c6a618",
      "tree": "83997afad92a6ced1718a380b351ba2332c3d76f",
      "parents": [
        "86686308ce65c0a3daf43b2b86f1d2bbc341b366"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Sun May 11 21:04:03 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 14 15:47:14 2014 +0000"
      },
      "message": "Introduce fwmarkd: a service to set the fwmark of sockets.\n\nAt connect(), mark sockets with the default network\u0027s netId.\n\n(cherry picked from commit 361154d38016ebeaabf1bb75534dabbacf5de5fa)\n\nChange-Id: Ib6198e19dbc306521a26fcecfdf6e8424d163fc9\n"
    },
    {
      "commit": "7dd69a1b0b95e67c8b939884476f2cf888026eb7",
      "tree": "87972ae2ee69ddf1be3bb92d0d0a33549543256e",
      "parents": [
        "35c77e32b27694a138e9a7877b9a5b474441c58b"
      ],
      "author": {
        "name": "Paul Jensen",
        "email": "pauljensen@google.com",
        "time": "Thu Apr 17 17:25:43 2014 -0400"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 14 02:42:00 2014 -0700"
      },
      "message": "Use proper socket mark for DNS resolution.\n\nChange-Id: I531ff0fbce6e7172b82bc2d4c7406a324603eb8a\n"
    },
    {
      "commit": "a0efaece8c05370f201efe099a537ceb014c6fdf",
      "tree": "d10f844e77e38535b167910578db5293089b109f",
      "parents": [
        "57abed1d8463b20a28745894d99942bfa9512e1b"
      ],
      "author": {
        "name": "Szymon Jakubczak",
        "email": "szym@google.com",
        "time": "Fri Feb 14 17:09:43 2014 -0500"
      },
      "committer": {
        "name": "Paul Jensen",
        "email": "pauljensen@google.com",
        "time": "Thu Mar 27 15:36:40 2014 -0400"
      },
      "message": "netd: Replace iface with opaque netid in resolver.\n\nAlso ensure that UID mapping (for VPN) cannot be overridden by\nandroid_getaddrinfofornet or per-PID preference.\n\nChange-Id: I9ccfda2902cc0943e87c9bc346ad9a2578accdab\n"
    },
    {
      "commit": "d2617936acc15567fc5111bbdb4dde20845c3cba",
      "tree": "454bfd4fc71de51022ea364d6c5ee3d7a68b9a70",
      "parents": [
        "eb648acc30c3b04823c8ee533b12ae56d772ce47"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Fri Jun 21 15:26:35 2013 -0700"
      },
      "committer": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Wed Jun 26 15:21:46 2013 -0700"
      },
      "message": "Add netd support for uid based routing for DNS\n\nDNSProxyListener now supports bionic changes for marking DNS requests\nfor routing DNS requests with the uid routing rules\n\nChange-Id: Iac9aa1bb14834be6da5e512405f23c6a72dc71ed\n"
    },
    {
      "commit": "59d2d45f8a4405dd5981488f122f34ff4c0030aa",
      "tree": "4b39b7332353a649daf9e5f795b278f48ee571fc",
      "parents": [
        "ab3df62f7b5584af6dee4f5ec069b70dd4f4cee6"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 20 21:54:15 2013 +0000"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 20 21:54:15 2013 +0000"
      },
      "message": "Revert \"netd: reduce privileges\"\n\njpa reports that tethering is broken.\n\nThis reverts commit ab3df62f7b5584af6dee4f5ec069b70dd4f4cee6.\n\nChange-Id: I0736f0fd83ea7cada9fdaee7e8d39123d2a3b5c2\n"
    },
    {
      "commit": "ab3df62f7b5584af6dee4f5ec069b70dd4f4cee6",
      "tree": "5677af11080496520b9780db6b469eedc41f7b5d",
      "parents": [
        "3911886e854d31058e7d3a6e310e8eafd06c02e0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 19 17:20:24 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 19 17:23:14 2013 -0700"
      },
      "message": "netd: reduce privileges\n\nnetd doesn\u0027t need full root capabilities. Rather, it only needs\nCAP_NET_ADMIN and CAP_NET_RAW. Reduce the capabilities to that\nset.\n\nnetd continues to run with UID\u003d0, which allows applications spawned\nby netd to continue to have CAP_NET_ADMIN and CAP_NET_RAW. It also\nallows netd to access /proc and /sys files as UID\u003d0.\n\nChange-Id: I439d22150109697213c0cc83276ddb668007b978\n"
    },
    {
      "commit": "745e09fc5694e73920aaad18a626275597bdddb1",
      "tree": "eeccd673f897cda43eb4b135d72e64062c3b30f3",
      "parents": [
        "6337b88ce4438d224819e9b381ddaf2873bbfdda"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Mar 29 14:45:54 2012 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Apr 12 15:45:27 2012 -0700"
      },
      "message": "Initial release of mdns interface.\n\nUses extern/mdnsresponder and communicate with the framework via nativedaemonconnector.\n\nChange-Id: I5c090528197afa090836d7cb5bf75dfba33ff11c\n"
    },
    {
      "commit": "c1044d4507a79166f3cfac9cacf669888f049ea9",
      "tree": "ddbae510675ce4dbeb18bb308b53734ffc252072",
      "parents": [
        "cd6821f6d334b60537d6d6d5966765a25b0c5ba0"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Fri Mar 09 08:59:28 2012 -0800"
      },
      "committer": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Fri Mar 09 09:03:33 2012 -0800"
      },
      "message": "Ignore Sigpipe in netd\n\nBug:6141847\n\nIgnore sigpipe in netd. This will enable us remove the temporary\nchanges in DnsProxyListener that we added to temporarily resolve\nissue 6138617.\n\nChange-Id: I4bc13ac0fcf9dd0e7641c2d4459b1eab0ed50f2a\n"
    },
    {
      "commit": "5ea0c05a1e7d8e664b808aa1bb1efd08fdb2fb13",
      "tree": "482bdad32dc6955d9946ef277bfb493be3082275",
      "parents": [
        "0e76b761a1514d5182675dd7b7d33725f62d6bc5"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:18:11 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:18:11 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: I8ab66debe4d0c3857a4b80f6f7b6925a352cda87\n"
    },
    {
      "commit": "08b58b60fd70e81317a9df19cc431f0759bc9e71",
      "tree": "2ebde80cf87e990d32949e996322d45165713257",
      "parents": [
        "7b984e3f7e724f8a3547a707210319f3d479f261"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:11 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:11 2012 +0000"
      },
      "message": "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156801\n\nBug: 5449033\nChange-Id: I61f544fc5b362863886cadceb37c9840e1d48e9b\n"
    },
    {
      "commit": "7b984e3f7e724f8a3547a707210319f3d479f261",
      "tree": "f822637917242036992cf05c6c62004117393551",
      "parents": [
        "8112c85001dae35f626cfacd22f274f2ce5ffa64"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Dec 20 16:22:42 2011 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Jan 03 22:32:34 2012 +0000"
      },
      "message": "Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156016\n\nBug: 5449033\nChange-Id: I85b946663d5a0e7606140282bf758c27b8c6f68f\n"
    },
    {
      "commit": "007e987fee7e815e0c4bc820f434a632b7a69a9d",
      "tree": "bff951d25cfb94f1016c780bb43a74fbad0f4ae1",
      "parents": [
        "b5ff9b277f256df84caf3d798ccc83b4740a1d31"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Oct 27 11:39:52 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Nov 01 16:00:10 2010 -0700"
      },
      "message": "DNS proxy thread in netd.\n\nNew thread in the netd process which listens on the\n/dev/socket/dnsproxyd socket (group owned by \u0027inet\u0027, so only useable\nby apps with the INTERNET permission), and does getaddrinfo requests\nfor other processes, caching in one place, rather than per-app.\n\nStill remaining: proper caching based on DNS-requested lengths, upping\nthe cache size, getnameinfo, stats, flush, etc, etc.\n\nChange-Id: I1d65af7d87876e508c718656bd81217cd961e20a\n"
    },
    {
      "commit": "f1c368a83b738658d27720898b433bbc010123ba",
      "tree": "5153721796f2392c3cc46a8c93d3616f4c35cc9e",
      "parents": [
        "01fed783828b592cda3b774deea4099a9e690e3d"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Jan 27 17:13:32 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Jan 27 17:13:32 2010 -0800"
      },
      "message": "netd: Remove sigchild handler and fix a bluetooth makefile bug\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "5c1b8af16dbbc20c89aaca2f93e725e12b16d055",
      "tree": "1deeadf30595add6f04c9da90cc5e421fefc9566",
      "parents": [
        "0399710d9a7ee575104e7d76dc988afb7829ccb9"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Jan 21 15:37:10 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 22 08:32:49 2010 -0800"
      },
      "message": "netd: Add Flush out enumerating/configuring interfaces\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "d18304287dbabc7835be771400b85d4ae8b63de6",
      "tree": "c89f4975ac56af2ef871947907b5a65ecdc8430e",
      "parents": [
        "b79aa7a157b6b35a5944649d769fc092e5f6561c"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 15 08:02:39 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 15 08:02:39 2010 -0800"
      },
      "message": "netd: Initial skelaton for netd\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    }
  ]
}
