)]}'
{
  "log": [
    {
      "commit": "605aa331d814b0977dd8435168dca5b2b7928996",
      "tree": "c33e213e83b219b61e19aa3dc8edec34dae962c7",
      "parents": [
        "2b2e38c3169ae0221645e4dd9b40388660ce3f68"
      ],
      "author": {
        "name": "Piotr Chytła",
        "email": "pch@packetconsulting.pl",
        "time": "Tue Dec 01 10:03:54 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:49 2016 +0100"
      },
      "message": "bgpd, vtysh: Add support for route tags\n\n[Forward ported by Cumulus]\n\nDocumentation\n-------------\nAll ipv4 and ipv6 static route commands now have a \"tag\" option\nwhich allows the user to set a tag between 1 and 65535.\n\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag ?\n  \u003c1-65535\u003e  Tag value\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag 40\nquagga(config)#\n\nquagga# show ip route 1.1.1.1/32\nRouting entry for 1.1.1.1/32\n  Known via \"static\", distance 1, metric 0, tag 40, best\n  * 10.1.1.1, via swp1\n\nquagga#\n\nThe route-map parser supports matching on tags and setting tags\n!\nroute-map MATCH_TAG_18 permit 10\n match tag 18\n!\n\n!\nroute-map SET_TAG_22 permit 10\n set tag 22\n!\n\nBGP and OSPF support:\n- matching on tags when redistribing routes from the RIB into BGP/OSPF.\n- setting tags when redistribing routes from the RIB into BGP/OSPF.\n\nBGP also supports setting a tag via a table-map, when installing BGP\nroutes into the RIB.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\nSigned-off-by: Piotr Chytla \u003cpch@packetconsulting.pl\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n\nEdits by: Paul Jakma \u003cpaul.jakma@hpe.com - conflicts on re-ordering with the\nrmap-event and table-map patches, those will now need to update the tags stuff.\n"
    },
    {
      "commit": "2b2e38c3169ae0221645e4dd9b40388660ce3f68",
      "tree": "4201eb0ecd250b8da03ec7c129ef80a77007ee4a",
      "parents": [
        "eefddcc78abcc91d1d88633a3c6d5a438fe58790"
      ],
      "author": {
        "name": "Piotr Chytła",
        "email": "pch@packetconsulting.pl",
        "time": "Tue Dec 01 10:10:41 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:49 2016 +0100"
      },
      "message": "ospfd, vtysh: Add support for Route tags\n\n[Forward ported by Cumulus]\n\nCredit\n------\nA huge amount of credit for this patch goes to Piotr Chytla for\ntheir \u0027route tags support\u0027 patch that was submitted to quagga-dev\nin June 2007.\n\nDocumentation\n-------------\nAll ipv4 and ipv6 static route commands now have a \"tag\" option\nwhich allows the user to set a tag between 1 and 65535.\n\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag ?\n \u003c1-65535\u003e  Tag value\nquagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag 40\nquagga(config)#\n\nquagga# show ip route 1.1.1.1/32\nRouting entry for 1.1.1.1/32\n  Known via \"static\", distance 1, metric 0, tag 40, best\n  * 10.1.1.1, via swp1\n\nquagga#\n\nThe route-map parser supports matching on tags and setting tags\n!\nroute-map MATCH_TAG_18 permit 10\n match tag 18\n!\n\n!\nroute-map SET_TAG_22 permit 10\n set tag 22\n!\n\nBGP and OSPF support:\n- matching on tags when redistribing routes from the RIB into BGP/OSPF.\n- setting tags when redistribing routes from the RIB into BGP/OSPF.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\nSigned-off-by: Piotr Chytla \u003cpch@packetconsulting.pl\u003e\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "147a812ed15e171d1db882ac96f0f15723bf8b8f",
      "tree": "d394af3adcf89b7eae806693cba7ae5ee5eea7e7",
      "parents": [
        "768d9098a526841d22a8f0b740a919bd6eccee47"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu May 21 16:06:21 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Oct 04 13:07:48 2016 +0100"
      },
      "message": "vtysh: service integrated-vtysh-config not being written to file\n\nThe vtysh commands:\nservice integrated-vtysh-config\nhostname XXXX\n\nwere not being written to the /etc/quagga/Quagga.conf file with a wr mem\nwhen service integrated-vtysh-config was issued.  This patch fixes this\nissue\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "62f936e7960a7c08f4ae42ad43726d8d6e8e949d",
      "tree": "53dbbf703d51c38e0bf41cc979434b32c3b5d430",
      "parents": [
        "92992c69afd0095b183a3b905598d194115b27a7"
      ],
      "author": {
        "name": "Daniel Walton",
        "email": "dwalton@cumulusnetworks.com",
        "time": "Mon Nov 09 20:21:59 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Sep 13 10:36:45 2016 +0100"
      },
      "message": "ospf6d, ripd, vtysh: Fix \"no set metric\" for ospf6 and RIP\n\nAllow the user to actually turn off the set metric command\nin ospf6d and rip.\n\nSigned-off-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "a4f40293db1055387d5b901fe0dbb556226b2024",
      "tree": "09ac6cebe377c249426a3760d008b031c84b1be5",
      "parents": [
        "0f2f7a3fa5d55e682d0739d586da021cbd43bc3c"
      ],
      "author": {
        "name": "vivek",
        "email": "vivek@cumulusnetworks.com",
        "time": "Mon Nov 09 20:21:46 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Sep 13 10:36:44 2016 +0100"
      },
      "message": "vtysh: Make ipv6 unicast/multicast address-family work\n\nIn the absence of this patch, attempting to type \"address-family ipv6 unicast\"\nwould result in an \"Ambiguous command\" error and in the case of\n\"address-family ipv6 multicast\", the command would silently fail, without the\nprompt dropping into the address-family mode.\n\nThe cause is how the parse tree is constructed for ipv6 address family. There\nwas an error in extract.pl.in script and in vtysh.c files which assumed that\nthere was only address family ipv6 command, without unicast or multicast and\nso the command was failing.\n\nSigned-off-by: vivek \u003cvivek@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "c7c5b02480a506c6d687bf0d3a0c2a7d3e7cfbf6",
      "tree": "fbcd2aafea751978d47459ddbeee945f5f62699b",
      "parents": [
        "3b847ef4e81c6f1a5d4994680d530045765fd053"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Mon Apr 04 15:19:37 2016 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Sep 13 10:36:43 2016 +0100"
      },
      "message": "vtysh: auto-generated vtysh_cmd.c file should depend on its creator\n"
    },
    {
      "commit": "ac10d30c03091eace3c0405aa8ccb7d3c09e7bd2",
      "tree": "b855b841903149f68f518068fe99b120f94c0712",
      "parents": [
        "15773a87ce652da5b02ca14dc0088408899ea007"
      ],
      "author": {
        "name": "Olivier Dugeon",
        "email": "olivier.dugeon@orange.com",
        "time": "Tue Apr 19 18:33:42 2016 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Sep 13 10:36:38 2016 +0100"
      },
      "message": "vtysh: Add support of new link-params CLI\n\nIn vtysh_config.c/vtysh_config_parse_line(), it is not possible to continue\nto use the ordered version for adding line i.e. config_add_line_uniq() to print\nInterface CLI commands as it completely break the new LINK_PARAMS_NODE.\n\nSigned-off-by: Olivier Dugeon \u003colivier.dugeon@orange.com\u003e\n"
    },
    {
      "commit": "0744040564ece3f4b9fe39fcf857e466a5f68a72",
      "tree": "dc0fca27a603d845d153cccb95fd5b21ffa6429d",
      "parents": [
        "23757db11c5378521b7948847e17691f4fc35e0a"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Feb 25 07:39:45 2016 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Jul 20 12:58:33 2016 +0100"
      },
      "message": "vtysh: Add ability to only look at one processes work queue\n\nWhen examining performance information it is nice to not\nhave to look at daemons who you are not interested in.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nReviewed-by: Don Slice \u003cdslice@cumulusnetworks.com\u003e\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\n"
    },
    {
      "commit": "23757db11c5378521b7948847e17691f4fc35e0a",
      "tree": "5b62d70b558c89ab751626e5b3f1a028a0be431e",
      "parents": [
        "7bd31774cf2c1cfaf74bca87f57f698e20a07e65"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 24 06:26:02 2016 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Jul 20 12:58:32 2016 +0100"
      },
      "message": "*: get rid of \"MTYPE 0\"\n\nA few places are using 0 in place of the MTYPE_* argument.  The\nfollowing rewrite of the alloc tracking won\u0027t deal with that, so let\u0027s\nuse MTYPE_TMP instead.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "2e320423337c628bfeb814ec15fd5f575ebc5eed",
      "tree": "21174999e4fc60d7d0ab13313bc92b98728a1118",
      "parents": [
        "9099f9b2a66e86f8a90d7fe18f61bd2bb1bc6744"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Wed Jan 13 10:49:50 2016 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Fri Feb 26 14:11:46 2016 +0000"
      },
      "message": "doc, vtysh: Fixup of history handling\n\nThis fix does two things:\n\n1) If the ${HOME}/.history_quagga file does not exist, create it\nfor history storing.\n2) Allow vtysh -c \"...\" commands to be stored in history file\nas well\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "a3fda886cdd48b6d8c421ebb1401142fa9ee93b0",
      "tree": "42a5e6fda0978185128544fd199caf8ed93e58a3",
      "parents": [
        "637035710a2f8e1e5944ee714135b7f88ac15ac4"
      ],
      "author": {
        "name": "Lou Berger",
        "email": "lberger@labn.net",
        "time": "Tue Jan 12 13:42:04 2016 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Fri Feb 26 14:11:44 2016 +0000"
      },
      "message": "bgpd, lib, vtysh: hook up bgp ENCAP CLI node\n\nSigned-off-by: Lou Berger \u003clberger@labn.net\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "82dd707988b7481e203cab058c92f0b3041dd558",
      "tree": "01923f2a1a5b0ca381e9eb7b093f467ca4cc942b",
      "parents": [
        "13c378d96a57017f5995b2e0df46cfc31123f0e8"
      ],
      "author": {
        "name": "Lou Berger",
        "email": "lberger@labn.net",
        "time": "Tue Jan 12 13:41:57 2016 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Fri Feb 26 14:11:43 2016 +0000"
      },
      "message": "bgpd: improve cleanup in bgp_delete()\n\nSigned-off-by: Lou Berger \u003clberger@labn.net\u003e\n"
    },
    {
      "commit": "13c378d96a57017f5995b2e0df46cfc31123f0e8",
      "tree": "6b4669bf22264a816ef451f3058cd8f59872eab5",
      "parents": [
        "9da04bca0e994ec92b9242159bf27d89c6743354"
      ],
      "author": {
        "name": "Lou Berger",
        "email": "lberger@labn.net",
        "time": "Tue Jan 12 13:41:56 2016 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Fri Feb 26 14:11:43 2016 +0000"
      },
      "message": "bgpd, lib, vtysh: hook up bgp VPNv6 CLI node\n\nSigned-off-by: Lou Berger \u003clberger@labn.net\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "cc216b7978b038667626afd3f70dda8f70c46e4e",
      "tree": "8d15c0738f2bd73a1a1016c7eba20bbd57c1920f",
      "parents": [
        "a3bc7e9400b214a0f078fdb19596ba54214a1442"
      ],
      "author": {
        "name": "Gautam Kumar",
        "email": "gauta@amazon.com",
        "time": "Mon Oct 26 13:22:12 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Wed Feb 10 15:06:17 2016 +0000"
      },
      "message": "vtysh: When the config file is close to the boundry of size of buffer vtysh hangs.\n"
    },
    {
      "commit": "acf9865f7fcec6a8d47df6ed7946a5e8ca398918",
      "tree": "fac7d9ce2d2b6d984bde675641556e5063e8f655",
      "parents": [
        "9dfcca6122c9f4f3642241ff50029d7669af3999"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Nov 12 14:24:22 2015 +0100"
      },
      "committer": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Tue Dec 08 14:12:50 2015 -0500"
      },
      "message": "isisd: add support to import routes from other protocols\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "d8aa4beab72cdd2c2d78f9e624fd4b704eec488f",
      "tree": "b2f1db2c50ce548175240b9621df6df936cf44a6",
      "parents": [
        "7125293d65d73a451ec203c8c1630c236171f5a3"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Mon Sep 28 20:10:40 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Oct 27 10:53:21 2015 +0000"
      },
      "message": "vtysh: Fix Quagga.conf file read in.\n\nThere exists a sequence of cli commands that are successfully read in by bgpd.conf, but\nnot by a consolidated Quagga.conf.\n\nThis issue stems from the fact that the consolidated config file attempts to match the\ncurrent node + 1 node up the tree, while the individual config file searches for matches\nall the way up the tree.\n\nQuagga.conf read-in relies on vtysh_cmd.c command parsing which puts all nodes\nat CONFIG_NODE and if a match is found CMD_SUCCESS_DAEMON is returned.  This signals to\nthe parser to call the appropriate daemon with the comamnd.\n\nbgp as an example has three levels of config node\u0027s.  If you are reading in a config node\nat the 3rd level(say address-family ipv6) then transition to another node under bgp it will\nnot work in Quagga.conf because the code only looked up one node and was at CONFIG_BGP when it failed\nto find a match.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nReviewed-by: Daniel Walton \u003cdwalton@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "9fb73e8790ab0e433686643bf245ee1f0e238b99",
      "tree": "a65d96ba23fbcc4c8a1c12540d0dcc5dbc084395",
      "parents": [
        "67c3d75f5324b610352998c670f5f0cc4ba0ff2a"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Tue Sep 22 11:13:12 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Oct 27 10:53:20 2015 +0000"
      },
      "message": "vtysh: Allow display of individual daemons configs\n\nWhen executing a \u0027show run\u0027 or \u0027write terminal\u0027 you see the\nentire integrated config.  You have no way of knowing what an\nindividual daemon is going to write until after you do a write\nof config to disk if you are not using an integrated configuration.\nThis change allows the end-user to do such a thing.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "8965be4baaa1a4c619cbb4a8a10d15a72d80b60d",
      "tree": "86d0e591d014f4d6a7f1f6b69fd85e1fef3bfdd0",
      "parents": [
        "567a638fc7aee31c9421159140b8e18b83a099b3"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Fri Sep 04 14:21:23 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Sep 24 15:26:45 2015 +0100"
      },
      "message": "vtysh: allow --with-libpam to build with --enable-werror\n\nThe function vtysh_pam fails the build with --enable-werror enabled\nbecause it is a static function not declared as such\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "567a638fc7aee31c9421159140b8e18b83a099b3",
      "tree": "f56772e9d62e6115c058c1d2aace2fc41498777c",
      "parents": [
        "04a3aabf58d95d01c4c8168eeff43cf9d9892eee"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Wed Aug 19 21:22:17 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Sep 24 15:26:45 2015 +0100"
      },
      "message": "vtysh: Add missing show thread/work-queues commands\n\n\u0027show thread cpu ..\u0027 and \u0027show work-queues\u0027 are missing\nfrom vtysh, but are available from telnet.\n\nThis commit adds these commands to the vtysh interface.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "52c0bc739b1184621525e64720b944268d6b0eeb",
      "tree": "a556a51ef56f6ccaa63c942c9880c684fc4b3bae",
      "parents": [
        "c8ee940cc695cbcf9c0156ee6f72730f1fff9814"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@jakma.org",
        "time": "Thu Aug 20 21:30:17 2015 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Sep 03 16:44:48 2015 +0100"
      },
      "message": "build: Remove the old PIC/PIE patch, let libtool sort it out\n\n* Remove the old change from \u002708 to add in PIE arguments at automake level.\n  Versions of libtool since then know how to deal with -fpie and do the right\n  thing according to whether its building shared or executable objects.\n  So just pass \u0027-fpie\u0027 as CFLAG and let libtool do its thing.\n"
    },
    {
      "commit": "6064613154b6302606547735f0c466910a6443ea",
      "tree": "6f30a6c896ff67c2cb6b7494f5d03d45f341f5ae",
      "parents": [
        "c9b07581e0df8867499e97e08b382b6d3cc9c4c4"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Aug 04 17:37:16 2015 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Aug 04 17:40:25 2015 +0100"
      },
      "message": "vtysh: adjust bad_cli_stomps in extract.pl.in to reflect fixes \u0026 fix build\n"
    },
    {
      "commit": "b1891fb9705b6085f81269dec0795f2065442047",
      "tree": "002bccbf21caf38ec1dab8f36020b3eab7356a30",
      "parents": [
        "1934e7895ded8d9d7a76ab3f482c381bf5f6725c"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Tue Jun 09 20:22:42 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jun 21 14:56:55 2015 +0100"
      },
      "message": "Add code to extract.pl.in to prevent further cli function overwrites\n\nCurrently extract.pl.in is used to build the vtysh cli.  When two\ndifferent cli\u0027s collide with the same command name, the original\ncli is never called, because it is dropped.  This code notes the\nsilent drop and tracks the number of drops.  If they change then\nthe code will fail the build.  The current number of drops was\nfigured out by running extract.pl and counting up the drops\nthen adding code to compare the numbers returned.\n\nIf you have added to the problem, the solution is to fix your cli\ncommand to not stomp on someone else\u0027s command.  If you have removed\na stomp, safely modify extract.pl.in as part of your commit.\n\nSigned-off-by: Donald Sharp \u003csharpd at cumulusnetworks.com\u003e\nAcked-by: Vincent Jardin \u003cvincent.jardin@6wind.com\u003e\n"
    },
    {
      "commit": "55cfa2f190620f7c711944637659bc208970324d",
      "tree": "13e8a607e6e552da0f4218b4a8473dbcd738845b",
      "parents": [
        "c99f3481a598e9cadd1de96714f6b5df9ad85c4a"
      ],
      "author": {
        "name": "Feng Lu",
        "email": "lu.feng@6wind.com",
        "time": "Thu Jul 03 18:24:34 2014 +0800"
      },
      "committer": {
        "name": "Nicolas Dichtel",
        "email": "nicolas.dichtel@6wind.com",
        "time": "Wed Jun 03 17:26:27 2015 +0200"
      },
      "message": "lib, vtysh: support multiple VRFs by using linux netns\n\nWe realize VRFs with linux netns by default. The main job is\nto associate a VRF with a netns. Currently this is done by\nthe configuration:\n\n  [no] vrf N netns \u003cnetns-name\u003e\n\nThis command is also available in vtysh and goes to only\nzebra, because presently only zebra supports multiple VRF.\n\nA file descriptor is added to \"struct vrf\". This is for the\nassociated netns file. Once the command \"vrf N netns NAME\"\nis executed, the specified file is opened and the file\ndescriptor is stored in the VRF N. In this way the\nassociation is formed.\n\nIn vrf_socket(), we first switch to the specified VRF by\nusing the stored file descriptor, and then can allocate\na socket which is working in the associated netns.\n\nSigned-off-by: Feng Lu \u003clu.feng@6wind.com\u003e\nReviewed-by: Alain Ritoux \u003calain.ritoux@6wind.com\u003e\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\n"
    },
    {
      "commit": "471ea39ce54537194ff2f22420589ddec5ef5ada",
      "tree": "65b04ef42d4ece7e4a44d230fcc0a15f388755c4",
      "parents": [
        "5a5702fac5458d63d7a099c4db7ac387afefd2de"
      ],
      "author": {
        "name": "Feng Lu",
        "email": "lu.feng@6wind.com",
        "time": "Fri May 22 11:40:00 2015 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Jun 02 06:59:36 2015 +0200"
      },
      "message": "lib, zebra, vtysh: configure an interface in non-default VRF\n\nIntroduce a new command \"interface IFNAME vrf N\" to configure an\ninterface in the non-default VRF.\n\nTill now, only zebra uses this command. Other daemons will install\nthe command when they support multiple VRFs.\n\nSigned-off-by: Feng Lu \u003clu.feng@6wind.com\u003e\nReviewed-by: Alain Ritoux \u003calain.ritoux@6wind.com\u003e\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nAcked-by: Vincent JARDIN \u003cvincent.jardin@6wind.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "ee53c8b9f7979c79beada960746ca35046016a45",
      "tree": "4a1df05c8bb9b72e6508a11300dbdbccda419600",
      "parents": [
        "ec38711852abdcaa0e7001e6a1e957052a0e723d"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat May 23 05:45:59 2015 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed May 27 20:28:19 2015 +0200"
      },
      "message": "vtysh: fix the fix for babeld removal... (5460bae)\n\nCommit 5460bae (\"*: fix \u0027babeld: Remove babeld from Quagga\u0027 (336724d)\")\nunfortunately removed the BABEL_NODE from vtysh, which now no longer\nstarts.\n\nFix by restoring the node (even though it won\u0027t be accessible).\n\nReported-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nFixes: 5460bae (\"*: fix \u0027babeld: Remove babeld from Quagga\u0027 (336724d)\")\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "5460baef7f0014f2d0c3459aa9c4180da19d6850",
      "tree": "43c44fde298e4fbaf1de87a6dc287b0c82a4f515",
      "parents": [
        "336724d628be71022f80cfe3dfb34274ad95ec14"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue May 19 00:35:04 2015 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed May 20 00:34:21 2015 +0200"
      },
      "message": "*: fix \"babeld: Remove babeld from Quagga\" (336724d)\n\nThis removes some more bits of babeld, particularly from:\n- buildtest.sh\n- redhat/ build files\n- vtysh integration (which actively broke the build)\n\nThe memtype and zclient/route type are kept in place since these don\u0027t\nbreak anything and -theoretically- make it possible to build babeld\nwith some Quagga integration externally.\n(Keeping vtysh integration is unfortunately not as easy.)\n\nReported-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nFixes: 336724d (\"babeld: Remove babeld from Quagga\")\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nAcked-by: Paul Jakma \u003cpaul@quagga.net\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c0bedebfe9ca1a1ded02f1f481762dd41defa63e",
      "tree": "9c040f71733fb7509c03457bc146373e65e95536",
      "parents": [
        "3a7e83c2387885075c9ecf1912dd6c9399c6947a"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 03 10:00:43 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:19:33 2015 +0200"
      },
      "message": "build: add --enable-werror\n\nThis allows enabling -Werror in a consistent way.  Note that this is\ndifferent from just specifiying it in CFLAGS, since that would either\nbreak configure tests (if done on ./configure), or would override\nconfigure\u0027s CFLAGS (if done on make).\n\nUsing --enable-werror instead provides a new WERROR variable that is\nadditionally used during make with a consistent set of warning flags.\n\nThe tests/ directory is exempt.  (Rationale being, better to have more\ntests than pedantically complain about them.)\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "6769f43de9d595b935f2ebf1cae1428e1d1a3a5f",
      "tree": "564d37a5c20e0511189d54c245faf7dab955d9b6",
      "parents": [
        "a9eb9063071437f5cde3b78adf273b428c49d378"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Mar 04 07:18:24 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:19:06 2015 +0200"
      },
      "message": "vtysh: drop unused variables \u0026 RETSIGTYPE\n\nDrop unused return values in vtysh.  Also gets rid of the rather funny\nprototyping of signal setup in vtysh - which as a side effect makes it\nnot need AC_TYPE_SIGNAL in configure.ac anymore.  It wasn\u0027t used\nsensibly to begin with...\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a9eb9063071437f5cde3b78adf273b428c49d378",
      "tree": "9585ab44c0662bab068a7fa820c7713ffa4443a4",
      "parents": [
        "a91a3bac14976c04bf22b20c7e4bada787ec79b1"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Mar 04 07:07:01 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:19:04 2015 +0200"
      },
      "message": "vtysh: fix function prototypes\n\nThis makes a whole bunch of vtysh functions static, fixes prototypes for\na few more, and masks user_free() and user_write_config() (both unused.)\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a91a3bac14976c04bf22b20c7e4bada787ec79b1",
      "tree": "1c16b21c785b22c4f7c093e80dcf2c2af20243d1",
      "parents": [
        "3cf4053a9e832408fad33a8246ecbd189f23a956"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 03 09:06:51 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:19:01 2015 +0200"
      },
      "message": "vtysh: don\u0027t use \u0027\\0\u0027 as NULL\n\nfor some reason, the vty code was using \u0027\\0\u0027 in place of NULL.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "71f55f38cb3dd804176e7f382f52b75ddcd437de",
      "tree": "59f028f69361edb116ffeb862c6ead5a7cfb7d5d",
      "parents": [
        "fd8f6ebb4c6b9e5364b98d2b5fd345d1dcc08824"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 03 09:08:05 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:18:48 2015 +0200"
      },
      "message": "lib, vtysh: reduce unneccessary C extension usage\n\nWe\u0027re only supporting GCC, Clang and ICC; but there\u0027s no reason to use\nnonstandard C constructs if they don\u0027t actually provide any benefit.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "388f8857eb81ef75014060976776523a58a99389",
      "tree": "d425f43437cc937f4cd415d3170c8d6c8f6bf33c",
      "parents": [
        "21401f3215be26dcb0f787105f5907745498e966"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 03 08:55:54 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:18:01 2015 +0200"
      },
      "message": "*: add missing includes\n\nSome places, particularly headers, were spewing warnings since they\ndon\u0027t include neccessary other headers to get struct/enum definitions.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "237aac56960575f6ad2451ba2796d94bd5ae4b33",
      "tree": "f23c49fa32bc6b706bd5f37a9a3a45ce27adf15d",
      "parents": [
        "b6fa76098d127f5641a7dda0dee21f06ca167edb"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Jun 28 22:23:10 2014 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Feb 14 19:19:14 2015 +0100"
      },
      "message": "build: get rid of INCLUDES, use AM_CPPFLAGS\n\nINCLUDES in configure.ac was not used at all, and INCLUDES in\nMakefile.am is supposed to be AM_CPPFLAGS these days.\n\nReduces warnings spewed during bootstrap/autoreconf.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\nAcked-by: Greg Troxel \u003cgdt@ir.bbn.com\u003e\nAcked-by: Feng Lu \u003clu.feng@6wind.com\u003e\nAcked-by: Paul Jakma \u003cpaul@jakma.org\u003e\n"
    },
    {
      "commit": "60b815eb26c4e94e07524a508433e6f66a6d6183",
      "tree": "650f56393e782850844b59e618fc698aa678d5d0",
      "parents": [
        "bb7feff0af6c8519df45a4f40f06cdd819fe70d0"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:53:46 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:54:24 2015 +0100"
      },
      "message": "vtysh: add missing pimd define\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "4d330a2719fd684739a16c6aa3be6632bc3745a2",
      "tree": "27f4a016f60e238720ace66ea4f9b2ada3bbbfff",
      "parents": [
        "a089db4a0678cc1bbbf003bbda2561c03760badc"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Sep 18 12:15:55 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:00 2015 +0100"
      },
      "message": "pimd: Remove conflict marker.\n"
    },
    {
      "commit": "596470f2a410fb58109fd880f04362984ffd7c69",
      "tree": "d5eac65e626b688e44451efbf32f4a9518fa5a27",
      "parents": [
        "871dbcfede60a8d2d286728bcbd88f27c2035b87"
      ],
      "author": {
        "name": "Leonard Herve",
        "email": "leonard.herve@yahoo.fr",
        "time": "Tue Aug 11 15:45:26 2009 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:49 2015 +0100"
      },
      "message": "[pim] pim commands added to vtysh\n"
    },
    {
      "commit": "66d2ead7df2db9144605c973fcd80b88df33f81b",
      "tree": "77ebf094c8084f2a22c9c00fb53a88df798301b6",
      "parents": [
        "8e998b1eb5fea53f2a2eddd9f7f2b8ab004406f3"
      ],
      "author": {
        "name": "Sébastien Luttringer",
        "email": "seblu@seblu.net",
        "time": "Tue May 27 19:55:11 2014 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue May 27 19:55:11 2014 +0200"
      },
      "message": "vtysh: fix build against readline 6.3\n\nreadline 6.3 removes some old deprecated funnily-named types.  This\nupdates vtysh to use the new types so it builds again.\n\nReported-by: Joel Teichroeb \u003cklusark@archlinux.invalid\u003e\nReferences: https://bugs.archlinux.org/task/39495\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "cd40b329a2e4da882bcad0431c048c876bbeafbd",
      "tree": "cfbdec5a7559c6d3e56766797896a18809aa1746",
      "parents": [
        "e712d0e3667ffad8109ef8bce3ce01927ee95bb7"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Mon Sep 30 12:27:51 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 01 20:21:41 2014 +0200"
      },
      "message": "lib/command.c: rewrite command matching/parsing\n\nAdd support for keyword commands.\n\nIncludes new documentation for DEFUN() in lib/command.h, for preexisting\nfeatures as well as new keyword specification.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "67e7a2127c05a8c7dfddd7ffc6378edf6b666d55",
      "tree": "c2fa4ed97da789f0948736bd34281c0d6b252ee4",
      "parents": [
        "8ff202e2d3fa7ebbd6728fdd230f3ad1a20578cd"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Mon Mar 04 09:23:30 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jul 31 17:58:05 2013 +0200"
      },
      "message": "vtysh: don\u0027t append superflous spaces (BZ#750)\n\nrl_completion_append_character is reset to space every time the completion\nfunction is entered. So we would have to set it to \u0027\\0\u0027 every time\nnew_completion() is called. We can make this conditional and avoid using\nrl_pending_input.\n\nThis code path is most relevant when there are multiple completion\nmatches with the same prefix, e.g. in router bgp context: \"neighbor 1.2.3.4\npa\"\u003cssive|ssword\u003e would have been completed to \"neighbor 1.2.3.4 pass \"\ninstead of \"neighbor 1.2.3.4 pass\".\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "844ee10416c42debbfbc4d470eb2fe328e060977",
      "tree": "a0e49697ba2079ea271b5003c36455e242827051",
      "parents": [
        "0e4303d3173ecc264b3ec39a863174670bbe2900"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Sat Feb 23 19:38:37 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Feb 23 19:38:37 2013 +0100"
      },
      "message": "vtysh: fix false lib path matching in extract.pl.in\n\nThe if ($file \u003d~ /lib/) path matching logic is supposed to\nmatch Quagga\u0027s lib directory only but will match all path\nhaving lib in it such as /var/lib/jenkins/quagga/...\n\nFix by matching both lib and file: lib/keychain.c etc.\n\nSigned-off-by: Joakim Tjernlund \u003cJoakim.Tjernlund@transmode.se\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "5adc2528d386f037cc39e8029616295c3fec2db4",
      "tree": "2f54793f50a591d99a39d75fbf6bbd7dbe752dda",
      "parents": [
        "443b993777e3e86fceb988f647d1c5b57661a182"
      ],
      "author": {
        "name": "Avneesh Sachdev",
        "email": "avneesh@opensourcerouting.org",
        "time": "Tue Nov 13 22:48:59 2012 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Nov 30 21:41:17 2012 +0100"
      },
      "message": "zebra: add module to communicate routes to FPM\n\nEnhance zebra to send routes to the (optional) Forwarding Path Manager\ncomponent using the interface defined by fpm/fpm.h.\n\n  * configure.ac\n\n    - Add --enable-fpm flag.\n\n      The FPM-related code in zebra is activated only if the build is\n      configured with \u0027--enable-fpm\u0027.\n\n    - Add HAVE_NETLINK automake conditional.\n\n      This allows us to conditionally build netlink-dependent C code.\n\n  * zebra/{rib.h,zebra_rib.c}\n\n    - Add the \u0027fpm_q_entries\u0027 field to the rib_dest_t structure. This\n      allows dests to be placed on the fpm queue.\n\n    - Define a couple new rib_dest_t flags that hold FPM-related\n      state.\n\n    - Invoke the zfpm_trigger_update() function for a route_node\n      whenever the information to be sent to the FPM changes.\n\n    - rib_can_delete_dest(): Return FALSE if we have to update the FPM\n      about the given dest. This ensures that the dest is not deleted\n      even if there are no ribs hanging off of it.\n\n  * zebra/zebra_fpm.c\n\n    This file holds most of the code for interacting with the FPM.\n\n    - If quagga was configured with \u0027--enable-fpm\u0027, periodically try\n      to connect to the FPM.\n\n    - When the connection comes up, enqueue all relevent dests to the\n      FPM queue.\n\n    - When the FPM socket is readable, dequeue the next rib_dest_t\n      from the FPM queue, encode it in to a message and send the\n      message to the FPM.\n\n    - When the connection to the FPM goes down, remove all dests from\n      the FPM queue, and then start trying to connect to the FPM\n      again.\n\n    - Expose the following new operational commands:\n\n      show zebra fpm stats\n      clear zebra fpm stats\n\n  * zebra/zebra_fpm_netlink.c\n\n    - zfpm_netlink_encode_route(): Function to encode information\n      about a rib_dest_t in netlink format.\n\n  * zebra/zebra_fpm_private.h\n\n    Private header file for the zebra FPM module.\n\n  * zebra/zebra_fpm.h\n\n    Header file exported by zebra FPM module to the rest of zebra.\n\n  * zebra/debug.c\n\n    Add the \u0027debug zebra fpm\u0027 command.\n\n  * zebra/main.c\n\n    Initialize the zebra-FPM code on startup.\n\n  * zebra/misc_null.c\n\n    Add stub for zfpm_trigger_update().\n\n  * zebra/Makefile.am\n\n    - Include new file zebra_fpm.c in build.\n\n    - Include zebra_fpm_netlink.c in build if HAVE_NETLINK is defined.\n\n  * vtysh/Makefile.am\n\n    Include zebra_fpm.c in list of files that define cli commands.\n\nSigned-off-by: Avneesh Sachdev \u003cavneesh@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "837d16ccbe0fca413f8927da6a34b1e97ccada8a",
      "tree": "7aed5a517b619c03d11bf567f6a14cda6f8f5efe",
      "parents": [
        "655071f44aab42e89bcece3a93da456fdd0d913a"
      ],
      "author": {
        "name": "Balaji.G",
        "email": "balajig81@gmail.com",
        "time": "Wed Sep 26 14:09:10 2012 +0530"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Oct 25 10:15:59 2012 -0700"
      },
      "message": "*: use array_size() helper macro\n\nUse the array_size() helper macro.  Replaces several instances of local\nmacros with the same definition.\n\nReviewed-by: Scott Feldman \u003csfeldma@cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "ed6e297972318a0070ad4d973401fbc6e0def558",
      "tree": "cc544ec6f62a22cb2281e7665a39d469b377cc63",
      "parents": [
        "bb2315f2878da685fae094aece13409667d21f97"
      ],
      "author": {
        "name": "Serj Kalichev",
        "email": "serj.kalichev@gmail.com",
        "time": "Fri Sep 07 13:29:42 2012 +0400"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Sep 25 06:07:03 2012 +0200"
      },
      "message": "build: fix extract.pl for cross compilation\n\nextract.pl should invoke the C preprocessor for the target system, not the\nhost.\n\n* vtysh/extract.pl.in: use @CPP@ to get target cpp\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "08d7f6533ecc0f935a76918c462982004534864d",
      "tree": "0e67590a8a2aba551439c46bfa8b33d7fba4feb7",
      "parents": [
        "6b1e37f8537fa2a4560de32e83ca5089763e2d39"
      ],
      "author": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Tue May 22 22:29:17 2012 +0200"
      },
      "committer": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Mon Jun 25 19:03:23 2012 +0200"
      },
      "message": "build: use net-snmp-config to configure NetSNMP\n\nThe correct method to link to NetSNMP is to use net-snmp-config (which\nis like pkg-config). Explicit link to libcrypto is also dropped\n(NetSNMP libs are linked to libcrypto, no need to link Quagga to\nit). Moreover, @SNMP_INCLUDES@ is dropped because useless. Due to a\nbug in configure.ac, it was properly populated.\n"
    },
    {
      "commit": "9e7a548ce421660b0d22bfeb90c2b2b53742aac7",
      "tree": "4c962403808f98806781fb4ad15594152bc1effa",
      "parents": [
        "a47c5838e9f445ab887ad927706b11ccbb181364"
      ],
      "author": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Tue May 22 14:32:22 2012 +0200"
      },
      "committer": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Mon Jun 25 19:03:23 2012 +0200"
      },
      "message": "build: allow configure and build in a separate directory\n\nSome .h files in lib/ are autogenerated. The search path should\ninclude the build directory and the source directory. They usually\nmatch but sometimes, they may be different. For example:\n\n $ mkdir build\n $ cd build\n $ ../configure\n $ make\n"
    },
    {
      "commit": "feb6c53eacf630bf18d29e1994f65e567dbdd985",
      "tree": "4401c28048c69cdbced6be4ab1cd3bbd496b50af",
      "parents": [
        "831aeb9a87d9071829758caf11130aee5578f9c2"
      ],
      "author": {
        "name": "Juliusz Chroboczek",
        "email": "jch@pps.jussieu.fr",
        "time": "Tue Feb 07 04:58:49 2012 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "vtysh: Vtysh support for babeld.\n"
    },
    {
      "commit": "0b42c70840e16b048f62a38652123eb2cb900b65",
      "tree": "d0aec2e81624a7b0c43a0319515d257439f57e59",
      "parents": [
        "a19a3bf94740aebff6fdfc76f3d4b17c0013fae4"
      ],
      "author": {
        "name": "Ang Way Chuang",
        "email": "wcang79@gmail.com",
        "time": "Fri Jan 27 20:52:27 2012 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Mar 25 17:06:53 2012 +0100"
      },
      "message": "vtysh: fix regexp for install_element() in babeld\n"
    },
    {
      "commit": "05e54ee3df973194f2a00e3ea0b1da7bebc71fd6",
      "tree": "c07e2bbad0c55fe03eb2975b98f121de6ae55707",
      "parents": [
        "ad8d4802a3078de694539fa9bae12322fc82042f"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Dec 03 17:45:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:27:01 2011 +0400"
      },
      "message": "build: delete .cvsignore files\n"
    },
    {
      "commit": "566b36ebf903fd873c974ba34c19097d8fb48ce4",
      "tree": "8205c1387ca019b608e745049c6ebee0c32d6cff",
      "parents": [
        "ad61af67b548fa787d4c1da0024ba30f8c3b19c8"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Tue Sep 27 19:27:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 19:00:02 2011 +0400"
      },
      "message": "vtysh: [build] silence preprocessor errors in some cases\n\n* extract.pl.in: use configured CPPFLAGS in cpp invocation.\n"
    },
    {
      "commit": "3f4ab7f9e9ffaee7c448744f45d6e5e2176cce89",
      "tree": "150f78b31c7b0edae8b5ebfe4f6f8b4176a52dd5",
      "parents": [
        "80abd9fe37d8aa5d929686f3d4a717b72bfacb3c"
      ],
      "author": {
        "name": "Tomasz Pala",
        "email": "gotar@pld-linux.org",
        "time": "Wed Jun 24 22:23:11 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Jun 24 22:26:38 2009 +0100"
      },
      "message": "[vtysh] Save vtysh history to a file\n\nvtsh_main.c: save 1000 last lines of history to $HOME/.history_quagga (the\nfile must be created by hand first, this is intended behaviour)\n"
    },
    {
      "commit": "6e79f8bba438823d84b7464a9acc1e6fc9126a27",
      "tree": "5f9e004a78b0fddc59baf4e2666728837328fb52",
      "parents": [
        "2b35ae41c2c5d39801c943fa740c72fc15613141"
      ],
      "author": {
        "name": "Chris Caputo",
        "email": "ccaputo@alt.net",
        "time": "Tue Jun 23 05:55:57 2009 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 23 14:23:26 2009 +0100"
      },
      "message": "Fix vtysh based \"write term\" output.\n\n* vtysh/vtysh.c: \"end\" should be printed at the bottom, not the top.\n* vtysh/vtysh_config.c: PROTOCOL_NODE was not being handled, and thus was\n  being displayed at the top of a config, rather than in its rightful\n  place near the bottom.\n\nSigned-off-by: Chris Caputo \u003cccaputo@alt.net\u003e\n"
    },
    {
      "commit": "914131f80da7b9696d26b42ed92b2d93d4d8b3ab",
      "tree": "5a138ce8e6fe6b54176dbd5480a91b00aa7c0bac",
      "parents": [
        "2c4d48bc018c5bdca6faa953fbf6ff828becbc45"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Wed Jul 30 14:16:47 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:25 2009 +0100"
      },
      "message": "[vtysh] Add a --noerror option\n\nThere are times that configuration scripts want to run vtysh but\ndon\u0027t want to get error messages or failed exit status\n"
    },
    {
      "commit": "2c4d48bc018c5bdca6faa953fbf6ff828becbc45",
      "tree": "192ce26802145423ab7ede7d30cba375edf6a5b3",
      "parents": [
        "57fb974856b9ae143ca5642e279d181a45bbdd10"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Jul 28 15:04:56 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:24 2009 +0100"
      },
      "message": "[vtysh] Return non-zero exit code on error.\n\nIf passed a bad command, return non-zero exit code\n"
    },
    {
      "commit": "57fb974856b9ae143ca5642e279d181a45bbdd10",
      "tree": "5008d2b2fc2b061747d7afaf27c4f3f197f8ed93",
      "parents": [
        "0fbd62a17c53f1e2695c0f96ffb437cd079abacb"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Jul 28 12:19:04 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:24 2009 +0100"
      },
      "message": "[vtysh] Make vtysh more useable for scripting\n\nAdd environment variable (VTYSH_LOG) for logging.\nIf a command fails, exit with non-zero exit code and don\u0027t\ncontinue multipart commands.\n"
    },
    {
      "commit": "0fbd62a17c53f1e2695c0f96ffb437cd079abacb",
      "tree": "45749827cf0b738d909caf30dddd7953f924d4fb",
      "parents": [
        "80c375e72d7c3b9fe41b1ffec461ec5e1b57caa7"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 02 09:25:02 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:24 2009 +0100"
      },
      "message": "[vtysh] Force line buffered mode.\n\nVtysh is used in pipelines and it helps if the output starts right\naway instead of waiting for a whole buffer to fill.\n"
    },
    {
      "commit": "7fc626de5f618133ad2a478d13defa3a110b89ea",
      "tree": "432ff0e4672eabc2ec6b0dcffc22dcc0aee532c8",
      "parents": [
        "66e5cd87194ae6fdd51061a91b4698bc0a652f6b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Dec 01 11:10:34 2008 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 17:10:29 2009 +0100"
      },
      "message": "[cleanup] Make command nodes static\n\nThe cmd_nodes used to configure vty, can mostly be static so\n(basic data hiding 101).\n"
    },
    {
      "commit": "393deb9bd663361e6b110d579a8b1d4c22667068",
      "tree": "e93ebf2f57bf92ff7a9cd045764b3cdbb99a07e5",
      "parents": [
        "3453a7122c1d585ad789ed0f63deb90cc5e89fae"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Aug 18 14:13:29 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 17:07:49 2009 +0100"
      },
      "message": "[cleanup] Convert XMALLOC/memset to XCALLOC\n\nSimple conversion of XMALLOC/memset to XCALLOC\n"
    },
    {
      "commit": "41dc3488cf127a1e23333459a0c316ded67f7ff3",
      "tree": "cae4232896fe9c41864ce8388eb834fa0929e8e1",
      "parents": [
        "8c1bbc7205c5e2a0266e0bf9af42862cf730fbcf"
      ],
      "author": {
        "name": "Bartek Kania",
        "email": "mrbk@gnarf.org",
        "time": "Sat Oct 04 17:12:24 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sat Oct 04 17:12:24 2008 +0100"
      },
      "message": "[vtysh] Add commands from zebra_routemap.c to vtysh\n\n* Makefile.am: vtysh should also pull in commands from zebra_routemap.c\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "d68cbf9261869e532dfdd14dbb4122b3f3feb0d4",
      "tree": "5cc873e6a38a3db9ad5fb4dfe579624ff7693c13",
      "parents": [
        "3998bfd76620a676fbd77f19c5c6ea80a4cc88d2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Oct 21 18:35:27 2006 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 20:00:46 2008 +0100"
      },
      "message": "[administrivia] Git should ignore backup files and .loT files\n"
    },
    {
      "commit": "3998bfd76620a676fbd77f19c5c6ea80a4cc88d2",
      "tree": "66bf93340e55bb06b25544ef04afec3749269391",
      "parents": [
        "e5248434c0d287668be956a2bd52399d67b16c39"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Aug 19 14:13:43 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:57:22 2008 +0100"
      },
      "message": "[trivia] Remove ChangeLog files, as this data is now maintained in SCM\n"
    },
    {
      "commit": "46bc0e432e756fcb8fc4f703b47cd25b9fc7139c",
      "tree": "60100ca1e11c3c3600441d366b236f4a2de519ca",
      "parents": [
        "d664ae1182c29b74b409bc8594b7bd0575e91ce9"
      ],
      "author": {
        "name": "Paul P Komkoff Jr",
        "email": "i@stingr.net",
        "time": "Wed Aug 13 16:17:04 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:12 2008 +0100"
      },
      "message": "[build] Test for GNU-style PIE support in toolchain and enable\n\n2008-08-13 Paul P Komkoff Jr \u003ci@stingr.net\u003e\n\n\t* configure.ac: add a configure flag and autoconf macro, which will\n\t  determine if your toolchain supports PIE.\n\t* */Makefile.am: add corresponding CFLAGS and LDFLAGS into\n\t  appropriate places.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "3c5a0a4f8fe3811affff6d5e123379eedb083571",
      "tree": "79e285e0bd04c6ef0dfcde9cf0ce8fda8abecbe1",
      "parents": [
        "750e814693050bc97391eec618aad9db798ee5e8"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Feb 19 17:30:10 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:49:33 2008 +0100"
      },
      "message": "[administrivia] Add .gitignore files, based on .cvsignores.\n"
    },
    {
      "commit": "10895fd6c8f7383786f5a03cf99c0a796792ba1d",
      "tree": "803907d4ada28b762b0d24533cdd7ab7cec21ecb",
      "parents": [
        "320da874d75acb7d0cb69c531ee6255e63fe0336"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jul 03 19:34:48 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jul 03 19:34:48 2008 +0000"
      },
      "message": "[vtysh] small fix to previous CMD_AS_RANGE patch, and add missing command\n\n2008-07-03 MIYAJIMA Mitsuharu \u003cmiyajima.mitsuharu@anchor.jp\u003e\n\n\t* extract.pl.in: Fix as-range to match CPP output.\n\t* vtysh.c: Add missing router_bgp_view_cmd alias.\n"
    },
    {
      "commit": "320da874d75acb7d0cb69c531ee6255e63fe0336",
      "tree": "063cceec70b3d71ef65a957956088f06d6b5bbe5",
      "parents": [
        "b608d5b5ac469d47072aedd573e5d3475f4d9cf4"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jul 02 13:40:33 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jul 02 13:40:33 2008 +0000"
      },
      "message": "[vty] CMD_AS_RANGE accidently quoted and so not expanded in vty\n\n2008-07-02 MIYAJIMA Mitsuharu \u003cmiyajima.mitsuharu@anchor.jp\u003e\n\n\t* *.c: CMD_AS_RANGE was being used inside command strings, and thus\n\t  not being expanded, fix by dequoting.\n"
    },
    {
      "commit": "0b2aa3a0a8b095bdef1eddda117d173af75dede2",
      "tree": "29201cb2beec187409e842b4078ed8a8047d3f11",
      "parents": [
        "7593fddfa1558d086e3142ad96cf2790007f5d84"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Oct 14 22:32:21 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Oct 14 22:32:21 2007 +0000"
      },
      "message": "[bgpd] Merge AS4 support\n\n2007-10-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* NEWS: Note that MRT dumps are now version 2\n\t* (general) Merge in Juergen Kammer\u0027s AS4 patch.\n\n2007-09-27 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_aspath.c: (assegment_normalise) remove duplicates from\n\t  from sets.\n\t  (aspath_reconcile_as4) disregard a broken part of the RFC around\n\t  error handling in path reconciliation.\n\t* aspath_test.c: Test dupe-weeding from sets.\n\t  Test that reconciliation merges AS_PATH and AS4_PATH where\n\t  former is shorter than latter.\n\n2007-09-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* aspath_test.c: Test AS4_PATH reconcilation where length\n\t  of AS_PATH and AS4_PATH is same.\n\n2007-09-25 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_open.c: (peek_for_as4_capability) Fix to work.\n\t* bgp_packet.c: (bgp_open_receive) Fix sanity check of as4.\n\t* tests/bgp_capability_test.c: (general) Extend tests to validate\n\t  peek_for_as4_capability.\n\t  Add test of full OPEN Option block, with multiple capabilities,\n\t  both as a series of Option, and a single option.\n\t  Add some crap to beginning of stream, to prevent code depending\n\t  on getp \u003d\u003d 0.\n\n2007-09-18 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_open.c: (bgp_capability_as4) debug printf inline with others.\n\t  (peek_for_as4_capability) There\u0027s no need to signal failure, as\n\t  failure is better dealt with through full capability parser -\n\t  just return the AS4, simpler.\n\t* bgp_packet.c: (bgp_open_receive) Update to match\n\t  peek_for_as4_capability change.\n\t  Allow use of BGP_AS_TRANS by 2b speakers.\n\t  Use NOTIFY_OPEN_ERR rather than CEASE for OPEN parsing errors.\n\t  (bgp_capability_msg_parse) missing argument to debug print\n\t  (bgp_capability_receive) missing return values.\n\t* tests/bgp_capability_test.c: (parse_test) update for changes to\n\t  peek_for_as4_capability\n\n2007-07-25 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* Remove 2-byte size macros, just make existing macros take\n\t  argument to indicate which size to use.\n\t  Adjust all users - typically they want \u00271\u0027.\n\t* bgp_aspath.c: (aspath_has_as4) New, return 1 if there are any\n\t  as4\u0027s in a path.\n\t  (aspath_put) Return the number of bytes actually written, to\n\t  fix the bug Juergen noted: Splitting of segments will change\n\t  the number of bytes written from that already written to the\n\t  AS_PATH header.\n\t  (aspath_snmp_pathseg) Pass 2-byte flag to aspath_put. SNMP\n\t  is still defined as 2b.\n\t  (aspath_aggregate) fix latent bug.\n\t  (aspath_reconcile_as4) AS_PATH+NEW_AS_PATH reconciliation\n\t  function.\n\t  (aspath_key_make) Hash the AS_PATH string, rather than\n\t  just taking the addition of assegment ASes as the hash value,\n\t  hopefully sligthly more collision resistant.\n\t  (bgp_attr_munge_as4_attrs) Collide the NEW_ attributes\n\t  together with the OLD 2-byte forms, code Juergen\n\t  had in bgp_attr_parse but re-organised a bit.\n\t  (bgp_attr_parse) Bunch of code from Juergen moves\n\t  to previous function.\n\t  (bgp_packet_attribute) Compact significantly by\n\t  just /always/ using extended-length attr header.\n\t  Fix bug Juergen noted, by using aspath_put\u0027s\n\t  (new) returned size value for the attr header rather\n\t  than the (guesstimate) of aspath_size() - the two could\n\t  differ when aspath_put had to split large segments, unlikely\n\t  this bug was ever hit in the \u0027wild\u0027.\n\t  (bgp_dump_routes_attr) Always use extended-len and\n\t  use aspath_put return for header length. Output 4b ASN\n\t  for AS_PATH and AGGREGATOR.\n\t* bgp_ecommunity.c: (ecommunity_{hash_make,cmp}) fix\n\t  hash callback declarations to match prototypes.\n\t  (ecommunity_gettoken) Updated for ECOMMUNITY_ENCODE_AS4,\n\t  complete rewrite of Juergen\u0027s changes (no asdot support)\n\t* bgp_open.c: (bgp_capability_as4) New, does what it says\n\t  on the tin.\n\t  (peek_for_as4_capability) Rewritten to use streams and\n\t  bgp_capability_as4.\n\t* bgp_packet.c: (bgp_open_send) minor edit\n\t  checked (in the abstract at least) with Juergen.\n\t  Changes are to be more accepting, e.g, allow AS_TRANS on\n\t  a 2-byte session.\n\t* (general) Update all commands to use CMD_AS_RANGE.\n\t* bgp_vty.c: (bgp_clear) Fix return vals to use CMD_..\n\t  Remove stuff replicated by VTY_GET_LONG\n\t  (bgp_clear_vty) Return bgp_clear directly to vty.\n\t* tests/aspath_test.c: Exercise 32bit parsing. Test reconcile\n\t  function.\n\t* tests/ecommunity_test.c: New, test AS4 ecommunity changes,\n\t  positive test only at this time, error cases not tested yet.\n\n2007-07-25 Juergen Kammer \u003cj.kammer@eurodata.de\u003e\n\n\t* (general) AS4 support.\n\t* bgpd.h: as_t changes to 4-bytes.\n\t* bgp_aspath.h: Add BGP_AS4_MAX and BGP_AS_TRANS defines.\n\t* bgp_aspath.c: AS_VALUE_SIZE becomes 4-byte, AS16_VALUE_SIZE\n\t  added for 2-byte.\n\t  Add AS16 versions of length calc macros.\n\t  (aspath_count_numas) New, count number of ASes.\n\t  (aspath_has_as4) New, return 1 if there are any as4\u0027s in a\n\t  path.\n\t  (assegments_parse) Interpret assegment as 4 or 2 byte,\n\t  according to how the caller instructs us, with a new\n\t  argument.\n\t  (aspath_parse) Add use32bit argument to pass to\n\t  assegments_parse. Adjust all its callers to pass 1, unless\n\t  otherwise noted.\n\t  (assegment_data_put) Adjust to be able to write 2 or 4 byte\n\t  AS, according to new use32bit argument.\n\t  (aspath_put) Adjust to write 2 or 4.\n\t  (aspath_gettoken) Use a long for passed in asno.\n\t* bgp_attr.c: (attr_str) Add BGP_ATTR_AS4_PATH and\n\t  BGP_ATTR_AS4_AGGREGATOR.\n\t  (bgp_attr_aspath) Call aspath_parse with right 2/4 arg, as\n\t  determined by received-capability flag.\n\t  (bgp_attr_aspath_check) New, code previously in attr_aspath\n\t  but moved to new func so it can be run after NEW_AS_PATH\n\t  reconciliation.\n\t  (bgp_attr_as4_path) New, handle NEW_AS_PATH.\n\t  (bgp_attr_aggregator) Adjust to cope with 2/4 byte ASes.\n\t  (bgp_attr_as4_aggregator) New, read NEW_AGGREGATOR.\n\t  (bgp_attr_parse) Add handoffs to previous parsers for the two\n\t  new AS4 NEW_ attributes.\n\t  Various checks added for NEW/OLD reconciliation.\n\t  (bgp_packet_attribute) Support 2/4 for AS_PATH and\n\t  AGGREGATOR, detect when NEW_ attrs need to be sent.\n\t* bgp_debug.{c,h}: Add \u0027debug bgp as4\u0027.\n\t* bgp_dump.c: MRTv2 support, unconditionally enabled, which\n\t  supports AS4. Based on patches from Erik (RIPE?).\n\t* bgp_ecommunity.c: (ecommunity_ecom2str) ECOMMUNITY_ENCODE_AS4\n\t  support.\n\t* bgp_open.c: (peek_for_as4_capability) New, peek for AS4\n\t  capability prior to full capability parsing, so we know which\n\t  ASN to use for struct peer lookup.\n\t  (bgp_open_capability) Always send AS4 capability.\n\t* bgp_packet.c: (bgp_open_send) AS4 handling for AS field\n\t  (bgp_open_receive) Peek for AS4 capability first, and figure\n\t  out which AS to believe.\n\t* bgp_vty.c: (bgp_show_peer) Print AS4 cap\n\t* tests/aspath_test.c: Support asn32 changes, call aspath_parse\n\t  with 16 bit.\n\t* vtysh/extract.pl: AS4 compatibility for router bgp ASNUMBER\n\t* vtysh/extract.pl.in: AS4 compatibility for router bgp ASNUMBER\n\t* vtysh/vtysh.c: AS4 compatibility for router bgp ASNUMBER\n"
    },
    {
      "commit": "8454b05606c906cff891fa97b4395d1e2fdb8cde",
      "tree": "9908b74798beb00964ae590402d6b59771cb7466",
      "parents": [
        "b24970241aa19c780a00f0e9c865b98c239a27f2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jun 20 15:22:14 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jun 20 15:22:14 2007 +0000"
      },
      "message": "[vtysh] bug #371: vtysh forgets to print \u0027end\u0027 for write-terminal\n\n2007-06-20 Nicolas Deffayet \u003cnicolas@deffayet.com\u003e\n\n\t* vtysh.c: (vtysh_write_terminal) Write \u0027end\u0027 when done,\n\t  to be consistent with telnet vty, and expected by tools\n\t  like rancid.\n"
    },
    {
      "commit": "6f0e3f6e17687eb25b7b77c4fdc8324837d4700f",
      "tree": "8a94d9212060f0f2ee7cbd0079c2687eed7348dc",
      "parents": [
        "08d3d5b398ae81de7659509f159e814d1bbd4375"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 02:38:51 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 02:38:51 2007 +0000"
      },
      "message": "[autoconf] bugs 162,303,178: Fix \u0027present but can not be compiled\u0027 warnings\n\n2007-05-09 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: sys/conf.h depends on sys/param.h, at least on\n\t  FBSD 6.2.\n\t  (bug #363) Should check for in_pktinfo for IRDP\n\n2006-05-27 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: General cleanup of header and type checks, introducing\n\t  an internal define, QUAGGA_INCLUDES, to build up a list of\n\t  stuff to include so as to avoid \u0027present but cant be compiled\u0027\n\t  warnings.\n\t  Misc additional checks of things missing according to autoscan.\n\t  Add LIBM, for bgpd\u0027s use of libm, so as to avoid burdening\n\t  LIBS, and all the binaries, with libm linkage.\n\t  Remove the bad practice of using m4 changequote(), just\n\t  quote the []\u0027s in the case statements properly.\n\t  This should fix bugs 162, 303 and 178.\n\t* */*.{c,h}: Update all HAVE_* to the standard autoconf namespaced\n\t  HAVE_* defines. I.e. HAVE_SA_LEN -\u003e HAVE_STRUCT_SOCKADDR_SA_LEN,\n\t* bgpd/Makefile.am: Add LIBM to bgpd\u0027s LDADD, for pow().\n"
    },
    {
      "commit": "7514fb7739f74311830e9ddd1381d0d228224f61",
      "tree": "4d4b9a4fdfcea4cb6fa496085327f1aae9a9a380",
      "parents": [
        "5fa05099567bbe42aae87a9bef8fd630b3666a4d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed May 02 16:05:35 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed May 02 16:05:35 2007 +0000"
      },
      "message": "[zebra] Routemap support on received routes, with \u0027set src\u0027 command (linux)\n\n2007-05-01 David L Stevens \u003cdlstevens@us.ibm.com\u003e\n\n\t* (general) These changes collectively add route-map and\n\t  prefix-list support to zebra and fix a bug in \"show\n\t  route-map\" (with no argument).\n\t* doc/main.texi: added route-map, prefix-list, ip protocol\n\t  and set src documentation\n\t* lib/command.h: added PROTOCOL_NODE type\n\t* lib/log.c: (proto_name2num) new function, protocol name to\n\t  number translation.\n\t* lib/routemap.c: (vty_show_route_map) fixed \"show route-map\"\n\t  without route-map name\n\t* lib/routemap.h: added RMAP_ZEBRA type\n\t* lib/zebra.h: added proto_name2num() prototype\n\t* vtysh/extract.pl.in: added VTYSH_ZEBRA flag for route-map and\n\t  plist\n\t* vtysh/Makefile.am: added zebra_routemap.c\n\t* vtysh/vtysh.h: added VTYSH_ZEBRA flag to VTYSH_RMAP\n\t* zebra/connected.c: (connected_up_ipv4) added src preference argument\n\t  to rib_add_ipv4()\n\t* zebra/kernel_socket.c: (rtm_read) ditto\n\t* zebra/main.c: added prefix list initialization\n\t* zebra/Makefile.am: added zebra_routemap.c source file\n\t* zebra/rib.h: added generic address union \"g_addr\" and use in\n\t  existing places that had an explicit union.\n\t  Added \"src\" to struct nexthop.\n\t  Added preferred src arg to nexthop_ipv4_add and rib_add_ipv4.\n\t* zebra/rt_netlink.c: (netlink_routing_table) set preferred source on\n\t  netlink messages.\n\t  (netlink_route_change) ditto\n\t  (netlink_route_multipath) ditto.\n\t* zebra/rtread_getmsg.c: (handle_route_entry) added (NULL) src to\n\t  rib_add_ipv4() call.\n\t* zebra/rtread_proc.c: (proc_route_read) ditto\n\t* zebra/zebra_rib.c: (nexthop_ipv4_add) add src argument.\n\t  (nexthop_ipv4_ifindex_add) ditto\n\t  (rib_add_ipv4) ditto\n\t  (nexthop_active_check) Add route-map processing.\n\t* zebra/zebra_routemap.c: new file for zebra route-map commands.\n\t* zebra/zebra_vty.c: (ip_protocol_cmd) Apply route-map to protocol\n\t  (vty_show_ip_route_detail) added \"src\" printing\n\t  (vty_show_ip_route) ditto\n\t  (show_ip_protocol_cmd) new command, list routemaps.\n\t  (config_write_protocol) write out routemap protocl config.\n\t  (zebra_vty_init) Install the new routemap protocol commands.\n\t* zebra/zserv.c: (zread_ipv4_add) added (NULL) src arg\n\t  (zebra_init) init zebra route-maps.\n\t* zebra/zserv.h: add zebra_route_map_init\n"
    },
    {
      "commit": "c749b7227b331daaac23eb271698e4f60301619f",
      "tree": "8d1e3274f70e8c386dd3b5eea80302f5dc87393c",
      "parents": [
        "1ed72e0b3a643fa1be6f1efa904965798a575cd1"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sun Apr 29 03:53:31 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sun Apr 29 03:53:31 2007 +0000"
      },
      "message": "[logging] Add new \"log timestamp precision\" command for subsecond timestamps\n\n2007-04-28 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* vtysh.c: (vtysh_log_timestamp_precision,\n\t  no_vtysh_log_timestamp_precision) Implement new log timestamp\n\t  precision commands: send to all daemons.\n\t  (vtysh_init_vty) Install new log timestamp precision commands.\n"
    },
    {
      "commit": "876b8be0ab24721e8f94d47dde022563f76db992",
      "tree": "60afcf14974d39a081b64c71191038701e73a3f5",
      "parents": [
        "98954844ae56d142e96341d5dff959ec5518111e"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Oct 15 23:35:57 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Oct 15 23:35:57 2006 +0000"
      },
      "message": "[daemon startup] Add --dry-run/-C argument to daemons, to check config file syntax\n\n2006-10-04 Oliver Hookins \u003cohookins@gmail.com\u003e\n\n\t* bgpd/bgp_main.c: Add configuration check option, with\n\t\u0027-C\u0027 rather than \u0027-c\u0027 for consistency between daemons.\n\t* isisd/isis_main.c: ditto\n\t* ospf6d/ospf6_main.c: ditto\n\t* ospfd/ospf_main.c: ditto\n\t* ripngd/ripng_main.c: ditto\n\t* vtysh/vtysh_main.c: ditto\n\t* ripd/rip_main.c: Change the config check option to\n\t\u0027-C\u0027 and tidy up the code.\n\t* zebra/main.c: ditto\n\n2006-10-04 Stergiakis Alexandros \u003castergiakis@antcor.com\u003e\n\n\t* ripd/rip_main.c: This trivial patch introduces a new\n\t  command-line option \u0027-c\u0027, which instructs zebra/ripd\n\t  to check its configuration file for validity,\tprint\n\t  any error message, and then exit. This is useful when\n\t  the configuration file is edited by hand or otherwise,\n\t  and you simply want to validate it without any other\n\t  effect.\n\t* zebra/main.c: ditto\n"
    },
    {
      "commit": "f366ad31ae6bf7e2fb7271cf8eab6dee4af3baf9",
      "tree": "452f3071f7e1dc71d056bd476481bb008f6f435e",
      "parents": [
        "171eee31edbddbd8906447dc8725e0513227d013"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Thu Jul 27 18:01:41 2006 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Thu Jul 27 18:01:41 2006 +0000"
      },
      "message": "[vtysh] Never skip authentication, and add support for multiple -c commands\n\n2006-07-27 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* vtysh.1: Document new options -d and -E, and note that now multiple\n\t  -c options may be supplied, with embedded linefeed now supported.\n\t  In BUGS section, remove warning about vtysh causing a daemon\n\t  to freeze, since this has been fixed.\n\t* vtysh_main.c: (usage) Add new -d and -E options.  And note that\n\t  -c can be used multiple times, possibly with embedded linefeeds.\n\t  (longopts) Add new -d and -E options.\n\t  (main) Add new -d and -E options, and create a linked list to\n\t  support multiple -c options.  Do not call vtysh_connect_all until\n\t  after vtysh_read_config(config_default) and vtysh_auth have\n\t  succeeded.  This prevents the vtysh.conf file from configuring\n\t  any daemons, and it ensures that authentication has been passed\n\t  before we send any commands to any daemons.  Call vtysh_connect_all\n\t  with any daemon name supplied with -d.  If it is unable to connect\n\t  to any daemons, issue an error message and exit immediately.\n\t  When used in -c mode, call vtysh_execute(\"enable\") before\n\t  executing the commands in order to match interactive behavior.\n\t  And detect embedded linefeed chars in -c commands and break them up\n\t  appropriately.\n\t* vtysh.h: (vtysh_connect_all) Fix proto to reflect new\n\t  daemon_name argument, and that it now returns an integer -- the\n\t  number of daemons to which we were able to connect.\n\t* vtysh.c: (vtysh_connect_all) Add a new daemon_name argument.\n\t  If supplied, connect only to that daemon.  And return\n\t  the number of daemons to which we were able to connect.\n\t  (vtysh_prompt): Performance enhancement -- make struct utsname\n\t  static so we call uname to get the hostname only once.\n"
    },
    {
      "commit": "362b4031faf591afb06b3859952ac5b83723a986",
      "tree": "92a3002497bddd419333a8a21477140e7840a25d",
      "parents": [
        "369688c0c7a325e889e841afc2d59430baf079a2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 07:54:45 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 07:54:45 2006 +0000"
      },
      "message": "[vtysh] Add \"show memory\" to vtysh\n\n2006-05-24 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* vtysh.c: (general) Add \u0027show memory\u0027 command.\n"
    },
    {
      "commit": "4150f33ec17792c4258cb64de6128928ac104bf2",
      "tree": "164242e7896ffbd52205cce989afff56058b4e3e",
      "parents": [
        "dbf7d13d06a9ab01e39afa1545b30808d5653341"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue May 23 22:10:55 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue May 23 22:10:55 2006 +0000"
      },
      "message": "[vtysh] suppress output in \u0027show logging\u0027 for daemons not present\n\n2006-05-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* vtysh.c: (vtysh_show_logging_cmd) Suppress output for daemons\n\t  which are not running (Andrew Schorr).\n"
    },
    {
      "commit": "dbf7d13d06a9ab01e39afa1545b30808d5653341",
      "tree": "818fe7c02db9b0ebfe6ec07b00b8239bd703910e",
      "parents": [
        "9c37851eac4e75cda515761cae7c63309add30ea"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue May 23 22:10:01 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue May 23 22:10:01 2006 +0000"
      },
      "message": "[vtysh] Add \u0027show logging\u0027 command\n\n2006-05-17 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* vtysh.c: (general) Add \u0027show logging\u0027 command.\n"
    },
    {
      "commit": "44316fef4d93b3d94cf45663ce35797d32acce71",
      "tree": "8dcbcf2065b35f40ac3044efdb20b26cc27388bc",
      "parents": [
        "1a643f88b238147dc2cfbe137d9feae7e3f3546e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 11 01:38:25 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 11 01:38:25 2006 +0000"
      },
      "message": "2006-01-11 Erik Smit \u003czoiah@zoiah.net\u003e\n\n\t* vtysh.c: (vtysh_config_from_file) fix regression from\n\t  a previous cleanup, vtysh_client.flags and cmd-\u003edaemon are\n\t  bitwise flags, bitwise \u0026 was meant to be used. Fixes breakage\n\t  of integrated config file reading.\n"
    },
    {
      "commit": "53a6f932032a30625358414ae0f77790656ccaca",
      "tree": "aa5b33c8e58024ba68543ad8e2c3eaaa36984fd8",
      "parents": [
        "ca16218df74a43491e34a577db5023c89a7e79c8"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 15 06:50:53 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 15 06:50:53 2005 +0000"
      },
      "message": "\t* vtysh.c: Fix warning by casting rl_bind_key 2. argument correctly.\n\t* extract.pl.in: Fix warning - add isisd/topology to the includes.\n"
    },
    {
      "commit": "c0689394aef68bcafacd570e4c9163d478131e76",
      "tree": "c85182d1fb1d4d4e65f9d3a6f9ca42bc93fb79fc",
      "parents": [
        "57b5b7ed079c08dd7670aaef988ecfb650c6b1d2"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 25 12:00:58 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 25 12:00:58 2005 +0000"
      },
      "message": "\t* configure.ac, vtysh/Makefile.am: Only vtysh needs to be linked\n\t  against libreadline and friends.\n"
    },
    {
      "commit": "57b5b7ed079c08dd7670aaef988ecfb650c6b1d2",
      "tree": "fe2f62ddc88682bfca555e92742859345e16810b",
      "parents": [
        "25ffbdc1d72682dea1f5254d7c12e400215e0f1e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Aug 22 22:44:29 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Aug 22 22:44:29 2005 +0000"
      },
      "message": "2005-08-22 Hugo Santos \u003chsantos@av.it.pt\u003e\n\n\t* vtysh.c: Add support for BGP_IPV6M_NODE\n"
    },
    {
      "commit": "e37821068873e4256a5d44d6c81babe39befc8e7",
      "tree": "a86dd3f07162fef1d7e44fd4a935321e5f9d3724",
      "parents": [
        "b899408509440ee1415c895600c9a20e406cded0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 12 16:47:01 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 12 16:47:01 2005 +0000"
      },
      "message": "- Fix ChangeLog entry to properly refer to problem being Linux/ARM, not\n  ARM in general.\n"
    },
    {
      "commit": "b899408509440ee1415c895600c9a20e406cded0",
      "tree": "338dc4faffd3e0600531bc14872281bde184ebe3",
      "parents": [
        "850d39f3409fd9f942a9796dbe95b9e1f3c8ac5b"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 12 15:15:02 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jul 12 15:15:02 2005 +0000"
      },
      "message": "2005-07-12 Christian Hammers \u003cch@debian.org\u003e\n\n\t* vtysh_user.c: rename struct user to struct vtysh_user to avoid\n\t  clashes with sys/user.h on ARM.\n"
    },
    {
      "commit": "528bed4a9a997216ba95e3ae445efa79436cc551",
      "tree": "9fc01b13c038a322aad47364cda888f2ed098e20",
      "parents": [
        "b5d518fb32a796a0b376d79bdc5199c48d0a4052"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Apr 07 18:42:09 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Apr 07 18:42:09 2005 +0000"
      },
      "message": "\t* extract.pl.in: Ignore \"router zebra\".\n"
    },
    {
      "commit": "b5d518fb32a796a0b376d79bdc5199c48d0a4052",
      "tree": "5a89e9f489b22fe0d2188b60f82b4aeb23c89d43",
      "parents": [
        "1eb8ef2584833f18fb674e127d59cb5a7f771482"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Apr 07 17:07:39 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Apr 07 17:07:39 2005 +0000"
      },
      "message": "\t* Makefile.am: Remove rebuild4 target, it\u0027s not used any more by build\n\t  procedure. Define vtysh_cmd_FILES. Use EXTRA_DIST.\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": "7f22396bdc304c14f1c7ef0402ba9bd1450661b7",
      "tree": "45f231620cdec24c12b4b59be738dc144b4210d1",
      "parents": [
        "2d58228ecabb23b064e8a06e6241cf0d7e5ca785"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 28 15:38:16 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 28 15:38:16 2005 +0000"
      },
      "message": "\t* extract.pl.in: Use SNMP_INCLUDES to avoid warnings if compiling with\n\t  snmp support.\n"
    },
    {
      "commit": "55468c86040081320f557b696e509b76ddfd6c83",
      "tree": "3ee726f155f8776d4a220997681d14c0b09addd0",
      "parents": [
        "909a215508fd42473fcbe4f5292a59404e5473af"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Mar 14 20:19:01 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Mar 14 20:19:01 2005 +0000"
      },
      "message": "2005-03-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (global) update all c files to match the lib/vector.h rename of\n\t  (struct vector).active to max, and vector_max macro to\n\t  vector_active.\n\t* lib/vector.h: Rename to (struct vector).max to slightly less\n\t  confusing active, for the number of active slots, distinct from\n\t  allocated or active-and-not-empty. Rename vector_max to\n\t  vector_active for same reason.\n"
    },
    {
      "commit": "060d438cb1be51d2f7fb7954a8b7b1cd491f555f",
      "tree": "275208fe82700e56a929d1a35a7f16256b155362",
      "parents": [
        "220851816a699d9977702ea2b2501d4ede76e898"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Mar 09 12:41:14 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Mar 09 12:41:14 2005 +0000"
      },
      "message": "\t* vtysh_config.c: Move password commands to the AAA_NODE. It\n\t  quarantees that they will appear after SERVICE_NODE to make sure\n\t  that encrypted passwords will work (\"service password-encryption\"\n\t  command).\n\n\t[backport candidate]\n"
    },
    {
      "commit": "b1aa147d09b0e06992cdb39ed11b46df0a3b984f",
      "tree": "786c03a44c77ebedf98616053157fdbfa5d4135a",
      "parents": [
        "afb8b6055c5e54be762e220cf9b7b65a22266733"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Jan 28 21:11:46 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Jan 28 21:11:46 2005 +0000"
      },
      "message": "2005-01-28 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* vtysh.h: Remove obsolete VTYSH_INDEX_* defines.  Fix many prototypes\n\t  for functions with no arguments (must specify argument list as void).\n\t* vtysh.c: Enhance vtysh_client array to include the daemon\u0027s name\n\t  and bitmask and socket path (in addition to the fd).  This allows\n\t  us to use loop constructs for various operations that need to be\n\t  applied to all client daemons, and it facilitates better error\n\t  messages.  Also fix some prototypes with void argument lists.\n\t  (vclient_close) Issue a warning message indicating which daemon\u0027s\n\t  socket is being closed.\n\t  (vtysh_execute_func,vtysh_config_from_file) Use a for loop to\n\t  call vtysh_client_execute.\n\t  (vtysh_write_terminal,write_config_integrated) Use a for loop to\n\t  call vtysh_client_config.\n\t  (vtysh_write_memory) Use a for loop to call vtysh_client_execute.\n\t  (vtysh_show_daemons) Use a for loop.\n\t  (vtysh_connect) The struct vtysh_client is now statically initialized,\n\t  so do not initialize it here.\n\t  (vtysh_connect_all) Use a for loop to call vtysh_connect.  Set\n\t  ripd_client pointer for use in vtysh_exit_ripd_only.\n"
    },
    {
      "commit": "13bfca7a1059a73a836f4813170f296a82266211",
      "tree": "b22e29cb43472038769502685209badf3302e7dd",
      "parents": [
        "90b4214727b4e109a87bc99f9dfb4686e0c0a8b2"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 23 21:42:25 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 23 21:42:25 2005 +0000"
      },
      "message": "        * lib/command.[ch]: Make node_parent() function nonstatic. vtyh.c will\n          use it as well.\n        * vtysh/vtysh.c: Implement walkup in node tree for vtysh as it already\n          works in vty.\n"
    },
    {
      "commit": "90b4214727b4e109a87bc99f9dfb4686e0c0a8b2",
      "tree": "f9a9380af72953526994840b5593811bea62745a",
      "parents": [
        "31364274ddd1da6b77dd99e1d5d164b5c643732b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 23 19:24:46 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 23 19:24:46 2005 +0000"
      },
      "message": "\t* vtysh.conf.sample: Fix typo \"integrated-vtysh-conf\" -\u003e\n\t  \"integrated-vtysh-config\".\n"
    },
    {
      "commit": "87d683b071dc7abfb30b666960ec480e64e19ce4",
      "tree": "ec56b3ce34f6871c4b3687681df2b97aa38da57a",
      "parents": [
        "b854038bd03e6c54b46d35bf4e40d0f39e30dfde"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 16 23:31:54 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jan 16 23:31:54 2005 +0000"
      },
      "message": "\t* command.[ch], vty.c: cmd_execute_command() function must not attempt\n\t  to walk up in the node tree if called from vtysh. Different daemons\n\t  might have commands with same syntax in different nodes (for example\n\t  \"router-id x.x.x.x\" commands in zebra/ospfd/ospf6d daemons).\n\n\t* vtysh.c: Reflect changes in lib. cmd_execute_command() should know\n\t  now that it\u0027s called from vtysh and must not attempt to walk up in\n\t  the node tree.\n\n\t[pullup candidate]\n"
    },
    {
      "commit": "dfbb91241850117729f9ebcc37207260dc50146b",
      "tree": "ec4169cf07a06b95b0011380d87d018232e2e929",
      "parents": [
        "1d8062884fb47475c91fdcade912281ef0ac81b3"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 22 11:53:09 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 22 11:53:09 2004 +0000"
      },
      "message": "More cosmetical vtysh fixes.\n"
    },
    {
      "commit": "9a30ee5606fce86ac266839dccb1169af6e73d08",
      "tree": "a4ba86019ebc144b8263c0179bdee89c24f60c15",
      "parents": [
        "c57c5e3bb29cf0f3aced157b6bdfef1825f70fd6"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 22 09:27:42 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 22 09:27:42 2004 +0000"
      },
      "message": "No delimiter between \"ip forwarding\" and \"ipv6 forwarding\".\n"
    },
    {
      "commit": "09c3adb9e9f41d4698025e3a70cfa71e54e003e4",
      "tree": "72a422fbf223debf94bf3feeb5a0ccaefc5fe1c6",
      "parents": [
        "ad572396fc8306cee92af37d1099e317856a99d0"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Dec 09 15:15:03 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Dec 09 15:15:03 2004 +0000"
      },
      "message": "2004-12-09 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* vtysh.c: (vtysh_connect) No reason to call geteuid and getegid,\n\t  the results were never used.\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": "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": "85fb1e6dc3c133860d8404c3b233acade91acb05",
      "tree": "6c73f029567460d920c4ddabb30292c5838c8faa",
      "parents": [
        "7966b97ce3ffd5c02d70ee352553a1fb099c52a9"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Nov 11 14:03:39 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Thu Nov 11 14:03:39 2004 +0000"
      },
      "message": "2004-11-11 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* vtysh.c: (vtysh_client_execute) Fix flaws in detecting trailing\n\t  \u0027\\0\u0027 chars and command return code.\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": "f2799e69514f4e63598e77b823fb9a67f5dc3c61",
      "tree": "7b2d7595beb561912a096afe7ffaa40e4c595350",
      "parents": [
        "6bd7c6aec24957ccf9583d17320205786b5dcc7b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Oct 28 17:43:11 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Oct 28 17:43:11 2004 +0000"
      },
      "message": "\"show running-daemons\" -\u003e \"show daemons\".\n"
    },
    {
      "commit": "97b7db2d02863c718c53faf02d13a92260035ea8",
      "tree": "0022eb8ebf2612d6fe8f51b3261089182ecb420a",
      "parents": [
        "6590f2c3dc10acaa04cea3206fd00445e0a6145c"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 20 19:07:48 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 20 19:07:48 2004 +0000"
      },
      "message": "Don\u0027t popen pager if command is \"exit\". Fixes \"vtysh screws up my terminal\nif I exit\" issue.\n"
    },
    {
      "commit": "f4ad4dbea2cdda5d763143b221ddeaa92fe06840",
      "tree": "de87bf62b5bdf5a3443541e17f54bc92c5369e6c",
      "parents": [
        "b71f00f23b0b39e50161c9f3d672cf242dd8202e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 13 14:52:22 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Oct 13 14:52:22 2004 +0000"
      },
      "message": "- fix date in changelog of my last commit..\n"
    }
  ],
  "next": "43fb1352a1cc9ef05ac7124d18099ed6f8c3986a"
}
