)]}'
{
  "log": [
    {
      "commit": "1fe6ed38cd0136c514aabae01389653beab27fb9",
      "tree": "21f10bc3f9c5afffe9f28e5dbf4e6198cfafba5b",
      "parents": [
        "3fed4160cd23f1767d8980e8cba10bc3933947d5"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jul 26 09:37:26 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jul 26 09:37:26 2006 +0000"
      },
      "message": "[ospfd] Allow ospf_lsa_unlock to NULL out callers\u0027 LSA pointers upon free\n\n2006-07-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.{c,h}: (ospf_lsa_unlock) Change to take a double pointer\n\t  to the LSA to be \u0027unlocked\u0027, so that, if the LSA is freed, the\n\t  callers pointer to the LSA can be NULLed out, allowing any further\n\t  use of that pointer to provoke a crash sooner rather than later.\n\t* ospf_*.c: (general) Adjust callers of ospf_lsa_unlock to match\n\t  previous. Try annotate \u0027locking\u0027 somewhat to show which \u0027locks\u0027\n\t  are protecting what LSA reference, if not obvious.\n\t* ospf_opaque.c: (ospf_opaque_lsa_install) Trivial: remove useless\n\t  goto, replace with return.\n\t* ospf_packet.c: (ospf_make_ls_ack) Trivial: merge two list loops,\n\t  the dual-loop predated the delete-safe list-loop macro.\n"
    },
    {
      "commit": "e6a0bf9ca05b5543d0d21045ce939598c4e79887",
      "tree": "9ca8e935ef9884e22afd3e046242e334917ff24a",
      "parents": [
        "a96d8d1095da09811e343a534f5801a948ae1061"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Sep 17 18:53:38 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Sep 17 18:53:38 2005 +0000"
      },
      "message": "2005-09-17 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_opaque.c:\n\t  (ospf_opaque_lsa_refresh_schedule,ospf_opaque_lsa_flush_schedule)\n\t  No need to call ospf_lookup(), just use lsa0-\u003earea-\u003eospf instead.\n"
    },
    {
      "commit": "69310a679aef2b532f6851298b453eb7ca4d3534",
      "tree": "1c6a2f3520b0253ae7db42c776e69507c53192ef",
      "parents": [
        "d4e47287efd60f77b473f8d5677e4dac08c192b0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 11 18:09:59 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 11 18:09:59 2005 +0000"
      },
      "message": "2005-05-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) Fix memory leaks in opaque AS-scope LSAs, reported and\n\t  with much debugging done by by scott collins \u003cscollins@agile.tv\u003e.\n\t  (possible backport candidate?)\n\t* ospf_lsa.c: (ospf_discard_from_db) dont call\n\t  ospf_ase_unregister_external_lsa for opaque-lsa\u0027s, opaques are\n\t  never registered with ase in the first place.\n\t* ospf_packet.c: (general) Disabuse opaque related code of its\n          tendency to try gather up things into temporary lists.\n          (ospf_ls_upd) remove the temporary lists opaque uses, call\n          opaque functions inline, just like all other types.\n          (ospf_ls_ack) ditto.\n          (ospf_recv_packet) fixup sign warning.\n        * ospf_opaque.c: (general) fix the unneeded use of lists, and\n          untwist some of the logic.\n          (ospf_opaque_self_originated_lsa_received) take a single LSA\n          as argument, not a list of them. Remove the list loop. Logic\n          otherwise unchanged.\n          (ospf_opaque_ls_ack_received) Mostly ditto. But untwist the logic,\n          move the actions up into the switch block, remove the goto\u0027s and\n          sanitise the logic near the end a bit.\n        * ospf_opaque.h: Adjust definitions of aforementioned functions\n          in ospf_opaque.c to match.\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": "f4436f7bb8234f86a1a38e2d8497b70a448a7246",
      "tree": "c92d79e64baf36912260617b238f9158f3ba5ffb",
      "parents": [
        "6a250b099fe25627e32e5ca58f5677ba5227f816"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 09 14:49:51 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 09 14:49:51 2004 +0000"
      },
      "message": "add comments about warnings\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": "6099b3b56956322567323c11fd698b2328c6826b",
      "tree": "fa537bd0eaa9f7d824f39445eabc928db59050ca",
      "parents": [
        "ae5e24d8678f1e3a60dde58d3382c5ba73d6bb27"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Nov 20 02:06:59 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Nov 20 02:06:59 2004 +0000"
      },
      "message": "2004-11-19 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* global: Replace strerror with safe_strerror.  And vtysh/vtysh.c\n\t  needs to include \"log.h\" to pick up the declaration.\n"
    },
    {
      "commit": "f4d58ce5aa0da64fd136c5747ff371d46736490a",
      "tree": "942bd00e2c53a22dd7f0c057d489b13ce1d7c4bd",
      "parents": [
        "54aa6b2d796416ed0d606c49bf4a0f1e62b93401"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Oct 12 06:13:54 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Oct 12 06:13:54 2004 +0000"
      },
      "message": "Unbreak ospfclient compilation.\n"
    },
    {
      "commit": "c3abdb722d35eb93ca72078a7da1b4661accab27",
      "tree": "b89076220a74f3ca9c5e408331d4f2206bbdaed1",
      "parents": [
        "e2ea9fef99392299d6291067522eef0d99e1714c"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 11 16:27:03 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 11 16:27:03 2004 +0000"
      },
      "message": "Disable ospfapi init by default.\n"
    },
    {
      "commit": "87d6f87aec1920ca785de465282a772f9e459af8",
      "tree": "005eeed9ca8a62226a12392d28b1ab60a7cac9d4",
      "parents": [
        "52dc7ee65f8d887b0730abc0a5d44d27fc6ecafd"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Sep 24 08:01:38 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Sep 24 08:01:38 2004 +0000"
      },
      "message": "2004-09-24 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * ospf_apiserver.{c,h}: lists typedef removal cleanup.\n          update some list loops to LIST_LOOP. some miscellaneous indent\n          fixups.\n          (ospf_apiserver_unregister_opaque_type) fix listnode_delete of\n          referenced node in loop.\n        * ospf_interface.h: lists typedef removal cleanup.\n        * ospf_opaque.{c,h}: lists typedef removal cleanup. update some list\n          loops to LIST_LOOP. miscellaneous style and indent fixups.\n        * ospf_te.{c,h}: ditto\n\t* ospf_packet.c: lists typedef removal cleanup.\n"
    },
    {
      "commit": "36c64efdfa81b04741fbc75929649973a5334055",
      "tree": "c31fe5f44efe8ba91d31e970e03e83672bdb63c6",
      "parents": [
        "41c14a1fc3c97f8cfcb4ef8f8bce12a2d9ad29df"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 27 11:19:11 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 27 11:19:11 2004 +0000"
      },
      "message": "2004-07-27 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * ospf_opaque.c: (ospf_opaque_lsa_flush_schedule) do not NULL out\n          the LSA as then free_opaque_info_per_id() can never unlock (and\n          free) the LSA. Reported by Gunnar Stigen.\n"
    },
    {
      "commit": "0d85b9958d6db05fb9d81afbee96332f142654bd",
      "tree": "fb0f35cb44254bdfd9b2d907800b1ec513bfc232",
      "parents": [
        "f1d92e17ab5f1475018e353ce72e94ebe7a81a44"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Mar 18 19:18:33 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Mar 18 19:18:33 2004 +0000"
      },
      "message": "Amir\u0027s fix case where opaque capability is switched \"ON -\u003e OFF -\u003e ON\".\n[quagga-dev 843]\n"
    },
    {
      "commit": "020709f9939c542e96b12f06522ad5e33d8cf445",
      "tree": "767b3cb9a8a17913d8395c8d5ecf7485ae882b8e",
      "parents": [
        "d18258304a79b459fe768e63f27efd17aa1fa78f"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Apr 04 02:44:16 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Apr 04 02:44:16 2003 +0000"
      },
      "message": "2003-04-04 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * Sync to Zebra CVS\n        * Fix lib/thread.h leak\n        * Fix small Opaque LSA leak\n        * Do not configure OSPF interfaces for secondary addresses\n        * vtysh fixes from Hasso\n        * Dave Watson\u0027s missing ntohs fix\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": "283ae334e83d0801b7de0067fc8a34b8a43f7fd5",
      "tree": "1a4e8d54edf6241854eb755fae426e6e6f4479bc",
      "parents": [
        "2d33f157898e50c2855cd014a9f50696dca8a77b"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Mar 17 01:16:55 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Mar 17 01:16:55 2003 +0000"
      },
      "message": "Addition of OSPF-API - Amir Guindehi \u003camir@datacore.ch\u003e\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": "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"
    }
  ]
}
