)]}'
{
  "log": [
    {
      "commit": "634f9ea20fce82c94407cb677b5487b65bde1973",
      "tree": "32db82e4ae3b0f409d6d06a0fda401f9d5df5cc9",
      "parents": [
        "dfb9a545f8e3500e6a99518193872f526c1f56ba"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Mon Apr 11 15:51:40 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Mon Apr 11 15:51:40 2005 +0000"
      },
      "message": "2005-04-11 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\tImplement non-blocking zclient I/O with buffering.\n\t* zclient.h (struct zclient): Add two fields to support non-blocking\n\t  I/O: struct buffer *wb, and struct thread *t_write.\n\t  (zclient_free): Remove function.\n\t  (zebra_redistribute_send): Change 2nd arg from socket fd to\n\t  struct zclient * (needed to support non-blocking I/O and buffering).\n\t  (zclient_send_message): New function to send an arbitrary\n\t  message with non-blocking I/O.\n\t* zclient.c (zclient_new): Create write buffer.\n\t  (zclient_free): Remove unused function.\n\t  (zclient_stop): Must cancel new t_write thread.  Also, reset\n\t  all buffers: ibuf, obuf, and wb.\n\t  (zclient_failed): New helper function for typical error handling.\n\t  (zclient_flush_data): New thread to flush queued data.\n\t  (zclient_send_message): New function to send the message in\n\t  zclient-\u003eobuf to zebra using non-blocking I/O and buffering.\n\t  (zebra_message_send, zapi_ipv4_route, zapi_ipv6_route): Use\n\t  new zclient_send_message function instead of calling writen.\n\t  (zclient_start): Set socket non-blocking.  Also, change 2nd arg\n\t  to zebra_redistribute_send from zclient-\u003esock to zclient.\n\t  (zebra_redistribute_send): Change 2nd arg to struct zclient *.\n\t  Can now use zclient-\u003eobuf to assemble the message instead of\n\t  allocating a temporary stream.  And call zclient_send_message to\n\t  send the message instead of writen.\n\t  (zclient_read): Convert to support non-blocking I/O by using\n\t  stream_read_try instead of deprecated stream_read.\n\t  (zclient_redistribute): Change 2nd arg to zebra_redistribute_send\n\t  from zclient-\u003esock to zclient.\n\t* ospf6_zebra.c (ospf6_zebra_redistribute, ospf6_zebra_no_redistribute):\n\t  Change 2nd arg to zebra_redistribute_send from zclient-\u003esock\n\t  to zclient.\n\t* ospf_zebra.c (ospf_zebra_add): Call zclient_send_message instead\n\t  of writen.\n\t* rip_zebra.c (rip_redistribute_set, rip_redistribute_unset,\n\t  rip_redistribute_clean): Change 2nd arg to zebra_redistribute_send\n\t  from zclient-\u003esock to zclient.\n\t* ripng_zebra.c (ripng_redistribute_unset, ripng_redistribute_clean):\n\t  Change 2nd arg to zebra_redistribute_send from zclient-\u003esock\n\t  to zclient.\n\t* bgp_zebra.c (bgp_redistribute_set, bgp_redistribute_unset):\n\t  The 2nd arg to zebra_redistribute_send is now zclient instead of\n\t  zclient-\u003esock.\n\t* isis_zebra.h (isis_zebra_finish): Remove declaration of unused\n\t  function.\n\t* isis_zebra.c (isis_zebra_route_add_ipv4): Call zclient_send_message\n\t  to send the message to zebra instead of calling writen directly, since\n\t  zclient_send_message understands non-blocking I/O and will manage\n\t  the buffer queue appropriately.\n\t  (isis_zebra_finish): Remove unused function, particularly since\n\t  the zclient_free function has been removed.\n"
    },
    {
      "commit": "a8a80d532f3248567b6926b5dbd12509eadd6b43",
      "tree": "b3b42ef7f78c62fb0c1edddd7c0272950883c14c",
      "parents": [
        "67bf16c0f8179af05bcff04d19226866a8b7e806"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Apr 09 13:07:47 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Apr 09 13:07:47 2005 +0000"
      },
      "message": "\t* bgp_vty.c: Make \"exit-address-family\" work in IPv4 unicast address\n\t  family node.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "6811845b67999861388cf00d3ca0ee8471d29876",
      "tree": "1f7f08f171164b1a75b66a45093ccb44217dff12",
      "parents": [
        "4a8164e5b310094315e2c50d73aeea489766a48a"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Apr 08 15:40:36 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Apr 08 15:40:36 2005 +0000"
      },
      "message": "\t* bgpd.texi: Document new \"bgp bestpath as-path confed\" command.\n\t* bgp_aspath.[ch], bgp_route.c, bgp_vty.c, bgpd.[ch]: Allow to enable\n\t  the length of confederation path segments to be included during the\n\t  as-path length check in the best path decision.\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": "d2fc88962a9a494ecb34167871bb9e7273a25d33",
      "tree": "304a1c1a744972bc10b1f677a134907c404b361d",
      "parents": [
        "386e61502d391adb985ac1487825349ec85e6a8c"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 18:38:43 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 18:38:43 2005 +0000"
      },
      "message": "2005-04-02 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\tFix problems when netlink interfaces are renamed (same ifindex used\n\tfor a new interface).  Start cleaning up some problems with the way\n\tinterface names are handled.\n\t* interface.c: (if_new_intern_ifindex) Remove obsolete function.\n\t  (if_delete_update) After distributing the interface deletion message,\n\t  set ifp-\u003eifindex to IFINDEX_INTERNAL.\n\t  (if_dump_vty) Detect pseudo interface by checking if ifp-\u003eifindex is\n\t  IFINDEX_INTERNAL.\n\t  (zebra_interface) Check return code from interface_cmd.func.\n\t  Do not set internal ifindex values to if_new_intern_ifindex(),\n\t  since we now use IFINDEX_INTERNAL for all pseudo interfaces.\n\t* kernel_socket.c: (ifm_read) Fix code and comments to reflect that\n\t  all internal interfaces now have ifp-\u003eifindex set to IFINDEX_INTERNAL.\n        * rt_netlink.c: (set_ifindex) New function used to update ifp-\u003eifindex.\n\t  Detects interface rename events by checking if that ifindex is already\n\t  being used.  If it is, delete the old interface before assigning\n\t  the ifindex to the new interface.\n\t  (netlink_interface, netlink_link_change) Call set_ifindex to update\n\t  the ifindex.\n\t* if.h: Remove define for IFINDEX_INTERNBASE and add define\n\t  IFINDEX_INTERNAL 0, since all internal (i.e. non-kernel) pseudo-\n\t  interfaces should have ifindex set to 0.\n\t  (if_new) Remove function.\n\t  (if_delete_retain) New function to delete an interface without\n\t  removing from iflist and freeing the structure.\n\t  (ifname2ifindex) New function.\n\t* if.c: (if_new) Remove function (absorb into if_create).\n\t  (if_create) Replace function if_new with call to calloc.\n\t  Set ifp-\u003eifindex to IFINDEX_INTERNAL.  Fix off-by-one error\n\t  in assert to check length of interface name.  Add error message\n\t  if interface with this name already exists.\n\t  (if_delete_retain) New function to delete an interface without\n\t  removing from iflist and freeing the structure.\n\t  (if_delete) Implement with help of if_delete_retain.\n\t  (ifindex2ifname) Reimplement using if_lookup_by_index.\n\t  (ifname2ifindex) New function to complement ifindex2ifname.\n\t  (interface) The interface command should check the name length\n\t  and fail with a warning message if it is too long.\n\t  (no_interface) Fix spelling in warning message.\n\t  (if_nametoindex) Reimplement using if_lookup_by_name.\n\t  (if_indextoname, ifaddr_ipv4_lookup) Reimplement using\n\t  if_lookup_by_index.\n\t* bgp_zebra.c: (bgp_interface_delete) After deleting, set ifp-\u003eifindex\n\t  to IFINDEX_INTERNAL.\n\t* isis_zebra.c: (isis_zebra_if_del) Call if_delete_retain instead\n\t  of if_delete, since it is generally not safe to remove interface\n\t  structures.  After deleting, set ifp-\u003eifindex to IFINDEX_INTERNAL.\n\t  (zebra_interface_if_lookup) Tighten up code.\n\t* ospf6_zebra.c: (ospf6_zebra_if_del) Previously, this whole function\n\t  was commented out.  But this is not safe: we should at least update\n\t  the ifindex when the interface is deleted.  So the new version\n\t  updates the interface status and sets ifp-\u003eifindex to\n\t  IFINDEX_INTERNAL.\n\t  (ospf6_zebra_route_update) Use if_indextoname properly.\n\t* ospf_vty.c: (show_ip_ospf_interface_sub) Show ifindex and interface\n\t  flags to help with debugging.\n\t* ospf_zebra.c: (ospf_interface_delete) After deleting, set ifp-\u003eifindex\n\t  to IFINDEX_INTERNAL.\n\t  (zebra_interface_if_lookup) Make function static.  Tighten up code.\n\t* rip_interface.c: (rip_interface_delete) After deleting, set\n\t  ifp-\u003eifindex to IFINDEX_INTERNAL.\n\t* ripng_interface.c: (ripng_interface_delete) After deleting, set\n\t  ifp-\u003eifindex to IFINDEX_INTERNAL.\n"
    },
    {
      "commit": "2d58228ecabb23b064e8a06e6241cf0d7e5ca785",
      "tree": "443509e8113598c7dadaa5e9cdbb153c147d0ffe",
      "parents": [
        "17eff7cb9010c0ba386ab801c220811ded4242b3"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 28 15:29:07 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 28 15:29:07 2005 +0000"
      },
      "message": "\t* configure.ac, */Makefile.am: Fix previous commit. SNMP includes\n\t  must be after lib/ includes in some systems. Introduce SNMP_INCLUDES\n\t  for that.\n"
    },
    {
      "commit": "6cf159b97848503ee9da0273eb97a6712369fd24",
      "tree": "c2c19bab97b455fceea49a763430cc709a61682a",
      "parents": [
        "db8eaac6615dacf17eb3958b0f3b6ea58f8f1e1d"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 21 10:28:14 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 21 10:28:14 2005 +0000"
      },
      "message": "        * bgp_route.c: Don\u0027t crash while clearing route tables if there is\n          no particular afi/safi configured.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "338b3424154af85b0762713796397d3f2345d54f",
      "tree": "53e202ad7097edc2299179135265475bb48435ed",
      "parents": [
        "e69b9e40c74d9d910934c94c63c08e36e9799e00"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 23 14:27:24 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 23 14:27:24 2005 +0000"
      },
      "message": "\t* bgp_route.c: Make reannouncing prefixes with changed attributes\n\t  work again.\n"
    },
    {
      "commit": "6ea7cdc593f7637e26da54192ef67245185994f3",
      "tree": "a4b5e80d3936a582d503750408395039ff273848",
      "parents": [
        "658b03a6bbb88357d841a99908d729e05e3b98c2"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Feb 15 17:10:03 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Feb 15 17:10:03 2005 +0000"
      },
      "message": "Adjust size complexity estimates.  Still not quite right, but closer.\n"
    },
    {
      "commit": "5d6191ee84cc4b292f19f287a5c4fc45f7dd9b84",
      "tree": "9db0ef2debaf3a0b18bb5955456264bf36c3dab6",
      "parents": [
        "9985f83ce7102f64b15f744b60320f8d14a8a5ff"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Feb 10 16:38:09 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Feb 10 16:38:09 2005 +0000"
      },
      "message": "notes on what files contain what, and an initial stab at understanding\nhow much storage is required.\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": "dd4c593fb88b7c6cf5f27aa8a8286644743ed58a",
      "tree": "962cd10bb5bf92a42285f3bb88cbb3ef3f33f595",
      "parents": [
        "c1643bb7d7de6c030a61983be8e0925160a9e427"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 17:15:34 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 17:15:34 2005 +0000"
      },
      "message": "\t* bgp_vty.c: Deprecate \"neighbor transparent-as\" and \"neighbor\n\t  transparent-nexthop\" commands.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "c1643bb7d7de6c030a61983be8e0925160a9e427",
      "tree": "4be029bfbc3ec5d53996966824a5a88c5c2a0395",
      "parents": [
        "fee6e4e4547783b915838f6868d6cd694f6cee21"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 16:43:17 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 16:43:17 2005 +0000"
      },
      "message": "\t* bgp_routemap.c: New route-map command - \"match ip route-source\".\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "fee6e4e4547783b915838f6868d6cd694f6cee21",
      "tree": "2fb39322113433ab2d5e42042c1b9e397779b6c1",
      "parents": [
        "6ffd2079596c232856dda0d56fddd9610e8d61fe"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 16:29:31 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 16:29:31 2005 +0000"
      },
      "message": "\t* bgp_clist.[ch], bgp_route.c, bgp_routemap.c, bgp_vty.c:\n\t  community-list cleanup.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "6ffd2079596c232856dda0d56fddd9610e8d61fe",
      "tree": "d5c4906cbfb4af98a8c73be667a9ab2369a6c64b",
      "parents": [
        "93406d87e68a0e9cf5ce0240461395cd59c143b6"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 14:50:11 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 14:50:11 2005 +0000"
      },
      "message": "\t* bgp_route.c, bgp_vty.c, bgp_zebra.c, bgpd.[ch]: \"enforce-multihop\"\n\t  -\u003e \"disable-connected-check\".\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "93406d87e68a0e9cf5ce0240461395cd59c143b6",
      "tree": "b1cb2bae2eca7c5206565f73169cf43bf8cf892d",
      "parents": [
        "c9502438e822199370fe87100c725e1092e943c1"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 14:40:33 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 02 14:40:33 2005 +0000"
      },
      "message": "\t* bgp_fsm.c, bgp_open.c, bgp_packet.c, bgp_route.[ch], bgp_vty.c,\n\t  bgpd.[ch]: Add BGP_INFO_STALE flag and end-of-rib support. \"bgp\n\t  graceful-restart\" commands added. Show numbers of individual\n\t  messages in \"show ip bgp neighbor\" command. Final pieces of graceful\n\t  restart.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "c9502438e822199370fe87100c725e1092e943c1",
      "tree": "bfeb6babd5d0ba6037ab2aa3a544b2d855e4e8d9",
      "parents": [
        "3d515fd9af9f126667a9c2da9c2f40c4c37c28df"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 22:01:48 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 22:01:48 2005 +0000"
      },
      "message": "\t* bgp_open.c, bgp_packet.c, bgp_vty.c, bgpd.[ch]: Remove \"no neighbor\n\t  capability route-refresh\" commands. Route refresh capability is sent\n\t  anyway now. Preserve dummy deprecated commands.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "3d515fd9af9f126667a9c2da9c2f40c4c37c28df",
      "tree": "c107224556ed7678d7a5afc42c19742948cda477",
      "parents": [
        "0a486e5fcb1b8dac7d8b4cf6ed93e82b8b72fed6"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 21:30:04 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 21:30:04 2005 +0000"
      },
      "message": "\t* bgp_attr.c, bgp_snmp.c, bgp_vty.c, bgpd.[ch]: Remove support for old\n\t  draft - ie. \"neighbor version 4-\" commands. Preserve dummy \"neighbor\n\t  version\" command as deprecated.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "0a486e5fcb1b8dac7d8b4cf6ed93e82b8b72fed6",
      "tree": "f63429ed7767e227457cb48196d82f12e4fcaad6",
      "parents": [
        "f418446bb767d79438e2df689c5bf9563c54b317"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 20:57:17 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 20:57:17 2005 +0000"
      },
      "message": "\t* bgpd.[ch], bgp_vty.c, bgp_route.c: \"Restart session after\n\t  maximum-prefix limit\" feature support.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "f418446bb767d79438e2df689c5bf9563c54b317",
      "tree": "a1c7322c8b54e46a09bf2f402537277fff59c1c3",
      "parents": [
        "6a52d0d155fc8b892e30cdb5e3fbe4c2779bd4cd"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 20:13:16 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Feb 01 20:13:16 2005 +0000"
      },
      "message": "        * bgp_nexthop.c: Improve debug.\n        * bgpd.[ch], bgp_nexthop.c, bgp_snmp.c: Remove useless bgp_get_master()\n          function.\n        * bgp_packet.c: MP AFI_IP update and withdraw parsing.\n        * bgp_fsm.c: Reset peer synctime in bgp_stop(). bgp_fsm_change_status()\n          is better place to log about peer status change than bgp_event().\n          Log in bgp_connect_success().\n        * bgp_vty.c: Fix typo in comment.\n        * bgp_attr.c: Better log about unknown attribute.\n\n\t[merge from GNU Zebra]\n"
    },
    {
      "commit": "3b8b1855038afde448993e5a56955e9b7a4d99c2",
      "tree": "5378ad7cc9d2fdb42558044833036e347ca1277e",
      "parents": [
        "4460e7a4cf3dadcd9f06e4b519ba7be2cc936c0a"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Jan 29 18:19:13 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Jan 29 18:19:13 2005 +0000"
      },
      "message": "2005-01-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* buffer.h: Fix comment on buffer_getstr to reflect that it now\n\t  uses XMALLOC.\n\t* buffer.c: (buffer_getstr) Use XMALLOC(MTYPE_TMP) instead of malloc.\n\t* filter.c: (access_list_remark,ipv6_access_list_remark) Use\n\t  argv_concat instead of buffer_getstr.\n\t* if.c: (interface_desc) Use argv_concat instead of buffer_getstr.\n\t* plist.c: (ip_prefix_list_description,ipv6_prefix_list_description)\n\t  Use argv_concat instead of buffer_getstr.\n\t* bgp_filter.c: (ip_as_path,no_ip_as_path) Use argv_concat instead\n\t  of buffer_getstr.\n\t* bgp_route.c: (bgp_show_regexp) Fix memory leak: need to free string\n\t  returned by buffer_getstr.\n\t  (bgp_show_community) Must use XFREE instead of free on string\n\t  returned by buffer_getstr.\n\t* bgp_routemap.c: (set_community) Must use XFREE instead of free\n\t  on string returned by buffer_getstr.\n\t* bgp_vty.c: (neighbor_description) Use argv_concat instead of\n\t  buffer_getstr.\n"
    },
    {
      "commit": "6d69429c1bff7291bac52a05234c12434f152a94",
      "tree": "e37c98526a257a907e23986e6ada290bc39f09c9",
      "parents": [
        "c15cb24241277db9fb4102ddc712dc3297f16d1f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jan 24 09:29:42 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jan 24 09:29:42 2005 +0000"
      },
      "message": "\t* bgp_route.c: Fix showstopper bug. New route must be selected also\n\t  if old one is flaged as BGP_INFO_ATTR_CHANGED.\n"
    },
    {
      "commit": "f127165de02a66934082f23810fab37d7efbce8b",
      "tree": "aed5017ae77c2927b48bc5950c928782ef9c8d80",
      "parents": [
        "583d800c11922018af02420a758f974be691065f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jan 17 11:04:32 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Jan 17 11:04:32 2005 +0000"
      },
      "message": "\t* bgp_route.c: Clear peer\u0027s routing table regardless whether it\u0027s\n\t  configured or not. Being not configured is even better reason to\n\t  do it.\n"
    },
    {
      "commit": "a24a7e1b9e145d4c855d0aa4d919a79f598c645b",
      "tree": "02236b0424330cce2c902a9a971829a3610bac25",
      "parents": [
        "6c20046fd7494f9f529dac1b6f79da51b6efa44d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 05 08:14:13 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 05 08:14:13 2005 +0000"
      },
      "message": "2005-01-05 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* bgp_packet.c: (bgp_write) set socket to nonblock while writing\n          this should be generalised. See bugzilla #102. Fix supplied by\n\t  wawa@yandex-team.ru (Vladimir Ivanov).\n"
    },
    {
      "commit": "c29fdba771810c70d78d87127d3a479e0f72b60e",
      "tree": "75361d6969db5f8796596ccb7dbcae1d6769523e",
      "parents": [
        "d1db06faa82a331fb6729064290ecbc61a969b88"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 09 14:46:46 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 09 14:46:46 2004 +0000"
      },
      "message": "Add comments with warnings obtained on NetBSD/i386.  Both are due to\nsize_t being used for streams.  Perhaps cast to unsigned long before\nprintf?  Surely that\u0027s big enough even if size_t could be larger in\ntheory.\n\n(no changelog, since only comment changes)\n"
    },
    {
      "commit": "d2c1f16be47a3d60555219a92dad8639f381d553",
      "tree": "662cd144ac4f838c65a5e6397363699768b3b76d",
      "parents": [
        "6b51474d91024a4a0e82fccdd55580ce9b3f5561"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 21:10:20 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 21:10:20 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": "6b51474d91024a4a0e82fccdd55580ce9b3f5561",
      "tree": "93e340952621ac948f0788c5b9ff7bed588a613a",
      "parents": [
        "8325cd7f42d0b494d4866f69013c713bbaef7619"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 21:03:23 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 21:03:23 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": "8325cd7f42d0b494d4866f69013c713bbaef7619",
      "tree": "70823756c4630b8d610cce546e068ccc29561b9f",
      "parents": [
        "478ba054aa04293821d86953a8455b7221cba39e"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 20:47:40 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 20:47:40 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": "478ba054aa04293821d86953a8455b7221cba39e",
      "tree": "bec35cafb8867aba0562a240d57c282863b63519",
      "parents": [
        "8c2e200a4654b43594ae79e384fb44497958519b"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 20:41:23 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 20:41:23 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": "8c2e200a4654b43594ae79e384fb44497958519b",
      "tree": "b04922abc9a1565b13b7147ecd463d1843a153b3",
      "parents": [
        "557865c28e34e9172477e9fab025e7888f62dad7"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 20:08:54 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 20:08:54 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": "557865c28e34e9172477e9fab025e7888f62dad7",
      "tree": "151705cd67bda4e7f838856abbe34c96acaf5376",
      "parents": [
        "c610681284be58ec2e39867379bdf2ca3047f464"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 19:59:11 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 19:59:11 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": "274a4a4447b13f89f8237156a887d05a24a73cc6",
      "tree": "d5c2c6ee94bb77ef4346bcc07834808a75210bfd",
      "parents": [
        "5e76477456ce8bc4a1eeaccb5c5e1d3d99ab1300"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Dec 07 15:39:31 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Dec 07 15:39:31 2004 +0000"
      },
      "message": "2004-12-07 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* bgp_main.c: (main) The 2nd argument to openzlog has been removed.\n\t* isis_main.c: (main) The 2nd argument to openzlog has been removed.\n\t* ospf6_main.c: (main) The 2nd argument to openzlog has been removed.\n\t  Note that stdout logging will no longer be enabled by default when\n\t  not running as a daemon.\n\t* ospf_main.c: (main) The 2nd argument to openzlog has been removed.\n\t* rip_main.c: (main) The 2nd argument to openzlog has been removed.\n\t* ripng_main.c: (main) The 2nd argument to openzlog has been removed.\n\t* main.c: (main) The 2nd argument to openzlog has been removed.\n\t  So stdout logging will no longer be enabled by default.\n\t* irdp_main.c: (irdp_finish) Reduce severity of shutdown message\n\t  from LOG_WARNING to LOG_INFO.\n\t* vtysh.c: Make several functions static instead of global.\n\t  Added several commands to support destination-specific logging levels.\n\t  (vtysh_completion) This function is unused, so comment it out.\n\t* basic.texi: Document new logging features.  Separate basic config\n\t  commands from basic VTY commands.\n\t* log.h: Replace struct zlog flags and maskpri fields with maxlvl\n\t  array to support individual logging levels for each destination.\n\t  Remove the 2nd argument to openzlog since the default logging config\n\t  should be standardized inside the library.  Replaced the\n\t  zlog_set_flag and zlog_reset_flag functions with zlog_set_level.\n\t  And zlog_set_file now requires an additional log_level argument.\n\t  Declare zlog_proto_names for use inside command.c in the\n\t  \"show logging\" command.  Added defines useful for command\n\t  construction.\n\t* log.c: (vzlog) Decide where to send the message based on the\n\t  individual logging levels configured for each destination.\n\t  Remove support for ZLOG_STDERR since it was never actually used.\n\t  Support record-priority for terminal monitors.\n\t  (zlog_signal,zlog_backtrace_sigsafe) Support destination-specific\n\t  logging levels.  Remove stderr support (was never used).  Added\n\t  support for terminal monitor logging.\n\t  (_zlog_assert_failed) Increase message severity to LOG_EMERG.\n\t  (openzlog) Remove 2nd argument since default config should be\n\t  standardized in library.  By default, terminal monitoring\n\t  is set to debug, and all other logging is disabled.\n\t  (zlog_set_flag,zlog_reset_flag) Removed.\n\t  (zlog_set_level) New function to replace zlog_set_flag and\n\t  zlog_reset_flag.  Supports destination-specific logging levels.\n\t  (zlog_set_file,zlog_reset_file) Support file-specific logging level.\n\t  (zlog_rotate) Log an error message if fopen fails, and support\n\t  new file-specific logging level.\n\t* command.h: Change DEFUN_CMD_FUNC_DECL and DEFUN_CMD_FUNC_TEXT so that\n\t  command functions will be static instead of global.  Remove\n\t  declarations for config_exit and config_help.  Define new macros\n\t  DEFUNSH_ATTR, DEFUNSH_HIDDEN, and DEFUNSH_DEPRECATED so we can\n\t  have deprecated commands in vtysh.  Similarly, for completeness,\n\t  define macros ALIAS_SH, ALIAS_SH_HIDDEN, and ALIAS_SH_DEPRECATED.\n\t  Also, fix bug in ALIAS_ATTR macro (didn\u0027t matter because it\n\t  was never used).\n\t* command.c: Make many functions static instead of global.\n\t  (facility_name,facility_match,level_match) New functions\n\t  to support enhanced destination-specific logging levels.\n\t  (config_write_host) Support new destination-specific logging levels.\n\t  (config_logmsg) Added new \"logmsg\" command to help test logging\n\t  system.\n\t  (show_logging) Added \"show logging\" command to show the current\n\t  configuration of the logging system.\n\t  (config_log_stdout_level) Support explicit stdout logging level.\n\t  (no_config_log_stdout) Now takes optional LEVEL arg.\n\t  (config_log_monitor,config_log_monitor_level,no_config_log_monitor)\n\t  New commands creating new \"log monitor\" commands to set terminal\n\t  monitoring log level.\n\t  (config_log_file_level) Support explicit file logging level.\n\t  (config_log_syslog_level) Support explicit syslog logging level.\n\t  (config_log_facility,no_config_log_facility) Implement new\n\t  \"log facility\" command.\n\t  (cmd_init) Add hooks for new commands: \"show logging\", \"logmsg\",\n\t  \"log stdout \u003clevel\u003e\", \"log monitor\", \"log monitor \u003clevel\u003e\",\n\t  \"no log monitor\", \"log file \u003cfilename\u003e \u003clevel\u003e\",\n\t  \"no log file \u003cfilename\u003e \u003clevel\u003e\", \"log syslog \u003clevel\u003e\",\n\t  \"log facility\", and \"no log facility\".\n\t* vty.h: Added a \"level\" argument to vty_log so it can support\n\t  \"log record-priority\".  Declare new function vty_log_fixed for\n\t  use in signal handlers.\n\t* vty.c: (vty_log,vty_log_out) Added a \"level\" argument to support\n\t  \"log record-priority\" for vty terminal monitors.\n\t  (vty_down_level) Use config_exit_cmd.func instead of calling\n\t  config_exit directly (since command functions will now be static\n\t  instead of global).\n\t  (vty_log_fixed) New function to send terminal monitor messages\n\t  from inside a signal handler.\n"
    },
    {
      "commit": "887c44a4f3d8219dc5b1c52b5dcde1f31d52b73d",
      "tree": "5c0ef5fe1d3948c56e6abf2ffd3c9811e92f0f2e",
      "parents": [
        "bec595ada58ebfa98ad49220f29ab28b58549094"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Dec 03 16:36:46 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Dec 03 16:36:46 2004 +0000"
      },
      "message": "2004-12-03 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* bgp_main.c: (sigint) Use zlog_notice for termination message.\n\t  (main) Use zlog_notice for startup announcement.\n\t* isis_main.c: (sigint,sigterm) Use zlog_notice for termination message.\n\t  (terminate) This function should be static, not global.\n\t  (main) Use zlog_notice for startup announcement, and remove\n\t  ifdef ZEBRA_VERSION.\n\t* version.h.in: Remove declaration for pid_output_lock, this function\n\t  is now static, not global.\n\t* pid_output.c: (pid_output_lock) This function should be static, not\n\t  global.  And remove \"old umask\" error message, since it was really\n\t  an unimportant debug message, not an error.\n\t  (pid_output) Need to declare static function pid_output_lock.\n\t* ospf6_main.c: (sigint,sigterm) Use zlog_notice for termination\n\t  message.\n\t  (main) Remove commented-out call to pid_output_lock (which should\n\t  never be called other than from inside pid_output).  And use\n\t  zlog_notice to print the startup message, which now includes\n\t  the vty port.\n\t* ospf_main.c: (sigint) Use zlog_notice for termination message.\n\t  (main) Issue a startup announcement using zlog_notice.\n\t* rip_main.c: (sigint) Use zlog_notice for termination message.\n\t  (main) Add a startup announcement using zlog_notice.\n\t* ripng_main.c: (sighup) Remove spurious terminating message.\n\t  (sigint) Use zlog_notice for termination message.\n\t  (main) Issue a startup announcement using zlog_notice.\n\t* main.c: (sigint) Use zlog_notice for termination message.\n\t  (main) Add a startup announcement using zlog_notice.\n"
    },
    {
      "commit": "c065230a4c617a1cdf8813dd25384bcc9591f61a",
      "tree": "42285fe5604e43ada3b53ac9a77ba1e3c4464b52",
      "parents": [
        "accb156b9b1c3f4b46ab01f8850200f450fc40d8"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Nov 25 19:33:48 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Nov 25 19:33:48 2004 +0000"
      },
      "message": "Make group to run daemon as configurable. Fixes #2 from Bugzilla #64.\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": "5932020bb11c1b5447f4aa4423062f275ab1fa94",
      "tree": "5c23a5b805cb1d1701c9f2290c192ac7ba5a5640",
      "parents": [
        "1b074dd28a04f4734e37d420c95c492affe24bc1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Nov 09 01:54:03 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Nov 09 01:54:03 2004 +0000"
      },
      "message": "2004-11-09 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* bgp_nexthop.c: collapse bgp_connected_ipvX, bgp_nexthop_cache_ipvX\n\t  and cache{1,2}.. into arrays of tables and hence collapse\n          bgp_scan_ipv{4,6} into a single bgp_scan function. Tested, though\n          a long time ago (and this change was hand-merged).\n"
    },
    {
      "commit": "5a64665039dc98c341fd8d50458ec2a72c5ebbf5",
      "tree": "e89689f085b7b8eed09a0558e2a80dadb4826033",
      "parents": [
        "f3ae74cdf0768d0bd35f26f728f72439f2d8bd6f"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Nov 05 01:25:55 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Nov 05 01:25:55 2004 +0000"
      },
      "message": "2004-11-04 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* vty.h: Remove fields in struct vty that were related to VTY_CONTINUE\n\t  capabilities (that were used only in bgpd/bgp_route.c and are now\n\t  removed).  Also remove some other fields that were not being\n\t  used at all.\n\t* vty.c: (vty_execute) Do not test for obsolete status values VTY_START\n\t  and VTY_CONTINUE.\n\t  (vty_read) Remove calls to vty-\u003eoutput_func since that was part\n\t  of the VTY_CONTINUE infrastructure that has been removed.\n\t  (vty_flush) Remove code to support VTY_START and VTY_CONTINUE.\n\t  (vty_close) Remove code to cancel vty-\u003et_output thread, since that\n\t  thread was never actually used.\n\t* bgp_route.c: Remove all code related to VTY_CONTINUE; this feature\n\t  is deprecated because the output did not represent a single point\n\t  in time.  All output needs to be generated inline and buffered\n\t  by the library code.\n\t  (route_vty_out,route_vty_out_tag,damp_route_vty_out,\n\t   flap_route_vty_out) Remove code to count number of lines of output,\n\t   since this was only useful for VTY_CONTINUE behavior.\n\t  (bgp_show_callback) Removed.\n\t  (bgp_show_table) Remove hooks for VTY_CONTINUE callback support.\n\t  As a result, there\u0027s a new output_arg argument to this function.\n\t  Make function static.\n\t  (bgp_show) Make function static and add a new output_arg argument.\n\t  Change all functions that call bgp_show or bgp_show_table to\n\t  pass the new output_arg argument (that used to be passed inside\n\t  vty-\u003eoutput_arg).\n\t* bgp_mplsvpn.c: Remove declarations of functions defined in\n\t  bgp_route.c; these declarations belong in bgp_route.h.\n\t* bgp_route.h: Declare 3 global functions used in both bgp_route.c\n\t  and in bgp_mplsvpn.c.\n"
    },
    {
      "commit": "3c035aa8716efa6f677e43435c5eb9bac6825518",
      "tree": "ea28fd6b6beadd72d3619315dc66ee0d03a3f7d3",
      "parents": [
        "e064d6d9c3c3319c62fe4fac3e4e5f7a1941a98c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Nov 02 18:59:49 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Nov 02 18:59:49 2004 +0000"
      },
      "message": "- Add .arch-ids and .arch-inventory to cvsignore, to allow one to use arch\n  with CVS trees.\n"
    },
    {
      "commit": "a2b1ecd29f8bd4b01d5287ff862e156b2ffc30b3",
      "tree": "6c4947a0e49537be984ca482b5b4f32b3763d2bc",
      "parents": [
        "64511f394a90602a31cbe1660be426c16439322c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Oct 31 18:58:09 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Oct 31 18:58:09 2004 +0000"
      },
      "message": "2004-10-31 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* {bgpd,bgp_attr}.c: size_t printf format should be ld.\n"
    },
    {
      "commit": "98f5163c3fb005af35f9f3a4bc4ee60d4f3ee741",
      "tree": "0fb3b1a0da479f53152294a5f1f059b9ab8258a8",
      "parents": [
        "508ec9102057c86769e5c0dd280037025102a9c0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 25 14:19:15 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 25 14:19:15 2004 +0000"
      },
      "message": "2004-10-25 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* Update with fix in debian bug id 222930.\n\t* bgp_main.c: Add ZCAP_RAW, needed to bind to interfaces.\n\t  bgp_network.c: (....) raise/lower privs around call to\n          SO_BINDTODEVICE sockopt.\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": "501ba490846e87e6fd5bfea05c31dce1777915b9",
      "tree": "e81c211d3b1cf95f925fd076c4517d2ef89985ac",
      "parents": [
        "8b3126b3c0b18144f8b748d7d82d72dcd538396d"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 21:32:46 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 21:32:46 2004 +0000"
      },
      "message": "Make dump configuration appear in vtysh.\n"
    },
    {
      "commit": "8b3126b3c0b18144f8b748d7d82d72dcd538396d",
      "tree": "853e095b735e169ace22e8a7f5c44fe10f4f0431",
      "parents": [
        "f4ad4dbea2cdda5d763143b221ddeaa92fe06840"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 20:59:04 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 20:59:04 2004 +0000"
      },
      "message": "Ladies and Gentlemens. This file is dead for years, from 1999 to be exact.\n"
    },
    {
      "commit": "c75105ab6e6eeac0b013eab186c97641984f68cc",
      "tree": "ea221df06e957de7e83f379c9b45f578762736e7",
      "parents": [
        "d68614db1dc36a6814fee33f584417b1441a83e4"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 10:33:26 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 10:33:26 2004 +0000"
      },
      "message": "Make initializing smux connection configurable - \"smux peer OID\" command\ninitializes connection, and \"no smux peer\" command terminates it. Fixes\nbugzilla #47 and #112.\n"
    },
    {
      "commit": "fd79ac918b8feaacebe9719adaac97dffb69137a",
      "tree": "d0665eb68e60da9d6e364414cdb61830f19f33d3",
      "parents": [
        "39db97e4e02eae08a1e18528367b6e9b07eb6a93"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 13 05:06:08 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 13 05:06:08 2004 +0000"
      },
      "message": "2004-10-13 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* (global) more const\u0027ification and fixups of types to clean up code.\n\t* bgp_mplsvpn.{c,h}: (str2tag) fix abuse. Still not perfect,\n          should use something like the VTY_GET_INTEGER macro, but without\n          the vty_out bits..\n        * bgp_routemap.c: (set_aggregator_as) use VTY_GET_INTEGER_RANGE\n          (no_set_aggregator_as) ditto.\n        * bgpd.c: (peer_uptime) fix unlikely bug, where no buffer is\n          returned, add comments about troublesome return value.\n"
    },
    {
      "commit": "18a6dce6f83dd20caf1f36c8e840868ff0bf6dbd",
      "tree": "ff832cbf6fe2b239bde06268820587bec671ae6d",
      "parents": [
        "a49c0ff6771975eeb1bd7da923a9dc830200cf65"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 18:18:34 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 18:18:34 2004 +0000"
      },
      "message": "Common router id.\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": "fee0f4c629412f422fc9a857e097ef335c2c576c",
      "tree": "14703e303ea2cecaee7728d9ee27075b0590a679",
      "parents": [
        "0e82d0e1204e45ecce773a7e19f7d64140f7a66a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 13 05:12:46 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 13 05:12:46 2004 +0000"
      },
      "message": "2004-09-13 Jose Luis Rubio \u003cjrubio@dit.upm.es\u003e\n           (at Technical University of Madrid as part of Euro6ix Project)\n\n        Enhanced Route Server functionality and Route-Maps:\n\n        * bgpd/bgpd.h: Modified \u0027struct peer\u0027 and \u0027struct bgp_filter\u0027 to\n        support rs-clients. A \u0027struct bgp_table *rib\u0027 has been added to the\n        first (to mantain a separated RIB for each rs-client) and two new\n        route-maps have been added to the last (for import/export policies).\n        Added the following #defines: RMAP_{IN|OUT|IMPORT|EXPORT|MAX},\n        PEER_RMAP_TYPE_{IMPORT|EXPORT} and BGP_CLEAR_SOFT_RSCLIENT.\n\n        * bgpd/bgpd.c: Modified the functions that create/delete/etc peers in\n        order to consider the new fields included in \u0027struct peer\u0027 for\n        supporting rs-clients, i.e. the import/export route-maps and the\n        \u0027struct bgp_table\u0027.\n\n        * bgpd/bgp_route.{ch}: Modified several functions related with\n        receiving/sending announces in order to support the new Route Server\n        capabilities.\n        Function \u0027bgp_process\u0027 has been reorganized, creating an auxiliar\n        function for best path selection (\u0027bgp_best_selection\u0027).\n        Modified \u0027bgp_show\u0027 and \u0027bgp_show_route\u0027 for displaying information\n        about any RIB (and not only the main bgp RIB).\n        Added commands for displaying information about RS-clients RIBs:\n        \u0027show bgp rsclient (A.B.C.D|X:X::X:X)\u0027, \u0027show bgp rsclient\n        (A.B.C.D|X:X::X:X) X:X::X:X/M\u0027, etc\n\n        * bgpd/bgp_table.{ch}: The structure \u0027struct bgp_table\u0027 now has two\n        new fields: type (which can take the values BGP_TABLE_{MAIN|RSCLIENT})\n        and \u0027void *owner\u0027 which points to \u0027struct bgp\u0027 or \u0027struct peer\u0027 which\n        owns the table.\n        When creating a new bgp_table by default \u0027type\u003dBGP_TABLE_MAIN\u0027 is set.\n\n        * bgpd/bgp_vty.c: The commands \u0027neighbor ... route-server-client\u0027 and\n        \u0027no neighbor ... route-server-client\u0027 now not only set/unset the flag\n        PEER_FLAG_RSERVER_CLIENT, but they create/destroy the \u0027struct\n        bgp_table\u0027 of the peer. Special actions are taken for peer_groups.\n        Command \u0027neighbor ... route-map WORD (in|out)\u0027 now also supports two\n        new kinds of route-map: \u0027import\u0027 and \u0027export\u0027.\n        Added commands \u0027clear bgp * rsclient\u0027, etc. These commands allow a new\n        kind of soft_reconfig which affects only the RIB of the specified\n        RS-client.\n        Added commands \u0027show bgp rsclient summary\u0027, etc which display a\n        summary of the rs-clients configured for the corresponding address\n        family.\n\n        * bgpd/bgp_routemap.c: A new match statement is available,\n        \u0027match peer (A.B.C.D|X:X::X:X)\u0027. This statement can only be used in\n        import/export route-maps, and it matches when the peer who announces\n        (when used in an import route-map) or is going to receive (when used\n        in an export route-map) the route is the same than the one specified\n        in the statement.\n        For peer-groups the statement matches if the specified peer is member\n        of the peer-group.\n        A special version of the command, \u0027match peer local\u0027, matches with\n        routes originated by the Route Server (defined with \u0027network ...\u0027,\n        redistributed routes and default-originate).\n\n        * lib/routemap.{ch}: Added a new clause \u0027call NAME\u0027 for use in\n        route-maps. It jumps into the specified route-map and when it returns\n        the first route-map ends if the called RM returns DENY_MATCH, or\n        continues in other case.\n"
    },
    {
      "commit": "60bb6a4515e2a71e78110aa240b45a0000ae1aa3",
      "tree": "c80ff0f08c135e76454b762fbcc52cea0d0bc76b",
      "parents": [
        "efba6ce941fb96763d5804212a674ca6b7098853"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 26 11:22:19 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 26 11:22:19 2004 +0000"
      },
      "message": "One warning less while building vtysh_cmd.c. This seems to be dead file.\nMaybe remove it at all?\n"
    },
    {
      "commit": "b7a97f825768bb3e617cb115540c74b65914e628",
      "tree": "7614897d5d668291f854b5283daf424b55a12853",
      "parents": [
        "33f92320e8a6b078a5972d05c8f49487d8edf19c"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Jul 23 16:23:56 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Jul 23 16:23:56 2004 +0000"
      },
      "message": "(somewhat unrelated cleanups, but all are very minor)\n\n2004-07-23  Greg Troxel  \u003cgdt@poblano.ir.bbn.com\u003e\n\n\t* */Makefile.am: Use ../dir/libfoo.la, rather than \"-L../dir\n\t-lfoo\", to avoid linking against installed libraries from a\n\tprevious version.\n\n\t* {lib,ospfd,ospfclient}/Makefile.am: explicitly define the shared\n\tlibrary version number to be 0.0\n\n\t* configure.ac: remove spurious , so extract.pl is chmod\u0027d +x.\n\n\t* HACKING: explain shared library versioning rules\n"
    },
    {
      "commit": "9f9aebdd152bb9ac3f020d21170c53dd0bcec71d",
      "tree": "1569971c28eea774b03c9119c83412a38e05c802",
      "parents": [
        "e01f9cbb87123217ac6d88c12ddb784fca9cc5b7"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 17:52:39 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 17:52:39 2004 +0000"
      },
      "message": "cvsignore *.libs in build dirs\n"
    },
    {
      "commit": "e01f9cbb87123217ac6d88c12ddb784fca9cc5b7",
      "tree": "edf78b44ec8c5979afe0abdeefa8b33572e67ef7",
      "parents": [
        "b9790b34c825e390c818044f6666f73beee1d373"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 17:48:53 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 17:48:53 2004 +0000"
      },
      "message": "2004-07-09 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        Merge of GNU Zebra cvs2svn changesets r799, r800 and r807.\n\n        * bgp_dump.c: (bgp_dump_attr) cleanup. return status code. check\n          attributes present before printing.\n        * bgp_dump.c: update bgp_dump_attr prototype.\n        * bgp_packet.c: (bgp_update_receive) init attrstr. check status\n          of bgp_dump_attr. Log end-of-rib UPDATEs.\n"
    },
    {
      "commit": "e3bee3b4cdc3a9b108d7b331c99705ffdb071dc4",
      "tree": "7e6d84fc6454445596f88e24a5aa0beeeccfcb17",
      "parents": [
        "b06c14f2e7cac5a2170f9d64182a99dbbc413674"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 12:38:23 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 12:38:23 2004 +0000"
      },
      "message": "Update cvsignore\u0027s for *.lo and *.la - libtool files\n"
    },
    {
      "commit": "f5ba387492ec163f1200d949a984f12ef88538ba",
      "tree": "c17eef0501ef903883aae2ec62fba0be1a244fa0",
      "parents": [
        "4d4653afe362d6ea549c6e21b27afe01fb8b8aac"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 12:11:31 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 12:11:31 2004 +0000"
      },
      "message": "2004-07-09 Sowmini Varadhan \u003csowmini.varadhan@sun.com\u003e\n\n        * bgp_packet.c: (bgp_collision_detect) Send NOTIFY on new socket\n          if that is connection we\u0027re closing.\n          (bgp_read) invalid marker check applies to KEEPALIVE too.\n        * bgp_route.c: Ignore multicast NRLI, dont send NOTIFY.\n"
    },
    {
      "commit": "87efd646ffef693235d9d29b005a1467373c51bd",
      "tree": "85d43e323abb1de6b1ddb6e889f9d580fdb8546d",
      "parents": [
        "f2bfdee5f9db5363fcd13763eca3fda729067d57"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Jun 30 17:36:11 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Jun 30 17:36:11 2004 +0000"
      },
      "message": "Add libtool support.\n\nlibzebra and libospfapiclient are now built shared, and linked shared\nwith the daemons.  This reduces the memory needed when running\nmultiple daemons; each daemon is at least 150k smaller.  Static\nlibraries are still built, and libtool should use them on platforms\nwhich don\u0027t have shared libaries.  As with autoconf, the user of a\ndistribution does not need libtool; one just needs that to build from\nCVS.\n\nlibospf.a is still a non-shared library, and still installed, not\nbecause that makese sense, but because I don\u0027t understand why it is\nthe way it is now.\n\nNote that the tree was tagged \u0027libtool-before\u0027 just before this commit.\n"
    },
    {
      "commit": "320ec10a24d8dd81d0aa011dc92e07877e4e02f8",
      "tree": "867cc29d5981b58bad9392cb7eb471daeb8250a1",
      "parents": [
        "6c0f9a782a7be49de53b5ae00980990d96edbf03"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jun 20 19:54:37 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jun 20 19:54:37 2004 +0000"
      },
      "message": "Removing code which looked at current dir for config file before attempting\nto read system one.\n"
    },
    {
      "commit": "d26ca6a976421b09ee6c4e5ac699075b6f549584",
      "tree": "447ea71cea6be30ec26194069e7d61acd211ba8a",
      "parents": [
        "074a917aeb16061440d932c1f3ffccd7afc475a1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 06 15:25:35 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 06 15:25:35 2004 +0000"
      },
      "message": "CVS ignore Linux NFS silly-delete .nfs* files\n"
    },
    {
      "commit": "5228ad27e2f3abe0ebb69f66607aedc048b94a13",
      "tree": "a65817a03150dbfeb56a1eaceab526f31be1cc1d",
      "parents": [
        "c2bfbcc38428b53e856617e1da8bbe9f8d2ee2fa"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 04 17:58:18 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jun 04 17:58:18 2004 +0000"
      },
      "message": "2004-06-04 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * type mismatch fixes\n"
    },
    {
      "commit": "538621f2f80ced838048fa7402e57face3b224a5",
      "tree": "1193f5948da15db665aa6d4a43027c466c0614b4",
      "parents": [
        "3950fda506e4db58a0ccc50156cf70f97da95bc3"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri May 21 09:31:30 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri May 21 09:31:30 2004 +0000"
      },
      "message": "Merge graceful restart capability display and some small fixes from Zebra\nrepository by Rivo Nurges.\n"
    },
    {
      "commit": "3950fda506e4db58a0ccc50156cf70f97da95bc3",
      "tree": "37a3193ebb50fb135c51b818fa04b17a074990d1",
      "parents": [
        "4372df71e191fcf6a6f9616fad80d11cd131c82d"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 20 10:22:49 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 20 10:22:49 2004 +0000"
      },
      "message": "Merge bgpd changeset 1185 from Zebra repository by Rivo Nurges.\n"
    },
    {
      "commit": "4372df71e191fcf6a6f9616fad80d11cd131c82d",
      "tree": "dd01502f61566bb57fd75e1c4a388181140f2f1d",
      "parents": [
        "e0701b7955b883c5437269a382e1afc76ee71e5c"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 20 10:20:02 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 20 10:20:02 2004 +0000"
      },
      "message": "Merge bgpd changeset 1184 from Zebra repository by Rivo Nurges.\n"
    },
    {
      "commit": "e0701b7955b883c5437269a382e1afc76ee71e5c",
      "tree": "d00034c1b7f369fc8214d401b7a44ef586d73e15",
      "parents": [
        "62843e433d8f85bce381edc6202c4af6c5cec31b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 20 09:19:34 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu May 20 09:19:34 2004 +0000"
      },
      "message": "Merge bgpd changeset 1176 from Zebra repository by Rivo Nurges.\n"
    },
    {
      "commit": "0a5893596774554f039222c481d235de0f35d99e",
      "tree": "065ba74422d21193637d6e3f8b52c0eaa09a13bf",
      "parents": [
        "225282994d74f767058886475d80fee95d450eae"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 08 11:48:26 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 08 11:48:26 2004 +0000"
      },
      "message": "2004-05-08 Paul Jakma \u003cpaul@dishone.st\u003e\n\n       * bgp_zebra.c: (bgp_interface_address_add) sync to zclient changes\n         (bgp_interface_address_delete) ditto.\n         (bgp_zebra_announce) ditto.\n         (bgp_zebra_withdraw) ditto.\n       * isis_zebra.c: Sync with zclient changes.\n       * zclient.c (zapi_ipv4_route) Follow Sowmini\u0027s lead and describe\n         message format.\n       * ospf6_zebra.c: Sync to zclient changes\n       * ospf_zebra.c: Sync with lib/zclient changes\n       * rip_zebra.c: sync with zclient changes.\n       * rip_interface.c: ditto.\n       * ripng_{interface,zebra}.c: sync with zclient changes\n\n\n2004-05-08 Sowmini Varadhan \u003csowmini.varadhan@sun.com\u003e\n\n       * zclient.c: (zapi_ipv4_add) collapsed into zapi_ipv4_route\n         (zapi_ipv4_delete) ditto.\n         (zapi_ipv4_route) add/delete a route by way of cmd arg.\n         (zapi_ipv6_add) collapsed into zapi_ipv6_route.\n         (zapi_ipv6_delete) ditto.\n         (zapi_ipv6_route) add/delete a route by way of cmd arg.\n         (zebra_interface_address_delete_read) collapsed into\n         zebra_interface_address_read.\n         (zebra_interface_address_delete_read) ditto.\n         (zebra_interface_address_read) read address add/delete messages\n         by way of type argument. Describe command message format.\n         (zebra_interface_add_read) Unconditionally read new ifmtu6 field.\n         Describe command message format.\n         (zebra_interface_state_read) Unconditionally read new ifmtu6 field.\n         (zclient_redistribute_set) Collapsed into zclient_redistribute\n         (zclient_redistribute_unset) ditto\n         (zclient_redistribute) set/unset redistribution.\n         (zclient_redistribute_default_set) Collapsed into\n         zclient_redistribute_default.\n         (zclient_redistribute_default_unset) ditto.\n         (zclient_redistribute_default) Redistribute default set/unset.\n       * zclient.h: delete zapi_ipv{4,6}_add, zapi_ipv{4,6}_delete. Add\n         zapi_ipv{4,6}_route. delete zclient_redistribute_set/unset. Add\n         zclient_redistribute. Ditto for\n         zclient_redistribute_default_{set/unset}.\n"
    },
    {
      "commit": "c53174045b26d0a87c68d276aeca0aaca9f464ae",
      "tree": "f1763d48b6fd38ab4f60e077b93591f8439a988e",
      "parents": [
        "8b338fe94cb7fd33f6f05635bc2b70301d1e51b7"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 03 13:25:06 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon May 03 13:25:06 2004 +0000"
      },
      "message": "2004-05-03 Daniel Roesen \u003cdr@cluenet.de\u003e\n\n        * bgp_fsm.c: (bgp_stop) Reset uptime only on transition from\n          Established so that it reflects true downtime (rather time\n          since last transition, eg Active-\u003eIdle)\n"
    },
    {
      "commit": "35be31b6b2199e66e5d18420cece5e3bacb3371c",
      "tree": "744adc33a896d6b69b159a3432e391e2ff2b3a92",
      "parents": [
        "eb821189d2778a93069fc1fc2f104db529ec5a1e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 01 18:17:04 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 01 18:17:04 2004 +0000"
      },
      "message": "2004-05-01 rivo nurges \u003crix@estpak.ee\u003e\n\n         * bgp_route.c: fix UNH IOL BGP-4.1.12f\n"
    },
    {
      "commit": "eb821189d2778a93069fc1fc2f104db529ec5a1e",
      "tree": "a623d680931ee722fb946f56476f23efd1f13685",
      "parents": [
        "eb3f463aab7f09e6c1041bf779fd5752b038f847"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 01 08:44:08 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 01 08:44:08 2004 +0000"
      },
      "message": "2004-05-01 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * Revert the attempted clean-up of the dummy peer hack, reverts\n          patchsets 435 (see 2004-02-17 below) and 456.\n"
    },
    {
      "commit": "9b87e41cae05e2d79519426af1a3f4a732c669a0",
      "tree": "ca1fd73ee03a9b36c1aae8d1d2d4fdcd8d2bf305",
      "parents": [
        "545acafbf599b3d163813e6640a1f83703ebda2e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Apr 20 16:54:49 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Apr 20 16:54:49 2004 +0000"
      },
      "message": "Update cease codes in bgp_debug.c file as well. Just update to patch from\nRivo.\n"
    },
    {
      "commit": "545acafbf599b3d163813e6640a1f83703ebda2e",
      "tree": "dd2c4b6288cf4cd34a381c280c995d85c40c8ecc",
      "parents": [
        "6b3fac0aab9ea72c927531df4c20a6e60df650fe"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Apr 20 15:13:15 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Apr 20 15:13:15 2004 +0000"
      },
      "message": "2004-04-16 rivo nurges \u003crix@estpak.ee\u003e\n\n        * bgpd.h: update cease subcodes to draft-ietf-idr-cease-subcode-05\n        * bgpd.h, bgpd.c, bgp_route.c, bgp_route.h: fix UNH IOL BGP-4.1.6a\n"
    },
    {
      "commit": "f571dab0c677ca4f3328ea944cc59ab2269c9a5d",
      "tree": "dcdb8086dd98dd956b0ba9ba9479d4fc2bd3388a",
      "parents": [
        "37318657e5af8774a7a1446157f99496e887719f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 22 08:55:25 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 22 08:55:25 2004 +0000"
      },
      "message": "Readded SIGTERM handling into sigevent stuff. Fixes bugzilla #85.\n"
    },
    {
      "commit": "66e31693289d956f59758155faf86cab88853bae",
      "tree": "ecb9a5e77473abf776b9c97c661eef4be30abf34",
      "parents": [
        "42ed9da7b646ce4b05ffafcae805a3018fb6f164"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Mar 20 19:33:06 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Mar 20 19:33:06 2004 +0000"
      },
      "message": "*** empty log message ***\n"
    },
    {
      "commit": "158cdad448eee409025b91ee152c505a62840cc3",
      "tree": "df099e1cc540f52e00bcf58906c74b6b943053ba",
      "parents": [
        "0d85b9958d6db05fb9d81afbee96332f142654bd"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Mar 19 17:12:14 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Mar 19 17:12:14 2004 +0000"
      },
      "message": "Fix warning.\n"
    },
    {
      "commit": "5e4fa1646cafe9e6f8dd78501bea0d2fe1eafdb4",
      "tree": "6f2aa13346f91f0924ada9cb9696589264a90552",
      "parents": [
        "253e9336982599957514ad87610e8cd58822fc7a"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Mar 16 14:38:36 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Mar 16 14:38:36 2004 +0000"
      },
      "message": "2004-03-16 David Young \u003cdyoung@pobox.com\u003e\n\n\t* (many) reference \u003clib/version.h\u003e rather than \"version.h\",\n\tbecause version.h is a generated file and not present in the\n\tsource tree when using objdir builds.\n\n(committed by gdt)\nworks fine with normal builds; didn\u0027t try objdir\n"
    },
    {
      "commit": "fa2b17e39499a77f41a719035a588b7fb63cec63",
      "tree": "3356703917aaa8359e0106ae3c2340ee6eea0e1f",
      "parents": [
        "caa6f8ac7d07f8cd3269255e6dce6d248f74af62"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Mar 04 17:45:00 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Mar 04 17:45:00 2004 +0000"
      },
      "message": "Many warning fixes from PC Drew ([quagga-dev 940]) and removing using PAGER\nfrom vtysh ([quagga-dev 932]).\n"
    },
    {
      "commit": "6ad23f05e36e743b89fc5a9a41e3db7eccb917fb",
      "tree": "522a8914b6aefe124c2e972481e89f408110ef3c",
      "parents": [
        "5de5bbf107f9eacb8d8265f8c0b925b2aed21878"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Feb 17 19:45:10 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Feb 17 19:45:10 2004 +0000"
      },
      "message": "2004-02-17 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * bgpd.h: (bgp_peer) add fd_local and fd_accept\n          file descriptor\u0027s, fd becomes a pointer to one of these.\n        * bgpd.c: (global) adjust for fact that fd is now a pointer.\n          (peer_create_accept) removed.\n        * bgp_route.c: (global) adjust for change of peer fd to pointer\n        * bgp_packet.c: (bgp_collision_detect) adjust and remove the\n          \"replace with other peer\" hack.\n        * bgp_network.c: (bgp_accept) Remove the dummy peer hack.\n          Update peer-\u003efd_accept instead.\n          (global) Adjust fd references - now a pointer.\n        * bgp_fsm.c: (global) adjust peer fd to pointer.\n          (bgp_connection_stop) new function, to stop connection.\n          (global) adjust everything which closed peer fd to use\n          bgp_connection_stop().\n"
    },
    {
      "commit": "4a1a2716632c29f05fce8324e4c41bc67cde18c6",
      "tree": "081c68c60b00c55fba703ddc1f56c2c440d126dc",
      "parents": [
        "55906724d8d460b16f11c2fe05eeb799325f97ba"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Feb 12 15:41:38 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Feb 12 15:41:38 2004 +0000"
      },
      "message": "Trivial fix from Bernd Leibing \u003cbernd.leibing@kiz.uni-ulm.de\u003e\n[quagga-dev 879].\n"
    },
    {
      "commit": "2d75d05218b76230bbd608cab8d08a5f47d77056",
      "tree": "7087570a7dbb8b650349b98a8f1963dfdcedceb1",
      "parents": [
        "9a76e2ddb6c4dc303ce7ed937c0cfa9430c3ed27"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:31:15 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:31:15 2004 +0000"
      },
      "message": "2004-01-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * tests/test-sig.c: New file, regression test for sigevents.\n        * lib/Makefile.am: add sigevent.{c,h}\n        * (isis|rip|ripng|ospf|ospf6|bgp)d/\\1_main.c: modify for sigevents.\n        * zebra/main.c: ditto.\n"
    },
    {
      "commit": "10d60ad1ca677a298902beb83387363bb863fd68",
      "tree": "02168f55175e9711131b1cf4c5be1a769d6703fc",
      "parents": [
        "9f1b6db9b58852e250de01e5c8e85acd9b079037"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Dec 23 17:34:39 2003 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Dec 23 17:34:39 2003 +0000"
      },
      "message": "2003-12-23 Krzysztof Oledzki \u003coleq@ans.pl\u003e\n\n        * bgp_network.c: drop privs on error cases\n\n(from [quagga-dev 438])\n"
    },
    {
      "commit": "aa593d5e2638566ead1e69381e60639550991ff2",
      "tree": "c865f642c1029fa47b8fc6cc86302468b9b2aef4",
      "parents": [
        "47ce02a8f12134a6ba515fbf1d2b9276e39d4c06"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 20:15:53 2003 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 20:15:53 2003 +0000"
      },
      "message": "2003-12-22 Christian Hammers \u003cch@lathspell.de\u003e\n\n        * configure.ac (and everywhere a regular file is opened for\n          writing): use file permissions from configure rather than\n          compiled-in umask.\n"
    },
    {
      "commit": "d6b72f7ab1d33a43e1b6d5cd3410ac53e3bf74a9",
      "tree": "e2b2a025757c52802bc12a4b6b8eec94d4bcdd79",
      "parents": [
        "6c110e700c21ef3d1d958da1df54261960d7ef07"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Dec 03 17:24:27 2003 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Dec 03 17:24:27 2003 +0000"
      },
      "message": "Add support for --enable-exampledir to specify where to place example\nfiles, defaulting to sysconfdir (matching previous behavior).\n\nThis is needed to support (cleanly) NetBSD pkgsrc, which requires that\nexample config files go in $(prefix)/share/examples/pkgname, rather\nthan in $(prefix)/etc/pkgname.\n"
    },
    {
      "commit": "1302bdc7ebf1ebf4ca4051011c75dab2453393fc",
      "tree": "27c2c8f49c098891464e402289ecd9bc91bf80c1",
      "parents": [
        "c001ae62814db71a2557bf69a94618613c57d547"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 10 23:50:54 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 10 23:50:54 2003 +0000"
      },
      "message": "2003-11-10 Lorenzo Colitti \u003clorenzo@ripe.net\u003e\n\n        * bgpd/bgp_dump.c: (bgp_dump_routes_entry) call\n          dump_bgp_routes_attr() with a prefix.\n"
    },
    {
      "commit": "c001ae62814db71a2557bf69a94618613c57d547",
      "tree": "1db10a79c8b3c90c1e92a21150c623b234fa9063",
      "parents": [
        "1fc8a39b7497b2ab2048b2299cc454a2f7666756"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 03 12:37:43 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 03 12:37:43 2003 +0000"
      },
      "message": "2003-11-03 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* bgpd/bgp_route.c: Delete some extraneous whitespace. Credit to\n\t  a person on #quagga whose name I unfortunately can not recall.\n"
    },
    {
      "commit": "af5cd0a52c89c73ec8c0fec808ab866cdda96f30",
      "tree": "3e1e232c39b1e5670f42a449356052d88f844d13",
      "parents": [
        "0fdc25b4189ac7151a7c19ed2556ff5119d70098"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Nov 02 07:24:40 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Nov 02 07:24:40 2003 +0000"
      },
      "message": "2003-11-02 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * bgpd/bgp_routemap.c: Fix up \u0027set ip next-hop A.B.C.D|peer-address\u0027\n          route map command so that vtysh can use it. Modified version of\n          Hasso Tepper\u0027s patch. Fixes bug #52.\n"
    },
    {
      "commit": "bb46e94fcccd9ede513bef8d8e22fe5fafdfbd10",
      "tree": "be7cb5015905c9fac8be0a9e3ba786dbd5d43e94",
      "parents": [
        "a652604cbfcc87884a00b12beb4e63b1eb10bcea"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 24 19:02:03 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 24 19:02:03 2003 +0000"
      },
      "message": "2003-10-24 Jose Luis Rubio Guivernau \u003cjrubio@dit.upm.es\u003e\n\n        * Better \u0027show bgp\u0027 support for views (eg ipv6), see [quagga-dev 238]\n        * bgpd/bgp_route.c: (bgp_show) Take a struct bgp argument instead of\n          view string.\n          (bgp_show_neighbor_route) Take a struct peer argument instead of\n          ip string.\n          (peer_adj_routes) ditto\n          (show_adj_routes) ditto\n          (peer_lookup_in_view) new function to return appropriate struct\n          peer for a given view string.\n          (misc) Fixup all calls to above to reflect new calling arguments,\n          and use peer_lookup_in_view as needed. Additional commands\n          installed to use expanded functionality above, existing commands\n          modified to suit as well.\n        * bgpd/bgp_vty.c: 2 new aliases.\n"
    },
    {
      "commit": "04bd484bf272dd580349c832f84cf5ffa27003bb",
      "tree": "9f9c50fda664e0ce62d43af14ec7ec546f801547",
      "parents": [
        "e92fbaf27ea028d4def1246b7fadb2096bfa4d8d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 24 04:24:39 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 24 04:24:39 2003 +0000"
      },
      "message": "2003-10-24 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * configure.ac: Check for fcntl()\n        * {bgpd,ospf,ospf6d,ripd,ripngd}/Makefile.am: Install conf file via\n          regular automake means, not magic install incantations, see\n          bug #38.\n        * lib/Makefile.am: install the headers, needed to link libzebra.a\n          (and hence libospf.a, OSPF-API, etc.)\n"
    },
    {
      "commit": "a384592fda7cec702f8d3201f51b636d6fe1be9b",
      "tree": "20b24811f3f89351fc92b41fa0293c7d77963088",
      "parents": [
        "9834cd0f43bc45f04303b0f742faacf3bc5eac45"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Oct 18 01:30:50 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Oct 18 01:30:50 2003 +0000"
      },
      "message": "2003-10-18 Lorenzo Colitti \u003clorenzo@ripe.net\u003e\n\n2003-10-18 Lorenzo Colitti \u003clorenzo@ripe.net\u003e\n\n        * bgpd/bgp_attr.c: (bgp_dump_routes_attr) Dont dump IPv4 nexthop\n\t  for IP. Dump MP_NLRI attr with IPv6 next-hop for AF_INET6 address\n          family prefixes. Accept prefix as argument.\n        * bgpd/bgp_attr.c: modify bgp_dump_routes_attr declaration.\n        * bgpd/bgp_dump.c: (bgp_dump_routes_entry) Modify calls to\n          bgp_dump_routes_attr.\n          (bgp_dump_common) Go by the family of the peering socket, not\n          configured address family when dumping peering information.\n          Add HAVE_IPV6 conditionals, eg missing from previous bgp interval\n          patch.\n"
    },
    {
      "commit": "9834cd0f43bc45f04303b0f742faacf3bc5eac45",
      "tree": "b0198301ead5b6d8051a95689a5ce59c228c7116",
      "parents": [
        "cc1131ab011afc4f06c1a967e9c0cbd77cc88d58"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Oct 18 01:01:19 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Oct 18 01:01:19 2003 +0000"
      },
      "message": "2003-10-18 Lorenzo Colitti \u003clorenzo@ripe.net\u003e\n\n        * bgpd/bgp_dump.{c,h}: (bgp_dump_interval_add) Dump at discrete\n          fixed intervals rather than fixed intervals from startup time.\n          (bgp_dump_interval_func) Dont return immediately if file cant be\n          openeded, but reschedule interval dumps, even - admin might\n          fix problem in meantime. Close the dump file in between intervals.\n          (bgp_dump_init) account for MSG header when initialising stream\n\t  size.\n"
    },
    {
      "commit": "3b424979f54c6b128d1ee8a7c33d072d321f2f0c",
      "tree": "c3c684d2e1576610d3a0cedefa3bab23610c8d61",
      "parents": [
        "7ddf1d6eaf5a339d13661469212ac33f77e808fc"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 13 09:47:32 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 13 09:47:32 2003 +0000"
      },
      "message": "2003-10-13 Jay Fenlason \u003cfenlason@redhat.com\u003e\n\n\t* lib/zebra.h: define UINT32_MAX for those systems which do not\n\t  provide it.\n\t* bgp_attr.h: define BGP_MED_MAX.\n\t* bgp_route.c: update defines/constants to BGP_MED_MAX.\n\t* bgp_routemap.c: ditto. clean up route_match_metric_compile\n\t  slightly to avoid unneccesary XMALLOC.\n"
    },
    {
      "commit": "31a476c7e9014aa81dc0d50b4100431ab111bf3f",
      "tree": "3f7fd8ed9010917cb3e93389d4e1d5a9649c5741",
      "parents": [
        "f3e05cda2a35abe1bcd9e3ad33083f4c78c0235a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 29 19:54:53 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 29 19:54:53 2003 +0000"
      },
      "message": "2003-09-29 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* zebra/connected.c: revert the \u0027generic PtP\u0027 patch as it causes\n\tfar too many problems. People who use FreeSWAN should investigate\n\tnative linux ipsec.\n\t* zebra/rt_netlink.c: ditto\n\t* lib/if.c: ditto\n\t* ripd/ripd.h: ditto\n\t* ripd/ripd.c: ditto\n\t* ripd/rip_interface.c: ditto\n\t* ospfd/ospfd.c: ditto\n\t* ospfd/ospf_snmp.c: ditto\n\t* bgpd/bgp_nexthop.c: ditto\n"
    },
    {
      "commit": "50d649aaf920c27c8b6ee525d727436a24c14b4d",
      "tree": "5f3a1ff2d19eebbeafcc8d8400341f605ac864cc",
      "parents": [
        "c22854b87884f86adf05c5e4eb7a82058c4847f7"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 27 12:25:49 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 27 12:25:49 2003 +0000"
      },
      "message": "2003-08-27 Kunihiro Ishiguro \u003ckunihiro@zebra.org\u003e\n\n\t* bgpd/bgp_route.c: Unrevert the revert of the possible first fix\n\t  for maximum-prefix.\n"
    },
    {
      "commit": "c22854b87884f86adf05c5e4eb7a82058c4847f7",
      "tree": "35fd102b43c0a60c6f62ecc3738b60ca06184e40",
      "parents": [
        "537d8ea92bbf96086e03a0da5a7d26ee4b92e0cc"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 27 07:07:02 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 27 07:07:02 2003 +0000"
      },
      "message": "2003-08-27 Kunihiro Ishiguro \u003ckunihiro@zebra.org\u003e\n\n\t* bgpd/bgp_route.c: More work on bgp maximum prefix support\n"
    },
    {
      "commit": "537d8ea92bbf96086e03a0da5a7d26ee4b92e0cc",
      "tree": "392b903719b0ebcdc793aad7f35bdd5801e49a84",
      "parents": [
        "fd6ff2fc6b221f2c2c30ef0d29f5e938c1737577"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 27 06:45:32 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 27 06:45:32 2003 +0000"
      },
      "message": "2003-08-27 Jay Fenlason \u003cfenlason@redhat.com\u003e\n\n\t* bgpd/bgp_routemap.c: attr-\u003emed is type u_in32_t, should be\n\t  compared with UINT32_MAX\n\t* ospfd/ospfd.c: remove redundant assert\n\t* zebra/rtadv.c: add missing include for zebra/rib.h\n"
    },
    {
      "commit": "c2f3a4cc771da731f5aedc455e6f6a543acd6e38",
      "tree": "9988691c695127592da7789298bd9157600cec81",
      "parents": [
        "d02d5a6b7bc25abc8cf16e4959f89e84116b7ea5"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 26 04:11:35 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 26 04:11:35 2003 +0000"
      },
      "message": "2003-08-26 Kunihiro \u003ckunihiro@zebra.org\u003e\n\n\t* bgpd/bgp_route.c: fix maximum prefix comparison\n"
    },
    {
      "commit": "d81fadfd889aa7bc657fa19752344a585e8c274a",
      "tree": "26a7026afc547f4ac82ea4d84394109323cbb246",
      "parents": [
        "e835d10483f833c8e6bb2957ea10a2f7a9cb4888"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 14 05:32:12 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 14 05:32:12 2003 +0000"
      },
      "message": "2003-08-14 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* zebra/main.c: Fixup ZEBRA_{GROUP,USER} defines -\u003e\n\t  QUAGGA_{USER,GROUP}\n\t* bgpd/bgp_main.c: ditto\n\t* ospf6d/ospf6_main.c: ditto\n\t* ospfd/ospf_main.c: ditto\n\t* ripd/rip_main.c: ditto\n\t* ripngd/ripng_main.c: ditto\n\t* zebra/main.c: ditto\n"
    },
    {
      "commit": "848973c71e75424d07c2cd52ba991aae1b9df12a",
      "tree": "0a46f5b0fea868dd2003a475d860108b14786fe1",
      "parents": [
        "e8f2984c00d406781eff42db7afcdae5d5a6a366"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 13 00:32:49 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 13 00:32:49 2003 +0000"
      },
      "message": "2003-08-13 kunihiro \u003ckunihiro@zebra.org\u003e\n\n\t* bgpd/bgp{_fsm.c,_vty.c,d.c,d.h}: Add support for \"bgp\n          log-neighbor-changes\" command.\n"
    },
    {
      "commit": "e8f2984c00d406781eff42db7afcdae5d5a6a366",
      "tree": "f8b4da099e7f06c25a6b27c873c9897b935b91a2",
      "parents": [
        "5f5eab7833eef6aa0c95ee991bbdb65cfcc90011"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 12 13:08:31 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 12 13:08:31 2003 +0000"
      },
      "message": "2003-08-12 Paul Jakma \u003cpaul@dishone.st\u003e\n\n2003-08-12 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * Makefile.am: redhat/zebra.* -\u003e redhat/quagga.*\n        * configure.ac: Bump autoconf prerequisite to 2.53.\n          dist name zebra -\u003e quagga.\n          general Zebra -\u003e Quagga where appropriate (ie not zebra daemon).\n          User and group zebra-\u003equagga.\n          s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/.\n        * bgpd/bgp_main.c: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n        * lib/command.c: Update banners and s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n        * lib/print_version.c: ditto\n        * lib/version.h: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/ and bump version.\n          Change ZEBRA_URL.\n        * lib/smux.c: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n        * lib/vty.h: Change Zebra.conf to Quagga.conf (integrated file)\n        * ospf6d/ospf6{,_main}.c: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n        * ospfd/ospf_main.c: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n"
    },
    {
      "commit": "ac41b2a2d40356468edc84becc6d5800d119aef6",
      "tree": "8496bdd89af283f76ccd25b5ff24febcdcd93e0e",
      "parents": [
        "f1c61a0a5b5c4cfd0125f050568b8c1fb9953a96"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 12 05:32:27 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 12 05:32:27 2003 +0000"
      },
      "message": "2003-08-11 kunihiro \u003ckunihiro@zebra.org\n\n         * bgp_route{,map}.c: Extend \u0027set ip next-hop\u0027 in route-maps with\n         ability to specify \u0027peer-address\u0027 rather than IP.\n"
    },
    {
      "commit": "96735eeafe4713b60700915dd2fb6dcbd0f09c8f",
      "tree": "49b7f583956e3d7ad91dcfa006d18e20f57efe15",
      "parents": [
        "286e1e71538440ed0bef4576aded1745191490d3"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Aug 10 02:51:22 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Aug 10 02:51:22 2003 +0000"
      },
      "message": "2003-08-10 amir \u003camir@datacore.ch\u003e\n\n\t* Add missing \u0027i\u0027 to getopts, short form of --pid_file.\n\t  see http://bugzilla.quagga.net/show_bug.cgi?id\u003d25\n"
    },
    {
      "commit": "286e1e71538440ed0bef4576aded1745191490d3",
      "tree": "4e83f3463d554ff1cea819440c67630c9b3e6d93",
      "parents": [
        "622149ad4d5b041ed7f5af36fb798d842e3d8025"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Aug 08 00:24:31 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Aug 08 00:24:31 2003 +0000"
      },
      "message": "2003-08-07 kunihiro \u003ckunihiro@zebra.org\u003e\n\n\t* bgpd/bgp_route.c: route server passes routes which may have\n\t  no-export community\n"
    },
    {
      "commit": "4f991ef0bd977eab91034bf7976651b3c350bede",
      "tree": "54961f1a6d3aee5ad6f378658c64757f37d93a61",
      "parents": [
        "9a344b74cc48e7c18fe2bdac326be40a070eb118"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 06 21:47:28 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 06 21:47:28 2003 +0000"
      },
      "message": "2003-08-06  kunihiro \u003ckunihiro@zebra.org\u003e\n\n\t* bgpd/bgp_filter.c: \"show ip as-path-access-list\"\n"
    }
  ],
  "next": "a58545bba183d4ce88b285ceb57f8d9c6d119768"
}
