)]}'
{
  "log": [
    {
      "commit": "7aa9dcef80b2ce50ecaa77653d87c8b84e009c49",
      "tree": "bd4a8d881336a1551146725d7ae06b3e68553e4d",
      "parents": [
        "010ebbbca6396f272cc2d50d147dd922dda68213"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@opensourcerouting.org",
        "time": "Fri Sep 19 14:42:23 2014 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Sep 23 16:32:34 2014 +0100"
      },
      "message": "Fix most compiler warnings in default GCC build.\n\nFix lots of warnings. Some const and type-pun breaks strict-aliasing\nwarnings left but much reduced.\n\n* bgp_advertise.h: (struct bgp_advertise_fifo) is functionally identical to\n  (struct fifo), so just use that.  Makes it clearer the beginning of\n  (struct bgp_advertise) is compatible with with (struct fifo), which seems\n  to be enough for gcc.\n  Add a BGP_ADV_FIFO_HEAD macro to contain the right cast to try shut up\n  type-punning breaks strict aliasing warnings.\n* bgp_packet.c: Use BGP_ADV_FIFO_HEAD.\n  (bgp_route_refresh_receive) fix an interesting logic error in\n  (!ok || (ret !\u003d BLAH)) where ret is only well-defined if ok.\n* bgp_vty.c: Peer commands should use bgp_vty_return to set their return.\n* jhash.{c,h}: Can take const on * args without adding issues \u0026 fix warnings.\n* libospf.h: LSA sequence numbers use the unsigned range of values, and\n  constants need to be set to unsigned, or it causes warnings in ospf6d.\n* md5.h: signedness of caddr_t is implementation specific, change to an\n  explicit (uint_8 *), fix sign/unsigned comparison warnings.\n* vty.c: (vty_log_fixed) const on level is well-intentioned, but not going\n  to fly given iov_base.\n* workqueue.c: ALL_LIST_ELEMENTS_RO tests for null pointer, which is always\n  true for address of static variable.  Correct but pointless warning in\n  this case, but use a 2nd pointer to shut it up.\n* ospf6_route.h: Add a comment about the use of (struct prefix) to stuff 2\n  different 32 bit IDs into in (struct ospf6_route), and the resulting\n  type-pun strict-alias breakage warnings this causes.  Need to use 2\n  different fields to fix that warning?\n\ngeneral:\n\n* remove unused variables, other than a few cases where they serve a\n  sufficiently useful documentary purpose (e.g.  for code that needs\n  fixing), or they\u0027re required dummies.  In those cases, try mark them as\n  unused.\n* Remove dead code that can\u0027t be reached.\n* Quite a few \u0027no ...\u0027 forms of vty commands take arguments, but do not\n  check the argument matches the command being negated.  E.g., should\n  \u0027distance X \u003cprefix\u003e\u0027 succeed if previously \u0027distance Y \u003cprefix\u003e\u0027 was set?\n  Or should it be required that the distance match the previously configured\n  distance for the prefix?\n  Ultimately, probably better to be strict about this.  However, changing\n  from slack to strict might expose problems in command aliases and tools.\n* Fix uninitialised use of variables.\n* Fix sign/unsigned comparison warnings by making signedness of types consistent.\n* Mark functions as static where their use is restricted to the same compilation\n  unit.\n* Add required headers\n* Move constants defined in headers into code.\n* remove dead, unused functions that have no debug purpose.\n"
    },
    {
      "commit": "6b0655a25194c7c0331154edaa6124cf783e5e5e",
      "tree": "c0c7d479f2684531249668210da27a60322ba395",
      "parents": [
        "fdb913aedb5a9807ad60715e8badb4f25d57acea"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jun 04 06:53:35 2014 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jun 04 06:58:02 2014 +0200"
      },
      "message": "*: nuke ^L (page feed)\n\nQuagga sources have inherited a slew of Page Feed (^L, \\xC) characters\nfrom ancient history.  Among other things, these break patchwork\u0027s\nXML-RPC API because \\xC is not a valid character in XML documents.\n\nNuke them from high orbit.\n\nPatches can be adapted simply by:\n\tsed -e \u0027s%^L%%\u0027 -i filename.patch\n(you can type page feeds in some environments with Ctrl-V Ctrl-L)\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "fd5006896fce2816244c1ef4cabc736279548538",
      "tree": "c9fb889019186c6aa7c800643f3ff1d9171a96a7",
      "parents": [
        "c19543b223d3b8463c048f346b8044589e0cce39"
      ],
      "author": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Wed Oct 24 14:45:54 2012 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Mar 21 06:28:48 2014 +0100"
      },
      "message": "ospf6d: add \"auto-cost reference-bandwidth\" command\n\nThis command allows the user to change to default reference bandwidth\nfor cost calculations. The default value is 100 Mbps. With a default\nbandwidth of 10 MBps, the default cost becomes 10. Those values are\nconsistent with OSPFv2.\n\n[DL: resolved conflicts in vty command additions \u0026 docs]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c19543b223d3b8463c048f346b8044589e0cce39",
      "tree": "7da71baef36e7c7b4e628c645580f8cc18c1aabe",
      "parents": [
        "1db65fadf627637621c342b789b9a3604ca5fab5"
      ],
      "author": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Wed Oct 24 14:45:53 2012 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri Mar 21 06:28:47 2014 +0100"
      },
      "message": "ospf6d: compute interface cost from its bandwidth\n\nPreviously, the interface cost was a fixed default value that a user\nwas allowed to change with \"ipv6 ospf6 cost XX\". As what is done with\nOSPFv2, we change this behaviour to compute the default interface cost\nfrom the interface bandwidth.\n\nThe user can still force a cost with \"ipv6 ospf6 cost XX\". He can get\nthe default value with \"no ipv6 ospf6 cost\". Moreover, the default\ncost value was 1. The cost is now computed from the bandwidth and a\ndefault reference bandwidth of 100 MBps (as for OSPFv2). Since the\ndefault bandwidth for an interface is 10 MBps, the \"default\" cost\nbecomes 10 instead of 1.\n\n[DL: resolved conflict in ospf6d/ospf6_interface.c]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "424cc3bd48da0f417c9056c5c2ade697a3386cd4",
      "tree": "1d0e9a71f6c27b64d435c276a100f046c30e2a8b",
      "parents": [
        "11b4f01355703d34099d4da145c7d92e32d98636"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Nov 23 16:55:36 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 18 08:45:29 2014 +0100"
      },
      "message": "ospf6d: fix interface_down() stopping hellos\n\ninterface_down() - which also handles some nonobvious cases like the\nlast linklocal address disappearing - was previously not cancelling the\nhello timer.  This had the effect of multiple such threads ending up\nscheduled after a quick down-up cycle.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "b13c1d9299d6426f48f074545f3e403e5a9b8a61",
      "tree": "b313288f60c8d76a16e4f9f1796e934c0c8fefc0",
      "parents": [
        "d9628728e0924ae13ef6e8f8a67a2c9802745184"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Dec 13 16:11:16 2012 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 18 08:45:20 2014 +0100"
      },
      "message": "ospf6d: handle missing link local address more gracefully\n\nospf6 can\u0027t run on an interface without a link local address.\nDon\u0027t start the state machine when an interface comes up without\nsuch an ip and bring it up later, when a usable link local\naddress is added.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "d9628728e0924ae13ef6e8f8a67a2c9802745184",
      "tree": "af4cee6c7018580655cb53a0900471128cc0a8bb",
      "parents": [
        "37531a7ec380554b18c004bcae9f5a070385d132"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Fri Mar 08 21:47:35 2013 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 18 08:44:05 2014 +0100"
      },
      "message": "ospf6d: improve ordered shutdown\n\nImprove the _disable/_enable infrastructure so it gets into\na more usable shape and make \u0027no router ospf6\u0027 actually work.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "37531a7ec380554b18c004bcae9f5a070385d132",
      "tree": "fb1893fcf7be8f613a3cd0a82f0150af4a3974f7",
      "parents": [
        "1579a67f130ca34df9acefac14ebcdfdd8f6600a"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Dec 13 13:50:28 2012 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Nov 20 10:35:59 2013 +0100"
      },
      "message": "ospf6d: clear DR info on interface_down\n\nThis fixes an issue where ospf6d would send incorrect hellos and\nperform wrong DR election when an interface went down and up\nagain.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "7d4aa1d57d54a57aae78e6b12cf4524e2c43a514",
      "tree": "f6c80b75e1f258a9bc3fa7a452807a5762ca7465",
      "parents": [
        "ba960d5ae43e49991ed70fbe9ffa2e4567437a31"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "chris@opensourcerouting.org",
        "time": "Thu Dec 13 16:10:05 2012 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Nov 20 10:35:59 2013 +0100"
      },
      "message": "ospf6d: don\u0027t run DR election early on \"ipv6 ospf6 priority\"\n\nOn changing the router priority, DR election should only be run when it\nwas completed at least once before.\n\nSigned-off-by: Christian Franke \u003cchris@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "ba960d5ae43e49991ed70fbe9ffa2e4567437a31",
      "tree": "8ffe0291edf209d936ce874c7a7104369f611e7e",
      "parents": [
        "a0edf6740e8203abec1ee3efa344a417c16fec7b"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Mon Aug 26 03:40:37 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Nov 20 10:35:59 2013 +0100"
      },
      "message": "ospf6d: fix integrated config\n\nWith integrated config, the line defining an interface to be p2p is defined\nbefore assigning the interface to an area. When during the interface\ntransition, there is an attempt to generate a router LSA, the process\ncrashes. This fix addresses that.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Pradosh Mohapatra \u003cpmohapat at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a0edf6740e8203abec1ee3efa344a417c16fec7b",
      "tree": "501efcc33069c129987ac1ec98dd0656ad67e278",
      "parents": [
        "3d35ca482babab4267570143b8327fc894df0ff8"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Mon Aug 26 03:40:23 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: add SPF logs, statistics, and display of SPF parameters\n\nSigned-off-by: Pradosh Mohapatra \u003cpmohapat at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\n[DL: adapted to rebase / readded randomly lost line]\n[DL: killed timeval_subtract]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "e7ad6b20d7a7c63ed7c640ab9f61c853e77508c5",
      "tree": "92454d3f9eca7c5f579c0c463f976e3e3b5873cc",
      "parents": [
        "b81e97a8a7f85ecc7489dc8a7c7b9d403d9c4bc6"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:55:57 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: fix linkdown handling\n\nEnsure OSPFv3 handles link down even correctly.\n\nOSPFv3 checks only the administrative status of a link instead of its\noperative status. This prevents it up from detecting a real link down\nevent and reacting appropriately. Only protocol timer timeouts make it\ndetect a link down eventually. This patch makes it look for the operative\nstatus of a link instead of admin status.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: James Li \u003cjli at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c5926a92235874574b20e426a3752c1451a90ec7",
      "tree": "c8b8b66eee832e3db5e5d315e966b168918ef57e",
      "parents": [
        "bf986da797e7d2a0aaae313fea626ba433581f03"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:55:00 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: add p2p interface support\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nSigned-off-by: Ayan Banerjee \u003cayabaner at gmail.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nReviewed-by: James Li \u003cjli at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "3810e06eebe14f75c66fb17a88574384573e95fa",
      "tree": "0e7ba30d0b24d1ea874eb257b78fdeed2eaebf4c",
      "parents": [
        "8551e6dadce41fb87a61767af723cb25ae611a04"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:54:09 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:30 2013 -0800"
      },
      "message": "ospf6d: schedule SPF to run on events rather than directly on each event.\n\nOSPV3 SPF triggers on every SPF-able event instead of using timers the way\nOSPFv2 does. This patch makes SPF be triggered/throttled similar to OSPFv2.\nIt adds a command to quagga identical to the OSPFv2 equivalent to configure\nthese timers.\nSummary:\n\nSigned-off-by: Dinesh Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\n[DL: removed reference to oa-\u003ets_spf for rebase]\n[DL: killed timeval_subtract]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "8551e6dadce41fb87a61767af723cb25ae611a04",
      "tree": "cb0854c2e216989a0fa211d56d2bf6fd6948b2d6",
      "parents": [
        "a83a1e9c2f035d3152451dcfc97ab13b4ac427b9"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Tue Oct 22 17:42:18 2013 -0700"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Oct 22 18:01:31 2013 -0700"
      },
      "message": "ospf6d/ospfd: refactor some common defines\n\nRearranging common defs and structures for use betweeen OSPFv2 and\nOSPFv3.  Created a new file called libospf.h under lib directory to\nhold defines that are common between OSPFv2 and OSPFv3 code bases.\n\n[DL: split of defines refactor from timer refactor]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "bf836661ef8ef880350bc41f0a82566ed5075066",
      "tree": "09fe0cfd070a3984860b1ffc89020caba892eff4",
      "parents": [
        "c349bb86927d1f5fc8aa8ebc6f553786f8e70634"
      ],
      "author": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Mon Jun 04 14:36:12 2012 +0200"
      },
      "committer": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Mon Jun 25 19:05:17 2012 +0200"
      },
      "message": "ospf6d: add SNMP notifications/traps support\n\nOnly implement ospfv3NbrStateChange and ospfv3IfStateChange.\n"
    },
    {
      "commit": "3bc4f84efe147ebc65fccbe898b81d78341c542b",
      "tree": "cfe0f904c134fdb7659f6a47897aff88208d2ddd",
      "parents": [
        "ea86e4042b7459fbf5d96835c509cb743bf013c0"
      ],
      "author": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Mon Jun 04 11:40:04 2012 +0200"
      },
      "committer": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Mon Jun 25 19:05:17 2012 +0200"
      },
      "message": "ospf6d: add SNMP implementation of ospfv3IfTable\n"
    },
    {
      "commit": "b51a3a31500133e3e26f12e7639f297c655bc735",
      "tree": "07bf18aeaace7f07736caf8016082e47e0f10a0c",
      "parents": [
        "ef2d5d100431031c32ea35b3c834b46cff16f511"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Fri Feb 10 10:42:45 2012 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Feb 21 21:45:42 2012 +0400"
      },
      "message": "ospf6d: remove defaults from iface config (BZ#550)\n"
    },
    {
      "commit": "9a9446eabb8f153251d6d93d225a68ca44b436ac",
      "tree": "00ca15de108d23f938220fed8ac1daf7a73aa050",
      "parents": [
        "6989880ad7699cb6bf0cfc0fbb95da51430652cf"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Mon Nov 21 20:26:39 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:25:43 2011 +0400"
      },
      "message": "ospf6d: justify multicast group management\n\n* ospf6_network.[ch]\n  * ospf6_sso(): new function supersedes ospf6_join_allspfrouters(),\n    ospf6_leave_allspfrouters(), ospf6_join_alldrouters() and\n    ospf6_leave_alldrouters()\n* ospf6_interface.c\n  * ospf6_interface_state_change(): update respectively\n  * interface_up(): ditto\n  * interface_down(): ditto\n"
    },
    {
      "commit": "ea4021984f9eec3f2a85551ae0822e1dff0ed2bc",
      "tree": "e820bbe620cb4fe093e657f2e2ca84b1ac528e06",
      "parents": [
        "3a8c3dd7d0331c2da7c14aa33c48d512300d6e09"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Aug 19 16:27:16 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:36:54 2011 +0400"
      },
      "message": "ospf6d: spelling\n"
    },
    {
      "commit": "d42306d98fa327eb0ea6094cc6d6ae9202a07475",
      "tree": "00b8b426615925a6f3b17592cfe8e8032463aafc",
      "parents": [
        "8dd1a8daae0b15065d54c46f82d44d21aa7a2320"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Fri Apr 22 19:27:54 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Apr 22 19:27:54 2011 +0400"
      },
      "message": "ospf6d: copy \"mtu-ignore\" option from ospfd\n\n\"mtu-ignore\" is an option ospfd used to mimic from the vendor\u0027s\nimplementation, now ospf6d will also implement it.\n\n* ospf6_interface.h: extend ospf6_interface structure by one flag\n* ospf6_interface.c: (ipv6_ospf6_mtu_ignore, no_ipv6_ospf6_mtu_ignore):\n  new declarations; (ospf6_interface_create): show initial value for\n  consistency; (ospf6_interface_show): print flag status\n* ospf6_message.c: (ospf6_dbdesc_recv): consider interface-specific flag\n  when checking MTU\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "3b4cd3a9e89a5aace04a6a756bd0d23b7108fd83",
      "tree": "a15fe3959155a6ca5bd5a2f8e967f9fd39736975",
      "parents": [
        "4845437528f395c75c1945dd80b140b7162e4667"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue May 18 19:28:32 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue May 18 19:28:32 2004 +0000"
      },
      "message": "Update to latest (really :) ospf6d from Zebra repository and some tiny\nfixes.\n"
    },
    {
      "commit": "508e53e2eef3eefba4c1aa771529027fd4486ea8",
      "tree": "0e25e1b344a7b8e2c4551cfcb74d5a011dd0865d",
      "parents": [
        "6708fa3c3e6aef369be13f3915698f407107cae2"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue May 18 18:57:06 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Tue May 18 18:57:06 2004 +0000"
      },
      "message": "Ospf6d merge from Zebra repository with added privs stuff and merged\nzclient changes.\n"
    },
    {
      "commit": "733e8102dc513a49363c73597fbf9d3fe061acd5",
      "tree": "b2c8adab27a48f8b56a3164ded397ef527afb4e9",
      "parents": [
        "551a8979254b5fc797765d18b4c678fb7419e702"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 18 15:26:26 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun May 18 15:26:26 2003 +0000"
      },
      "message": "From: Hasso Tepper \u003chasso@estpak.ee\u003e\nSubject: [zebra 19093] [PATCH] Two more fixes\n\n1) From 6Wind patch - show router and interface nodes from ospf6d when\nusing vtysh and don\u0027t show defaults in interface node. Fixes bugzilla\n#14.\n"
    },
    {
      "commit": "718e3744195351130f4ce7dbe0613f4b3e23df93",
      "tree": "bac2ad39971cd43f31241ef123bd4e470f695ac9",
      "parents": [],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "message": "Initial revision\n"
    }
  ]
}
