)]}'
{
  "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": "b51146856e660bcec723f535c17dc1c38b2f6efc",
      "tree": "8f501c98b3714e1d5ed381bd4d82fece4106aa8c",
      "parents": [
        "2f658673fa477b58ed38caf94c156c95948de382"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Fri Nov 25 18:51:48 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:26:28 2011 +0400"
      },
      "message": "quagga: option \"-z\" (\"--socket \u003cpath\u003e\") added\n\nAll daemons modified to support custom path to zserv\nsocket.\n\nlib: generalize a zclient connection\n\nzclient_socket_connect added. zclient_socket and\nzclient_socket_un were hidden under static expression.\n\"zclient_serv_path_set\" modified.\n"
    },
    {
      "commit": "065de90380c88d9fcc116627f714bed9984c2723",
      "tree": "79061a2699e0dc3e87c218b3b57c2f0577d5a69a",
      "parents": [
        "5bd5881838c22e075c3d0c245a8952a55e9dca38"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Fri Aug 07 11:13:49 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Aug 13 10:21:13 2009 +0100"
      },
      "message": "all: check return value from daemon() call\n\n* */*main.c: (main) Current versions of Gcc warn if the return value for\n  daemon() is not checked.  So add a simple test and exit on failure.\n\n"
    },
    {
      "commit": "c77cffdd69bf08ed54e390a3485cbd5024836a9a",
      "tree": "42225904923a4b3457edd13a0eb84f0ea8581441",
      "parents": [
        "c546afaed229106c2fcb54b57906414b9503dcc9"
      ],
      "author": {
        "name": "Jeremy Jackson",
        "email": "jerj@coplanar.net",
        "time": "Sun Dec 28 12:57:42 2008 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 22:11:41 2009 +0100"
      },
      "message": "[daemons/cleanup] Remove disabled log_mode argument support.\n\n* */*main.c: Seems that the actual code was removed previously, but the\n  argument processing code remained.\n"
    },
    {
      "commit": "0d6b2ee249e9efba30da3236c413bf03c7b27ed9",
      "tree": "4d9320f2c34f0c127b58b92f59e2c2afd2d5818f",
      "parents": [
        "768a27ea7ba25257c79689af83ab37945dc1cc3c"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 29 18:29:16 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 29 18:29:16 2008 +0000"
      },
      "message": "[daemons] Sanity check port number arguments before use\n\n2008-05-29 Martin Nagy \u003cmnagy@redhat.com\u003e\n\n\t* */*main.c: Sanity check port numbers before using.\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": "e8e1946edf6ba87ef53832cdceccc39d7f0c3f26",
      "tree": "fcdaf92bf4129a8a58825bd21ae841a6b3b2bda8",
      "parents": [
        "779adb0147cfff1a831b08853976342ad2110fcd"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 19 20:16:55 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 19 20:16:55 2006 +0000"
      },
      "message": "[compiler] miscellaneous trivial compiler warning fixes\n\n2006-01-19 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n        * (general) various miscellaneous compiler warning fixes.\n          Remove redundant break statements from switch clauses\n          which return.\n          return from main, not exit, cause it annoys SOS.\n          Remove stray semi-colons which cause empty-statement\n          warnings.\n\t* zebra/main.c: (sighup) remove private declaration of external\n\t  function.\n"
    },
    {
      "commit": "88d6cf37f66c3b7d1abdaa20875418192d5219b8",
      "tree": "4843e77f622d3bf9e5df5c75de381e06e3126d6b",
      "parents": [
        "92779fe51dd061ab1502a9acdc0cf5241748e0c7"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Oct 29 12:50:09 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Oct 29 12:50:09 2005 +0000"
      },
      "message": "2005-10-29 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) RFC3137 stub-router support\n\t* ospfd.h: Add OSPF_OUTPUT_COST_INFINITE define.\n\t  (struct ospf_master) Add a OSPF_MASTER_SHUTDOWN flag for\n\t  options, to allow shutdown to distinguish between complete\n\t  shutdown and shutdown of a subset of ospf instances.\n\t  (struct ospf)\n\t  Add stub_router_{startup,shutdown_}time, configuration of startup\n\t  and shutdown time for stub-router.\n\t  Add t_graceful_shutdown struct thread, timer for graceful\n\t  shutdown, if needed.\n\t  (struct ospf_area) Add stub_router_state - run time state of\n\t  stub-router for an area. Add flags for ADMIN, IS and WAS\n\t  states.\n\t  Add t_stub_router, timer thread to resend router-lsa for an\n\t  area.\n\t* ospf_lsa.c: (ospf_link_cost) new simple function to spit out\n\t  either the given lnks cost or infinite cost if stub-router is\n\t  in effect.\n\t  (lsa_link_{ptop,broadcast,virtuallink,ptomp}_set) use\n\t  previous function for transit-links.\n\t  (ospf_stub_router_timer) timer thread for end of startup stub\n\t  router. Change state as required for the area and setup\n\t  re-origination of router-lsa.\n\t  (ospf_stub_router_check) Check/do whether stub-router should be\n\t  enabled, and whether it requires timer to be setup.\n\t  (ospf_router_lsa_new) call previous function at top.\n\t  (ospf_router_lsa_originate) no external callers, made static.\n\t* ospf_lsa.h: (ospf_router_lsa_originate) removed.\n\t* ospf_main.c: (sigint) make static.\n\t  remove call to exit, as ospf_terminate now deals with\n\t  exiting.\n\t* ospf_route.c: (ospf_terminate) removed, now in ospfd.c.\n\t* ospf_vty.c: (show_ip_ospf_area) print out state of\n\t  stub-router, if active.\n\t  (show_ip_ospf) print out configuration of stub-router\n\t  support, and details of graceful-shutdown if the timer is\n\t  active.\n\t  ((no)?ospf_max_metric_router_lsa_{admin,startup,shutdown}) new\n\t  commands to (de-)?configure stub-router support.\n\t  (config_write_stub_router) write out config of stub-router.\n\t  (ospf_config_write) call previous.\n\t  (ospf_vty_init) install the new stub-router commands.\n\t* ospfd.c: various functions made static.\n\t  (ospf_new) Set defaults for stub-router. Graceful shutdown\n\t  is made to default on, just to be adventerous.\n\t  (ospf_graceful_shutdown_finish) new function, final part of\n\t  shutdown.\n\t  (ospf_graceful_shutdown_timer) timer thread wrapper for\n\t  graceful-shutdown.\n\t  (ospf_graceful_shutdown_check) check whether to setup timer\n\t  for shutdown or proceed directly to final shutdown.\n\t  (ospf_terminate) moved here from ospf_route.c, call\n\t  ospf_finish for each instance.\n\t  (ospf_finish) renamed to ospf_finish_final and made static.\n\t  (ospf_finish) new function, exported wrapper around\n\t  ospf_graceful_shutdown_check.\n\t  (ospf_finish_final) complete shutdown of an instance.\n\t  Add missing TIMER_OFF\u0027s of two timer threads.\n\t  (ospf_area_free) opaque self lsa timer should be turned off.\n"
    },
    {
      "commit": "ceacedba227e77156f92f7676b274c48a2817e8f",
      "tree": "f362ecc8f6f183347ebe45ab79727b54d2f527a6",
      "parents": [
        "e62178797d0ee5f326fd587b84ee965cf88833e4"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Sep 29 14:39:32 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Sep 29 14:39:32 2005 +0000"
      },
      "message": "2005-09-29 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Add the test for Solaris least-privileges. Set\n\t  defines for whether capabilities are supported and whether of\n\t  the linux or solaris variety.\n\t  Add missing-prototypes, missing-declarations, char-subscripts\n\t  and cast-qual warnings to default cflags, cause Hasso enjoys warnings,\n\t  and we really should clean the remaining ones up. (ie isisd..).\n\t* (*/*main.c) Update the zebra_capabilities_t arrays in the various\n\t  daemons to match the changes made in lib/privs.h.\n\t* zebra.h: Solaris capabilities requires priv.h to be included.\n\t* privs.{c,h}: Add support for Solaris Least-Privileges.\n\t  privs.h: Reduce some of the abstract capabilities, which do\n\t  not have rough equivalents on both systems. Rename the net\n\t  related caps to _NET, as they should have been in first\n\t  place.\n\t  (zprivs_terminate) should take the zebra_privs_t as argument so\n\t  that it can update change pointer.\n\t  Add an additional privilege state, ZPRIVS_UNKNOWN.\n\t* privs.c: (various capability functions) Add\n\t  Solaris privileges variants.\n\t  (zprivs_state) Use privs.c specific generic types to\n          represent various capability/privilege related types, so that\n          each can be typedef\u0027d as appropriate on each platform.\n\t  (zprivs_null_state) static added, to hold the state the null\n\t  method should report (should be raised by default, and\n          LOWERED if zprivs_terminate has been called)\n          (zprivs_state_null) Report back the zprivs_null_state.\n          (cap_map) Make it able to map abstract capability to multiple\n          system capabilities.\n          (zcaps2sys) Map to abstract capabilities to multiple system\n          privileges/capabilities.\n          (zprivs_init) move capability related init to seperate\n\t  function, zprivs_caps_init.\n          (zprivs_terminate) ditto, moved to zprivs_caps_terminate.\n          Set the change_state callback to the NULL state, so the\n          user can continue to run and use the callbacks.\n"
    },
    {
      "commit": "4dadc291e56195886fd047690ded9686f4e013fa",
      "tree": "ea7c0690912d2b7d0c487f6855960e768fff1b6e",
      "parents": [
        "69e10adaf28d4e116c38db2648786557fe131828"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:37:42 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri May 06 21:37:42 2005 +0000"
      },
      "message": "2005-05-06 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n        * (general) extern and static qualifiers added.\n          unspecified arguments in definitions fixed, typically they should\n          be \u0027void\u0027.\n          function casts added for callbacks.\n          Guards added to headers which lacked them.\n          Proper headers included rather than relying on incomplete\n          definitions.\n          gcc noreturn function attribute where appropriate.\n        * ospf_opaque.c: remove the private definition of ospf_lsa\u0027s\n          ospf_lsa_refresh_delay.\n        * ospf_lsa.h: export ospf_lsa_refresh_delay\n        * ospf_packet.c: (ospf_make_md5_digest) make *auth_key const,\n          correct thing to do - removes need for the casts later.\n        * ospf_vty.c: Use vty.h\u0027s VTY_GET_INTEGER rather than ospf_vty\u0027s\n          home-brewed versions, shuts up several warnings.\n        * ospf_vty.h: remove VTY_GET_UINT32. VTY_GET_IPV4_ADDRESS and\n          VTY_GET_IPV4_PREFIX moved to lib/vty.h.\n        * ospf_zebra.c: (ospf_distribute_list_update_timer) hacky\n          overloading of the THREAD_ARG pointer should at least use\n          uintptr_t.\n"
    },
    {
      "commit": "274a4a4447b13f89f8237156a887d05a24a73cc6",
      "tree": "d5c2c6ee94bb77ef4346bcc07834808a75210bfd",
      "parents": [
        "5e76477456ce8bc4a1eeaccb5c5e1d3d99ab1300"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Dec 07 15:39:31 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Dec 07 15:39:31 2004 +0000"
      },
      "message": "2004-12-07 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* bgp_main.c: (main) The 2nd argument to openzlog has been removed.\n\t* isis_main.c: (main) The 2nd argument to openzlog has been removed.\n\t* ospf6_main.c: (main) The 2nd argument to openzlog has been removed.\n\t  Note that stdout logging will no longer be enabled by default when\n\t  not running as a daemon.\n\t* ospf_main.c: (main) The 2nd argument to openzlog has been removed.\n\t* rip_main.c: (main) The 2nd argument to openzlog has been removed.\n\t* ripng_main.c: (main) The 2nd argument to openzlog has been removed.\n\t* main.c: (main) The 2nd argument to openzlog has been removed.\n\t  So stdout logging will no longer be enabled by default.\n\t* irdp_main.c: (irdp_finish) Reduce severity of shutdown message\n\t  from LOG_WARNING to LOG_INFO.\n\t* vtysh.c: Make several functions static instead of global.\n\t  Added several commands to support destination-specific logging levels.\n\t  (vtysh_completion) This function is unused, so comment it out.\n\t* basic.texi: Document new logging features.  Separate basic config\n\t  commands from basic VTY commands.\n\t* log.h: Replace struct zlog flags and maskpri fields with maxlvl\n\t  array to support individual logging levels for each destination.\n\t  Remove the 2nd argument to openzlog since the default logging config\n\t  should be standardized inside the library.  Replaced the\n\t  zlog_set_flag and zlog_reset_flag functions with zlog_set_level.\n\t  And zlog_set_file now requires an additional log_level argument.\n\t  Declare zlog_proto_names for use inside command.c in the\n\t  \"show logging\" command.  Added defines useful for command\n\t  construction.\n\t* log.c: (vzlog) Decide where to send the message based on the\n\t  individual logging levels configured for each destination.\n\t  Remove support for ZLOG_STDERR since it was never actually used.\n\t  Support record-priority for terminal monitors.\n\t  (zlog_signal,zlog_backtrace_sigsafe) Support destination-specific\n\t  logging levels.  Remove stderr support (was never used).  Added\n\t  support for terminal monitor logging.\n\t  (_zlog_assert_failed) Increase message severity to LOG_EMERG.\n\t  (openzlog) Remove 2nd argument since default config should be\n\t  standardized in library.  By default, terminal monitoring\n\t  is set to debug, and all other logging is disabled.\n\t  (zlog_set_flag,zlog_reset_flag) Removed.\n\t  (zlog_set_level) New function to replace zlog_set_flag and\n\t  zlog_reset_flag.  Supports destination-specific logging levels.\n\t  (zlog_set_file,zlog_reset_file) Support file-specific logging level.\n\t  (zlog_rotate) Log an error message if fopen fails, and support\n\t  new file-specific logging level.\n\t* command.h: Change DEFUN_CMD_FUNC_DECL and DEFUN_CMD_FUNC_TEXT so that\n\t  command functions will be static instead of global.  Remove\n\t  declarations for config_exit and config_help.  Define new macros\n\t  DEFUNSH_ATTR, DEFUNSH_HIDDEN, and DEFUNSH_DEPRECATED so we can\n\t  have deprecated commands in vtysh.  Similarly, for completeness,\n\t  define macros ALIAS_SH, ALIAS_SH_HIDDEN, and ALIAS_SH_DEPRECATED.\n\t  Also, fix bug in ALIAS_ATTR macro (didn\u0027t matter because it\n\t  was never used).\n\t* command.c: Make many functions static instead of global.\n\t  (facility_name,facility_match,level_match) New functions\n\t  to support enhanced destination-specific logging levels.\n\t  (config_write_host) Support new destination-specific logging levels.\n\t  (config_logmsg) Added new \"logmsg\" command to help test logging\n\t  system.\n\t  (show_logging) Added \"show logging\" command to show the current\n\t  configuration of the logging system.\n\t  (config_log_stdout_level) Support explicit stdout logging level.\n\t  (no_config_log_stdout) Now takes optional LEVEL arg.\n\t  (config_log_monitor,config_log_monitor_level,no_config_log_monitor)\n\t  New commands creating new \"log monitor\" commands to set terminal\n\t  monitoring log level.\n\t  (config_log_file_level) Support explicit file logging level.\n\t  (config_log_syslog_level) Support explicit syslog logging level.\n\t  (config_log_facility,no_config_log_facility) Implement new\n\t  \"log facility\" command.\n\t  (cmd_init) Add hooks for new commands: \"show logging\", \"logmsg\",\n\t  \"log stdout \u003clevel\u003e\", \"log monitor\", \"log monitor \u003clevel\u003e\",\n\t  \"no log monitor\", \"log file \u003cfilename\u003e \u003clevel\u003e\",\n\t  \"no log file \u003cfilename\u003e \u003clevel\u003e\", \"log syslog \u003clevel\u003e\",\n\t  \"log facility\", and \"no log facility\".\n\t* vty.h: Added a \"level\" argument to vty_log so it can support\n\t  \"log record-priority\".  Declare new function vty_log_fixed for\n\t  use in signal handlers.\n\t* vty.c: (vty_log,vty_log_out) Added a \"level\" argument to support\n\t  \"log record-priority\" for vty terminal monitors.\n\t  (vty_down_level) Use config_exit_cmd.func instead of calling\n\t  config_exit directly (since command functions will now be static\n\t  instead of global).\n\t  (vty_log_fixed) New function to send terminal monitor messages\n\t  from inside a signal handler.\n"
    },
    {
      "commit": "887c44a4f3d8219dc5b1c52b5dcde1f31d52b73d",
      "tree": "5c0ef5fe1d3948c56e6abf2ffd3c9811e92f0f2e",
      "parents": [
        "bec595ada58ebfa98ad49220f29ab28b58549094"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Dec 03 16:36:46 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Dec 03 16:36:46 2004 +0000"
      },
      "message": "2004-12-03 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* bgp_main.c: (sigint) Use zlog_notice for termination message.\n\t  (main) Use zlog_notice for startup announcement.\n\t* isis_main.c: (sigint,sigterm) Use zlog_notice for termination message.\n\t  (terminate) This function should be static, not global.\n\t  (main) Use zlog_notice for startup announcement, and remove\n\t  ifdef ZEBRA_VERSION.\n\t* version.h.in: Remove declaration for pid_output_lock, this function\n\t  is now static, not global.\n\t* pid_output.c: (pid_output_lock) This function should be static, not\n\t  global.  And remove \"old umask\" error message, since it was really\n\t  an unimportant debug message, not an error.\n\t  (pid_output) Need to declare static function pid_output_lock.\n\t* ospf6_main.c: (sigint,sigterm) Use zlog_notice for termination\n\t  message.\n\t  (main) Remove commented-out call to pid_output_lock (which should\n\t  never be called other than from inside pid_output).  And use\n\t  zlog_notice to print the startup message, which now includes\n\t  the vty port.\n\t* ospf_main.c: (sigint) Use zlog_notice for termination message.\n\t  (main) Issue a startup announcement using zlog_notice.\n\t* rip_main.c: (sigint) Use zlog_notice for termination message.\n\t  (main) Add a startup announcement using zlog_notice.\n\t* ripng_main.c: (sighup) Remove spurious terminating message.\n\t  (sigint) Use zlog_notice for termination message.\n\t  (main) Issue a startup announcement using zlog_notice.\n\t* main.c: (sigint) Use zlog_notice for termination message.\n\t  (main) Add a startup announcement using zlog_notice.\n"
    },
    {
      "commit": "5b85facc638d219a7281b75bec8a08dcf79a46ce",
      "tree": "3f12c2b86c5ea322c72511304af81596bb89cdae",
      "parents": [
        "063ee52af64472474af2fa4b3cb2ba9ced746b9f"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Nov 26 19:36:42 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Nov 26 19:36:42 2004 +0000"
      },
      "message": "2004-11-26 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* debug.[ch]: Remove unused files.\n\t* Makefile.am: Remove references to debug.c and debug.h\n\t* ospf_main.c: Remove #include \"debug.h\" (was not being used, and\n\t  lib/debug.h has now been deleted).\n"
    },
    {
      "commit": "c065230a4c617a1cdf8813dd25384bcc9591f61a",
      "tree": "42285fe5604e43ada3b53ac9a77ba1e3c4464b52",
      "parents": [
        "accb156b9b1c3f4b46ab01f8850200f450fc40d8"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Nov 25 19:33:48 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Nov 25 19:33:48 2004 +0000"
      },
      "message": "Make group to run daemon as configurable. Fixes #2 from Bugzilla #64.\n"
    },
    {
      "commit": "d68614db1dc36a6814fee33f584417b1441a83e4",
      "tree": "0522831d0dfd9a4f23959532e3110f46fc88b49c",
      "parents": [
        "43fb1352a1cc9ef05ac7124d18099ed6f8c3986a"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 09:32:48 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 09:32:48 2004 +0000"
      },
      "message": "Unbreak compilation with ospfapi disabled. We should seriously think about\nreducing various configure options.\n"
    },
    {
      "commit": "f4d58ce5aa0da64fd136c5747ff371d46736490a",
      "tree": "942bd00e2c53a22dd7f0c057d489b13ce1d7c4bd",
      "parents": [
        "54aa6b2d796416ed0d606c49bf4a0f1e62b93401"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Oct 12 06:13:54 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Oct 12 06:13:54 2004 +0000"
      },
      "message": "Unbreak ospfclient compilation.\n"
    },
    {
      "commit": "c3abdb722d35eb93ca72078a7da1b4661accab27",
      "tree": "b89076220a74f3ca9c5e408331d4f2206bbdaed1",
      "parents": [
        "e2ea9fef99392299d6291067522eef0d99e1714c"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 11 16:27:03 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 11 16:27:03 2004 +0000"
      },
      "message": "Disable ospfapi init by default.\n"
    },
    {
      "commit": "eb1ce6059a00f3f0dd92c965aa5982907b54c00d",
      "tree": "ebd6583ba2f2f9909c25653d0349662e08c26ecf",
      "parents": [
        "2e864cfa12724ec20e82f0a24e1be5929e3a0cef"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Oct 08 08:17:22 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Oct 08 08:17:22 2004 +0000"
      },
      "message": "Compiler warnings fixes round 1.\n"
    },
    {
      "commit": "320ec10a24d8dd81d0aa011dc92e07877e4e02f8",
      "tree": "867cc29d5981b58bad9392cb7eb471daeb8250a1",
      "parents": [
        "6c0f9a782a7be49de53b5ae00980990d96edbf03"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jun 20 19:54:37 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Jun 20 19:54:37 2004 +0000"
      },
      "message": "Removing code which looked at current dir for config file before attempting\nto read system one.\n"
    },
    {
      "commit": "dd669bb0e7102a5896925f98203fa991560748b7",
      "tree": "80edd1c4792789a41226af378d8fb99f444b88b6",
      "parents": [
        "2a56df976d3fb0800921ef561c346b85e7acb6be"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon May 10 07:43:59 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon May 10 07:43:59 2004 +0000"
      },
      "message": "* Make updating redistributions work if prefix list is changed and it\u0027s\n  used in route-map used to filter redistributions.\n* Move ospf_prefix_list_update() function from ospfd.c to ospf_zebra.c.\n"
    },
    {
      "commit": "f571dab0c677ca4f3328ea944cc59ab2269c9a5d",
      "tree": "dcdb8086dd98dd956b0ba9ba9479d4fc2bd3388a",
      "parents": [
        "37318657e5af8774a7a1446157f99496e887719f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 22 08:55:25 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 22 08:55:25 2004 +0000"
      },
      "message": "Readded SIGTERM handling into sigevent stuff. Fixes bugzilla #85.\n"
    },
    {
      "commit": "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": "2d75d05218b76230bbd608cab8d08a5f47d77056",
      "tree": "7087570a7dbb8b650349b98a8f1963dfdcedceb1",
      "parents": [
        "9a76e2ddb6c4dc303ce7ed937c0cfa9430c3ed27"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:31:15 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:31:15 2004 +0000"
      },
      "message": "2004-01-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * tests/test-sig.c: New file, regression test for sigevents.\n        * lib/Makefile.am: add sigevent.{c,h}\n        * (isis|rip|ripng|ospf|ospf6|bgp)d/\\1_main.c: modify for sigevents.\n        * zebra/main.c: ditto.\n"
    },
    {
      "commit": "d81fadfd889aa7bc657fa19752344a585e8c274a",
      "tree": "26a7026afc547f4ac82ea4d84394109323cbb246",
      "parents": [
        "e835d10483f833c8e6bb2957ea10a2f7a9cb4888"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 14 05:32:12 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 14 05:32:12 2003 +0000"
      },
      "message": "2003-08-14 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* zebra/main.c: Fixup ZEBRA_{GROUP,USER} defines -\u003e\n\t  QUAGGA_{USER,GROUP}\n\t* bgpd/bgp_main.c: ditto\n\t* ospf6d/ospf6_main.c: ditto\n\t* ospfd/ospf_main.c: ditto\n\t* ripd/rip_main.c: ditto\n\t* ripngd/ripng_main.c: ditto\n\t* zebra/main.c: ditto\n"
    },
    {
      "commit": "e8f2984c00d406781eff42db7afcdae5d5a6a366",
      "tree": "f8b4da099e7f06c25a6b27c873c9897b935b91a2",
      "parents": [
        "5f5eab7833eef6aa0c95ee991bbdb65cfcc90011"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 12 13:08:31 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Aug 12 13:08:31 2003 +0000"
      },
      "message": "2003-08-12 Paul Jakma \u003cpaul@dishone.st\u003e\n\n2003-08-12 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * Makefile.am: redhat/zebra.* -\u003e redhat/quagga.*\n        * configure.ac: Bump autoconf prerequisite to 2.53.\n          dist name zebra -\u003e quagga.\n          general Zebra -\u003e Quagga where appropriate (ie not zebra daemon).\n          User and group zebra-\u003equagga.\n          s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/.\n        * bgpd/bgp_main.c: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n        * lib/command.c: Update banners and s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n        * lib/print_version.c: ditto\n        * lib/version.h: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/ and bump version.\n          Change ZEBRA_URL.\n        * lib/smux.c: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n        * lib/vty.h: Change Zebra.conf to Quagga.conf (integrated file)\n        * ospf6d/ospf6{,_main}.c: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n        * ospfd/ospf_main.c: s/ZEBRA\\(_VERSION\\)/QUAGGA\\1/\n"
    },
    {
      "commit": "96735eeafe4713b60700915dd2fb6dcbd0f09c8f",
      "tree": "49b7f583956e3d7ad91dcfa006d18e20f57efe15",
      "parents": [
        "286e1e71538440ed0bef4576aded1745191490d3"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Aug 10 02:51:22 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Aug 10 02:51:22 2003 +0000"
      },
      "message": "2003-08-10 amir \u003camir@datacore.ch\u003e\n\n\t* Add missing \u0027i\u0027 to getopts, short form of --pid_file.\n\t  see http://bugzilla.quagga.net/show_bug.cgi?id\u003d25\n"
    },
    {
      "commit": "b21b19c5785487f2ff4a6ce38f45c2e6c35f4363",
      "tree": "c79f90ce7bd798b3f1391010153d9fdf7c7418f0",
      "parents": [
        "0e4f190ebf5a26e4b66fb49cd74ae0ff0c7e0863"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 15 01:28:29 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 15 01:28:29 2003 +0000"
      },
      "message": "2003-06-15 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* lib/vty.{c,h}: Remove vty layer depending on a \u0027master\u0027 global,\n\t  pass the thread master in explicitly to vty_init. Sort out some\n\t  header dependency problems with lib/command.h\n\t* zebra/: Move globals to struct zebrad. Update vty_init().\n\t* (.*)/\\1_main.c: update call to vty_init().\n"
    },
    {
      "commit": "edd7c245d3a77012abf801da00d5664ebaa5f749",
      "tree": "d4fada229d7980fb751f28c9a979aa88de1a0af0",
      "parents": [
        "a159ed935b580ed99111a185734ddd9c973e7691"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 04 13:59:38 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 04 13:59:38 2003 +0000"
      },
      "message": "2003-06-04 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* Merge of zebra privileges\n"
    },
    {
      "commit": "b3516a791d7d44469b9a2a51557347958fe506d1",
      "tree": "8e26d9c9b6c189b7f8fcbab0869c06221828eb2e",
      "parents": [
        "e26bbebaddd76e2002df675d76531c5ce851a4b0"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 22:11:22 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun May 25 22:11:22 2003 +0000"
      },
      "message": "Tiny fixes from 6Wind patch.\n"
    },
    {
      "commit": "020709f9939c542e96b12f06522ad5e33d8cf445",
      "tree": "767b3cb9a8a17913d8395c8d5ecf7485ae882b8e",
      "parents": [
        "d18258304a79b459fe768e63f27efd17aa1fa78f"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Apr 04 02:44:16 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Apr 04 02:44:16 2003 +0000"
      },
      "message": "2003-04-04 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * Sync to Zebra CVS\n        * Fix lib/thread.h leak\n        * Fix small Opaque LSA leak\n        * Do not configure OSPF interfaces for secondary addresses\n        * vtysh fixes from Hasso\n        * Dave Watson\u0027s missing ntohs fix\n"
    },
    {
      "commit": "4fc4e7ab47fef3295d0ae40e064fc99478c24e23",
      "tree": "82e0d2dd400ca4bf14138ac484120085244d2d25",
      "parents": [
        "d753e9eec96f03aa02a7648e4279c524c376908d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 22 19:47:09 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 22 19:47:09 2003 +0000"
      },
      "message": "Matthew Grant \u003cgrantma@anathoth.gen.nz\u003e\n[zebra 17290] [PATCHES] - Fixes for problems in 0.93b\n\nportfix patch\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"
    }
  ]
}
