)]}'
{
  "log": [
    {
      "commit": "05b7709dad416146376cc4f41db0c866b3738f5b",
      "tree": "bf17ceea5864f3bd4d6beb0a5dff4ba5b718b339",
      "parents": [
        "10d04cdb4198b69073ea0cdd4c26a64d6697b33e"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Aug 23 11:36:27 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:41:00 2011 +0400"
      },
      "message": "ospfd: sizing macros cleanup\n\n* ospf_spf.c\n  * ROUTER_LSA_TOS_SIZE: prepend OSPF_ and move to ospf_lsa.h\n  * ROUTER_LSA_MIN_SIZE: replace with existing OSPF_ROUTER_LSA_LINK_SIZE\n"
    },
    {
      "commit": "d71ea65270408a45e4bec036671ec73b24b994b4",
      "tree": "8690d8a3e447ececf09d7a760af66703b7268f4d",
      "parents": [
        "36de261b57eab7a7539fb6527a1f02f3898cbafd"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Mar 22 15:23:55 2011 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Mar 22 15:23:55 2011 +0000"
      },
      "message": "ospfd: Compile fix for opaque support\n\n* ospfd: Refresher logic cleanup broke OSPF opaque, which does its own thing\n  with regard to refresher logic and which also, in the protocol, requires\n  implementations to keep state of which OI an LSA is received on (rather\n  than providing information in the LSA to allow it to be looked up - as\n  other LSAs requiring such assocation were careful to do).\n* ospf_lsa.h: (struct ospf_interface) Add back the pointer to oi, but only\n  for type-9 now.\n* ospf_nsm.c: (ospf_db_summary_add) check the oi actually exists first -\n  doesn\u0027t obviate the need for opaque to ensure oi pointers get cleaned up\n  when ospf_interfaces disappear.\n* ospf_opaque.{c,h}: (ospf_opaque_functab,ospf_opaque_lsa_refresh) Refresher\n  LSA functions now need to return the LSA to the general refresh logic,\n  to indicate whether the LSA was refreshed.\n"
    },
    {
      "commit": "4dd87df5af8a59174362e44f83df11f12457c8b4",
      "tree": "bec3ba26fcf730d6348567ddd530e74846af824b",
      "parents": [
        "dfbd5176ea863e378999c03314dc42adfdd4e424"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Apr 15 08:11:51 2010 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Dec 08 17:13:19 2010 +0000"
      },
      "message": "ospfd: Remove oi field from LSA, have network_lsa_refresh look up when needed\n\n* ospf_lsa.h: (struct ospf_lsa) remove oi pointer\n* ospf_lsa.c: (ospf_network_lsa_refresh) instead of keeping a pointer, just\n  lookup the oi when it\u0027s needed. This decouples network LSA from oi lifetime\n  and avoids having to invalidate pointers in LSAs when an oi changes,\n  simplifying the code.\n"
    },
    {
      "commit": "c363d3861b5384a31465a72ddc3b0f6ff007a95a",
      "tree": "3fcbfc071dc2a376979ca6a80d06599a5b574047",
      "parents": [
        "7eb5b47e54169ac0da40ed1a6760db5d5f915a4d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 24 22:42:13 2010 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Dec 08 17:13:19 2010 +0000"
      },
      "message": "ospfd: Unify router and network LSA refresh logic with general refresher\n\n* (general) Get rid of the router and network LSA specific refresh timers\n  and make the general refresher do this instead. Get rid of the twiddling\n  of timers for router/network LSA that was spread across the code.\n\n  This lays the foundations for future, general LSA refresh improvements,\n  such as making sequence rollover work, and having generic LSA delays.\n\n* ospfd.h: (struct ospf) Bye bye to the router-lsa update timer thread\n  pointer.\n  (struct ospf_area) and to the router-lsa refresh timer.\n* ospf_interface.h: Remove the network_lsa_self timer thread pointer\n* ospf_lsa.h: (struct ospf_lsa) oi field should always be there, for benefit\n  of type-2/network LSA processing.\n  (ospf_{router,network}_lsa_{update_timer,timer_add}) no timers for these\n  more\n  (ospf_{router,network}_lsa_update) more generic functions to indicate that some\n  router/network LSAs need updating\n  (ospf_router_lsa_update_area) update router lsa in a particular area alone.\n  (ospf_{summary,summary_asbr,network}_lsa_refresh) replaced by the general\n  ospf_lsa_refresh function.\n  (ospf_lsa_refresh) general LSA refresh function\n"
    },
    {
      "commit": "3106a03215f5f09c2c0d427fa706fff52ef3cb37",
      "tree": "378e2b80de22275e91157fd0b9db5248b5681eea",
      "parents": [
        "5996e0df2eb325445114517209cd24f37d91774a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Aug 06 12:58:05 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Aug 13 09:58:46 2009 +0100"
      },
      "message": "ospfd: fix performance problem with redistribute delete\n\nDoing redistribute delete with full BGP table was taking\n30 minutes, this drops it down to less than a second.\n\n* ospf_lsa.c: (ospf_lsa_maxage) When flushing lots of entries the\n  performance is terrible because it looks up each LSA entry through\n  ospf_lsa_maxage_exist before deleting causing O(N^2) performance.  Use a\n  new OSPF_LSA_MAXAGE flag instead of scan - and maintain it.\n  (ospf_lsa_maxage_exist) removed\n  (ospf_lsa_maxage_delete) maintain OSPF_LSA_MAXAGE flag\n"
    },
    {
      "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": "779adb0147cfff1a831b08853976342ad2110fcd",
      "tree": "76ec1993a7a429d24bda595254348dbd7dc4bebc",
      "parents": [
        "af887b5111ada0e8cd961e9479aa9d39796a80c8"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 18 15:07:38 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 18 15:07:38 2006 +0000"
      },
      "message": "[ospfd] Add support for oversized LSAs.\n\n2006-01-18 Juergen Kammer \u003cj.kammer@eurodata.de\u003e\n\n\t* ospf_lsa.c: (ospf_router_lsa_new) dont take reference to the\n\t  stream data until it is constructed, data reference is\n\t  volatile due to the potential resize in link_info_set\n\n2006-01-18 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (link_info_set) Resize the stream if required and\n\t  possible. Return number of links added.\n\t  (lsa_link_*_set) use return value from previous.\n\t* ospf_lsa.h: Add OSPF_ROUTER_LSA_LINK_SIZE define.\n"
    },
    {
      "commit": "88d6cf37f66c3b7d1abdaa20875418192d5219b8",
      "tree": "4843e77f622d3bf9e5df5c75de381e06e3126d6b",
      "parents": [
        "92779fe51dd061ab1502a9acdc0cf5241748e0c7"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Oct 29 12:50:09 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Oct 29 12:50:09 2005 +0000"
      },
      "message": "2005-10-29 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) RFC3137 stub-router support\n\t* ospfd.h: Add OSPF_OUTPUT_COST_INFINITE define.\n\t  (struct ospf_master) Add a OSPF_MASTER_SHUTDOWN flag for\n\t  options, to allow shutdown to distinguish between complete\n\t  shutdown and shutdown of a subset of ospf instances.\n\t  (struct ospf)\n\t  Add stub_router_{startup,shutdown_}time, configuration of startup\n\t  and shutdown time for stub-router.\n\t  Add t_graceful_shutdown struct thread, timer for graceful\n\t  shutdown, if needed.\n\t  (struct ospf_area) Add stub_router_state - run time state of\n\t  stub-router for an area. Add flags for ADMIN, IS and WAS\n\t  states.\n\t  Add t_stub_router, timer thread to resend router-lsa for an\n\t  area.\n\t* ospf_lsa.c: (ospf_link_cost) new simple function to spit out\n\t  either the given lnks cost or infinite cost if stub-router is\n\t  in effect.\n\t  (lsa_link_{ptop,broadcast,virtuallink,ptomp}_set) use\n\t  previous function for transit-links.\n\t  (ospf_stub_router_timer) timer thread for end of startup stub\n\t  router. Change state as required for the area and setup\n\t  re-origination of router-lsa.\n\t  (ospf_stub_router_check) Check/do whether stub-router should be\n\t  enabled, and whether it requires timer to be setup.\n\t  (ospf_router_lsa_new) call previous function at top.\n\t  (ospf_router_lsa_originate) no external callers, made static.\n\t* ospf_lsa.h: (ospf_router_lsa_originate) removed.\n\t* ospf_main.c: (sigint) make static.\n\t  remove call to exit, as ospf_terminate now deals with\n\t  exiting.\n\t* ospf_route.c: (ospf_terminate) removed, now in ospfd.c.\n\t* ospf_vty.c: (show_ip_ospf_area) print out state of\n\t  stub-router, if active.\n\t  (show_ip_ospf) print out configuration of stub-router\n\t  support, and details of graceful-shutdown if the timer is\n\t  active.\n\t  ((no)?ospf_max_metric_router_lsa_{admin,startup,shutdown}) new\n\t  commands to (de-)?configure stub-router support.\n\t  (config_write_stub_router) write out config of stub-router.\n\t  (ospf_config_write) call previous.\n\t  (ospf_vty_init) install the new stub-router commands.\n\t* ospfd.c: various functions made static.\n\t  (ospf_new) Set defaults for stub-router. Graceful shutdown\n\t  is made to default on, just to be adventerous.\n\t  (ospf_graceful_shutdown_finish) new function, final part of\n\t  shutdown.\n\t  (ospf_graceful_shutdown_timer) timer thread wrapper for\n\t  graceful-shutdown.\n\t  (ospf_graceful_shutdown_check) check whether to setup timer\n\t  for shutdown or proceed directly to final shutdown.\n\t  (ospf_terminate) moved here from ospf_route.c, call\n\t  ospf_finish for each instance.\n\t  (ospf_finish) renamed to ospf_finish_final and made static.\n\t  (ospf_finish) new function, exported wrapper around\n\t  ospf_graceful_shutdown_check.\n\t  (ospf_finish_final) complete shutdown of an instance.\n\t  Add missing TIMER_OFF\u0027s of two timer threads.\n\t  (ospf_area_free) opaque self lsa timer should be turned off.\n"
    },
    {
      "commit": "5339cfdb7c3f6187452982173aa55ff525d1f6fe",
      "tree": "e7cd744e116040c7bc5f2823f8b73ea9e1316d7e",
      "parents": [
        "f06834b80504497824ce50b533ba4fedb6abf2c7"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Mon Sep 19 13:28:05 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Mon Sep 19 13:28:05 2005 +0000"
      },
      "message": "2005-09-19 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_lsa.h: (ospf_external_lsa_flush) Comment out the 5th argument\n\t  (nexthop) since it is not used in the function (except inside\n\t  some commented-out code).\n\t* ospf_lsa.c: (ospf_external_lsa_flush,ospf_external_lsa_refresh)\n\t  Comment out the 5th argument to ospf_external_lsa_flush.\n\t* ospf_asbr.c: (ospf_redistribute_withdraw) Comment out 5th arg\n\t  to ospf_external_lsa_flush.\n\t* ospf_vty.c: (no_ospf_default_information_originate) Eliminate 5th\n\t  uninitialized nexthop arg to ospf_external_lsa_flush.\n\t* ospf_zebra.c: (ospf_zebra_read_ipv4) Comment out 5th arg\n\t  to ospf_external_lsa_flush.\n\t* ospfd.c: (ospf_network_set) Comment out 5th arg\n\t  to ospf_external_lsa_flush.\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": "462f20d50c8f86c26904f1c7316d910c2b83ae41",
      "tree": "3edbff28c76bdb8e1c66ea5153b1cb58d40f15aa",
      "parents": [
        "c3c07f28dcd226975b5ed0c1f8842f51968a3288"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 23 11:29:02 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 23 11:29:02 2005 +0000"
      },
      "message": "\t* ospf_lsa.h: New flag to the LSA structure for the SPF calculation.\n\t* ospf_lsdb.h: Export ospf_lsdb_clean_stat() function.\n\t* ospf_spf.h: Add link to the LSA stat structure into vertex.\n\t* ospf_spf.c: New functions cmp() and update_stat() to manage\n\t  candidates. Remove ospf_spf_has_vertex(), ospf_vertex_lookup(),\n\t  ospf_install_candidate() and ospf_spf_register() functions not needed\n\t  any more. Update ospf_vertex_new(), ospf_spf_next() and\n\t  ospf_spf_calculate() functions to use pqueue instead of linked list.\n"
    },
    {
      "commit": "6c83567192ada1a66822c3f35580ce6a85f51ac9",
      "tree": "39ef09859fae79b7c7e234a671bf2e04f8e9264a",
      "parents": [
        "6b33361187feeb8c9c257ec149b4f75238af6c48"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 11 11:00:30 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 11 11:00:30 2004 +0000"
      },
      "message": "2004-10-11 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* (global) Const char update and signed/unsigned fixes.\n\t* (various headers) size defines should be unsigned.\n\t* ospf_interface.h: remove duplicated defines, include the\n\t  authoritative header - though, these defines should probably\n          be moved to a dedicated header, or ospfd.h.\n\t* ospf_lsa.h: (struct lsa) ls_seqnum should be unsigned.\n\t* ospf_packet.c: (ospf_write) cast result of shift to unsigned.\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": "7ddf1d6eaf5a339d13661469212ac33f77e808fc",
      "tree": "2c81cd578472f88adb7300589e05b4f267bf066b",
      "parents": [
        "2fe28bbb7bccedf2e486a8c0aaa43037c91b3336"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 13 09:06:46 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 13 09:06:46 2003 +0000"
      },
      "message": "2003-10-13 sowmini.varadhan@sun.com\n\n\t* ospf_lsa.h: Add OSPF_LSA_PREMATURE_AGE flag.\n\t* ospf_lsa.c: added better debug comments. check sequence number in\n\t  ospf_lsa_install. ospf_maxage_lsa_remover() checks for\n \t  OSPF_LSA_PREMATURE_AGE and re-originates the lsa after ls_acks are\n\t  received.\n\t* ospf_flood.c: improve debug statement- print ls_seqnum.\n"
    },
    {
      "commit": "d4a53d583c56462864b2fce08b1cf94493c041ab",
      "tree": "d43535a754e3474669bdddc7e463c2146bdc25d3",
      "parents": [
        "22e0a9e6c7bd7775da6bfb00d9a4114643cf9369"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jul 12 21:30:57 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jul 12 21:30:57 2003 +0000"
      },
      "message": "2003-07-12 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* (global): Add/fixup NSSA ABR translation functionality\n\t* ospfd.h: Adjust the NSSA ROLE defines. Rename STATE to TRANSLATE.\n\t  Rename the LSA_NSSA_GET define to LSA_OPTIONS_NSSA_GET.\n\t* ospfd.c: Adjust to match changes to ospfd.h\n\t* ospf_te.c: Adjust to match change to LSA_NSSA_GET.\n\t* ospf_lsa.h: slights reformatting.\n\t  Add new NSSA functions, ospf_translated_nssa_compare() (not\n\t  currently used), ospf_translated_nssa_refresh() and\n\t  ospf_translated_nssa_originate().\n\t* ospf_lsa.c: Implemented aforementioned new functions. Fix up\n\t  several NSSA hooks to /not/ be called for Type-5s which are\n\t  translated. Add additional hooks. Set the ROUTER_LSA_NT bit in\n\t  router-lsa flags if ABR does translation. New function,\n\t  ospf_lsa_translated_nssa_new() implemented. Dont register\n\t  translated LSAs for refreshing - instead we implicitly rely on\n\t  the ASBR refreshing the Type-7, and refresh the translated Type-5\n\t  at the same time. Some minor reformatting. Extra debug info added.\n\t  Also, existing debug statements modified to report LSA Id.\n\t* ospf_flood.c: call ospf_translated_nssa_refresh() when refreshing\n\t  Type-7. minor reformatting.\n\t* ospf_dump.c: Dump NSSA LSAs.\n\t* ospf_asbr.h: slight reformatting. Export\n\t  ospf_external_route_lookup() (though, not used. probably will\n          undo this).\n        * ospf_abr.c: Slight reformatting in many places. Update to match\n          ospfd.h changes.\n          (ospf_abr_translate_nssa): make it work, using the new ospf_lsa\n\t  translation functions.\n\t  (Several places): change struct prefix * to struct prefix_ipv4 *.\n\t  (might as well do the casts at higher levels). Add more debug\n\t  info.\n\t  (ospf_abr_announce_stub_defaults): announce default to NSSA areas\n\t  too.\n\t  (ospf_abr_announce_nssa_defaults): do nothing. this function\n          probably should die. (see ospf_abr_announce_stub_defaults).\n\t  (ospf_abr_task_timer): run NSSA tasks.\n"
    },
    {
      "commit": "0c9491b304d6af4ee02ac7f076b5e83358f99723",
      "tree": "a3d892544773cd9de2bb9b6ddd742425e8181fa4",
      "parents": [
        "942b6c19895fb44041fcd4f588440619f61e6745"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 22 08:23:01 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 22 08:23:01 2003 +0000"
      },
      "message": "2003-06-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_lsa.h: elaborate on comment for ROUTER_LSA_NT\n\t  add IS_ROUTER_LSA_NT macro.\n"
    },
    {
      "commit": "645878f10fad10f3503da9103bc57bbd96785947",
      "tree": "1dad7dcf36c3bccd34c6cba4e158599cd665c9c4",
      "parents": [
        "e05fba43875e86ba2ec6e3970e5ec3aa2d0e040c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Apr 13 21:42:11 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Apr 13 21:42:11 2003 +0000"
      },
      "message": "From: Hasso Tepper \u003chasso@estpak.ee\u003e\n To: zebra@zebra.org\nSubject: [zebra 18648] [PATCH] Selforiginated Type-7 LSA\u0027s are not flushed\n         from lsdb\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": "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"
    }
  ]
}
