)]}'
{
  "log": [
    {
      "commit": "f482ed4d13e73c27424a45e4c8cfaaa363a35d89",
      "tree": "8fb0396cda1dcfa0de5d18b824b354b7ad7f1d07",
      "parents": [
        "9e67dc2723e86956dade42f5846d5c05334af041"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Apr 15 22:12:51 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Apr 15 22:12:51 2005 +0000"
      },
      "message": "2005-04-15 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* topology/Makefile.am: random.c is a source of libtopology, so list\n\t  it.\n"
    },
    {
      "commit": "5d6e26910b6790e7ea759893c16e9f0e380fcc1e",
      "tree": "448de93ef1b876b3460c6a18f7402775da9f7e12",
      "parents": [
        "c75494ca286c23d065f6a1ea147016b934ef9646"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Apr 12 14:48:19 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Apr 12 14:48:19 2005 +0000"
      },
      "message": "\t* isis_adjacency.c: Fix typo introduced with listloop cleanup.\n"
    },
    {
      "commit": "634f9ea20fce82c94407cb677b5487b65bde1973",
      "tree": "32db82e4ae3b0f409d6d06a0fda401f9d5df5cc9",
      "parents": [
        "dfb9a545f8e3500e6a99518193872f526c1f56ba"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Mon Apr 11 15:51:40 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Mon Apr 11 15:51:40 2005 +0000"
      },
      "message": "2005-04-11 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\tImplement non-blocking zclient I/O with buffering.\n\t* zclient.h (struct zclient): Add two fields to support non-blocking\n\t  I/O: struct buffer *wb, and struct thread *t_write.\n\t  (zclient_free): Remove function.\n\t  (zebra_redistribute_send): Change 2nd arg from socket fd to\n\t  struct zclient * (needed to support non-blocking I/O and buffering).\n\t  (zclient_send_message): New function to send an arbitrary\n\t  message with non-blocking I/O.\n\t* zclient.c (zclient_new): Create write buffer.\n\t  (zclient_free): Remove unused function.\n\t  (zclient_stop): Must cancel new t_write thread.  Also, reset\n\t  all buffers: ibuf, obuf, and wb.\n\t  (zclient_failed): New helper function for typical error handling.\n\t  (zclient_flush_data): New thread to flush queued data.\n\t  (zclient_send_message): New function to send the message in\n\t  zclient-\u003eobuf to zebra using non-blocking I/O and buffering.\n\t  (zebra_message_send, zapi_ipv4_route, zapi_ipv6_route): Use\n\t  new zclient_send_message function instead of calling writen.\n\t  (zclient_start): Set socket non-blocking.  Also, change 2nd arg\n\t  to zebra_redistribute_send from zclient-\u003esock to zclient.\n\t  (zebra_redistribute_send): Change 2nd arg to struct zclient *.\n\t  Can now use zclient-\u003eobuf to assemble the message instead of\n\t  allocating a temporary stream.  And call zclient_send_message to\n\t  send the message instead of writen.\n\t  (zclient_read): Convert to support non-blocking I/O by using\n\t  stream_read_try instead of deprecated stream_read.\n\t  (zclient_redistribute): Change 2nd arg to zebra_redistribute_send\n\t  from zclient-\u003esock to zclient.\n\t* ospf6_zebra.c (ospf6_zebra_redistribute, ospf6_zebra_no_redistribute):\n\t  Change 2nd arg to zebra_redistribute_send from zclient-\u003esock\n\t  to zclient.\n\t* ospf_zebra.c (ospf_zebra_add): Call zclient_send_message instead\n\t  of writen.\n\t* rip_zebra.c (rip_redistribute_set, rip_redistribute_unset,\n\t  rip_redistribute_clean): Change 2nd arg to zebra_redistribute_send\n\t  from zclient-\u003esock to zclient.\n\t* ripng_zebra.c (ripng_redistribute_unset, ripng_redistribute_clean):\n\t  Change 2nd arg to zebra_redistribute_send from zclient-\u003esock\n\t  to zclient.\n\t* bgp_zebra.c (bgp_redistribute_set, bgp_redistribute_unset):\n\t  The 2nd arg to zebra_redistribute_send is now zclient instead of\n\t  zclient-\u003esock.\n\t* isis_zebra.h (isis_zebra_finish): Remove declaration of unused\n\t  function.\n\t* isis_zebra.c (isis_zebra_route_add_ipv4): Call zclient_send_message\n\t  to send the message to zebra instead of calling writen directly, since\n\t  zclient_send_message understands non-blocking I/O and will manage\n\t  the buffer queue appropriately.\n\t  (isis_zebra_finish): Remove unused function, particularly since\n\t  the zclient_free function has been removed.\n"
    },
    {
      "commit": "a8f03df06c2740a730e80218c13c6a1afd050c4e",
      "tree": "9b53a4db49df5d12ad9bf1b2bf1bfebb6ecb813d",
      "parents": [
        "57a1477bc7138649a51277cd52616eb05d438187"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Apr 10 15:58:10 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Apr 10 15:58:10 2005 +0000"
      },
      "message": "2005-04-10 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* Makefile.am: topology should not be a conditional SUBDIR,\n\t  otherwise make dist breaks.\n\t* topology/Makefile.am: remove EXTRA_DIST of files which dont\n\t  exist in that directory, broke make dist.\n\t* isisd.c: (show_isis_generated_topology_cmd) convert LIST_LOOP\n\t* isis_lsp.c: (generate_topology_lsps) ditto\n\t  (build_topology_lsp_data) ditto\n"
    },
    {
      "commit": "1eb8ef2584833f18fb674e127d59cb5a7f771482",
      "tree": "f5b09d4781de9a9b08839fefb6530e64d2d2ec31",
      "parents": [
        "5920990fecba7e2430af3cfaa8bcbaed40d0ba1a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Apr 07 07:30:20 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Apr 07 07:30:20 2005 +0000"
      },
      "message": "2005-04-07 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (global): Fix up list loops to match changes in lib/linklist,\n\t  and some basic auditing of usage.\n\t* configure.ac: define QUAGGA_NO_DEPRECATED_INTERFACES\n\t* HACKING: Add notes about deprecating interfaces and commands.\n\t* lib/linklist.h: Add usage comments.\n\t  Rename getdata macro to listgetdata.\n\t  Rename nextnode to listnextnode and fix its odd behaviour to be\n\t  less dangerous.\n\t  Make listgetdata macro assert node is not null, NULL list entries\n          should be bug condition.\n          ALL_LIST_ELEMENTS, new macro, forward-referencing macro for use\n          with for loop, Suggested by Jim Carlson of Sun.\n          Add ALL_LIST_ELEMENTS_RO for cases which obviously do not need the\n          \"safety\" of previous macro.\n\t  LISTNODE_ADD and DELETE macros renamed to ATTACH, DETACH, to\n\t  distinguish from the similarly named functions, and reflect their\n\t  effect better.\n\t  Add a QUAGGA_NO_DEPRECATED_INTERFACES define guarded section\n\t  with the old defines which were modified above,\n\t  for backwards compatibility - guarded to prevent Quagga using it..\n\t* lib/linklist.c: fix up for linklist.h changes.\n\t* ospf6d/ospf6_abr.c: (ospf6_abr_examin_brouter) change to a single\n\t  scan of the area list, rather than scanning all areas first for\n\t  INTER_ROUTER and then again for INTER_NETWORK. According to\n\t  16.2, the scan should be area specific anyway, and further\n\t  ospf6d does not seem to implement 16.3 anyway.\n"
    },
    {
      "commit": "bd88bf499a02e3364b06ad269bd7009a0227f91b",
      "tree": "1d6ab75ab800fb2329604ec721f7c95f50752eb4",
      "parents": [
        "018546e9656b141eeecdf59f627fcdc9b7381840"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 23:09:52 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 23:09:52 2005 +0000"
      },
      "message": "2005-04-02 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* isis_zebra.c: (isis_zebra_if_del) Must use if_lookup_by_name_len.\n"
    },
    {
      "commit": "f695b01ff8e9aebc46bdf41f104ad4abbb0ef59e",
      "tree": "1a36e624a6577780a49f6ae2c8e0534140d33943",
      "parents": [
        "a47d98f4b7d6e3c1f5298912672f7b4d55a203f0"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Apr 02 19:03:39 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Apr 02 19:03:39 2005 +0000"
      },
      "message": "\t* configure.ac: Add --enable-isis-topology to enable isisd topology\n\t  generator code.\n\t* isisd/Makefile.am: Variables to handle conditonal compiling of\n\t  topology generator code.\n\t* isisd/isis_lsp.c: lsppdu_realloc() is used by topology generator.\n\t* isisd/isisd.c: Rename show_isis_topology_cmd to not conflict the one\n\t  in the isis_spf.c.\n\t* isisd/isisd.h: Remove TOPOLOGY_GENERATE define, it will be defined in\n\t  toplevel config.h if topology generator is enabled.\n\t* isisd/topology/Makefile.am: Handle the libtoolized Quagga libraries.\n"
    },
    {
      "commit": "d2fc88962a9a494ecb34167871bb9e7273a25d33",
      "tree": "304a1c1a744972bc10b1f677a134907c404b361d",
      "parents": [
        "386e61502d391adb985ac1487825349ec85e6a8c"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 18:38:43 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 18:38:43 2005 +0000"
      },
      "message": "2005-04-02 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\tFix problems when netlink interfaces are renamed (same ifindex used\n\tfor a new interface).  Start cleaning up some problems with the way\n\tinterface names are handled.\n\t* interface.c: (if_new_intern_ifindex) Remove obsolete function.\n\t  (if_delete_update) After distributing the interface deletion message,\n\t  set ifp-\u003eifindex to IFINDEX_INTERNAL.\n\t  (if_dump_vty) Detect pseudo interface by checking if ifp-\u003eifindex is\n\t  IFINDEX_INTERNAL.\n\t  (zebra_interface) Check return code from interface_cmd.func.\n\t  Do not set internal ifindex values to if_new_intern_ifindex(),\n\t  since we now use IFINDEX_INTERNAL for all pseudo interfaces.\n\t* kernel_socket.c: (ifm_read) Fix code and comments to reflect that\n\t  all internal interfaces now have ifp-\u003eifindex set to IFINDEX_INTERNAL.\n        * rt_netlink.c: (set_ifindex) New function used to update ifp-\u003eifindex.\n\t  Detects interface rename events by checking if that ifindex is already\n\t  being used.  If it is, delete the old interface before assigning\n\t  the ifindex to the new interface.\n\t  (netlink_interface, netlink_link_change) Call set_ifindex to update\n\t  the ifindex.\n\t* if.h: Remove define for IFINDEX_INTERNBASE and add define\n\t  IFINDEX_INTERNAL 0, since all internal (i.e. non-kernel) pseudo-\n\t  interfaces should have ifindex set to 0.\n\t  (if_new) Remove function.\n\t  (if_delete_retain) New function to delete an interface without\n\t  removing from iflist and freeing the structure.\n\t  (ifname2ifindex) New function.\n\t* if.c: (if_new) Remove function (absorb into if_create).\n\t  (if_create) Replace function if_new with call to calloc.\n\t  Set ifp-\u003eifindex to IFINDEX_INTERNAL.  Fix off-by-one error\n\t  in assert to check length of interface name.  Add error message\n\t  if interface with this name already exists.\n\t  (if_delete_retain) New function to delete an interface without\n\t  removing from iflist and freeing the structure.\n\t  (if_delete) Implement with help of if_delete_retain.\n\t  (ifindex2ifname) Reimplement using if_lookup_by_index.\n\t  (ifname2ifindex) New function to complement ifindex2ifname.\n\t  (interface) The interface command should check the name length\n\t  and fail with a warning message if it is too long.\n\t  (no_interface) Fix spelling in warning message.\n\t  (if_nametoindex) Reimplement using if_lookup_by_name.\n\t  (if_indextoname, ifaddr_ipv4_lookup) Reimplement using\n\t  if_lookup_by_index.\n\t* bgp_zebra.c: (bgp_interface_delete) After deleting, set ifp-\u003eifindex\n\t  to IFINDEX_INTERNAL.\n\t* isis_zebra.c: (isis_zebra_if_del) Call if_delete_retain instead\n\t  of if_delete, since it is generally not safe to remove interface\n\t  structures.  After deleting, set ifp-\u003eifindex to IFINDEX_INTERNAL.\n\t  (zebra_interface_if_lookup) Tighten up code.\n\t* ospf6_zebra.c: (ospf6_zebra_if_del) Previously, this whole function\n\t  was commented out.  But this is not safe: we should at least update\n\t  the ifindex when the interface is deleted.  So the new version\n\t  updates the interface status and sets ifp-\u003eifindex to\n\t  IFINDEX_INTERNAL.\n\t  (ospf6_zebra_route_update) Use if_indextoname properly.\n\t* ospf_vty.c: (show_ip_ospf_interface_sub) Show ifindex and interface\n\t  flags to help with debugging.\n\t* ospf_zebra.c: (ospf_interface_delete) After deleting, set ifp-\u003eifindex\n\t  to IFINDEX_INTERNAL.\n\t  (zebra_interface_if_lookup) Make function static.  Tighten up code.\n\t* rip_interface.c: (rip_interface_delete) After deleting, set\n\t  ifp-\u003eifindex to IFINDEX_INTERNAL.\n\t* ripng_interface.c: (ripng_interface_delete) After deleting, set\n\t  ifp-\u003eifindex to IFINDEX_INTERNAL.\n"
    },
    {
      "commit": "2d58228ecabb23b064e8a06e6241cf0d7e5ca785",
      "tree": "443509e8113598c7dadaa5e9cdbb153c147d0ffe",
      "parents": [
        "17eff7cb9010c0ba386ab801c220811ded4242b3"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 28 15:29:07 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 28 15:29:07 2005 +0000"
      },
      "message": "\t* configure.ac, */Makefile.am: Fix previous commit. SNMP includes\n\t  must be after lib/ includes in some systems. Introduce SNMP_INCLUDES\n\t  for that.\n"
    },
    {
      "commit": "c3d26c72982bc95906afb58fb46f1268bc915a3b",
      "tree": "ddc01377553107b384acef1879201d6216780fac",
      "parents": [
        "12f6ea2300402c821595297ff0c2c75055e50031"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 07 08:54:41 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Mar 07 08:54:41 2005 +0000"
      },
      "message": "\t* isis_spf.c: host.name might be NULL.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "cdb6ee94bc2b9d1b66cfa1adcc5acaccbd648e0f",
      "tree": "e2ddd54488f20a3402ce94fcc4fb337fb883f61c",
      "parents": [
        "5c33349b3efff36a6acd36c6600b61e7cc2dbffc"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Feb 23 15:48:32 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Feb 23 15:48:32 2005 +0000"
      },
      "message": "2005-02-23 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* {vty.h,vty.c}: Remove vty_finish (duplicate of vty_reset).\n\t* isis_main.c: (reload) Call vty_reset instead of vty_finish (both\n\t  functions were exactly the same).\n"
    },
    {
      "commit": "9985f83ce7102f64b15f744b60320f8d14a8a5ff",
      "tree": "344629bdc2b4a7d53b8d7ca1705c9be2ca282d18",
      "parents": [
        "083ee9d9cdbf72a452b9af96e62d0625ea712cd9"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Feb 09 15:51:56 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Feb 09 15:51:56 2005 +0000"
      },
      "message": "2005-02-09 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (global) Update code to match stream.h changes.\n\t  stream_get_putp effectively replaced with stream_get_endp.\n\t  stream_forward renamed to stream_forward_getp.\n\t  stream_forward_endp introduced to replace some previous\n\t  setting/manual twiddling of putp by daemons.\n\t* lib/stream.h: Remove putp. Update reference to putp with endp.\n\t  Add stream_forward_endp, which daemons were doing manually.\n\t  Rename stream_forward to stream_forward_getp.\n\t  lib/stream.c: Remove/update references to putp.\n\t  introduce stream_forward_endp.\n"
    },
    {
      "commit": "92365889d1f856f323af452bad76f54c15ccdf45",
      "tree": "b2f01cd133b1f185d5d3e3c7f088310ff9aff621",
      "parents": [
        "6f2c27af2189794187e4c30ee70fcb9cc6cb1a3b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jan 18 13:53:33 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jan 18 13:53:33 2005 +0000"
      },
      "message": "\t* *.c: Changed many functions to static. Some commented out\n\t  functions and some tiny related fixes. No functional changes.\n"
    },
    {
      "commit": "cee66491371403453dc1c2a2424683976d22e640",
      "tree": "763df575b7e5486dd9407056a7f5f35caecfda46",
      "parents": [
        "b1b57e2b835ded16e6615723e10d67ed2e0b9c5e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 21:12:56 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 21:12:56 2005 +0000"
      },
      "message": "More cleanup in isisd.\n"
    },
    {
      "commit": "b1b57e2b835ded16e6615723e10d67ed2e0b9c5e",
      "tree": "463abd1febe6c792eb94de5c1bdcabfe9348a859",
      "parents": [
        "39f476f9f63fb084bbd1a4f2eb3a77b7ff1a626a"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 21:02:13 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 21:02:13 2005 +0000"
      },
      "message": "Move TODO items from isid to the common TODO.\n"
    },
    {
      "commit": "39f476f9f63fb084bbd1a4f2eb3a77b7ff1a626a",
      "tree": "ebeb4f20194ee85dfd25a34d9b11704824f5c877",
      "parents": [
        "1cbc562b0c9f849639e2d95718ad823f6bc7877f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 20:49:21 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 20:49:21 2005 +0000"
      },
      "message": "There is no need to keep this directory.\n"
    },
    {
      "commit": "1cbc562b0c9f849639e2d95718ad823f6bc7877f",
      "tree": "5342d496488c56aeb34ab12f26e5ad2dd9865d92",
      "parents": [
        "3dc56b5bd3fa2aacc427505feaa9cd1366e7ebe8"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 10:29:51 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Jan 01 10:29:51 2005 +0000"
      },
      "message": "Make authentication of SNPs work correctly - ie. conditionally like it is in\nIOS.\n"
    },
    {
      "commit": "b30c5e67a20b1a092faa56fe349171eb1da386b0",
      "tree": "9bc23b582e4c159ae41310cf1900b2e42f932af2",
      "parents": [
        "d44debedf53b85c989b72fe7c6924ffc1e7e625b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 29 20:06:41 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 29 20:06:41 2004 +0000"
      },
      "message": "Really fix crashes now. Revert isis_circuit_update_params() part of previous\ncommit. Replace all if_is_up() calls with if_is_operative().\n"
    },
    {
      "commit": "4660687a38034d60296fbc9e82aae772011c407f",
      "tree": "5a0d7caea1ba0958c8f9780da038654ce4f10fed",
      "parents": [
        "1d69fdf645d8434e8e1488f8bf0c73613df09da9"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 29 19:34:22 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 29 19:34:22 2004 +0000"
      },
      "message": "Don\u0027t crash during interface up/down events.\n"
    },
    {
      "commit": "529d65b3db6a2a79cbdf9ca3a1aa915ce5776286",
      "tree": "bc51f1350daf8c8f47cd87478f416ba812cfcff9",
      "parents": [
        "2b70200c5797ca60acf2011fe62f33fa161be54b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Dec 24 00:14:50 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Dec 24 00:14:50 2004 +0000"
      },
      "message": "zlog_* cleanup. Level of debug messages to LOG_DEBUG.\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": "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": "cee3df1e4b1b8103bf81e5281a46aab7881f93df",
      "tree": "40d7cc8c22da9634739256a9d577b140b41730b8",
      "parents": [
        "b9e0ee31864c94c729fb6b6f6b2ccbc79dbcd474"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Nov 24 17:14:49 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Nov 24 17:14:49 2004 +0000"
      },
      "message": "2004-11-24 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* zassert.h: New header file to declare a quagga-specific assert macro.\n\t* log.c: (_zlog_assert_failed) New function called when assert fails\n\t  to log the error and abort.\n\t* zebra.h: Include \"zassert.h\" instead of \u003cassert.h\u003e.\n\t* regex.c: Include \"zassert.h\" instead of \u003cassert.h\u003e.\n\t* dict.c: Include \"zassert.h\" instead of \u003cassert.h\u003e.\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": "3c035aa8716efa6f677e43435c5eb9bac6825518",
      "tree": "ea28fd6b6beadd72d3619315dc66ee0d03a3f7d3",
      "parents": [
        "e064d6d9c3c3319c62fe4fac3e4e5f7a1941a98c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Nov 02 18:59:49 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Nov 02 18:59:49 2004 +0000"
      },
      "message": "- Add .arch-ids and .arch-inventory to cvsignore, to allow one to use arch\n  with CVS trees.\n"
    },
    {
      "commit": "c729c65010a11f011ebae654fa1a8444c7443c10",
      "tree": "490d99736a94f28aa69f31a9447dd18b3329abc8",
      "parents": [
        "ddd85ed1af88068939cee36a43125ff8ad50cf79"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 08:36:47 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 08:36:47 2004 +0000"
      },
      "message": "Initialize access lists here as well.\n"
    },
    {
      "commit": "f90a5f6f1a6c1c1a4199a87a6202fe3edc9f7520",
      "tree": "6ab4dd093298c0c8d68b854fc6400374cbd054f2",
      "parents": [
        "98b718a9d2aa7a3324c553944e26914fe090b87a"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 11 13:11:56 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 11 13:11:56 2004 +0000"
      },
      "message": "Sync isisd with changes in lib.\n"
    },
    {
      "commit": "2e864cfa12724ec20e82f0a24e1be5929e3a0cef",
      "tree": "f97da1d907f31be08f392d27ebb2842ccc92e2c9",
      "parents": [
        "8a676be30c275bcbe1a3de08c0c942a606caef2e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Oct 08 06:40:24 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Oct 08 06:40:24 2004 +0000"
      },
      "message": "Argh, fix typo.\n"
    },
    {
      "commit": "1b1214273edec92affb7260b62eefed233f54d37",
      "tree": "13e202884324afe5b2716c2a1777a2881262e3ee",
      "parents": [
        "5973ee73f0931d666a733afad8b198ca3b050592"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Oct 08 06:27:23 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Oct 08 06:27:23 2004 +0000"
      },
      "message": "Although we don\u0027t look at current directory for config any more, it\u0027s nice\nto have modified config file here for development.\n"
    },
    {
      "commit": "1cd80845dc5262ff7d3d38deb1921f0b8390f4df",
      "tree": "fc41aebc4470a8467663ccdc6dcc4b91edb75769",
      "parents": [
        "54ade99658ea95bf9207b5547fe6a7b97e64c97a"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Oct 07 20:07:40 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Oct 07 20:07:40 2004 +0000"
      },
      "message": "No warnings here any more.\n"
    },
    {
      "commit": "18a6dce6f83dd20caf1f36c8e840868ff0bf6dbd",
      "tree": "ff832cbf6fe2b239bde06268820587bec671ae6d",
      "parents": [
        "a49c0ff6771975eeb1bd7da923a9dc830200cf65"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 18:18:34 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Oct 03 18:18:34 2004 +0000"
      },
      "message": "Common router id.\n"
    },
    {
      "commit": "aa0b9f912dc1057261fa02fbf5d458f222900af6",
      "tree": "cc78e152912504db7645ed8b985f34462dc44ed4",
      "parents": [
        "d09da92a227105285206ff84f82b325a1e8a7d67"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Sep 28 15:05:56 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Sep 28 15:05:56 2004 +0000"
      },
      "message": "I think that it\u0027s better to report bugs into Bugzilla.\n"
    },
    {
      "commit": "e082ac1dc672b39b219d233775e6467634177f62",
      "tree": "e5c5b686371454fa13ae2b81cdb72006ef84e8ba",
      "parents": [
        "6a99f83175d7b5b5868fb82328d569672b8bb9a4"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Sep 27 18:13:57 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Sep 27 18:13:57 2004 +0000"
      },
      "message": "This code didn\u0027t survive valgrinding. I wonder how it survived normal run.\n"
    },
    {
      "commit": "0dae85e67ada6044ce895b3e64a3a223776eab5b",
      "tree": "8cc72db376fbf4f046d1fc5c084b41cfc8d54d4c",
      "parents": [
        "4289546d79a9d5be800c1c0ec31e82cc8a92a04b"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 19:53:47 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 19:53:47 2004 +0000"
      },
      "message": "Brown paperbag please. Fix previous commit.\n"
    },
    {
      "commit": "f7c43dcbbc44e2098728f9849d152d9b6df97a5d",
      "tree": "b0a244f23dc7f1d9414d7a92316f7f83e3103c5b",
      "parents": [
        "1af8193311192ec1bd2a4d2769e0e9b90bc1609f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 16:24:14 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 16:24:14 2004 +0000"
      },
      "message": "Compiler warnings fixes.\n"
    },
    {
      "commit": "c83dcd3f81ed21c72ad50e56a6c515c7eacac44c",
      "tree": "666a12f12974b60e04057f89a229ec2f8fb11076",
      "parents": [
        "73d1aeada73abf3ca803aea074a1da5c264bf86e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 15:42:44 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 15:42:44 2004 +0000"
      },
      "message": "Compile with gcc-4.0.\n"
    },
    {
      "commit": "73d1aeada73abf3ca803aea074a1da5c264bf86e",
      "tree": "3abea0ade03efc70d7d0b9892543cf1bf41edba7",
      "parents": [
        "26f7a244d0f7e6a658cc48b88613b6919a6f5fbe"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 24 10:45:28 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 24 10:45:28 2004 +0000"
      },
      "message": "* isisd.c: thread_master *master is already defined in isis_main.c.\n* isis_misc.[c|h], isis_lsp.[c|h]: Move static variables out of header\n  files.\n"
    },
    {
      "commit": "52dc7ee65f8d887b0730abc0a5d44d27fc6ecafd",
      "tree": "a557339540c56dd3953c29a50ca0e48c1911efc8",
      "parents": [
        "44983cf8a9c587dfbcad294b9dfe4dccbb68ba98"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 23 19:18:23 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 23 19:18:23 2004 +0000"
      },
      "message": "Remove usage of evil list and listnode typedefs.\n"
    },
    {
      "commit": "d9c427b21a5509a940178dedebec625bd7a9640a",
      "tree": "26e51a185fc6940bdbe1b4a193fcc08a0a64813d",
      "parents": [
        "6785157b6509c83a39db4ad78c60b8ab00914673"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Sep 21 14:23:01 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Sep 21 14:23:01 2004 +0000"
      },
      "message": "Yet another DIS election fix from LIU Xin - update dis_record of\nadjacencies when isisd becomes DIS.\n"
    },
    {
      "commit": "6785157b6509c83a39db4ad78c60b8ab00914673",
      "tree": "d0c8fba9a5770102bd86c903118510aa908ada06",
      "parents": [
        "a211d65dfda5ae4028ec7bb524f85f3f4bae24c2"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Sep 21 14:17:04 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Sep 21 14:17:04 2004 +0000"
      },
      "message": "Make \"C\" vendor routers happy - put correct prefix addresses into\nreachability TLV\u0027s. Somehow it wasn\u0027t problem for \"J\" vendor routers.\n"
    },
    {
      "commit": "a211d65dfda5ae4028ec7bb524f85f3f4bae24c2",
      "tree": "a166f2d4d75c55a6eaf3439c91488a2d34eeab16",
      "parents": [
        "12a5cae75ef639e416d82b88d887c5d77d279aa3"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Sep 20 14:55:29 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Sep 20 14:55:29 2004 +0000"
      },
      "message": "2004-09-20 LIU Xin \u003clx at ns.6test.edu.cn\u003e\n* isis_dr.c, isis_events.c: Remove hello multiplier usage while scheduling\n  DIS election.\n* isis_pdu.c: Don\u0027t call isis_event_dis_status_change() whenever\n  l[1|2]_desig_is is different from hdr.lan_id.\n"
    },
    {
      "commit": "12a5cae75ef639e416d82b88d887c5d77d279aa3",
      "tree": "e59d6a398d6a0bd3eae6d4ab0d0f7ffb6bad5273",
      "parents": [
        "0b3acf4f94241905ff36df5c1d9f9f389e45d191"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 19 19:39:26 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 19 19:39:26 2004 +0000"
      },
      "message": "Rework of SPF threads schedule logic. I\u0027m not 100% sure whether it\u0027s right\nthing to do to have completely separate threads for IPv4 and IPv6 SPF\nthough. But it works and it\u0027s now possible to have both IPv4 and IPv6\nenabled in interface. One bug fixed in LSP regeneration scheduling as well.\n"
    },
    {
      "commit": "bf731011ef7038f5766432fec862301c123d4736",
      "tree": "0761db5a6c161bc6c46421c138de8f4e8cbb5140",
      "parents": [
        "2852de1c90d5bc72493bcdfb8b6df8b24ff2e9d4"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 17 07:59:57 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 17 07:59:57 2004 +0000"
      },
      "message": "Another great little fix from LIU Xin.\n"
    },
    {
      "commit": "90f0c88123d2e65d8853230a108964b37138e2b0",
      "tree": "c6c42371a7df4337cec0ff202b37fff70352821d",
      "parents": [
        "53c997c90d7e20313bfb07d15d83b782d7a6530e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Sep 15 21:46:55 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Sep 15 21:46:55 2004 +0000"
      },
      "message": "There is several new RFCs ...\n"
    },
    {
      "commit": "53c997c90d7e20313bfb07d15d83b782d7a6530e",
      "tree": "6f3299d7bd9a8d3be6914cc7a34acfc2ea2e9071",
      "parents": [
        "bbc9ce2aa3985f3df242d2be49ebcc2bc6dd7f3a"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Sep 15 16:21:59 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Sep 15 16:21:59 2004 +0000"
      },
      "message": "Second part of fixes from Laurent Rabret.\n"
    },
    {
      "commit": "f891f4438d65e93d5a8224b1b579c9c089c91c27",
      "tree": "3d88a45a47f84fc81ca1e5cbb074df395fd44329",
      "parents": [
        "64a7afd6de67eebda09a6766aa27dbd722539363"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Sep 14 13:54:30 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Sep 14 13:54:30 2004 +0000"
      },
      "message": "Isisd is now able to remove addresses from circuit and trigger LSP updates\nif it\u0027s done. Some random fixes as well and update to sample configuration.\n"
    },
    {
      "commit": "64a7afd6de67eebda09a6766aa27dbd722539363",
      "tree": "484ef68fd5f186cb957852f136c8f5f1aeb364f6",
      "parents": [
        "ae399ab0cf6387385cc9958d64309a838467055f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Sep 14 11:05:13 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Sep 14 11:05:13 2004 +0000"
      },
      "message": "isis_pdu.c: Update l1_desig_is only if neighbor really is DIS.\n"
    },
    {
      "commit": "13c48f728080ebe3b20252e124f42f85d240770b",
      "tree": "685efc1bedf96153eaee42a9ed4c1dfce44c78ca",
      "parents": [
        "f390d2c7839c04100e4de8246215ce10ea96b653"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 10 21:19:13 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 10 21:19:13 2004 +0000"
      },
      "message": "Fixes from LIU Xin.\n"
    },
    {
      "commit": "f390d2c7839c04100e4de8246215ce10ea96b653",
      "tree": "9910d250bfb6605d44e7104ef786ba0c84ddb01a",
      "parents": [
        "f3f27f60fdfc81fce2944ee89087417b04935663"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 10 20:48:21 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 10 20:48:21 2004 +0000"
      },
      "message": "Indentation only. No any functional changes.\n"
    },
    {
      "commit": "b7a97f825768bb3e617cb115540c74b65914e628",
      "tree": "7614897d5d668291f854b5283daf424b55a12853",
      "parents": [
        "33f92320e8a6b078a5972d05c8f49487d8edf19c"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Jul 23 16:23:56 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Jul 23 16:23:56 2004 +0000"
      },
      "message": "(somewhat unrelated cleanups, but all are very minor)\n\n2004-07-23  Greg Troxel  \u003cgdt@poblano.ir.bbn.com\u003e\n\n\t* */Makefile.am: Use ../dir/libfoo.la, rather than \"-L../dir\n\t-lfoo\", to avoid linking against installed libraries from a\n\tprevious version.\n\n\t* {lib,ospfd,ospfclient}/Makefile.am: explicitly define the shared\n\tlibrary version number to be 0.0\n\n\t* configure.ac: remove spurious , so extract.pl is chmod\u0027d +x.\n\n\t* HACKING: explain shared library versioning rules\n"
    },
    {
      "commit": "9f9aebdd152bb9ac3f020d21170c53dd0bcec71d",
      "tree": "1569971c28eea774b03c9119c83412a38e05c802",
      "parents": [
        "e01f9cbb87123217ac6d88c12ddb784fca9cc5b7"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 17:52:39 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 17:52:39 2004 +0000"
      },
      "message": "cvsignore *.libs in build dirs\n"
    },
    {
      "commit": "e3bee3b4cdc3a9b108d7b331c99705ffdb071dc4",
      "tree": "7e6d84fc6454445596f88e24a5aa0beeeccfcb17",
      "parents": [
        "b06c14f2e7cac5a2170f9d64182a99dbbc413674"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 12:38:23 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 09 12:38:23 2004 +0000"
      },
      "message": "Update cvsignore\u0027s for *.lo and *.la - libtool files\n"
    },
    {
      "commit": "87efd646ffef693235d9d29b005a1467373c51bd",
      "tree": "85d43e323abb1de6b1ddb6e889f9d580fdb8546d",
      "parents": [
        "f2bfdee5f9db5363fcd13763eca3fda729067d57"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Jun 30 17:36:11 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Jun 30 17:36:11 2004 +0000"
      },
      "message": "Add libtool support.\n\nlibzebra and libospfapiclient are now built shared, and linked shared\nwith the daemons.  This reduces the memory needed when running\nmultiple daemons; each daemon is at least 150k smaller.  Static\nlibraries are still built, and libtool should use them on platforms\nwhich don\u0027t have shared libaries.  As with autoconf, the user of a\ndistribution does not need libtool; one just needs that to build from\nCVS.\n\nlibospf.a is still a non-shared library, and still installed, not\nbecause that makese sense, but because I don\u0027t understand why it is\nthe way it is now.\n\nNote that the tree was tagged \u0027libtool-before\u0027 just before this commit.\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": "d26ca6a976421b09ee6c4e5ac699075b6f549584",
      "tree": "447ea71cea6be30ec26194069e7d61acd211ba8a",
      "parents": [
        "074a917aeb16061440d932c1f3ffccd7afc475a1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 06 15:25:35 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 06 15:25:35 2004 +0000"
      },
      "message": "CVS ignore Linux NFS silly-delete .nfs* files\n"
    },
    {
      "commit": "84016977c040611b3901e83b7eee436b982b51fb",
      "tree": "71b45139a8c5f34652b8b382223a7e320af513a9",
      "parents": [
        "5228ad27e2f3abe0ebb69f66607aedc048b94a13"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 06 07:51:08 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 06 07:51:08 2004 +0000"
      },
      "message": "Add .cvsignore for isisd/topology\n"
    },
    {
      "commit": "62843e433d8f85bce381edc6202c4af6c5cec31b",
      "tree": "f58d372dd6ac4c45073d1fd08620cdc9ffe3f1c2",
      "parents": [
        "00995cfcc9cb30afabb3242837753ab1eb7fdb85"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed May 19 18:45:03 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed May 19 18:45:03 2004 +0000"
      },
      "message": "Fixing crash fix attempt. It\u0027s still mess and logic is wrong and ... but at\nleast periodic spf works again.\n"
    },
    {
      "commit": "00995cfcc9cb30afabb3242837753ab1eb7fdb85",
      "tree": "fbfebfd74d22b29eb9b7bc279a4d6fd2beec4def",
      "parents": [
        "37da8c011408560eeaa74b2439192d36e16c19a4"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed May 19 13:43:50 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed May 19 13:43:50 2004 +0000"
      },
      "message": "Commit 100% working part of patch from Laurent Rabret ([quagga-dev 830]).\nAlso tiny temporary fix from me to spf thread crash. Will look at it later.\n"
    },
    {
      "commit": "37da8c011408560eeaa74b2439192d36e16c19a4",
      "tree": "38c7a0f93ec030bbb1cf4067713c69257ddbc662",
      "parents": [
        "3b4cd3a9e89a5aace04a6a756bd0d23b7108fd83"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed May 19 11:38:40 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed May 19 11:38:40 2004 +0000"
      },
      "message": "Make it compile in NetBSD and OpenBSD.\n"
    },
    {
      "commit": "0a5893596774554f039222c481d235de0f35d99e",
      "tree": "065ba74422d21193637d6e3f8b52c0eaa09a13bf",
      "parents": [
        "225282994d74f767058886475d80fee95d450eae"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 08 11:48:26 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 08 11:48:26 2004 +0000"
      },
      "message": "2004-05-08 Paul Jakma \u003cpaul@dishone.st\u003e\n\n       * bgp_zebra.c: (bgp_interface_address_add) sync to zclient changes\n         (bgp_interface_address_delete) ditto.\n         (bgp_zebra_announce) ditto.\n         (bgp_zebra_withdraw) ditto.\n       * isis_zebra.c: Sync with zclient changes.\n       * zclient.c (zapi_ipv4_route) Follow Sowmini\u0027s lead and describe\n         message format.\n       * ospf6_zebra.c: Sync to zclient changes\n       * ospf_zebra.c: Sync with lib/zclient changes\n       * rip_zebra.c: sync with zclient changes.\n       * rip_interface.c: ditto.\n       * ripng_{interface,zebra}.c: sync with zclient changes\n\n\n2004-05-08 Sowmini Varadhan \u003csowmini.varadhan@sun.com\u003e\n\n       * zclient.c: (zapi_ipv4_add) collapsed into zapi_ipv4_route\n         (zapi_ipv4_delete) ditto.\n         (zapi_ipv4_route) add/delete a route by way of cmd arg.\n         (zapi_ipv6_add) collapsed into zapi_ipv6_route.\n         (zapi_ipv6_delete) ditto.\n         (zapi_ipv6_route) add/delete a route by way of cmd arg.\n         (zebra_interface_address_delete_read) collapsed into\n         zebra_interface_address_read.\n         (zebra_interface_address_delete_read) ditto.\n         (zebra_interface_address_read) read address add/delete messages\n         by way of type argument. Describe command message format.\n         (zebra_interface_add_read) Unconditionally read new ifmtu6 field.\n         Describe command message format.\n         (zebra_interface_state_read) Unconditionally read new ifmtu6 field.\n         (zclient_redistribute_set) Collapsed into zclient_redistribute\n         (zclient_redistribute_unset) ditto\n         (zclient_redistribute) set/unset redistribution.\n         (zclient_redistribute_default_set) Collapsed into\n         zclient_redistribute_default.\n         (zclient_redistribute_default_unset) ditto.\n         (zclient_redistribute_default) Redistribute default set/unset.\n       * zclient.h: delete zapi_ipv{4,6}_add, zapi_ipv{4,6}_delete. Add\n         zapi_ipv{4,6}_route. delete zclient_redistribute_set/unset. Add\n         zclient_redistribute. Ditto for\n         zclient_redistribute_default_{set/unset}.\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": "c3aac6ff4f67d2dff5288e55be1853abc61f40e5",
      "tree": "017cce5798630505ad0daa3a92f5b078515fda8a",
      "parents": [
        "eb26037b73991750392c6deaad09f2fd7600ebee"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Feb 20 18:44:21 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Feb 20 18:44:21 2004 +0000"
      },
      "message": "Fix vty address handling and added pid file stuff.\n"
    },
    {
      "commit": "d70f99e15b7849f59b970bd62392ed42bda25ab6",
      "tree": "ed59bcf87fa39e18ef82e21ae59fa9e842622a67",
      "parents": [
        "83fe45e30e12eb8af8b7cc413e1ae5ef81bde97e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 11 20:26:31 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Feb 11 20:26:31 2004 +0000"
      },
      "message": "Threads usage cleanup. Still at least one bug to go.\n"
    },
    {
      "commit": "83fe45e30e12eb8af8b7cc413e1ae5ef81bde97e",
      "tree": "ade82e652982603e0b9de20e104e484f7a11b95b",
      "parents": [
        "38a61c7306217d968ca83aaff4d6ef5806d4794f"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Feb 09 11:09:39 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Feb 09 11:09:39 2004 +0000"
      },
      "message": "Yet another \"set thread pointer to NULL during thread run\" fix.\n"
    },
    {
      "commit": "38a61c7306217d968ca83aaff4d6ef5806d4794f",
      "tree": "584cb7761189b0bc922fe860e02390527f71d063",
      "parents": [
        "54301ce06d74cbe2206c694d9d1dfb6fcea5e436"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jan 27 13:40:14 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jan 27 13:40:14 2004 +0000"
      },
      "message": "Fixing previous commit.\n"
    },
    {
      "commit": "54301ce06d74cbe2206c694d9d1dfb6fcea5e436",
      "tree": "ffe62cc40c9a284ff6d920762461dff1132c97cc",
      "parents": [
        "931cd54d52b9b034f8bf8b634e99bc2444d5094e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jan 27 10:07:34 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Jan 27 10:07:34 2004 +0000"
      },
      "message": "Make \"(no) ip address x.x.x.x/x\" commands work again in vtysh.\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": "efc1e725778b55917962092ee9d0f735c9ef54dc",
      "tree": "a88d572290c1ec4feb6210c06aad430d85b55858",
      "parents": [
        "15d74e93405f0f9bb9e399163b8e53bb589699d6"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 31 20:33:23 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Dec 31 20:33:23 2003 +0000"
      },
      "message": "Fix some threads related problems [quagga-dev 591].\n"
    },
    {
      "commit": "41ad87809198dfb2cfc769d77592afaf41a2f8f0",
      "tree": "2463895c60eb20e4deec0baeafee8f993a84e951",
      "parents": [
        "10d60ad1ca677a298902beb83387363bb863fd68"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Dec 30 11:09:00 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Dec 30 11:09:00 2003 +0000"
      },
      "message": "2003-12-30 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * Makefile.am: put the redhat/ stuff into EXTRA_DIST rather than\n          copying via dist-hook. Remove ~ files backup cruft from dists.\n          isisd/Makefile.am: sysconf example should go via\n          dist_examples_DATA. The include-netbsd/ headers werent mentioned\n          as sources and werent being copied into dists.\n"
    },
    {
      "commit": "9f1b6db9b58852e250de01e5c8e85acd9b079037",
      "tree": "7537a833e09cd0fabe8d28ade224632c2b70d628",
      "parents": [
        "2097cd8a7a1322b2853f1b9cbbe7f39c436f553e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Dec 23 14:55:12 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Dec 23 14:55:12 2003 +0000"
      },
      "message": "Remove generated file.\n"
    },
    {
      "commit": "2097cd8a7a1322b2853f1b9cbbe7f39c436f553e",
      "tree": "ab849230440ac6429f6d2caea41d36cb893f0c8d",
      "parents": [
        "5a514b14c706d671a041862c072af08a2baab98e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Dec 23 11:51:08 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Dec 23 11:51:08 2003 +0000"
      },
      "message": "Some fixes to isisd done by me and Cougar in the spring of 2003. See\nchangelog for details.\n"
    },
    {
      "commit": "e3c43e2f8b0600fdd9197f99b93441605e48c284",
      "tree": "3f01af4ba5ccaed670ac38cc765d16b194705e8b",
      "parents": [
        "ba6dffec3c9936cf33c71ff16dd890aa1d6b108c"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Dec 23 10:45:49 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue Dec 23 10:45:49 2003 +0000"
      },
      "message": "Add .cvsignore\n"
    },
    {
      "commit": "fc58e874706b637bf2943a547a1913c4908157e6",
      "tree": "374236d0a09ab206e74dfa745782cf5cede81804",
      "parents": [
        "c25e458a4de6b3fc9089fbc21b0ef4a6ba8e6018"
      ],
      "author": {
        "name": "jardin",
        "email": "jardin",
        "time": "Tue Dec 23 10:42:45 2003 +0000"
      },
      "committer": {
        "name": "jardin",
        "email": "jardin",
        "time": "Tue Dec 23 10:42:45 2003 +0000"
      },
      "message": "2607/tcp is already used by ospfapi.\nLet\u0027s use 2608/tcp for isisd.\n"
    },
    {
      "commit": "9e867fe663c4eb43c36f35067c0dd092e8c83c14",
      "tree": "f29461b6a2dc8c38037dc0cf91e70392f9ed4ab2",
      "parents": [
        "eb5d44eb8dcf25a1b328e57d1eabb1f89e3bc59b"
      ],
      "author": {
        "name": "jardin",
        "email": "jardin",
        "time": "Tue Dec 23 08:56:18 2003 +0000"
      },
      "committer": {
        "name": "jardin",
        "email": "jardin",
        "time": "Tue Dec 23 08:56:18 2003 +0000"
      },
      "message": "Merge isisd into the Quagga\u0027s framework:\n  - add privs support\n  - use misc quagga\u0027s definitions\n  - make it compile\"able\"\n  - fix segfault cases related to hostname()\n  - add debug isis xxx command\n\nThis patch has been approved by Paul Jakma.\n"
    },
    {
      "commit": "eb5d44eb8dcf25a1b328e57d1eabb1f89e3bc59b",
      "tree": "2973e8563fcbd4a8cf901d211ff4f8de00c36381",
      "parents": [
        "3dbf99698a3be2e920871c3127ea089e061a127c"
      ],
      "author": {
        "name": "jardin",
        "email": "jardin",
        "time": "Tue Dec 23 08:09:43 2003 +0000"
      },
      "committer": {
        "name": "jardin",
        "email": "jardin",
        "time": "Tue Dec 23 08:09:43 2003 +0000"
      },
      "message": "Initial revision\n"
    }
  ]
}
