)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "e42f5a37462b22c49235f04a3b582b97c1deb84c",
      "tree": "830ca9ab54224b7aac003c11b9c209472ddff860",
      "parents": [
        "69f1fc22f70b4baed62582cbaaefaf374665791c"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Aug 28 17:04:33 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Aug 28 17:04:33 2004 +0000"
      },
      "message": "Port ospf6d to sigevent and rename signal handling functions in vtysh not to\nconflict the ones in lib/sigevent.c. Fixes compiling with --disable-shared.\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": "4991f6ca305a325d1ec7a38eeb2a7cf8cf6d7f2d",
      "tree": "d45f34157f2b7df39427683b4c42bb5739b22939",
      "parents": [
        "128d31d34220192c27c2d1d8eff91e0471c5237c"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Apr 06 11:36:17 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Apr 06 11:36:17 2004 +0000"
      },
      "message": "Vtysh fixes:\n* replace -e with -c\n* don\u0027t save command in history if last line is the same one\n* doc/help fixes\n"
    },
    {
      "commit": "5e4fa1646cafe9e6f8dd78501bea0d2fe1eafdb4",
      "tree": "6f2aa13346f91f0924ada9cb9696589264a90552",
      "parents": [
        "253e9336982599957514ad87610e8cd58822fc7a"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Mar 16 14:38:36 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Mar 16 14:38:36 2004 +0000"
      },
      "message": "2004-03-16 David Young \u003cdyoung@pobox.com\u003e\n\n\t* (many) reference \u003clib/version.h\u003e rather than \"version.h\",\n\tbecause version.h is a generated file and not present in the\n\tsource tree when using objdir builds.\n\n(committed by gdt)\nworks fine with normal builds; didn\u0027t try objdir\n"
    },
    {
      "commit": "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"
    }
  ]
}
