)]}'
{
  "log": [
    {
      "commit": "ef1b78cbcd8ade0c5444f3ff9dd00a40e760ec92",
      "tree": "ad1f4d0ac76be5cff0cea5c44ba23b76967746c2",
      "parents": [
        "b29adf9c3e69f298f748564a20abdf7274bbc549"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Feb 26 17:00:57 2012 +0400"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Mar 12 11:05:34 2012 +0100"
      },
      "message": "ospfd: introduce ospf_auth_type_str[]\n"
    },
    {
      "commit": "272ca1e33016b1cbf9c72038d5e631b0adb04dc9",
      "tree": "6728fe6847947d0ddf600bd22f4bf7f040da8274",
      "parents": [
        "a20a4060c8b90e3d88ce97d439eee1a38260d7c5"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Jan 15 19:12:19 2012 +0400"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Mon Mar 12 11:04:54 2012 +0100"
      },
      "message": "ospfd: use LOOKUP() for ospf_packet_type_str\n\n* ospf_packet.h: add proper str/max extern declarations\n* ospf_packet.c\n  * ospf_packet_type_str: rewrite in \"struct message\", add max value\n  * ospf_packet_add(): use LOOKUP()\n  * ospf_write(): ditto\n  * ospf_hello(): ditto\n  * ospf_read(): ditto\n* ospf_dump.h: the declaration does not belong here\n* ospf_dump.c\n  * ospf_header_dump(): use LOOKUP()\n  * show_debugging_ospf(): ditto\n"
    },
    {
      "commit": "7ba82f70ddf9abf99277b25cd54503a8517a0c15",
      "tree": "85ab34cd3d20d7ee28342614b62d26b32e7bd68a",
      "parents": [
        "b2d933f8280a4d9eee8a9330282e705514a96a03"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 10:47:45 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:30 2009 +0100"
      },
      "message": "[OSPF/cleanup] make message lists read only\n"
    },
    {
      "commit": "7fc626de5f618133ad2a478d13defa3a110b89ea",
      "tree": "432ff0e4672eabc2ec6b0dcffc22dcc0aee532c8",
      "parents": [
        "66e5cd87194ae6fdd51061a91b4698bc0a652f6b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Dec 01 11:10:34 2008 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 17:10:29 2009 +0100"
      },
      "message": "[cleanup] Make command nodes static\n\nThe cmd_nodes used to configure vty, can mostly be static so\n(basic data hiding 101).\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": "1f2c2743ac188b909114a1bf054a9a41a0cd5635",
      "tree": "a55fdbddb1c4f5ea4476fd44ccf2fb988cafd819",
      "parents": [
        "aa2737a08a284953908e131894accd25bf627d53"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Jul 10 07:45:13 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Jul 10 07:45:13 2006 +0000"
      },
      "message": "[ospfd] cleanup NSM neighbour delete through a new Deleted NSM state\n\n2006-07-07 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_nsm.h: Add a NSM_Deleted neighbour state, to act as dummy\n\t  state indicating the neighbour is to be deleted.\n\t* ospf_nsm.c: (general) Use the NSM_Deleted state to delete\n\t  neighbours, thus allowing code to be slightly more obvious\n\t  in its flow.\n\t  (nsm_timer_set) Add NSM_Deleted. Add another timer the code\n\t  missed.\n\t  (nsm_kill_nbr) No need for special case call to nsm_change_state\n\t  anymore.\n\t  Make the assert and error-handling for same case more readable\n\t  (Andrew Schorr)\n\t  Remove the call to ospf_nbr_delete, nsm_change_state can do\n\t  this generally now via NSM_Deleted.\n\t  (struct ... NSM) Add the dummy NSM_Deleted state, the 3 events\n\t  that can lead to nsm_kill_nbr all now transition the NBR to\n\t  NSM_Deleted and the general change_state function can be left\n\t  to do the work.\n\t  (ospf_nsm_event) Special casing of events and early-return can\n\t  be removed now.\n\t  On transition into Deleted, delete the nbr.\n\t* ospf_dump.c: (ospf_nsm_state_msg) Add Deleted.\n"
    },
    {
      "commit": "0ffb7094d3bd688560c37f01a05c54e35b3a1fbc",
      "tree": "00e7d13d3ae36728ce2b4a8d472f428816b1c7a1",
      "parents": [
        "6e72cb6a0940bd3dae2d4f023ef94f84af3b723c"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sat Jun 24 19:40:13 2006 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sat Jun 24 19:40:13 2006 +0000"
      },
      "message": "[ospfd] When writing out config, show \"debug ospf nsm status\" properly\n\n2006-06-24 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_dump.c: (config_write_debug) Fix typo to show debug ospf nsm\n\t  status properly (not ism status).\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": "c8c1521a7d39d165ef856c1a3a6dcd54f0532e8d",
      "tree": "ac069b1dd77be09ea5419169544cbf2107cf89d1",
      "parents": [
        "8570676c4ffb407284d51a80c045d6989b7af6d7"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 04 12:31:39 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 04 12:31:39 2005 +0000"
      },
      "message": "2005-11-04 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_{dump,spf,vty}.c: Oops, use the internal tv_sub\n\t  function rather than unportable timersub.\n"
    },
    {
      "commit": "ea4ffc9009ac4596fe865fd5f7e8363cdacbbd66",
      "tree": "e7281a93367a634b7d08fa45c24951dbb0bd444c",
      "parents": [
        "d24f6e2a34ca829bd2ff6adb98b49d4d2d9cb737"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 21 20:04:41 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 21 20:04:41 2005 +0000"
      },
      "message": "2005-10-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_dump.c: (ospf_timeval_dump) fix ms adjustment, thanks to\n\t  Andrew Schorr.\n\t* ospf_vty.c: (ospf_config_write) fix write out of spf timers\n\t  configuration.\n"
    },
    {
      "commit": "d24f6e2a34ca829bd2ff6adb98b49d4d2d9cb737",
      "tree": "1d2a79a2ec4004f16b1ba3f2f2923ed8796cde83",
      "parents": [
        "c188c37caaf589a17b22e9889e63ec96f2f57106"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 21 09:23:12 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 21 09:23:12 2005 +0000"
      },
      "message": "2005-10-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) SPF millisecond resolution timer with adaptive,\n\t  linear back-off holdtime. Prettification of ospf_timer_dump.\n\t* ospf_dump.c: (ospf_timeval_dump) new function. The guts of\n\t  ospf_timer_dump, but made to be more dynamic in printing out\n\t  the relative timeval, sliding the precision printed out\n\t  according to the value.\n\t  (ospf_timer_dump) guts moved to ospf_timeval_dump.\n\t* ospf_dump.h: export ospf_timeval_dump.\n\t* ospf_flood.c: (ospf_flood) remove gettimeofday, use\n\t  the libzebra exported recent_time instead, as it\u0027s not\n\t  terribly critical to have time exactly right - the dropped\n\t  LSA will be retransmited to us if we don\u0027t ACK it.\n\t* ospf_packet.c: (ospf_ls_upd_timer) Ditto, but here we\u0027re\n\t  not transmitting, just putting LSA back on update transmit list.\n\t* ospfd.h: delay and holdtimes should be unsigned.\n\t  Add spf_max_holdtime and spf_hold_multiplier.\n\t  Update default defines for delay and hold time to be in msec.\n\t  (struct ospf) change the SPF timestamp to a struct timeval.\n\t  Remove ospf_timers_spf_(un)?set.\n\t* ospfd.c: (ospf_timers_spf_{set,unset}) removed.\n\t  (ospf_new) initialise spf_max_holdtime and spf_hold_multiplier\n\t* ospf_spf.c: (ospf_spf_calculate) SPF timestamp is a timeval\n\t  now, update with gettimeofday.\n\t  (ospf_spf_calculate_schedule) Change SPF timers to millisecond\n\t  resolution.\n\t  Make the holdtime be adaptive, with a linear increase in\n\t  holdtime ever consecutive SPF run which occurs within holdtime\n\t  of previous SPF, bounded by spf_max_holdtime.\n\t* ospf_vty.c: Update spf timers commands.\n\t  (ospf_timers_spf_set) trivial helper.\n\t  (ospf_timers_throttle_spf_cmd) new command to set SPF delay,\n\t  initial hold and max hold times with millisecond resolution.\n\t  (ospf_timers_spf_cmd) Deprecated. Accept the old values,\n\t  convert to msec, truncate to new limits.\n\t  (no_ospf_timers_throttle_spf_cmd) set timers to defaults.\n\t  (no_ospf_timers_spf_cmd) deprecated form, same as previous.\n\t  (show_ip_ospf_cmd) Display SPF parameters and times.\n\t  (show_ip_ospf_neighbour_header) Centralise the \u0027sh ip os ne\u0027\n\t  header.\n\t  (show_ip_ospf_neighbor_sub) Fix the field widths. Get rid of\n\t  the multiple spaces which were making the lines even longer.\n\t  (show_ip_ospf_neighbor_cmd) Use show_ip_ospf_neighbour_header\n\t  (show_ip_ospf_neighbor_all_cmd) ditto and fix the field\n\t  widths for NBMA neighbours.\n\t  (show_ip_ospf_neighbor_int) Use header function.\n\t  (show_ip_ospf_nbr_nbma_detail_sub) use sizeof for timebuf,\n\t  local array - safer.\n\t  (show_ip_ospf_neighbor_detail_sub) ditto\n\t  (ospf_vty_init) install the new SPF throttle timer commands.\n"
    },
    {
      "commit": "f9ad937f537df92bf3119686eee97db7b7176674",
      "tree": "8c203f4bffabbb2fd27ffeafd2e87e5fd704a0e2",
      "parents": [
        "24065a3d4a61a136a17996a48df02b0b180bc6f0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 21 00:45:17 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 21 00:45:17 2005 +0000"
      },
      "message": "2005-10-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) OSPF fast, sub-second hello and 1s dead-interval\n\t  support. A warning fix. Millisec support for ospf_timer_dump.\n\t  Change auto-cost ref-bandwidth to add a comment to write out\n\t  of config, rather than printing annoying messages to vty on\n\t  startup.\n\t* ospf_dump.c: (ospf_timer_dump) Print out milliseconds too.\n\t  Callers typically specify a length of 9, so most see\n\t  millisecs unless they specify the additional length.\n\t* ospf_interface.h: (struct ospf_interface) new interface param,\n\t  fast_hello.\n\t* ospf_interface.c: (ospf_if_table_lookup) add brackets,\n\t  gcc warning fix.\n\t  (ospf_new_if_params) Initialise fast_hello param.\n\t  (ospf_free_if_params) Check whether fast_hello is configured.\n\t  (ospf_if_new_hook) set fast_hello to default.\n\t* ospf_ism.h: Wrap OSPF_ISM_TIMER_ON inside do {} while (0) to\n\t  prevent funny side-effects from its if statement when this\n\t  macro is used conditionally by other macros.\n\t  (OSPF_ISM_TIMER_MSEC_ON) new macro, set in milliseconds.\n\t  (OSPF_HELLO_TIMER_ON) new macro to set hello timer according\n\t  to whether fast_hello is set.\n\t* ospf_ism.c: Update all setting of the hello timer to use\n\t  either OSPF_ISM_TIMER_MSEC_ON or OSPF_HELLO_TIMER_ON. The\n\t  former is used when hello is to be sent immediately.\n\t* ospf_nsm.c: ditto\n\t* ospf_packet.c: (ospf_hello) hello-interval is not checked\n\t  for mismatch if fast_hello is set.\n\t  (ospf_read) Annoying nit, fix \"no ospf_interface\" to be debug\n\t  rather than a warning, as it can be perfectly normal to\n\t  receive packets when logical subnets are used.\n\t  (ospf_make_hello) Set hello-interval to 0 if fast-hellos are\n\t  configured.\n\t* ospf_vty.c: (ospf_auto_cost_reference_bandwidth) annoying\n\t  nit, don\u0027t vty_out if this command is given, it gets tired\n\t  quick.\n\t  (show_ip_ospf_interface_sub) Print the hello-interval\n\t  according to whether fast-hello is set or not.\n\t  Print the extra 5 millisec characters from (ospf_timer_dump)\n\t  if fast-hello is configured.\n\t  (ospf_vty_dead_interval_set) new function, common to all\n\t  forms of dead-interval command, to set dead-interval and\n\t  fast-hello correctly. If a dead-interval is given, unset\n\t  fast-hello, else if a hello-multiplier is set, set\n          dead-interval to 1 and fast-hello to given multiplier.\n\t  (ip_ospf_dead_interval_addr_cmd) use\n\t  ospf_vty_dead_interval_set().\n\t  (ip_ospf_dead_interval_minimal_addr_cmd) ditto.\n\t  (no_ip_ospf_dead_interval) Unset fast-hello.\n\t  (no_ip_ospf_hello_interval) Bug-fix, unset of hello-interval\n\t  should set it to OSPF_HELLO_INTERVAL_DEFAULT, not\n\t  OSPF_ROUTER_DEAD_INTERVAL_DEFAULT.\n\t  (config_write_interface) Write out fast-hello.\n\t  (ospf_config_write) Write a comment about\n\t  \"auto-cost reference-bandwidth\" having to be equal on all\n\t  routers. Hopefully just as noticeable as old practice of\n\t  writing to vty, but less annoying.\n\t  (ospf_vty_if_init) install the two new dead-interval\n\t  commands.\n\t* ospfd.h: Add defines for OSPF_ROUTER_DEAD_INTERVAL_MINIMAL\n\t  and OSPF_FAST_HELLO_DEFAULT.\n"
    },
    {
      "commit": "f52d13cb2e8e7197934d5f241f88647f9b9d78b8",
      "tree": "b0aa01befc07f57ed47e83ac7dfb383284c49d26",
      "parents": [
        "c05612b9a702d0f49c379c92deb6daab55372aea"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Oct 01 17:38:06 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Oct 01 17:38:06 2005 +0000"
      },
      "message": "2005-10-01 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* zebra.h: Declare new functions zebra_route_string() and\n\t  zebra_route_char().\n\t* log.c: (zroute_lookup,zebra_route_string,zebra_route_char) New\n\t  functions to map zebra route numbers to strings.\n\t* zebra_vty.c: (route_type_str) Remove obsolete function: use new\n\t  library function zebra_route_string() instead.  Note that there\n\t  are a few differences: for IPv6 routes, we now get \"ripng\" and\n\t  \"ospf6\" instead of the old behavior (\"rip\" and \"ospf\").\n\t  (route_type_char) Remove obsolete function: ues new library function\n\t  zebra_route_char() instead.  Note that there is one difference:\n\t  the old function returned \u0027S\u0027 for a ZEBRA_ROUTE_SYSTEM route,\n\t  whereas the new one returns \u0027X\u0027.\n\t  (vty_show_ip_route_detail,vty_show_ipv6_route_detail) Replace\n\t  route_type_str() with zebra_route_string().\n\t  (vty_show_ip_route,vty_show_ipv6_route) Replace route_type_char()\n\t  with zebra_route_char().\n\t* bgp_vty.c: (bgp_config_write_redistribute) Use new library function\n\t  zebra_route_string instead of a local hard-coded table.\n\t* ospf6_asbr.c: Remove local hard-coded tables zroute_name and\n\t  zroute_abname. Change the ZROUTE_NAME macro to use new library\n\t  function zebra_route_string().  Remove the ZROUTE_ABNAME macro.\n\t  (ospf6_asbr_external_route_show): Replace ZROUTE_ABNAME() with\n\t  a call to zebra_route_char(), and be sure to fix the format string,\n\t  since we now have a char instead of a char *.\n\t* ospf6_zebra.c: Remove local hard-coded tables zebra_route_name and\n\t  zebra_route_abname.  Note that the zebra_route_name[] table\n\t  contained mixed-case strings, whereas the zebra_route_string()\n\t  function returns lower-case strings.\n\t  (ospf6_zebra_read_ipv6): Change debug message to use new library\n\t  function zebra_route_string() instead of zebra_route_name[].\n\t  (show_zebra): Use new library function zebra_route_string() instead\n\t  of zebra_route_name[].\n\t* ospf_dump.c: Remove local hard-coded table ospf_redistributed_proto.\n\t  (ospf_redist_string) New function implemented using new library\n\t  function zebra_route_string().  Note that there are a few differences\n\t  in the output that will result: the new function returns strings\n\t  that are lower-case, whereas the old table was mixed case.  Also,\n\t  the old table mapped ZEBRA_ROUTE_OSPF6 to \"OSPFv3\", whereas the\n\t  new function returns \"ospf6\".\n\t* ospfd.h: Remove extern struct message ospf_redistributed_proto[],\n\t  and add extern const char *ospf_redist_string(u_int route_type)\n\t  instead.\n\t* ospf_asbr.c: (ospf_external_info_add) In two messages, use\n\t  ospf_redist_string instead of LOOKUP(ospf_redistributed_proto).\n\t* ospf_vty.c: Remove local hard-coded table distribute_str.\n\t  (config_write_ospf_redistribute,config_write_ospf_distribute): Use\n\t  new library function zebra_route_string() instead of distribute_str[].\n\t* ospf_zebra.c: (ospf_redistribute_set,ospf_redistribute_unset,\n\t  ospf_redistribute_default_set,ospf_redistribute_check)\n\t  In debug messages, use ospf_redist_string() instead of\n\t  LOOKUP(ospf_redistributed_proto).\n\t* rip_zebra.c: (config_write_rip_redistribute): Remove local hard-coded\n\t  table str[]. Replace str[] with calls to new library function\n\t  zebra_route_string().\n\t* ripd.c: Remove local hard-coded table route_info[].\n\t  (show_ip_rip) Replace uses of str[] with calls to new library\n\t  functions zebra_route_char and zebra_route_string.\n\t* ripng_zebra.c: (ripng_redistribute_write) Remove local hard-coded\n\t  table str[].  Replace str[i] with new library function\n\t  zebra_route_string(i).\n\t* ripngd.c: Remove local hard-coded table route_info[].\n\t  (show_ipv6_ripng) Use new library function zebra_route_char() instead\n\t  of table route_info[].\n"
    },
    {
      "commit": "6638c1ab3d4c0043a49a3a67768cccf4a23648dc",
      "tree": "8fd2f7cdf8f787b495109c36ecf87d411ddee860",
      "parents": [
        "2d74db55c463231e3542207bc3d940e2563e6b5b"
      ],
      "author": {
        "name": "jardin",
        "email": "jardin",
        "time": "Sat Oct 01 00:08:54 2005 +0000"
      },
      "committer": {
        "name": "jardin",
        "email": "jardin",
        "time": "Sat Oct 01 00:08:54 2005 +0000"
      },
      "message": "2005-09-30 Vincent Jardin \u003cvincent.jardin@6wind.com\u003e\n\n\t* ospf_dump.c, ospf_ia.c, ospf_spf.c, ospf_ase.c:\n\t  remove unused DEBUG\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": "aca72fda8f251c866f88becd5bec4c215104b102",
      "tree": "cbc00dabb129e1a85079e1446ce9c721ec00817c",
      "parents": [
        "2da40f4919f6268d4935c42a358739ffdf3a48dc"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Mar 31 15:18:21 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Mar 31 15:18:21 2005 +0000"
      },
      "message": "2005-03-31 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_dump.c: (show_debugging_ospf) Show if ospf event debugging\n\t  is turned on.\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": "1d8062884fb47475c91fdcade912281ef0ac81b3",
      "tree": "0b8b674445255f5c22091dcfdbcbde85f20c1cef",
      "parents": [
        "9a30ee5606fce86ac266839dccb1169af6e73d08"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 22 09:43:20 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 22 09:43:20 2004 +0000"
      },
      "message": "Show debug configuration in vtysh.\n"
    },
    {
      "commit": "60925303c585735b7d52252c00fa4a7340690f31",
      "tree": "8061894f032b57db05656d03f0eb836e5417c765",
      "parents": [
        "e84cc647f194593ebd1805422376f2a30e3e06e3"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 17:45:02 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 17:45:02 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": "6b33361187feeb8c9c257ec149b4f75238af6c48",
      "tree": "41f383954c59ad166991014834e0dbe43639e345",
      "parents": [
        "9076fbd333cbd39b0fae7848de533dfe376af7fe"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 11 10:11:25 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 11 10:11:25 2004 +0000"
      },
      "message": "2004-10-11 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_dump.c: (ospf_ip_header_dump) Assume header is in host order\n\t  remove ntohs that should have dissappeared. Take struct ip\n\t  as argument, caller has to know there\u0027s an IP header at start of\n\t  stream anyway.\n\t* ospf_dump.h: update declaration of ospf_ip_header_dump.\n\t* ospf_packet.c: (ospf_write) correct call to\n\t  sockopt_iphdrincl_swab_htosys which was munging the header.\n\t  (ospf_recv_packet) ip_len is needed for old OpenBSD fixup.\n\t  (ospf_read) sockopt_iphdrincl_swab_systoh ip header as soon as\n\t  we have it.\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": "aa20c6f1799a7ca86afb19aee246356c5499e87a",
      "tree": "4d04f9660755a242671552f0c430d8f12e4d9135",
      "parents": [
        "7fd63b3843b502dfc0c3d023bca1191b298ca332"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Oct 07 14:19:36 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Oct 07 14:19:36 2004 +0000"
      },
      "message": "2004-10-07 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_snmp.c: Missed list typedef update\n\t* ospf_dump.c: Include sockopt.h for header swab functions.\n"
    },
    {
      "commit": "18b12c387e2bcd8a0e81a8d2635c1ef52c8a9a7d",
      "tree": "1fe5f83b587e2848ddb981c625faa5c27ed57662",
      "parents": [
        "96e27c9928b5078526f2a7564700dbdafe2c8d42"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Oct 05 14:38:29 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Oct 05 14:38:29 2004 +0000"
      },
      "message": "2004-10-05 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_packet.c: replace ospf_swap_iph_to... with\n          sockopt_iphdrincl_swab_...\n"
    },
    {
      "commit": "6a99f83175d7b5b5868fb82328d569672b8bb9a4",
      "tree": "447f98abc31a7260bb2b354809312e4e6fdfda96",
      "parents": [
        "9172ee0e5dc8c6f6929821fb1433699700e53114"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 27 12:56:30 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 27 12:56:30 2004 +0000"
      },
      "message": "2004-09-27 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf_dump.c: (ospf_ip_header_dump) Use HAVE_IP_HDRINCL_BSD_ORDER\n\t  Apply to offset too. Print ip_cksum, lets not worry about\n\t  possible 2.0.37 compile problems.\n\t* ospf_packet.c: (ospf_swap_iph_to{n,h}) Use\n\t  HAVE_IP_HDRINCL_BSD_ORDER.\n\t  (ospf_recv_packet) ditto.\n\t  (ospf_write) Fixup iov argument to ospf_write_frags.\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": "df43a137236e7df433fbd3c633245459d4fd951b",
      "tree": "8c6fd437c0c2dda0b71fb05d0cc62d6a7875f4c0",
      "parents": [
        "f2bdee97582ed0f869a09c17c9c060a9d52e1064"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Aug 31 12:04:33 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Aug 31 12:04:33 2004 +0000"
      },
      "message": "Please, tell me truth about what debugging status you are displaying.\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": "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": "ead687e159b17c0d1cadf8098e101ad1c976b143",
      "tree": "8c30dd4b6a933825804bb62e06cef624a7e5ccf0",
      "parents": [
        "fe067785fafad28131ab81de5a75c7372b6ab69f"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Apr 07 17:12:12 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Apr 07 17:12:12 2003 +0000"
      },
      "message": "Hasso Tepper \u003chasso@estpak.ee\u003e:\nadd NSSA debug statement\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"
    }
  ]
}
