)]}'
{
  "log": [
    {
      "commit": "7e0bfb511e85834d7c6cb9631206b62f82701d60",
      "tree": "9579d38c3ba80e5cdd2f39b2168ac678f8615182",
      "parents": [
        "4e383b81d03db3592a43766dd6f996e7f84d8dc7"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 24 18:06:20 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 24 18:07:26 2010 -0700"
      },
      "message": "Fix comparison of IPv6 prefixes\n\nTypo assigned prefixlen1 twice instead of to the two different variables\nfor comparison and difference computation.\n\nChange-Id: I6631b8269ca6aae264c8d7d414127b756838df96\n"
    },
    {
      "commit": "d378c68d74cb4fdac450650fe816c9d649c8edaf",
      "tree": "0d5c15b4606982f26009bdc5c572415ac9dd18d3",
      "parents": [
        "d7ed1ae98249af8a58ce97784a29f048d77789a9"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Mar 08 15:13:04 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Mar 08 15:22:13 2010 -0800"
      },
      "message": "Fix spurious DNS lookups in the C library.\n\nThe problem was that the \u0027defdname\u0027 field of res_state structure\nwas not properly initialized in __res_vinit(). This field is used\nto store the default domain name, which is normally build from\ncalling gethostname() (see line 549 of res_init.c).\n\nUnfortunately, in the typical Android case, gethostname() returns\nan error (the hostname is configured) and a random stack string is\nused later to build the DNS search list (see lines 556+ in res_init.c)\n\nFor the sake of illustration, let\u0027s say the search list is set to\na random value like \u0027xWLK\u0027.\n\nThe end result is that when trying to result an unknown domain name\n(e.g. \u0027www.ptn\u0027), the query fails then the resolver tries to make a\nnew query with the DNS search list path(s) appended (e.g. \u0027www.ptn.xWLK\u0027).\n\nThe patch simply initializes \u0027defdname\u0027 to an empty string to avoid\nthis when the net.dns.search system property is not set.\n\nAlso contains whitespace/formatting fixes\n"
    },
    {
      "commit": "9ab75d4cc803e91b7f1b656ffbe2ad32c52a86f9",
      "tree": "7f0451638ba549b39cb81ae45e570e7a0534de9e",
      "parents": [
        "b55462328f7f7468bb8c0cb44ad1069af30415a3"
      ],
      "author": {
        "name": "Steinar H. Gunderson",
        "email": "sesse@google.com",
        "time": "Thu Feb 11 15:44:55 2010 +0100"
      },
      "committer": {
        "name": "Steinar H. Gunderson",
        "email": "sesse@google.com",
        "time": "Wed Feb 24 11:49:17 2010 +0100"
      },
      "message": "Implement support for RFC 3484 (address selection/sorting) in bionic.  (The\nJava changes required not to mess up the ordering from bionic will arrive in a\nlater commit.) In particular, this will give us more correct behavior when on a\n6to4 network, in that IPv4 will usually be preferred over 6to4.\n\nMost of RFC 3484 is implemented -- what\u0027s not is rule 3 (avoid deprecated\naddresses), 4 (prefer home addresses) and 7 (prefer native transport) as they\nrequire low-level access to the kernel routing table via netlink. (glibc also\nstarted out this way, and these rules are primarily useful in pretty obscure\ncircumstances, so we should be fine for the time being.)\n\nAlso, rule 9 (use longest matching prefix) has been modified so it does not try\nto sort IPv4 addresses; given current IPv4 addressing practice these rules are\npretty much meaningless. Finally, I\u0027ve added support for Teredo as a separate\nlabel, with slightly lower preference than 6to4. (Vista puts the preference\nbelow IPv4 by default. glibc puts the preference together with non-tunneled\nIPv6.)\n\nNote that this patch removes support for the \"sortlist\" directive in\nresolv.conf; I\u0027ve never seen it in actual use, it\u0027s irrelevant for Android\n(since we don\u0027t use resolv.conf anyway), and it\u0027s not clear how it would be\nimplemented alongside RFC 3484.\n"
    },
    {
      "commit": "cdeb4c8afa2fb7b92cce3b32a9d2f3c05ad759ba",
      "tree": "c92b4205ab7379cf157a88b8e9709794e70119fd",
      "parents": [
        "664dac1e959dda5f017571d52ab4a34891800927",
        "76ec6891e2bc18c9e12cd2f567358bb817b24cff"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Sep 15 07:51:39 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Sep 15 07:51:39 2009 -0700"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "a90528ad3420c571987f2124955646dae88007b6",
      "tree": "95809020fb569f2f6ca32886a359552dfeb65fec",
      "parents": [
        "cc05d1271680d6a7804bc89d3b1fe14c40b32396"
      ],
      "author": {
        "name": "Chih-Wei Huang",
        "email": "cwhuang@linux.org.tw",
        "time": "Tue Jul 28 22:58:09 2009 +0800"
      },
      "committer": {
        "name": "Chih-Wei Huang",
        "email": "cwhuang@linux.org.tw",
        "time": "Mon Aug 31 15:42:09 2009 +0800"
      },
      "message": "Include \u003cendian.h\u003e instead of \u003csys/endian.h\u003e,\nsince the later doesn\u0027t define byte order.\n"
    },
    {
      "commit": "3d8f4ada56cc4965c8d2cbaa16d1bc0f75492c07",
      "tree": "3b2398f9b0687e271280a165cc3040b2c364dd85",
      "parents": [
        "8b09aa39c3ab7bf17384082728001550c072e8c7"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Aug 03 22:36:31 2009 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Aug 04 13:17:03 2009 -0700"
      },
      "message": "Don\u0027t request IPv6 addresses if AI_ADDRCONFIG is specified and the system has no IPv6 connectivity.\n"
    },
    {
      "commit": "9cfb12e6bce65b49fd858b86149858ff3851072d",
      "tree": "356310761476af56a25dd0988157c16e3329e2b9",
      "parents": [
        "eda65ce1a5586ae9c9d19d886e3ea10ef0400510",
        "3773d35eb98e22b5edab4d82fb72bdf86ff80494"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jul 28 15:27:33 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 28 15:27:33 2009 -0700"
      },
      "message": "am 3773d35e: Make the DNS resolver accept domain names with an underscore.\n\nMerge commit \u00273773d35eb98e22b5edab4d82fb72bdf86ff80494\u0027\n\n* commit \u00273773d35eb98e22b5edab4d82fb72bdf86ff80494\u0027:\n  Make the DNS resolver accept domain names with an underscore.\n"
    },
    {
      "commit": "3773d35eb98e22b5edab4d82fb72bdf86ff80494",
      "tree": "05cdad25492e5dd326c10bc0b1f6ac78b0e8b1bd",
      "parents": [
        "39f3745cf30efe38482ffead1c32f4e62f6fe32e"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jul 27 19:19:29 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jul 27 19:19:29 2009 +0200"
      },
      "message": "Make the DNS resolver accept domain names with an underscore.\n\nMore precisely, this accepts domain labels with an underscore in\nthe middle (i.e. not at the start or the end of the label). This\nis needed to perform complex CNAME chain resolution in certain\nVPN networks.\n"
    },
    {
      "commit": "c52c174e412fa6c829cf6353ce8dbebdf710511f",
      "tree": "0a45a8dbd770b3a7222ff24105cff47ec0b1f978",
      "parents": [
        "040ae31701ea2583225b5ff9cc5b91de2719f7e8"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jun 11 19:33:45 2009 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jun 16 18:55:37 2009 -0700"
      },
      "message": "Make IPv6 definitions comply with RFC 3493:\n - Add some definitions to netinet/in6.h\n - Include netinet/in6.h from netinet/in.h\n"
    },
    {
      "commit": "2735b33519595da5d51b79757ccce730021a9228",
      "tree": "7839125a9beb3a38e33950d22b5495a3ab66c19d",
      "parents": [
        "8215679b355efe3829bab571bd566dc818ea4ccc"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue May 26 23:54:37 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed May 27 00:01:11 2009 +0200"
      },
      "message": "Fix getservent() so that it returns s_port in network byte order.\nAlso add a new document detailing known issues in the C library.\n"
    },
    {
      "commit": "5e563700380eade647f347669ea61dbb0ede9814",
      "tree": "739599d59b328c4f0880196f0d57f0d7c7f3a0f0",
      "parents": [
        "85a01ffba337b123436f57eba4daae38c7c90d1e"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue May 05 15:50:24 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue May 05 15:50:24 2009 +0200"
      },
      "message": "change getaddrinfo() implementation to match GLibc.\n\nthe issue is that the BSD implementation doesn\u0027t accept a call like:\n\n  getaddrinfo(SERVER_NAME, \"9999\", NULL, \u0026res);\n\nbecause if will reject a numerical string in the second parameter if no hints are explicitely\nprovided. This technically doesn\u0027t violate POSIX but might make porting Linux software a bit\ndifficult. For more details see:\n\nhttp://groups.google.com/group/android-ndk/browse_thread/thread/818ab9c53f24c87\n\nalso comment debugging printf() calls which shouldn\u0027t be there.\n"
    },
    {
      "commit": "aeae1f5b6c6cf22c2854e07f11555591c5430607",
      "tree": "e11d62b5e4a567c87357bfc952653c5c52658be2",
      "parents": [
        "00a18f62a7c97299cea017578ec7ec179215492b"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Apr 09 18:09:50 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Mon Apr 13 10:41:17 2009 +0800"
      },
      "message": "Add the domain search list for VPN connection.\n  The current solution is to read the net.dns.search property,\nand expand the list during the resolve initialization. In the\nfuture, we could implement search list per process.\n\nUpdate: refine the code accordingly.\n\nUpdate: remove unnecessary code.\n\nUpdate: remove the unused variable.\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "6f04a0f4c72acff80dad04828cb69ef67fa609d1",
      "tree": "915db7d93cb742f72b5d3819e69f48cb29c40a15",
      "parents": [
        "2489551343aa89fc539f369f7689c941b78c08d1"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:29 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:29 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@132276\n"
    },
    {
      "commit": "4e468ed2eb86a2406e14f1eca82072ee501d05fd",
      "tree": "4e05b3c66eef86531e464521a3bf96a1864d4bf5",
      "parents": [
        "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
