)]}'
{
  "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": "478aab9812fe06d77fd2f4e0b773a6e1ede18a3a",
      "tree": "d441d5c41fdb02752c2c24a08a4babbfe63f02e3",
      "parents": [
        "ab2416a0f3583545f683310adfc7ebce11d79622"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Apr 03 21:25:32 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Apr 03 21:25:32 2006 +0000"
      },
      "message": "[ospfd] Fix virtual-link handling in nbrs route-table, exposed by bug#234 fix\n\n2006-04-03 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) Fix issues with handling of Vlinks and entries\n\t  in the nbrs route-table which were highlighted by the\n\t  nsm/nbr_self fixes from bug #234. Many thanks to Juergen\n\t  Kammer for his help and efforts in testing out debug patches to\n\t  pinpoint the issue.\n\t* ospf_interface.c: (ospf_vl_new) Add nbr_self for Vlink.\n\t* ospf_neighbor.c: (ospf_nbr_key) new static function, helper\n\t  to create key in nbrs table for a given nbr.\n\t  (ospf_nbr_delete) Use ospf_nbr_key. Add an assert() to\n\t  document an expected state.\n\t  (ospf_nbr_add_self) Ditto.\n\t  (ospf_nbr_lookup_by_addr) Add an assert.\n\t* ospf_nsm.c: (nsm_kill_nbr) Can never kill the nbr_self\n\t  psuedo-neighbour.\n"
    },
    {
      "commit": "1a643f88b238147dc2cfbe137d9feae7e3f3546e",
      "tree": "8855528746546e29dd645d80a6df22eb84bb351a",
      "parents": [
        "818e56cf2723843377d2881a6b81b8adc0fe9160"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 11 01:08:19 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 11 01:08:19 2006 +0000"
      },
      "message": "[ospfd] Bug #234. Fix nbr_self reinitialisation after down/up.\n\n2006-01-10 Len Sorensen \u003clennartsorensen@ruggedcom.com\u003e\n\n\t* (general) Bug #234, see also [quagga-dev 3902].\n\t  Fix problem with nbr_self not being properly reinitialised\n\t  when an interface comes up, after having been down.\n\t  Some re-arrangement done by Paul Jakma, any bugs introduced\n\t  on top of Len\u0027s suggested changes are his.\n\t* ospf_neighbor.c: (ospf_nbr_add_self) centralise\n\t  initialisation of nbr_self parameters here.\n\t* ospf_interface.c: (ospf_if_new) deleting initialisation of\n\t  parameters of nbr_self, just rely on call to\n\t  ospf_nbr_add_self.\n\t  (ospf_if_cleanup) ditto.\n\t* ospfd.c: (ospf_network_run) ditto.\n"
    },
    {
      "commit": "4dadc291e56195886fd047690ded9686f4e013fa",
      "tree": "ea7c0690912d2b7d0c487f6855960e768fff1b6e",
      "parents": [
        "69e10adaf28d4e116c38db2648786557fe131828"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:37:42 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:37:42 2005 +0000"
      },
      "message": "2005-05-06 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n        * (general) extern and static qualifiers added.\n          unspecified arguments in definitions fixed, typically they should\n          be \u0027void\u0027.\n          function casts added for callbacks.\n          Guards added to headers which lacked them.\n          Proper headers included rather than relying on incomplete\n          definitions.\n          gcc noreturn function attribute where appropriate.\n        * ospf_opaque.c: remove the private definition of ospf_lsa\u0027s\n          ospf_lsa_refresh_delay.\n        * ospf_lsa.h: export ospf_lsa_refresh_delay\n        * ospf_packet.c: (ospf_make_md5_digest) make *auth_key const,\n          correct thing to do - removes need for the casts later.\n        * ospf_vty.c: Use vty.h\u0027s VTY_GET_INTEGER rather than ospf_vty\u0027s\n          home-brewed versions, shuts up several warnings.\n        * ospf_vty.h: remove VTY_GET_UINT32. VTY_GET_IPV4_ADDRESS and\n          VTY_GET_IPV4_PREFIX moved to lib/vty.h.\n        * ospf_zebra.c: (ospf_distribute_list_update_timer) hacky\n          overloading of the THREAD_ARG pointer should at least use\n          uintptr_t.\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": "e588f21f2adae26eaee8789bacc3a45002e86e94",
      "tree": "35ec71ed8391ef0568b594a3f821d91b20a33c3c",
      "parents": [
        "60925303c585735b7d52252c00fa4a7340690f31"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 18:12:06 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 18:12:06 2004 +0000"
      },
      "message": "2004-12-08 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* *.c: Change level of debug messages to LOG_DEBUG.\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": "d3f0d6210119ff520c286c89bd614838cc6cbf8e",
      "tree": "dce792feac0f39ebeb463e41224f419258e6a81d",
      "parents": [
        "239389ba30e21de22e6c2dd708f44ece11b5807a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 05 15:27:15 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 05 15:27:15 2004 +0000"
      },
      "message": "2004-05-05 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * ospf_packet.c:  (ospf_associate_packet_vl) cleanup, move\n          some of the checks up to ospf_read, return either a\n          virtual link oi, or NULL.\n          (ospf_read) Cleanup, make it responsible for checks. Remove\n          the nbr lookup - moved to ospf_neighbor. Adjust all nbr\n          lookups to use new wrappers exported by ospf_neighbor.\n        * ospf_neighbor.h: Add ospf_neigbour_get and ospf_nbr_lookup.\n        * ospf_neighbor.c: (ospf_neigbour_get) Index ospf_interface\n          neighbour table by router-id for virtual-link ospf_interfaces,\n          not by peer_addr (which breaks for asymmetric vlinks)\n          (ospf_nbr_lookup) add a wrapper for nbr lookups to deal with\n          above.\n"
    },
    {
      "commit": "6898008484a562ff5bae178a6fb0bd885fe8b1e5",
      "tree": "27797ca6532ca0ef85f538ac8f3070639e579229",
      "parents": [
        "1ef74ef70bdab672458c4d1e4cea24197066c0af"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Mar 25 05:07:42 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Mar 25 05:07:42 2003 +0000"
      },
      "message": "2003-03-25 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* sync to latest zebra CVS\n\t* spec file: updated and added define for ospf-api/client\n\nNB: OSPF-API has been broken by the zebra.org changes, which\nhas added struct ospf * as a new arg to many functions\n"
    },
    {
      "commit": "2d59836a4fb16e2471560a47da7e5f75779c5807",
      "tree": "619901a67086c8eca741eee4e8b6b9810a3d86b9",
      "parents": [
        "e04ab74d17b4f3456bd3eeefe2043584431b4ea2"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jan 17 23:48:42 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jan 17 23:48:42 2003 +0000"
      },
      "message": "From endo@suri.co.jp Fri Jan 17 23:36:30 2003\nDate: Fri, 20 Dec 2002 17:58:43 +0900\nFrom: Masahiko Endo \u003cendo@suri.co.jp\u003e\nReply-To: zebra@zebra.org\nTo: zebra@zebra.org\nCc: kunihiro@zebra.org\nSubject: [zebra 16824] [PATCH] nsm_kill_neighbor\n\n    [ The following text is in the \"ISO-2022-JP\" character set. ]\r\n    [ Your display is set for the \"ISO-8859-1\" character set.  ]\r\n    [ Some characters may be displayed incorrectly. ]\n\nHi Ishiguro-san,\n\nHere is my problem analysis against the case that the ospfd crashes\nwhen an interface is brought down.\n\nWhen the ospfd receives a ZEBRA message \"ZEBRA_INTERFACE_DOWN\" from\nzebra daemon, the ospfd performs bunch of ospf-interface cleanup for\nthe notified zebra-interface.\nThere are cases that neighbor instance \"nbr\", which will be removed\nafterward, may scheduled in the NSM thread event queue. And when the\nNSM event thread is fired, dereference for this already freed \"nbr\"\npointer causes SIGSEGV.\nPlease take a look at following timeline of processing sequences.\n"
    }
  ]
}
