)]}'
{
  "log": [
    {
      "commit": "393deb9bd663361e6b110d579a8b1d4c22667068",
      "tree": "e93ebf2f57bf92ff7a9cd045764b3cdbb99a07e5",
      "parents": [
        "3453a7122c1d585ad789ed0f63deb90cc5e89fae"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Aug 18 14:13:29 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 17:07:49 2009 +0100"
      },
      "message": "[cleanup] Convert XMALLOC/memset to XCALLOC\n\nSimple conversion of XMALLOC/memset to XCALLOC\n"
    },
    {
      "commit": "5f56808431778fe8878ea8ea94225cca08884b48",
      "tree": "41027ecf7a18a787ea3109a76d5ec83ebf49a45e",
      "parents": [
        "20e5ff0a8893ffad6d31739d68d224931c4a7992"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Feb 28 00:09:04 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Feb 28 00:09:04 2008 +0000"
      },
      "message": "[lib/linklist] Enforce \"nodes must have data\" invariant more rigorously\n\n2008-02-28 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* linklist.c: This implementation expects that the data pointer not\n\t  be null, e.g. listgetdata() asserts this. The list add methods\n\t  don\u0027t apply the same sanity check.\n\n\t  Noted by Jim Carlson in bug #437.\n"
    },
    {
      "commit": "6ce80bdb2523ad82cef813f6d8a7e0d4daa8cfae",
      "tree": "d0b0fc8725c9f120cdcc16fa7f711d8104051815",
      "parents": [
        "3a02d1f7fb778a1ea4f45d037f13dfcd126e2337"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Mon Nov 12 14:55:01 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Mon Nov 12 14:55:01 2007 +0000"
      },
      "message": "+ fixed bug #418 (changing address on an existing interface doesn\u0027t cause existing static routes to be revalidated)\n"
    },
    {
      "commit": "c024fd0c76bc305cd6b6bab0989226bd9ec5e763",
      "tree": "fabd937784fd330d046244a8febb418ca8663b5c",
      "parents": [
        "8ce5cfd13eb7f8474b3129a57c160273889c2573"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:43:09 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:43:09 2006 +0000"
      },
      "message": "[lib] list_delete shouldn\u0027t duplicate list_delete_all_node\n\n2006-06-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* linklist.c: (list_delete) call list_delete_all_node, don\u0027t\n\t  duplicate it.\n"
    },
    {
      "commit": "8cc4198f9fabe5f10f5a773de1503d82f33a01fb",
      "tree": "77045da709ff66629bd12029b9ee17700360909b",
      "parents": [
        "e7fe8c88c3d552400e1ae3ae9243319ab95d6f2d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:25:49 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:25:49 2005 +0000"
      },
      "message": "2005-05-06 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* (general) extern and static\u0027ification of functions in code and\n\t  header.\n\t  Cleanup any definitions with unspecified arguments.\n\t  Add casts for callback assignments where the callback is defined,\n\t  typically, as passing void *, but the function being assigned has\n\t  some other pointer type defined as its argument, as gcc complains\n\t  about casts from void * to X* via function arguments.\n\t  Fix some old K\u0026R style function argument definitions.\n\t  Add noreturn gcc attribute to some functions, as appropriate.\n\t  Add unused gcc attribute to some functions (eg ones meant to help\n\t  while debugging)\n\t  Add guard defines to headers which were missing them.\n\t* command.c: (install_node) add const qualifier, still doesnt shut\n\t  up the warning though, because of the double pointer.\n\t  (cmp_node) ditto\n\t* keychain.c: (key_str2time) Add GET_LONG_RANGE() macro, derived\n\t  fromn vty.h ones to fix some of the (long) \u003c 0 warnings.\n\t* thread.c: (various) use thread_empty\n\t  (cpu_record_hash_key) should cast to uintptr_t, a stdint.h type\n\t* vty.h: Add VTY_GET_IPV4_ADDRESS and VTY_GET_IPV4_PREFIX so they\n\t  removed from ospfd/ospf_vty.h\n\t* zebra.h: Move definition of ZEBRA_PORT to here, to remove\n\t  dependence of lib on zebra/zserv.h\n"
    },
    {
      "commit": "1eb8ef2584833f18fb674e127d59cb5a7f771482",
      "tree": "f5b09d4781de9a9b08839fefb6530e64d2d2ec31",
      "parents": [
        "5920990fecba7e2430af3cfaa8bcbaed40d0ba1a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Apr 07 07:30:20 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Apr 07 07:30:20 2005 +0000"
      },
      "message": "2005-04-07 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (global): Fix up list loops to match changes in lib/linklist,\n\t  and some basic auditing of usage.\n\t* configure.ac: define QUAGGA_NO_DEPRECATED_INTERFACES\n\t* HACKING: Add notes about deprecating interfaces and commands.\n\t* lib/linklist.h: Add usage comments.\n\t  Rename getdata macro to listgetdata.\n\t  Rename nextnode to listnextnode and fix its odd behaviour to be\n\t  less dangerous.\n\t  Make listgetdata macro assert node is not null, NULL list entries\n          should be bug condition.\n          ALL_LIST_ELEMENTS, new macro, forward-referencing macro for use\n          with for loop, Suggested by Jim Carlson of Sun.\n          Add ALL_LIST_ELEMENTS_RO for cases which obviously do not need the\n          \"safety\" of previous macro.\n\t  LISTNODE_ADD and DELETE macros renamed to ATTACH, DETACH, to\n\t  distinguish from the similarly named functions, and reflect their\n\t  effect better.\n\t  Add a QUAGGA_NO_DEPRECATED_INTERFACES define guarded section\n\t  with the old defines which were modified above,\n\t  for backwards compatibility - guarded to prevent Quagga using it..\n\t* lib/linklist.c: fix up for linklist.h changes.\n\t* ospf6d/ospf6_abr.c: (ospf6_abr_examin_brouter) change to a single\n\t  scan of the area list, rather than scanning all areas first for\n\t  INTER_ROUTER and then again for INTER_NETWORK. According to\n\t  16.2, the scan should be area specific anyway, and further\n\t  ospf6d does not seem to implement 16.3 anyway.\n"
    },
    {
      "commit": "52dc7ee65f8d887b0730abc0a5d44d27fc6ecafd",
      "tree": "a557339540c56dd3953c29a50ca0e48c1911efc8",
      "parents": [
        "44983cf8a9c587dfbcad294b9dfe4dccbb68ba98"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 23 19:18:23 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 23 19:18:23 2004 +0000"
      },
      "message": "Remove usage of evil list and listnode typedefs.\n"
    },
    {
      "commit": "47ce02a8f12134a6ba515fbf1d2b9276e39d4c06",
      "tree": "1fb92612024ca80abdfb9a99af42866340a4dc05",
      "parents": [
        "76398034067abd80e174fea9d0d6c619de7cc679"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Dec 22 16:49:15 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Dec 22 16:49:15 2003 +0000"
      },
      "message": "Revert my \"microfix\". It was caused by misreading code. Gilad is right as\nalways.\n"
    },
    {
      "commit": "76398034067abd80e174fea9d0d6c619de7cc679",
      "tree": "da9da898e4449f5ee7529193bb468cac4a6354e3",
      "parents": [
        "a7a9990f48d7e45463b0c50986805973956fdb4c"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 16:32:15 2003 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 16:32:15 2003 +0000"
      },
      "message": "note that order of \u003d items is undefined, probably\n"
    },
    {
      "commit": "297602162c89b10f6ee41c21e6302bcc51199a3d",
      "tree": "57bc991e38997884ee3cb8fe4f2e4a0884a9b7b0",
      "parents": [
        "1f431d2d989b3a0a43b8ed0c2681619812e4259c"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 15:56:00 2003 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 15:56:00 2003 +0000"
      },
      "message": "add comments clarifying the operation of listnode_add_sort\n"
    },
    {
      "commit": "e90fbabdc6a8db7a6bbf9fa22b83da1a03023d32",
      "tree": "a961d314a2a6233b0b6b0562f826005d2f9423ad",
      "parents": [
        "d9fd04c24bb6e6fc9aaca6daf5c062beced2605f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Dec 21 09:51:42 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Dec 21 09:51:42 2003 +0000"
      },
      "message": "lib/if.c part from [quagga-dev 552] and lib/inklist.c part from [quagga-dev\n555]. Okayed by Paul.\n"
    },
    {
      "commit": "729606fea247f482231d78c5e70ae66db98a2678",
      "tree": "6ce91fe54890d3ae2dd219c2c05f08450c17de60",
      "parents": [
        "90578521e5f332e65e97f7612485d04ace5c0ba5"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Sep 23 23:47:14 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Sep 23 23:47:14 2003 +0000"
      },
      "message": "2003-09-24 sowmini.varadhan@sun.com\n\n\t* lib/linklist.c: (if_cmp_func) Fix handling of case where\n\t  list-\u003ecmp returns 0.\n"
    },
    {
      "commit": "f2c806522030d4964b4ca649637a7901751d8496",
      "tree": "0a33c81dbbf280beb2193144b5b39b703f3ca102",
      "parents": [
        "b92938a7364d220f2ca6d77a5722433159520e02"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 21:44:27 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 21:44:27 2002 +0000"
      },
      "message": " Kevin C Miller \u003ckevinm@andrew.cmu.edu\u003e\n[zebra 16681] OSPF NSSA Patches\n"
    },
    {
      "commit": "718e3744195351130f4ce7dbe0613f4b3e23df93",
      "tree": "bac2ad39971cd43f31241ef123bd4e470f695ac9",
      "parents": [],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "message": "Initial revision\n"
    }
  ]
}
