)]}'
{
  "log": [
    {
      "commit": "e691c3bb972c0baf610d9e210ce20ea6546e1de0",
      "tree": "a3e83b01ecd4fe9e739a24dc77c61a46fd0531a2",
      "parents": [
        "193e78f2460a537695e34368a29fc5cd02e4e1f5"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:46:13 2015 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:46:19 2015 +0200"
      },
      "message": "*: assorted warning fixes\n\nA few warnings slipped through the cracks...\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "eed3c48d3a7d2dae2cae2f2f250deffb843754a6",
      "tree": "07b2252438225065024d4a534eddf0e86c9b87a4",
      "parents": [
        "ef008d2f8dc8f7160d8a3d24a15f2fad79ef3242"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 03 08:51:53 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:17:31 2015 +0200"
      },
      "message": "*: use void * for printing pointers\n\nOn higher warning levels, compilers expect %p printf arguments to be\nvoid *.  Since format string / argument warnings can be useful\notherwise, let\u0027s get rid of this noise by sprinkling casts to void *\nover printf calls.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "bdd8cd70a042473477f9144c9cedb8dde11ba2c1",
      "tree": "edcdbc4b096f4c5b1dc1d72d32d2db81c9fa3c7c",
      "parents": [
        "ea2a598411cc7bd20456849e56bbc9e93c9916e7"
      ],
      "author": {
        "name": "Yasuhiro Ohara",
        "email": "yasu@jaist.ac.jp",
        "time": "Thu Dec 17 05:41:17 2009 +0000"
      },
      "committer": {
        "name": "Vincent JARDIN",
        "email": "vincent.jardin@6wind.com",
        "time": "Mon Oct 27 16:01:08 2014 +0100"
      },
      "message": "Bug in ospf6_lsa_compare()\n\nThis fix is probably correct on 32bit systems,\nbut i think it will not work on 64bit systems.\nsizeof(signed long) would be 8 and therefore the\ncast from u_int32_t will map all the values to\nnon-negative part of long int.\n\nYou would like to use int (like in ospfd) and\nchange the type of seqnuma, seqnumb to that.\n\nThe type int32_t would be even more proper, but\nsizeof(int) is 4 on relevant platforms.\n\nSigned-off: Ondrej Zajicek \u003csantiago@crfreenet.org\u003e\nAcked-by: Feng Lu \u003clu.feng@6wind.com\u003e\nAcked-by: Yasuhiro Ohara \u003cyasu@jaist.ac.jp\u003e\n"
    },
    {
      "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": "e68a67672ccfabefadac36c66e88af997fb572b2",
      "tree": "7f5b3c1386121457cc5052fc2530018093d947ae",
      "parents": [
        "931b1b8c9a612665391ed43653c970fcb38bbbf0"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sun Aug 25 03:03:23 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:43 2013 -0800"
      },
      "message": "ospf6d: add LSA payload to show summary output\n\nUnlike OSPFv2, the LSID of an LSA isn\u0027t sufficient to know what the contents\nof the LSA are. Its useful for debugging and basic eyeball tests to see the\ncontents of the LSA in the simple tabular format of \"show ipv6 ospf6 database\".\nThis patch adds that output to the command. It replaces the existing fields of\n\"duration, Chksum and Length\" with a single field called Payload which is\ndependent on the LSA type. For Inter-Area Prefix, Intra-Area Prefix and\nAS-External LSAs, this will be the advertised prefix/prefix length, for Router\nLSAs, it is RtrID/IfID etc.\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\n[DL: rebase fix, line disappeared in ospf6_abr_originate_summary_to_area]\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a765eb9383c53c68523a67b36cea92eadf6f3439",
      "tree": "16fa0d6d9bb3ddda5b01d01f31c1eeffd02ded8a",
      "parents": [
        "eb82e9ee81792f86548d4937486b5dcbbd411a98"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:55:14 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: convert LSDB to use route_node, improve performance\n\nthe performance in the presence of a large number of LSAs. I also verified\nthat the performance improvements stayed in the presence of a large number\nof peers (I tested upto 128).\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003eSummary:\nReviewed-by: James Li \u003cjli at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "bf986da797e7d2a0aaae313fea626ba433581f03",
      "tree": "79e852020d1f9eb2be774d3050dcc1ea3a88e73b",
      "parents": [
        "8ae454e779d5620576990f4bf5da3a35f913cc4d"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:54:50 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: fix various bugs in installing and flooding LSAs\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": "8ae454e779d5620576990f4bf5da3a35f913cc4d",
      "tree": "cbfb907e0aeef1d5b3076629c8e8d510bb326068",
      "parents": [
        "09df4574b95dbb5880eb2d3c3c3c900687a9a3ef"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:54:41 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: add more details to show ipv6 ospf6 data\n\nSpecifically, it displays the flags, lock and retransmission count fields.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: JR Rivers \u003cjrrivers at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "09df4574b95dbb5880eb2d3c3c3c900687a9a3ef",
      "tree": "b332c0a50379a5efea3ecb9e29931dcd03e0a0ab",
      "parents": [
        "ac58e143f7278d5faaad7a8672e48328b03cffa5"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:54:31 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: enable the commands to support detailed debugging of LSAs.\n\nThe code for the commands exists, but it hasn\u0027t been defined in the\ndefinition of the command itself. This patch fixes that.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "ac58e143f7278d5faaad7a8672e48328b03cffa5",
      "tree": "52ea2eeb0cf614f9fcdf72badfc705d88f623ee3",
      "parents": [
        "2449fcd64ae95d5fbfd95d93468fc57003def57d"
      ],
      "author": {
        "name": "Dinesh Dutt",
        "email": "ddutt@cumulusnetworks.com",
        "time": "Sat Aug 24 07:54:24 2013 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Nov 07 18:15:42 2013 -0800"
      },
      "message": "ospf6d: remove older version of LSA from neigbor retx list before prematurely aging it.\n\nSee comment in code for very detailed issue and fix.\n\nSigned-off-by: Dinesh G Dutt \u003cddutt at cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma at cumulusnetworks.com\u003e\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": "d8a4e42b7d19a87eacc00c825e913907a58f39ee",
      "tree": "2d0777bfbef0e77ca1722fe0e7b2591ef89d4102",
      "parents": [
        "b0145ddb4bf75d2c8853aa3d0bc7c522f4f17531"
      ],
      "author": {
        "name": "JR Rivers",
        "email": "jrrivers@cumulusnetworks.com",
        "time": "Thu Sep 13 17:17:36 2012 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Thu Oct 25 10:15:58 2012 -0700"
      },
      "message": "lib: improve fletcher checksum validation\n\nOVERVIEW\n\nThe checksum used in OSPF (rfc2328) is specified in rc905 annex B.  There is an\nsample implementation in rfc1008 which forms the basis of the quagga\nimplementation.  This algorithm works perfectly when generating a checksum;\nhowever, validation is a bit problematic.\n\nThe following LSA (generated by a non-quagga implementation) is received by\nquagga and marked with an invalid checksum; however, it passes both the rfc905\nand rfc1008 validation checks.\n\nstatic uint8_t lsa_10_121_233_29[] \u003d {\n   0x0e, 0x10, 0x02, 0x03,\n   0x09, 0x00, 0x35, 0x40,\n   0x0a, 0x79, 0xe9, 0x1d,\n   0x80, 0x00, 0x00, 0x03,\n   0x00, 0x8a, 0x00, 0x1c,\n   0xff, 0xff, 0xff, 0xe0,\n   0x00, 0x00, 0x36, 0xb0\n};\n\nLS Type: Summary-LSA (IP network)\n   LS Age: 3600 seconds\n   Do Not Age: False\n   Options: 0x02 (E)\n   Link-State Advertisement Type: Summary-LSA (IP network) (3)\n   Link State ID: 9.0.53.64\n   Advertising Router: 10.121.233.29 (10.121.233.29)\n   LS Sequence Number: 0x80000003\n   LS Checksum: 0x008a\n   Length: 28\n   Netmask: 255.255.255.224\n   Metric: 14000\n\nYou\u0027ll note that one byte of the checksum is 0x00; quagga would calculate the\nchecksum as 0xff8a.\n\nIt can be argued that the sourcing implementation generates an incorrect\nchecksum; however, rfc905 indicates that, for 1\u0027s complement arithmetic, the\nvalue 255 shall be regarded as 0, thus either values are valid.\n\nEXPLANATION\n\nThe quagga ospfd and ospf6d implementations operate by copying the PDU\u0027s\nexisting checksum in a holding variable, calculating the checksum, and comparing\nthe resulting checksum to the original.  As a note, this implementation has the\nside effect of modifying the contents of the PDU.\n\nEvaluation of both rfc905 and rfc1008 shows that checksum validation should\ninvolve calculating the sum over the PDU and checking that both resulting C0 and\nC1 values are zero.  This behavior is enacted in the rfc1008 implementation by\ncalling encodecc with k \u003d 0 (checksum offset); however, this functionality had\nbeen omitted from the quagga implementation.\n\nPATCH\n\nThis patch adds the ability to call the quagga\u0027s fletcher_checksum() with a\nchecksum offset value of 0xffff (aka FLETCHER_CHECKSUM_VALIDATE) which returns\nthe sum over the buffer (a value of 0 indicates a valid checksum).  This is\nsimilar to the mechanism in rfc1008 when called with k \u003d 0.  The patch also\nintroduces ospf_lsa_checksum_valid().\n\nospf6d had it\u0027s own implementation of the fletcher checksum in\nospf6_lsa_checksum(); it\u0027s the same algorithm as in fletcher_checksum().  This\npatch removes the local implementation in favor of the library\u0027s as well as creates\nand uses ospf6_lsa_checksum_valid().\n\nquagga\u0027s ISIS implementation suffers from the same problem; however, I do not\nhave the facilities to validate a fix to ISIS, thus this change has been left to\nthe ISIS maintainers.  The function iso_csum_verify() should be reduced to\nrunning the fletcher checksum over the buffer using an offset of 0.\n\nSigned-off-by: JR Rivers \u003cjrrivers@cumulusnetworks.com\u003e\nReviewed-by: Scott Feldman \u003csfeldma@cumulusnetworks.com\u003e\nReviewed-by: Nolan Leake \u003cnolan@cumulusnetworks.com\u003e\nReviewed-by: Ayan Banerjee \u003cayan@cumulusnetworks.com\u003e\nReviewed-by: Shrijeet Mukherjee \u003cshm@cumulusnetworks.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "09395e2a0e93b2cf4258cb1de91887948796bb68",
      "tree": "771622102161a372b45f730bd48ab23e69676350",
      "parents": [
        "717750433839762d23a5f8d88fe0b4d57c8d490a"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 13:18:36 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 18:47:06 2011 +0400"
      },
      "message": "ospf6d: CVE-2011-3324 (DD LSA assertion)\n\nThis vulnerability (CERT-FI #514839) was reported by CROSS project.\n\nWhen Database Description LSA header list contains trailing zero octets,\nospf6d tries to process this data as an LSA header. This triggers an\nassertion in the code and ospf6d shuts down.\n\n* ospf6_lsa.c\n  * ospf6_lsa_is_changed(): handle header-only argument(s)\n    appropriately, do not treat LSA length underrun as a fatal error.\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "5e4fa1646cafe9e6f8dd78501bea0d2fe1eafdb4",
      "tree": "6f2aa13346f91f0924ada9cb9696589264a90552",
      "parents": [
        "253e9336982599957514ad87610e8cd58822fc7a"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Mar 16 14:38:36 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Tue Mar 16 14:38:36 2004 +0000"
      },
      "message": "2004-03-16 David Young \u003cdyoung@pobox.com\u003e\n\n\t* (many) reference \u003clib/version.h\u003e rather than \"version.h\",\n\tbecause version.h is a generated file and not present in the\n\tsource tree when using objdir builds.\n\n(committed by gdt)\nworks fine with normal builds; didn\u0027t try objdir\n"
    },
    {
      "commit": "718e3744195351130f4ce7dbe0613f4b3e23df93",
      "tree": "bac2ad39971cd43f31241ef123bd4e470f695ac9",
      "parents": [],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "message": "Initial revision\n"
    }
  ]
}
