)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "718e3744195351130f4ce7dbe0613f4b3e23df93",
      "tree": "bac2ad39971cd43f31241ef123bd4e470f695ac9",
      "parents": [],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "message": "Initial revision\n"
    }
  ]
}
