)]}'
{
  "log": [
    {
      "commit": "daca2cf463496e5844812ea13a4fafefafe4853f",
      "tree": "fa15ebaba782e946197a18d4739b2539f4c9a1a9",
      "parents": [
        "6864a990771c66384a66cd6e7db443529460b0a6"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Wed Sep 16 01:52:42 2009 +0200"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:24:50 2011 +0400"
      },
      "message": "lib: put route_types.txt to real use\n\nthis replaces most occurences of routing protocol lists by preprocessor\ndefines from route_types.h. the latter is autogenerated from\nroute_types.txt by a perl script (previously awk). adding a routing\nprotocol now is mostly a matter of changing route_types.txt and log.c.\n\nConflicts:\n\n\tlib/route_types.awk\n"
    },
    {
      "commit": "6864a990771c66384a66cd6e7db443529460b0a6",
      "tree": "aed517988b259d9b80d3f3f7c20a80b9810f2e3e",
      "parents": [
        "87254a3f48874d7bbb127a118781d8ad1f017178"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Thu Aug 27 00:27:40 2009 +0200"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:24:38 2011 +0400"
      },
      "message": "zebra: fix redistribution of new protocols\n\nredistribute is currently limited to \"known\" protocols. there is no\nreason for this limitation, so, remove it.\n"
    },
    {
      "commit": "87254a3f48874d7bbb127a118781d8ad1f017178",
      "tree": "3a7d77af1b87c9a963fe747ff5e45f2f47b303e0",
      "parents": [
        "3480674a41cba545a1f546e012939e286909b10c"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Thu Aug 27 00:28:28 2009 +0200"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:24:28 2011 +0400"
      },
      "message": "rib: default distance value for new protocols (v2)\n\nadding protocols and forgetting to update zebra_rib.c currently causes\na beyond end of array access for the default distance value. fix by\nmaking 150 the default distance for unknown routing protocols.\n\n150 is higher than all other IGPs but lower than iBGP (200)\n"
    },
    {
      "commit": "337cdd69d9d5b5ef842d1be2e67126fdc6840181",
      "tree": "160131e7469a16c578885f1959f39e1a40c7062a",
      "parents": [
        "d9ddd5731d31a7bc1f0a39b7e4b0944dec7a2bdc"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Wed Nov 25 20:36:06 2009 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:23:58 2011 +0400"
      },
      "message": "zebra: set the interface link-layer socket address\n\n* kernel_socket.c: (ifm_read) The reorganization from commit\n  6fe70d1b35c189cb1e488b2c26551ba7baac6148 removed setting the\n  interface link-layer socket address structure on routing socket\n  platforms.  This restores saving the link-layer information because\n  it might be used elsewhere: rtm_write() when no gateway is given,\n  if_dump_vty() and rtadv_send_packet().\n"
    },
    {
      "commit": "f17b65213712f324314c58866c4f4f8ed9c95dc7",
      "tree": "4b840c844ee34f5d352136dfb22c690982465a34",
      "parents": [
        "4b6a7b902065e038f415a8b728df1709db00425d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Apr 11 16:33:20 2011 +0100"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:43:59 2011 +0400"
      },
      "message": "zebra: trivial warning fix\n\n* zebra_routemap.c: (route_set_src) get rid of the dummy family variable.\n"
    },
    {
      "commit": "257c0eb350f314014ff1f8a993f3cf2456964cda",
      "tree": "212d344e2058f7f3650bed6d3299b364cf2ead98",
      "parents": [
        "e00d4e2e3dd20d567d670cae1c33618910c639fa"
      ],
      "author": {
        "name": "Dmitry Popov",
        "email": "dp@highloadlab.com",
        "time": "Sun Sep 11 13:48:25 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Sep 25 18:12:13 2011 +0400"
      },
      "message": "zebra: fix loss of metric for Linux routes\n\n* rt_netlink.c\n  * netlink_route_change(): fetch metric information like\n    netlink_routing_table() does and pass it further\n"
    },
    {
      "commit": "695421486d651816a7082447adf2fec9fea50930",
      "tree": "1325768b12f58edfaa2abbe7575fd0bacb975453",
      "parents": [
        "330835409fb82522082eba4d4819467e5ab2de84"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Aug 28 22:29:52 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Aug 28 22:29:52 2011 +0400"
      },
      "message": "zebra: add missing includes\n"
    },
    {
      "commit": "cf8a831bcb53b60a7b5c4b26dda7646ebc7506d8",
      "tree": "1d15bcbd5556cd56416b01342a1cb1afd8d89b71",
      "parents": [
        "a6be12128c29b0dc5b8a6d6923510fc7f677b775"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Aug 18 15:56:46 2010 -0700"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Thu Aug 19 13:44:05 2010 -0400"
      },
      "message": "Zebra zserv: bogus conditional\n\nThis looks like a bug in original code from misunderstanding\nof C rules of evaluation.\n"
    },
    {
      "commit": "e26873fd8f0c4306eff65de94a45b4114fc81b98",
      "tree": "9775a683303e801df8555d5a74dbd714182857f6",
      "parents": [
        "cfe117498c8348bfcd8f5f95169a6621e437458a"
      ],
      "author": {
        "name": "Roman Hoog Antink",
        "email": "rha@open.ch",
        "time": "Wed May 05 16:00:50 2010 +0200"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Wed May 05 12:03:33 2010 -0400"
      },
      "message": "zebra: fix infinite loop when deleting an interface\n\nWhen deleting a VLAN interface after flushing its\naddresses, zebra uses 100% CPU time and freezes.\n\n * interface.c: The while loop in line 407 that\n   should clean up connected routes never hits one\n   of the 2 lines \"last \u003d node;\" and thus loops\n   forever.\n\nSigned-off-by: Roman Hoog Antink \u003crha@open.ch\u003e\n"
    },
    {
      "commit": "b6516829595ed4fc47af955de8bda9ef5be14ffd",
      "tree": "842806138758343d41598fded61943de51c4c363",
      "parents": [
        "2d362d1099f346202cb628665ff4ae563b2594f5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Dec 21 18:50:43 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Dec 21 18:50:43 2009 +0300"
      },
      "message": "zebra: change router-id selection algo\n\nThe router-id table looks like is supposed to be sorted in current\nquagga code, but the nodes are not added with the sorting\nfunction.\n\nThe sorting function is host byte order dependent.\nThe values need to converted before comparison.\n\nFixing this causes Zebra to choose the largest IP address\nas router-id, rather than the last address. This probably will\nsurprise some users. The other option would be to just remove the\ncomparison function and keep the existing LIFO behavior.\n\nLastly, simple subtraction works well for comparing.\n\n* zebra/router-id.c\n  * router_id_add_address(): employ listnode_add_sort()\n  * router_id_cmp(): employ ntohl(), then compare integers\n"
    },
    {
      "commit": "ab0f61552622084a13ede59adefc4c54b5513d7b",
      "tree": "d85ca70e55f064fd3a24072cf0f9a5fbbcdd5181",
      "parents": [
        "9e4ca89c3678431560a8259c75f8b5874d83d351"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Dec 10 14:22:44 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Dec 10 14:22:44 2009 +0300"
      },
      "message": "zebra: deal with irdp compile warnings\n\n* zebra/irdp.h\n  * irdp_send_thread(): move prototype to common header file\n  * irdp_advert_off(): idem\n  * process_solicit(): idem\n  * irdp_read_raw(): idem\n  * send_packet(): idem\n* zebra/irdp_interface.c\n  * inet_2a(): move function to where it is used\n  * in_cksum(): lib/checksum.h already provides prototype\n  * irdp_send_thread(): prototype moved away\n  * inet_2a(): idem\n  * irdp_advert_off(): idem\n  * b1, b2, b3, b4: get rid of global buffers for inet_2a()\n  * if_group(): add local buffer for inet_2a()\n  * if_add_group(): idem\n  * if_drop_group(): idem\n  * irdp_config_write(): idem\n  * Adv_new(): make static\n* zebra/irdp_main.c\n  * irdp_read_raw(): prototype moved away\n  * send_packet(): idem\n  * in_cksum(): lib/checksum.h already provides prototype\n  * inet_2a(): function moved to irdp_interface.c\n* zebra/irdp_packet.c\n  * b1, b2, b3, b4: get rid of global buffers for inet_2a()\n  * in_cksum(): lib/checksum.h already provides prototype\n  * process_solicit(): prototype moved away\n  * irdp_read_raw(): fix uninitialized variable\n"
    },
    {
      "commit": "cc2dd9280c4456586080d1cf4537d26c02fa9a36",
      "tree": "a7573e32187b87015f2a8efc6cbd9b8b7ef7057c",
      "parents": [
        "1352ef32d70dcc102074814de63b5d08e591dd2d"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Dec 09 17:54:49 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 09 17:54:49 2009 +0300"
      },
      "message": "zebra: cleanup RIB meta queue code\n\n* zebra/zebra_rib.c\n  * rib_queue_add(): indent comments and simplify debug code\n  * rib_queue_init(): remove unneeded assert() calls and\n    extra return statements\n"
    },
    {
      "commit": "b0b709ab6656ba07f12fe0d256912dcabba19017",
      "tree": "2633ce43d4256af90e9a85d2f866b911418b7cf8",
      "parents": [
        "0342b76cfbfde2b6f45c4614e674d53987b1e9fa"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Dec 08 13:26:14 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 08 13:26:14 2009 +0300"
      },
      "message": "zebra: fix more warnings in rtadv\n\n* zebra/rtadv.c\n  * rtadv_free(): remove unused function\n  * rtadv_recv_packet(): break up cast/dereference to avoid\n    compiler type pun warning\n  * rtadv_read(): initialize ifindex, because compiler can\u0027t\n    figure out that it is okay\n"
    },
    {
      "commit": "0342b76cfbfde2b6f45c4614e674d53987b1e9fa",
      "tree": "f126f00d400a7cac5dcbf0a0c948b855b03d5781",
      "parents": [
        "d02c56cdf0c2e01a986417ed973dd7a2a5368ac1",
        "ffac19c58ee636274cd3972b584e37cd9a3331de"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 08 13:15:12 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 08 13:15:12 2009 +0300"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://code.quagga.net/var/lib/git/quagga\n"
    },
    {
      "commit": "d02c56cdf0c2e01a986417ed973dd7a2a5368ac1",
      "tree": "59e92e74fefdddd8fd01b0fff98749922652b061",
      "parents": [
        "0d6388abc7a5da2a20a4854c400c8e176127e480"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Dec 08 13:14:27 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 08 13:14:27 2009 +0300"
      },
      "message": "zebra: fix more compiler warnings\n\n* zebra/zebra_rib.c\n  * nexthop_active_update(): make local int vars unsigned\n  * nexthop_active_check(): return unsigned for consistency\n  * rib_dump(): cast time in printf format\n  * vrf_free(): remove unused function\n  * vrf_lookup_by_name(): idem\n  * rib_if_up(): idem\n  * rib_if_down(): idem\n"
    },
    {
      "commit": "ffac19c58ee636274cd3972b584e37cd9a3331de",
      "tree": "ab21740846d246fd817dae578f5e4d83731e4cd6",
      "parents": [
        "38cc00cd823fe945c7748de18c3e8932d98dd8f8"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Dec 08 12:27:02 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 08 12:27:02 2009 +0300"
      },
      "message": "zebra: remove unused function to fix warning\n\n* zebra/interface.c\n  * if_supported_family(): sayonara\n"
    },
    {
      "commit": "e6f148e6e06a37a65afb322eca6a3298b8ade8d2",
      "tree": "5d3869cd936e5f9af5ee281518316037790513ef",
      "parents": [
        "4a4bba04c7398069a6d43fa8ccf0d15bad5faaa2"
      ],
      "author": {
        "name": "David Ward",
        "email": "david.ward@ll.mit.edu",
        "time": "Thu Dec 03 21:43:11 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Dec 03 21:46:00 2009 +0300"
      },
      "message": "zebra: handle RTF_CLONING removal from FreeBSD 8.0\n\nThe RTF_CLONING flag has been removed in FreeBSD 8.0 with arp-v2 (see\nhttp://svn.freebsd.org/viewvc/base/stable/8/UPDATING?view\u003dmarkup),\nsince it no longer has any meaning. This patch checks if RTF_CLONING\nexists before using it.\n"
    },
    {
      "commit": "a0f63a4c7d7a6404fd43d139809202a693ae42e9",
      "tree": "1af7685743107d08861f089de25df0196b10e441",
      "parents": [
        "362573e5642b29ffeef5000351adc2d6ed6dfca3"
      ],
      "author": {
        "name": "heasley",
        "email": "heas@shrubbery.net",
        "time": "Thu Dec 03 21:14:16 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Dec 03 21:14:16 2009 +0300"
      },
      "message": "zebra: fix argument reference in strncpy() call for BSD\n"
    },
    {
      "commit": "a50c107e3fbdaaea78a12a868a3865fd25136ad2",
      "tree": "cdc78feecf243768780ef784608f68386d41fef0",
      "parents": [
        "80b2a9418f0ee70318c677778d63f860f0f397c3"
      ],
      "author": {
        "name": "David Ward",
        "email": "david.ward@ll.mit.edu",
        "time": "Thu Dec 03 15:34:39 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Dec 03 15:34:39 2009 +0300"
      },
      "message": "zebra: fix RIB debug message for IPv6\n\nApply changes from commit f304cb48f0d7d0ff8f36e7aca8293141a9fa9e60\nto rib_queue_add.\n\nAlso includes spelling fixes.\n"
    },
    {
      "commit": "80b2a9418f0ee70318c677778d63f860f0f397c3",
      "tree": "d8d6c3190b68a51e1058459709416b1b8c0c93dd",
      "parents": [
        "16c1c4872b29bb22c0ff77bd1ef1018c63ca25fa"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Thu Dec 03 14:53:15 2009 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Dec 03 14:53:15 2009 +0300"
      },
      "message": "zebra: make declaration const in rtm_flag_dump()\n\n* kernel_socket.c: (rtm_flag_dump) Use a const message pointer to be\nin sync with commit ce0db9cb11c0bc2e7f89a7d042e50afa495556b4.\n"
    },
    {
      "commit": "50adf7832004191cdaf5a908bd9a9c0b2373e993",
      "tree": "726d32636baa6c718e3fdab5a48ffae870c7b048",
      "parents": [
        "3849ce4e25281d11537ebd0db5e2fa2a7c356b33"
      ],
      "author": {
        "name": "David Ward",
        "email": "david.ward@ll.mit.edu",
        "time": "Mon Aug 31 10:42:06 2009 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Sep 01 19:03:01 2009 +0100"
      },
      "message": "zebra: Fix router advertisements for non-Ethernet link layer addresses\n\n* rtadv.c: round up when calculating the link-layer address option length;\n  add padding to the option if needed to end on an octet boundary\n"
    },
    {
      "commit": "fab7f89dcfe77cf06806e7f8a33314d3b4857a69",
      "tree": "8679d4cf30957577bc48425bbf7a99994cf93ce8",
      "parents": [
        "302d53f791031c15590f59944313381dfb4200c6"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Aug 06 12:12:12 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 28 14:51:37 2009 +0100"
      },
      "message": "zebra: Add an example config file for testzebra\n\n* testrib.conf: Example config file for testzebra\n"
    },
    {
      "commit": "302d53f791031c15590f59944313381dfb4200c6",
      "tree": "dbadd21327e5445860193e1511863f2fa11b6185",
      "parents": [
        "3e4ee9591aa2d84f01ae478afd273ac55add0a1c"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Aug 06 11:48:48 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 28 14:51:27 2009 +0100"
      },
      "message": "zebra: test_main.c should be a bit more helpful about its usage\n\n* test_main.c: If required arguments are missing, say that.\n"
    },
    {
      "commit": "065de90380c88d9fcc116627f714bed9984c2723",
      "tree": "79061a2699e0dc3e87c218b3b57c2f0577d5a69a",
      "parents": [
        "5bd5881838c22e075c3d0c245a8952a55e9dca38"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Fri Aug 07 11:13:49 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Aug 13 10:21:13 2009 +0100"
      },
      "message": "all: check return value from daemon() call\n\n* */*main.c: (main) Current versions of Gcc warn if the return value for\n  daemon() is not checked.  So add a simple test and exit on failure.\n\n"
    },
    {
      "commit": "cb9e0ceec988a059dd2269ebc54722c01afb7cca",
      "tree": "c558e706ffca27dd4568f729a48b6f8c83a64c9a",
      "parents": [
        "9afabaf048af74a370dfc71411b6963641f713b2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 20 00:31:57 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jul 28 16:24:19 2009 +0100"
      },
      "message": "[zebra] Fix crash in test_zebra\n\n* kernel_null.c: we\u0027re pretending to add an address, so\n  set IFC_REAL. If this isn\u0027t done, calling into the \u0027got address\n  from kernel\u0027 half of zebra will implicitly-withdraw the ifc, which\n  could cause a crash in test_zebra.c.\n"
    },
    {
      "commit": "97be79f9d38b07214d5ad9b437e1a852c594a985",
      "tree": "dbc8513b7f58c4f603ea1eed87efe9dbf4d7897e",
      "parents": [
        "5b40b1b57e1fad1caf579e032adf4e111128e486"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Fri Jul 24 20:45:31 2009 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Fri Jul 24 20:45:31 2009 +0400"
      },
      "message": "[zebra] do not touch socket before pidfile locking\n\nMove zserv socket creation code into zebra_zserv_socket_init() and\ncall it only after pidfile lock has been acquired exclusively. This\nkeeps subsequent zebra daemons from deleting the working socket of\nan already running process (bug #403).\n"
    },
    {
      "commit": "67b9467f6cad5097a3e4c6e49348be4d6c17a5bb",
      "tree": "a4c14d2d2ad51f367c3e2a511942e8945bc22a16",
      "parents": [
        "228da42898c4f7bd72d9c1ee4135108e8d40d860"
      ],
      "author": {
        "name": "Chris Caputo",
        "email": "ccaputo@alt.net",
        "time": "Sat Jul 18 04:02:26 2009 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jul 21 10:13:11 2009 +0100"
      },
      "message": "[zebra] Silence noisy process_subq\n\nzebra_rib.c: process_subq(): #ifdef out debug code.\n"
    },
    {
      "commit": "c3a5606302777cdd33d4025fc30bed723fc84d79",
      "tree": "afa5d20dd20d6a05f99107655ce68d8788f847cc",
      "parents": [
        "3f4ab7f9e9ffaee7c448744f45d6e5e2176cce89"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Wed Jun 24 19:15:36 2009 +0200"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Jun 24 22:43:58 2009 +0100"
      },
      "message": "zebra: Static route does not reach kernel.\n\nA static route like below: ip route 172.16.1.0/30 192.168.101.162 11\ndoes not move properly to a new interface when the\ninterface used goes down. Zebra reports that it have\nmoved but kernel isn\u0027t informed so the route is lost.\n\n* zebra_rib.c: (nexthop_active_update) if ifindex has changed, then the\n  route should be considered to have changed.\n\nSigned-off-by: Joakim Tjernlund \u003cJoakim.Tjernlund@transmode.se\u003e\n"
    },
    {
      "commit": "d13c3b4fcf802f904ef47ad82fdc9763fc704fdf",
      "tree": "b95426a542d8b931b731d8138b296c22ec9ac05e",
      "parents": [
        "ba803bd51cdf3decfc740b3d7287fe51228f78fb"
      ],
      "author": {
        "name": "Mathieu Goessens",
        "email": "gebura@poolp.org",
        "time": "Tue Jun 23 15:59:45 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 23 15:59:45 2009 +0100"
      },
      "message": "[zebra] linux policy routing support with ipv6\n\nQuagga support linux policy routing (ip route ... table $X) with zebra.conf\ntable $X option.  It works fine on ipv4.  On ipv6 the parameter is ignored\n(table 0 is used).\n\n* zebra/...: Pass appropriate table arg to rib_{add,delete}_ipv6\n"
    },
    {
      "commit": "b60668d092f1778395b6c10b406059b8cbf235b8",
      "tree": "7869d81a4a8d440f8cb41ddb0e66c8279e2b9636",
      "parents": [
        "5bc52c76c2816a3be9a033c3e5bf4fea1908e3cd"
      ],
      "author": {
        "name": "Chris Caputo",
        "email": "ccaputo@alt.net",
        "time": "Sun May 03 04:40:57 2009 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 23 14:15:57 2009 +0100"
      },
      "message": "RFC 4191 Default Router Preference support for router advertisements\n\nAdds \"ipv6 nd router-preference (high|medium|low)\" and\n\"no ipv6 nd router-preference\" interface commands.\n\nFiles modified:\n\n   doc/ipv6.texi\n   zebra/interface.c\n   zebra/interface.h\n   zebra/rtadv.c\n   zebra/rtadv.h\n\nSigned-off-by: Chris Caputo \u003cccaputo@alt.net\u003e\n"
    },
    {
      "commit": "ec5e42b3c50e3a8e95963161319fa1a56466b2ae",
      "tree": "4eba2580aca51f386ce2f879f32f8616279a1ba3",
      "parents": [
        "e84999d93afd0f727f7325431c055cc26c988c68"
      ],
      "author": {
        "name": "Jeremy Jackson",
        "email": "jerj@coplanar.net",
        "time": "Wed Jan 21 20:51:57 2009 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 19 15:03:31 2009 +0100"
      },
      "message": "[cleanup] convert bzero() deprecated by POSIX to memset()\n\nautoscan 2.62 complains about bzero(), so a good fix\nnowadays is to just replace it.\n"
    },
    {
      "commit": "c77cffdd69bf08ed54e390a3485cbd5024836a9a",
      "tree": "42225904923a4b3457edd13a0eb84f0ea8581441",
      "parents": [
        "c546afaed229106c2fcb54b57906414b9503dcc9"
      ],
      "author": {
        "name": "Jeremy Jackson",
        "email": "jerj@coplanar.net",
        "time": "Sun Dec 28 12:57:42 2008 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 22:11:41 2009 +0100"
      },
      "message": "[daemons/cleanup] Remove disabled log_mode argument support.\n\n* */*main.c: Seems that the actual code was removed previously, but the\n  argument processing code remained.\n"
    },
    {
      "commit": "ce0db9cb11c0bc2e7f89a7d042e50afa495556b4",
      "tree": "37fc83c27a0c8b2d2d0018c97d2625aebdc66c51",
      "parents": [
        "7ba82f70ddf9abf99277b25cd54503a8517a0c15"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 10:47:04 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:30 2009 +0100"
      },
      "message": "[zebra/cleanup] make message table read only\n"
    },
    {
      "commit": "9607d98cb04e5dff34cb2f6fb6434455c6841ab8",
      "tree": "4ff992b16ddb0902237cb3a189cd29808813a631",
      "parents": [
        "90d2ab0f9426d670552b929364f8fb7de122efe5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Wed Apr 29 21:55:48 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:28 2009 +0100"
      },
      "message": "[zebra] Remove unused structure element\n"
    },
    {
      "commit": "90d2ab0f9426d670552b929364f8fb7de122efe5",
      "tree": "58478aa687b6484d9d3ab08a13c82388ca37acbc",
      "parents": [
        "81cce0185e23b6ecd2ab98ab34182901226bcf9e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Wed Apr 29 21:54:59 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:27 2009 +0100"
      },
      "message": "[zebra] Force rib_update when connected route deleted\n"
    },
    {
      "commit": "81cce0185e23b6ecd2ab98ab34182901226bcf9e",
      "tree": "24a8fa282d80b9dab623bb26fbbec731c0c8b34a",
      "parents": [
        "82f5ee1ead0aa83f83f918abfc3f5071741a56e5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Tue Apr 28 14:28:00 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:27 2009 +0100"
      },
      "message": "[cleanup] Use correct buffer size for inet_ntop()\n\nDon\u0027t need big buffer 1024 to hold IPV4 (INET_ADDRSTRLEN)\nor IPv6 (INET6_ADDRSTRLEN) message.\n"
    },
    {
      "commit": "fd21325b2eb252644bc70918ace4f9c6c00c45ef",
      "tree": "b77e6fc133289e025fdc08217ac9c05a573bc077",
      "parents": [
        "4308abba5cab18c1d30b962567b06b02a1a15361"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sat Jul 05 16:32:37 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:26 2009 +0100"
      },
      "message": "[zebra] Only announce connected routes if link is detected\n\nNeed to check both IFF_UP and IFF_RUNNING if link-detect is enabled,\nbefore announcing routes.\n"
    },
    {
      "commit": "4308abba5cab18c1d30b962567b06b02a1a15361",
      "tree": "000095719fdc1a66599af3160f9af4e97c2a935f",
      "parents": [
        "6c684653f08fadf738ca52a3fbe512e3d1698ceb"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Dec 01 14:19:38 2008 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:25 2009 +0100"
      },
      "message": "[zebra] MTU is unsigned\n\nThe MTU data in the netlink message is always unsigned 32 bits.\nDon\u0027t use integer.\n"
    },
    {
      "commit": "6c684653f08fadf738ca52a3fbe512e3d1698ceb",
      "tree": "f5f48e6647a3158ad8b42785031b0bf986ed5fe5",
      "parents": [
        "5110a0c6222be91d3b2a786692949dd94fb0c9ac"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Thu Sep 18 16:51:06 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:25 2009 +0100"
      },
      "message": "[zebra] remove incorrect debug message\n"
    },
    {
      "commit": "5110a0c6222be91d3b2a786692949dd94fb0c9ac",
      "tree": "e7cd59e893c1f9be7f91f546bb84540b8f85857a",
      "parents": [
        "c84154977d822ceee9df66be535c56cb5f0fce10"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Aug 11 16:22:15 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:25 2009 +0100"
      },
      "message": "[zebra] Cleanup meta-queue code\n\nDo some cleanup work on recently added meta-queue code:\n  * use table rather than switch\n  * indent with quagga standard indentation\n  * since meta_queue_new is only used at initialization\n    allocation failure should be fatal.\n"
    },
    {
      "commit": "c84154977d822ceee9df66be535c56cb5f0fce10",
      "tree": "460e5d46b94200f8febcca5029a882a8f752a29e",
      "parents": [
        "61691c91c15445445b0ac246ee12e559a4cacdb5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Wed May 28 10:47:30 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:25 2009 +0100"
      },
      "message": "[zebra] netlink interface minor cleanup\n\nAdd more prototypes and make some functions static\n"
    },
    {
      "commit": "61691c91c15445445b0ac246ee12e559a4cacdb5",
      "tree": "427a21e559966e635e5c2437a642c281b4983ab4",
      "parents": [
        "914131f80da7b9696d26b42ed92b2d93d4d8b3ab"
      ],
      "author": {
        "name": "Stig Thormodsrud",
        "email": "stig@io.vyatta.com",
        "time": "Tue Nov 04 15:45:07 2008 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:25 2009 +0100"
      },
      "message": "[zebra] Fix vyatta bug 2814: Add \"show ip route summary\" command.\n"
    },
    {
      "commit": "7fc626de5f618133ad2a478d13defa3a110b89ea",
      "tree": "432ff0e4672eabc2ec6b0dcffc22dcc0aee532c8",
      "parents": [
        "66e5cd87194ae6fdd51061a91b4698bc0a652f6b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Dec 01 11:10:34 2008 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 17:10:29 2009 +0100"
      },
      "message": "[cleanup] Make command nodes static\n\nThe cmd_nodes used to configure vty, can mostly be static so\n(basic data hiding 101).\n"
    },
    {
      "commit": "66e5cd87194ae6fdd51061a91b4698bc0a652f6b",
      "tree": "659d31f9a7dfb8d9ad9a51f37ff0853054a45399",
      "parents": [
        "cedd7f2fa6823bca9ddcfb062f97ed83b11a80dd"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Feb 09 10:14:16 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 17:09:03 2009 +0100"
      },
      "message": "[cleanup] functions taking no args should be declared with void args\n\nUse Ansi-C prototypes rather than old K\u0026R method of declaring\nfunction without arguments\n"
    },
    {
      "commit": "393deb9bd663361e6b110d579a8b1d4c22667068",
      "tree": "e93ebf2f57bf92ff7a9cd045764b3cdbb99a07e5",
      "parents": [
        "3453a7122c1d585ad789ed0f63deb90cc5e89fae"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Aug 18 14:13:29 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 17:07:49 2009 +0100"
      },
      "message": "[cleanup] Convert XMALLOC/memset to XCALLOC\n\nSimple conversion of XMALLOC/memset to XCALLOC\n"
    },
    {
      "commit": "0be8dfb2a95f41f100982085595b7c7505127018",
      "tree": "add7218b0c518ac0cd276c74fe700b5ed1f26762",
      "parents": [
        "42176e6b01c9ca2b2725952684b2d7792468e861"
      ],
      "author": {
        "name": "Chris Caputo",
        "email": "ccaputo@alt.net",
        "time": "Tue Jun 02 18:40:07 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 02 18:45:10 2009 +0100"
      },
      "message": "[snmp] Compiler warning fixes for when \"--enable-snmp\" is configured.\n\nCompiled on 32-bit and 64-bit linux gcc 4.1.2 platforms.\nNo run-time testing on 32-bit and limited run-time testing on 64-bit.\n"
    },
    {
      "commit": "5d7bdd0ed9595f515bdfaa8af76fcfd41be7a6a6",
      "tree": "c54c1c217a1742549ea1f1067419574aa1366d35",
      "parents": [
        "d6bb5aa52793979616f0bfc5f38a0eb2e5f1c7e4",
        "35f891404a6d2f0d034ca0fb724904db72baf552",
        "fb62a3cef5960885119f9e87c833520ddf2a9b49"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Sep 01 20:19:14 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Sep 01 20:19:14 2008 +0100"
      },
      "message": "Merge commit \u0027remotes/jocke/ospf_neighbour\u0027; commit \u0027remotes/jocke/snmp_crosscompile\u0027\n"
    },
    {
      "commit": "19a937224469055beb7dfce73ba452e3a33c89ed",
      "tree": "a16e32aa133ac796c051c0fdddb58d08022feeb2",
      "parents": [
        "6556d8a04079eb54d1805df3bef3e66ff1267d02"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Aug 26 14:49:40 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Aug 26 15:05:54 2008 +0100"
      },
      "message": "test\n"
    },
    {
      "commit": "fb62a3cef5960885119f9e87c833520ddf2a9b49",
      "tree": "cf6c5cde38c91ad555021f44793b92fd34de8198",
      "parents": [
        "b38309a4ee831a440ef78f8a27db584f2f8e8276"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Tue May 13 20:03:32 2008 +0200"
      },
      "committer": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Mon Aug 25 09:48:30 2008 +0200"
      },
      "message": "Make --enable-snmp cross compile and make libcrypto optional with --without-crypto\n\nAutoconfig work by me, the rest was done by\n\"Kirill K. Smirnov\" \u003clich@math.spbu.ru\u003e\n"
    },
    {
      "commit": "5515de330cf6c5449c0a56862072750b07d23fd7",
      "tree": "4651f48d94ba97117d84fdaa2210563676adc8df",
      "parents": [
        "d68cbf9261869e532dfdd14dbb4122b3f3feb0d4"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Mar 21 12:41:22 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 20:02:08 2008 +0100"
      },
      "message": "[administrivia] Update gitignore files\n\n- Add more stuff, archive libraries, etc..\n"
    },
    {
      "commit": "d68cbf9261869e532dfdd14dbb4122b3f3feb0d4",
      "tree": "5cc873e6a38a3db9ad5fb4dfe579624ff7693c13",
      "parents": [
        "3998bfd76620a676fbd77f19c5c6ea80a4cc88d2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Oct 21 18:35:27 2006 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 20:00:46 2008 +0100"
      },
      "message": "[administrivia] Git should ignore backup files and .loT files\n"
    },
    {
      "commit": "3998bfd76620a676fbd77f19c5c6ea80a4cc88d2",
      "tree": "66bf93340e55bb06b25544ef04afec3749269391",
      "parents": [
        "e5248434c0d287668be956a2bd52399d67b16c39"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Aug 19 14:13:43 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:57:22 2008 +0100"
      },
      "message": "[trivia] Remove ChangeLog files, as this data is now maintained in SCM\n"
    },
    {
      "commit": "e5248434c0d287668be956a2bd52399d67b16c39",
      "tree": "6942a3563d2f9014d85f0cee1502a4d4f614cdfa",
      "parents": [
        "f3019aff2421d9c3d16498f22cd245e3f8948d4c"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 17 18:08:24 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:26 2008 +0100"
      },
      "message": "[zebra] trivial: fix spelling mistake\n"
    },
    {
      "commit": "ef9b113e2d4c0d49bd7d61458fa9acc113658d2c",
      "tree": "f2f57b5c771e7709be26daefa2861cd657764aeb",
      "parents": [
        "d145bc008a03889fff8949890cb8c532ee6aff74"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 17 17:44:47 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:26 2008 +0100"
      },
      "message": "[zebra] trivia: static qualifiers for metaq\n\n2008-08-17 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* zebra_rib.c: (process_subq) mark static\n\t  (rib_meta_queue_add) ditto\n\t  (meta_queue_new) ditt\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "d145bc008a03889fff8949890cb8c532ee6aff74",
      "tree": "f8bb5b09a4ca2c3f8fa0e93ae6d8a8acd46d3889",
      "parents": [
        "16814f9698a3ee14b1412286c53711a562c348fc"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 17 17:41:37 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra] make some data local\n\n2008-06-17 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* zebra_rib.c: static qualifier on local data\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "16814f9698a3ee14b1412286c53711a562c348fc",
      "tree": "9fb7ec8e786b648f0c74f0aeff5ff959dc663d18",
      "parents": [
        "4c699477d24e7104893130d072963df5cea17214"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 17 17:39:31 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra] ignore dead routes in RIB update\n\n2008-08-17 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* zebra_rib.c: When doing a RIB update, routes in process of removal\n\t  should be ignored. This fixes bugs where a route is removed but a\n\t  recursive route is not changed.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "4c699477d24e7104893130d072963df5cea17214",
      "tree": "9e4336586dd07868f905c87a4a7479e2b8b0795f",
      "parents": [
        "898987e976e8f7a50a4549475ab4970a85895f31"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 17 17:01:44 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra:linux] netlink: no need to change privs for receive\n\n2008-06-17 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* rt_netlink.c: (netlink_parse_info) Linux doesn\u0027t check privledges\n\t  on receive, so avoid the overhead of lowering and raising the\n\t  priviledges on each received message\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "898987e976e8f7a50a4549475ab4970a85895f31",
      "tree": "7e0b44b20459f8aa30a1c7e12e463b6088fcff74",
      "parents": [
        "30afea3b584515ba19b38fcde6f562a550c1fcab"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 17 16:56:15 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra:linux] netlink: quiet harmless errors\n\n2008-06-17 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* rt_netlink.c: (netlink_parse_info) There can be harmless races\n\t  such as adding an existing route, or deleting an already deleted\n\t  route. Don\u0027t bother logging these unless debugging is turned on.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "30afea3b584515ba19b38fcde6f562a550c1fcab",
      "tree": "f39773af1c2c29518fbbc222f2dd4948be2484ef",
      "parents": [
        "cadfb2cd81528fc6f85af24dbf0ff3fd0ff63e6b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sat Aug 16 18:25:47 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra:linux] netlink buffer size tweaking only needed on receive socket\n\n2008-08-16 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* rt_netlink.c: (netlink_recvbuf) consolidate recvbuf setting\n\t  (netlink_socket) no need to set receive buffer on netlink sockets\n\t  generally\n\t  (kernel_init) set recvbuffer on the listen socket\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "4cde931e2d5a83708cf55e63eae7b629e8e4296a",
      "tree": "09cdea4432cca881b390b9499914a9acb130d78b",
      "parents": [
        "3d265b4d9d748bf4c92aefebc2ca0c04fd607945"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sat Aug 16 17:51:27 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra:linux] clean up blocking setting of netlink sockets\n\n2008-08-16 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* zebra/rt_netlink.c: This change removes the overhead of twiddling\n          the socket twice on every route change. The netlink support has\n          two sockets, one is used for request/response and should always\n          block. The other is used for asynchronous notification and should\n          always be non-blocking.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "3d265b4d9d748bf4c92aefebc2ca0c04fd607945",
      "tree": "45bdddf4ce6736d8f4dd9091ce20313eae894572",
      "parents": [
        "30a2231a4881f53deca61ef7a62b225a43dab4c5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sat Aug 16 17:30:39 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra:linux] Filter out unwanted netlink messages by PID\n\n2008-08-16 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* zebra/rt_netlink.c: Update the netlink socket BPF to cancel out\n\t  unwanted ACKs on the listen socket by matching on the PID.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "30a2231a4881f53deca61ef7a62b225a43dab4c5",
      "tree": "f26dff922a4f85d302fa67bbd9a120108db41c44",
      "parents": [
        "f5612dd382d9c0f4089b08ec164c25a8082d9f89"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Aug 15 14:05:22 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:59 2008 +0100"
      },
      "message": "[warnings] Fix various SOS warnings\n\n2008-08-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* */*: Fix various problems flagged by Sun Studio compiler.\n\t  - \u0027\u003cqualifier\u003e \u003cstorage\u003e\u0027 obsolescent in declarations\n\t  - empty statements (\u0027;\u0027 after ALIAS definitions)\n\t  - implicit declarations (e.g printstack in lib/log.c)\n\t  - \"\\%\" in printf string instead of \"%%\"\n\t  - loops that return on the first iteration (legitimately, but\n \t    compiler can\u0027t really know), e.g. bgp_routemap.c\n \t  - internal declarations which mask prototypes.\n"
    },
    {
      "commit": "1423c809cc4ddc2e013ba6264c49a11e5719c6f2",
      "tree": "db0389e7de020bbcb9fd78d45417b0842a6adb0b",
      "parents": [
        "89d9fa301e146193093ff876f96b3612dc390bbb"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Thu Aug 14 17:59:25 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:58 2008 +0100"
      },
      "message": "[lib] mes_lookup string lookup table argument should be marked const\n\n2008-08-14 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* lib/log.{c,h}: struct message argument should point to const\n\t* */*.c: adjust to suit,\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "6072b24eb776e6486f076b1762d3650e803954c2",
      "tree": "d6a305760bdd5b612be661ae53e32325990337aa",
      "parents": [
        "ffe11cfb0a808ae514193438616dfabc512b4cf6"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Thu Aug 14 16:52:26 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:58 2008 +0100"
      },
      "message": "[zebra] mark some rt_netlink functions static\n\n2008-08-14 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* zebra/rt_netlink.c: local functions should be static.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "40da22166ff29753a65b7947ed5fa7261fee1d80",
      "tree": "97b71b8f4ad218b8d136ea93ec9dfd9537408e1b",
      "parents": [
        "7f794f2bb079c1a5bb0fdebb815921c168c00e90"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "timo.teras@iki.fi",
        "time": "Wed Aug 13 17:37:14 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:57 2008 +0100"
      },
      "message": "[zebra:netlink] Set proto/scope on all route update messages\n\n2008-08-13 Timo Teräs \u003ctimo.teras@iki.fi\u003e\n\n\t* zebra/rt_netlink.c: (netlink_route{,_multipath) Set protocol and\n\t  scope appropriately for both NEW and DELROUTE messages, to avoid\n\t  wiping out non-zebra routes on delete.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "46bc0e432e756fcb8fc4f703b47cd25b9fc7139c",
      "tree": "60100ca1e11c3c3600441d366b236f4a2de519ca",
      "parents": [
        "d664ae1182c29b74b409bc8594b7bd0575e91ce9"
      ],
      "author": {
        "name": "Paul P Komkoff Jr",
        "email": "i@stingr.net",
        "time": "Wed Aug 13 16:17:04 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:12 2008 +0100"
      },
      "message": "[build] Test for GNU-style PIE support in toolchain and enable\n\n2008-08-13 Paul P Komkoff Jr \u003ci@stingr.net\u003e\n\n\t* configure.ac: add a configure flag and autoconf macro, which will\n\t  determine if your toolchain supports PIE.\n\t* */Makefile.am: add corresponding CFLAGS and LDFLAGS into\n\t  appropriate places.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "3c5a0a4f8fe3811affff6d5e123379eedb083571",
      "tree": "79e285e0bd04c6ef0dfcde9cf0ce8fda8abecbe1",
      "parents": [
        "750e814693050bc97391eec618aad9db798ee5e8"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Feb 19 17:30:10 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:49:33 2008 +0100"
      },
      "message": "[administrivia] Add .gitignore files, based on .cvsignores.\n"
    },
    {
      "commit": "0b3f3d47b21ddf175bfdd549ba33fbcd34801244",
      "tree": "ec788e51c7dadeb5469313b6d3819690b468bbab",
      "parents": [
        "ce9c3cc5d96ea417727347923a42f10d56e631fd"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Jul 01 18:24:58 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Jul 01 18:24:58 2008 +0000"
      },
      "message": "[zebra] Make BSD link-state deal more gracefully with GIFMEDIA ioctl error\n\n2008-07-01 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ioctl.c: (if_get_flags) Deal more gracefully with failure\n\t  of the BSD link-state SIOCGIFMEDIA ioctl, as some interfaces\n\t  apparently don\u0027t implement it (e.g. tun).\n\t  Also, make BSD link-state checking be conditional on the\n\t  \u0027link-detect\u0027 interface configuration flag, as it should be.\n\t  Fixes bug #465.\n"
    },
    {
      "commit": "e96f92034dad1a70c92ad4ad863a5259c122cecb",
      "tree": "c3b9bebef0fe2059182b31b43243289b5c7248e3",
      "parents": [
        "a15cfd16fcdec39588ce2f780671ba7c6de0b919"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Mon Jun 02 12:03:22 2008 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Mon Jun 02 12:03:22 2008 +0000"
      },
      "message": "+ initial edition of meta-queue for RIB updates processing (bug #431)\n"
    },
    {
      "commit": "0d6b2ee249e9efba30da3236c413bf03c7b27ed9",
      "tree": "4d9320f2c34f0c127b58b92f59e2c2afd2d5818f",
      "parents": [
        "768a27ea7ba25257c79689af83ab37945dc1cc3c"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 29 18:29:16 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 29 18:29:16 2008 +0000"
      },
      "message": "[daemons] Sanity check port number arguments before use\n\n2008-05-29 Martin Nagy \u003cmnagy@redhat.com\u003e\n\n\t* */*main.c: Sanity check port numbers before using.\n"
    },
    {
      "commit": "768a27ea7ba25257c79689af83ab37945dc1cc3c",
      "tree": "d3d9b822a29090a8cfee41b4ae3f74248e5950fa",
      "parents": [
        "311064ddc5c52f6859cf1e6e8636c19a2e705147"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 29 18:23:08 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 29 18:23:08 2008 +0000"
      },
      "message": "[zebra/linux] Use BPF to filter out responses, to try avoid netlink overruns\n\n2008-05-29 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* rt_netlink.c: (netlink_install_filter) BPF filter to catch and\n\t  drop responses to zebra\u0027s own route messages.\n\t  (kernel_init) add BPF filter on the netlink socket.\n"
    },
    {
      "commit": "20e5ff0a8893ffad6d31739d68d224931c4a7992",
      "tree": "8ecd9184d2d7268e0fc51bcd612790301780efda",
      "parents": [
        "dea04441fb51f74dc25f6ab4bd756b4159d961b6"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Tue Feb 26 14:02:24 2008 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Tue Feb 26 14:02:24 2008 +0000"
      },
      "message": "+ fix bug#326 by rib_lookup_and_pushup()\n"
    },
    {
      "commit": "55edb0d446a272907715b0825ff008557174d34a",
      "tree": "17d46ab705b0b229b8795d0d809fddd18e1d9078",
      "parents": [
        "c543a1737173fb438f1d8c06f650b2d0d479f45c"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Jan 11 15:57:13 2008 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Jan 11 15:57:13 2008 +0000"
      },
      "message": "[link-detect] Improve BSD support.\n2008-01-11 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* lib/zebra.h: Revert previous change, no need to include\n\t  \u003cnet/if_media.h\u003e here.\n\t* zebra/ioctl.c: If HAVE_BSD_LINK_DETECT is defined, include\n\t  \u003cnet/if_media.h\u003e\n\t  (if_get_flags) Remove debug messages about BSD link state.\n\t* zebra/kernel_socket.c: (bsd_linkdetect_translate) If link state\n\t  is unknown, we should set the IFF_RUNNING flag.\n"
    },
    {
      "commit": "c543a1737173fb438f1d8c06f650b2d0d479f45c",
      "tree": "ba940242e22f7e6798e6fd24b19864b5702474db",
      "parents": [
        "3f087670efa606021cde2f6a9615ac7e07aec2a5"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Thu Jan 10 15:24:32 2008 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Thu Jan 10 15:24:32 2008 +0000"
      },
      "message": "[link-detect] Try to get BSD link-detect to work properly.\n\n2008-01-10 Ingo Flaschberger \u003cif@xip.at\u003e\n\n\t* configure.ac: Define HAVE_BSD_LINK_DETECT if \u003cnet/if_media.h\u003e is\n\t  present.\n\t* lib/zebra.h: If HAVE_BSD_LINK_DETECT is defined,\n\t  include \u003cnet/if_media.h\u003e.\n\t* zebra/ioctl.c: (if_get_flags) If HAVE_BSD_LINK_DETECT, use the\n\t  SIOCGIFMEDIA ioctl to ascertain link state.\n\t* zebra/kernel_socket.c: (bsd_linkdetect_translate) New function to\n\t  map the ifm_data.ifi_link_state value into the IFF_RUNNING flag.\n\t  (ifm_read) Call bsd_linkdetect_translate to fix the IFF_RUNNING\n\t  flag before calling if_flags_update.\n"
    },
    {
      "commit": "3f087670efa606021cde2f6a9615ac7e07aec2a5",
      "tree": "c2d884aa51da1a95614380c813900e6f18a85c60",
      "parents": [
        "912df1e8ab61962c29eb4faff17a7d75c4905b84"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Jan 08 20:12:46 2008 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Jan 08 20:12:46 2008 +0000"
      },
      "message": "[link-detect] Static interface routes should behave properly with link-detect.\n\n2008-01-08 Michael Larson \u003cmike@vyatta.com\u003e\n\n\t* zebra_rib.c: (nexthop_active_check) Replace if_is_up with\n\t  if_is_operative to solve problems with static interface\n\t  routes not behaving properly with link-detect.\n"
    },
    {
      "commit": "6ce80bdb2523ad82cef813f6d8a7e0d4daa8cfae",
      "tree": "d0b0fc8725c9f120cdcc16fa7f711d8104051815",
      "parents": [
        "3a02d1f7fb778a1ea4f45d037f13dfcd126e2337"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Mon Nov 12 14:55:01 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Mon Nov 12 14:55:01 2007 +0000"
      },
      "message": "+ fixed bug #418 (changing address on an existing interface doesn\u0027t cause existing static routes to be revalidated)\n"
    },
    {
      "commit": "5619f56ba38b255f699f76b327cf82388c4a90cf",
      "tree": "f6402a98cb0f2fc507ec97fdbc1e0a515ff3ce1a",
      "parents": [
        "fbdbf1281660de877ef687a82145e82934f35744"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Wed Oct 24 13:13:21 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Wed Oct 24 13:13:21 2007 +0000"
      },
      "message": "+ fix the bug reported by Milan Kocian (IPv6 route handling was broken by the RIB debug changeset).\nafter\n"
    },
    {
      "commit": "a3aaf5b0ceb8c5b3821793333b4057df872fbedd",
      "tree": "c4c95460aff0f7332f84546e9dd0d651abc8868a",
      "parents": [
        "f304cb48f0d7d0ff8f36e7aca8293141a9fa9e60"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Thu Oct 04 10:49:21 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Thu Oct 04 10:49:21 2007 +0000"
      },
      "message": "+ rib_process() speedup for multi-nexthop route nodes\n"
    },
    {
      "commit": "f304cb48f0d7d0ff8f36e7aca8293141a9fa9e60",
      "tree": "85b0f508c0175bc9078640207c2f31a3e2b96b9c",
      "parents": [
        "6b148faa291f68dd43bba37fbc0e6b75a2e1e078"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Wed Oct 03 12:27:16 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Wed Oct 03 12:27:16 2007 +0000"
      },
      "message": "+ Minor bugfix: IPv6 prefixes were logged incorrectly in RIB debugging calls. Fixed.\n"
    },
    {
      "commit": "96934e6ac6ec9ff6e67131cc8324741b771d5e0d",
      "tree": "7cb90f6a03e1b33e2e0045cc50185b16dfe00df8",
      "parents": [
        "91b7351d4e150bbc60786f0facb911fa2c598553"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Fri Sep 14 14:56:28 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Fri Sep 14 14:56:28 2007 +0000"
      },
      "message": "+ sayonara old_pid!\n"
    },
    {
      "commit": "91b7351d4e150bbc60786f0facb911fa2c598553",
      "tree": "fe5885f6a514a000cac903a105e1c7386b2c4df1",
      "parents": [
        "2d844524ad9431ea1e53336dfcfebd3ee6520cb7"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Fri Sep 14 13:31:52 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Fri Sep 14 13:31:52 2007 +0000"
      },
      "message": "+ fixed bug #402: now the second zebra process doesn\u0027t destroy routes\n  of the first one before dying\n+ we are not going to receive routing messages originated by old_pid,\n  because rib_sweep_route() is called after damon() now. This will allow\n  to drop old_pid completely soon.\n"
    },
    {
      "commit": "2d844524ad9431ea1e53336dfcfebd3ee6520cb7",
      "tree": "1c688c317f879922991c6d6c548b7f8fcd8e0490",
      "parents": [
        "bd6c86d3a30d27ed4960863a653376c54e5e5e34"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Fri Sep 14 11:31:55 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Fri Sep 14 11:31:55 2007 +0000"
      },
      "message": "Switch from LOOKUP() to lookup() for rtm_type (see bug #401 for details).\n"
    },
    {
      "commit": "bd6c86d3a30d27ed4960863a653376c54e5e5e34",
      "tree": "29c6ad4e9539282028c9452870416c61d731ab7b",
      "parents": [
        "af400e26aec5828ac63fd1e2273172f3ac9da44e"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Wed Sep 12 15:24:27 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Wed Sep 12 15:24:27 2007 +0000"
      },
      "message": "* rt_socket.c: (kernel_rtm_ipv4) prefix_buf could be passed\n  to zlog_err() uninitialized with debug disabled. Fixed.\n"
    },
    {
      "commit": "882968e0a2fe65db5aff29149c87f6d292a1cd2d",
      "tree": "6d95bdf399083c5fa585fc4f848052cff05e09e8",
      "parents": [
        "9eda90ce8094683a5315007fbd0f9249a284f36f"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Thu Sep 06 14:34:41 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Thu Sep 06 14:34:41 2007 +0000"
      },
      "message": "+ fixed bug #400: adjusted rtread_sysctl.c:route_read()\n"
    },
    {
      "commit": "1ba27564f3852083839bfa1f91889cb46c780f2f",
      "tree": "52dba3326d078a18f74db335b567bab13f394eff",
      "parents": [
        "a13663ae74e806c3cd3d01b28b39193e550a907f"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Tue Aug 21 16:15:39 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Tue Aug 21 16:15:39 2007 +0000"
      },
      "message": "Looks like bug #320 is finally fixed now.\n"
    },
    {
      "commit": "a13663ae74e806c3cd3d01b28b39193e550a907f",
      "tree": "15a9bde3e75ec593baa7a18dab93815463a2c465",
      "parents": [
        "6da598018c6f866694ecb80a391815a40daaa951"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Tue Aug 21 16:12:40 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Tue Aug 21 16:12:40 2007 +0000"
      },
      "message": "Fixed ioctl_solaris.c:if_get_mtu() for IPv6\u0027less operation\n"
    },
    {
      "commit": "6da598018c6f866694ecb80a391815a40daaa951",
      "tree": "dbfe3daef285536d13e748584a6358dee0100c6b",
      "parents": [
        "03e232a4588187992f3538985d541289dc272464"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Fri Aug 17 14:16:30 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Fri Aug 17 14:16:30 2007 +0000"
      },
      "message": "Fixed bug #394 \"RTF_DONE is ignored in rtm_read()\"\n"
    },
    {
      "commit": "03e232a4588187992f3538985d541289dc272464",
      "tree": "6bb2c36ccb39c678b49d29fd3d379e0de313a17d",
      "parents": [
        "dc95824ae13d65156dd873a6e784d9a0eed2f39f"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Tue Aug 14 09:46:48 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Tue Aug 14 09:46:48 2007 +0000"
      },
      "message": "Merged own patch for bug #390 (rewrite zebra/zebra_rib.c:nexthop_active_update())\n"
    },
    {
      "commit": "dc95824ae13d65156dd873a6e784d9a0eed2f39f",
      "tree": "fa53aa99e517d9cfe5c56474051afdaa1bc9a666",
      "parents": [
        "068fd77cff0ce09b6390641abd84fc09a89c49db"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Mon Aug 13 16:03:06 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Mon Aug 13 16:03:06 2007 +0000"
      },
      "message": "Merged own patch for the bug #391 (debugging and comments mostly).\n"
    },
    {
      "commit": "068fd77cff0ce09b6390641abd84fc09a89c49db",
      "tree": "0a71721ce90997f1fe0c45d677f3625dbd890369",
      "parents": [
        "ed6ef902df72cc8267e274ed515a47af52c9fed7"
      ],
      "author": {
        "name": "vize",
        "email": "vize",
        "time": "Fri Aug 10 06:25:20 2007 +0000"
      },
      "committer": {
        "name": "vize",
        "email": "vize",
        "time": "Fri Aug 10 06:25:20 2007 +0000"
      },
      "message": "Use the proper field length for the peer\u0027s address (netlink_interface_addr)\n"
    },
    {
      "commit": "93bdadae74a9b391152f5511dbced6f08fad6d94",
      "tree": "95e5f9b12164dfc4b7ffe8d2221641f416c7f369",
      "parents": [
        "7591d8b862439dfae8b4b16d148ce567b6ff8cb7"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 19:25:11 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 19:25:11 2007 +0000"
      },
      "message": "[zebra] Add extra debug logging for RIB and RIB queueing\n\n2007-08-06  Denis Ovsienko\n\n\t* zebra_rib.c: (general) Add extra debug logging for RIB and\n\t  RIB queue.\n"
    },
    {
      "commit": "dfdb8f18c008e7ad306588c86b12fbef337427ca",
      "tree": "260a657aa0326cd895d51118d00a088e2884277d",
      "parents": [
        "f76594a2e32f7e7be3de09b1af92c1d8426a059b"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 14:13:56 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 14:13:56 2007 +0000"
      },
      "message": "Add comment questioning part of previous change (Denis?).\nFix indentation to match accumulated changes.\n"
    },
    {
      "commit": "f76594a2e32f7e7be3de09b1af92c1d8426a059b",
      "tree": "a4760bc1e9ebc565875d909c17a0505d4b095ab4",
      "parents": [
        "14838194d6b56209c914eb9e5782d9331dcbe818"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 14:07:07 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 14:07:07 2007 +0000"
      },
      "message": "Bugzilla #384.\n\n2007-08-02  Denis Ovsienko\n\n\t* rt_socket.c (kernel_rtm_ipv4): Only call rtm_write when changes\n\tare intended.  Don\u0027t set FIB flag on failed additions (such as\n\toccur with multiple paths.\n\n\nhttp://bugzilla.quagga.net/attachment.cgi?id\u003d235\u0026action\u003dview\n"
    },
    {
      "commit": "0b8c4f1d811170224e467b305137ac94861daee6",
      "tree": "1f334740ab6492fd10b882b59f459ad470e9c6e3",
      "parents": [
        "fbf24544a2e2ac97192502d34729f57933d1eb4c"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jun 27 11:12:38 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jun 27 11:12:38 2007 +0000"
      },
      "message": "[zebra] rib loop check for RIB_ENTRY_REMOVED checks wrong var\n\n2007-06-25 Denis Ovsienko\n\n\t* zebra_rib.c: (rib_add_ipv4_multipath) Loop through RIB\n\t  is using \u0027same\u0027 variable, but RIB_ENTRY_REMOVED check\n\t  is testing the constant \u0027rib\u0027 variable, fix. Impact\n\t  unknown at this point.\n"
    },
    {
      "commit": "093033144658c5d914429fad5b0a6cf952f20943",
      "tree": "02e4c24a9ca95a37bb3995bdc6e0f7e3222f2b87",
      "parents": [
        "7ab62c5319bd86a3cfda32351bc4103cf9517f26"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed May 30 20:10:34 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed May 30 20:10:34 2007 +0000"
      },
      "message": "[zebra] Trivial patches so we can compile when IPv6 is not enabled\n\n2007-05-30 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* zebra_routemap.c: (route_set_src_compile) Use \u0027#ifdef HAVE_IPV6\u0027\n\t  as needed.\n\t* zebra_vty.c: (vty_show_ip_route_detail, vty_show_ip_route) Use\n\t  \u0027#ifdef HAVE_IPV6\u0027 as needed.\n\t  (show_ip_protocol) Move function definition outside of\n\t  \u0027#ifdef HAVE_IPV6\u0027 section.\n"
    },
    {
      "commit": "7ab62c5319bd86a3cfda32351bc4103cf9517f26",
      "tree": "695c3a64d3b144c0d9cf81bbedc2ed20bef4f117",
      "parents": [
        "2b5cb411cef38c28c0bfba2502f97770d55306b7"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Thu May 17 15:00:41 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Thu May 17 15:00:41 2007 +0000"
      },
      "message": "[PtP] Fix BSD problems with PtP interfaces: must treat RTA_BRD as peer address\n\n2007-05-17 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* kernel_socket.c: (ifam_read_mesg) Grab RTA_DST and RTA_GATEWAY\n\t  addresses from the message (if present, which seems unlikely on\n\t  current BSD platforms), and show them in the debug messages.\n\t  Also, add ifam_flags to the debug messages.\n\t  (ifam_read) If the interface is point-to-point, then the RTA_BRD\n\t  address should be treated as a peer address.\n"
    },
    {
      "commit": "6f0e3f6e17687eb25b7b77c4fdc8324837d4700f",
      "tree": "8a94d9212060f0f2ee7cbd0079c2687eed7348dc",
      "parents": [
        "08d3d5b398ae81de7659509f159e814d1bbd4375"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 02:38:51 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 02:38:51 2007 +0000"
      },
      "message": "[autoconf] bugs 162,303,178: Fix \u0027present but can not be compiled\u0027 warnings\n\n2007-05-09 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: sys/conf.h depends on sys/param.h, at least on\n\t  FBSD 6.2.\n\t  (bug #363) Should check for in_pktinfo for IRDP\n\n2006-05-27 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: General cleanup of header and type checks, introducing\n\t  an internal define, QUAGGA_INCLUDES, to build up a list of\n\t  stuff to include so as to avoid \u0027present but cant be compiled\u0027\n\t  warnings.\n\t  Misc additional checks of things missing according to autoscan.\n\t  Add LIBM, for bgpd\u0027s use of libm, so as to avoid burdening\n\t  LIBS, and all the binaries, with libm linkage.\n\t  Remove the bad practice of using m4 changequote(), just\n\t  quote the []\u0027s in the case statements properly.\n\t  This should fix bugs 162, 303 and 178.\n\t* */*.{c,h}: Update all HAVE_* to the standard autoconf namespaced\n\t  HAVE_* defines. I.e. HAVE_SA_LEN -\u003e HAVE_STRUCT_SOCKADDR_SA_LEN,\n\t* bgpd/Makefile.am: Add LIBM to bgpd\u0027s LDADD, for pow().\n"
    },
    {
      "commit": "5921ef9aae3b5d6ff8663298f649fb9d76594acd",
      "tree": "5164adafc18404f698563fb9044a11780927926c",
      "parents": [
        "7514fb7739f74311830e9ddd1381d0d228224f61"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 04 20:13:20 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 04 20:13:20 2007 +0000"
      },
      "message": "[zebra] Add zebra_routemap.c\n\n\t* zebra_routemap.c should have been in the commit of Steven\u0027s\n\t  routemap patch.\n"
    },
    {
      "commit": "7514fb7739f74311830e9ddd1381d0d228224f61",
      "tree": "4d4b9a4fdfcea4cb6fa496085327f1aae9a9a380",
      "parents": [
        "5fa05099567bbe42aae87a9bef8fd630b3666a4d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed May 02 16:05:35 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed May 02 16:05:35 2007 +0000"
      },
      "message": "[zebra] Routemap support on received routes, with \u0027set src\u0027 command (linux)\n\n2007-05-01 David L Stevens \u003cdlstevens@us.ibm.com\u003e\n\n\t* (general) These changes collectively add route-map and\n\t  prefix-list support to zebra and fix a bug in \"show\n\t  route-map\" (with no argument).\n\t* doc/main.texi: added route-map, prefix-list, ip protocol\n\t  and set src documentation\n\t* lib/command.h: added PROTOCOL_NODE type\n\t* lib/log.c: (proto_name2num) new function, protocol name to\n\t  number translation.\n\t* lib/routemap.c: (vty_show_route_map) fixed \"show route-map\"\n\t  without route-map name\n\t* lib/routemap.h: added RMAP_ZEBRA type\n\t* lib/zebra.h: added proto_name2num() prototype\n\t* vtysh/extract.pl.in: added VTYSH_ZEBRA flag for route-map and\n\t  plist\n\t* vtysh/Makefile.am: added zebra_routemap.c\n\t* vtysh/vtysh.h: added VTYSH_ZEBRA flag to VTYSH_RMAP\n\t* zebra/connected.c: (connected_up_ipv4) added src preference argument\n\t  to rib_add_ipv4()\n\t* zebra/kernel_socket.c: (rtm_read) ditto\n\t* zebra/main.c: added prefix list initialization\n\t* zebra/Makefile.am: added zebra_routemap.c source file\n\t* zebra/rib.h: added generic address union \"g_addr\" and use in\n\t  existing places that had an explicit union.\n\t  Added \"src\" to struct nexthop.\n\t  Added preferred src arg to nexthop_ipv4_add and rib_add_ipv4.\n\t* zebra/rt_netlink.c: (netlink_routing_table) set preferred source on\n\t  netlink messages.\n\t  (netlink_route_change) ditto\n\t  (netlink_route_multipath) ditto.\n\t* zebra/rtread_getmsg.c: (handle_route_entry) added (NULL) src to\n\t  rib_add_ipv4() call.\n\t* zebra/rtread_proc.c: (proc_route_read) ditto\n\t* zebra/zebra_rib.c: (nexthop_ipv4_add) add src argument.\n\t  (nexthop_ipv4_ifindex_add) ditto\n\t  (rib_add_ipv4) ditto\n\t  (nexthop_active_check) Add route-map processing.\n\t* zebra/zebra_routemap.c: new file for zebra route-map commands.\n\t* zebra/zebra_vty.c: (ip_protocol_cmd) Apply route-map to protocol\n\t  (vty_show_ip_route_detail) added \"src\" printing\n\t  (vty_show_ip_route) ditto\n\t  (show_ip_protocol_cmd) new command, list routemaps.\n\t  (config_write_protocol) write out routemap protocl config.\n\t  (zebra_vty_init) Install the new routemap protocol commands.\n\t* zebra/zserv.c: (zread_ipv4_add) added (NULL) src arg\n\t  (zebra_init) init zebra route-maps.\n\t* zebra/zserv.h: add zebra_route_map_init\n"
    },
    {
      "commit": "e8eb8340c14f53194786b766992f61cc0abf7a8e",
      "tree": "dc5c6aa366ec2393d0f5467b7c21f91ac264065d",
      "parents": [
        "bd9da7fe8cdbc915f3b43a0632326401f28fe310"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 29 17:32:08 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 29 17:32:08 2007 +0000"
      },
      "message": "[zebra/solaris] fix if_get_index passing wrong arg to lifreq_set_name\n\n2007-04-29 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* if_ioctl_solaris.c: (if_get_index) Fix bogus argument passed\n\t  to lifreq_set_name().\n"
    }
  ],
  "next": "bd9da7fe8cdbc915f3b43a0632326401f28fe310"
}
