)]}'
{
  "log": [
    {
      "commit": "94b6bfd28357dfa5a4f478b7393522816976c0b0",
      "tree": "8c94b1e1730a3db7cd0c5371495a944745d8aa20",
      "parents": [
        "e8f2226195e86f90f2409549ad8a8e5c8d64d23b"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sat Jan 09 14:11:02 2010 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Dec 08 17:11:18 2010 +0000"
      },
      "message": "ospfd: the maxage_lsa_remover should check whether it needs to yield the cpu\n"
    },
    {
      "commit": "6634974d68b8cc78cdde1104636fe97d7e310845",
      "tree": "ac049e9e0e61ba90ee3790e4162c561b32894e1b",
      "parents": [
        "8a81ee114a122966cb396d53dd8fcbda2eb619f5"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Apr 13 22:33:54 2010 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Dec 08 17:11:18 2010 +0000"
      },
      "message": "ospfd: fix lsa_refresh_walker unlock before use bug\n\n* ospf_lsa.c: (ospf_lsa_refresh_walker) fix an \"unlock before use\" bug\n  (various) add asserts for lsa refcounting.\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": "5996e0df2eb325445114517209cd24f37d91774a",
      "tree": "56bee1d2ab48d4b7a5e163747b54d7537f4df9a3",
      "parents": [
        "11637435b2d74702296b0522500d03b0395554a2"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Mon Jul 27 12:42:35 2009 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Aug 11 17:33:27 2009 +0100"
      },
      "message": "ospfd: Make sure route table is recalculated.\n\nIn some cases ospfd does not recalc the route table. This\nhappens when ospfd receives an old LSA which will trigger\nrecalc but the this recalc will fail because all interfaces\nisn\u0027t up yet. Next LSA that is originated matches the old one\nso no recalc will be performed. This problem has been observed\nwhen there are only 2 ppp I/Fs in an area, both go down at the\nsame time, then they come up again with a few seconds apart.\n\n* ospf_lsa.c: (ospf_{router,network}_lsa_install) avoid a needless scheduling\n  of SPF.\n  (ospf_lsa_different) fix bug in LSA comparison that would lead to the\n  described failure to schedule SPF.\n"
    },
    {
      "commit": "5372510d109d87b94d6094d095dd4e0e02eaf32a",
      "tree": "9c112ea23db64e3d2f2978e8c7df575cbd3a14a3",
      "parents": [
        "4ca15d4a658dca9663b7dea2475edfe6814ef847"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Aug 03 16:34:16 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Aug 03 16:52:38 2009 +0100"
      },
      "message": "ospfd: neuter some compiler warnings\n\n* ospf_lsa.c: (link_info_set) Use %zd for size_t - C99 is old enough now.\n  Lots of similar warnings all over the code.\n  (ospf_lsa_translated_nssa_compare) Unused func - delete.\n"
    },
    {
      "commit": "4ca15d4a658dca9663b7dea2475edfe6814ef847",
      "tree": "a756f68b118cf641f8f91966e771345d4a177b76",
      "parents": [
        "a8ba847ff96b41e06770d4987b15707890ed5807"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Aug 03 15:16:41 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Aug 03 16:52:38 2009 +0100"
      },
      "message": "ospfd: update some comments\n\n* ospf_{spf,lsa}.c: remove out of date comment; add comment on some\n  non-obvious code; Make note of a possible scaling problem.\n"
    },
    {
      "commit": "bd2462425205a681d75e04c94a94bf4cea5da58b",
      "tree": "326c2dde485eded444cde3db284aeb7a348892bf",
      "parents": [
        "650f76c2e1b0b12e1c46fdd3be22c5f505245d83"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Mon Jan 05 17:44:46 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 26 16:12:19 2009 +0100"
      },
      "message": "[ospfd] Do not use stale Network/Router LSAs\n\nShould a self originated Network/Router LSA with higher\nLS seq. nr. be received we should flood and install it in\nthe LSDB but we cannot use it for our internal calculations\nas it is stale.\nReorginate an new LSA to replace the stale one as soon\nas possible.\n"
    },
    {
      "commit": "f65431380428c3cb8eb5c0a0ac93debc30717a3f",
      "tree": "343c4b39fa516c0fc3a0640c9a8f9536c5b21d5f",
      "parents": [
        "dc26699a80eb7b40fb1c9026496cde2b80bf1335"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Tue Nov 04 13:37:29 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 25 12:23:27 2009 +0100"
      },
      "message": "[ospfd] Fix a few LSA performance \"bugs\"\n\nospf_lsa_install() will calculate LSA checksum so no\nneed to do it before calling ospf_lsa_install().\n\nSet the OSPF_LSA_SELF_CHECKED flag on own LSA\u0027s to\nsave ospf_lsa_is_self_originated() some work.\n\nDo not memset() memory that is about to overwritten\nwith memcpy().\n"
    },
    {
      "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": "6a270cd93d02a88709e7292684db47552b630abf",
      "tree": "8783ae29bef1f8e48e6278dcbe4360247316b029",
      "parents": [
        "3e40282fd93553da276b48830db3df819b73c884"
      ],
      "author": {
        "name": "Jingjing Duan",
        "email": "Jingjing.Duan@sun.com",
        "time": "Wed Aug 13 19:09:10 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:57 2008 +0100"
      },
      "message": "[ospfd/isisd] Switch to lib/ Fletcher checksum, fixing bug in isisd\n\n2008-08-13 Jingjing Duan \u003cJingjing.Duan@sun.com\u003e\n\n\t* ospfd/: Remove the old checksum implementation and\n\t  use the consolidated version.\n\t* isisd/: ditto, thus fixing isisd checksuming on big-endian.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "fc787e873dff0091069742b34fb3631ac529c92a",
      "tree": "0e3476ff66b483396f67c2e104ca27ade35be2e3",
      "parents": [
        "5b02255a671a5eee7c1736f6f9d0bab19a65cb2a"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Mon Aug 06 15:50:20 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Mon Aug 06 15:50:20 2007 +0000"
      },
      "message": "Fix last commit - add back in closing paren which was apparently\nuninentionally deleted along with a test.\n"
    },
    {
      "commit": "5b02255a671a5eee7c1736f6f9d0bab19a65cb2a",
      "tree": "dc38fa3d38a073249aef79962f0b69e1055a7e32",
      "parents": [
        "41367172d812354c05b11818346f0d49c2245aef"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 15:27:12 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 15:27:12 2007 +0000"
      },
      "message": "[ospfd] Bug #331, NSSA ASBR regression - failure to set E-bit in NSSA areas\n\n2007-08-06 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (router_lsa_flags) Bug #331, NSSA regression caused\n\t  caused ASBRs to not advertise E-bit into NSSA areas.\n"
    },
    {
      "commit": "e4529636b77124285cca96a62799d0ff6a7addeb",
      "tree": "a8a50de7413833d5277ed7309248e03719e9efd3",
      "parents": [
        "43cd33a44e010f818633b7f144b5a0be352b41e7"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Dec 12 19:18:21 2006 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Dec 12 19:18:21 2006 +0000"
      },
      "message": "[PtP over ethernet] New peer flag allows much more addressing flexibility\n\n2006-12-12 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* if.h: (struct connected) Add new ZEBRA_IFA_PEER flag indicating\n\t  whether a peer address has been configured.  Comment now shows\n\t  the new interpretation of the destination addr: if ZEBRA_IFA_PEER\n\t  is set, then it must contain the destination address, otherwise\n\t  it may contain the broadcast address or be NULL.\n\t  (CONNECTED_DEST_HOST,CONNECTED_POINTOPOINT_HOST) Remove obsolete\n\t  macros that were specific to IPv4 and not fully general.\n\t  (CONNECTED_PEER) New macro to check ZEBRA_IFA_PEER flag.\n\t  (CONNECTED_PREFIX) New macro giving the prefix to insert into\n\t  the RIB: if CONNECTED_PEER, then use the destination (peer) address,\n\t  else use the address field.\n\t  (CONNECTED_ID) New macro to come up with an identifying address\n\t  for the struct connected.\n\t* if.c: (if_lookup_address, connected_lookup_address) Streamline\n\t  logic with new CONNECTED_PREFIX macro.\n\t* prefix.h: (PREFIX_COPY_IPV4, PREFIX_COPY_IPV6) New macros\n\t  for better performance than the general prefix_copy function.\n\t* zclient.c: (zebra_interface_address_read) For non-null destination\n\t  addresses, set prefixlen to equal the address prefixlen.  This\n\t  is needed to get the new CONNECTED_PREFIX macro to work properly.\n\t* connected.c: (connected_up_ipv4, connected_down_ipv4,\n\t  connected_up_ipv6, connected_down_ipv6) Simplify logic using the\n\t  new CONNECTED_PREFIX macro.\n\t  (connected_add_ipv4) Set prefixlen in destination addresses (required\n\t  by the CONNECTED_PREFIX macro).  Use CONNECTED_PEER macro instead\n\t  of testing for IFF_POINTOPOINT.  Delete invalid warning message.\n\t  Warn about cases where the ZEBRA_IFA_PEER is set but no\n\t  destination address has been supplied (and turn off the flag).\n\t  (connected_add_ipv6) Add new flags argument so callers may set\n\t  the ZEBRA_IFA_PEER flag.  If peer/broadcast address satisfies\n\t  IN6_IS_ADDR_UNSPECIFIED, then reject it with a warning.\n\t  Set prefixlen in destination address so CONNECTED_PREFIX will work.\n\t* connected.h: (connected_add_ipv6) Add new flags argument so\n\t  callers may set the ZEBRA_IFA_PEER flag.\n\t* interface.c: (connected_dump_vty) Use CONNECTED_PEER macro\n\t  to decide whether the destination address is a peer or broadcast\n\t  address (instead of checking IFF_BROADCAST and IFF_POINTOPOINT).\n\t* if_ioctl.c: (if_getaddrs) Instead of setting a peer address\n\t  only when the IFF_POINTOPOINT is set, we now accept a peer\n\t  address whenever it is available and not the same as the local\n\t  address.  Otherwise (no peer address assigned), we check\n\t  for a broadcast address (regardless of the IFF_BROADCAST flag).\n\t  And must now pass a flags value of ZEBRA_IFA_PEER to\n\t  connected_add_ipv4 when a peer address is assigned.\n\t  The same new logic is used with the IPv6 code as well (and we\n\t  pass the new flags argument to connected_add_ipv6).\n\t  (if_get_addr) Do not bother to check IFF_POINTOPOINT: just\n\t  issue the SIOCGIFDSTADDR ioctl and see if we get back\n\t  a peer address not matching the local address (and set\n\t  the ZEBRA_IFA_PEER in that case).  If there\u0027s no peer address,\n\t  try to grab SIOCGIFBRDADDR regardless of whether IFF_BROADCAST is set.\n\t* if_ioctl_solaris.c: (if_get_addr) Just try the SIOCGLIFDSTADDR ioctl\n\t  without bothering to check the IFF_POINTOPOINT flag.  And if\n\t  no peer address was found, just try the SIOCGLIFBRDADDR ioctl\n\t  without checking the IFF_BROADCAST flag.  Call connected_add_ipv4\n\t  and connected_add_ipv6 with appropriate flags.\n\t* if_proc.c: (ifaddr_proc_ipv6) Must pass new flags argument to\n\t  connected_add_ipv6.\n\t* kernel_socket.c: (ifam_read) Must pass new flags argument to\n\t  connected_add_ipv6.\n\t* rt_netlink.c: (netlink_interface_addr) Copy logic from iproute2\n\t  to determine local and possible peer address (so there\u0027s no longer\n\t  a test for IFF_POINTOPOINT).  Set ZEBRA_IFA_PEER flag appropriately.\n\t  Pass new flags argument to connected_add_ipv6.\n\t  (netlink_address) Test !CONNECTED_PEER instead of if_is_broadcast\n\t  to determine whether the connected destination address is a\n\t  broadcast address.\n\t* bgp_nexthop.c: (bgp_connected_add, bgp_connected_delete)\n\t  Simplify logic by using new CONNECTED_PREFIX macro.\n\t* ospf_interface.c: (ospf_if_is_configured, ospf_if_lookup_by_prefix,\n\t  ospf_if_lookup_recv_if) Simplify logic using new CONNECTED_PREFIX\n\t  macro.\n\t* ospf_lsa.c: (lsa_link_ptop_set) Using the new CONNECTED_PREFIX\n\t  macro, both options collapse into the same code.\n\t* ospf_snmp.c: (ospf_snmp_if_update) Simplify logic using new\n\t  CONNECTED_ID macro.\n\t  (ospf_snmp_is_if_have_addr) Simplify logic using new CONNECTED_PREFIX\n\t  macro.\n\t* ospf_vty.c: (show_ip_ospf_interface_sub) Use new CONNECTED_PEER macro\n\t  instead of testing the IFF_POINTOPOINT flag.\n\t* ospfd.c: (ospf_network_match_iface) Use new CONNECTED_PEER macro\n\t  instead of testing with if_is_pointopoint.  And add commented-out\n\t  code to implement alternative (in my opinion) more elegant behavior\n\t  that has no special-case treatment for PtP addresses.\n\t  (ospf_network_run) Use new CONNECTED_ID macro to simplify logic.\n\t* rip_interface.c: (rip_interface_multicast_set) Use new CONNECTED_ID\n\t  macro to simplify logic.\n\t  (rip_request_interface_send) Fix minor bug: ipv4_broadcast_addr does\n\t  not give a useful result if prefixlen is 32 (we require a peer\n\t  address in such cases).\n\t* ripd.c: (rip_update_interface) Fix same bug as above.\n"
    },
    {
      "commit": "2518efd15b75687d4791a5eb4b0d7febc36cffbc",
      "tree": "075b833f292ba3e64117a9ffb440578c70be5a2a",
      "parents": [
        "db9c0df934e62835bc09604a7ae7932693b4254a"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Aug 27 06:49:29 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Aug 27 06:49:29 2006 +0000"
      },
      "message": "[ospfd] Bug #134, ospfd should be more robust to backward time change\n\n2006-08-25 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) Bug #134. Be more robust to backward time changes,\n\t  use the newly added libzebra time functions.\n\t  In most cases: recent_time -\u003e recent_relative_time()\n\t  gettimeofday -\u003e quagga_gettime (QUAGGA_CLK_MONOTONIC, ..)\n\t  time -\u003e quagga_time.\n\t  (ospf_make_md5_digest) time() call deliberately not changed.\n\t  (ospf_external_lsa_refresh) remove useless gettimeofday, LSA\n\t  tv_orig time was already set in ospf_lsa_new, called via\n\t  ospf_external_lsa_new.\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": "5db95bc2dda90dc462f77dd2610c004db685252e",
      "tree": "6d25d5818024859e897790850bdd11905a671654",
      "parents": [
        "d1b1cd8fb9309d89f10b95d59fb5b1420248895d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Jul 04 13:52:29 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Jul 04 13:52:29 2006 +0000"
      },
      "message": "[ospfd] CID #13, dont try print out fields of LSA we know to be NULL.\n\n2006-07-02 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (ospf_translated_nssa_refresh) CID #13.\n"
    },
    {
      "commit": "9560fa8ac994966a8da0ba23c46c0299164b7112",
      "tree": "fa1f10194a81da333af1bbe43664c73a5c1b5fc4",
      "parents": [
        "9aecfae2ec82027fe1cf2740e6099397376a3f4f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Jun 26 12:50:06 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Jun 26 12:50:06 2006 +0000"
      },
      "message": "[ospfd] NSSA translate-enabled ABR should declare itself as ASBR\n\n2006-06-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_abr.c: (general) NSSA translate-candidate ABRs need to\n\t  be ASBRs, or other routers may rightfully refuse to install\n\t  translated type-5s LSAs. reported by dendroot@gmail.com.\n\t  (ospf_abr_nssa_check_status) Detect change in translator\n\t  state when ABR, and inc/dec redistribute count as when we\n\t  leave/enter the disabled state - so that translate-enabled\n\t  ABR properly sets ASBR bit on non-NSSA areas.\n\t  Run the resulting function through indent to clean it up.\n\t* ospf_lsa.c: (router_lsa_flags) For purposes of ASBR bit,\n\t  NSSA area is same as stub area.\n"
    },
    {
      "commit": "ac904dec03ce6b1bbd1bab1718085a366d485bd8",
      "tree": "ffc6d51c14446bac13a7d3a945449bf1c2d8561f",
      "parents": [
        "88871b1d1ea8150ddf3d8f66fe77323770ba0f9f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:04:57 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:04:57 2006 +0000"
      },
      "message": "[ospfd] lsdb_delete/discard_from_db should be more robust to bad args\n\n2006-05-31 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsdb.c: (ospf_lsdb_delete) robustify against NULL arguments,\n\t  print warning.\n\t* ospf_lsa.c: (ospf_discard_from_db) ditto.\n\t  (ospf_maxage_lsa_remover) Check lsa-\u003elsdb for validity, possible\n\t  mitigation (but not solution) for bug #269.\n"
    },
    {
      "commit": "ae128056e9bb1b52e3b6c3263f5f7fd83efa5c3a",
      "tree": "1825628cbfa71ec05ebb8a8162e20a08092922c8",
      "parents": [
        "e54e6e57205df19efe3023526b7eb53a9d06fa93"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:15:30 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:15:30 2006 +0000"
      },
      "message": "[ospfd] Fix small error in CID #13 commit\n\n2006-05-13 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (ospf_translated_nssa_refresh) fix the sanity\n\t  check to match the assert, small error in CID #13 fix.\n"
    },
    {
      "commit": "e54e6e57205df19efe3023526b7eb53a9d06fa93",
      "tree": "dbe366409aef4f115a1c84998e52d97e9943223c",
      "parents": [
        "deb1561c1824d0a5215c8fcd0084393090a6567e"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:11:14 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:11:14 2006 +0000"
      },
      "message": "[ospfd] CID #13, debug for NULL type7 LSA should not print out data from it\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (ospf_translated_nssa_refresh) Add non-assert\n\t  sanity check, in case DEBUG isn\u0027t defined.  Debug message\n\t  when no type7 exists should print the ID from the type5, not\n\t  the type7, fixes CID #13.\n"
    },
    {
      "commit": "70461d793444002cc2ce99e4e62df3c367d9dd50",
      "tree": "aa248149e799cc39d5f2d4ea9193522e64cb6ce4",
      "parents": [
        "4021b60aad57f71f5d3d5c105127f93bd77bf800"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 22:57:57 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 22:57:57 2006 +0000"
      },
      "message": "[ospfd] CID #29, fix missing NULL check by removing unused code.\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (ospf_lsa_action) Get rid of the ospf_lookup\n\t  call, which is not checked for NULL return, by stripping out\n\t  functionality which is never used, hence fixing Coverity CID\n\t  #29.\n\t  (struct lsa_action) remove unused member.\n"
    },
    {
      "commit": "4021b60aad57f71f5d3d5c105127f93bd77bf800",
      "tree": "810783e34d8cb8e573fd4773ab6d7b955c84a4f2",
      "parents": [
        "214a4454376e8c96990e4c2ee6edea891c1f3166"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 22:55:41 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 22:55:41 2006 +0000"
      },
      "message": "[ospfd] Squash another ospf_lookup call\n\n2006-05-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (ospf_default_originate_timer) Let the thread\n\t  take (struct ospf *) as thread argument, rather than (struct\n\t  ospf *)-\u003edefault_originate, thus avoiding having to call\n\t  ospf_lookup.\n\t* ospf_zebra.c: (ospf_redistribute_default_set) change setup\n\t  of ospf_default_originate_timer thread to match.\n\t* ospfd.c: (ospf_router_id_update) ditto.\n"
    },
    {
      "commit": "075c2011bbec618934637ead3fd6dec65cd30a45",
      "tree": "47e252e3f2d524a520d9be081af0bbaa2963e5c7",
      "parents": [
        "d4ce4f681e04bdd11f5bc7ab30bc6e9048fdf6d2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:34:31 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:34:31 2006 +0000"
      },
      "message": "[ospfd] Fix failure of Fletcher checksum with certain compilers\n\n2006-03-27 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (ospf_lsa_checksum) Add an explicit cast to avoid\n\t  the ambiguities of ANSI and C99 C with respect to type\n\t  conversion. Detailed problem report and test case with\n\t  example data supplied by Dmitry Ivanov \u003cdimss@telecentrs.lv\u003e.\n"
    },
    {
      "commit": "c2b478d7a4fae2eb2f7f895b80d36af9c8e73ab0",
      "tree": "4eb613cd2aa57614b8215e6a671b247c9a6fea30",
      "parents": [
        "a625ca3cd2df6016aef97096eb927b783eb26d7f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:16:11 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:16:11 2006 +0000"
      },
      "message": "[ospfd] Fix incorrect byte-order conversion of OSPF_MAX_SEQUENCE_NUMBER\n\n2006-03-23 Steve Lawson \u003csteve.lawson@aheadcomusa.com\u003e\n\n\t* ospf_lsa.c: (ospf_lsa_install) Fix incorrect byte-order\n\t  conversion of OSPF_MAX_SEQUENCE_NUMBER\n"
    },
    {
      "commit": "e8e1946edf6ba87ef53832cdceccc39d7f0c3f26",
      "tree": "fcdaf92bf4129a8a58825bd21ae841a6b3b2bda8",
      "parents": [
        "779adb0147cfff1a831b08853976342ad2110fcd"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 19 20:16:55 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 19 20:16:55 2006 +0000"
      },
      "message": "[compiler] miscellaneous trivial compiler warning fixes\n\n2006-01-19 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n        * (general) various miscellaneous compiler warning fixes.\n          Remove redundant break statements from switch clauses\n          which return.\n          return from main, not exit, cause it annoys SOS.\n          Remove stray semi-colons which cause empty-statement\n          warnings.\n\t* zebra/main.c: (sighup) remove private declaration of external\n\t  function.\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": "c24d602e82d31a2fcbccb4cc3b66f8d0a79d5f22",
      "tree": "55abf96bbb7899029d542b0714e666159484dbb2",
      "parents": [
        "b29800a676b7c3cf00d8a4086b7783ccb7e2f29f"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Nov 20 14:54:12 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Nov 20 14:54:12 2005 +0000"
      },
      "message": "2005-11-20 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n        * ospf_abr.c: (ospf_abr_announce_network_to_area) check\n          returned LSA of ospf_summary_lsa_refresh and print warning if\n          it failed.\n          (ospf_abr_announce_network_to_area) similar\n          (ospf_abr_announce_rtr_to_area) similar\n        * ospf_lsa.c: (ospf_router_lsa_new) check LSA returned is valid.\n          (ospf_router_lsa_originate) similar\n          (ospf_router_lsa_refresh, ospf_network_lsa_new) similar\n          (ospf_summary_lsa_new) Check ID is valid.\n          (ospf_summary_lsa_originate) ditto, and check returned LSA from\n           previous function is !NULL.\n          (ospf_summary_lsa_refresh) check ospf_summary_lsa_new return\n           is !NULL.\n          (ospf_summary_asbr_lsa_new) ID valid check.\n          (ospf_summary_asbr_lsa_originate) similar.\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": "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": "9dbc797274ca5df614d61784658b8f809bbd8e2b",
      "tree": "97aa0b8f724e440a6bb12bc70b31c66b425b2a46",
      "parents": [
        "ed9bb6d524301cb7d1902ed94753ffa3c6dabf1e"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sun Mar 13 19:27:22 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sun Mar 13 19:27:22 2005 +0000"
      },
      "message": "2005-03-13 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_lsa.c: (ospf_lsa_refresh_walker) If the system clock jumps\n\t  backward, then current time may be less than\n\t  ospf-\u003elsa_refresher_started.  This was causing invalid values\n\t  for ospf-\u003elsa_refresh_queue.index resulting in infinite loops.\n\t  Problem fixed by casting the expression to unsigned before taking\n\t  the modulus.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "9985f83ce7102f64b15f744b60320f8d14a8a5ff",
      "tree": "344629bdc2b4a7d53b8d7ca1705c9be2ca282d18",
      "parents": [
        "083ee9d9cdbf72a452b9af96e62d0625ea712cd9"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Feb 09 15:51:56 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Feb 09 15:51:56 2005 +0000"
      },
      "message": "2005-02-09 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (global) Update code to match stream.h changes.\n\t  stream_get_putp effectively replaced with stream_get_endp.\n\t  stream_forward renamed to stream_forward_getp.\n\t  stream_forward_endp introduced to replace some previous\n\t  setting/manual twiddling of putp by daemons.\n\t* lib/stream.h: Remove putp. Update reference to putp with endp.\n\t  Add stream_forward_endp, which daemons were doing manually.\n\t  Rename stream_forward to stream_forward_getp.\n\t  lib/stream.c: Remove/update references to putp.\n\t  introduce stream_forward_endp.\n"
    },
    {
      "commit": "fe71a97da23e2282bc92f647227d5c97c73e3bc8",
      "tree": "d812d9a1b98b0a1e9c1621194bf58dba097d6e3b",
      "parents": [
        "16f6511e94c3765725b196aacaf6053385bca8a3"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 22 16:16:02 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 22 16:16:02 2004 +0000"
      },
      "message": "Show sums of checksums in \"show ip ospf\" output. Okayed by Paul and James\nR. Leu (author of original idea).\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": "3fb9cd6ef456959b6eff939d5c316f6785c2dda4",
      "tree": "e350cb3ef7b20b8bbccfb1aa9309152311e845bd",
      "parents": [
        "5ae35f45f1292dce3a01f241accafeb2e59b10cc"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Oct 19 19:44:43 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Oct 19 19:44:43 2004 +0000"
      },
      "message": "OK. Here it is - PtP patch from Andrew J. Schorr. No problems with ospfd,\nripd might need some more testing though.\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": "c9e52be3f4d98943b67fbbe5d9a7ccd823b88326",
      "tree": "d4045a946af3be8bbdc303162778e8c44057e2f9",
      "parents": [
        "e473b032b860444b9656cee1654b0120f77b52b1"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 16:09:34 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 16:09:34 2004 +0000"
      },
      "message": "Compiler warnings fixes.\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": "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": "553ff11329835054314f6c9ce61da7d3e2477b19",
      "tree": "11140105b2b1a6c70fd58601d7b6f9f609385152",
      "parents": [
        "8ba85bc0716e9823b12c48167781f81c7565977a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 06 09:41:00 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 06 09:41:00 2004 +0000"
      },
      "message": "2004-06-06 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * ospf_dump.c,ospf_lsa.c: Fix typos of merge of previous.\n          ospf_flood.c: (ospf_process_self_originated_lsa) fix zlog format.\n"
    },
    {
      "commit": "0c2be26c735870c28ec7985ca1d24d96ae63ae45",
      "tree": "a9bcbdbb3e46be5e2d335461fdf9c2c73a0ab505",
      "parents": [
        "dc0b5ce220387b3982d7120ce2273a9094e6a778"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 31 14:16:54 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 31 14:16:54 2004 +0000"
      },
      "message": "2004-05-31 Sagun Shakya \u003csagun.shakya@sun.com\u003e\n\n        * ospf_dump.c: (ospf_lsa_header_dump) LOOKUP can return null if\n          index is out of range.\n          ospf_flood.c: endianness fix\n          ospf_lsa.c: Missing ntohl\u0027s on (struct lsa *)-\u003edata-\u003els_seqnum\n          in various places.\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": "8fc0f64b143ed2155567f5c9f0faad756252146a",
      "tree": "f857f7da18250fb709973afb2e66d28a3c6aafa8",
      "parents": [
        "7f809942dac3683794f3e9924d327b48be0fe852"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jul 13 01:36:06 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jul 13 01:36:06 2003 +0000"
      },
      "message": "2003-07-13 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_lsa.c: fix up some places where an NSSA specific define,\n\t  (OSPF_LSA_LOCAL_XLT) was referenced in if statements without being\n\t  ifdef\u0027ed by HAVE_NSSA.\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": "0c14ad88aab5df610acfe035385a7323e1683035",
      "tree": "bdea3bbb0c7827830912470d1d69656e81df9f85",
      "parents": [
        "9d5260374afc19e31eab72b9d1550e8b57c57dbe"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Jul 03 08:36:02 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Jul 03 08:36:02 2003 +0000"
      },
      "message": "Don\u0027t install Type-7 LSA\u0027s into nonNSSA area.\n"
    },
    {
      "commit": "942b6c19895fb44041fcd4f588440619f61e6745",
      "tree": "274823fc3963e6d67ad07db2ee59bf782398db0f",
      "parents": [
        "2e6b0bbbb44f67bd5664e6dd52c7cd4ad9286c06"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 22 08:22:18 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 22 08:22:18 2003 +0000"
      },
      "message": "2003-06-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_lsa.c (router_lsa_flags): Set the correct flags for\n\t  router-lsa\u0027s. Eg OSPF_FLAG_ASBR is /not/ an LSA flag, its an\n\t  internal ospfd flag (just happens to have same value as\n\t  ROUTER_LSA_EXTERNAL). Set ROUTER_LSA_EXTERNAL for ASBRs,\n\t  ROUTER_LSA_BORDER for ABRs and ROUTER_LSA_NT for NSSA ABRs which\n\t  are OSPF_NSSA_ROLE_ALWAYS translators.\n"
    },
    {
      "commit": "d748032f10058182bcd10ca7fe244d6918b68f14",
      "tree": "316702bcbfc2771715240df9d91d77e45ab2c1ec",
      "parents": [
        "a4b70768b4d08683d16a1e8225411e429fb531d3"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 16 17:31:51 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 16 17:31:51 2003 +0000"
      },
      "message": "From: Hasso Tepper \u003chasso@estpak.ee\u003e\nSubject: [zebra 19091] [PATCH] NSSA fixes try2\n\nNSSA didn\u0027t work without problems even after my previous fixes. Seems\nthat I tracked down problems finally.\n"
    },
    {
      "commit": "843521964f801b1266e59df3b005b1b4bf48fdc7",
      "tree": "124517904db3902ce28a81d3a5398dac80fe2962",
      "parents": [
        "4fb949e3341c16e202c39400dc34bbc0902bbd7a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 11 12:59:11 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 11 12:59:11 2003 +0000"
      },
      "message": "Fix merge error of Hasso\u0027s patch \"case case\" :)\n"
    },
    {
      "commit": "4fb949e3341c16e202c39400dc34bbc0902bbd7a",
      "tree": "d74a08a0a3b8aeaea0650c6c24a6913afeaba071",
      "parents": [
        "fba3d22b84cfe2ba39047c8fc67fe80469e8ef8e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 10 20:06:51 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 10 20:06:51 2003 +0000"
      },
      "message": "From: Hasso Tepper\n\nFix removal of Type-7 LSAs, http://bugzilla.dishone.st/show_bug.cgi?id\u003d18\n"
    },
    {
      "commit": "ccd57affea4f10d2228612f702b4acb0fd974cbc",
      "tree": "4476005d79f636550e826773a58a2784cdcf5b99",
      "parents": [
        "5376b5efb22ad22d893498bd9d9aa8ef2f4a78d3"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 06 23:38:23 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 06 23:38:23 2003 +0000"
      },
      "message": "Reverting the NSSA maxage walker loop addition for now, until all the other\nproblems with NSSA are resolved, and we can determine whether this had any\npoint.\n"
    },
    {
      "commit": "5376b5efb22ad22d893498bd9d9aa8ef2f4a78d3",
      "tree": "5e49fc7aebb88b70b88410086263d9184a96309e",
      "parents": [
        "24cd435b1a24f8243da69dafa01286525f08291c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 06 23:31:38 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 06 23:31:38 2003 +0000"
      },
      "message": "NSSA /might/ be missing this. I\u0027m not sure.\nIt didnt solve a particular problem of Hasso\u0027s, but i\u0027m committing it just\nfor posterities sakes, so i dont lose it (i\u0027ll revert it immediately).\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": "e05fba43875e86ba2ec6e3970e5ec3aa2d0e040c",
      "tree": "a04f2ab2869cb1915320ae9d30ff9d575ecee96e",
      "parents": [
        "f894c3ad34ca6f2fa35d7e8cc35db3134c184764"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Apr 13 20:20:53 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Apr 13 20:20:53 2003 +0000"
      },
      "message": "Author: amir\nDate: 2003-04-10 14:32:31 +0200 (Thu, 10 Apr 2003)\nNew Revision: 212\n\nModified:\n   zebra-ag/trunk/ospfd/ospf_lsa.c\nLog:\nI\u0027ve fixed a small opaque lsa bug which got triggered when deleting opaque\nlsa of type 11. It used area-\u003eospf-\u003e.. when area was null. This was replaced\nby a ospf \u003d ospf_lookyp(); ospf-\u003e...\n"
    },
    {
      "commit": "1cc8f7624c3fad90196d566b46f03ab4e88f7d6b",
      "tree": "57e972ef7bae35f15f933af0cb67c48c4264627f",
      "parents": [
        "020709f9939c542e96b12f06522ad5e33d8cf445"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Apr 05 19:34:32 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Apr 05 19:34:32 2003 +0000"
      },
      "message": "Add tests for debug enabled to PtMP LSA creation functions\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": "d18258304a79b459fe768e63f27efd17aa1fa78f",
      "tree": "d731805699f7391f33a13933e4b522580573be0a",
      "parents": [
        "05351a28c06c0b27e6aeb7d3c7801123c0242476"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Apr 03 01:27:01 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Apr 03 01:27:01 2003 +0000"
      },
      "message": "From: David Watson \u003cdwatson@eecs.umich.edu\u003e\nSubject: [zebra 18573] PATCH ospfd: byte order error in assert statement\n\n I found a bug in the ospfd code tickled this morning by a Type 1\n LSA with exactly 62 entries (LSA length of 768, or 0x0300).\n A missing ntohs in ospf_lsa.c:ospf_lsa_different() causes an assert\n statement to fail, stopping ospfd.\n \u003e   assert (l1-\u003edata-\u003elength \u003e OSPF_LSA_HEADER_SIZE);\n So, a length of type 768 turns into a length of 3 which is\n obviously less than 20.\n David\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": "17b78d38e438bb25d27aa00554ad948a792850aa",
      "tree": "7c0691d8d0164f57266690a9982ba750c346927f",
      "parents": [
        "619efcb3d51edf5d144293d08cbc3777655310e4"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Feb 13 22:04:01 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Feb 13 22:04:01 2003 +0000"
      },
      "message": "Fix debug statement in ospf_packet.c and merge error in ospf_lsa.c\n"
    },
    {
      "commit": "37163d6d0cc49d34a0ea6c0de3184cda93efb419",
      "tree": "96bbe047e20abc715894d42652430757daa62758",
      "parents": [
        "7d7ddde299bddebb48d1e98a9be04008eaa5baad"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Feb 03 18:40:56 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Feb 03 18:40:56 2003 +0000"
      },
      "message": "Merge to zebra.org CVS 20030203 16:30GMT\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": "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": "2e3b2e474ed5ba04744b167132a84f9954485af4",
      "tree": "cc07fb34a1bf21ead5cc3ad69e4a9dfde2b43b0e",
      "parents": [
        "7afa08da2d3690baee1739da400775f8543f5863"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 21:03:13 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 21:03:13 2002 +0000"
      },
      "message": "zebra link state detection support\n"
    },
    {
      "commit": "7afa08da2d3690baee1739da400775f8543f5863",
      "tree": "e050940bb5e77b4cbaed844b689bbd543e2372c7",
      "parents": [
        "30961a15cf3837b62c65d4c0ecf3ee05f4b6bf55"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:59:45 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:59:45 2002 +0000"
      },
      "message": "ospfd Point-to-Multipoint support\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"
    }
  ]
}
