)]}'
{
  "log": [
    {
      "commit": "ef6454d3d3e54730de1a5b751d6c7b286d5a8575",
      "tree": "c8a296b02aa26db77f31a558707543cf1b833367",
      "parents": [
        "9136922045978385be99b0171c2c873aa6c2e186"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Feb 16 21:42:16 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Feb 16 23:12:26 2016 +0900"
      },
      "message": "Tolerate RTM_DELADDR messages from deleted interfaces.\n\nWhen an interface is deleted (which can happen, for example, to\nthe tun interfaces used for VPN and 464xlat), the kernel sends\nRTM_DELADDR messages for all its IP addresses.\n\nCurrently we ignore these because we cannot fetch the interface\nname. Instead, pass them up with an empty interface name so that\nNetlinkHandler can do something useful for them, such as destroy\nconnections on the IP addresses that are being deleted.\n\nBug: 26976388\nChange-Id: I2ced7e389228f9d665d0a87d97bd3452c8c0c98b\n"
    },
    {
      "commit": "7e16cc15b5e16ec35f4c9f0516a6cacf90326856",
      "tree": "ac9676eac446d951c7a0726f9b2ec24c3e96fe1c",
      "parents": [
        "1462c78c9cb1b4ee8d6b68b33fa7be64d6b9fbd4"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Dec 01 17:27:59 2015 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Dec 07 16:07:46 2015 +0900"
      },
      "message": "Switch from using sockaddr to sockaddr_storage.\n\nThis is to ensure sufficient space is always available.\n\nChange-Id: Ifa87b93ecdc90dcacbfb24446c872344da6703d3\n"
    },
    {
      "commit": "cc451785fe4426566f6c4a6a5156d4fb40bcc22d",
      "tree": "6b7151f7a2c0cc4b210f3326aa2226528ea3f041",
      "parents": [
        "3f62a020c48d5d812fb2898759b93a59dc24d310"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jul 28 17:31:19 2015 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jul 28 17:56:06 2015 +0900"
      },
      "message": "Fix incorrectly sized buffer.\n\nAlso: use a more correct size type.\n\nBug: 21562630\nBug: 21764392\nBug: 22464419\nChange-Id: I9a9cf64f0481670828fac707e00196e222d0311e\n"
    },
    {
      "commit": "ba48ff7a5975ab9b90d2c98293dd2424baf52924",
      "tree": "5da2131362ba5a914d6f2b8dd47c133af08a94c2",
      "parents": [
        "d50393057a6551c3bb498ed3a3bb7bd9eeb48225"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Jun 17 15:53:29 2015 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Jun 18 15:44:41 2015 +0900"
      },
      "message": "Qualify IPv6 link-local DNS servers with an interface name\n\nBug: 21562630\nBug: 21764392\nChange-Id: I7d271ae0f3fd92f70049017d38ccc15e3c1dda83\n"
    },
    {
      "commit": "55fd316ea798f2c77ad80def9f9b50d59391f1c2",
      "tree": "857902fbdb319593a8109dd5700f4a1446952738",
      "parents": [
        "25775e8e638d9d323c2dbac6d770092b920a5360"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 01 22:31:40 2015 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 01 22:31:40 2015 -0700"
      },
      "message": "Give SocketListener some FD_CLOEXEC.\n\nSockets love FD_CLOEXEC.\n\nBug: 19993667\nChange-Id: I0d72a27e0f46b79843bb91ed48ebaf1c89484fd2\n"
    },
    {
      "commit": "995f45e30ef88d622bebe7370e3e5ac4b5c45b20",
      "tree": "54984a4181a5aa6e3615e4d98209829fecbee62c",
      "parents": [
        "31837298166e678d8e9c9fba1b30aea5abf1350f"
      ],
      "author": {
        "name": "Vineeta Srivastava",
        "email": "vsrivastava@google.com",
        "time": "Fri Mar 20 23:51:36 2015 +0000"
      },
      "committer": {
        "name": "Vineeta Srivastava",
        "email": "vsrivastava@google.com",
        "time": "Fri Mar 20 23:51:36 2015 +0000"
      },
      "message": "Revert \"Sigh, more vendors linking against hidden APIs.\"\n\nThis reverts commit 31837298166e678d8e9c9fba1b30aea5abf1350f.\n\nChange-Id: I5c041d7438b64c4c258c414ca9a133075999e1b6\n"
    },
    {
      "commit": "31837298166e678d8e9c9fba1b30aea5abf1350f",
      "tree": "b0222b7efb6b1edd3ebf52df27ce4163b9b37e7b",
      "parents": [
        "778b9c84b81cba056f0b9a3ba05ecd88331df00a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 16 10:52:03 2015 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 16 12:14:40 2015 -0700"
      },
      "message": "Sigh, more vendors linking against hidden APIs.\n\nBug: 19762346\nChange-Id: I6c0823bf69e3f7e854ffea7b5483d09bb7359ff6\n"
    },
    {
      "commit": "e4f394087d2073dbe8309e5a2d87127cfda66ff9",
      "tree": "f3e95bbf501b38487e26e05ba848f8d2ca693a92",
      "parents": [
        "b5662f93238978dba1877209bb88a1ca294fe521"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 13 13:27:33 2015 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 13 13:27:56 2015 -0700"
      },
      "message": "Define enum class for NetlinkEvent actions.\n\nThis lets us use it for switch statements, and gives us stronger\ntype safety.\n\nChange-Id: Idb3ad7098657a09f13c95dc7070611d35ede66ae\n"
    },
    {
      "commit": "a744b05984a963966cec08758ffe582d241be9d7",
      "tree": "f9bde7bcbcc5f3e49cafe045b5951d3acdf27d23",
      "parents": [
        "9c4c5a6ed934490ba0fcce661594975a6f4c2c89"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 28 11:37:57 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 28 11:37:57 2015 -0800"
      },
      "message": "Add missing \u003cmalloc.h\u003e and \u003cstring.h\u003e includes.\n\nChange-Id: Ia41756e607663d056e7d2fdd7ecbec7e5841a913\n"
    },
    {
      "commit": "d1ad84cfa4d276ff915cc8b0c97c848b29fffb0f",
      "tree": "bf8681682174f4ea3900bde69b5c375695c208de",
      "parents": [
        "492dd1e5c1c47bc8a804b58bed941c8eaa94d9a3"
      ],
      "author": {
        "name": "Trevor Drake",
        "email": "trevordrake.gerrit@gmail.com",
        "time": "Sat Jan 24 07:02:50 2015 +0000"
      },
      "committer": {
        "name": "Trevor Drake",
        "email": "trevordrake.gerrit@gmail.com",
        "time": "Sat Jan 24 07:02:50 2015 +0000"
      },
      "message": "Remove obsolete BUILD_TINY_ANDROID check from libsysutils makefile\n\nChange-Id: I3cd1430b1555a5cd27b31ed3eebc1663f43e7b3b\n"
    },
    {
      "commit": "9a20e67fa62c1e0e0080910deec4be82ebecc922",
      "tree": "6d8c268d95a26bfecc3e574c9df1eb9dea0f5336",
      "parents": [
        "4503a1450ce9b2ed86fd9bd3eb3c34c845e8ed08"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Oct 30 14:51:59 2014 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jan 15 12:50:59 2015 -0800"
      },
      "message": "Extend to receive NFLOG packets.\n\nPackets captured and logged by the NFLOG target are unicast, so\nextend to catch and decode them.  To avoid escaping issues, the raw\ncontents are passed around as hex strings.\n\nBug: 18335678\nChange-Id: Ib7299500baa00080a1f000f9da843eb527363353\n"
    },
    {
      "commit": "f6b62d0a7d448e2685ef9afd934148943dc25a35",
      "tree": "a8a9f0a25040e073367740600523d8277ef088ff",
      "parents": [
        "af2cd21d00f16f4915a40004bdbdc2603e958f5a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 10 15:50:30 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 10 15:50:30 2014 -0800"
      },
      "message": "Fix formatting in 4df4dfedf6beef891d05d4e80704f5f4a594a885.\n\nChange-Id: I1ad219285cb1f4a39cfe2bdef224b78eff843317\n"
    },
    {
      "commit": "4df4dfedf6beef891d05d4e80704f5f4a594a885",
      "tree": "c2650b22f4d2d3f9a9ae7897ae67fe66b02af2ef",
      "parents": [
        "ae52248fa7ab12e1c3458aede101f143b1c76ead"
      ],
      "author": {
        "name": "Bo Huang",
        "email": "bo.b.huang@intel.com",
        "time": "Mon Sep 29 14:54:02 2014 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 10 15:45:16 2014 -0800"
      },
      "message": "When new error happend,then errno should be updated accordingly.\nOtherwise, need to keep previous errno.\n\nReproduced steps:\npre-condition:\nDUT support external SDcard or Usb mass storage;\n\n1. Insert blank(no partition) SDcard or UMS to DUT;\n\nExpected result:\nShould prompt user with storage error.\n\nTest result:\nThere is no notification for error.\n\nError log:\n01-01 01:06:49.239 I/fsck_msdos( 200): fsck_msdos terminated by exit(8)\n01-01 01:06:49.239 E/Vold ( 200): /dev/block/vold/179:16 failed FS checks (I/O error)\n01-01 01:06:49.239 D/Vold ( 200): Volume sdcard1 state changing 3 (Checking) -\u003e 1 (Idle-Unmounted)\n01-01 01:06:49.239 W/Vold ( 200): Returning OperationFailed - no handler for errno 0)\n\nRoot cause analysis:\n1.Volume::setState will call senBroadcase to send out state notification;\n2.Finally, SocketClient::sendDataLockedv was called to sent message.\nIn sendDataLockedv funtion,  when current \u003d\u003d iovcnt,  e is 0 by default.\nSo Vold get incorrect errno.\n\nChange-Id: Icb32a4193f02f22b5e3feaba177bc278f8f1f41b\nSigned-off-by: Bo Huang \u003cbo.b.huang@intel.com\u003e\n"
    },
    {
      "commit": "d7ff7ea65220718398cae1e1aa0005072229b4e7",
      "tree": "ac90523bc7e81c6580b869f74de7e8b8590e4dcc",
      "parents": [
        "9b34293566833ead1d7bac7518e5ccad0d92d61c"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jun 11 17:37:12 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sat Jun 21 10:55:07 2014 +0900"
      },
      "message": "Support parsing netlink route messages.\n\nBug: 9180552\nChange-Id: I4a36d869ac692647fb226d0912285bdf2ffcb1fa\n"
    },
    {
      "commit": "9b34293566833ead1d7bac7518e5ccad0d92d61c",
      "tree": "187484e4b26c2ed4675af0d8ece2d67650a50507",
      "parents": [
        "bb8aec417531010eadc27bdfed0c19fc5f669fbc"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Jun 19 13:16:04 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sat Jun 21 10:54:43 2014 +0900"
      },
      "message": "Improvements to netlink event parsing.\n\n1. Accept that parseNetlinkMessage can only parse one netlink\n   message, because its way of returning output is to modify its\n   member variables (mAction, mParams, etc.). Currently, it\n   loops through all the messages it finds, updating its member\n   variables as it goes along, and always returns true at the end\n   of the buffer. This has the following problems:\n\n   1. Since the function always returns true even when no\n      messages were parsed, the caller has no way to know if\n      parsing succeeded, and we get lots of \"No subsystem found\n      in netlink event\" logs if the buffer did not contain any\n      valid messages we were interested in.\n   2. If there are multiple messages in the buffer, all but the\n      last message will be silently ignored.\n   3. If there are multiple messages and previous messages have\n      more parameters than the last one, the resulting event will\n      have a mixture of parameters from multiple messages.\n\n   Instead of doing all this, change the contract to \"parse the\n   first valid message of interest in the buffer and return true,\n   or return false if there were no such messages\", and update\n   the code and the comments accordingly.\n\n2. Modify the caller (NetlinkListener) so it doesn\u0027t log an\n   error when parseBinaryNetlinkMessage returns false, because\n   this can now simply mean that we weren\u0027t interested in that\n   particular message. parseBinaryNetlinkMessage already logs\n   more informative errors.\n\n3. Provide utility functions to check received message lengths and\n   to convert message types to message names.\n\n4. Simplify logging duplicate attributes.\n\n5. Use the appropriate IFLA_xxx macros instead of rolling our own\n   code to parse link state messages.\n\n6. Move all the parsing code out to per-message-type parsing\n   functions to order to simplify parseBinaryNetlinkMessage.\n\nBug: 9180552\nChange-Id: I6bbc2f7a104f618674dde2369c1fd5e93ea49430\n"
    },
    {
      "commit": "80f63d4b2c45bd609cbda78bcd016baf0138a5d3",
      "tree": "f217b1f2477131b838e6ad84f5108990020f1f65",
      "parents": [
        "ebf49f3e875981e9037ce36eddcab3ccb5925ebf"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 01 07:47:04 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 01 12:19:45 2014 -0700"
      },
      "message": "libsysutil: turn on -Werror (part deux)\n\n- x86_64 format warnings\n\nChange-Id: I81c2702f564bcada946f6a10f34bbf34c90f766b\n"
    },
    {
      "commit": "03b00f33655608afb1d263677681957f5762f0b6",
      "tree": "998efabcf4cd8ee6523b957c1ab433f2ecac15bd",
      "parents": [
        "a2723e0f7faee831ebc85e092768ee1417ae60f1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 30 17:01:39 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 30 17:01:39 2014 -0700"
      },
      "message": "libsysutil: turn off -Werror\n\ntemporary to work out issue with git_mirror-asop-master build\n\nChange-Id: Ie65c65abb0a70dc134fded15db8b9d98e1701edd\n"
    },
    {
      "commit": "9418fd1821d5f31e6004a6f70cb14f59735dc589",
      "tree": "ce6e12002daa0e320ca58882c232e3f78ad78a96",
      "parents": [
        "f3661cc2f124bb7ca38285f156c624dda974b4c5"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 29 13:12:59 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 30 07:51:47 2014 -0700"
      },
      "message": "libsysutils: turn on -Werror\n\n- Deal with some -Wunused / -Wunused-variable issues\n\nChange-Id: I428a0032a8743c68c97f528d5f305ba63fee1d29\n"
    },
    {
      "commit": "28fa45858edbf6fd7b784c40de9187f7ca499a1d",
      "tree": "735e8ce21f6104bd9aaf6b10ffef8dc0e42a644c",
      "parents": [
        "4f17e530f9dc785b6552f8e51d2d6de832a4a992"
      ],
      "author": {
        "name": "William Luh",
        "email": "williamluh@google.com",
        "time": "Mon Apr 21 11:30:29 2014 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 29 13:16:26 2014 -0700"
      },
      "message": "Add prefx to netlink failure and dispatchCommand overflow logs.\n\nPrefix ensures proper user-consent filter.\n\n(cherry picked from commit 564244cd3809aee58c7e18114970bb88bce9e9e9)\n\nBug:5848002\nChange-Id: Iee7287773f0af52c225a821ee0e9d643c83cc060\n"
    },
    {
      "commit": "dfc47e86858ea67c72f1df2fdb97094b8e8248f2",
      "tree": "749adb2e006a75d4deb2fb769b0dd7b6bc8d2914",
      "parents": [
        "26bb9970c463eb1209803d833799f128484864ac"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 24 10:26:47 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 17 16:14:24 2014 +0000"
      },
      "message": "logd: libsysutils: logd startup outside init environment\n\nChange-Id: I3426b6c3eebdd0c8258e966dcaaaa2825d7a23d1\n"
    },
    {
      "commit": "581edc1b6c3799238cfb674dfddb97db44f2818e",
      "tree": "ea0951fc0b885f98631d3088354306e96616cea0",
      "parents": [
        "ba23d539328af36b2040a5bcbdcc840810a4df51"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Nov 20 13:38:52 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 03 12:48:00 2014 -0800"
      },
      "message": "set /proc/sys/net/unix/max_dgram_qlen to large value\n\n- init: set /proc/sys/net/unix/max_dgram_qlen to 300\n- libsysutils: Add listen backlog argument to startListener\n- logd: set listen backlog to 300\n\nChange-Id: Id6d37d6c937ba2d221e76258d89c9516619caeec\n"
    },
    {
      "commit": "4389588e8ded66148d9e616aa20307cf25144460",
      "tree": "ad010ea143e919c6b71c0bedc583f20fec2a5998",
      "parents": [
        "caefe564a4b05e717a3baec155b8968ad36e58b6"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jan 29 11:25:01 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Jan 31 15:27:14 2014 -0800"
      },
      "message": "libsysutil: frequent native crash /system/bin/vold\n\nregression from commit a6e965578e44f9ae5f98de822ba5decec381dffc\n\n* wrap writev with sigaction SIG_IGN SIGPIPE to emulate the\n  send(,,,MSG_NOSIGNAL) call it had replaced.\n\n(cherry pick from commit 83fc720785c4e40f3341daf7c0bf5ee99261fee9)\n\nBUG: 12796279\nChange-Id: I14363630ada79c0a5b85bb6b2afd0a1c4d5c3109\n"
    },
    {
      "commit": "44b99c22af84331068935a9bc3e807165a88237c",
      "tree": "6f2641e55435a0b47946d323b966543ae08e9061",
      "parents": [
        "23f04107dcedcef22556c1f57502cdddbfa2663f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jan 08 12:44:23 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:22:49 2014 -0800"
      },
      "message": "libsysutils: SocketListener export release\n\n* Foreground thread (legacy) closes connection by\n  reporting false return value for onDataAvailable.\n* Background thread can choose instead to close the\n  connection asynchronously by calling release, must\n  return true for the onDataAvailable method.\n\n(cherry picked from commit d7ad4e409eaac53db3a9789060097b712850b337)\n\nChange-Id: I70ab37d5c22b02804aa3b4dfb26cc9b75291f8b6\n"
    },
    {
      "commit": "23f04107dcedcef22556c1f57502cdddbfa2663f",
      "tree": "f7040d57a21d668cecd9be5c18ffbb6509dbf747",
      "parents": [
        "40b21558e52e9245929495c5344443276e5d87c1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 24 20:30:10 2012 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:22:04 2014 -0800"
      },
      "message": "libsysutils: Add iovec/runOnEachSocket\n\nSocketClient:\n* Replace sendDataLocked with sendDataLockedv which takes an iovec.\n* Add a version of sendData, sendDatav, which takes an iovec.\n* do not preserve iovec content through sendDatav\n\nSocketListener:\n* Add runOnEachSocket, which allows to to specify a SocketClientCommand to\n  run individually on each socket. This allows you to do broadcast-like\n  actions customized for each individual socket.\n* Client safe list reference counting for sendBroadcast \u0026 runOnEach Socket\n\n(cherry picked from commit a6e965578e44f8ae5f98de822ba5decec381d5fc)\n\nSigned-off-by: Nick Kralevich \u003cnnk@google.com\u003e\nSigned-off-by: Mark Salyzyn \u003csalyzyn@google.com\u003e\n\nChange-Id: I716f89c01b4cb7af900045c7e41fac1492defb06\n"
    },
    {
      "commit": "e16baef4d2f59c0b5f78e66c838d6c5e7d9b7363",
      "tree": "78c6b0663ea50237d7547c817ce5434851b1e532",
      "parents": [
        "a6aad4cdb3ec75668838f3eced59bbb2c7b70c59"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Nov 22 07:47:35 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:06:22 2014 -0800"
      },
      "message": "libsysutils: Get rid of warnings\n\n- UNUSED argument warnings\n- Remove LOG_NDEBUG define\n\n(cherry picked from commit 696f267ff5a1e6227c2f5784dae60c190e0228b8)\n\nChange-Id: I48b0942adfdb7a46a7693e580bc6ed5a685b0d5b\n"
    },
    {
      "commit": "65dd88beccc571315ffc5d9cce90402d0426a28b",
      "tree": "d93222d37b640aebf25b3eea3abf20dcbf9ff8c5",
      "parents": [
        "3510637c85a93b3e535482822e7b57693a22d6ac"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 22 19:06:04 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 22 19:06:04 2014 -0800"
      },
      "message": "system/core: remove $(KERNEL_HEADERS) from includes\n\nThe kernel headers are already in the include path, and manually\nadding them again will break on a multiarch build, where the\nkernel headers may be different for each arch.\n\nChange-Id: Ib13d96543f2c97b1b487a46e1748ceb2c5724169\n"
    },
    {
      "commit": "66ed50af6870210ce013a5588a688434a5d48ee9",
      "tree": "a879f3ea31083496d0efe491bc187b6e0ebada39",
      "parents": [
        "dd2ac3de625e6c0328a0f70530d8ade0d2151bfc",
        "536dea9d61a032e64bbe584a97463c6638ead009"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:28:10 2013 -0800"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Nov 22 13:44:43 2013 -0800"
      },
      "message": "Merge commit \u0027536dea9d61a032e64bbe584a97463c6638ead009\u0027 into HEAD\n\nChange-Id: I5c469a4b738629d99d721cad7ded02d6c35f56d5\n"
    },
    {
      "commit": "c7eec83f08329a2a0008ba939c07dd1dc7d9b7ff",
      "tree": "d56ce7475a6ff93463709ac01bb19c4fdf5e5e40",
      "parents": [
        "526b838c9d647e8767fac957c53133153c3cf909"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Aug 12 17:03:32 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Nov 20 10:31:19 2013 +0900"
      },
      "message": "Support parsing RDNSS ND options from netlink.\n\nThe RDNSS options (RFC 6106) used to configure DNS servers via\nrouter advertisements are passed from the kernel to userspace via\nRTM_NEWNDUSEROPT netlink messages. Add code to NetlinkEvent to\nparse them.\n\nAlso fix a compiler warning and a couple of style issues.\n\n[Cherry-pick of b185e90dcc6ac111bff908edcc6d89fd6b37dc11]\n\nBug: 9180552\nChange-Id: I6c532c8f0ceef3afdc977a431a036df398013e1a\n"
    },
    {
      "commit": "526b838c9d647e8767fac957c53133153c3cf909",
      "tree": "3607245eb76bcf88e31cb7b8414caa710aaba49d",
      "parents": [
        "96834569343f38dc006492fccdf6dad68521b005"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Sep 03 00:25:14 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Nov 20 10:29:42 2013 +0900"
      },
      "message": "Switch back to subsystem \"net\" for netlink events.\n\nThe change to enable address tracking via netlink incorrectly\nchanged the subsystem of rtnetlink events from \"net\" to\n\"interface\". This broke interface add/delete notifications,\nwhich come from the kernel with subsystem \"net\".\n\nSwitch back to \"net\" and deal with address tracking via new\naction codes instead of a new subsystem.\n\n[Cherry-pick of f34861346d5c207912075fba9874090e4c947869]\n\nBug: 10433320\nChange-Id: Ibf30efb426949dfd02304cc1d9adb1c005a539a6\n"
    },
    {
      "commit": "96834569343f38dc006492fccdf6dad68521b005",
      "tree": "de25214ce391051de2bc492b4464eafa25c0203f",
      "parents": [
        "381f70f52a282e6da780e4b686aaa9c230be2cdc"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sat Aug 17 03:40:31 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Nov 20 10:29:19 2013 +0900"
      },
      "message": "Get rid of an infinite loop in NetlinkEvent.cpp.\n\n[Cherry-pick of 3984276ce47c965ad02a522280a139e0a0c7e5cf]\n\nBug: 10358527\nBug: 10263310\nBug: 10232006\nChange-Id: I750e4bdf2000040adf214d6a772591d7bd25b350\n"
    },
    {
      "commit": "381f70f52a282e6da780e4b686aaa9c230be2cdc",
      "tree": "b6a9975fad93b8fdc56a8c082ee9f6e1a75931b2",
      "parents": [
        "3fa14a53e70cd55df031646fe3735a6fde37deb8"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Aug 02 05:58:37 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Nov 20 10:29:05 2013 +0900"
      },
      "message": "Parse IP address changes in NetlinkEvent.\n\nThis adds support for parsing RTM_NEWADDR and RTM_DELADDR\nnetlink messages received on netd\u0027s netlink socket and\nformatting them them so NetlinkHandler can process them.\n\nAddress changes are notified in subsystem \"address\". Interface\nchanges, which used to be notified in subsystem \"net\", are now\nnotified in subsystem \"interface\" to avoid confusion.\n\n[Cherry-pick of a4b4e9ad8e35ab424e61d76ebe6654445fc61e63]\n\nBug: 10232006\nChange-Id: I93a50e8de17014e118a42f5cc0eb90a0cbfa73cc\n"
    },
    {
      "commit": "f34861346d5c207912075fba9874090e4c947869",
      "tree": "83cc2d05800af825a00c7eda6c2c7a83b6d9ab01",
      "parents": [
        "5835ac9e31aea910adb6b9d2de1d63df771df45b"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Sep 03 00:25:14 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Sep 03 00:25:14 2013 +0900"
      },
      "message": "Switch back to subsystem \"net\" for netlink events.\n\nThe change to enable address tracking via netlink incorrectly\nchanged the subsystem of rtnetlink events from \"net\" to\n\"interface\". This broke interface add/delete notifications,\nwhich come from the kernel with subsystem \"net\".\n\nSwitch back to \"net\" and deal with address tracking via new\naction codes instead of a new subsystem.\n\nBug: 10433320\nChange-Id: Ibf30efb426949dfd02304cc1d9adb1c005a539a6\n"
    },
    {
      "commit": "3984276ce47c965ad02a522280a139e0a0c7e5cf",
      "tree": "a46b6ebd8cb9cfc1d8c4a76d2f7d5a543177a8b5",
      "parents": [
        "341ed242d400951dd8436cbc988e64c1c075df41"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sat Aug 17 03:40:31 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sat Aug 17 04:02:14 2013 +0900"
      },
      "message": "Get rid of an infinite loop in NetlinkEvent.cpp.\n\nBug: 10358527\nBug: 10263310\nBug: 10232006\nChange-Id: I750e4bdf2000040adf214d6a772591d7bd25b350\n"
    },
    {
      "commit": "a4b4e9ad8e35ab424e61d76ebe6654445fc61e63",
      "tree": "5daa592aef5d300822bc7b937cd9a33f2d0826dd",
      "parents": [
        "f5d3012d2c6ac343a0b8bcc95b9cd5137d9ef02f"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Aug 02 05:58:37 2013 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Aug 14 19:50:22 2013 +0900"
      },
      "message": "Parse IP address changes in NetlinkEvent.\n\nThis adds support for parsing RTM_NEWADDR and RTM_DELADDR\nnetlink messages received on netd\u0027s netlink socket and\nformatting them them so NetlinkHandler can process them.\n\nAddress changes are notified in subsystem \"address\". Interface\nchanges, which used to be notified in subsystem \"net\", are now\nnotified in subsystem \"interface\" to avoid confusion.\n\nBug: 10232006\nChange-Id: I93a50e8de17014e118a42f5cc0eb90a0cbfa73cc\n"
    },
    {
      "commit": "a9e08d3ed60a12f58fc5fdf89f74b4f215ce066f",
      "tree": "82772fcbcfd85a3e696d3792589b160d531fb54c",
      "parents": [
        "084753eedba485673fd070c44bc4a7feb63af483",
        "51a2e4d5d44a6f788da207dff301356e16b4e283"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue May 21 14:39:19 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 21 14:39:19 2013 -0700"
      },
      "message": "am 51a2e4d5: Merge \"libsysutils: fix null pointer and memory leak issue\"\n\n* commit \u002751a2e4d5d44a6f788da207dff301356e16b4e283\u0027:\n  libsysutils: fix null pointer and memory leak issue\n"
    },
    {
      "commit": "544a7f7a36cb9434505fe5cdc9e79d16937ac23f",
      "tree": "8fd1d7fd2e5fab789ef12c1b00e51fe70ce479e8",
      "parents": [
        "f5562cb66c1c15d65bc372ede4c180430e1ce9d7"
      ],
      "author": {
        "name": "Hong-Mei Li",
        "email": "a21834@motorola.com",
        "time": "Mon Apr 01 11:24:44 2013 +0800"
      },
      "committer": {
        "name": "Hong-Mei Li",
        "email": "a21834@motorola.com",
        "time": "Mon May 20 17:30:11 2013 +0800"
      },
      "message": "libsysutils: fix null pointer and memory leak issue\n\nIn SocketClient::quoteArg function\n1. Fix potential null pointer accessing issue\n2. Fix potential memory leak introduced by realloc fail\n\nChange-Id: I1ca0f9089290d43452e9a71428244545f4ed866b\nSigned-off-by: Hong-Mei Li \u003ca21834@motorola.com\u003e\n"
    },
    {
      "commit": "083b5ccba345ed2b4950454f16bd89c5d86b6b27",
      "tree": "4ee4bf33ff25e4ffbb9c06bacce9507ed6d14997",
      "parents": [
        "7716aef138e8029357a7b3dc6a73b41f4de4b0ad"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 22:03:45 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 22:03:45 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: Iab3a9b4307f207c14a04a922cc7350c54e60e9ad\n"
    },
    {
      "commit": "6d358ae44ccfbcd5b89511d142f334b2cc1b67b1",
      "tree": "ab3c1035f273adc03b7cd01f13028cf9f4a59780",
      "parents": [
        "a6fb0e05aa95995445c6f2b65f07db26bdbfd46c"
      ],
      "author": {
        "name": "Josef Kindberg",
        "email": "josef.kindberg@stericsson.com",
        "time": "Wed Feb 23 12:40:44 2011 +0100"
      },
      "committer": {
        "name": "Patrik Ryd",
        "email": "patrik.ryd@stericsson.com",
        "time": "Mon Nov 12 14:40:21 2012 +0100"
      },
      "message": "libsysutils: Increase command buffersize and command args\n\nNeeded to support tethering of multiple remote Bluetooth devices.\n\nChange-Id: I9f736affd83226e8b2fa4f0faacd3654175dd8c9\nSigned-off-by: Patrik Ryd \u003cpatrik.ryd@stericsson.com\u003e\n"
    },
    {
      "commit": "6f523cda13094bf493cdf37e7ecc480bb5a37a2b",
      "tree": "6770c133428553ac2e3abb3545afa281813fe4f4",
      "parents": [
        "99565a9e80882658e1b4ea5b7c610d40d4d7cb0b",
        "7bb1b9585d2d61beaf05c997971aee27f87ad3f7"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed May 30 15:29:07 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 30 15:29:07 2012 -0700"
      },
      "message": "am 7bb1b958: am ff856a2b: Merge \"Add error handling to SocketClient::sendData\"\n\n* commit \u00277bb1b9585d2d61beaf05c997971aee27f87ad3f7\u0027:\n  Add error handling to SocketClient::sendData\n"
    },
    {
      "commit": "2e5fcd08ac177e984ebf1fb05bab5dfcf296c5a4",
      "tree": "8e932ad0f6147550bc4d2b31d74076bfc8025e70",
      "parents": [
        "1d5e7885698ca81241f10d06d475ef4e6075089b"
      ],
      "author": {
        "name": "Mattias Falk",
        "email": "mattias.falk@sonyericsson.com",
        "time": "Fri May 13 16:25:38 2011 +0200"
      },
      "committer": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Tue May 29 14:19:06 2012 +0200"
      },
      "message": "Add error handling to SocketClient::sendData\n\nReturn failure and set errno if mSocket isn\u0027t valid.\n\nChange-Id: I579114d435db46d0bb5682167ef34bebe061a8f8\n"
    },
    {
      "commit": "b982bce73b7e2c824ffb50115ea382fe45c751a4",
      "tree": "c7f75e5408a50675ba161c2e9aeb98b8c7bc8489",
      "parents": [
        "8d3ea1d1e198e71ca3f856c6f397faf40922f562"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Thu Apr 26 23:52:58 2012 -0700"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Thu Apr 26 23:52:58 2012 -0700"
      },
      "message": "Revert \"libsysutils: NetlinkEvent: add support for interface xt_IDLETIMER events.\"\n\nThis reverts commit 731d831e91d5d9f8b15ca95367977abe35967166.\n\nNow that the xt_IDLETIMER uses the KOBJECT_UEVENT netlink, this\nchange is not needed anymore.\n"
    },
    {
      "commit": "594947793c98e8e7f58f0e9b2cb962c9ef23adeb",
      "tree": "01be6143d60f80dec1048e5cea81c819e0d96ff2",
      "parents": [
        "545ab46063f083239b29e59b8b491656d93f2a38"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Apr 20 15:21:07 2012 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Apr 20 17:41:42 2012 -0700"
      },
      "message": "Add ability to quote responses as needed.\n\nIt\u0027s up to the protocol to know when quotes are required.  In the future\nthe response should probably all be binary blobs with lengths.\n\nbug:6353048\nChange-Id: I3f9b48ab0f4e6746d75cdc9c0c84d33f38f63661\n"
    },
    {
      "commit": "731d831e91d5d9f8b15ca95367977abe35967166",
      "tree": "041d773389dc1d6543fda3bb618d2a9233632c8f",
      "parents": [
        "720d598280e5ebd3fb7c845a2a11520bb646d645"
      ],
      "author": {
        "name": "Ashish Sharma",
        "email": "ashishsharma@google.com",
        "time": "Tue Apr 10 18:59:16 2012 -0700"
      },
      "committer": {
        "name": "Ashish Sharma",
        "email": "ashishsharma@google.com",
        "time": "Wed Apr 11 17:24:46 2012 -0700"
      },
      "message": "libsysutils: NetlinkEvent: add support for interface xt_IDLETIMER events.\n\nxt_IDLETIMER events are used to infer the interface (radio) state\nbased on a inactivity timeout value.\n\nChange-Id: I755eb54a048ca1c6ce0c646564d61188d8241851\n"
    },
    {
      "commit": "d98533a01213ef8d4ef9a644074ada200cdfc926",
      "tree": "e3dd3f175793ae35d4dfb6c98c56b040373e9f87",
      "parents": [
        "15892e10a49b5b5f3d612228cd3e125cf3b43025"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Thu Mar 29 15:44:06 2012 -0700"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Thu Mar 29 16:38:58 2012 -0700"
      },
      "message": "Added netlink failure logging to NetlinkListener.cpp\n\nThis depends on If2f00708a1dd6196c415b1ebc2a7eeb72399a90e\n\nChange-Id: If6c63e46f906b94f4778eb5e78123d8efe1710d4\n"
    },
    {
      "commit": "6ac770fc52595b8230c3286d7707c85b003aeac1",
      "tree": "b9ef2bdec2ce15b6131b9849f8a46dff60a8b117",
      "parents": [
        "63d84d049a4673517b389188366ef61f840e9c2d"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Mon Mar 12 10:20:42 2012 -0700"
      },
      "committer": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Mon Mar 12 10:20:42 2012 -0700"
      },
      "message": "Do not generate SIGPIPE errors in SocketCLient.\n\nThis change is to make sure the users of library does not crash\nif they are not handling SIGPIPE properly.\n\nChange-Id: I4ea80d6bfc26a4bca6b901959ae3060b059d46d3\n"
    },
    {
      "commit": "7599bfcf13cf022333338b7a87aaddae69c48d73",
      "tree": "efe6c3ca539af273e8b150d385af7288488ddbe7",
      "parents": [
        "b015977acbb7cea0344ca58f15e762fcbb99a7dc"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Mar 08 16:10:06 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Mar 09 11:55:51 2012 -0800"
      },
      "message": "Fix pointer arith.\n\nSending 3digit code, null, binary-length and data.  Current code sends\n3digit code, space, null, binary-length, binary-data.\n\nThe space should not be sent.\n\nChange-Id: I1df00a3e70805b39b6105966c7f3c613461a6858\n"
    },
    {
      "commit": "7bf4c45f842ded6d6ad6b2d80e052ddf56969723",
      "tree": "4c5d19db79c7a141062dd81288be0209f8079924",
      "parents": [
        "78f6bcf853db3dd9b9b37a0ca4d4ee0374f6835a"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Mon Feb 27 16:04:37 2012 -0800"
      },
      "committer": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Wed Mar 07 16:19:52 2012 -0800"
      },
      "message": "Add a utility function to send a code + binary msg\n\nAdd a utility function to SocketClient to send a c-string code\nprepended to a binary message. This is necessary to be able to\nsend a binary message while keeping compatible with underlying\ntext-based protocol.\n\nChange-Id: Ifc6562003a687577d7deb50260533a5147ae4f97\n"
    },
    {
      "commit": "8702bb17f40022e970e8acd40b348d074e39afc7",
      "tree": "5b8f27e686d6d2b7850129c3d59f435103c482b2",
      "parents": [
        "ca3bf25570c197757f75b749cddecfea88cbcdc1"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 07 12:23:14 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Mar 05 11:44:43 2012 -0800"
      },
      "message": "New NativeDaemonConnector protocol adds a seqnum.\n\nAllows for one socket to be multiplexed for multiple requests.\nDoesn\u0027t use command sequence numbers for broadcasts - would make no sense.\nDoesn\u0027t alter current default behavior so OEM\u0027s using these classes\nwon\u0027t notice a difference.\nbug:5864209\n\nChange-Id: Ie3b19c4f81eea868569229a365c8cb7de249c2dd\n"
    },
    {
      "commit": "a8185a622e368d1957e18a3ee9d29d45eda12cfc",
      "tree": "a98a179d56f71e2280e1b48f4cc5807fa630eac2",
      "parents": [
        "dc58e73071aa829a5038caf37211f6b3e2d7b275"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue Feb 07 19:13:28 2012 -0800"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue Feb 07 19:26:54 2012 -0800"
      },
      "message": "Revert \"New NativeDaemonConnector protocol adds a seqnum.\"\n\nReverting because it seems to break `adb reboot`\n\nThis reverts commit dc58e73071aa829a5038caf37211f6b3e2d7b275.\n\nChange-Id: Ib8cc4379254694398cbb7f3e7a64c20e1ed8c1ba\n"
    },
    {
      "commit": "dc58e73071aa829a5038caf37211f6b3e2d7b275",
      "tree": "8a92d09200206a41977c40a7dfb8784c24f7118a",
      "parents": [
        "6f53225ef9f60a18a69b4ad3ba920ada168b719e"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 07 12:23:14 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 07 16:00:07 2012 -0800"
      },
      "message": "New NativeDaemonConnector protocol adds a seqnum.\n\nAllows for one socket to be multiplexed for multiple requests.\nbug:5864209\n\nChange-Id: I934c88da25d95e093371f455442bdf2f0ed7a4f4\n"
    },
    {
      "commit": "6bbaaa630195a1bcfa90c168a354f76b90125ed6",
      "tree": "30cf94ff59884b409301a00c05ed590607a0cfc7",
      "parents": [
        "90284b1299a9cdf4411429fa7926de7ba59b245c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Nov 18 08:46:54 2011 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Nov 18 08:46:54 2011 -0800"
      },
      "message": "libsysutils: log dispatchCommand overflow.\n\nChange-Id: Iefd3f7cc170c1fe65209c6ffe10debc21aed0c7f\n"
    },
    {
      "commit": "477df68854ff0b92f1ca8f7f18d53b6a0c30102a",
      "tree": "a587ddbc4f03e0dcb63fcf3c74148df1645e932e",
      "parents": [
        "aa75df74db5beffd25821ed6c360c36197d7bac1"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Oct 28 23:57:32 2011 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Oct 28 23:57:32 2011 -0700"
      },
      "message": "Remove log spam\n\nBug: 5533986\nChange-Id: I3d8108e2f65ce6513ac8b2d14541eaa5e4fc5da1\n"
    },
    {
      "commit": "4520246d3534c087f3e9253c34f99dd1e45b7bd7",
      "tree": "68fb2d909e6258f785347d60a026b42efeaa93b4",
      "parents": [
        "2a32df25b8bb307693173911041458aaca84c84c"
      ],
      "author": {
        "name": "Xianzhu Wang",
        "email": "wangxianzhu@google.com",
        "time": "Thu Sep 29 12:59:55 2011 +0800"
      },
      "committer": {
        "name": "Xianzhu Wang",
        "email": "wangxianzhu@google.com",
        "time": "Thu Sep 29 13:42:32 2011 +0800"
      },
      "message": "Fix SocketListener socket leak issue.\n\nThe problem was: if a socket is shared between SocketListener and another\nthread, only if the last reference is removed by SocketListener can the socket\nbe closed, otherwise the socket will leak. This sometimes happens in netd\u0027s\ndnsproxyd.\n\nThis change let the SocketClient own the socket and close the socket when\nthe SocketClient is destructed.\n\nChange-Id: I2865fbfe9ee4d8b3e43d7e02919dbb2d261f70de\n"
    },
    {
      "commit": "e6f80149a201e02ddd1e251e0690ad100b688cd6",
      "tree": "e89f531709e7212ec3ea685f63451a0006e8710f",
      "parents": [
        "2210a837561000eb91007edec94a4587158d9d86"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Thu Jul 14 16:46:32 2011 -0700"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Thu Jul 14 16:46:32 2011 -0700"
      },
      "message": "NetlinkEvents: adding support for iptables\u0027 quota2 NFLOG messages.\n\nIt passes the quota2 name and the device at the time the quota was\nreached.\n  ALERT_NAME\u003d...\n  INTERFACE\u003d...\n\nThis needs the new kernel in which xt_quota2 can log.\n\nChange-Id: Icf5045374e1e33bdd1da0d2a2c183e70903a1fea\n"
    },
    {
      "commit": "29e1e7393d1742f9dd5663c63026f50981e5bd89",
      "tree": "0baf9441d44fce10821ec9bf1f32655e5695a8aa",
      "parents": [
        "56286d6fdb07d8b1310c27eeb59bdf05500f166e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:32 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:32 2011 -0700"
      },
      "message": "Remove the simulator target from all makefiles.\nBug: 5010576\n\nChange-Id: I2fcf31af681d92880e5d31a46d5f6777f7ca1977\n"
    },
    {
      "commit": "2a56688da92fcf22ea8ce996e2a0e7b453d1543b",
      "tree": "4d61a27da2ec17d97c951103405ebea156659bd2",
      "parents": [
        "17260b14682d4fe59dad3de2de8c9370e6ba9a71"
      ],
      "author": {
        "name": "Mike J. Chen",
        "email": "mjchen@google.com",
        "time": "Thu Jun 23 15:04:32 2011 -0700"
      },
      "committer": {
        "name": "Mike J. Chen",
        "email": "mjchen@google.com",
        "time": "Thu Jun 23 18:59:45 2011 -0700"
      },
      "message": "Workaround Motorola ril.so incompatiblity with Netlink changes\n\nTo workaround a binary incompatiblity with Motorola\u0027s ril.so, I had to\ntemporarily provide the old constructor for NetlinkListener as well as\na new contructor that takes an additional format argument.\nThere\u0027s still a slight chance of a problem because the size of the\nNetlinkListener has changed with the addition of the\nmFormat member, but so far I\u0027ve not seen any obvious problem with that\nincompatiblity.\n\nAnother way we could have worked around the incompatiblity is to have\nnetd (the main user of the new format argument to NetlinkListener) keep\ntrack of the format itself in it\u0027s NetlinkHandler (derived from NetlinkListener)\nand supply it\u0027s own version of onDataAvailable() that\u0027s almost 100% identical\nto NetlinkListener\u0027s except for the decode() call.  That would allow us\nnot to modify NetlinkListener at all.  Worth considering but I think it\u0027s\nmore properly divided right now and we just have to make Motorola fix their\ncode (and ideally not use our private APIs).\n\nThis change should be reverted when Motorola\u0027s has fixed their ril to\neither not use our private APIs or to use our updated ones.\n\nChange-Id: I255cca6908444e56cbbbed7eef1fa0cf1d8f0918\nSigned-off-by: Mike J. Chen \u003cmjchen@google.com\u003e\n"
    },
    {
      "commit": "17260b14682d4fe59dad3de2de8c9370e6ba9a71",
      "tree": "e27c5d98b06c7b0b83702bd161b70a1a40b9dd44",
      "parents": [
        "ec16b9d47cacb0d873ee0ff80c919f49215c0005"
      ],
      "author": {
        "name": "Mike J. Chen",
        "email": "mjchen@google.com",
        "time": "Thu Jun 23 15:00:30 2011 -0700"
      },
      "committer": {
        "name": "Mike J. Chen",
        "email": "mjchen@google.com",
        "time": "Thu Jun 23 18:59:45 2011 -0700"
      },
      "message": "Cleanup NetlinkListener and NetlinkEvent\n\nTo make it easier to be compatible with older existing code, use\ndefault parameters instead of separate functions for setting.\n\nAlso, reintroduce the const usage that was not in the original\nchanges by Stan.\n\nAlso fix some indent spacing.\n\nChange-Id: Ice9ec7f0d5c4a0673037e2e04a764d88a98f68eb\nSigned-off-by: Mike J. Chen \u003cmjchen@google.com\u003e\n"
    },
    {
      "commit": "ec16b9d47cacb0d873ee0ff80c919f49215c0005",
      "tree": "001ba2be28407e94c0e295890764387a94404cec",
      "parents": [
        "9661a3aecd39cca95bd07253c52b99521409c147"
      ],
      "author": {
        "name": "Mike J. Chen",
        "email": "mjchen@google.com",
        "time": "Thu Jun 23 14:55:28 2011 -0700"
      },
      "committer": {
        "name": "Mike J. Chen",
        "email": "mjchen@google.com",
        "time": "Thu Jun 23 18:59:45 2011 -0700"
      },
      "message": "Revert \"Revert \"Add NETLINK_ROUTE processing to the netlink client code, so that Ethernet\"\"\n\nThis reverts commit 1d504eeb50d980c222572629383bb76315f32ca0.\n\nConflicts:\n\n\tlibsysutils/src/NetlinkEvent.cpp\n\nBring back the changes from Stan Chesnutt regarding adding NETLINK_ROUTE\nprocessing.  The original commit message description was:\n\n    Add NETLINK_ROUTE processing to the netlink client code, so that Ethernet\n    physical-layer up/down events can be tracked.  Upper layers will use these\n    events to enable/disable Ethernet connectivity.\n\nThe original change was reverted due to an incompatiblity with Motorola\u0027s\nril.so binary.  I\u0027ll submit a patch to workaround that incompatiblity\nseparately.\n\nChange-Id: I4e97ac98833b10543e654c63ecae3b9b8c7db44f\nSigned-off-by: Mike J. Chen \u003cmjchen@google.com\u003e\n"
    },
    {
      "commit": "57de8b8f27f887ca8084671df777a4ac199ba647",
      "tree": "d9930fdd0e8eee5ce0060f9949bb67645a7e3841",
      "parents": [
        "9b7ee137e097c97c1c324f994eb2f03f900121b8"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 11 14:58:24 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 11 14:58:24 2011 -0700"
      },
      "message": "rename uevent_checked_recv to uevent_kernel_multicast_recv\n\nChange-Id: I1839627490080efcbb7269699709064856312f8b\n"
    },
    {
      "commit": "531312e491079b7d62612fa35b64e8398f1b3283",
      "tree": "8ffb6f03f55a912e68ded1e5bc388a7ac1a4e6b1",
      "parents": [
        "fdbbdc4ecda05e028ec41352b373d8232f600ccc"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Apr 29 16:49:22 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Apr 29 16:49:22 2011 -0700"
      },
      "message": "NetlinkListener: eliminate duplicate code\n\nThe checks in this code duplicate uevent_checked_recv().\nUse that instead.\n\nChange-Id: I2c48bcf4372f0975c27a63d929cae73e16422faf\n"
    },
    {
      "commit": "02c8a9cf594d8a074a707e06553a230a690124c4",
      "tree": "3debc0260ec3ba326ab3ad743c3b2b44905e9deb",
      "parents": [
        "81ce51dae95deb0dc6b07cbd96bd07d08aad5178",
        "18f6d964cbee483106da5c96a8c067a948324da7"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Apr 27 09:55:31 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 27 09:55:31 2011 -0700"
      },
      "message": "am 18f6d964: am f819d023: Merge \"libsysutils: SocketListener: handle recv errors more gracefully.\"\n\n* commit \u002718f6d964cbee483106da5c96a8c067a948324da7\u0027:\n  libsysutils: SocketListener: handle recv errors more gracefully.\n"
    },
    {
      "commit": "18f6d964cbee483106da5c96a8c067a948324da7",
      "tree": "bcf730e2301860816597c7b5ff20e93a9e5a51a3",
      "parents": [
        "55537c347bb31d0e2b176ca2550d2054877f9d54",
        "f819d0233646668b06de36a787979e3b180d6c48"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Apr 27 09:40:04 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 27 09:40:04 2011 -0700"
      },
      "message": "am f819d023: Merge \"libsysutils: SocketListener: handle recv errors more gracefully.\"\n\n* commit \u0027f819d0233646668b06de36a787979e3b180d6c48\u0027:\n  libsysutils: SocketListener: handle recv errors more gracefully.\n"
    },
    {
      "commit": "8795007a4aedb0860f6e7b838984ba8104f2febc",
      "tree": "536b5c05ae62e99b85dda1f3f304b5e1f30da622",
      "parents": [
        "2f7995ee0ff480b4ee06e8944e7d4569b59a5bad"
      ],
      "author": {
        "name": "Vernon Tang",
        "email": "vt@foilhead.net",
        "time": "Wed Apr 27 14:01:27 2011 +1000"
      },
      "committer": {
        "name": "Vernon Tang",
        "email": "vt@foilhead.net",
        "time": "Wed Apr 27 14:01:27 2011 +1000"
      },
      "message": "libsysutils: SocketListener: handle recv errors more gracefully.\n\nDon\u0027t close the socket when onDataAvailable returns false if the socket\nis connectionless.\n\nChange-Id: Ie19497f5928144c463d92aa72ba517e675549ea6\n"
    },
    {
      "commit": "a265e5a352c2f43d3229702eb215347b3f7e2047",
      "tree": "37c71674ec2be2b32ae65905f522fdfaec58209c",
      "parents": [
        "0ffe483a6a9191fc6da031bbcdbdc50f6f64bdf0",
        "d94bbc326ab0e9ceca6f3f90a2864e40bb584c07"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 19 15:40:50 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 19 15:40:50 2011 -0700"
      },
      "message": "am d94bbc32: am 6bc08280: Validate sender credentials on netlink msg receive\n\n* commit \u0027d94bbc326ab0e9ceca6f3f90a2864e40bb584c07\u0027:\n  Validate sender credentials on netlink msg receive\n"
    },
    {
      "commit": "6bc08280108d020edfceff039f3955eebdc1e45c",
      "tree": "daefe1fa1cb80f28ed17c2291af071170eb7f5f5",
      "parents": [
        "71ead1835317af5305f9ef87ce06ebdf9cff92e6"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Apr 18 15:55:59 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 19 12:33:44 2011 -0700"
      },
      "message": "Validate sender credentials on netlink msg receive\n\nVerify that netlink messages are actually from the kernel,\nand not from a userspace program.\n\nThis is a manual cherry-pick from b620a0b1c7ae486e979826200e8e441605b0a5d6\n\nChange-Id: I237f0a5cb56393bb3aab64a7ae5898f2bdc95cef\n"
    },
    {
      "commit": "4aadb7f6df4fd21f66c37b8ac0ea8ebf939b41bf",
      "tree": "211f6b4dc1b14c9db51eb8cb6690fafb4d629b56",
      "parents": [
        "e4bcf8305748e8799df9047fb0f6881553dd43b5",
        "b620a0b1c7ae486e979826200e8e441605b0a5d6"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Apr 18 16:29:45 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 18 16:29:45 2011 -0700"
      },
      "message": "am b620a0b1: Validate sender credentials on netlink msg receive\n\n* commit \u0027b620a0b1c7ae486e979826200e8e441605b0a5d6\u0027:\n  Validate sender credentials on netlink msg receive\n"
    },
    {
      "commit": "b620a0b1c7ae486e979826200e8e441605b0a5d6",
      "tree": "6392ad2bcc3b43b37b62dca6ab0a74d077bb0d4f",
      "parents": [
        "336bc321a6e978a273098148e13a82c5e7ec3be5"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Apr 18 15:55:59 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Apr 18 15:55:59 2011 -0700"
      },
      "message": "Validate sender credentials on netlink msg receive\n\nVerify that netlink messages are actually from the kernel,\nand not from a userspace program.\n\nChange-Id: I709c0efe9ba0258f6d79ebcde531d7f7bbe780b2\n"
    },
    {
      "commit": "4fecade5f21d5d062ebe1c70535367d3407bb68f",
      "tree": "8997c814b16a593c8915a36e5f3e0d2db430bfec",
      "parents": [
        "15b15c4b4acede0b999e6a7af9ce797c6a58a62a",
        "cb1e616e3c108a9c8b159bb95c3356acf5797ba2"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Mar 29 08:45:04 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 29 08:45:04 2011 -0700"
      },
      "message": "am cb1e616e: am 7c556549: Merge changes Icdefb5ff,Icd7f5f03\n\n* commit \u0027cb1e616e3c108a9c8b159bb95c3356acf5797ba2\u0027:\n  Fix potential race introduced in Icd7f5f03\n  SocketClient: add optional reference counting\n"
    },
    {
      "commit": "3549b0dc2829184f9911d27a6ab0cf39b19764f1",
      "tree": "7667b9535a0f4d95d755f2e544182f04e9993879",
      "parents": [
        "13aa8ad44570bceef73115cea749b11f30888530"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Mar 17 17:14:46 2011 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Mar 22 14:03:11 2011 -0700"
      },
      "message": "Fix potential race introduced in Icd7f5f03\n\nDigit wrote:\n\n\"You probably don\u0027t want to close the socket here without updating\nc-\u003esocket as well. Otherwise, another thread holding a handle to the\nclient after the c-\u003edecRef() could end up sending a message to a\ndifferent socket, if the file descriptor index is reused by another\nclient in the meantime.\"\n\nChange-Id: Icdefb5ffc0c7607325d7db761e1f04e5d868bfb7\n"
    },
    {
      "commit": "13aa8ad44570bceef73115cea749b11f30888530",
      "tree": "156695b75e5e3ff9f88f6a165520d1ff516678db",
      "parents": [
        "15d09854a8b2a1adf2fa5123ff77b9882afd6c22"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Mar 17 15:41:20 2011 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Mar 22 14:03:08 2011 -0700"
      },
      "message": "SocketClient: add optional reference counting\n\nNeeded to fix a race in netd.\n\nBug: 3438459\nChange-Id: Icd7f5f035510235f733a25c0621479d3e644b152\n"
    },
    {
      "commit": "15d09854a8b2a1adf2fa5123ff77b9882afd6c22",
      "tree": "e92a2055b7ba3bb83da13edec0568417eb2b8d6d",
      "parents": [
        "100c0e2dab243da3a5351f1acbcdc560af10a405"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 21 19:25:51 2011 +0100"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Mar 22 14:03:04 2011 -0700"
      },
      "message": "libsysutils: Fix a file descriptor leak.\n\nThe recent refactoring of the select() loop in SocketListener\nmissed a close() of the file descriptor when the onDataAvailable()\ncallback returns false.\n\nChange-Id: I767caefab4b98ab350f2db2497ee2bd630f20850\n"
    },
    {
      "commit": "100c0e2dab243da3a5351f1acbcdc560af10a405",
      "tree": "7f9216684865fd977e6ee3df90ff742598657734",
      "parents": [
        "01feae2d7cbd607970c8008055094a6259658939"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 17 03:10:31 2011 +0100"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Mar 22 14:02:51 2011 -0700"
      },
      "message": "libsysutils: Fix race condition in SocketListener thread.\n\n+ Handle EINTR in accept(), write() and select()\n+ Fix a memory leak when deleting the mClients list\n+ Fix typo in SocketListener.h\n\nChange-Id: Ie68bb3e2dbefe0dfdaa22a5cd06a42dbc4c0f8aa\n"
    },
    {
      "commit": "01feae2d7cbd607970c8008055094a6259658939",
      "tree": "e5a72d2c67e3fdde4428453636de7f8670138fba",
      "parents": [
        "e6b638be199a5f16f3eaff69710d92ea248d60a3"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 17 02:34:15 2011 +0100"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Mar 22 14:02:18 2011 -0700"
      },
      "message": "libsysutils: Handle EINTR in SocketClient::sendData()\n\n+ Improve allocation code in sendMsg(code,msg,addErrno)\n\nChange-Id: Ib5fe84bec1a167c369e7ba759acea395e832f6b5\n"
    },
    {
      "commit": "1aa59a83b57154d7b28f92e28d41ba497d639895",
      "tree": "91c58cb27001c063d59d0e50b719965413f73e06",
      "parents": [
        "cecec9d027b05c20ed79e8d55a025619f66252b3"
      ],
      "author": {
        "name": "Brian Swetland",
        "email": "swetland@google.com",
        "time": "Sun Jan 23 19:13:23 2011 -0800"
      },
      "committer": {
        "name": "Brian Swetland",
        "email": "swetland@google.com",
        "time": "Sun Jan 23 19:13:23 2011 -0800"
      },
      "message": "libsysutils: do not build for TINY_ANDROID\n\nThis depends on frameworks/... :-(\n\nTechnically it doesn\u0027t belong in system/core at all, but of course there are\nthings in system/core that depend on it, so for now we\u0027ll hack around this.\n\nChange-Id: I6aa437f18e1c09bd10fbd3333cf6998a0b6140c6\n"
    },
    {
      "commit": "b913b5170f3b957d7d1ced425e891a4208ce88bc",
      "tree": "cf58bb53582b7253109a61f35dd45300418d0b71",
      "parents": [
        "c1b546b22dc229fdbef9105f010e3ac0172cfc8f"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 21 19:25:51 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 21 19:25:51 2011 +0100"
      },
      "message": "libsysutils: Fix a file descriptor leak.\n\nThe recent refactoring of the select() loop in SocketListener\nmissed a close() of the file descriptor when the onDataAvailable()\ncallback returns false.\n\nChange-Id: I767caefab4b98ab350f2db2497ee2bd630f20850\n"
    },
    {
      "commit": "af91e4ef095d2c770f1aeceafc1c2e66b645a3c4",
      "tree": "550d7971c23066431f561832ded930e7d76a16cf",
      "parents": [
        "c6b0def5f039dc3bbe1d4b7dc1666c24316eb020"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 17 03:35:28 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jan 19 02:18:40 2011 +0100"
      },
      "message": "libsysutils: Handle EINTR in FrameworkClient.cpp\n\n+ get rid of strcpy + strcat calls.\n\nChange-Id: I47778f3d14aa961474648cddf6510b761f124e74\n"
    },
    {
      "commit": "c6b0def5f039dc3bbe1d4b7dc1666c24316eb020",
      "tree": "4b4e46acd532701eee188c4a72926edcc32073fc",
      "parents": [
        "cf9e1003ce69a2aea2c64cd82d54a0d3e8917dbb"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 17 03:29:04 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jan 19 02:18:40 2011 +0100"
      },
      "message": "libsysutils: Fix potential overwrites in FrameworkListener\n\n+ Handle EINTR in read()\n\nChange-Id: If7d486dd4fb5666ce16ef36dca5f417da23e0b73\n"
    },
    {
      "commit": "cf9e1003ce69a2aea2c64cd82d54a0d3e8917dbb",
      "tree": "ccf54510a8fc04d6d94900b403cf07ac42a79ae0",
      "parents": [
        "af61509b50bc110b0c7c4691e37873cc0987ab5c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 17 03:10:31 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jan 19 02:18:40 2011 +0100"
      },
      "message": "libsysutils: Fix race condition in SocketListener thread.\n\n+ Handle EINTR in accept(), write() and select()\n+ Fix a memory leak when deleting the mClients list\n+ Fix typo in SocketListener.h\n\nChange-Id: Ie68bb3e2dbefe0dfdaa22a5cd06a42dbc4c0f8aa\n"
    },
    {
      "commit": "af61509b50bc110b0c7c4691e37873cc0987ab5c",
      "tree": "9c9a2829e43dcdd2770e3a51ab145c83ae9635c0",
      "parents": [
        "af174f0039bf462c36b89fd1439a44c60c4b89c9"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 17 02:34:15 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jan 19 02:18:40 2011 +0100"
      },
      "message": "libsysutils: Handle EINTR in SocketClient::sendData()\n\n+ Improve allocation code in sendMsg(code,msg,addErrno)\n\nChange-Id: Ib5fe84bec1a167c369e7ba759acea395e832f6b5\n"
    },
    {
      "commit": "af174f0039bf462c36b89fd1439a44c60c4b89c9",
      "tree": "315e5456fed64df877212270c0776cc3ec6a32c4",
      "parents": [
        "b59539d395218299f4b4288a26403fedb3d8124c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 17 02:22:22 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jan 19 02:18:40 2011 +0100"
      },
      "message": "libsysutils: Fix wait loop in ServiceManager::start and ::stop\n\nAlso check the service name length.\n\nChange-Id: Iffb82aa9e71dd96c85c05c4e2016930f4847c1e8\n"
    },
    {
      "commit": "b59539d395218299f4b4288a26403fedb3d8124c",
      "tree": "e09d2098f2039b97971bfa4537337daad82efbe4",
      "parents": [
        "3311eea1d3881e6f3d6806988b7db3de0a5f68d5"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 17 02:04:37 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jan 19 02:18:40 2011 +0100"
      },
      "message": "libsysutils: Handle EINTR in NetlinkListener\n\nChange-Id: Id881a9ca0f0e54f7c78b3609120bedec00d6671c\n"
    },
    {
      "commit": "3311eea1d3881e6f3d6806988b7db3de0a5f68d5",
      "tree": "428b6084959008ff84bec67115ca033a0f1a72e2",
      "parents": [
        "a42f152b4ae365e2f8d232237a8aa0168061feb4"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 17 01:59:22 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jan 19 02:18:32 2011 +0100"
      },
      "message": "libsysutils: Fix NetLinkEvent security issues.\n\nThe issues were the following:\n- The code in decode() didn\u0027t handle the degenerate case where the input buffer is full of \u0027@\u0027\n- The code in decode() assumed the input buffer is properly zero-terminated.\n- The code in decode() would not check that it doesn\u0027t overwrite the mParams[] array.\n- The code in findParam() would check mParams[i] before checking the value of \u0027i\u0027\n\nAlso remove un-necessary calls to strlen() at runtime.\n\nChange-Id: I8acead959bd10d97c5380b08958fcb796248a010\n"
    },
    {
      "commit": "b9634d05cf4fedb2ee49b0a41aeb129d35337ce9",
      "tree": "147eed5ac6e002c638519b47152dbfb009033c89",
      "parents": [
        "a2a1f3149fb32d95bc81ddfd713d5bba9d6cbc61"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Nov 02 10:55:52 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jan 06 11:16:15 2011 -0800"
      },
      "message": "Permit 0 length writes.\n\nChange-Id: I087d0074c8d9e13ce814187475966da94f693fc0\n"
    },
    {
      "commit": "a2a1f3149fb32d95bc81ddfd713d5bba9d6cbc61",
      "tree": "1e9d4f376979f5ef570c03bac03cfdeab987e8e8",
      "parents": [
        "f1c2a7352f19cf729f91bf2559fc93ef12c74dca"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Oct 27 10:23:16 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jan 06 11:09:55 2011 -0800"
      },
      "message": "Let SocketClient users write binary data to clients.\n\nThis is a dependency for the DNS proxy CLs.\n\nThis CL also adds a new socket for the netd process to inherit which\nis owned by the inet group.  (so only apps with the INTERNET\npermission can use the DNS proxy...)\n\nChange-Id: I8a51924e0ed56c6066f77e6f1b02d39bdadac51e\n"
    },
    {
      "commit": "b93e5812faffd3b6c5fb349072413aace31918d8",
      "tree": "dbffdf9f41b914b32da131fbdd0eee435c2ec656",
      "parents": [
        "609d8828d3b8266a80606bf902d1294296962cf3"
      ],
      "author": {
        "name": "Olivier Bailly",
        "email": "olivier@google.com",
        "time": "Wed Nov 17 11:47:23 2010 -0800"
      },
      "committer": {
        "name": "Olivier Bailly",
        "email": "olivier@google.com",
        "time": "Wed Nov 17 11:47:23 2010 -0800"
      },
      "message": "Add missing headers for compilation on x86 targets\n\nChange-Id: I5f4dc797b353a0f01fa00d38375ec303bf863254\n"
    },
    {
      "commit": "16ae478af46100a435c2875afa020721a59a411a",
      "tree": "1152fb4e6ff8a89e600ca251d625785e83f2b511",
      "parents": [
        "2e0047bdc067006d1e38418b2a0e24612d8068ba"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Nov 02 10:55:52 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Nov 02 10:56:15 2010 -0700"
      },
      "message": "Permit 0 length writes.\n\nChange-Id: I087d0074c8d9e13ce814187475966da94f693fc0\n"
    },
    {
      "commit": "8c5669f9f9a228efebf4059fd4ceace5cece578b",
      "tree": "e9a36458620d4d93884c8e611fd7c39a2cb39567",
      "parents": [
        "7ffa661595df7bc71f1ae2e8cefcd658b0f9bdf5"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Oct 27 10:23:16 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Oct 27 10:27:34 2010 -0700"
      },
      "message": "Let SocketClient users write binary data to clients.\n\nThis is a dependency for the DNS proxy CLs.\n\nThis CL also adds a new socket for the netd process to inherit which\nis owned by the inet group.  (so only apps with the INTERNET\npermission can use the DNS proxy...)\n\nChange-Id: Ic3475c697913ba85805b4e49801b65e7a1d59289\n"
    },
    {
      "commit": "1db75e7b9b5159fa3bcf1cfdc4efba62c570d860",
      "tree": "2aacee8cf3a14de0079bfd78de2590cb525df5f3",
      "parents": [
        "2c42e4404bba0a1b065d223a1e84ef7184e1a987",
        "6fd75635d820754295557c300ccee89c643864cc"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 14 14:39:18 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 14 14:39:18 2010 -0700"
      },
      "message": "am 6fd75635: Merge \"Fetch peer credentials for local sockets\" into gingerbread\n\nMerge commit \u00276fd75635d820754295557c300ccee89c643864cc\u0027 into gingerbread-plus-aosp\n\n* commit \u00276fd75635d820754295557c300ccee89c643864cc\u0027:\n  Fetch peer credentials for local sockets\n"
    },
    {
      "commit": "30abb7234de2a9caa1add4b00a189436f0b24560",
      "tree": "7920d9c39658ef8a7dc10e3ba825857597953912",
      "parents": [
        "40c2b7cbedff612ce8bc7a51589a952cc1d047b6"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 14 14:26:12 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 14 14:35:10 2010 -0700"
      },
      "message": "Fetch peer credentials for local sockets\n\nFetch the PID, UID, and GID of the remote side of a local socket\nconnection in case any users of this library class want to check it.\n\nChange-Id: Ia3230e6bc68ab6f93160df9f5996d2bf744b872c\n"
    },
    {
      "commit": "0e6242f7e2c1181d486ae8f86592619738574dd3",
      "tree": "7d5e5e2522b85f1fb16d96af2b444e7c0a746511",
      "parents": [
        "c3fa6149284058b30e3eea5010c16d3133711afb",
        "40c2b7cbedff612ce8bc7a51589a952cc1d047b6"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Sep 14 10:46:35 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 14 10:46:35 2010 -0700"
      },
      "message": "am 40c2b7cb: Merge \"Add missing lock in SocketListener.\" into gingerbread\n\nMerge commit \u002740c2b7cbedff612ce8bc7a51589a952cc1d047b6\u0027 into gingerbread-plus-aosp\n\n* commit \u002740c2b7cbedff612ce8bc7a51589a952cc1d047b6\u0027:\n  Add missing lock in SocketListener.\n"
    },
    {
      "commit": "40c2b7cbedff612ce8bc7a51589a952cc1d047b6",
      "tree": "6ce1dc9b3449a882adc0cf42c9b8e35aab8abd2c",
      "parents": [
        "f31d2ed1fd3a39a92bccc12eb66728594290ef3b",
        "86d01dec4b8690d94053fbe86d46c9ae26de9ae6"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Sep 14 10:44:15 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 14 10:44:15 2010 -0700"
      },
      "message": "Merge \"Add missing lock in SocketListener.\" into gingerbread"
    },
    {
      "commit": "c3fa6149284058b30e3eea5010c16d3133711afb",
      "tree": "07c0b53d14a150a6cf88811bfbf7138c1bae0994",
      "parents": [
        "5833769d9aa41dfb28a74c665fda0fca9c321fc1",
        "f31d2ed1fd3a39a92bccc12eb66728594290ef3b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 14 10:24:26 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 14 10:24:26 2010 -0700"
      },
      "message": "am f31d2ed1: Return false on socket read error\n\nMerge commit \u0027f31d2ed1fd3a39a92bccc12eb66728594290ef3b\u0027 into gingerbread-plus-aosp\n\n* commit \u0027f31d2ed1fd3a39a92bccc12eb66728594290ef3b\u0027:\n  Return false on socket read error\n"
    },
    {
      "commit": "86d01dec4b8690d94053fbe86d46c9ae26de9ae6",
      "tree": "11394cc787a1747202f23123a9c37680f4f109fc",
      "parents": [
        "09dd3e57b920c8f65cb486313a4c0f35b8cb9f46"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Sep 14 10:22:14 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Sep 14 10:22:14 2010 -0700"
      },
      "message": "Add missing lock in SocketListener.\n\nChange-Id: I3d97a06381fce67ef13b1ccdeaa4e8e2830ab2aa\n"
    },
    {
      "commit": "f31d2ed1fd3a39a92bccc12eb66728594290ef3b",
      "tree": "7cff1f0796d7ff93ccdf3ae8cd3ac4022e932072",
      "parents": [
        "09dd3e57b920c8f65cb486313a4c0f35b8cb9f46"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 14 09:55:22 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 14 09:55:22 2010 -0700"
      },
      "message": "Return false on socket read error\n\nFrameworkListener was returning the errno from a function marked as\nreturning bool which caused an implicit conversion to true since we were\nin an error block where errno was set to something non-zero.\n\nThis caused the clients that had errors to stick around forever and not\nget removed from the set of file descriptors that SocketListener was\nlistening to.\n\nChange-Id: Ia27a4cac47459f3a3c2bb6a7f66803a3165c894a\n"
    },
    {
      "commit": "80ec37aa15c138beee5889a257d1241c30a1e8d7",
      "tree": "5c31bc13a5d76a8dd19f9952fd6be972ad1a61de",
      "parents": [
        "07b3d09e841ea8544f72c3b2bf268f07df6357f7"
      ],
      "author": {
        "name": "Chih-Wei Huang",
        "email": "cwhuang@linux.org.tw",
        "time": "Wed Jul 14 14:00:41 2010 +0800"
      },
      "committer": {
        "name": "Chih-Wei Huang",
        "email": "cwhuang@linux.org.tw",
        "time": "Wed Jul 14 14:01:30 2010 +0800"
      },
      "message": "libsysutils: reimplement NetlinkEvent::findParam in the proper way\n\nThe original implementation can not find correct parameters for certain\ncases. For example, if you have both foo_bar and foo, try to find foo\nmay be mismatched. The correct way is to match with \"\u003d\".\n\nChange-Id: I403b1a7b889583a57a4f3a14e575181ce93b10ff\n"
    },
    {
      "commit": "7e8529a8b528fd30586aa037f15a31b29582c537",
      "tree": "850922c096dc45230da1047dc3372df428f21965",
      "parents": [
        "c741f22d8533226ce60903649a7a57b3f05a65af"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Mar 25 09:31:42 2010 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Mar 25 09:31:42 2010 -0700"
      },
      "message": "system/core: Switch libsysutils \u0026 sched_policy LOG -\u003e SLOG\n\nChange-Id: Id74c6895a8012c5915f2e259339101844de7c085\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "d674413ff460afe1da049e54bb7a489132799749",
      "tree": "9cae3b4cd2a9fdef54b4d1994741ae9b459eca5c",
      "parents": [
        "3528f6ba2769abb09ae0a27a9336b96ab0a97225"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Dec 24 07:17:09 2009 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Dec 24 07:20:36 2009 -0800"
      },
      "message": "sysutils: Add dump() to NetlinkEvent\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "b029e924285dfe5bd36d93d837eb00db1c7661fc",
      "tree": "12de33569d2b5d8d06b7b422a2e16bd1b3c61993",
      "parents": [
        "96912ff719a506f43ad02b8f9cc741f52567cabb",
        "74d7ff8cfd490852d3df1c4b9d8a21beed619caa"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Oct 14 08:19:24 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Oct 14 08:19:24 2009 -0700"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "ebfe3db361c51d9d99bf6cfd495bd16bdf815e1f",
      "tree": "22a607259a2a794e127c191f756430dc907d7445",
      "parents": [
        "808c89e1207fe3a60b6f8c3b03d3c65fcc7defbe"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@android.com",
        "time": "Sat Oct 10 17:35:13 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@android.com",
        "time": "Sat Oct 10 17:39:10 2009 -0700"
      },
      "message": "libsysutils: Fix some bugs in NetlinkListener and NetlinkEvent\n\nSigned-off-by: San Mehat \u003csan@android.com\u003e\n"
    },
    {
      "commit": "c4a895b7094461c98101924cf096680bfb7856f1",
      "tree": "002d78d20dc1d3ddd548f10c5d39807f6d5b7fb7",
      "parents": [
        "a0c0d8a89e1cd775d0ecf5a3df744d8ac0ccfc2f"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jun 23 21:10:57 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jul 10 14:23:51 2009 -0700"
      },
      "message": "nexus: Rollup update for nexus\n\nnexus: Change field separator from : to \u0027 \u0027\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Add some prototypes for stuff to come\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Add some TODOs\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nlibsysutils: Put a proper token parser into the FrameworkListener which\nsupports minimal \\ escapes and quotes\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Fix a lot of bugs\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nlibsysutils: Remove some debugging\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Send broadcasts for supplicant state changes\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Plumb DHCP listener state changes to NetworkManager\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Make the SupplicantState strings more parsable\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Broadcast a message when dhcp state changes.\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Add a few new response codes\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Rename ErrorCode -\u003e ResponseCode\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Add DHCP event broadcasting. Also adds the framework for\ntracking supplicant \u0027searching-for-AP\u0027 state\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: REmove WifiScanner\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Change the way scanning works. scanmode can now be selected\nindependantly of triggering a scan. Also adds rxfilter support\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Add support for configuring bluetooth coexistence scanning and modes\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: use case insensitive match for property names\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Rollup of a bunch of stuff:\n    - \u0027list\u0027 command now takes an argument to match against\n    - InterfaceConfig has been moved into the Controller base (for now)\n    - DhcpClient now has some rudimentry locking\n    - process \u0027ADDRINFO\u0027 messages from dhcpcd\n    - Drop tertiary dns\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Clean up some of the supplicant variable parsing and add \u0027wifi.current\u0027\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Add driver-stop/start, initial suspend support\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Add Controller suspend/resume callbacks, as well as locking\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Make ARP probing configurable for DhcpClient\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Add linkspeed / rssi retrieval\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Add WifiStatusPoller to track RSSI/linkspeed when associated\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Disable some debugging and add \u0027wifi.netcount\u0027 property\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Replace the hackish property system with something more flexible with namespaces\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nlibsysutils: Fix a few bugs in SocketListener\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: PropertyManager: Add array support\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: Clean up properties\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n\nnexus: WifiController: Change name of \u0027CurrentNetwork\u0027 property\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    }
  ],
  "next": "c73a3a5771a2d29d1bae666bfde12f751d66fc96"
}
