)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "0921d48e8eae1c417a06b8470108ae46584375b5",
      "tree": "f5f1007cff529cdc2d641774d8c3e2a020822451",
      "parents": [
        "c8a440eca0645a8a78140f83907acce25a3c67c6"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 11 18:21:55 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Oct 11 18:21:55 2004 +0000"
      },
      "message": "2004-09-17 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* vtysh.c: (vtysh_client_execute) fix the sync fix. The 4th and\n\t  final sync byte is not ASCII NULL, it\u0027s actually a status integer,\n\t  and only ASCII NULL if CMD_SUCCESS is returned by daemon.\n\t  Fix pointed out by Hasso.\n"
    },
    {
      "commit": "5862ff529effd26414827a6692c1e841ebb189a0",
      "tree": "01ea1296de8aa787e00c199cdc054e76c895ecf3",
      "parents": [
        "f90a5f6f1a6c1c1a4199a87a6202fe3edc9f7520"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 11 13:20:40 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 11 13:20:40 2004 +0000"
      },
      "message": "Fix warnings here.\n"
    },
    {
      "commit": "dda095222f30c8bee6edc46f2c1babb66f9e699d",
      "tree": "25b33dc3ed6fc992f5cf8b8e055da1ddc8d2b747",
      "parents": [
        "ea8e9d972e8775f3e1c4e03fbacb18a42e8c4177"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Oct 07 21:40:25 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Oct 07 21:40:25 2004 +0000"
      },
      "message": "Vtysh compiles cleanly as well.\n"
    },
    {
      "commit": "e7168df4eff0d377621c45deb32cfcfa72e0dd83",
      "tree": "86c4017761ffd8cfdbc16223915a9f537844c4f2",
      "parents": [
        "eef1fe11b89c5ec3c035ff6e4a9acfbc5780b539"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 20:11:32 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 20:11:32 2004 +0000"
      },
      "message": "Big vtysh cleanup. See changelogs for details.\n"
    },
    {
      "commit": "4289546d79a9d5be800c1c0ec31e82cc8a92a04b",
      "tree": "2ecd78f14dae2e2f1e174c628976cfa939e9d6e5",
      "parents": [
        "f7c43dcbbc44e2098728f9849d152d9b6df97a5d"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 16:25:07 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 16:25:07 2004 +0000"
      },
      "message": "Compiler warning fix.\n"
    },
    {
      "commit": "2852de1c90d5bc72493bcdfb8b6df8b24ff2e9d4",
      "tree": "711dd1a88220fce72772546af3164362c93f0047",
      "parents": [
        "90f0c88123d2e65d8853230a108964b37138e2b0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Sep 17 06:52:16 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Sep 17 06:52:16 2004 +0000"
      },
      "message": "2004-09-17 Paul Jakma \u003cpaul@dishone.st\u003e\n\n       * vtysh.c: (vtysh_client_execute) trailling NULLs can be arbitrarily\n         split across reads, dont get confused by this and block forever.\n"
    },
    {
      "commit": "5a9c53ded34d688dd4362d0664ee3cdcb737e7db",
      "tree": "6ee96a36abd45ebb05efbbd8275f572a8eeda180",
      "parents": [
        "34553cc3c996bb530652663810664935f40f5560"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Aug 27 14:23:28 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Aug 27 14:23:28 2004 +0000"
      },
      "message": "Brown paperbag, please. Don\u0027t segfault if VTYSH_PAGER isn\u0027t defined.\n"
    },
    {
      "commit": "34553cc3c996bb530652663810664935f40f5560",
      "tree": "618a9f5f8a1c5a70ff20946e3d2adb0897bcd1e9",
      "parents": [
        "d7d93997315472f2f1f40012795e31604db95491"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Aug 27 13:56:39 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Aug 27 13:56:39 2004 +0000"
      },
      "message": "Make \"terminal length \u003c0-512\u003e\" command work in vtysh.\n"
    },
    {
      "commit": "67e29abc5800ec77a3ee36add6adfe5fa8c38351",
      "tree": "73a93502607cac89fa3634997832b0068774fe53",
      "parents": [
        "9a0962651b0837b5678da0ef88715ec438f9dcb5"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 26 22:21:31 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 26 22:21:31 2004 +0000"
      },
      "message": "More vtysh fixes. Specifying configuration from command line works now.\n"
    },
    {
      "commit": "95e735b54408177a8a6659da342f17d487dfeb2c",
      "tree": "579aa332966e9c6d5b580d46ec40ab8fa3e158f0",
      "parents": [
        "c89f64948d629a80d2ca87796a922172514e448f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 26 13:08:30 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 26 13:08:30 2004 +0000"
      },
      "message": "Vtysh cleanup part 2. No any functional changes yet except VTYSH_INTERFACE.\n"
    },
    {
      "commit": "b094d2603158f9d514404941c9fad04dd9b7d42c",
      "tree": "9920c2f047a0f510221dda2c1eb9b9f2b2303aca",
      "parents": [
        "ccb59b11047c71430eb55ed58eda94865bab20c8"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Aug 25 12:22:00 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Aug 25 12:22:00 2004 +0000"
      },
      "message": "Cleaning up whitespace mess mostly caused by my patches. Bigger\nreorganization of this spagetti will follow soon.\n"
    },
    {
      "commit": "2a56df976d3fb0800921ef561c346b85e7acb6be",
      "tree": "889f9b8af0cbb82cd81d625c8ea683a5aecddfad",
      "parents": [
        "8842468c7a1c13c9dde1e26714eb2b2c56ec053b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 09 23:16:40 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 09 23:16:40 2004 +0000"
      },
      "message": "Workaround for Bugzilla #58.\n"
    },
    {
      "commit": "fa2b17e39499a77f41a719035a588b7fb63cec63",
      "tree": "3356703917aaa8359e0106ae3c2340ee6eea0e1f",
      "parents": [
        "caa6f8ac7d07f8cd3269255e6dce6d248f74af62"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Mar 04 17:45:00 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Mar 04 17:45:00 2004 +0000"
      },
      "message": "Many warning fixes from PC Drew ([quagga-dev 940]) and removing using PAGER\nfrom vtysh ([quagga-dev 932]).\n"
    },
    {
      "commit": "c25e458a4de6b3fc9089fbc21b0ef4a6ba8e6018",
      "tree": "40cee762b8d411d8c0c9d19851e2f804811256ad",
      "parents": [
        "c32e1b5788b996f6c5a9521c1fc79f5640e10d99"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Dec 23 10:39:08 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Dec 23 10:39:08 2003 +0000"
      },
      "message": "*** empty log message ***\n"
    },
    {
      "commit": "aa593d5e2638566ead1e69381e60639550991ff2",
      "tree": "c865f642c1029fa47b8fc6cc86302468b9b2aef4",
      "parents": [
        "47ce02a8f12134a6ba515fbf1d2b9276e39d4c06"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 20:15:53 2003 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Mon Dec 22 20:15:53 2003 +0000"
      },
      "message": "2003-12-22 Christian Hammers \u003cch@lathspell.de\u003e\n\n        * configure.ac (and everywhere a regular file is opened for\n          writing): use file permissions from configure rather than\n          compiled-in umask.\n"
    },
    {
      "commit": "4eeccf18f357c87e5a973cac8d8d84d20c2f7890",
      "tree": "29863e21b749fce4589031d8a2d3cc36847d9955",
      "parents": [
        "b0a053be42e5ab00b1453d3b86b8f3a187cc555f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Jun 25 10:49:55 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Jun 25 10:49:55 2003 +0000"
      },
      "message": "Add IPv6 ping and traceroute.\n"
    },
    {
      "commit": "4a6e22577a49c20b4e2265f174d56b4a9b633090",
      "tree": "f9dba727f2a553a3dc642ad561afece7edb57d08",
      "parents": [
        "647e4f1fb76f01695f29a877e61d2e4a33cfefee"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 11:51:29 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 11:51:29 2003 +0000"
      },
      "message": "Just \"write\" command without any parameters writes conf to file.\n"
    },
    {
      "commit": "111bd7a54a786b583e0ee7fc734ec0b3e0c382f0",
      "tree": "004c79e333eeb5a8841e5cd10c3ceef9a432bd2c",
      "parents": [
        "3d3de8c4a4b3642d94d5e23cc6670e04e0e5091c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 10:43:59 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 10:43:59 2003 +0000"
      },
      "message": "slight addition to hasso\u0027s previous no_interface patch.\n"
    },
    {
      "commit": "32d2463ca26529ad4700af6d5748f927e1305694",
      "tree": "9f8dc5d94e1fb11a86585864e45401f552ecf2dd",
      "parents": [
        "7515cffe5e11fdfbc437c02b7af8b0f7b4d36fce"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 09:25:20 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 09:25:20 2003 +0000"
      },
      "message": "From: Hasso Tepper \u003chasso@estpak.ee\u003e\n\nAdd the \u0027no interface\u0027 command to all the daemons and vtysh. now it\u0027s\npossible to delete interface from routeing daemons as well only if it\ndoesn\u0027t exist in os.\n\nhttp://hasso.linux.ee/zebra/ht-no_interface_fix.patch\n"
    },
    {
      "commit": "7515cffe5e11fdfbc437c02b7af8b0f7b4d36fce",
      "tree": "9acbaf0a01080920f25cf1107465a7f79ee7e2f8",
      "parents": [
        "1921e6f8965701040fe1b4f27619b2d7f3fec254"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 09:21:46 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 09:21:46 2003 +0000"
      },
      "message": "Undo Hasso last patch, about to apply a slightly updated patch.\n"
    },
    {
      "commit": "68f43848fa0f8ac16c768bafb8891495dcf232ae",
      "tree": "8121fe0ee7c19001dd3c37c798e8368681a59493",
      "parents": [
        "8d6b00e4f34dfb6f627b49713bf80b0745b50abc"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 06:58:44 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 23 06:58:44 2003 +0000"
      },
      "message": "From: Hasso Tepper \u003chasso@estpak.ee\u003e\n\nhttp://hasso.linux.ee/zebra/ht-no_interface-23052003.patch\n\nAdd the \u0027no interface\u0027 command to all the daemons and vtysh.\n"
    },
    {
      "commit": "3dec2de3eecd475db69ec3746a631ec1591d08a5",
      "tree": "89fdeae9d2c70d989b5322bd8a8af2dff2b0bae8",
      "parents": [
        "a304c1a4121c27ef807ffbea979f1460d4c5e0ee"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 21 19:09:31 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed May 21 19:09:31 2003 +0000"
      },
      "message": "From: Paul Jakma \u003cpaulj@alphyra.ie\u003e\nSubject: [zebra 19125] vtysh bogus perms check\n\nvtysh checks that the zebra.vty socket uid is \u003d\u003d to its own euid, this is\nbogus - let the kernel decide whether permissions match, vtysh shouldnt\ntry second guess. (this becomes noticeable when neither zebra nor vtysh\nare run as root :) )\n"
    },
    {
      "commit": "a805cc2d7030694ae2ae38403452ac3b90a40cff",
      "tree": "74a32b6e767657d88239a30d26c5a9fcbb64dd37",
      "parents": [
        "6cbbc3cc9fc3127c6ad45e73755b4f0c3afff31a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 01 14:29:48 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 01 14:29:48 2003 +0000"
      },
      "message": "From: Sergiy Vyshnevetskiy \u003cserg@vostok.net\u003e\nSubject: [zebra 18941] Re: [PATCH] misc patch\n\nProgram shouldn\u0027t terminate on pager execution failure. We can also use\n\"PAGER\" environment variable - it\u0027s very common.\n"
    },
    {
      "commit": "73ffb25bec41d729b0dac34d17b6ccd4aa25803b",
      "tree": "69906ad70c8dd767c51677480f8034a3be3f5edd",
      "parents": [
        "147193a28a19f2f98545b14ad38935423415f53e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Apr 19 15:49:49 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Apr 19 15:49:49 2003 +0000"
      },
      "message": "Hasso Tepper\nhttp://hasso.linux.ee/zebra/ht-routemap-18042003_5.patch\nTrivial fixes to sync daemon\u0027s route-map commands to have same syntax. Fixes\na lot of errors with \"match ...\" and \"set ...\" commands when using vtysh.\n"
    },
    {
      "commit": "dfc0d9ba97c82cf47e34793bd7d6a89815940a36",
      "tree": "0f0896feb933d226ef0d7f0f5e941979d36e040f",
      "parents": [
        "f645789b7a97ab75efbd68a11e2e0f7378e57639"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Apr 18 23:55:29 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Apr 18 23:55:29 2003 +0000"
      },
      "message": "Fix up vtysh.c compile warnings\n\n(following from initial patches by Amir \u0026 Sergey Vyshnevetskiy ([zebra\n18689])\n"
    },
    {
      "commit": "fe067785fafad28131ab81de5a75c7372b6ab69f",
      "tree": "ba13229cb4cb7b15be1e3c37d4803d74bfc6d9d3",
      "parents": [
        "05b3ff565a4285136db9563357b8f64892928355"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Apr 07 16:10:05 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Apr 07 16:10:05 2003 +0000"
      },
      "message": "Change vty socket path defines to the global defines\n"
    },
    {
      "commit": "464dc8da176ee2252a246410513e10fd8cff4ac6",
      "tree": "3919089ef3b13b88c6bb1c15bcffd961fb10208b",
      "parents": [
        "97e1c4dcfa9a79e7294462778c2b1e5c2f3183b9"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Mar 28 02:25:45 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Mar 28 02:25:45 2003 +0000"
      },
      "message": "Add \u0027no description\u0027 command\n"
    },
    {
      "commit": "6898008484a562ff5bae178a6fb0bd885fe8b1e5",
      "tree": "27797ca6532ca0ef85f538ac8f3070639e579229",
      "parents": [
        "1ef74ef70bdab672458c4d1e4cea24197066c0af"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Mar 25 05:07:42 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Mar 25 05:07:42 2003 +0000"
      },
      "message": "2003-03-25 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* sync to latest zebra CVS\n\t* spec file: updated and added define for ospf-api/client\n\nNB: OSPF-API has been broken by the zebra.org changes, which\nhas added struct ospf * as a new arg to many functions\n"
    },
    {
      "commit": "338a99166f59e474c522d2eb7417b0de57f598d2",
      "tree": "77bfebd0360bf0d35c534d3d84aaabde22a98d37",
      "parents": [
        "448ed4a23fb37009e30f79bf179cc1f65a9c67d1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Mar 01 15:44:10 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Mar 01 15:44:10 2003 +0000"
      },
      "message": "Add the interface node \u0027description\u0027 command.\n"
    },
    {
      "commit": "5087df5683a810ee919d5e957cd210223b5f31e7",
      "tree": "c0f216eaac95a6e6fc37664a5ed934461d9fb305",
      "parents": [
        "570f7598ebf2e2107ac9976d4d9def22072c5b02"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jan 25 06:56:09 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Jan 25 06:56:09 2003 +0000"
      },
      "message": "Small fix (free integrate_sav) and addition of an ssh command.\n"
    },
    {
      "commit": "e3d29b5f9e68447a09dec7215f9ad75d3cc17a0a",
      "tree": "a3e785d2bc78f45c51f5413409bf9eb6a560ed63",
      "parents": [
        "4fc4e7ab47fef3295d0ae40e064fc99478c24e23"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 23 18:05:42 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 23 18:05:42 2003 +0000"
      },
      "message": "Replace _SC_PAGESIZE with the far more portable getpagesize().\n(needed, eg, for Darwin).\n Kris Foster \u003ckris@krweb.net\u003e\n"
    },
    {
      "commit": "4fc01e67edf1763c9812438effe1d4b1c8b9897b",
      "tree": "c1347fa46b21e93c7705707cec1dd623fe614547",
      "parents": [
        "718e3744195351130f4ce7dbe0613f4b3e23df93"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:49:00 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:49:00 2002 +0000"
      },
      "message": "Added vtysh patch to allow \u0027write file\u0027 command to write either\nper-daemon and/or integrated config file\n"
    },
    {
      "commit": "718e3744195351130f4ce7dbe0613f4b3e23df93",
      "tree": "bac2ad39971cd43f31241ef123bd4e470f695ac9",
      "parents": [],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "message": "Initial revision\n"
    }
  ]
}
