)]}'
{
  "log": [
    {
      "commit": "80f61a9979079ed16b9eff50ba65ad8bf1b15fb6",
      "tree": "886c30e2570dc6f5117c7dbf353de023524b0309",
      "parents": [
        "7e73eb740f3c52a5b7c0ae9c2cd33b486d885552"
      ],
      "author": {
        "name": "Jonathan Hart",
        "email": "jono@onlab.us",
        "time": "Tue Apr 19 22:13:49 2016 -0700"
      },
      "committer": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Fri Apr 22 08:37:25 2016 -0400"
      },
      "message": "pimd: Fix hang when doing nexthop lookup from zebra\n\nI was running in to a bug when pimd would hang in some cases when\nit had to do a nexthop lookup from zebra, such as when a PIM JOIN\nwas received. This issue could be easily reproduced by running\n\u0027show ip rib \u003cip\u003e\u0027 from the pimd vty which forces a nexthop lookup.\n\nThe issue is in zclient_read_nexthop, the zclient_read_header function\nreads the message content into the stream, but then after that the\nzclient_read_nexthop function tries to read the message content again\nfrom the socket, but there are no bytes so it hangs waiting for input.\nThe solution is to not try to read the message content the second time.\nAcked-by: Jafar Al-Gharaibeh\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\n"
    },
    {
      "commit": "9099f9b2a66e86f8a90d7fe18f61bd2bb1bc6744",
      "tree": "1ce5d2e4ecff6b57eb00d40b1a91b3f363ff35fe",
      "parents": [
        "954c7d6bcd04c2cf037965adda0f9d11afdcd165"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Mon Jan 18 10:12:10 2016 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Fri Feb 26 14:11:46 2016 +0000"
      },
      "message": "*: use an ifindex_t type, defined in lib/if.h, for ifindex values\n"
    },
    {
      "commit": "6d853c43d9dd315eb42211150b7a4a43bae4cb62",
      "tree": "cc5f6ab4037c4221b735a3ab483a8548b2f0ab88",
      "parents": [
        "bf99b420a57b7c5bf44c8ab528d0a2e416b66d81"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Wed Oct 21 16:13:51 2015 -0400"
      },
      "committer": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Tue Dec 08 14:11:18 2015 -0500"
      },
      "message": "pimd: Limit pim hello log messages\n\npimd was outputting allot of data surrounding pim hello packets.\nIn addition the debugging was inconsistent and not all turned\non via \u0027debug pim packet hello\u0027.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "ffe794426af2b142ecfed7021d34d8f868857219",
      "tree": "4fdc504cf91226dc257acd0a478cab9e324c476d",
      "parents": [
        "283596fd6d49a5b2861a6923db9a88628ef0eca4"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@jakma.org",
        "time": "Thu Oct 29 14:24:13 2015 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Oct 29 14:24:13 2015 +0000"
      },
      "message": "pimd: Fix size_t zlog_err format string warning\n\n* fc1c114aa / \"pimd: Fix warning\", the size_t arg should have a %zu format.\n"
    },
    {
      "commit": "283596fd6d49a5b2861a6923db9a88628ef0eca4",
      "tree": "1b461a1fea8840efaafd1250f729831be91fea9f",
      "parents": [
        "be62b17c736ea06181f2788e3011066830555610",
        "fc1c114aab24fe47bc6a1976c1c602d507fa4e69"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@jakma.org",
        "time": "Wed Oct 28 14:25:06 2015 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Oct 28 14:25:06 2015 +0000"
      },
      "message": "Merge \u0027patch-tracking/4/proposed/netdef-solaris\u0027 into accepted\n"
    },
    {
      "commit": "a6a11765d4206a00b0875988ce352be7cdfa3617",
      "tree": "961fe1aba2fec0f81155bd1fcf7a89542111f678",
      "parents": [
        "4edf1c6aea8fd93e8fdeb2a651bf34bb24329611"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Fri Oct 02 12:27:27 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Oct 27 10:53:22 2015 +0000"
      },
      "message": "pimd: Cleanup interface startup\n\nThis patch cleans up some interface startup, removes duplicate\ndebug messages and protects against some always being displayed.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "4edf1c6aea8fd93e8fdeb2a651bf34bb24329611",
      "tree": "cbf121cedeeb4eebf442b5f147f06587e02e00a1",
      "parents": [
        "dea43dee04e22d69ed57f4c85498e248a6074435"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Oct 01 12:40:52 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Oct 27 10:53:22 2015 +0000"
      },
      "message": "pimd: Notice when we receive a packet type we can\u0027t handle yet\n\nThere are PIM packet types that have not been implemented yet.\nNotice when we get one of those and safely do nothing.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "dea43dee04e22d69ed57f4c85498e248a6074435",
      "tree": "0a9c8669e2c45b93292cccc6cf1ff7e9b3daaeb6",
      "parents": [
        "f3734dd5fc00886b1d3f497d22295cea591d7685"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Oct 01 12:40:51 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Oct 27 10:53:22 2015 +0000"
      },
      "message": "pimd: Add knowledge of different packet types\n\nThere are several additional packet types that pimd is unaware of\nAdd code to allow pim to understand them in the future.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "f3734dd5fc00886b1d3f497d22295cea591d7685",
      "tree": "c3cad3398bf77cbd12c3ae77ac6187aa05186dff",
      "parents": [
        "0cee0384f6c223f6cf507e980f03f2f3dd65478f"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Wed Sep 30 10:22:46 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Oct 27 10:53:21 2015 +0000"
      },
      "message": "pimd: Cleanup zebra debugs to be protected by debug commands\n\npimd is very chatty without any pim debugs turned on.\nThis commit fixes a bunch of the debugs to be protected\nby appropriate pim debug statement.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "0cee0384f6c223f6cf507e980f03f2f3dd65478f",
      "tree": "7c252fcd96a9948882a5412c67892e1c317a4c52",
      "parents": [
        "6169559976b33a5bf120c806135c76b1b6d943ee"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Wed Sep 30 09:10:12 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Oct 27 10:53:21 2015 +0000"
      },
      "message": "pimd: Do not display some default values as part of a show run\n\nThere is no need to display igmp default values for the query-interval\nand the query-max-response-time-dsec\n\nBefore change:\n\n!\ninterface swp4\n description swp4 -\u003e host-212\u0027s swp1\n ip igmp\n ip igmp query-interval 125\n ip igmp query-max-response-time-dsec 100\n ip pim ssm\n link-detect\n!\n\nAfter change:\n!\ninterface br1\n ip igmp\n ip pim ssm\n link-detect\n!\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "26a18eb223d26011ac4f1d608f6775ed7ebf8efb",
      "tree": "116460f0d57e4e0e7f2cfa20ea6a9b30be19a16f",
      "parents": [
        "d8aa4beab72cdd2c2d78f9e624fd4b704eec488f"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Tue Sep 29 09:25:10 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Oct 27 10:53:21 2015 +0000"
      },
      "message": "quagga: Additional centos 6 -enable-werror fixes\n\nThis commit fixes these warnings:\n\n1) bgpd/bgp_nexthop.c - dereferencing pointer \u0027X\u0027 does break strict-aliasing rules\n2) pimd/pim_igmp_join.c - dereferencing pointer \u0027X\u0027 does break strict-aliasing rules\n3) ripd/ripd.c - \u0027ifaddr.prefixlen\u0027 may be used uninitialized in this function\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "7125293d65d73a451ec203c8c1630c236171f5a3",
      "tree": "f9d118c9a8f8374d69fb9c75c87531a2ca478fb2",
      "parents": [
        "fd1c1a133af47ae5533a5ed41b73ff62e7aa1058"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Sep 24 09:25:19 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Oct 27 10:53:21 2015 +0000"
      },
      "message": "lib: zclient.c remove extern struct thread_master *\n\nzclient.c depended upon link time inclusion of a\nextern struct thread_master *master.  This is a violation of the\nnamespace of the calling daemon.  If a library needs the pointer\npass it in and save it for future use.\n\nThis code change also makes the zclient code consistent with\nthe other lib functions that need to schedule work on your behalf\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "fc1c114aab24fe47bc6a1976c1c602d507fa4e69",
      "tree": "4189f846e97d34ccb9ebefa6eefc99fdb3f5c00a",
      "parents": [
        "7904509bdf9ec7fad3ac1aee763ae39e7c308c52"
      ],
      "author": {
        "name": "Martin Winter",
        "email": "mwinter@opensourcerouting.org",
        "time": "Wed Sep 23 21:13:58 2015 -0700"
      },
      "committer": {
        "name": "Martin Winter",
        "email": "mwinter@opensourcerouting.org",
        "time": "Fri Oct 16 23:50:47 2015 -0700"
      },
      "message": "pimd: Fix warning\n\nFix long unsigned / unsigned mixup\n\nSigned-off-by: Martin Winter \u003cmwinter@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "cbc3f5232af5cacd6f88f2124c864bb91e851cde",
      "tree": "a786b63b29a006ab7b6120525c08791e89d99869",
      "parents": [
        "a4065069e6bdd0bc7475312530b0e9457f818e0d"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Sep 15 02:18:23 2015 -0700"
      },
      "committer": {
        "name": "Martin Winter",
        "email": "mwinter@opensourcerouting.org",
        "time": "Fri Oct 16 23:50:46 2015 -0700"
      },
      "message": "pimd: use IPPROTO_IP (not SOL_IP) for IP_PKTINFO\n\nSolaris uses the same socket API for IP_PKTINFO as Linux, but doesn\u0027t\nhave a SOL_IP define.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "821df2cf18e5978cc7ab532a8695444380d08270",
      "tree": "f306ad0e31d572c44193b5d709b4b3915ea89d90",
      "parents": [
        "ca8ec20b017393dbe91ff9e5ae2b7ff12872f869"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Sep 15 01:53:09 2015 -0700"
      },
      "committer": {
        "name": "Martin Winter",
        "email": "mwinter@opensourcerouting.org",
        "time": "Fri Oct 16 23:50:45 2015 -0700"
      },
      "message": "*: make sure zebra.h is always included first\n\nzebra.h pulls in config.h, which results in fiddling with things like\n__FILE_OFFSET_BITS. It must always be included first, in order to set\nflags that influence the compiler via \u003cfeatures.h\u003e.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "75daab1784f515104ceef747d134981ecee7b0af",
      "tree": "59568423721f1ce51699451390e735ee07d93a7f",
      "parents": [
        "e472b8a5141b91a4bb50f8ff55540cd601321572"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@jakma.org",
        "time": "Thu Sep 24 10:26:55 2015 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Sep 24 15:26:46 2015 +0100"
      },
      "message": "pimd: Fix compile warning (error with Werror) on BSD\n\n* ioctl commands can vary in type between systems, cast to an unsigned long\n  before passing to format command.\n"
    },
    {
      "commit": "e472b8a5141b91a4bb50f8ff55540cd601321572",
      "tree": "bd9045eface182f1101593a60138c70c0b77f451",
      "parents": [
        "44d03fd59eb7c9f83afcfbafbe014c95e0a8f539"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Tue Sep 08 15:19:55 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Sep 24 15:26:45 2015 +0100"
      },
      "message": "pimd: Remove stdout zlog changes\n\nQuagga start has unnecessary pim messages to stdout.  Causing some confusion.\nLogging is already saving this information in pimd.log\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "44d03fd59eb7c9f83afcfbafbe014c95e0a8f539",
      "tree": "2ca150c3e596814b3fcb848df872073928bf65d4",
      "parents": [
        "26b663da7ea8a3efae816d6e7fda293bdc1082f5"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Tue Sep 08 15:02:07 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Sep 24 15:26:45 2015 +0100"
      },
      "message": "pimd: Fix leaked fd\n\nWhen caling pim_sock_open if the failure cause happens, however\nunlikely, don\u0027t leak the fd on failure.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "a9d4cb33faa6af622240190a80f41c4672374925",
      "tree": "9590bb1715d7418b50a742a3c83363d4e4b67755",
      "parents": [
        "f733280419f18b1a0e3b06ec3681781689d57053"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Sep 17 10:54:25 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Sep 24 15:26:44 2015 +0100"
      },
      "message": "lib/zclient: Consolidate error reporting for zclient_read_header\n\nAll functions that call zclient_read_header immediately turn around\nand check to ensure that the version and marker fields are correct\nMove this code into zclient_read_header\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "794c4735f81289d9fc603b5fd5e4a5d39dbb5ca5",
      "tree": "b81f6a549fe0916bdf25b5a5a88745c34a4e816d",
      "parents": [
        "a29c8a23a35b3f94c6aea5b3b7578b5dbf81ad71"
      ],
      "author": {
        "name": "Nicolas Dichtel",
        "email": "nicolas.dichtel@6wind.com",
        "time": "Wed Sep 16 09:42:36 2015 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Sep 24 15:26:41 2015 +0100"
      },
      "message": "bgpd/pimd: fix zAPI parsing\n\nCommit c99f3481a598 has changed the API. Now, the vrfid has been added in\nthe header, thus we must read it before parsing the rest of the message.\n\nTo ease code maintenance, let\u0027s add a new function to read a zAPI header.\n\nFixes: c99f3481a598 (\"*: add VRF ID in the API message header\")\nReported-by: Martin Winter \u003cmwinter@opensourcerouting.org\u003e\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nTested-by: Martin Winter \u003cmwinter@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "52c0bc739b1184621525e64720b944268d6b0eeb",
      "tree": "a556a51ef56f6ccaa63c942c9880c684fc4b3bae",
      "parents": [
        "c8ee940cc695cbcf9c0156ee6f72730f1fff9814"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@jakma.org",
        "time": "Thu Aug 20 21:30:17 2015 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Sep 03 16:44:48 2015 +0100"
      },
      "message": "build: Remove the old PIC/PIE patch, let libtool sort it out\n\n* Remove the old change from \u002708 to add in PIE arguments at automake level.\n  Versions of libtool since then know how to deal with -fpie and do the right\n  thing according to whether its building shared or executable objects.\n  So just pass \u0027-fpie\u0027 as CFLAG and let libtool do its thing.\n"
    },
    {
      "commit": "22e0224d4148e0e4fd5952020fd6ae74efd1bf93",
      "tree": "152c51f12832812c84ffdb1b8cce9208abfe3f46",
      "parents": [
        "d2c6da209cec42c05941eff52d88f0ed7eabad48"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Fri Aug 21 19:35:27 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Sep 03 16:29:09 2015 +0100"
      },
      "message": "pimd: Create ability to modify hell and hold timers per interface\n\nCreate new per interface command:\n\u0027ip pim hello \u003c1-180\u003e {\u003c1-180\u003e}\u0027\n\nThe first number is the Hello Timer for this interface\nThe second number is the Hold Timer to pass to neighbors on this interface.\nThe second number is optional.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "d2c6da209cec42c05941eff52d88f0ed7eabad48",
      "tree": "31f1258990cc7d83442a057bec90c2ac57888cac",
      "parents": [
        "a031c4dd72514232296e9a570c3d701f5f33ad63"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Jul 02 09:53:59 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 21 17:25:18 2015 +0100"
      },
      "message": "pimd: Change ioctl call failure from vty_out to zlog_warn\n\nThe command \u0027show ip multicast\u0027 when run, iterates over all interfaces\non the router, if you do not have pim configured on that interface\nit would generate an error message:\n\nInterface Address         ifi Vif  PktsIn PktsOut    BytesIn   BytesOut\nbr1       20.0.15.1         7   7       0       0          0          0\nswp1      169.254.0.10      3   3       0       0          0          0\nswp2      169.254.0.26      4   4       0       0          0          0\nioctl(SIOCGETVIFCNT\u003d35296) failure for interface swp3 vif_index\u003d-1: errno\u003d22: Invalid argument\nioctl(SIOCGETVIFCNT\u003d35296) failure for interface swp4 vif_index\u003d-1: errno\u003d22: Invalid argument\n\nThis fixes the issue to display this instead:\n\nInterface Address         ifi Vif  PktsIn PktsOut    BytesIn   BytesOut\nbr1       20.0.15.1         7   7       0       0          0          0\nswp1      169.254.0.10      3   3       0       0          0          0\nswp2      169.254.0.26      4   4       0       0          0          0\nswp3      0.0.0.0           5  -1       0       0          0          0\nswp4      0.0.0.0           6  -1       0       0          0          0\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "a031c4dd72514232296e9a570c3d701f5f33ad63",
      "tree": "7c155a444fa26bc8c30426ae5905c9f6f6c2fab3",
      "parents": [
        "73de55a53c78d572f63d45115681567a4c0cef65"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Jul 02 13:22:49 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 21 17:25:18 2015 +0100"
      },
      "message": "pimd: Ensure new generation_id is different from previous\n\nThe RFC states that an interfaces generation_id must be changed\nif it experiences an if down.  From 4.3.1:\n\nThe GenID option contains a randomly generated\n32-bit value that is regenerated each time PIM forwarding is started\nor restarted on the interface, including when the router itself\nrestarts.\n\nSince we are only grabbing a new generation_id without comparing\nit to the previous generation_id, it is possible that random\ncan generate the exact same number.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "73de55a53c78d572f63d45115681567a4c0cef65",
      "tree": "a6e671a17ca5f9098be0c8c65665a2be0162fd68",
      "parents": [
        "76240f11e640824438605012a8e44c968bc9e5b0"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Tue Jun 16 13:19:56 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 21 17:25:18 2015 +0100"
      },
      "message": "pimd: Stop DR election on every hello\n\nThe DR election is occurring on every hello received.\nThis is because the hello receive packet returns a 0\nfor any successfully received packet.  PIMD then looked\nat the 0 returned and did a DR election.\n\nCode was inspected for the cases where DR should happen:\n(A) Interface ip address change\n(B) DR priority in hello packet changes\n(C) Received a new neighbor on an interface\n(D) Neighbor timer pops.\n\nEach of these initiate a DR election in the code currently.\n\nTesting was initiated on a pim network:\ntor-11# show ip pim designated-router\nNonPri: Number of neighbors missing DR Priority hello option\n\nInterface Address         DR              Uptime   Elections Changes NonPri\nbr1       20.0.15.1       20.0.15.1       00:08:16         1       1      0\nswp1      169.254.0.10    169.254.0.10    00:08:16         2       1      0\nswp2      169.254.0.26    169.254.0.26    00:08:16         2       1      0\ntor-11#\n\nAs you can see Elections \u003d\u003d 2.  This is because pimd performs\nan election on (A) and (C) above.  I see no need to modify\n(A) to check if we have any knowledge of the interface before\nthis call.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "76240f11e640824438605012a8e44c968bc9e5b0",
      "tree": "9e03c16d454d0b44d1c361d97aafed950f45ea4f",
      "parents": [
        "6ae80e0d80531f602c3cb0e535c4e12bd2181b40"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Jun 18 17:01:34 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 21 17:25:18 2015 +0100"
      },
      "message": "pimd: Fix first DR Election\n\nThe function pim_neighbor_new caused the dr election before\nthe addition of the neighbor to the pim_ifp-\u003epim_neighbor_list,\nin pim_neighbor_add, which is needed to properly elect the\ncorrect DR.\n\nMove the dr_election and hello trigger till after the addition\nto the list.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "6ae80e0d80531f602c3cb0e535c4e12bd2181b40",
      "tree": "2d62c703648a90b46d5a4dec680a126667246128",
      "parents": [
        "030674d7f9b2a25d4d337459ef32287de8f9879d"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Thu Jun 18 18:14:20 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 21 17:25:18 2015 +0100"
      },
      "message": "pimd: Add ability to set DR Priority for an interface\n\nFrom RFC 4601, Section 4.3.1:\n\nThe DR_Priority Option allows a network administrator to give\npreference to a particular router in the DR election process by\ngiving it a numerically larger DR Priority.  The DR_Priority Option\nSHOULD be included in every Hello message, even if no DR Priority is\nexplicitly configured on that interface.  This is necessary because\npriority-based DR election is only enabled when all neighbors on an\ninterface advertise that they are capable of using the DR_Priority\nOption.  The default priority is 1.\n\nThis modification allows the setting of the DR Priority on a per\ninterface basis.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "030674d7f9b2a25d4d337459ef32287de8f9879d",
      "tree": "a826aef3d6a95cf7816e65fef77cf39946d0463b",
      "parents": [
        "6064613154b6302606547735f0c466910a6443ea"
      ],
      "author": {
        "name": "Jafar Al-Gharaibeh",
        "email": "jafar@atcorp.com",
        "time": "Thu Jun 11 18:29:02 2015 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 21 16:30:20 2015 +0100"
      },
      "message": "pimd: add support for configuring multicast static routes\n\nHi,\n\nThis patch adds the ability to configure multicast static routes\ndirectly into pimd. Two source files are introduced to implement the new\nfeature in addition to changes to existing files.\n\nHere is how it can be used the CLI:\n\ninterface \u003cincoming interface\u003e\nip mroute \u003coutgoing interface\u003e \u003cgroup addr\u003e                          #\nfor asm\nor ip mroute \u003coutgoing interface\u003e \u003cgroup addr\u003e \u003csource\u003e    # for ssm\n\nPlease let me know if you have any questions or concerns,\n\nRegards,\nJafar\n\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "cd557c3d766a7233490b8cf7325219ffa1398ef2",
      "tree": "b69b7c4a2639e5acc6bdc457bbfa4752732afc28",
      "parents": [
        "08d95905acd0cbb810831429b638ac2d1604ca37"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Wed May 27 17:40:46 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Jul 29 21:44:02 2015 +0100"
      },
      "message": "pim: \u0027show debugging\u0027 collision\n\nThe \u0027show debugging\u0027 cli as setup by pim collided with \u0027show debugging isis\u0027.\nFix that and clean up cli help commands to actually display correctly.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "7f56743f7d4b3dcdae329de2de2aba820368c3d9",
      "tree": "22f257e60e1bf6361f35b89307d51a82554e2339",
      "parents": [
        "b1891fb9705b6085f81269dec0795f2065442047"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Fri Jun 12 17:47:26 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jun 21 14:56:56 2015 +0100"
      },
      "message": "pimd assert when no route to source from a new igmp join\n\nWhen pim_upstream_new is called the code looks up the nexthop.\nIf there is no route to the source, the code silently ignored\nthe error returned.  When the nexthop lookup fails don\u0027t create\nthe \u0027struct pim_stream *\u0027 to return.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "1934e7895ded8d9d7a76ab3f482c381bf5f6725c",
      "tree": "96631dc7dc52c9ed6f2143675d0e95885df8fcfc",
      "parents": [
        "f31bab4fbf367a4417784ba9873e524d42242036"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Fri Jun 05 12:15:44 2015 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jun 21 14:56:16 2015 +0100"
      },
      "message": "pim_mroute.h has a different version of code than linux/mroute.h provides\n\nlinux/mroutes.h and pim_mroute.h both have copies of the same structures.\nThis is causing failures in setsockopt(..., MRT_ADD_MFC,...) because\nof data structure incompatibilities between the kernel and what\npim_mroute.h was providing.  Modify the code to check for mroute.h\nand include it if necessary.  I did not modify the non linux/mroute.h\npath because I do not have other systems to test on easily.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "771626860adfc30c00f70d993ccb8f4d7c0c0c63",
      "tree": "86335b9708c5d88c1709c36386bf72d04843d6ec",
      "parents": [
        "1ed8ce47b922b71f3b3cdd661e647bbe7ed2eca7"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Fri Jun 19 19:26:18 2015 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jun 21 14:39:22 2015 +0100"
      },
      "message": "PIMD: Fix code to use srandom/random\n\npimd rolled it\u0027s own solution to random #\u0027s, that was not\nterribly random.  Rely on the underlying system to generate\nrandom #\u0027s for us\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "c99f3481a598e9cadd1de96714f6b5df9ad85c4a",
      "tree": "aac6df566f28c13fce5c9f02275f159fab73a24d",
      "parents": [
        "758fb8f99a7bfac3d31c419fd1a5694fc5f33f6a"
      ],
      "author": {
        "name": "Feng Lu",
        "email": "lu.feng@6wind.com",
        "time": "Thu Oct 16 09:52:36 2014 +0800"
      },
      "committer": {
        "name": "Nicolas Dichtel",
        "email": "nicolas.dichtel@6wind.com",
        "time": "Wed Jun 03 10:24:12 2015 +0200"
      },
      "message": "*: add VRF ID in the API message header\n\nThe API messages are used by zebra to exchange the interfaces, addresses,\nroutes and router-id information with its clients. To distinguish which\nVRF the information belongs to, a new field \"VRF ID\" is added in the\nmessage header. And hence the message version is increased to 3.\n\n* The new field \"VRF ID\" in the message header:\n\n    Length    (2 bytes)\n    Marker    (1 byte)\n    Version   (1 byte)\n    VRF ID    (2 bytes, newly added)\n    Command   (2 bytes)\n\n  - Client side:\n\n    - zclient_create_header() adds the VRF ID in the message header.\n    - zclient_read() extracts and validates the VRF ID from the header,\n      and passes the VRF ID to the callback functions registered to\n      the API messages.\n    - All relative functions are appended with a new parameter \"vrf_id\",\n      including all the callback functions.\n    - \"vrf_id\" is also added to \"struct zapi_ipv4\" and \"struct zapi_ipv6\".\n      Clients need to correctly set the VRF ID when using the API\n      functions zapi_ipv4_route() and zapi_ipv6_route().\n    - Till now all messages sent from a client have the default VRF ID\n      \"0\" in the header.\n    - The HELLO message is special, which is used as the heart-beat of\n      a client, and has no relation with VRF. The VRF ID in the HELLO\n      message header will always be 0 and ignored by zebra.\n\n  - Zebra side:\n\n    - zserv_create_header() adds the VRF ID in the message header.\n    - zebra_client_read() extracts and validates the VRF ID from the\n      header, and passes the VRF ID to the functions which process\n      the received messages.\n    - All relative functions are appended with a new parameter \"vrf_id\".\n\n* Suppress the messages in a VRF which a client does not care:\n\n  Some clients may not care about the information in the VRF X, and\n  zebra should not send the messages in the VRF X to those clients.\n\n  Extra flags are used to indicate which VRF is registered by a client,\n  and a new message ZEBRA_VRF_UNREGISTER is introduced to let a client\n  can unregister a VRF when it does not need any information in that\n  VRF.\n\n  A client sends any message other than ZEBRA_VRF_UNREGISTER in a VRF\n  will automatically register to that VRF.\n\n  - lib/vrf:\n\n    A new utility \"VRF bit-map\" is provided to manage the flags for\n    VRFs, one bit per VRF ID.\n\n    - Use vrf_bitmap_init()/vrf_bitmap_free() to initialize/free a\n      bit-map;\n    - Use vrf_bitmap_set()/vrf_bitmap_unset() to set/unset a flag\n      in the given bit-map, corresponding to the given VRF ID;\n    - Use vrf_bitmap_check() to test whether the flag, in the given\n      bit-map and for the given VRF ID, is set.\n\n  - Client side:\n\n    - In \"struct zclient\", the following flags are changed from\n      \"u_char\" to \"vrf_bitmap_t\":\n          redist[ZEBRA_ROUTE_MAX]\n          default_information\n      These flags are extended for each VRF, and controlled by the\n      clients themselves (or with the help of zclient_redistribute()\n      and zclient_redistribute_default()).\n\n  - Zebra side:\n\n    - In \"struct zserv\", the following flags are changed from\n      \"u_char\" to \"vrf_bitmap_t\":\n          redist[ZEBRA_ROUTE_MAX]\n          redist_default\n          ifinfo\n          ridinfo\n\n      These flags are extended for each VRF, as the VRF registration\n      flags. They are maintained on receiving a ZEBRA_XXX_ADD or\n      ZEBRA_XXX_DELETE message.\n\n      When sending an interface/address/route/router-id message in\n      a VRF to a client, if the corresponding VRF registration flag\n      is not set, this message will not be dropped by zebra.\n\n    - A new function zread_vrf_unregister() is introduced to process\n      the new command ZEBRA_VRF_UNREGISTER. All the VRF registration\n      flags are cleared for the requested VRF.\n\n  Those clients, who support only the default VRF, will never receive\n  a message in a non-default VRF, thanks to the filter in zebra.\n\n* New callback for the event of successful connection to zebra:\n\n  - zclient_start() is splitted, keeping only the code of connecting\n    to zebra.\n\n  - Now zclient_init()\u003d\u003ezclient_connect()\u003d\u003ezclient_start() operations\n    are purely dealing with the connection to zbera.\n\n  - Once zebra is successfully connected, at the end of zclient_start(),\n    a new callback is used to inform the client about connection.\n\n  - Till now, in the callback of connect-to-zebra event, all clients\n    send messages to zebra to request the router-id/interface/routes\n    information in the default VRF.\n\n    Of corse in future the client can do anything it wants in this\n    callback. For example, it may send requests for both default VRF\n    and some non-default VRFs.\n\nSigned-off-by: Feng Lu \u003clu.feng@6wind.com\u003e\nReviewed-by: Alain Ritoux \u003calain.ritoux@6wind.com\u003e\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\n"
    },
    {
      "commit": "126215c1238eb42cc92d23aefbe1fac3b204438f",
      "tree": "22910b50f39003e297efc6236711581cbf3b2ada",
      "parents": [
        "2fc97f6335dd5d7df2c285b363c6ef56bb98dcf8"
      ],
      "author": {
        "name": "Feng Lu",
        "email": "lu.feng@6wind.com",
        "time": "Fri May 22 11:39:58 2015 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Jun 02 06:58:12 2015 +0200"
      },
      "message": "*: call if_init()/if_terminate() from vrf_init()/vrf_terminate()\n\nLater, an interface will belong to a specific VRF, and the interface\ninitialization will be a part of the VRF initialization. So now call\nif_init() from vrf_init(), and if_terminate() from vrf_terminate().\n\nDaemons have the according changes:\n- if if_init() was called or \"iflist\" was initialized, now call\n  vrf_init() instead;\n- if if_terminate() was called or \"iflist\" was destroyed, now call\n  vrf_terminate() instead.\n\nSigned-off-by: Feng Lu \u003clu.feng@6wind.com\u003e\nReviewed-by: Alain Ritoux \u003calain.ritoux@6wind.com\u003e\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nAcked-by: Vincent JARDIN \u003cvincent.jardin@6wind.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "5460baef7f0014f2d0c3459aa9c4180da19d6850",
      "tree": "43c44fde298e4fbaf1de87a6dc287b0c82a4f515",
      "parents": [
        "336724d628be71022f80cfe3dfb34274ad95ec14"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue May 19 00:35:04 2015 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed May 20 00:34:21 2015 +0200"
      },
      "message": "*: fix \"babeld: Remove babeld from Quagga\" (336724d)\n\nThis removes some more bits of babeld, particularly from:\n- buildtest.sh\n- redhat/ build files\n- vtysh integration (which actively broke the build)\n\nThe memtype and zclient/route type are kept in place since these don\u0027t\nbreak anything and -theoretically- make it possible to build babeld\nwith some Quagga integration externally.\n(Keeping vtysh integration is unfortunately not as easy.)\n\nReported-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nFixes: 336724d (\"babeld: Remove babeld from Quagga\")\nAcked-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nAcked-by: Paul Jakma \u003cpaul@quagga.net\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "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": "940b19911209d8ad2ea326c4a46e0fb044568edc",
      "tree": "a973032a6ab9fc47a93e0102bb37e3e22f2c6f43",
      "parents": [
        "c0bedebfe9ca1a1ded02f1f481762dd41defa63e"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 09:45:06 2015 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:19:47 2015 +0200"
      },
      "message": "pimd: fix out of tree build\n\npimd/Makefile.am was missing srcdir/lib from its include paths, breaking\nout-of-tree build regarding route_types.h\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c0bedebfe9ca1a1ded02f1f481762dd41defa63e",
      "tree": "9c040f71733fb7509c03457bc146373e65e95536",
      "parents": [
        "3a7e83c2387885075c9ecf1912dd6c9399c6947a"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 03 10:00:43 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:19:33 2015 +0200"
      },
      "message": "build: add --enable-werror\n\nThis allows enabling -Werror in a consistent way.  Note that this is\ndifferent from just specifiying it in CFLAGS, since that would either\nbreak configure tests (if done on ./configure), or would override\nconfigure\u0027s CFLAGS (if done on make).\n\nUsing --enable-werror instead provides a new WERROR variable that is\nadditionally used during make with a consistent set of warning flags.\n\nThe tests/ directory is exempt.  (Rationale being, better to have more\ntests than pedantically complain about them.)\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "c7879ea62fb38999a86ca9cbabbdeca18785e135",
      "tree": "a341dc46185e3139000334ff6733b2ffdec8134c",
      "parents": [
        "a2c7f4bd869bd232eb12896ff65a510d6716d2b9"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Mar 04 06:37:20 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:18:38 2015 +0200"
      },
      "message": "pimd: cast ioctl values when printing them\n\nioctl values might be int or long, cast them to unsigned long for\nconsistent printing.  (They\u0027re long on FreeBSD, but were printed with\n%d.)\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a2c7f4bd869bd232eb12896ff65a510d6716d2b9",
      "tree": "159a86f854be31d8183026f7f731ad3e5e49d0f9",
      "parents": [
        "e070452d981f58d60d79d7b4b38c93fb034c49b3"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 03 21:03:52 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:18:35 2015 +0200"
      },
      "message": "pimd: cast to sockaddr_in to sockaddr\n\nWhile glibc seems to have something in the system headers that prevents\nthis from triggering a warning, FreeBSD doesn\u0027t.  Fix the warning.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "e070452d981f58d60d79d7b4b38c93fb034c49b3",
      "tree": "d9003c1ff67b53b45d554d4e307c321ceaa79353",
      "parents": [
        "a3466abd93f83424f9f83e56282e42188e1f94ce"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Mar 03 10:41:21 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Apr 21 10:18:32 2015 +0200"
      },
      "message": "pimd: mask unused zclient_broken()\n\nthis function is used by the currently not present zclient reconnect\ncode.  It\u0027ll be unmasked again when that code hits master.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "237aac56960575f6ad2451ba2796d94bd5ae4b33",
      "tree": "f23c49fa32bc6b706bd5f37a9a3a45ce27adf15d",
      "parents": [
        "b6fa76098d127f5641a7dda0dee21f06ca167edb"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Jun 28 22:23:10 2014 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Sat Feb 14 19:19:14 2015 +0100"
      },
      "message": "build: get rid of INCLUDES, use AM_CPPFLAGS\n\nINCLUDES in configure.ac was not used at all, and INCLUDES in\nMakefile.am is supposed to be AM_CPPFLAGS these days.\n\nReduces warnings spewed during bootstrap/autoreconf.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\nAcked-by: Greg Troxel \u003cgdt@ir.bbn.com\u003e\nAcked-by: Feng Lu \u003clu.feng@6wind.com\u003e\nAcked-by: Paul Jakma \u003cpaul@jakma.org\u003e\n"
    },
    {
      "commit": "bb7feff0af6c8519df45a4f40f06cdd819fe70d0",
      "tree": "f0d3d4cc743f0eccf8c2a8e7b738d108324952d4",
      "parents": [
        "5d5af78a1b9310c0c2290f81ee8abc12d5376500"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:40:25 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:48:06 2015 +0100"
      },
      "message": "Revert \"pimd: clear zclient-update: Reset zclient update connection to zebra daemon\"\n\nThis reverts commit 3456a80f5f8e6e44c30453bd92eabf5faf7ab25b.\n\nConflicts:\n\tpimd/pim_zebra.c\n\nThis depends on the zebra reconnect changes, which we\u0027re not picking up\nat this point.  This revert is partial, only bumping out the\nreconnect-related changes.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "5d5af78a1b9310c0c2290f81ee8abc12d5376500",
      "tree": "a7fbdbb336c73f12c391a1945ebb2dd51f3bb346",
      "parents": [
        "a2805de2b25383695f38a3ebbefe75e26a5e9aba"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:33:59 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:33:59 2015 +0100"
      },
      "message": "Revert \"pim: Remove connected addresses on loss of zebra connection.\"\n\nThis reverts commit 96b6dfe98793549aca6a7cc77eaf0957b1168ed2.\n\nThis depends on the zebra reconnect changes, which we\u0027re not picking up\nat this point.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a2805de2b25383695f38a3ebbefe75e26a5e9aba",
      "tree": "500c1331137ed45c38776baa5132910f50e8405d",
      "parents": [
        "b3c6afe9fdc8c65d71abde3a2f26525b87189297"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:33:26 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:33:26 2015 +0100"
      },
      "message": "Revert \"pimd: Explicitly restart zclient update connection.\"\n\nThis reverts commit 8150beed9a4f50a72696a65c1f40889ab65ad7ff.\n\nThis depends on the zebra reconnect changes, which we\u0027re not picking up\nat this point.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "b3c6afe9fdc8c65d71abde3a2f26525b87189297",
      "tree": "9c496a76960036ccccd56a319bc1779a2bb91cea",
      "parents": [
        "1b47764f50cc074ba795d2b4477a3bc2372a8d9b"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:32:28 2015 +0100"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:32:28 2015 +0100"
      },
      "message": "Revert \"pimd: Revert: Explicitly restart zclient update connection.\"\n\nThis reverts commit 199f85ade39f751dd493fe011107736c9b168953.\n\nThis depends on the zebra reconnect changes, which we\u0027re not picking up\nat this point.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "85385f7eeee14d529065db7b863478c3ba455dd4",
      "tree": "2bd0f78e9da970f6153fd266d2214fe91c33dac9",
      "parents": [
        "d632689579bbcbfb5f38c3faf05ad675e002c059"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Jan 19 18:25:45 2015 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:02 2015 +0100"
      },
      "message": "pimd: Log ifindex found for an interface when zebra lib reports a new connected address.\n"
    },
    {
      "commit": "d632689579bbcbfb5f38c3faf05ad675e002c059",
      "tree": "3823abed012538efe59e05bd2516b22d8de09f72",
      "parents": [
        "ed14fa00758a156b108854bb35bc5077654f080d"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Mon Jan 19 16:50:24 2015 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:02 2015 +0100"
      },
      "message": "pimd: Fix configuration file reading upon startup\n\nWithout the fix, qpimd issues this error message:\npim_if_add_vif: ifindex\u003d0 \u003c 1 on interface swp1\nIt happens because in pim_main.c:main() we are initializing zebra with pim_zebra_init() after we read in the configuration with vty_read_config().\n\nSee also: https://github.com/udhos/qpimd/issues/3\n"
    },
    {
      "commit": "ed14fa00758a156b108854bb35bc5077654f080d",
      "tree": "cf73290d653593d9891e1f7531ee696a7828dcae",
      "parents": [
        "21d1e26dcb4dc290fd0fe05618cbc96c67f85ffe"
      ],
      "author": {
        "name": "Balaji.G",
        "email": "balajig81@gmail.com",
        "time": "Wed Oct 08 01:11:31 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:02 2015 +0100"
      },
      "message": "pimd: Addition of Hello \u0026 Join-Prune message debug commands\n\nSeparate \"debug pim packets hello and Join-Prune\" added to enable hello\nand Join-Prune debugs specifically\n"
    },
    {
      "commit": "21d1e26dcb4dc290fd0fe05618cbc96c67f85ffe",
      "tree": "b54407bb3e89efbb8a3c85ac9128fe9c99081cd5",
      "parents": [
        "24e3a9b5ff17553d20a2f9e4ce2a61b5012cd0f6"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Oct 01 18:34:04 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:02 2015 +0100"
      },
      "message": "pimd: show ip pim lan-prune-delay: Cosmetic.\n"
    },
    {
      "commit": "24e3a9b5ff17553d20a2f9e4ce2a61b5012cd0f6",
      "tree": "6e2dc00ba0b41e56b9527182532e4460c119fd75",
      "parents": [
        "ddc6659dd0f05b304ef579dcee6ac803e1a4b6d2"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Sep 30 19:14:19 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:02 2015 +0100"
      },
      "message": "pimd: Report del_oif() failure within igmp_source_forward_stop().\n"
    },
    {
      "commit": "ddc6659dd0f05b304ef579dcee6ac803e1a4b6d2",
      "tree": "74db2e646fc5c69d7f75e974641d9121f3b89ebb",
      "parents": [
        "199f85ade39f751dd493fe011107736c9b168953"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Sep 30 16:49:36 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:02 2015 +0100"
      },
      "message": "pimd: sh ip multicast: Display zclient socket fail counter.\n"
    },
    {
      "commit": "199f85ade39f751dd493fe011107736c9b168953",
      "tree": "4a62c71f6f889b0c862241bafaba1cc8b3efe85f",
      "parents": [
        "a59f21b1a58f121aac466710f32b557a4c75061d"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Sep 30 16:50:40 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:01 2015 +0100"
      },
      "message": "pimd: Revert: Explicitly restart zclient update connection.\n"
    },
    {
      "commit": "a59f21b1a58f121aac466710f32b557a4c75061d",
      "tree": "da986767e281600b36d2127ad0299bfc2f6fc1e3",
      "parents": [
        "8150beed9a4f50a72696a65c1f40889ab65ad7ff"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Sep 30 17:23:56 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:01 2015 +0100"
      },
      "message": "pimd: Update lookup zclient counter for connection failures.\n"
    },
    {
      "commit": "8150beed9a4f50a72696a65c1f40889ab65ad7ff",
      "tree": "899d127a1e4f1dc739d51babf627d3f8becce524",
      "parents": [
        "e324ddc5c73b2e2fb1c450a5fe927aa336e568e6"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Sep 29 17:58:30 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:01 2015 +0100"
      },
      "message": "pimd: Explicitly restart zclient update connection.\n"
    },
    {
      "commit": "e324ddc5c73b2e2fb1c450a5fe927aa336e568e6",
      "tree": "3e30900e05f74dcc0cc1e09e058d3054dbd70348",
      "parents": [
        "6ab3e2f5759db58469ceb1702df1bc3d18f7a952"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Sep 29 17:59:02 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:01 2015 +0100"
      },
      "message": "pimd: sh ip multicast: Display zclient sockets.\n"
    },
    {
      "commit": "6ab3e2f5759db58469ceb1702df1bc3d18f7a952",
      "tree": "7269b53fd89ec279b5d16a471b4753a688a541b9",
      "parents": [
        "ecc1fb93419e0f9d9297f0417bee0b697ce24dec"
      ],
      "author": {
        "name": "Savannah SR#108542",
        "email": "nbahr@atcorp.com",
        "time": "Thu Sep 25 16:59:38 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:01 2015 +0100"
      },
      "message": "pimd: Fix attempted out of bounds read when deleteing an interface.\n\nhttps://savannah.nongnu.org/support/index.php?108542\n"
    },
    {
      "commit": "ecc1fb93419e0f9d9297f0417bee0b697ce24dec",
      "tree": "5c2bb58462a924d4f65980d5b16f74c6c5b46a86",
      "parents": [
        "05c6dcdf8cd8e50681de76cc787f46389a7b9238"
      ],
      "author": {
        "name": "Savannah SR#108542",
        "email": "nbahr@atcorp.com",
        "time": "Thu Sep 25 14:41:43 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:01 2015 +0100"
      },
      "message": "pimd: Fix igmp_source_forward_stop called when IGMP forwarding flag is not set in oif_flags.\n\nhttps://savannah.nongnu.org/support/index.php?108542\n"
    },
    {
      "commit": "05c6dcdf8cd8e50681de76cc787f46389a7b9238",
      "tree": "4291cffbdb1277b5755f7b2dc595f79a40ab31a0",
      "parents": [
        "d8410a0242ab055b96708c5b33358916330bc85a"
      ],
      "author": {
        "name": "Savannah SR#108542",
        "email": "nbahr@atcorp.com",
        "time": "Thu Sep 25 14:52:18 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:01 2015 +0100"
      },
      "message": "pimd: Fix invalid memory read when receiving a V1 or V2 query.\n\nhttps://savannah.nongnu.org/support/index.php?108542\n"
    },
    {
      "commit": "ea537be5278398cd8c32f8046e4789e613420916",
      "tree": "79fa838b4f6e1b7ba169f68eccac00b42aa61536",
      "parents": [
        "bbb8a18bb5570ff59cf71b46793465828af1fcf3"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Sep 23 14:30:10 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:00 2015 +0100"
      },
      "message": "pimd: Remove debuggging for zclient TCP/UNIX sockets.\n"
    },
    {
      "commit": "96b6dfe98793549aca6a7cc77eaf0957b1168ed2",
      "tree": "9c6d51b5365a65115e049a944e2205611acb0667",
      "parents": [
        "679fab42343381f609527166f48dbf9ba19f3aab"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Sep 22 15:47:52 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:00 2015 +0100"
      },
      "message": "pim: Remove connected addresses on loss of zebra connection.\n"
    },
    {
      "commit": "679fab42343381f609527166f48dbf9ba19f3aab",
      "tree": "346b58915f873c9cec7234f7ba772db066993f0b",
      "parents": [
        "4d330a2719fd684739a16c6aa3be6632bc3745a2"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Sep 18 14:54:07 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:00 2015 +0100"
      },
      "message": "pimd: Simplify gettime-related code.\n"
    },
    {
      "commit": "a089db4a0678cc1bbbf003bbda2561c03760badc",
      "tree": "a74ef6e2c38b8f353eb5cdb2ad84fe7ca4c214b6",
      "parents": [
        "74b4fad93e89df358441b1b3b23282aaca8c80b8"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Sep 18 12:08:05 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:00 2015 +0100"
      },
      "message": "pimd: Fix log about PIM_USE_QUAGGA_GETTIME.\n"
    },
    {
      "commit": "74b4fad93e89df358441b1b3b23282aaca8c80b8",
      "tree": "1baaf3d2173cb33fa44c3dae4b45d0720479367d",
      "parents": [
        "3d62667ab0e8e7ee6e17e883b144e25ee84c4545"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Sep 18 12:06:53 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:00 2015 +0100"
      },
      "message": "pimd: Remove motd tweaking.\n"
    },
    {
      "commit": "3d62667ab0e8e7ee6e17e883b144e25ee84c4545",
      "tree": "402dcb3bbcf8b6629642979a7c76c77665be181c",
      "parents": [
        "93911267a3105931fbaee62dabf7cc444466a6c2"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Sep 18 11:24:36 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:08:00 2015 +0100"
      },
      "message": "pimd: Remove reference to external doc.\n"
    },
    {
      "commit": "93911267a3105931fbaee62dabf7cc444466a6c2",
      "tree": "a4dc4e52f731c36d5f73e7584f7fdde1a4545aa6",
      "parents": [
        "629e30bb436ce2231c47a38e1a5c5ac1c72beefa"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Sep 18 11:10:58 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:59 2015 +0100"
      },
      "message": "pimd: Remove unused pim checksum in favour of quagga\u0027s version.\n"
    },
    {
      "commit": "629e30bb436ce2231c47a38e1a5c5ac1c72beefa",
      "tree": "be8da2b04df9523b94d88e1f5c6446e1a6f6a04f",
      "parents": [
        "f80f8aa34b88c4e97654bca62b43605a3d029d92"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Aug 29 16:10:08 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:59 2015 +0100"
      },
      "message": "pimd: Version up.\n"
    },
    {
      "commit": "f80f8aa34b88c4e97654bca62b43605a3d029d92",
      "tree": "d8b7138d3e8311098947547e59e5d9d83fe32cb6",
      "parents": [
        "8852dba7737d85f9ff37c38358a4c92006c9a92e"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Aug 29 14:55:30 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:59 2015 +0100"
      },
      "message": "pimd: Troubleshooting script.\n"
    },
    {
      "commit": "8852dba7737d85f9ff37c38358a4c92006c9a92e",
      "tree": "485a998c684ee06d36603e1897cabee5b4e2661b",
      "parents": [
        "c1b228c5cfd589b3fee5c0cbe1564f38df57f7f6"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Aug 28 16:02:11 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:59 2015 +0100"
      },
      "message": "pimd: React as secondary address change for any address change\n"
    },
    {
      "commit": "c1b228c5cfd589b3fee5c0cbe1564f38df57f7f6",
      "tree": "dfa29a1de02793968ed40f2d6b6670336240cc0f",
      "parents": [
        "bb61be2e5acd272d4e1467406bc13e5b56b8ef66"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Aug 27 15:27:26 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:59 2015 +0100"
      },
      "message": "pimd: Reduce informative mandatory logging.\n"
    },
    {
      "commit": "bb61be2e5acd272d4e1467406bc13e5b56b8ef66",
      "tree": "e3e343d29db0c1cba7e6e3390f3925d66746ecad",
      "parents": [
        "3edadebed3f29383cc8d5825a9ef2fed5431235d"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Aug 22 15:40:02 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:59 2015 +0100"
      },
      "message": "pimd: Replace assert with warning.\n"
    },
    {
      "commit": "3edadebed3f29383cc8d5825a9ef2fed5431235d",
      "tree": "34945456f7e196540de7bffbb38dcd224c236fd8",
      "parents": [
        "275e24d0ec67f79ae4c5977ea419e1659f9c40ac"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Aug 22 14:29:31 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:59 2015 +0100"
      },
      "message": "pimd: Clarifications on debug hints.\n"
    },
    {
      "commit": "275e24d0ec67f79ae4c5977ea419e1659f9c40ac",
      "tree": "330a4624cc34bfce74fe96b468e27b517fb8c8e3",
      "parents": [
        "1f298949bea9e58623eb81f245491dcdb1df8c59"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Aug 22 11:12:23 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:59 2015 +0100"
      },
      "message": "pimd: Fix interface \"no ip igmp\" should not disrupt PIM. Plus docs updates.\n"
    },
    {
      "commit": "1f298949bea9e58623eb81f245491dcdb1df8c59",
      "tree": "43f99443889cd692a3f6c8adfc40328a868efb67",
      "parents": [
        "7cb0d4a384b4964cc53b61549ffdef37fb0d76c5"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Aug 21 15:47:28 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:59 2015 +0100"
      },
      "message": "pimd: -z command-line switch to specify zebra socket path.\n"
    },
    {
      "commit": "7cb0d4a384b4964cc53b61549ffdef37fb0d76c5",
      "tree": "5dac589266bdcc2b5ae4b2b31ecba5a6c85c6365",
      "parents": [
        "9830ce2ef715a79c691866b83526d1025e47082d"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Aug 19 13:44:37 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:58 2015 +0100"
      },
      "message": "pimd: Cisco Documentation for SSM Benefits\n"
    },
    {
      "commit": "9830ce2ef715a79c691866b83526d1025e47082d",
      "tree": "d9c561a75a0041d3f18ddb210a9a64f9f50bd57a",
      "parents": [
        "cf800dd0f9f2ae58efedc6af4e39ae6c0d99f873"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Aug 19 12:16:11 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:58 2015 +0100"
      },
      "message": "pimd: Why ssm.\n"
    },
    {
      "commit": "cf800dd0f9f2ae58efedc6af4e39ae6c0d99f873",
      "tree": "2600de68ce922e3a69ba011c5d4be2af845e4840",
      "parents": [
        "df838e2abd9727109cba559c6429ee4da82f863c"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Aug 19 12:01:52 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:58 2015 +0100"
      },
      "message": "pimd: Version up.\n"
    },
    {
      "commit": "df838e2abd9727109cba559c6429ee4da82f863c",
      "tree": "a0475dfef002df9d965b42e27dbddba65bafa417",
      "parents": [
        "3456a80f5f8e6e44c30453bd92eabf5faf7ab25b"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Jul 25 15:38:00 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:58 2015 +0100"
      },
      "message": "pimd: Better assert state transition message.\n"
    },
    {
      "commit": "3456a80f5f8e6e44c30453bd92eabf5faf7ab25b",
      "tree": "878fe14709ab997bdd7f793e1bf102edece1995c",
      "parents": [
        "ee61109c045f3c9960ec52912ebdbb8998ac63a1"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Jul 22 14:52:57 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:58 2015 +0100"
      },
      "message": "pimd: clear zclient-update: Reset zclient update connection to zebra daemon\n"
    },
    {
      "commit": "ee61109c045f3c9960ec52912ebdbb8998ac63a1",
      "tree": "8f73b7f9b41b6e523650871e55a9eb3b1a1c40be",
      "parents": [
        "d96f9ffaeac6ebb5b897c318b82fcb37c3ee81c2"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Jul 22 14:27:54 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:58 2015 +0100"
      },
      "message": "pimd: Fix comment\n"
    },
    {
      "commit": "d96f9ffaeac6ebb5b897c318b82fcb37c3ee81c2",
      "tree": "c940085a941b08731ea08b0e087b3b78a829b0b4",
      "parents": [
        "b240297cfea37f7a6608cac9fd2ae4848fe88e3f"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Jul 22 14:24:49 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:58 2015 +0100"
      },
      "message": "pimd: Recipe for building without vtysh.\n"
    },
    {
      "commit": "b240297cfea37f7a6608cac9fd2ae4848fe88e3f",
      "tree": "5328a38cc02b8796366653ca6f31829610a5bfea",
      "parents": [
        "2a0ecf21d6c0918da92033fbe4741ede63f108f2"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Sep 22 18:29:29 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:58 2015 +0100"
      },
      "message": "pimd: Detection of interface primary address changes.\n"
    },
    {
      "commit": "2a0ecf21d6c0918da92033fbe4741ede63f108f2",
      "tree": "7a608eb4bd34b52560b99480a987bb7df3866f94",
      "parents": [
        "b24c7fed49a861562bfb713db70ed1db2b89ff42"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Sep 22 18:18:26 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:58 2015 +0100"
      },
      "message": "pimd: Withstand zclient connection restablishment.\n"
    },
    {
      "commit": "d96ab32b6fce23907f0c5f35760a2b7410724d95",
      "tree": "6d72ace9d0757e1f2022994d27e0350a59d8fa43",
      "parents": [
        "075ac8ddbd6aa782619565a97ec474a90f1b6f4c"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Sep 22 17:59:13 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:57 2015 +0100"
      },
      "message": "pimd: Update configure recipe.\n"
    },
    {
      "commit": "075ac8ddbd6aa782619565a97ec474a90f1b6f4c",
      "tree": "5865489f9a6e6fc2f7b0a6860167d366c8029680",
      "parents": [
        "306c99eae67a7966a3994be1007f03665eb6682b"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Sep 24 15:18:37 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:57 2015 +0100"
      },
      "message": "pimd: Prevent interfaces\u0027 addresses duplication when zebra connection is restored.\n"
    },
    {
      "commit": "306c99eae67a7966a3994be1007f03665eb6682b",
      "tree": "d15449843211da7e2fc1cf05189792744a9a2256",
      "parents": [
        "f6e16b9f3592a3213e94f44b71caa311e0270cd9"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Jul 16 15:51:37 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:57 2015 +0100"
      },
      "message": "pimd: FIXED C14 T32 Detection of interface primary address changes may fail.\n"
    },
    {
      "commit": "f6e16b9f3592a3213e94f44b71caa311e0270cd9",
      "tree": "f9b932d9a98b430d14f3ed114c6798ed262be85e",
      "parents": [
        "e4f2a2bef879d9e7f5c4c80994c44772b09beb59"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Jul 16 14:13:47 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:57 2015 +0100"
      },
      "message": "pimd: Document MRIB support.\n"
    },
    {
      "commit": "e4f2a2bef879d9e7f5c4c80994c44772b09beb59",
      "tree": "ec276193a5f7a6f0dac70a0433095b0c8792fb98",
      "parents": [
        "6c1d36a462388039f92b875196c4d1c92ae69644"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Jul 16 12:19:40 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:57 2015 +0100"
      },
      "message": "pimd: Report first route\u0027s metric/distance for recursive RPF lookup.\n"
    },
    {
      "commit": "6c1d36a462388039f92b875196c4d1c92ae69644",
      "tree": "57238efd7dd8bbdd4e7b59dce9a7d9071d592861",
      "parents": [
        "6f40e6b74effb7447854f690a2a4fa9339d8a967"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Sep 18 14:15:04 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:57 2015 +0100"
      },
      "message": "pimd: Clean-up.\n"
    },
    {
      "commit": "6f40e6b74effb7447854f690a2a4fa9339d8a967",
      "tree": "b4fb5d4737aae1b3e48de2eb59823aa9d1fc51e2",
      "parents": [
        "2f1df6a58b9f0a278cbdee9fc57f964eef1c7bf7"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Jul 11 14:16:45 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:57 2015 +0100"
      },
      "message": "pimd: Fix compiler warnings.\n"
    },
    {
      "commit": "2f1df6a58b9f0a278cbdee9fc57f964eef1c7bf7",
      "tree": "840b239080b33f210f0ee34165bdea67be47cec5",
      "parents": [
        "f62a19cc281276607b164c99e672d536a012514d"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Thu Jul 03 15:37:52 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:57 2015 +0100"
      },
      "message": "pimd: Version up to 0.164\n"
    },
    {
      "commit": "5c55a496fae5ab089c5009bc4c03084fdeb51f55",
      "tree": "399c7769406c04b9671dc9cfcdcd372284639153",
      "parents": [
        "04c833a1e0fbf063f49ff0b9f837b07456580374"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Jul 02 12:12:16 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "pimd: Cosmetic fix for dr uptime display.\n"
    },
    {
      "commit": "04c833a1e0fbf063f49ff0b9f837b07456580374",
      "tree": "e0f8b6fca1cdf0b0753452efffe41bf09ea44351",
      "parents": [
        "82e6c730e624e86c00042b64fc32170630b2c18c"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Mon Sep 22 19:35:24 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "pimd: Query mrib (SAFI_MULTICAST).\n"
    },
    {
      "commit": "82e6c730e624e86c00042b64fc32170630b2c18c",
      "tree": "8ec129b384a3cb508b476d686f9811f1b631f8c0",
      "parents": [
        "ff57d3653efe4a1428147204b54cacf3651c4dd0"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Jun 25 17:28:04 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "pimd: Reset DR uptime only on actual change\n"
    },
    {
      "commit": "ff57d3653efe4a1428147204b54cacf3651c4dd0",
      "tree": "0b9ae54ba0da0f9a0391830445751495a248f11b",
      "parents": [
        "829198800217fe321faa397d21e2d8f99fcaf0dd"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Jun 25 15:54:03 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "pimd: Fixes to build against current quagga.\n"
    },
    {
      "commit": "829198800217fe321faa397d21e2d8f99fcaf0dd",
      "tree": "0dffa55bd36c5ef8d2cf016741787b4e64f58cd0",
      "parents": [
        "60353ab4b0857d3f416e315fd81568d9e60205c4"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Jun 25 13:25:17 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "pimd: Rename script with recipe for git cloning\n"
    },
    {
      "commit": "60353ab4b0857d3f416e315fd81568d9e60205c4",
      "tree": "814e4bc3e22972d45819d39bc24b7a5ba6d24b8d",
      "parents": [
        "069a0208ec10fca53676ec187f958037108363a6"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Apr 02 11:46:45 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "C19 Provision to prevent group mode clash\n"
    },
    {
      "commit": "069a0208ec10fca53676ec187f958037108363a6",
      "tree": "2da06e20eea0d30b281af77b259a207accf5b61c",
      "parents": [
        "1f7a2b44687a49e4dab649ce369b5735aa2dd20f"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Wed Apr 02 11:04:52 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "Fixed recipe to re-sync with Quagga repository\n"
    },
    {
      "commit": "1f7a2b44687a49e4dab649ce369b5735aa2dd20f",
      "tree": "680c5395233acfd9bdb09a0b34765be6a46ab1ea",
      "parents": [
        "d1a87ee63042225d4b3bf6b4655cd7e0e2b64828"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Tue Apr 01 18:38:50 2014 -0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "github repository.\n"
    },
    {
      "commit": "d1a87ee63042225d4b3bf6b4655cd7e0e2b64828",
      "tree": "0ad36dee7ef714e8e69ec3d5a65d88175511dc96",
      "parents": [
        "f24200d77a98c8091d23638096faf366e7c6c953"
      ],
      "author": {
        "name": "Everton Marques",
        "email": "everton.marques@gmail.com",
        "time": "Fri Feb 14 16:51:05 2014 -0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Feb 04 06:07:56 2015 +0100"
      },
      "message": "Fix pim join uptime display.\n"
    }
  ],
  "next": "f24200d77a98c8091d23638096faf366e7c6c953"
}
