)]}'
{
  "log": [
    {
      "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": "f9ad937f537df92bf3119686eee97db7b7176674",
      "tree": "8c203f4bffabbb2fd27ffeafd2e87e5fd704a0e2",
      "parents": [
        "24065a3d4a61a136a17996a48df02b0b180bc6f0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 21 00:45:17 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 21 00:45:17 2005 +0000"
      },
      "message": "2005-10-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) OSPF fast, sub-second hello and 1s dead-interval\n\t  support. A warning fix. Millisec support for ospf_timer_dump.\n\t  Change auto-cost ref-bandwidth to add a comment to write out\n\t  of config, rather than printing annoying messages to vty on\n\t  startup.\n\t* ospf_dump.c: (ospf_timer_dump) Print out milliseconds too.\n\t  Callers typically specify a length of 9, so most see\n\t  millisecs unless they specify the additional length.\n\t* ospf_interface.h: (struct ospf_interface) new interface param,\n\t  fast_hello.\n\t* ospf_interface.c: (ospf_if_table_lookup) add brackets,\n\t  gcc warning fix.\n\t  (ospf_new_if_params) Initialise fast_hello param.\n\t  (ospf_free_if_params) Check whether fast_hello is configured.\n\t  (ospf_if_new_hook) set fast_hello to default.\n\t* ospf_ism.h: Wrap OSPF_ISM_TIMER_ON inside do {} while (0) to\n\t  prevent funny side-effects from its if statement when this\n\t  macro is used conditionally by other macros.\n\t  (OSPF_ISM_TIMER_MSEC_ON) new macro, set in milliseconds.\n\t  (OSPF_HELLO_TIMER_ON) new macro to set hello timer according\n\t  to whether fast_hello is set.\n\t* ospf_ism.c: Update all setting of the hello timer to use\n\t  either OSPF_ISM_TIMER_MSEC_ON or OSPF_HELLO_TIMER_ON. The\n\t  former is used when hello is to be sent immediately.\n\t* ospf_nsm.c: ditto\n\t* ospf_packet.c: (ospf_hello) hello-interval is not checked\n\t  for mismatch if fast_hello is set.\n\t  (ospf_read) Annoying nit, fix \"no ospf_interface\" to be debug\n\t  rather than a warning, as it can be perfectly normal to\n\t  receive packets when logical subnets are used.\n\t  (ospf_make_hello) Set hello-interval to 0 if fast-hellos are\n\t  configured.\n\t* ospf_vty.c: (ospf_auto_cost_reference_bandwidth) annoying\n\t  nit, don\u0027t vty_out if this command is given, it gets tired\n\t  quick.\n\t  (show_ip_ospf_interface_sub) Print the hello-interval\n\t  according to whether fast-hello is set or not.\n\t  Print the extra 5 millisec characters from (ospf_timer_dump)\n\t  if fast-hello is configured.\n\t  (ospf_vty_dead_interval_set) new function, common to all\n\t  forms of dead-interval command, to set dead-interval and\n\t  fast-hello correctly. If a dead-interval is given, unset\n\t  fast-hello, else if a hello-multiplier is set, set\n          dead-interval to 1 and fast-hello to given multiplier.\n\t  (ip_ospf_dead_interval_addr_cmd) use\n\t  ospf_vty_dead_interval_set().\n\t  (ip_ospf_dead_interval_minimal_addr_cmd) ditto.\n\t  (no_ip_ospf_dead_interval) Unset fast-hello.\n\t  (no_ip_ospf_hello_interval) Bug-fix, unset of hello-interval\n\t  should set it to OSPF_HELLO_INTERVAL_DEFAULT, not\n\t  OSPF_ROUTER_DEAD_INTERVAL_DEFAULT.\n\t  (config_write_interface) Write out fast-hello.\n\t  (ospf_config_write) Write a comment about\n\t  \"auto-cost reference-bandwidth\" having to be equal on all\n\t  routers. Hopefully just as noticeable as old practice of\n\t  writing to vty, but less annoying.\n\t  (ospf_vty_if_init) install the two new dead-interval\n\t  commands.\n\t* ospfd.h: Add defines for OSPF_ROUTER_DEAD_INTERVAL_MINIMAL\n\t  and OSPF_FAST_HELLO_DEFAULT.\n"
    },
    {
      "commit": "5e4914c31ead7b99eeed73067451367336b21422",
      "tree": "f2c49d5c8182d4ee1b8ad8ca5005fe1223da18c8",
      "parents": [
        "ceacedba227e77156f92f7676b274c48a2817e8f"
      ],
      "author": {
        "name": "vincent",
        "email": "vincent",
        "time": "Thu Sep 29 16:34:30 2005 +0000"
      },
      "committer": {
        "name": "vincent",
        "email": "vincent",
        "time": "Thu Sep 29 16:34:30 2005 +0000"
      },
      "message": "2005-09-29 Alain Ritoux \u003calain.ritoux@6wind.com\u003e\n\n    * lib/smux.[ch]: allow to retreive global OID (identified by \u003c0\n      namelen).\n    * ospf_ism.c: generate SNMP traps on Interface state change\n    * ospf_nsm.c: generate SNMP traps on Neighbour state change\n    * ospf_snmp.[ch]: support for SNMP traps for interface and neighbours.\n"
    },
    {
      "commit": "f4833e9f47c0f2f4f5b9a4c020f751055cdd1e20",
      "tree": "a91a6d303407dc3fddcb47530ffb38d644499d48",
      "parents": [
        "354f3b66355f7b658d4cc5e8681c80326af13ee7"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jun 20 20:42:26 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jun 20 20:42:26 2005 +0000"
      },
      "message": "\t* ospf_nsm.c: Make database exchange for NSSA database work.\n\n\t[backport candidate]\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": "3aa8d5f9893c182eb27f0f6ab354a77edbf1b9f0",
      "tree": "b2cc0ac454542e114bf3fcb4d85c62d9074903f1",
      "parents": [
        "3378d2099440cb3a14dc7531a3221d4140e186e2"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Dec 11 18:00:06 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Dec 11 18:00:06 2004 +0000"
      },
      "message": "2004-12-11 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_packet.c: (ospf_db_desc) Should be static, not global.\n\t  (ospf_hello,ospf_db_desc,ospf_ls_upd,ospf_ls_ack) Improve warning\n\t  messages to include identifying information (e.g. router id).\n\t* ospf_nsm.c: (nsm_change_state) Improve info message to include\n\t  router id and state names.\n"
    },
    {
      "commit": "2a42e285ed1b3891a479e52bf0bab958d68ca18e",
      "tree": "7f58188e992943424474199f11849f04ce62c665",
      "parents": [
        "e588f21f2adae26eaee8789bacc3a45002e86e94"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 18:43:03 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 18:43:03 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": "eb1ce6059a00f3f0dd92c965aa5982907b54c00d",
      "tree": "ebd6583ba2f2f9909c25653d0349662e08c26ecf",
      "parents": [
        "2e864cfa12724ec20e82f0a24e1be5929e3a0cef"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Oct 08 08:17:22 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Oct 08 08:17:22 2004 +0000"
      },
      "message": "Compiler warnings fixes round 1.\n"
    },
    {
      "commit": "beebba75167b33e05b5e02a41179ad0c13a0bcd7",
      "tree": "83b72a338e29f7f6cff2b83fd2c71e8615f9f8e5",
      "parents": [
        "320ec10a24d8dd81d0aa011dc92e07877e4e02f8"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jun 20 21:00:27 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jun 20 21:00:27 2004 +0000"
      },
      "message": "Remove ifdef\u0027s HAVE_NSSA. NSSA support is stable enough.\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": "09e4efdcb22ac13af3f6e3a38158871ed140e5e0",
      "tree": "5fa509af429208262d719c04a195f5cd58e49ffa",
      "parents": [
        "2d59836a4fb16e2471560a47da7e5f75779c5807"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jan 18 00:12:02 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jan 18 00:12:02 2003 +0000"
      },
      "message": "Date: Fri, 20 Dec 2002 17:28:45 +0900\nFrom: Masahiko Endo \u003cendo@suri.co.jp\u003e\nReply-To: zebra@zebra.org\nTo: zebra@zebra.org\nCc: kunihiro@zebra.org, yokota@kddlabs.co.jp\nSubject: [zebra 16823] [PATCH] Bugfix and new feature in Opaque-LSA\nhandling.\n\n----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----\nChanges 2002.12.20\n\n1. Bug fixes\n\n  1.1 When an opaque LSA is being removed from (or added to) the LSDB,\n      it does not mean a change in network topology. Therefore, SPF\n      recalculation should not be triggered in that case.\n      There was an assertion failure problem \"assert (rn \u0026\u0026 rn-\u003einfo)\"\n      inside the function \"ospf_ase_incremental_update()\", because\n      the upper function \"ospf_lsa_maxage_walker_remover()\" called it\n      when a type-11 opaque LSA is removed due to MaxAge.\n\n  1.2 Type-9 LSA is defined to have \"link-local\" flooding scope.\n      In the Database exchange procedure with a new neighbor, a type-9\n      LSA was added in the database summary of a DD message, even if\n      the link is different from the one that have bound to.\n\n2. Feature enhancements\n\n  2.1 Though a \"wildcard\" concept to handle type-9/10/11 LSAs altogether\n      has introduced about a year ago, it was only a symbol definition\n      and actual handling mechanism was not implemented. Now it works.\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"
    }
  ]
}
