)]}'
{
  "log": [
    {
      "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": "deba35508e28a3861bb182218bb51af6769b2581",
      "tree": "04613ed5ea108b58fcc83bf6abd403ed6b841f2f",
      "parents": [
        "be61c4eb59b8df1aab496176d87bb2e1763f185e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Aug 27 06:19:39 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Aug 27 06:19:39 2005 +0000"
      },
      "message": "\t* ripng_zebra.c, ripngd.[ch]: Pass metric info to the zebra daemon.\n\n\tForwardport from stable branch.\n"
    },
    {
      "commit": "3a2ce6a14e3e302c3fdca2ff99143cfd06b145e6",
      "tree": "f27ec1418be4c3e9a123e67ef22ca090bca28906",
      "parents": [
        "528bed4a9a997216ba95e3ae445efa79436cc551"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Apr 08 01:30:51 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Apr 08 01:30:51 2005 +0000"
      },
      "message": "\t* prefix.[hc]: Pass argument to the inet6_ntoa by value making it more\n\t  inet_ntoa alike.\n\t* ripngd.[hc], ripng_interface.c, ripng_peer.c: inet6_ntoa() takes\n\t  argument now by value.\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": "5920990fecba7e2430af3cfaa8bcbaed40d0ba1a",
      "tree": "d91dd49e4ed2c03cd0c007660232716f11172a56",
      "parents": [
        "6a52470660000bb6ddba971dc5c40b3422ab49bc"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Apr 05 14:36:49 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Apr 05 14:36:49 2005 +0000"
      },
      "message": "\t* lib/prefix.[hc]: inet6_ntoa utility function copied from\n\t  ripngd/ripngd.c (inet6_ntop).\n\t* ripngd.[hc]: Remove inet6_ntop() and any usage of it. inet6_ntoa()\n\t  from lib is used now.\n\t* ripng_interface.c: inet6_ntop() -\u003e inet6_ntoa().\n\t* ripng_peer.c: inet6_ntop() -\u003e inet6_ntoa().\n"
    },
    {
      "commit": "b99760ab51abf8c4c9a1f89dab0c1630a6768ff7",
      "tree": "daaf8cabb567c5ff1a01368fa1382d8257b56854",
      "parents": [
        "73a7dea305b146febb8e57176295689d6a900f1d"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jan 04 16:24:43 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jan 04 16:24:43 2005 +0000"
      },
      "message": "2005-01-04 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* configure.ac: Added test for broken CMSG_FIRSTHDR macro\n\t  (relevant for Solaris 8 and unpatched Solaris 9, don\u0027t know\n\t  whether other platforms are affected).\n\t* zebra.h: Define ZCMSG_FIRSTHDR appropriately based on whether\n\t  config.h indicates HAVE_BROKEN_CMSG_FIRSTHDR (as determined\n\t  by the configure test program).\n\t* sockopt.c: (getsockopt_cmsg_data) Use ZCMSG_FIRSTHDR instead\n\t  of CMSG_FIRSTHDR.\n\t* rtadv.c: (rtadv_recv_packet,rtadv_send_packet) Use ZCMSG_FIRSTHDR\n\t  instead of CMSG_FIRSTHDR.\n\t* ripd.c: (rip_recvmsg) Use ZCMSG_FIRSTHDR instead of CMSG_FIRSTHDR.\n\t* ripngd.c: (ripng_recv_packet) Use ZCMSG_FIRSTHDR instead of\n\t  CMSG_FIRSTHDR.\n"
    },
    {
      "commit": "c610681284be58ec2e39867379bdf2ca3047f464",
      "tree": "b467991efbc337a2366b78b8ace6baf6e2ae6542",
      "parents": [
        "2e23ab2e41c299bd8d070183bb1c31628ab582f9"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 19:51:16 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 19:51:16 2004 +0000"
      },
      "message": "2004-12-08 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* *.c: Change level of debug messages to LOG_DEBUG.\n"
    },
    {
      "commit": "6099b3b56956322567323c11fd698b2328c6826b",
      "tree": "fa537bd0eaa9f7d824f39445eabc928db59050ca",
      "parents": [
        "ae5e24d8678f1e3a60dde58d3382c5ba73d6bb27"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Nov 20 02:06:59 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Nov 20 02:06:59 2004 +0000"
      },
      "message": "2004-11-19 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* global: Replace strerror with safe_strerror.  And vtysh/vtysh.c\n\t  needs to include \"log.h\" to pick up the declaration.\n"
    },
    {
      "commit": "98b718a9d2aa7a3324c553944e26914fe090b87a",
      "tree": "13a7002a3265a2debfa411a2a2c544dbde972f0a",
      "parents": [
        "a149411b85bbe74cde47d82193026b9401b29de0"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 11 12:57:57 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 11 12:57:57 2004 +0000"
      },
      "message": "Sync with changes in lib. Make more strings const.\n"
    },
    {
      "commit": "7a1d583c02253c53605f310d1afcc9f1c8e15b7b",
      "tree": "38652398c60620d195bb6b74f97ad4770af559e5",
      "parents": [
        "27a43a81004b620e571f71aa1ea4db182c607862"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Oct 08 06:32:23 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Oct 08 06:32:23 2004 +0000"
      },
      "message": "Only warning left is the known lvalue problem in ripng_nexthop.c.\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": "0b3acf4f94241905ff36df5c1d9f9f389e45d191",
      "tree": "48b312ab2de446208d966d234fc37539bed98861",
      "parents": [
        "bf731011ef7038f5766432fec862301c123d4736"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Sep 17 08:39:08 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Sep 17 08:39:08 2004 +0000"
      },
      "message": "2004-09-17 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * ripngd/ripngd.c: move setsockopt_so_recvbuf to lib.\n        * lib/sockopt.{c,h}: Add setsockopt_so_recvbuf, for ripd and ripngd.\n        * ripd/ripd.c: set receive buffer to a decent size, some systems\n          have low defaults. Problem noted and fix suggested by Stephan\n          Schweizer in [zebra 20967].\n"
    },
    {
      "commit": "8d0f15fd1b842eb9ca7b3d116c7b6de63af3c195",
      "tree": "9da5d415573c56919107d478482b65fe013df65a",
      "parents": [
        "13c48f728080ebe3b20252e124f42f85d240770b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Sep 11 16:33:28 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Sep 11 16:33:28 2004 +0000"
      },
      "message": "Cosmetical fixes in vty help.\n"
    },
    {
      "commit": "27d47aa7af603720724bd219b7ef4dbdb8aaaa7b",
      "tree": "eda800a3527a9be061edaeef30401a5c20dc5f5f",
      "parents": [
        "b5f2c1267ef8c7694bb96aff748a866775ab1cbe"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 17 09:04:53 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 17 09:04:53 2003 +0000"
      },
      "message": "2003-11-17 Hasso Tepper \u003chasso@estpak.ee\u003e\n\n        * ripngd/ripngd.c: ripng_make_socket() add calls to raise/lower\n          privs.\n"
    },
    {
      "commit": "bb3a023ed853b2335dccf25dfd8ec237fd9d8458",
      "tree": "3a23a0f31486c8c4022b30d81041780784b768da",
      "parents": [
        "704a6801abb2506e019f2bfa740c30293630c47f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jun 02 10:38:15 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jun 02 10:38:15 2003 +0000"
      },
      "message": "Apply redistribution route-map\u0027s correctly.\n"
    },
    {
      "commit": "a94434b69197e074569d7579126074e9cb7212a5",
      "tree": "b63c34ee20e8e6b57796ee591d4569407140047d",
      "parents": [
        "dd55f9eb73347cb2bb7f8dc0f8108b21a733c9b4"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 17:10:12 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 17:10:12 2003 +0000"
      },
      "message": "Ripngd part of 6Wind patch.\n"
    },
    {
      "commit": "0750d21fcfb034e47f781b09d984bfeec62b56a4",
      "tree": "d8be8f2b61607f34a74c1897e6abdf3466917ff3",
      "parents": [
        "04a72e593b870688649653f569ebc0e7589b4fdb"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat May 24 21:41:49 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat May 24 21:41:49 2003 +0000"
      },
      "message": "Revert my http://hasso.linux.ee/zebra/ht-ifrmap-14042003.patch patch. Used\nsame idea as in lib/distribute.c to allow extract.pl to pick up commands\nfor vtysh.\n"
    },
    {
      "commit": "a2c6283126a48c915561364e8456894bf7089b2c",
      "tree": "b031a490e05beb57f30aa69d2c60f0362efd0e5c",
      "parents": [
        "e54879f11a6c0b91d3ce33b9c90edeb0fb5103b9"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Apr 23 17:01:31 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Apr 23 17:01:31 2003 +0000"
      },
      "message": "From: Hasso Tepper\n\nThis one fixes \"router xxx\" node commands in vtysh. Don\u0027t get \"unknown\ncommand\" error when entering \"passive-interface eth0\" command while\nospfd and ospf6d running etc.\n"
    },
    {
      "commit": "41ce926cb4c0eb7fc07aed25c0452793fc054fc5",
      "tree": "f30b2ad6b6402a18927119fc22a78bcd023481f8",
      "parents": [
        "73ffb25bec41d729b0dac34d17b6ccd4aa25803b"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Apr 19 15:54:03 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Apr 19 15:54:03 2003 +0000"
      },
      "message": "Hasso Tepper\nhttp://hasso.linux.ee/zebra/ht-ifrmap-14042003.patch\nAllows to extract.pl to pickup \"route-map xxx in/out dev\" commands for vtysh\n(ripngd). As lib/if_rmap.[c|h] are used in ripngd only, I moved them to the\nripngd/ directory.\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"
    }
  ]
}
