)]}'
{
  "log": [
    {
      "commit": "8f228de7b3f9d6f641c75b27ac7ac6e5862cf804",
      "tree": "16af34ad6f3f792c1175ae4cc92bab31cdcd5dcf",
      "parents": [
        "e7a6d80d4fe70a546a33ffe063f182252237ccd8"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Wed Nov 10 13:02:11 2010 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Mar 21 13:31:16 2011 +0000"
      },
      "message": "ospf6d: Extend the \"[no] debug ospf6 route\" vty commands\n\n* ospf6_route.c ([no_]debug_ospf6_route) Include memory as a debug\n  option.  This allows ospf6 route memory debugging to be enabled or\n  disabled interactively or from a config file.\n"
    },
    {
      "commit": "e7a6d80d4fe70a546a33ffe063f182252237ccd8",
      "tree": "d0315314a3772846fef416f027ec42b445fb0ce9",
      "parents": [
        "ae2254aa7f2eb7436734f497658f1f26f4bf37c7"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Wed Nov 10 13:03:02 2010 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Mar 21 13:31:16 2011 +0000"
      },
      "message": "ospf6d: Route locking (memory) cleanup\n\n* ospf6_route.c: (ospf6_route_best_next) Allows unlock route, even\n  when there\u0027s no next route.  This is consistent with how\n  ospf6_route_next() behaves.\n\n* ospf6_intra.c: (ospf6_intra_prefix_lsa_remove) Make sure the last\n  route considered is always unlocked.  This is needed when the for\n  loop terminates because ospf6_route_is_prefix() returns zero.\n"
    },
    {
      "commit": "ae2254aa7f2eb7436734f497658f1f26f4bf37c7",
      "tree": "8734f0e2aa855b90d9ec5cb961cd9990b5574905",
      "parents": [
        "fd795eb89cc421097f6580016ea9fbd3585d07bb"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Wed Nov 10 13:01:41 2010 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Mar 21 13:31:16 2011 +0000"
      },
      "message": "ospf6d: Have ospf6d cleanup when it terminates normally\n\nA clean exit makes it easier to use memory debuggers.\n\n* ospf6_asbr.c: (ospf6_asbr_terminate) Add a function to do route map\n  cleanup.\n* ospf6_lsa.c: (ospf6_lsa_terminate) Add a function to cleanup the lsa\n  handler vector.\n* ospf6_main.c: (ospf6_exit) Add an function that causes ospf6d to\n  gracefully exit.\n* ospf6_message.c: (ospf6_message_terminate) Add a function that frees\n  the send and receive buffers.\n* ospf6_top.c: (ospf6_delete) Enable the ospf6_delete() function.\n  Disable ospf6 before freeing everything.\n"
    },
    {
      "commit": "fd795eb89cc421097f6580016ea9fbd3585d07bb",
      "tree": "a8d49db03924483ad0662294f2a8f44f4f5a6d66",
      "parents": [
        "1d19234e79c77a7d55194b513f2a77c6a691bc2c"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Wed Nov 10 13:03:23 2010 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Mar 21 13:31:16 2011 +0000"
      },
      "message": "ospf6d: Remove obsolete code\n\n* ospf6_area.c: (ospf6_area_delete) Get rid of unused code that refers\n    to a nonexistent function and structure member.\n"
    },
    {
      "commit": "1d19234e79c77a7d55194b513f2a77c6a691bc2c",
      "tree": "4daf54c79e1cc3c3c6fa3ca66cfccb68770b3dd1",
      "parents": [
        "7e69d993673597334b1e1b3d1072a4c064f293d5"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Wed Nov 10 13:02:38 2010 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Mar 21 13:31:16 2011 +0000"
      },
      "message": "ospf6d: Fix memory allocation issues in SPF\n\n* ospf6_area.c: Call ospf6_spf_table_finish() before deleting the spf\n    table.  This ensures that the associated ospf6_vertex structures\n    are also freed.\n* ospf6_spf.c: Only allocate a priority queue when a spf calculation\n    is actually performed.  Also defer calling ospf6_spf_table_finish().\n"
    },
    {
      "commit": "403138e189c24f6867824c4eeb668d11564e1ca0",
      "tree": "436c9c428ad21fe1718ad083c790c1bf7d077f52",
      "parents": [
        "b729294c8c5c6f2af8ddf6cfbea2374b6faabe9d"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Thu Jan 13 18:25:40 2011 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Jan 13 18:25:40 2011 +0300"
      },
      "message": "ospf6d: fix crash in SPF calculation\n\n* ospf6_spf.c: Don\u0027t replace a node with another node with a lower\n  number of hops, instead get them from the queue in the correct\n  order. (Actually, the replacement crashed the ospf6d daemon\n  rather than worked.)\n"
    },
    {
      "commit": "2470e99e828c098d2d03f8d693853cbe69e3fb6f",
      "tree": "19e1526814455301a244af928fe2c3d553ec3100",
      "parents": [
        "85c4968bb1432ddc7c059893fdee2c976bbee937"
      ],
      "author": {
        "name": "David Ward",
        "email": "david.ward@ll.mit.edu",
        "time": "Tue Jan 05 02:45:39 2010 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Wed Apr 28 19:30:17 2010 -0400"
      },
      "message": "ospf6d: Fix crash when \u0027[no] ipv6 ospf6 advertise prefix-list\u0027 is in startup-config\n\n* ospf6_interface.c: When \u0027[no] ipv6 ospf6 advertise prefix-list\u0027\n  appears in the startup configuration for ospf6d, a crash occurs,\n  because ospf6d attempts to schedule LSAs when the \u0027oi-\u003earea\u0027\n  structure has not yet been initialized.\n\n  Now, when the command above is issued (either in the startup\n  configuration or at runtime), ospf6d will only schedule LSAs if\n  the \u0027oi-\u003earea\u0027 structure has been initalized. A similar test is\n  already used when handling the commands \u0027ipv6 ospf6 priority\u0027\n  and \u0027ipv6 ospf6 cost\u0027.\n"
    },
    {
      "commit": "e580216e1ba2db506d1942e382852d07973a5fad",
      "tree": "1932075db93d8989bcbd7b76c0603a00f5bb4647",
      "parents": [
        "813f6a0064e76fdc8d509ddfbd4d3870d7027850"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Dec 10 16:18:41 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Dec 10 16:18:41 2009 +0300"
      },
      "message": "ospf6d: remove dead code\n\n* ospf6d/ospf6_interface.c\n  * loopind(): sayonara\n* ospf6d/ospf6_top.c\n  * ospf6_delete(): comment out, it might be useful if real shutdown is\n    added\n"
    },
    {
      "commit": "813f6a0064e76fdc8d509ddfbd4d3870d7027850",
      "tree": "eed75fc5da5c0a4dd5dcd20bc8c7c2523b6fd32d",
      "parents": [
        "5eb9d11bf6bbe99ce47f929a14ac03351f21fe27"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Dec 10 16:13:09 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Dec 10 16:13:09 2009 +0300"
      },
      "message": "ospf6d: fix warnings from recent prefix bit commit\n\n* lib/prefix.h\n  * prefix6_bit(): add IPv6 wrapper for prefix_bit()\n* ospf6d/ospf6_lsdb.c\n  * ospf6_lsdb_type_router_head(): employ prefix6_bit()\n  * ospf6_lsdb_type_head(): idem\n"
    },
    {
      "commit": "1352ef32d70dcc102074814de63b5d08e591dd2d",
      "tree": "a0a4a40bf9a7726914f76cfa3a108529c7cc59df",
      "parents": [
        "3949a60c350fea947d2701e2fe709b174ae7af16"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Dec 09 14:43:17 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 09 14:43:17 2009 +0300"
      },
      "message": "lib: move check_bit into prefix common code\n\nMake one version of check prefix bit, and put it inline\nwith proper prototype. This gets rid of some macro\u0027s and also some\nassert() that can never happen on a non-broken compiler.\n\n* bgpd/bgp_table.c\n  * CHECK_BIT(): sayonara\n  * check_bit(): sayonara\n  * SET_LINK(): sayonara\n  * set_link(): make use of prefix_bit() instead of check_bit()\n  * bgp_node_match(): idem\n  * bgp_node_lookup(): idem\n  * bgp_node_get(): idem\n* lib/prefix.h\n  * prefix_bit(): new inline version of check_bit()\n* lib/table.c\n  * CHECK_BIT(): sayonara\n  * check_bit(): sayonara\n  * SET_LINK(): sayonara\n  * set_link(): make use of prefix_bit() instead of check_bit()\n  * route_node_match(): idem\n  * route_node_lookup(): idem\n  * route_node_get(): idem\n* ospf6d/ospf6_lsdb.c\n  * CHECK_BIT(): sayonara\n  * ospf6_lsdb_lookup_next(): make use of prefix_bit() instead of\n    CHECK_BIT()\n  * ospf6_lsdb_type_router_head(): idem\n  * ospf6_lsdb_type_head(): idem\n* ospf6d/ospf6_route.c\n  * CHECK_BIT(): sayonara\n  * ospf6_route_match_head() make use of prefix_bit() instead of\n  * CHECK_BIT()\n"
    },
    {
      "commit": "64bf3ab7291cc5c39c5add0dc1a7de447914248b",
      "tree": "d5ae874814083d89815e6c521b42d0f3eaaec69c",
      "parents": [
        "2eb445e1c22e36d07e2dbfd302ff438c4190b9fe"
      ],
      "author": {
        "name": "Ondrej Zajicek",
        "email": "santiago@crfreenet.org",
        "time": "Mon Dec 07 12:33:20 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Dec 07 12:33:20 2009 +0300"
      },
      "message": "ospf6d: review LSA sequence number comparison\n\nIt seems that there is a bug in ospf6d in ospf6_lsa_compare(): If LSA A\nhas sequence number smaller than 0x80000000 and LSA B has sequence\nnumber larger than 0x80000000, ospf6_lsa_compare() returns that B is\nmore recent than A, although RFC says that sequence numbers should be\ncompared as signed numbers (0x8000001 smallest and 0x7FFFFFFF largest).\n\nIn ospfd, the function ospf_lsa_more_recent() has it right.\n\nThe problem appears when Quagga is used together with OSPFv3 in\ndevelopment version of BIRD daemon ( http://bird.network.cz/ ),\nwhich creates LSAs with maximum sequence number (0x7FFFFFFF)\nas a part of flushing/premature aging LSA from OSPF area.\n\nBecause both daemons has different idea of which LSA instance\nis more recent, it would lead to LSA storm.\n"
    },
    {
      "commit": "16c1c4872b29bb22c0ff77bd1ef1018c63ca25fa",
      "tree": "06813f6d1b703649757f3eedf829e7afddfe5c42",
      "parents": [
        "9964fcfc2282c8f3468b3b7355c5dea3089f0f14"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Tue Dec 01 21:12:38 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 01 21:12:38 2009 +0300"
      },
      "message": "ospf6d: fix LSA locking in ospf6_new_ls_id()\n\n* ospf6_lsdb.c: (ospf6_new_ls_id) Unlock the current LSA when breaking\nout of the ospf6_lsdb_*_head() / ospf6_lsdb_*_next() loop early. No\nexplicit unlocking is needed when all LSAs are looped through\nbecause ospf6_lsdb_*_next() manages everything in that case.\n"
    },
    {
      "commit": "aabbb1ae358a3fd9af011cddc1a67dfa0b3df2d2",
      "tree": "04ce8d205c0242f93037873f92e8a6f8dc24927a",
      "parents": [
        "d1c21cabdbeeb4d12049f39579c602686eb94927"
      ],
      "author": {
        "name": "Tom Henderson",
        "email": "tomh@tomh.org",
        "time": "Fri Aug 28 15:10:00 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 28 15:10:00 2009 +0100"
      },
      "message": "ospf6d: bug #529, fix endianness problem in earlier commit \n\n* ospf6_lsa.c: (ospf6_lsa_age_current) arithmetical compares make no sense\n  in non-host order..\n\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": "30d205909c5a81cc306b161c16abff0fd7f566a7",
      "tree": "6f7532a4336cf601bbeab07d2669639a05409dfd",
      "parents": [
        "d023aec49f70156d2ed894a8fba65bcfa221ff02"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Jul 28 11:58:51 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jul 28 11:58:51 2009 +0100"
      },
      "message": "[global] interface flags format warnings\n\n*/*: ifp-\u003eflags is 64 bit unsigned which can not be handled by %l on 32\n     bit architectures - requires %ll and the appropriate cast.\n"
    },
    {
      "commit": "9b4ef258a9d9c5f1052afe0e19ebaef9f6740fa2",
      "tree": "7deb3abfbddadc9c15300c1a6702549e918db5dc",
      "parents": [
        "41b2373cece77f0cc9a06fba076c99a7be653593"
      ],
      "author": {
        "name": "Tom Henderson",
        "email": "tomh@tomh.org",
        "time": "Thu Jul 16 17:20:37 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jul 16 17:20:37 2009 +0100"
      },
      "message": "[ospf6d] Fix regression in monotonic time patch - LSA max-aging broke\n\n* ospf6_lsa.c: (ospf6_lsa_premature_aging) set age to MAX_AGE - don\u0027t\n  rely on 0 magically meaning same.\n  (ospf6_lsa_age_current) handle MAXAGE.\n"
    },
    {
      "commit": "86f72dcba35f055b5344deeb5f057c2f1d9a291f",
      "tree": "b128af27119cf27a709423814709a5a0bde98bae",
      "parents": [
        "f7e0db80693aea7f5fd3d8d4f00e97347c8d0ba5"
      ],
      "author": {
        "name": "Takashi Sogabe",
        "email": "sogabe@iij.ad.jp",
        "time": "Mon Jun 22 13:07:02 2009 +0900"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jun 22 12:21:22 2009 +0100"
      },
      "message": "Convert ospf6d over to quagga_gettime() wrappers.\n"
    },
    {
      "commit": "66a11e76d4a8ee18c4e79c06d25814b9aa94e45d",
      "tree": "218fe76bc1a99cc659bc556a329dbb7c407e09f9",
      "parents": [
        "56abbb886f6ad8dce9dd7d336d010861ca9dd2b9"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@debian.(none)",
        "time": "Wed Feb 11 23:55:32 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:27 2009 +0100"
      },
      "message": "[ospf6d] Remove \u0027no router\u0027 from OSPF6_NODE\n\nDon\u0027t need command twice.\n"
    },
    {
      "commit": "56abbb886f6ad8dce9dd7d336d010861ca9dd2b9",
      "tree": "0f59dd6d66e5c1647c4d2ffc0a270fbe0cb000f3",
      "parents": [
        "597fa7c185e34aac7bc1df22263e9414bccd9a9f"
      ],
      "author": {
        "name": "Jon",
        "email": "jonirucoeith@gmail.com",
        "time": "Wed Feb 11 17:30:44 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:26 2009 +0100"
      },
      "message": "[ospf6d] Fix ospf6d crash if removing interface with no area\n\nospf6d will crash if attempting to remove interface when no areas have been\ndefined Check if any areas have been defined.  Should prevent use of empty\npointer.\n"
    },
    {
      "commit": "597fa7c185e34aac7bc1df22263e9414bccd9a9f",
      "tree": "aa4634cb994a97ea13784c85dea3331ab267b9de",
      "parents": [
        "6c19d26a019da198ea7e181731b8eb9553725f2d"
      ],
      "author": {
        "name": "Jon",
        "email": "jonirucoeith@gmail.com",
        "time": "Wed Feb 11 17:27:06 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:26 2009 +0100"
      },
      "message": "[ospf6d] Fix ospf6d crash in show border routers\n\nospf6d will crash if this command is executed on a non-border-router.\nIncluded test to verify that any routes are defined, preventing empty\npointer from being used.\n"
    },
    {
      "commit": "6c19d26a019da198ea7e181731b8eb9553725f2d",
      "tree": "2862bede64030129e00b5082f8312819a53da28a",
      "parents": [
        "86f9e5a7f3a80d6df13a9750d2148693daa14c8d"
      ],
      "author": {
        "name": "Jon",
        "email": "jonirucoeith@gmail.com",
        "time": "Wed Feb 11 17:19:07 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:26 2009 +0100"
      },
      "message": "[ospf6] Add no router ospf6\n\nSuggestion: Makes no sense to me that the statement to remove ospf6\nconfiguration is located in OSPF6D_NODE.\nMoved to CONFIG_NODE next to matching define command.\n"
    },
    {
      "commit": "86f9e5a7f3a80d6df13a9750d2148693daa14c8d",
      "tree": "6cdcdb8954556cd4c5b6bc7dce900746e59b1ddd",
      "parents": [
        "965f54f5ef0bd601cf129bd4b964863251313ec9"
      ],
      "author": {
        "name": "Jon",
        "email": "jonirucoeith@gmail.com",
        "time": "Wed Feb 11 17:22:03 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:26 2009 +0100"
      },
      "message": "[ospf6d] Fix ospf6d crash if range defined twice\n\nospf6d will crash if the same range is defined twice.\nThere was no check if the same range had previously been defined,\nthereby causing a later assert to fail.\n"
    },
    {
      "commit": "7fc626de5f618133ad2a478d13defa3a110b89ea",
      "tree": "432ff0e4672eabc2ec6b0dcffc22dcc0aee532c8",
      "parents": [
        "66e5cd87194ae6fdd51061a91b4698bc0a652f6b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Dec 01 11:10:34 2008 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 17:10:29 2009 +0100"
      },
      "message": "[cleanup] Make command nodes static\n\nThe cmd_nodes used to configure vty, can mostly be static so\n(basic data hiding 101).\n"
    },
    {
      "commit": "393deb9bd663361e6b110d579a8b1d4c22667068",
      "tree": "e93ebf2f57bf92ff7a9cd045764b3cdbb99a07e5",
      "parents": [
        "3453a7122c1d585ad789ed0f63deb90cc5e89fae"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Aug 18 14:13:29 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 17:07:49 2009 +0100"
      },
      "message": "[cleanup] Convert XMALLOC/memset to XCALLOC\n\nSimple conversion of XMALLOC/memset to XCALLOC\n"
    },
    {
      "commit": "0be8dfb2a95f41f100982085595b7c7505127018",
      "tree": "add7218b0c518ac0cd276c74fe700b5ed1f26762",
      "parents": [
        "42176e6b01c9ca2b2725952684b2d7792468e861"
      ],
      "author": {
        "name": "Chris Caputo",
        "email": "ccaputo@alt.net",
        "time": "Tue Jun 02 18:40:07 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 02 18:45:10 2009 +0100"
      },
      "message": "[snmp] Compiler warning fixes for when \"--enable-snmp\" is configured.\n\nCompiled on 32-bit and 64-bit linux gcc 4.1.2 platforms.\nNo run-time testing on 32-bit and limited run-time testing on 64-bit.\n"
    },
    {
      "commit": "fb62a3cef5960885119f9e87c833520ddf2a9b49",
      "tree": "cf6c5cde38c91ad555021f44793b92fd34de8198",
      "parents": [
        "b38309a4ee831a440ef78f8a27db584f2f8e8276"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Tue May 13 20:03:32 2008 +0200"
      },
      "committer": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Mon Aug 25 09:48:30 2008 +0200"
      },
      "message": "Make --enable-snmp cross compile and make libcrypto optional with --without-crypto\n\nAutoconfig work by me, the rest was done by\n\"Kirill K. Smirnov\" \u003clich@math.spbu.ru\u003e\n"
    },
    {
      "commit": "5515de330cf6c5449c0a56862072750b07d23fd7",
      "tree": "4651f48d94ba97117d84fdaa2210563676adc8df",
      "parents": [
        "d68cbf9261869e532dfdd14dbb4122b3f3feb0d4"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Mar 21 12:41:22 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 20:02:08 2008 +0100"
      },
      "message": "[administrivia] Update gitignore files\n\n- Add more stuff, archive libraries, etc..\n"
    },
    {
      "commit": "d68cbf9261869e532dfdd14dbb4122b3f3feb0d4",
      "tree": "5cc873e6a38a3db9ad5fb4dfe579624ff7693c13",
      "parents": [
        "3998bfd76620a676fbd77f19c5c6ea80a4cc88d2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Oct 21 18:35:27 2006 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 20:00:46 2008 +0100"
      },
      "message": "[administrivia] Git should ignore backup files and .loT files\n"
    },
    {
      "commit": "3998bfd76620a676fbd77f19c5c6ea80a4cc88d2",
      "tree": "66bf93340e55bb06b25544ef04afec3749269391",
      "parents": [
        "e5248434c0d287668be956a2bd52399d67b16c39"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Aug 19 14:13:43 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:57:22 2008 +0100"
      },
      "message": "[trivia] Remove ChangeLog files, as this data is now maintained in SCM\n"
    },
    {
      "commit": "6ac29a51075def99217a4ab1015635db3b3e83ed",
      "tree": "1152b55eb3a2099c67a0ba8e62d7e41f07e00135",
      "parents": [
        "1423c809cc4ddc2e013ba6264c49a11e5719c6f2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Aug 15 13:45:30 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:58 2008 +0100"
      },
      "message": "[trivia] finish off static\u0027ification of ospf6d and ripngd\n\n2008-08-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* {ospf6d,ripngd}/*: Finish job of marking functions as static, or\n\t  exporting declarations for them, to quell warning noise with\n\t  Quagga\u0027s GCC default high-level of warning flags. Thus allowing\n\t  remaining, more useful warnings to be more easily seen.\n"
    },
    {
      "commit": "46bc0e432e756fcb8fc4f703b47cd25b9fc7139c",
      "tree": "60100ca1e11c3c3600441d366b236f4a2de519ca",
      "parents": [
        "d664ae1182c29b74b409bc8594b7bd0575e91ce9"
      ],
      "author": {
        "name": "Paul P Komkoff Jr",
        "email": "i@stingr.net",
        "time": "Wed Aug 13 16:17:04 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:12 2008 +0100"
      },
      "message": "[build] Test for GNU-style PIE support in toolchain and enable\n\n2008-08-13 Paul P Komkoff Jr \u003ci@stingr.net\u003e\n\n\t* configure.ac: add a configure flag and autoconf macro, which will\n\t  determine if your toolchain supports PIE.\n\t* */Makefile.am: add corresponding CFLAGS and LDFLAGS into\n\t  appropriate places.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "3c5a0a4f8fe3811affff6d5e123379eedb083571",
      "tree": "79e285e0bd04c6ef0dfcde9cf0ce8fda8abecbe1",
      "parents": [
        "750e814693050bc97391eec618aad9db798ee5e8"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Feb 19 17:30:10 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:49:33 2008 +0100"
      },
      "message": "[administrivia] Add .gitignore files, based on .cvsignores.\n"
    },
    {
      "commit": "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": "dea04441fb51f74dc25f6ab4bd756b4159d961b6",
      "tree": "95a4578d95f20dd0dc168d07a90ea9cf71d6047f",
      "parents": [
        "d38e8d63fdfc0aefb78d0a51ffdf06d8b47993fd"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 26 09:16:09 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 26 09:16:09 2008 +0000"
      },
      "message": "[c++] remove/rename some names in headers that clash with C++ reserved words\n\n2008-01-30 Peter Szilagyi \u003csp615@hszk.bme.hu\u003e\n\n\t* lib/stream.h: Remove named \u0027new\u0027 parameter in prototype\n\t  for c++ header compatibility.\n\t* ospfd/ospf_opaque.h: ditto\n\t* ospfd/ospfd.h: Renamed struct export to _export for c++\n\t  header compatibility.\n\t* ospf6d/ospf6_area.h: ditto\n"
    },
    {
      "commit": "fbdbf1281660de877ef687a82145e82934f35744",
      "tree": "15ba59e954cf816e5159a4c034c118f994b88057",
      "parents": [
        "a56ef88348be9f019631d6bc92801aae647be05b"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Oct 22 18:34:41 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Oct 22 18:34:41 2007 +0000"
      },
      "message": "[ospf6d] Fix removal of defunct ASBR routes\n\n2007-10-22 Phil Spagnolo \u003cphillip.a.spagnolo@boeing.com\u003e\n\n\t* ospf6_asbr.c: (ospf6_asbr_lsentry_remove) Remove shortcut\n\t  of LSDB search - it\u0027s based on assumption non-BEST routes\n\t  can\u0027t have ASBR routes, which appears to be wrong. Safest to\n\t  search.\n"
    },
    {
      "commit": "e733f949448e1cf9fa27e8b618c56a0e4badc1af",
      "tree": "7835ff729868c1421a4f3b59258008731e4ab30a",
      "parents": [
        "0dc0b7080227df8aca6cc2f7961c3c55cb73c509"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Thu Jun 07 13:11:58 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Thu Jun 07 13:11:58 2007 +0000"
      },
      "message": "[ospf6d] Fix silly bug: muse use strcmp to compare strings\n\n2007-06-07 Pavol Rusnak \u003cprusnak@suse.cz\u003e\n\n\t* ospf6_lsa.c: (no_debug_ospf6_lsa_hex_cmd) Fix bug: must use strcmp\n\t  to compare strings.\n"
    },
    {
      "commit": "eda9ba743c1eb7c32b2ae9b8989d3555f1890758",
      "tree": "f135b84aff5b76bf82d7fa0f00a1726674661164",
      "parents": [
        "33672eddf14c5b619fc38975d4c1f2888189cbc8"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Apr 27 18:13:15 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Apr 27 18:13:15 2007 +0000"
      },
      "message": "[64-bit] Fix 4 problems with printf formats and 64-bit size_t\n\n2007-04-27 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* lib/smux.c: (smux_trap) Fix printf format to work with 64-bit size_t.\n\t* ospf6d/ospf6_snmp.c: (ospfv3AreaEntry, ospfv3AreaLsdbEntry) Fix some\n\t  zlog_debug printf formats to work with 64-bit size_t.\n"
    },
    {
      "commit": "c136d24406b62510a8c7a3c89e7716d0819e8fc2",
      "tree": "65dc30951f154c2af9adc005a6041ca8994522ca",
      "parents": [
        "6502208c3217e52e693146e6b72e76fd76982a51"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 08 17:50:01 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 08 17:50:01 2007 +0000"
      },
      "message": "[ospf6d] Bug 322: ospf6d show ipv6 neighbour showing wrong times\n\n2007-03-08 David Siebörger d.sieborger@ru.ac.za\n\n\t* ospf6_neighbor.c: (ospf6_neighbor_show) Fix bug #322, ospf6d\n\t  wasn\u0027t updated to match thread times changing to relative\n\t  time.\n"
    },
    {
      "commit": "c32d28b765e936acb8695f73a119d73cacff2610",
      "tree": "9fe15aab5dce014eb71fc97b1659a3a958ad927d",
      "parents": [
        "4056a544eb0b7ea513bca0d70808e671c3f2c25b"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Feb 27 15:24:36 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Feb 27 15:24:36 2007 +0000"
      },
      "message": "[ospf6d] Fix string comparison bug in ospf6_lsa_handler_name.\n\n2007-02-27  Pavol Rusnak \u003cprusnak@suse.cz\u003e\n\n\t* ospf6_lsa.c: (ospf6_lsa_handler_name) Fix bug: must use strcmp\n\t  to compare strings.\n"
    },
    {
      "commit": "75a9140be69c464f3b73175209f726bfeabb0c09",
      "tree": "2b5832ef4f4384cd249e62cca588a2b5b4c4e577",
      "parents": [
        "cf4a2bbeeaacbe97e88f737bcd904fbc9cf5e237"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Fri Feb 02 16:54:23 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Fri Feb 02 16:54:23 2007 +0000"
      },
      "message": "ospf6d.h: remove declaration of errno (should be via header)\n\n(from pkgsrc)\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": "0b26f81bf9e81be0f65787c48061709427c70d10",
      "tree": "e10561c1d301e78de8561f26123687def19c0a46",
      "parents": [
        "cf1ce250d20003ae94c835e73e95e7442d7a5b53"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:47:53 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:47:53 2006 +0000"
      },
      "message": "[ospf6d] GNU Zebra 3563: Fix as-external forwarding address\n\n2006-03-01  Yasuhiro Ohara  \u003cyasu@sfc.wide.ad.jp\u003e\n\n\t* ospf6_asbr.c: fix bug of needless forwarding address\n\t* ospf6d.h: version 0.9.7r\n"
    },
    {
      "commit": "cf1ce250d20003ae94c835e73e95e7442d7a5b53",
      "tree": "713c0ed34cf2def64257b6906ebd861766a9882c",
      "parents": [
        "932bf1976ae4c84a43b92b2ba8ca798828896249"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:46:07 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:46:07 2006 +0000"
      },
      "message": "[ospf6d] GNU Zebra #3562: ABR Crash fix, memory fixes, route table debugs\n\n2006-02-22  Yasuhiro Ohara  \u003cyasu@sfc.wide.ad.jp\u003e\n\n\t* valgrind check and memory fix\n\t* route table identification string added\n\t* ospf6d.h: version 0.9.7q\n"
    },
    {
      "commit": "932bf1976ae4c84a43b92b2ba8ca798828896249",
      "tree": "32e5b84eeb13e555d991d79cc2f32c154b0d920e",
      "parents": [
        "cb4b88452e04a0102fedff4f01a2246f5e70dea9"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:42:24 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:42:24 2006 +0000"
      },
      "message": "[ospf6d] GNU Zebra 3560: Call ospf6_maxage_remove when out of Exchange/Loading\n\n2005-10-20  Yasuhiro Ohara  \u003cyasu@sfc.wide.ad.jp\u003e\n\n\t* ospf6_neighbor.c: add the calling of ospf6_maxage_remove ()\n\twhen the neighbor went out of Exchange/Loading.\n"
    },
    {
      "commit": "cb4b88452e04a0102fedff4f01a2246f5e70dea9",
      "tree": "02af223018f79db39a091a985b7605539cb180a5",
      "parents": [
        "b2518c1e884cb8b4f4502f8b90b1c368e1a352ec"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:39:30 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:39:30 2006 +0000"
      },
      "message": "[ospf6d] Import GNU Zebra CVSps#3559: Fix inter-area as-ext bug, cleanup debug\n\n2005-10-06  Yasuhiro Ohara  \u003cyasu@sfc.wide.ad.jp\u003e\n\n\t* ospf6_asbr.c: fix bug of calculating AS-External routes\n\t  in other areas. Add debugging function for border-router\n\t  calculation.\n\t* ospf6d.h: version 0.9.7p\n"
    },
    {
      "commit": "f52d13cb2e8e7197934d5f241f88647f9b9d78b8",
      "tree": "b0aa01befc07f57ed47e83ac7dfb383284c49d26",
      "parents": [
        "c05612b9a702d0f49c379c92deb6daab55372aea"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Oct 01 17:38:06 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Oct 01 17:38:06 2005 +0000"
      },
      "message": "2005-10-01 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* zebra.h: Declare new functions zebra_route_string() and\n\t  zebra_route_char().\n\t* log.c: (zroute_lookup,zebra_route_string,zebra_route_char) New\n\t  functions to map zebra route numbers to strings.\n\t* zebra_vty.c: (route_type_str) Remove obsolete function: use new\n\t  library function zebra_route_string() instead.  Note that there\n\t  are a few differences: for IPv6 routes, we now get \"ripng\" and\n\t  \"ospf6\" instead of the old behavior (\"rip\" and \"ospf\").\n\t  (route_type_char) Remove obsolete function: ues new library function\n\t  zebra_route_char() instead.  Note that there is one difference:\n\t  the old function returned \u0027S\u0027 for a ZEBRA_ROUTE_SYSTEM route,\n\t  whereas the new one returns \u0027X\u0027.\n\t  (vty_show_ip_route_detail,vty_show_ipv6_route_detail) Replace\n\t  route_type_str() with zebra_route_string().\n\t  (vty_show_ip_route,vty_show_ipv6_route) Replace route_type_char()\n\t  with zebra_route_char().\n\t* bgp_vty.c: (bgp_config_write_redistribute) Use new library function\n\t  zebra_route_string instead of a local hard-coded table.\n\t* ospf6_asbr.c: Remove local hard-coded tables zroute_name and\n\t  zroute_abname. Change the ZROUTE_NAME macro to use new library\n\t  function zebra_route_string().  Remove the ZROUTE_ABNAME macro.\n\t  (ospf6_asbr_external_route_show): Replace ZROUTE_ABNAME() with\n\t  a call to zebra_route_char(), and be sure to fix the format string,\n\t  since we now have a char instead of a char *.\n\t* ospf6_zebra.c: Remove local hard-coded tables zebra_route_name and\n\t  zebra_route_abname.  Note that the zebra_route_name[] table\n\t  contained mixed-case strings, whereas the zebra_route_string()\n\t  function returns lower-case strings.\n\t  (ospf6_zebra_read_ipv6): Change debug message to use new library\n\t  function zebra_route_string() instead of zebra_route_name[].\n\t  (show_zebra): Use new library function zebra_route_string() instead\n\t  of zebra_route_name[].\n\t* ospf_dump.c: Remove local hard-coded table ospf_redistributed_proto.\n\t  (ospf_redist_string) New function implemented using new library\n\t  function zebra_route_string().  Note that there are a few differences\n\t  in the output that will result: the new function returns strings\n\t  that are lower-case, whereas the old table was mixed case.  Also,\n\t  the old table mapped ZEBRA_ROUTE_OSPF6 to \"OSPFv3\", whereas the\n\t  new function returns \"ospf6\".\n\t* ospfd.h: Remove extern struct message ospf_redistributed_proto[],\n\t  and add extern const char *ospf_redist_string(u_int route_type)\n\t  instead.\n\t* ospf_asbr.c: (ospf_external_info_add) In two messages, use\n\t  ospf_redist_string instead of LOOKUP(ospf_redistributed_proto).\n\t* ospf_vty.c: Remove local hard-coded table distribute_str.\n\t  (config_write_ospf_redistribute,config_write_ospf_distribute): Use\n\t  new library function zebra_route_string() instead of distribute_str[].\n\t* ospf_zebra.c: (ospf_redistribute_set,ospf_redistribute_unset,\n\t  ospf_redistribute_default_set,ospf_redistribute_check)\n\t  In debug messages, use ospf_redist_string() instead of\n\t  LOOKUP(ospf_redistributed_proto).\n\t* rip_zebra.c: (config_write_rip_redistribute): Remove local hard-coded\n\t  table str[]. Replace str[] with calls to new library function\n\t  zebra_route_string().\n\t* ripd.c: Remove local hard-coded table route_info[].\n\t  (show_ip_rip) Replace uses of str[] with calls to new library\n\t  functions zebra_route_char and zebra_route_string.\n\t* ripng_zebra.c: (ripng_redistribute_write) Remove local hard-coded\n\t  table str[].  Replace str[i] with new library function\n\t  zebra_route_string(i).\n\t* ripngd.c: Remove local hard-coded table route_info[].\n\t  (show_ipv6_ripng) Use new library function zebra_route_char() instead\n\t  of table route_info[].\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": "47828747f48ea6739d0af6555648759016462703",
      "tree": "468a87c6176070819c6b43683d1ce46389cd6897",
      "parents": [
        "1dab30f421d9e6909d498961294fa1f44c76b207"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 10 15:46:11 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Aug 10 15:46:11 2005 +0000"
      },
      "message": "2005-08-09 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf6_asbr.c: (ospf6_asbr_redistribute_add) Fix sense of testing\n\t  of route_map_apply return code, it can return many things other\n\t  than RMAP_MATCH which do not indicate DENY. Should test explicitly\n\t  for equality to RMAP_DENYMATCH instead.\n\n\t[backport candidate]\n"
    },
    {
      "commit": "34956b31234b4ca562cb2e27c4d9838c61222ace",
      "tree": "9cdb21958660a7f15dd502f4a5f3e7b736b266dd",
      "parents": [
        "7b6ae028f96b8a894d56b46dd9e2206bf996c781"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jun 24 08:44:02 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jun 24 08:44:02 2005 +0000"
      },
      "message": "\t* ospf6_abr.[ch], ospf6_area.[ch]: Add area filter-list (in|out)\n\t  support and area import and export lists support.\n"
    },
    {
      "commit": "7b6ae028f96b8a894d56b46dd9e2206bf996c781",
      "tree": "7a00dd9710b71b9a037415c9bbac5975ad1e8d56",
      "parents": [
        "3e834b122b982d459e7a273c049a07050794e46a"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jun 24 08:17:51 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jun 24 08:17:51 2005 +0000"
      },
      "message": "\t* ospf6_message.c: Changed to be insensitive to changes of neighbors\u0027\n\t  IP source address in the OSPF packets. It was sometimes problematic\n\t  in actual operation (needed some operational cost: restarting\n\t  all-neighbor routers when I/F NIC was changed). Due to this change,\n\t  a previously safe case, attaching multiple interface to the same\n\t  link will now be dengerous and will not work. Remedy to that should\n\t  be applied later.\n\n\t[port from GNU Zebra]\n"
    },
    {
      "commit": "3e834b122b982d459e7a273c049a07050794e46a",
      "tree": "7261b957274b6249189cf0deb7b5dfaf9b90c127",
      "parents": [
        "510e209d26c6f1a0fd7f7005f05a98ac71ae1832"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jun 24 07:50:12 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jun 24 07:50:12 2005 +0000"
      },
      "message": "\t* ospf6_interface.c: fix the way inactivity_timer is called. Because\n\t  inactivity_timer() deletes the neighbor from the neighbor_list, it\n\t  cannot be called by thread_execute() from inner side of the\n\t  neighbor_list for-loop.\n\t  (Although crash was already fixed in Quagga, it\u0027s better follow the\n\t  GNU Zebra logic).\n\n\t[port from GNU Zebra]\n"
    },
    {
      "commit": "b31b813671d96ea9e96801508442a90f0ef503fa",
      "tree": "2e5e369667da72c91e9e3dacacefb1eca1d5a59c",
      "parents": [
        "cf333c7ac1ce752369ffe7ddd6edeb10f0d9c9f7"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue May 31 10:24:28 2005 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue May 31 10:24:28 2005 +0000"
      },
      "message": "\t* ospf6d.c: No need for double \u0027;\u0027. Fixes parsing \"show ipv6 ospf6\n\t  database ...\" commands for vtysh by extract.pl. Remove duplicate\n\t  install_element calls.\n\n\tFixes bugzilla #194. [backport candidate]\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": "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": "e4319de388b748ba66551f33fecdf7446e754b80",
      "tree": "d6ae690186b58ed048ed0a11911c6f1e2d71cd16",
      "parents": [
        "21fefa9843f6e8fc2263e8d85cf0d072b4b6c242"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 23:23:55 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 23:23:55 2005 +0000"
      },
      "message": "2005-04-02 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_interface.h: (ospf_if_lookup_by_name) Remove declaration of a\n\t  function that does not exist.\n\t* ospf6_interface.[ch]: (ospf6_interface_lookup_by_name) Remove unused\n\t  function.\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": "3b7b814c83f81d460ae8d413aea02aef1524242d",
      "tree": "276669f9dc609ce04d7f70866050626bf56e7dfb",
      "parents": [
        "3cb98dee9067372756964f461eb2c931a1c75138"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 16:37:07 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Apr 02 16:37:07 2005 +0000"
      },
      "message": "2005-04-02 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf6_route.c: (ospf6_route_show, ospf6_route_show_detail) Protect\n\t  against the possibility that the string returned by if_indextoname\n\t  may not terminate with \u0027\\0\u0027.\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": "55468c86040081320f557b696e509b76ddfd6c83",
      "tree": "3ee726f155f8776d4a220997681d14c0b09addd0",
      "parents": [
        "909a215508fd42473fcbe4f5292a59404e5473af"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Mar 14 20:19:01 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Mar 14 20:19:01 2005 +0000"
      },
      "message": "2005-03-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (global) update all c files to match the lib/vector.h rename of\n\t  (struct vector).active to max, and vector_max macro to\n\t  vector_active.\n\t* lib/vector.h: Rename to (struct vector).max to slightly less\n\t  confusing active, for the number of active slots, distinct from\n\t  allocated or active-and-not-empty. Rename vector_max to\n\t  vector_active for same reason.\n"
    },
    {
      "commit": "c1ba9e8a8ac0447e6f33d50b4b9e7a1e68307bf1",
      "tree": "cff477f00b68f3fe7db18cfa384aac90825c96ab",
      "parents": [
        "719e97414a7ca1a4d49d72816b9e1bd2155d157d"
      ],
      "author": {
        "name": "jardin",
        "email": "jardin",
        "time": "Wed Mar 02 22:43:26 2005 +0000"
      },
      "committer": {
        "name": "jardin",
        "email": "jardin",
        "time": "Wed Mar 02 22:43:26 2005 +0000"
      },
      "message": "Fix segfault when ospf6_create() is not called yet.\nThanks to Mohit Thakur.\n"
    },
    {
      "commit": "8bfb0cba005b37c7b125fe2a34f1819e85d9f59c",
      "tree": "d5e5df2e4000e933be0dade91fe3c75d13e5edbd",
      "parents": [
        "f83d18dce1c13f089cbd09262b17444da659347a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 25 01:19:28 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 25 01:19:28 2005 +0000"
      },
      "message": "2005-01-25 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf6_asbr.c: Add \"hsls\" to the zroute_name const char array.\n"
    },
    {
      "commit": "c6487d61a9b7766f69718edbc484a6ad989bdef4",
      "tree": "2a896a8ebdd6e41edcd1b5917ce9dddefbb335fe",
      "parents": [
        "529d65b3db6a2a79cbdf9ca3a1aa915ce5776286"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Dec 24 06:00:11 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Dec 24 06:00:11 2004 +0000"
      },
      "message": "*.c: Change level of debug messages to LOG_DEBUG.\n"
    },
    {
      "commit": "1686f93fcad703c3cb5b8d4aa5be3c62b5e966bb",
      "tree": "9f921e5de0ded8c9bdf50467a3e661336d1c1b20",
      "parents": [
        "c29fdba771810c70d78d87127d3a479e0f72b60e"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 09 14:47:09 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 09 14:47:09 2004 +0000"
      },
      "message": "add comment about warning of comparison between signed and unsigned\n"
    },
    {
      "commit": "d1db06faa82a331fb6729064290ecbc61a969b88",
      "tree": "432832dbfd8438a51140630cb0005fc75e54352a",
      "parents": [
        "d2c1f16be47a3d60555219a92dad8639f381d553"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 22:01:48 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Dec 08 22:01:48 2004 +0000"
      },
      "message": "2004-12-08 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* *.h: Change 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": "b3c8c4650216e128189d26755b93f711b5be9327",
      "tree": "0d82aecf6b812b2d8712d1344ca38050961113b3",
      "parents": [
        "2680aa2b2b8e87a8af50906dec8ee5a942f8266e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Nov 26 12:55:51 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Nov 26 12:55:51 2004 +0000"
      },
      "message": "Fix compile.\n"
    },
    {
      "commit": "2680aa2b2b8e87a8af50906dec8ee5a942f8266e",
      "tree": "a8a9acd321152ea80587da2cfa79bfcdd64207b3",
      "parents": [
        "c065230a4c617a1cdf8813dd25384bcc9591f61a"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Nov 25 20:54:46 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Nov 25 20:54:46 2004 +0000"
      },
      "message": "Merge svn revisions 1208, 1222 and 1228 from Zebra cvs.\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": "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": "6639a04da2c5ac6bfa0d5eff006637fb6f1372ee",
      "tree": "8841c4f47f61c6a67703cefc265164f5666c3a79",
      "parents": [
        "95e74e54bfd2fac8f6787b7c3670f7e057daa3e9"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Nov 05 18:42:27 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Nov 05 18:42:27 2004 +0000"
      },
      "message": "2004-11-05 Phil Spagnolo \u003cphillip.a.spagnolo@boeing.com\u003e\n       * ospf6_flood.c:  When adding a thread to retransmit an lsa after\n    rxmt_interval, the ospf6d used thread_add_event().  However,\n    thread_add_event() executes immediately and ignores the delay parameter.\n    This was causing unnecesary unicast LSU sends.  Adding the thread has\n    been changed to use thread_add_timer() which will expire after delay.\n    After the fix results appear consistent with expectation.\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": "c75105ab6e6eeac0b013eab186c97641984f68cc",
      "tree": "ea221df06e957de7e83f379c9b45f578762736e7",
      "parents": [
        "d68614db1dc36a6814fee33f584417b1441a83e4"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 10:33:26 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Oct 13 10:33:26 2004 +0000"
      },
      "message": "Make initializing smux connection configurable - \"smux peer OID\" command\ninitializes connection, and \"no smux peer\" command terminates it. Fixes\nbugzilla #47 and #112.\n"
    },
    {
      "commit": "c8a440eca0645a8a78140f83907acce25a3c67c6",
      "tree": "44787becdd91b85170b32076c5baaf3f0acaa970",
      "parents": [
        "de4a643fdbf7da014e6556b74dca5ce43a2b8cd7"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 11 17:02:40 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Oct 11 17:02:40 2004 +0000"
      },
      "message": "Better common router-id handling.\n"
    },
    {
      "commit": "0c083ee9d870bf02a36563ae1807f3894ac24219",
      "tree": "04315c9103131381b9ca5e1d576e27a1f22d0da1",
      "parents": [
        "9035efaa924c69f4f4fcb1049c7dc4f43b9da980"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Oct 10 12:54:58 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Oct 10 12:54:58 2004 +0000"
      },
      "message": "2004-10-10 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* ospf6_route.c: Add const qualifier to various char arrays of\n          constants. signed/unsigned fixes.\n          (ospf6_linkstate_table_show) argv is const\n        * ospf6_snmp.c: listnode typedef is dead.\n          (ospf6_snmp_init) Take struct thread_master arg, needed for\n          smux_init.\n        * ospf6_snmp.h: update ospf6_snmp_init declaration.\n        * ospf6d.c: (ospf6_init) add const qualifier to sargv, pass master\n          to ospf_snmp6_init.\n\t* ospf6_asbr.c: const char update.\n\t* ospf6_interface.c: ditto, plus signed/unsigned fixes.\n\t  (ipv6_ospf6_cost) Check whether cost fits in u_int32_t and use\n          strtoul.\n\t* ospf6_intra.c: const char update. Parenthesise expression.\n\t* ospf6_lsa.c: signed/unsigned and const char updates.\n\t* ospf6_proto.c: ditto.\n\t* ospf6_message.c: ditto.\n\t* ospf6_lsdb.c: signed/unsigned update.\n\t* ospf6_main.c: const char update.\n\t* ospf6_neighbor.c: ditto.\n\t* ospf6_spf.c: ditto.\n\t* ospf6_top.c: ditto.\n"
    },
    {
      "commit": "ddd119fd3d94e95dd44aa9fb3bc3fca4f26078a0",
      "tree": "357baf68c7e233e4a827955ec8999ec2899333d6",
      "parents": [
        "47ca295314a180eaebcb10184a425395313f9d94"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Oct 10 08:07:29 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Oct 10 08:07:29 2004 +0000"
      },
      "message": "2004-10-10 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* Makefile.am: fix listing of ospf_snmp.c in noinst_HEADERS\n"
    },
    {
      "commit": "ef1bbf5ca41401ee4135a67e1a4d4465ff09b524",
      "tree": "f7766d514316862c1c9ba5923e042a1132a52e36",
      "parents": [
        "eb1ce6059a00f3f0dd92c965aa5982907b54c00d"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Oct 08 12:04:21 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Oct 08 12:04:21 2004 +0000"
      },
      "message": "Merge svn revisions 1065 and 1066 from Zebra CVS.\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": "03d52f8d6ccb4bcb17ab8d098468a8e112c910a4",
      "tree": "7bc2e2b3738923597bbab593029152b5bceff8e1",
      "parents": [
        "aa0b9f912dc1057261fa02fbf5d458f222900af6"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Sep 29 00:26:19 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Sep 29 00:26:19 2004 +0000"
      },
      "message": "Merge svn revision 1048 from Zebra cvs. Also add missing sokopt.h include\nto ospf6_network.h.\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": "9428f2dc4e577827db666d2643a1781ebecf044c",
      "tree": "4deb0ca5b72e82828085f57088c4958b3ca21119",
      "parents": [
        "b5f310cb9f78b140f1c747148cad6889133597fc"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Sep 13 14:01:12 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Mon Sep 13 14:01:12 2004 +0000"
      },
      "message": "Merge svn revisions 997 and 1000 from Zebra cvs repository.\n"
    },
    {
      "commit": "f3f27f60fdfc81fce2944ee89087417b04935663",
      "tree": "4f65dbb37fca42d7f293b8c2e7154aa845bb30cc",
      "parents": [
        "9b29eb75f618ff9896d4ee65ad3cb24eb2f2d02e"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 10 18:07:57 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 10 18:07:57 2004 +0000"
      },
      "message": "Add IS-IS info into array.\n"
    },
    {
      "commit": "4846ef64bac7cbb6f761f7155022df53f977a1c4",
      "tree": "e9b48135e4f2ee3d56509f418a9419d4d3ccc971",
      "parents": [
        "63069ad68c72a8b0a9b37c472cc64421d34af6c7"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 03 06:04:00 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Sep 03 06:04:00 2004 +0000"
      },
      "message": "Merge svn revision 981 from Zebra cvs.\n"
    },
    {
      "commit": "63069ad68c72a8b0a9b37c472cc64421d34af6c7",
      "tree": "145cbcb9fc52c22f61eb30ae13bea72415577ae0",
      "parents": [
        "1e05838a4db178f25eef560d774cf63d7af6d3c4"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 02 13:01:01 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Sep 02 13:01:01 2004 +0000"
      },
      "message": "Merge svn revisions 978-979 from Zebra CVS.\n"
    },
    {
      "commit": "1e05838a4db178f25eef560d774cf63d7af6d3c4",
      "tree": "f87bdb34ec1337e390b885d5344f1a40c7dbb383",
      "parents": [
        "863076db0f6ef0f9090abdfd9e2388db0bf02770"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Sep 01 21:36:14 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Sep 01 21:36:14 2004 +0000"
      },
      "message": "Merge svn revision 975 from Zebra repository.\n"
    },
    {
      "commit": "e42f5a37462b22c49235f04a3b582b97c1deb84c",
      "tree": "830ca9ab54224b7aac003c11b9c209472ddff860",
      "parents": [
        "69f1fc22f70b4baed62582cbaaefaf374665791c"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Aug 28 17:04:33 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sat Aug 28 17:04:33 2004 +0000"
      },
      "message": "Port ospf6d to sigevent and rename signal handling functions in vtysh not to\nconflict the ones in lib/sigevent.c. Fixes compiling with --disable-shared.\n"
    },
    {
      "commit": "9a0962651b0837b5678da0ef88715ec438f9dcb5",
      "tree": "5992616efaa089af2b47cf16f0df56d459d9c198",
      "parents": [
        "6861b307d6fd6d936d699b23ca4fb4c47180e068"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 26 18:56:19 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 26 18:56:19 2004 +0000"
      },
      "message": "Merge changelog entry from zebra cvs for my vtysh fix.\n"
    },
    {
      "commit": "6861b307d6fd6d936d699b23ca4fb4c47180e068",
      "tree": "5f0550c15c4f4a25fb9bea4628cf12dbb67090eb",
      "parents": [
        "69b4a810cd06a623d10678adbfd2d4342ef86547"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 26 18:19:59 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 26 18:19:59 2004 +0000"
      },
      "message": "Merge svn revision 954 from Zebra cvs.\n"
    },
    {
      "commit": "69b4a810cd06a623d10678adbfd2d4342ef86547",
      "tree": "7da0d53ac129a3e4a1291e446831a9016a9688a0",
      "parents": [
        "fd73aa9e484f5c54c190b0c25b07294ce4ff168a"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 26 18:10:36 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 26 18:10:36 2004 +0000"
      },
      "message": "Make ospf6d configuration appear in vtysh as well. Report sent to Yasuhiro\nOhara.\n"
    },
    {
      "commit": "ccb59b11047c71430eb55ed58eda94865bab20c8",
      "tree": "c135d58534331ff4fd04223f512d317dbd4c8ed8",
      "parents": [
        "3e0b3a56217dab13b26e7f7fd634e7450dde55e2"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Aug 25 09:10:37 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Aug 25 09:10:37 2004 +0000"
      },
      "message": "SVN revisions 935-940 merge from Zebra CVS.\n"
    },
    {
      "commit": "3b68735fc38871bdcc9fc19f38fab244f86e710b",
      "tree": "3a98be6997b0fc0e0bd211a877ab477cb7e3d328",
      "parents": [
        "0de1cde6e602e7496628967aeb219cd28d4869a9"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 19 06:56:53 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Thu Aug 19 06:56:53 2004 +0000"
      },
      "message": "Merge svn revisions 924 and 925 from Zebra CVS. Also remove useless\nospf6_lsdb prototype declaration from ospf6_lsa.h. Report sent to Yasuhiro\nOhara as well.\n"
    },
    {
      "commit": "6452df092bf6b694ea62a0423ac242f10ab997f9",
      "tree": "087490eb5e58209ca207f28b626c4a4a84ad4c9c",
      "parents": [
        "f841e02e16869481f4ac4cdfd2e8c941df815720"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Aug 15 05:52:07 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Aug 15 05:52:07 2004 +0000"
      },
      "message": "SVN revisions 916-920 from Zebra. ABR support is almost done.\n"
    },
    {
      "commit": "049207c31d9b5da023c6c2e3689b771010098f94",
      "tree": "08dd51fe72c455f869b83372e4a6aa1346389426",
      "parents": [
        "4f4795e83fb4ddcc0d19322478e9cc422a60c7c4"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Aug 04 20:02:13 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Aug 04 20:02:13 2004 +0000"
      },
      "message": "SVN revision 907 from Zebra cvs repository.\n"
    },
    {
      "commit": "1203e1c07c444df615605168c72852389e20340c",
      "tree": "2b00b78fe71fc2840837c0ffdb1c308192ceedf4",
      "parents": [
        "b219dea8d67b58db58755f94ea7cb44aa9774f0d"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jul 23 21:34:27 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jul 23 21:34:27 2004 +0000"
      },
      "message": "Use ifp-\u003emtu6 in ospf6d and ripngd.\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": "79dc373a5ba4540e093711671eb87b1125f51bcd",
      "tree": "bd98f33e79e464f9fa381286a49ac2c7aaedba8c",
      "parents": [
        "2dd8bb4e9b296782f361008b5aa959ac51e16a4c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 23 15:17:45 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 23 15:17:45 2004 +0000"
      },
      "message": "2004-07-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * ospf6_main.c: Delete LOG_PERROR, not portable.\n        * ospf6_network.c: (ospf6_set_pktinfo) use setsockopt_ipv6_pktinfo\n"
    },
    {
      "commit": "b596c71ef452b7d3f48835fe8e6844ab2f1c1b6b",
      "tree": "77d667f92dee3072dc1f2ce9e69153993e9b1856",
      "parents": [
        "9f9aebdd152bb9ac3f020d21170c53dd0bcec71d"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jul 09 18:33:43 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Fri Jul 09 18:33:43 2004 +0000"
      },
      "message": "Merge svn revision 855 from Zebra repository.\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": "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"
    }
  ],
  "next": "d26ca6a976421b09ee6c4e5ac699075b6f549584"
}
