)]}'
{
  "log": [
    {
      "commit": "36d3e8d828e18c5c4cd097f659e3984ff02532cb",
      "tree": "d7ec4c0bb657f303e39d8c784f1b3ac45a72d8a9",
      "parents": [
        "a809d1cc54a621f4b31397ee5b8b79151baa4bf2"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Wed Nov 10 13:01:41 2010 -0800"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 19:50:41 2012 +0400"
      },
      "message": "ospf6d: Have ospf6d cleanup when it terminates normally\n\nA clean exit makes it easier to use memory debuggers.\n\n* ospf6_asbr.c: (ospf6_asbr_terminate) Add a function to do route map\n  cleanup.\n* ospf6_lsa.c: (ospf6_lsa_terminate) Add a function to cleanup the lsa\n  handler vector.\n* ospf6_main.c: (ospf6_exit) Add an function that causes ospf6d to\n  gracefully exit.\n* ospf6_message.c: (ospf6_message_terminate) Add a function that frees\n  the send and receive buffers.\n* ospf6_top.c: (ospf6_delete) Enable the ospf6_delete() function.\n  Disable ospf6 before freeing everything.\n\nSigned-off-by: Vyacheslav Trushkin \u003cme@dogonthesun.net\u003e\n\nConflicts:\n\n\tospf6d/ospf6_lsa.h\n"
    },
    {
      "commit": "a809d1cc54a621f4b31397ee5b8b79151baa4bf2",
      "tree": "2e8badac33516de66c4a0cdff9d3c7812ff65fa4",
      "parents": [
        "13351032d1d1632dbaf540cf33b7bebbc748c415"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Wed Nov 10 13:00:54 2010 -0800"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 19:50:32 2012 +0400"
      },
      "message": "lib: Add a function to delete all interfaces\n\nif.c: (if_terminate) This adds a cleanup function that can be called\n    when a daemon exits, similar to vty_terminate().\n"
    },
    {
      "commit": "13351032d1d1632dbaf540cf33b7bebbc748c415",
      "tree": "afbef258221ec2d954b6bcf3f9cf1b70c73be054",
      "parents": [
        "85136e904861775bdf6fbbbd4f0080f06e749bcb"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Tue Dec 20 20:52:31 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:28:01 2012 +0400"
      },
      "message": "ospf6d: add verifying user\u0027s privileges\n"
    },
    {
      "commit": "85136e904861775bdf6fbbbd4f0080f06e749bcb",
      "tree": "5e8321c2ab0203e6dfc38d324db82d26c07a48a7",
      "parents": [
        "7eed92b9653b09f064e827e887c29ee11122b4fe"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Dec 18 16:27:02 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:27:53 2012 +0400"
      },
      "message": "ospfd: fix bug in NSSA ABR status check\n\n* ospf_abr.c\n  * ospf_abr_nssa_am_elected(): feed \"best\" instead of \"address of best\"\n    into IPV4_ADDR_CMP(), because \"best\" is a pointer; also, mean s_addr\n    field of the structures to get better typed pointers\n"
    },
    {
      "commit": "7eed92b9653b09f064e827e887c29ee11122b4fe",
      "tree": "967341976629f684906b35f79ae96d7855ef4b0a",
      "parents": [
        "45b341f72df6d7dd89133dfd21f43cf1cca74ce5"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Dec 18 15:40:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:27:44 2012 +0400"
      },
      "message": "lib: address type-punned pointers in prefix_same()\n\nIPV4_ADDR_SAME() wasn\u0027t passed the right union member, this could cause\na bug due to strict-aliasing. IPV6_ADDR_SAME() case got its fix before\nthe error could be created by macro upgrade.\n"
    },
    {
      "commit": "45b341f72df6d7dd89133dfd21f43cf1cca74ce5",
      "tree": "246e9cc5029eab48ad46d51359017fe22fe6e819",
      "parents": [
        "b31d8fc3016615571f79161b8405aa4033cdfb8d"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Dec 17 19:39:30 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:27:34 2012 +0400"
      },
      "message": "bgpd: justify checks for IPv4 class D/E\n\n* lib/prefix.h\n  * IPV4_CLASS_DE(): make consistent with counterpart macros\n* bgp_packet.c\n  * bgp_open_receive(): test using macro instead of \"\u003e\u003d\"\n* bgp_route.c\n  * bgp_update_rsclient(): idem\n  * bgp_update_main(): idem\n"
    },
    {
      "commit": "b31d8fc3016615571f79161b8405aa4033cdfb8d",
      "tree": "f17abe1585b337f1751c496e9ac99714bebcb79b",
      "parents": [
        "89e9f82e0b717c0e39bbffa104f9d9f817c19b46"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Mon Dec 12 20:30:10 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:27:26 2012 +0400"
      },
      "message": "ospfd: fix packet reception for FreeBSD 10.\n\n* ospf_packet.c (ospf_recv_packet): FreeBSD, starting from version 10, will not\n  subtract the IP header size from ip_len.\n\nThis is the patch from FreeBSD\u0027s ports/net/quagga/files/patch-ospfd__ospf_packet.c,\nby Boris Kovalenko.\n"
    },
    {
      "commit": "89e9f82e0b717c0e39bbffa104f9d9f817c19b46",
      "tree": "93bf15e1698b686741ee6574f65a3e7a5155dc2c",
      "parents": [
        "07bb964ef11d34235570427cd9bc4111956e31b7"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Sun Dec 11 18:48:47 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:27:19 2012 +0400"
      },
      "message": "zebra: ZEBRA_HELLO and mopping up routes (BZ#448)\n\nZEBRA_HELLO message is used by routing daemons to inform zebra\nwhat type of routes daemon will be announcing to zebra. Also\nzebra uses route_type_oaths array to track which daemon announces\nwhich protocol. Zebra mops up routes if daemon didn\u0027t for some\nreason.\n"
    },
    {
      "commit": "07bb964ef11d34235570427cd9bc4111956e31b7",
      "tree": "decf3cbdd503891aeab2deb3a0ff086e48a487db",
      "parents": [
        "94e7cd90feb6af51b7e21d5289dc0edc1ba94a99"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Dec 07 01:29:49 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:27:13 2012 +0400"
      },
      "message": "lib: fix compile warnings from set-never-used\n\nThe if_dump code had empty loop, that caused set-never-used warning.\n"
    },
    {
      "commit": "94e7cd90feb6af51b7e21d5289dc0edc1ba94a99",
      "tree": "5bb3b96f954826535d5c32376684844523284b49",
      "parents": [
        "4f5e717413b6627310a245d16f945660c9d60736"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 07 01:35:11 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:27:05 2012 +0400"
      },
      "message": "Revert \"lib: address -Wunused-but-set-variable\"\n\nStephen Hemminger\u0027s commits contain all the changes and\nseveral other warning fixes.\n\nThis reverts commit 6947dbebdc91b6272f8107a6e0dd211457438606.\n"
    },
    {
      "commit": "4f5e717413b6627310a245d16f945660c9d60736",
      "tree": "b5ad40f737c27f99b973d7fd3c55b6bd766605bc",
      "parents": [
        "7e7a2d38b2d5d5edd3be7d6754d67c3231ee215e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Dec 07 00:55:15 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:16:07 2012 +0400"
      },
      "message": "lib: fix SMUX compiler warnings\n\nMake progname a string, and cast when calling asn1.\nRemove variable set but never used.\n"
    },
    {
      "commit": "7e7a2d38b2d5d5edd3be7d6754d67c3231ee215e",
      "tree": "e50e725a1b472ba7db5f33b490786b4c1c1149f4",
      "parents": [
        "8502229b7ed198d994017e4fd04000d429ca9c8d"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Dec 07 00:09:56 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:15:55 2012 +0400"
      },
      "message": "zebra: fix warnings in forward proc\n\nCheck result of fgets(), and don\u0027t set variable that is\nnever used.\n"
    },
    {
      "commit": "8502229b7ed198d994017e4fd04000d429ca9c8d",
      "tree": "895acf581aa6e900eacc45adaa24bbddfef3640d",
      "parents": [
        "a80e20d17597253e74e22aed6b1a85417f667b49"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Dec 07 00:04:46 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:15:42 2012 +0400"
      },
      "message": "bgpd: cleanup privs on termination\n\nWhen doing valgrind testing, the privledges from zprivs_init() need\nto be cleaned up on exit.\n"
    },
    {
      "commit": "a80e20d17597253e74e22aed6b1a85417f667b49",
      "tree": "907fa6925ce75160bf43db876eca29b123c72609",
      "parents": [
        "840faaeb00f1617649332dad82952e21e7c7fda7"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Dec 06 23:54:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:15:31 2012 +0400"
      },
      "message": "ospfd: remove unused code\n\nThe code for nssa_range and other bits that were written but\nnever used.\n"
    },
    {
      "commit": "840faaeb00f1617649332dad82952e21e7c7fda7",
      "tree": "571cda4238b579ce571bf17cc42423fa12b9ba06",
      "parents": [
        "4fafd3deef6eecab229e8b35189ffbc1f1ce9806"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Dec 06 14:51:10 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:15:19 2012 +0400"
      },
      "message": "bgpd: store nexthop info for redistributed IPV6 routes\n\nBGP was ignoring nexthop info for static and other redistributed\nroutes for IPv6.  Build extra attribute info to store the nexthop.\nSee also:\n  https://bugzilla.vyatta.com/show_bug.cgi?id\u003d6073\n"
    },
    {
      "commit": "4fafd3deef6eecab229e8b35189ffbc1f1ce9806",
      "tree": "c9d566aacaa7da44c5189343872c91e19bc80411",
      "parents": [
        "c17fbd6b1eb38e71aba65c593fa41f2e54f0b896"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Dec 06 14:46:42 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:15:09 2012 +0400"
      },
      "message": "ospfd: avoid redundant lookup in ospf_redistribute_withdraw\n\nThe old algorithim looked up every node twice as it withdrew\nthe entry. It looks up entry once in redistribute_withdraw, then\nlooks it up again info_delete. Use result of first lookup\nto do the free directly.\n\nThis may explain the slow performance observed in\n https://bugzilla.vyatta.com/show_bug.cgi?id\u003d4421\n"
    },
    {
      "commit": "c17fbd6b1eb38e71aba65c593fa41f2e54f0b896",
      "tree": "f7c7a582f1e7cc2c6e6afb0ed77936867d59001c",
      "parents": [
        "ed269db39a167251f9b7e8e261c7f53902c094f9"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Dec 06 14:09:18 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:14:33 2012 +0400"
      },
      "message": "lib: fix memory leak on connect() failure\n\nChange sockunion_log() to not use strdup(). This fixes a small memory\nleak that occurs on every failed connect(), and is simpler/cleaner.\n"
    },
    {
      "commit": "ed269db39a167251f9b7e8e261c7f53902c094f9",
      "tree": "9b5de1634c4434f87d7ee67f28483a1379915a90",
      "parents": [
        "ce77002e908e8c9eeff780a6a34143af6758a17f"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Dec 06 14:04:12 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:14:17 2012 +0400"
      },
      "message": "lib: call filter delete hook before freeing access list\n\nThe delete_hook was being run after calling access list delete function.\nThis would cause ospf to dereference a NULL, in ospf_filter_update\nbecause \u0027access-\u003ename\u0027 was already freed.\n\nSee also:\n    https://bugzilla.vyatta.com/show_bug.cgi?id\u003d7654\n"
    },
    {
      "commit": "ce77002e908e8c9eeff780a6a34143af6758a17f",
      "tree": "76fed1f3dd8861625469f1ec9bba7c00e0cac894",
      "parents": [
        "e1fabbb86c2558b336b83de443a4fde4b2a8db90"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Dec 16 16:25:02 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:10:55 2012 +0400"
      },
      "message": "lib: fix type-punning in ip_masklen()\n\nip_masklen() was likely to return incorrect results after being compiled\nwith -fstrict-aliasing (-O2, -O3, -Os)\n"
    },
    {
      "commit": "e1fabbb86c2558b336b83de443a4fde4b2a8db90",
      "tree": "901bc9ebd8070f59f9ebdd6075e857c346f50fec",
      "parents": [
        "bf19277c341e6c1b94046c628c0e6d0f0b20d536"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Dec 04 23:21:55 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:10:42 2012 +0400"
      },
      "message": "lib: optimize ip_masklen()\n\nThe new implementation makes use of a 64KB mapping table, which makes it\npossible to compute masklen faster and with constant execution time. The\nmap also allows for additional version of the function, which can detect\nerrors in input argument.\n\nThe previous implementation had a variable cost of execution, which\ndepended on masklen in a non-linear manner, and at its worst (/31) was\n4 times slower, than the new implementation. The only case of old\nfunction just slightly outperforming the new one is /0, which is of\nlittle practical interest.\n"
    },
    {
      "commit": "bf19277c341e6c1b94046c628c0e6d0f0b20d536",
      "tree": "d25071a4826b9966bfca1e13c29e1c913ba18723",
      "parents": [
        "7b0d1c6d31d50fbf74f84cb60daaedd904b35171"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Jan 01 16:33:12 2012 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Jan 01 16:37:39 2012 +0400"
      },
      "message": "Revert \"lib: optimize apply_mask_ipv6()\"\n\nExperience with IPv4 counterpart of this function suggests, that\nthis way of type-punning is likely to cause errors.\n"
    },
    {
      "commit": "7b0d1c6d31d50fbf74f84cb60daaedd904b35171",
      "tree": "13a852a2b92f784a3e6f27ba7e26f888c8d0a620",
      "parents": [
        "6258c2ae35ec40c07e87c010423e6b93ac39bd66"
      ],
      "author": {
        "name": "Jaroslav Fojtik",
        "email": "jafojtik@seznam.cz",
        "time": "Sun Dec 11 18:22:16 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 21 16:23:50 2011 +0400"
      },
      "message": "ospfd: more info in LSA checksum warning (BZ#685)\n"
    },
    {
      "commit": "6258c2ae35ec40c07e87c010423e6b93ac39bd66",
      "tree": "829ac6b557349ea29d25c55a6ae5b8465a2aeaef",
      "parents": [
        "1b960ed436a5515747ff4f4d15b1389e43f3b63c"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Dec 05 19:36:06 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:21:02 2011 +0400"
      },
      "message": "zebra: spelling\n"
    },
    {
      "commit": "1b960ed436a5515747ff4f4d15b1389e43f3b63c",
      "tree": "d771ad8efa2fcf060e674e94c157655238fbc0d5",
      "parents": [
        "42140fb1b1f88310565c6b1d36645aa15c58424d"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Dec 03 17:45:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:20:54 2011 +0400"
      },
      "message": "build: delete .cvsignore files\n"
    },
    {
      "commit": "42140fb1b1f88310565c6b1d36645aa15c58424d",
      "tree": "f428a743144b0dfe1899834ed7e14e993c0fe2ef",
      "parents": [
        "d5cd9a9758932dc644eb8b3f0eff3d2e17a7d677"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Dec 02 20:02:40 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:20:46 2011 +0400"
      },
      "message": "ospfd: spelling\n"
    },
    {
      "commit": "d5cd9a9758932dc644eb8b3f0eff3d2e17a7d677",
      "tree": "c95a1d4d56ae734e231710f94b958cca82c75d9a",
      "parents": [
        "271ee735ed3a42a1fe52f6401ddf72bd5d3e4f10"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Wed Nov 30 21:03:44 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:15:48 2011 +0400"
      },
      "message": "lib: clearing zclient.c for some cases of building\n\nlib/zclient.c: using of HAVE_TCP_ZEBRA in zclient_socket_*\ndefinitions extended by else clause.\n"
    },
    {
      "commit": "271ee735ed3a42a1fe52f6401ddf72bd5d3e4f10",
      "tree": "6e8995fe61efdf88513c697e1d84d4108fabbf3a",
      "parents": [
        "844ee4a8acf1a7b34e6a4a0bdf701496302a7416"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Fri Nov 25 18:51:48 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:13:06 2011 +0400"
      },
      "message": "quagga: option \"-z\" (\"--socket \u003cpath\u003e\") added\n\nAll daemons modified to support custom path to zserv\nsocket.\n\nlib: generalize a zclient connection\n\nzclient_socket_connect added. zclient_socket and\nzclient_socket_un were hidden under static expression.\n\"zclient_serv_path_set\" modified.\n"
    },
    {
      "commit": "844ee4a8acf1a7b34e6a4a0bdf701496302a7416",
      "tree": "0019e577d1255b5058fba8d74ef90da654b6bd81",
      "parents": [
        "1c8afb7c20600165f882d87d7564c6c982c65665"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Fri Nov 25 17:56:21 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:12:16 2011 +0400"
      },
      "message": "isisd: indent longopts array\n"
    },
    {
      "commit": "1c8afb7c20600165f882d87d7564c6c982c65665",
      "tree": "c964ed5023726fb9b025cdb0d13eb6c4e929d39b",
      "parents": [
        "fd31c50bc30d002e334c9764293f1c4f04a99515"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Tue Nov 22 20:15:10 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:11:03 2011 +0400"
      },
      "message": "bgpd: implement \u0027match probability\u0027 in route-maps\n\nNew clause \u0027match probability \u003cpercentage value\u003e\u0027\nwas added in route-maps (bgpd/bgp_routemap.c modified).\n"
    },
    {
      "commit": "fd31c50bc30d002e334c9764293f1c4f04a99515",
      "tree": "1bd0042e5a9b607b22a4583208c5956fa0bf6549",
      "parents": [
        "c0cad4368858d24caedd7e7d2bb776b6d4dd6eb3"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Mon Nov 21 20:26:39 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:10:31 2011 +0400"
      },
      "message": "ospf6d: justify multicast group management\n\n* ospf6_network.[ch]\n  * ospf6_sso(): new function supersedes ospf6_join_allspfrouters(),\n    ospf6_leave_allspfrouters(), ospf6_join_alldrouters() and\n    ospf6_leave_alldrouters()\n* ospf6_interface.c\n  * ospf6_interface_state_change(): update respectively\n  * interface_up(): ditto\n  * interface_down(): ditto\n"
    },
    {
      "commit": "c0cad4368858d24caedd7e7d2bb776b6d4dd6eb3",
      "tree": "f5d77cf7d32df711120749db6e23ef70852fcf3f",
      "parents": [
        "5009160c748b19a543a2f4fbd01d9de69ca71955"
      ],
      "author": {
        "name": "Ulrich Weber",
        "email": "ulrich.weber@sophos.com",
        "time": "Thu Nov 17 21:35:08 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:10:04 2011 +0400"
      },
      "message": "ripngd: limit max of \"timers basic\" to 65535 as documented\n\nand use VTY_GET_INTEGER_RANGE instead of calling strtoul\n"
    },
    {
      "commit": "5009160c748b19a543a2f4fbd01d9de69ca71955",
      "tree": "cbdb3acfd9fef49be115a70589416431609b7edf",
      "parents": [
        "1ce08787910a60635d9b5c09617aaabd55ee00ac"
      ],
      "author": {
        "name": "Ulrich Weber",
        "email": "ulrich.weber@sophos.com",
        "time": "Wed Nov 16 19:32:12 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:09:25 2011 +0400"
      },
      "message": "bgp: use VTY_GET_INTEGER_RANGE() in bgp_clear()\n\nSecond patch replaces \"VTY_GET_LONG (\"AS\", as_ul, arg);\"\nby \"VTY_GET_INTEGER_RANGE (\"AS\", as, arg, 1, BGP_AS4_MAX);\"\nas done in all other code, which parses AS numbers.\n"
    },
    {
      "commit": "1ce08787910a60635d9b5c09617aaabd55ee00ac",
      "tree": "7409c5c9381fb35dea59ed9b7c2464cfa84c0116",
      "parents": [
        "a994c7b6bb0976e86756f39b89200d711a1d39a3"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Wed Nov 16 14:22:03 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:08:40 2011 +0400"
      },
      "message": "ospf6d: implement \u0027match interface\u0027 for route-maps\n\nospf6_routemap_rule_match_interface* was imported from ospfd\ndaemon with minor changes. new CLI options defined.\n\n`ospf6_routemap_rule_match_interface\u0027 was changed to support\nIPv6 (ospfv3) route\u0027s external information.\n"
    },
    {
      "commit": "a994c7b6bb0976e86756f39b89200d711a1d39a3",
      "tree": "b7629951dfd2aca5811c9a20deb855845a13e28d",
      "parents": [
        "9ebf400a1c21117ff40cb78f0b023bf1cb4e9f6c"
      ],
      "author": {
        "name": "Roderick Schertler",
        "email": "roderick@argon.org",
        "time": "Wed Nov 16 15:03:14 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:36:52 2011 +0400"
      },
      "message": "doc: rectify \"match ip next-hop\" in ripd (BZ#537)\n"
    },
    {
      "commit": "9ebf400a1c21117ff40cb78f0b023bf1cb4e9f6c",
      "tree": "deaa8ecbb01ac76aef67e4c95f435459bf684d0a",
      "parents": [
        "0f572cde26208254f779933f0e8ec953ad2a3a8a"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Oct 27 20:04:08 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:35:48 2011 +0400"
      },
      "message": "bgpd: fix AS4_PATH attr flag check (BZ#676)\n\nAS_PATH is a well-known, transitive path attribute and cannot be flagged\nas \"Partial\". This is what commit\n77a20b8af32c926176f8492a086d9e4ec670496b implemented, but it did not\naccount, that bgp_attr_aspath() is also used to process AS4_PATH, which\nis an optional, transitive path attribute and as such may be flagged as\n\"Partial\". This change justfies the test condition.\n"
    },
    {
      "commit": "0f572cde26208254f779933f0e8ec953ad2a3a8a",
      "tree": "09cec82813cfbedae43ea053d041d64ee211add7",
      "parents": [
        "d3962ba7c75db6aeb926bf909e643cef12a843ef"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Oct 26 19:34:30 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:35:32 2011 +0400"
      },
      "message": "bgpd: fix 2 more cases of length error reporting\n\n* bgp_attr.c (bgp_attr_originator_id, bgp_attr_cluster_list): use\n  bgp_notify_send_with_data()\n"
    },
    {
      "commit": "d3962ba7c75db6aeb926bf909e643cef12a843ef",
      "tree": "fe21f90214fd88489723a14f5703e6756243697f",
      "parents": [
        "f6247bf278861c41a5cb61639176d5ed1301e81e"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 24 18:45:05 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:35:18 2011 +0400"
      },
      "message": "lib: use prefix bit length macros\n"
    },
    {
      "commit": "f6247bf278861c41a5cb61639176d5ed1301e81e",
      "tree": "6983e4fe4f828fa91b57b6688a6754bfbb74ca1c",
      "parents": [
        "26f5e782ef43dbe4496d795d70c490b42da31c6a"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 24 18:17:09 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:33:15 2011 +0400"
      },
      "message": "ospfd: use IS_LSA_SELF() where appropriate\n"
    },
    {
      "commit": "26f5e782ef43dbe4496d795d70c490b42da31c6a",
      "tree": "546494bc51d11176c23acfaae4cf624c7be369fd",
      "parents": [
        "5c8d16fd853c29856e45709424701c93ef626f2f"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Oct 23 22:32:44 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:33:07 2011 +0400"
      },
      "message": "bgpd: rewrite attr flag error logging\n\n* bgp_attr.c\n  * attr_flag_str: new message list\n  * bgp_attr_flags_diagnose(): new function, implements previously added\n    error logging in a generic way\n  * bgp_attr_origin(): use bgp_attr_flags_diagnose()\n  * bgp_attr_nexthop(): ditto\n  * bgp_attr_med(): ditto\n  * bgp_attr_local_pref(): ditto\n  * bgp_attr_atomic(): ditto\n  * bgp_attr_originator_id(): ditto\n  * bgp_attr_cluster_list(): ditto\n  * bgp_mp_reach_parse(): ditto\n  * bgp_mp_unreach_parse(): ditto\n"
    },
    {
      "commit": "5c8d16fd853c29856e45709424701c93ef626f2f",
      "tree": "ea711a452b5d679632e15ce61775664817d015f4",
      "parents": [
        "12da1a188a5e5bfdfecb98c48ecca48ed38e2d89"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 22 22:18:55 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:32:58 2011 +0400"
      },
      "message": "ospfd: spelling/format fix\n"
    },
    {
      "commit": "12da1a188a5e5bfdfecb98c48ecca48ed38e2d89",
      "tree": "3f57640c9778fcd13434ef9f5b722e6e94bfc370",
      "parents": [
        "c6cb2d9151fc14f9c2b1b7618695874cc8d97286"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 22 22:11:31 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:32:45 2011 +0400"
      },
      "message": "bgpd: check AGGREGATOR attr flags (BZ#678)\n\n* bgp_attr.c\n  * bgp_attr_aggregator(): check Optional/Transitive flag bits\n"
    },
    {
      "commit": "c6cb2d9151fc14f9c2b1b7618695874cc8d97286",
      "tree": "1b515d8887ae4680f1463d60fd7d116da173660c",
      "parents": [
        "ed7a62efea6d957b0c5f60ec52644bba062f6c29"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Oct 18 22:02:52 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:32:33 2011 +0400"
      },
      "message": "lib: optimize apply_mask_ipv6()\n"
    },
    {
      "commit": "ed7a62efea6d957b0c5f60ec52644bba062f6c29",
      "tree": "d1f026cfc0fd2c609eaa1cab40b668c031c3ed96",
      "parents": [
        "3062d2dab6e8bea9003d67a05d1e018a927d6f1d"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Oct 18 18:33:53 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:32:23 2011 +0400"
      },
      "message": "lib: optimize apply_mask_ipv4()\n"
    },
    {
      "commit": "3062d2dab6e8bea9003d67a05d1e018a927d6f1d",
      "tree": "c7a9f7e00e03ec8b3dcf41d605fa52ba86bfd5c0",
      "parents": [
        "49ff274c29eaa45ae85766e62dab32faea7f32b8"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Oct 18 15:27:21 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:26:39 2011 +0400"
      },
      "message": "bgpd: fix error message in bgp_attr_aspath()\n"
    },
    {
      "commit": "49ff274c29eaa45ae85766e62dab32faea7f32b8",
      "tree": "36b2e399ad9dbec4e525d134ba5891aa117a8c66",
      "parents": [
        "ba1a944aa7adffd9194ef0ad61649fe3e02b0f38"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 21:11:10 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:26:04 2011 +0400"
      },
      "message": "lib: make masklen2ip6() safer and faster\n"
    },
    {
      "commit": "ba1a944aa7adffd9194ef0ad61649fe3e02b0f38",
      "tree": "ca44b50d602bb6b5a9722b7ac07ca5b97555232b",
      "parents": [
        "ed72156c9d4512217f5c80b8e20e4de024246502"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Dec 10 17:19:09 2009 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:25:52 2011 +0400"
      },
      "message": "vty_serv_sock_family unused\n\nIf the vty_serv_sock_addrinfo is being used, then vty_serv_sock_family\nis unsed. Fix by adjusting ifdef/else/endif\n"
    },
    {
      "commit": "ed72156c9d4512217f5c80b8e20e4de024246502",
      "tree": "297f4cc8a0d6614c68e300b2b347f95b8ac6c939",
      "parents": [
        "8fee927850e9011b3bf46f2a8a0d54521d00a807"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Oct 14 21:59:58 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:25:41 2011 +0400"
      },
      "message": "ospf6d: decode message type with LOOKUP()\n\n* ospf6_message.h\n  * OSPF6_MESSAGE_TYPE_CANONICAL(): dismiss\n  * OSPF6_MESSAGE_TYPE_NAME(): dismiss\n* ospf6_message.c\n  * ospf6_message_type_str: rewrite as a message list, add max value\n  * ospf6_packet_examin(): update to use LOOKUP()\n  * ospf6_receive(): idem\n  * ospf6_send(): idem\n"
    },
    {
      "commit": "8fee927850e9011b3bf46f2a8a0d54521d00a807",
      "tree": "a436d5eb3b7e8566f4f6801daededb4a82cbfaec",
      "parents": [
        "bb6ef3e270f9ae53ac46461962500cf94ecdff08"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Oct 14 20:59:43 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:25:31 2011 +0400"
      },
      "message": "lib: address -Wunused-but-set-variable\n\n* if.c\n  * if_dump(): \u0027node\u0027, \u0027c\u0027\n* distribute.c\n  * distribute_list_all(): \u0027dist\u0027\n  * distribute_list(): \u0027dist\u0027\n  * districute_list_prefix_all(): \u0027dist\u0027\n* if_rmap.c\n  * if_rmap(): \u0027if_rmap\u0027\n* vty.c\n  * vty_accept(): \u0027vty\u0027\n"
    },
    {
      "commit": "bb6ef3e270f9ae53ac46461962500cf94ecdff08",
      "tree": "1174cfd679a1351ca361e79e45f8aa86b69b60a8",
      "parents": [
        "7d3d2de4657a080275a705fbf3bd21a484cb3e4b"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Oct 14 20:56:19 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:25:17 2011 +0400"
      },
      "message": "lib: spelling\n"
    },
    {
      "commit": "7d3d2de4657a080275a705fbf3bd21a484cb3e4b",
      "tree": "2ba84d4f69310037ce27f7c3df199dab5cf0f47a",
      "parents": [
        "daca2cf463496e5844812ea13a4fafefafe4853f"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Sun Oct 04 16:21:49 2009 +0200"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:25:01 2011 +0400"
      },
      "message": "lib: add sockopt helper for setting IPV6_V6ONLY and use it\n\ngetaddrinfo returns a list of socket parameters for listening. it\nwill contain both IPv4 and IPv6 listening sockets. unless we use\nIPV6_V6ONLY on the IPv6 ones, only the socket listed first will\nwork. if the IPv4 one came first, the IPv6 one would get an\n\"Address in use\" error.\n\nthis functionality was already present for bgpd and its listening\nsockets. as it is needed for vtys as well, make it a common helper.\n"
    },
    {
      "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": "3480674a41cba545a1f546e012939e286909b10c",
      "tree": "f7768ec6dc7b6ae295f6dd7439623896a3021922",
      "parents": [
        "337cdd69d9d5b5ef842d1be2e67126fdc6840181"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Wed Sep 16 02:11:00 2009 +0200"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:24:11 2011 +0400"
      },
      "message": "build: fixup autoconf for cross-compiling (to OpenWRT)\n\nMALLOC/REALLOC aren\u0027t used properly (no rpl_malloc), remove them\n\nwhile at it, infer some sane ipforwarding method from the OS value.\n(v2 on that, \"\u003d\u003d\" is not a proper operator for standard \"test\")\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": "d9ddd5731d31a7bc1f0a39b7e4b0944dec7a2bdc",
      "tree": "a749c9129f119dc8203676a51a824d78ef3718c3",
      "parents": [
        "5d3c53b9995dd9cbfa08edfcb03a2dcb47b170f4"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Tue Feb 02 20:20:35 2010 +0100"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:23:34 2011 +0400"
      },
      "message": "bgpd: remove unused function bgp_bind_address\n\nbgp_bind_address is replaced with sockunion_bind.\n"
    },
    {
      "commit": "5d3c53b9995dd9cbfa08edfcb03a2dcb47b170f4",
      "tree": "5183c572f3b81b649bb4f2195d7ad47231de16c7",
      "parents": [
        "188506f4c618626e3da2c1e657100315f49664ee"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Tue Feb 02 20:18:23 2010 +0100"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:23:24 2011 +0400"
      },
      "message": "bgpd: fix update-source for IPv6 (BZ#548)\n\nif update-source was given as interface name, bgpd was unconditionally\ntrying to bind to an IPv4 address from that interface.\n\nchange function to find the best-matching (number of address bits)\nsame-family address on the interface.\n"
    },
    {
      "commit": "188506f4c618626e3da2c1e657100315f49664ee",
      "tree": "faf3e43e2b941b21105760d8fd6a84f179f95810",
      "parents": [
        "8b1eb59bb954af49455a97dbabf65321001d0225"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Tue Feb 02 20:16:35 2010 +0100"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 18:23:10 2011 +0400"
      },
      "message": "lib: prefix2sockunion, prefix_common_bits helper functions\n\nprefix2sockunion converts a struct prefix* to a union sockunion *;\nprefix_common_bits counts the number of common bits in the prefix\u0027s\naddress part.\n"
    },
    {
      "commit": "8b1eb59bb954af49455a97dbabf65321001d0225",
      "tree": "4238e1adf14b9b2cf11a18cbc1c08eaf4710a511",
      "parents": [
        "90d181bd1a7e03d41df3cb2f51530ab47d818caa"
      ],
      "author": {
        "name": "Dylan Hall",
        "email": "dylan@deedums.com",
        "time": "Thu Oct 27 15:28:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Nov 15 21:31:25 2011 +0400"
      },
      "message": "bgpd: fix \"nexthop-local unchanged\" (BZ#350)\n"
    },
    {
      "commit": "90d181bd1a7e03d41df3cb2f51530ab47d818caa",
      "tree": "56b456db3e8f9f23a34433c2515ddf962e33ded2",
      "parents": [
        "70e3ca2ccedca2cae58bd91c968714cad0f9d5d6"
      ],
      "author": {
        "name": "Chris Luke",
        "email": "chrisy@flirble.org",
        "time": "Tue Oct 18 17:26:51 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Nov 15 21:26:07 2011 +0400"
      },
      "message": "bgpd: justify capabilities for TOS setting\n\nTo set the TOS bits on TCP connections, platforms that restrict\ncapabilities need the priv level to be raised before the sockopt\nis set, and this requires the ZCAP_NET_ADMIN priv.\n\n* bgp_main.c: update _caps_p to include ZCAP_NET_ADMIN\n* bgp_network.c\n  * bgp_connect(): request ZPRIVS_RAISE/ZPRIVS_LOWER\n  * bgp_listener(): request ZPRIVS_RAISE earlier\n"
    },
    {
      "commit": "70e3ca2ccedca2cae58bd91c968714cad0f9d5d6",
      "tree": "d0590a9b6e9c1f5c79987b3f9724935f9a55ebe3",
      "parents": [
        "f85bab1482b0db4cfdf90a2fd50f42d6dae96b42"
      ],
      "author": {
        "name": "Thomas Ries",
        "email": "tries@gmx.net",
        "time": "Thu Oct 27 17:43:38 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Nov 15 21:22:50 2011 +0400"
      },
      "message": "ospfd: improve fix to CVE-2011-3326 (BZ#586)\n\nMake ospf_flood() propagate error returned by ospf_lsa_install() further\nto properly discard the malformed LSA, not just prevent the immediate\ncrash.\n"
    },
    {
      "commit": "f85bab1482b0db4cfdf90a2fd50f42d6dae96b42",
      "tree": "695084c92e0dac05dfe7925467691fc2049b9a79",
      "parents": [
        "7ebd47095b178e91c3c3ef514e0ddd0afe1a97a9"
      ],
      "author": {
        "name": "Sergey Y. Afonin",
        "email": "asy@altlinux.ru",
        "time": "Thu Oct 27 17:01:11 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Nov 15 20:34:01 2011 +0400"
      },
      "message": "bgpd: revised fix to --dryrun (BZ#622)\n"
    },
    {
      "commit": "7ebd47095b178e91c3c3ef514e0ddd0afe1a97a9",
      "tree": "3a922d4ecbc5bf60dade43c86ad2a636707b519c",
      "parents": [
        "89a7fd150d2408e4c6fe853a3461aa23a16d9111"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Oct 18 14:20:04 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Oct 19 17:27:07 2011 +0400"
      },
      "message": "bgpd: fix more regressions in attr flag checks\n\nCommit 05a4936b713b9882171d0f7fb20b8439df23939e fixed some of the\nattributes involved, but not all. This commit should do it.\n\n* bgp_attr.c\n  * bgp_attr_originator_id()\n  * bgp_attr_cluster_list()\n  * bgp_mp_reach_parse()\n  * bgp_mp_unreach_parse()\n"
    },
    {
      "commit": "89a7fd150d2408e4c6fe853a3461aa23a16d9111",
      "tree": "e15551e7019e15f75ec119c248f9cbe10b652583",
      "parents": [
        "cc6647f230a55f1f4fd765a2012561047d9ae6d1"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Oct 11 15:17:45 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:47:44 2011 +0400"
      },
      "message": "lib: fix endianness of masklen2ip()\n"
    },
    {
      "commit": "cc6647f230a55f1f4fd765a2012561047d9ae6d1",
      "tree": "3031ae0a96698fa3cc183bcec5256686ddeceb79",
      "parents": [
        "484af2c2e0efe660e00e27647a19f1837a7fa437"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 08 18:15:21 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:47:38 2011 +0400"
      },
      "message": "lib: make masklen2ip() safer and faster\n"
    },
    {
      "commit": "484af2c2e0efe660e00e27647a19f1837a7fa437",
      "tree": "a0556cdc4d7d5bb47a0ca8a88e4b68ad839fe1ca",
      "parents": [
        "f17b65213712f324314c58866c4f4f8ed9c95dc7"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 08 17:22:45 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:45:26 2011 +0400"
      },
      "message": "ospf6d: make some old sizing checks assertions\n\nAs long as ospf6_packet_examin() is now the single checkpoint for\nreceived packets, most of the old checks performed elsewhere can\nbe converted into assert() constructs. Malformed input data at\nrespective points can be attributed solely to a programming error,\nnot a malformed packet.\n\n* ospf6_message.c\n  * ospf6_hello_print()\n  * ospf6_dbdesc_print()\n  * ospf6_lsreq_print()\n  * ospf6_lsupdate_print()\n  * ospf6_lsack_print()\n  * ospf6_hello_recv()\n  * ospf6_dbdesc_recv_master()\n  * ospf6_dbdesc_recv_slave()\n  * ospf6_lsreq_recv()\n  * ospf6_lsupdate_recv()\n  * ospf6_lsupdate_recv()\n  * ospf6_lsack_recv()\n  * ospf6_receive()\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": "4b6a7b902065e038f415a8b728df1709db00425d",
      "tree": "784d75f293f1d54169474b0616df9afe9ee841e0",
      "parents": [
        "cc0b6c122f2d01d886e1ebde15cd2e7c5442c598"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Mar 30 14:30:20 2011 +0100"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:43:14 2011 +0400"
      },
      "message": "doc: Add dependency for quagga.pdf make target\n\n* doc/Makefile.am: pdf target needs to depend on all the input files.\n"
    },
    {
      "commit": "cc0b6c122f2d01d886e1ebde15cd2e7c5442c598",
      "tree": "e6a65e182af6e028087538bec3056219e6471d10",
      "parents": [
        "1809ec13def22bc6c2c30d9e8d37a74095bcfb64"
      ],
      "author": {
        "name": "John Kemp",
        "email": "kemp@network-services.uoregon.edu",
        "time": "Fri Mar 18 17:52:18 2011 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:42:19 2011 +0400"
      },
      "message": "bgpd: improve \"monotonic\" uptime correction\n\nOlder versions of Quagga/Zebra would output a value in MRT table\ndump files for \"uptime\" aka \"ORIGINATED\" that was a WALL clock\nvalue.  Given that uptime is now internally a bgp_clock MONOTONIC\nvalue, the output in the MRT files is showing up as monotonic.\n\nNote: time of MRT dump is still recorded correctly as a\ntime() based value, so we haven\u0027t lost that value.\n\nProposal is to correct the uptime output on the vty and in the\nMRT files to again display something more akin to WALL time.\n\n* bgp_dump.c: (bgp_dump_routes_func) add conditional correction\n* bgp_route.c: (route_vty_out_detail) make correction conditional, move\n  variable declaration to beginning of the function\n"
    },
    {
      "commit": "1809ec13def22bc6c2c30d9e8d37a74095bcfb64",
      "tree": "bff05d468966320e11edb0178425db408bc61be1",
      "parents": [
        "8422e8b91bc9a0f4b8381ac0474a4d5b914869a9"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Sun Mar 13 01:14:08 2011 +0300"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:41:19 2011 +0400"
      },
      "message": "ripngd: copy debug statements fix from ripd\n\nDoesn\u0027t ripng needs same fix as ripd.\n"
    },
    {
      "commit": "8422e8b91bc9a0f4b8381ac0474a4d5b914869a9",
      "tree": "af0cf454871a4f2eae90a973d7efc9e24bfc0fdd",
      "parents": [
        "e48591a63220a90af9276a21877d80362bc6a408"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Oct 07 20:43:59 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:40:22 2011 +0400"
      },
      "message": "doc: \"[no] router zebra\" does not belong to ospfd\n"
    },
    {
      "commit": "e48591a63220a90af9276a21877d80362bc6a408",
      "tree": "4f7e183e9e045d0014a84b27e93476c236949860",
      "parents": [
        "efb2c331e70eb3b913aeba3b62dfb54e68bd6de0"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 03 14:08:01 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:36:14 2011 +0400"
      },
      "message": "ospfd: justify ospf_default_originate_timer()\n\nThe function is implemented in ospf_lsa.c, move its \"extern\" declaration\nto ospf_lsa.h for consistency.\n"
    },
    {
      "commit": "efb2c331e70eb3b913aeba3b62dfb54e68bd6de0",
      "tree": "4a43dfaa6d88dd8ab24673ff0fc1cf8200676220",
      "parents": [
        "047d6a601f7842d445d478d51d90b006829df945"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 10 21:08:33 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:31:12 2011 +0400"
      },
      "message": "bgpd: add flag checks for MP_(UN)REACH_NLRI\n\n* bgp_attr.[ch]\n  * bgp_mp_reach_parse(): add extra arguments and a uniform flag\n    check block\n  * bgp_mp_unreach_parse(): idem\n  * bgp_attr_parse(): provide extra arguments\n* bgp_mp_attr_test.c\n  * parse_test(): justify respective calls\n"
    },
    {
      "commit": "047d6a601f7842d445d478d51d90b006829df945",
      "tree": "efdae356c3f543c1e91449516f19910e468182a7",
      "parents": [
        "452db84a79df073d30ecc0b3f7bdad4143020681"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 08 13:54:48 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:31:01 2011 +0400"
      },
      "message": "bgpd: improve attr length error handling (BZ#679)\n\n* bgp_attr.c\n  * bgp_attr_parse(): provide extra argument to bgp_attr_aggregator()\n  * bgp_attr_local_pref(): use bgp_notify_send_with_data()\n  * bgp_attr_atomic(): idem\n  * bgp_attr_aggregator(): idem\n"
    },
    {
      "commit": "452db84a79df073d30ecc0b3f7bdad4143020681",
      "tree": "9d98c4a6f049bf4c762425b52839aea893deb781",
      "parents": [
        "cadc4cf05da46c44a2fb596260d4ef70d7ed6011"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 10 16:52:20 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:30:52 2011 +0400"
      },
      "message": "bgpd: fix spelling of CLUSTER_LIST\n"
    },
    {
      "commit": "cadc4cf05da46c44a2fb596260d4ef70d7ed6011",
      "tree": "c54fc4607821b6d24b272dc98de26a689c227710",
      "parents": [
        "5de1719994fd3677b361ad71ac8bd16cf9c31706"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Sep 30 15:12:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:28:36 2011 +0400"
      },
      "message": "bgpd: check CLUSTER_LIST attribute flags\n\n* bgp_attr.c\n  * bgp_attr_cluster_list(): accept extra argument, add checks for\n    \"optional\", \"transitive\" and \"partial\" bits, log each error\n    condition independently\n  * bgp_attr_parse(): provide extra arguments\n"
    },
    {
      "commit": "5de1719994fd3677b361ad71ac8bd16cf9c31706",
      "tree": "acc1d34f71ff6548c1d2b6be54cdd5ab1c6d09b5",
      "parents": [
        "566941f953b025598134109c5f9547dc4fea287e"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Sep 30 15:08:54 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:28:24 2011 +0400"
      },
      "message": "bgpd: check ORIGINATOR_ID attribute flags\n\n* bgp_attr.c\n  * bgp_attr_originator_id(): accept extra argument, add checks for\n    \"optional\", \"transitive\" and \"partial\" bits, log each error\n    condition independently\n  * bgp_attr_parse(): provide extra arguments\n"
    },
    {
      "commit": "566941f953b025598134109c5f9547dc4fea287e",
      "tree": "fceba1b20891876911422a2957339928cb585cd8",
      "parents": [
        "395ec7f5ab794eb5205a7386b890ccb9b1313580"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Oct 12 13:54:21 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:28:10 2011 +0400"
      },
      "message": "bgpd: fix regression in improved attr flag checks\n\nCommit 2febf323411c1aed9d7694898f852ce2ef36a7e5 assumed every flag\nbit except optional/transitive/partial unset, which at times could\nnot be true for \"extended length\" bit.\n\n* bgp_attr.c\n  * bgp_attr_origin(): exclude BGP_ATTR_FLAG_EXTLEN from comparison\n  * bgp_attr_nexthop(): idem\n  * bgp_attr_med(): idem\n  * bgp_attr_local_pref(): idem\n  * bgp_attr_atomic(): idem\n"
    },
    {
      "commit": "395ec7f5ab794eb5205a7386b890ccb9b1313580",
      "tree": "300b6a9a988317a3f3853717d940915693931ee0",
      "parents": [
        "e531d4a662749fdd2a2f83f16e0b1cd252b23ea1"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 15:47:25 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:27:55 2011 +0400"
      },
      "message": "bgpd: improve attr flags checks\n\nDo not check each of the Optional/Transitive/Partial attribute\nflag bits, when their only valid combination is known in advance,\nbut still perform bit-deep error message logging. This change\nassumes unused (low-order) 4 bits of the flag octet cleared.\n\n* bgp_attr.c\n  * bgp_attr_origin(): rewrite check\n  * bgp_attr_nexthop(): idem\n  * bgp_attr_med(): idem\n  * bgp_attr_local_pref(): idem\n  * bgp_attr_atomic(): idem\n"
    },
    {
      "commit": "e531d4a662749fdd2a2f83f16e0b1cd252b23ea1",
      "tree": "7c67d7fa031219777feb9caf85821eca27006e4f",
      "parents": [
        "19e7654a293cd76854eb5cf98707826efb639326"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Sep 24 13:20:43 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:27:44 2011 +0400"
      },
      "message": "bgpd: add missing \"partial\" flag checks (BZ#676)\n\nORIGIN handling function used to have \"partial\" bit check and recent\ncommits added it for NEXT_HOP, MULTI_EXIT_DISC and ATOMIC_AGGREGATE\ncases. This commit adds \"partial\" check for AS_PATH and LOCAL_PREF\ncases, which should leave attributes 1 through 6 inclusive completely\ncovered with attribute flags checks.\n\n* bgp_attr.c\n  * bgp_attr_origin(): use bit-by-bit checks for better diagnostics\n  * bgp_attr_aspath(): add flag check\n  * bgp_attr_local_pref(): idem\n"
    },
    {
      "commit": "19e7654a293cd76854eb5cf98707826efb639326",
      "tree": "b2ebdd87ace0f5721ac0075da4eee2181af63051",
      "parents": [
        "17801d1e8bf377ec8e4962dda0293de935629903"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 15:35:39 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:27:32 2011 +0400"
      },
      "message": "bgpd: ignore 4 bits of attribute flags byte\n"
    },
    {
      "commit": "17801d1e8bf377ec8e4962dda0293de935629903",
      "tree": "25c820e49717f2016ac7d403ef70359c07e0e4da",
      "parents": [
        "d14a71d7209dc642f83929e48b525631a1bb09cb"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Tue Sep 27 19:27:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:14:36 2011 +0400"
      },
      "message": "vtysh: [build] silence preprocessor errors in some cases\n\n* extract.pl.in: use configured CPPFLAGS in cpp invocation.\n"
    },
    {
      "commit": "d14a71d7209dc642f83929e48b525631a1bb09cb",
      "tree": "f2211d5587c753f7fa89ac6d19187e1467139c67",
      "parents": [
        "d1e2faa40e17fe8f3db591021994d2f5e8b11335"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Oct 12 15:07:34 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:13:40 2011 +0400"
      },
      "message": "lib: compile even without IPV6_TCLASS\n"
    },
    {
      "commit": "d1e2faa40e17fe8f3db591021994d2f5e8b11335",
      "tree": "4ca879fbf8ba3b7932c7b180f22d477dd9e3536a",
      "parents": [
        "792b6fa2c40f820df07caa80fbc6ed9c4191ef9b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Sep 28 14:23:35 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:13:28 2011 +0400"
      },
      "message": "IPv6 transport class suppport\n\nIPv6 supports the same concept of differentiated service for routing\nprotocols as IPv4, but like too many things, the standards committee\ndecided that having two names for the same thing wasn\u0027t good enough and\nintroduced a third more generic term transport class.\n\nThe socket option to set transport class works the same as IPv4, but the\narguments are different.\n\n* lib/sockopt.[ch]\n  * setsockopt_ipv6_tclass(): new function\n* bgpd/bgp_network.c\n  * bgp_connect(): set socket option\n  * bgp_listener(): set socket option\n* ospf6d/ospf6_network.c\n  * ospf6_set_transport_class(): new function\n  * ospf6_serv_sock(): set socket option\n* ripngd/ripngd.c\n  * ripng_make_socket(): set socket option\n"
    },
    {
      "commit": "792b6fa2c40f820df07caa80fbc6ed9c4191ef9b",
      "tree": "91e4873fff2041c4fc92dcb37778d9f8b0f7dee3",
      "parents": [
        "992d4d1ca90025ccac2456643bc2c8cb6790350b"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 16:46:49 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 16:50:46 2011 +0400"
      },
      "message": "version RE-0.99.17.5\n"
    },
    {
      "commit": "992d4d1ca90025ccac2456643bc2c8cb6790350b",
      "tree": "25de07b36d744d301fc96ec1367ab15a7d6d0cab",
      "parents": [
        "2bb2664e2957c587d8ad2d3d1d26de981983406e"
      ],
      "author": {
        "name": "YAMAMOTO Shigeru",
        "email": "shigeru@iij.ad.jp",
        "time": "Wed Sep 28 21:00:14 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 16:27:01 2011 +0400"
      },
      "message": "ospfd: fix regression in recent commit\n\ncommit \u0027717750433839762d23a5f8d88fe0b4d57c8d490a\u0027 causes SEGV error,\nwhen \u0027oi \u003d ospf_if_lookup_recv_if (ospf, iph-\u003eip_src, ifp);\u0027 returns\nNULL.\n\n* ospf_packet.c\n  * ospf_read(): change a place of calling \u0027ospf_verify_header()\u0027\n"
    },
    {
      "commit": "2bb2664e2957c587d8ad2d3d1d26de981983406e",
      "tree": "fd710046aab23ddee985a52f4e0ef964457e4da1",
      "parents": [
        "552563a1c443ec876edd92bf79f29ff3afe2c01e"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 18:37:06 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 18:41:01 2011 +0400"
      },
      "message": "version RE-0.99.17.4\n"
    },
    {
      "commit": "552563a1c443ec876edd92bf79f29ff3afe2c01e",
      "tree": "c0bf1cdbf045a493f1cbb4623e85724eeea4dc7f",
      "parents": [
        "308687b7d73c5cacf927a3a33efbfaea627ccc09"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 13:18:51 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 18:40:48 2011 +0400"
      },
      "message": "ospf6d: CVE-2011-3323 (fortify packet reception)\n\nThis vulnerability (CERT-FI #514840) was reported by CROSS project.\n\nospf6d processes IPv6 prefix structures in incoming packets without\nverifying that the declared prefix length is valid. This leads to a\ncrash\ncaused by out of bounds memory access.\n\n* ospf6_abr.h: new macros for size/alignment validation\n* ospf6_asbr.h: idem\n* ospf6_intra.h: idem\n* ospf6_lsa.h: idem\n* ospf6_message.h: idem\n* ospf6_proto.h: idem\n* ospf6_message.c\n  * ospf6_packet_minlen: helper array for ospf6_packet_examin()\n  * ospf6_lsa_minlen: helper array for ospf6_lsa_examin()\n  * ospf6_hello_recv(): do not call ospf6_header_examin(), let upper\n    layer verify the input data\n  * ospf6_dbdesc_recv(): idem\n  * ospf6_lsreq_recv(): idem\n  * ospf6_lsupdate_recv(): idem\n  * ospf6_lsack_recv(): idem\n  * ospf6_prefixes_examin(): new function, implements A.4.1\n  * ospf6_lsa_examin(): new function, implements A.4\n  * ospf6_lsaseq_examin(): new function, an interface to above\n  * ospf6_packet_examin(): new function, implements A.3\n  * ospf6_rxpacket_examin(): new function, replaces\n    ospf6_header_examin()\n  * ospf6_header_examin(): sayonara\n  * ospf6_receive(): perform passive interface check earliest possible,\n    employ ospf6_rxpacket_examin()\n"
    },
    {
      "commit": "308687b7d73c5cacf927a3a33efbfaea627ccc09",
      "tree": "5a6892a966b268e278e24f610322e1404216b730",
      "parents": [
        "1f54cef38dab072f1054c6cfedd9ac32af14a120"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 13:18:36 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 18:40:30 2011 +0400"
      },
      "message": "ospf6d: CVE-2011-3324 (DD LSA assertion)\n\nThis vulnerability (CERT-FI #514839) was reported by CROSS project.\n\nWhen Database Description LSA header list contains trailing zero octets,\nospf6d tries to process this data as an LSA header. This triggers an\nassertion in the code and ospf6d shuts down.\n\n* ospf6_lsa.c\n  * ospf6_lsa_is_changed(): handle header-only argument(s)\n    appropriately, do not treat LSA length underrun as a fatal error.\n"
    },
    {
      "commit": "1f54cef38dab072f1054c6cfedd9ac32af14a120",
      "tree": "6aceeb8772c8ba088b387d7fdcdc771899788fce",
      "parents": [
        "3d3380d4fda43924171bc0866746c85634952c99"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 13:18:02 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 18:40:19 2011 +0400"
      },
      "message": "ospfd: CVE-2011-3325 part 2 (OSPF pkt type segv)\n\nThis vulnerability (CERT-FI #514838) was reported by CROSS project.\n\nThe error is reproducible only when ospfd debugging is enabled:\n  * debug ospf packet all\n  * debug ospf zebra\nWhen incoming packet header type field is set to 0x0a, ospfd will crash.\n\n* ospf_packet.c\n  * ospf_verify_header(): add type field check\n  * ospf_read(): perform input checks early\n"
    },
    {
      "commit": "3d3380d4fda43924171bc0866746c85634952c99",
      "tree": "d0239c64344f723900544824ba5979c96d55422f",
      "parents": [
        "af143a26ef96ba9be7b9c0b151b7605e1c2c74cd"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 13:17:52 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 18:40:07 2011 +0400"
      },
      "message": "ospfd: CVE-2011-3325 part 1 (OSPF header underrun)\n\nThis vulnerability (CERT-FI #514838) was reported by CROSS project.\n\nWhen only 14 first bytes of a Hello packet is delivered, ospfd crashes.\n\n* ospf_packet.c\n  * ospf_read(): add size check\n"
    },
    {
      "commit": "af143a26ef96ba9be7b9c0b151b7605e1c2c74cd",
      "tree": "52d988f2eb1ccaddec7a725ee30766593dfc1f6b",
      "parents": [
        "a1afbc6e1d56b06409de5e8d7d984d565817fd96"
      ],
      "author": {
        "name": "CROSS",
        "email": "info@codenomicon.com",
        "time": "Mon Sep 26 13:17:21 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 18:39:52 2011 +0400"
      },
      "message": "ospfd: CVE-2011-3326 (uknown LSA type segfault)\n\nThis vulnerability (CERT-FI #514837) was reported by CROSS project.\nThey have also suggested a fix to the problem, which was found\nacceptable.\n\nQuagga ospfd does not seem to handle unknown LSA types in a Link State\nUpdate message correctly. If LSA type is something else than one\nsupported\nby Quagga, the default handling of unknown types leads to an error.\n\n* ospf_flood.c\n  * ospf_flood(): check return value of ospf_lsa_install()\n"
    },
    {
      "commit": "a1afbc6e1d56b06409de5e8d7d984d565817fd96",
      "tree": "a45dfa998baab938e8373950b7bf4c7af60f6dc1",
      "parents": [
        "3eca6f099d5a3aac0b66dfbf98fd8be84ea426b7"
      ],
      "author": {
        "name": "CROSS",
        "email": "info@codenomicon.com",
        "time": "Mon Sep 26 13:17:05 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 18:39:37 2011 +0400"
      },
      "message": "bgpd: CVE-2011-3327 (ext. comm. buffer overflow)\n\nThis vulnerability (CERT-FI #513254) was reported by CROSS project.\nThey have also suggested a fix to the problem, which was found\nacceptable.\n\nThe problem occurs when bgpd receives an UPDATE message containing\n255 unknown AS_PATH attributes in Path Attribute Extended Communities.\nThis causes a buffer overlow in bgpd.\n\n* bgp_ecommunity.c\n  * ecommunity_ecom2str(): perform size check earlier\n"
    },
    {
      "commit": "3eca6f099d5a3aac0b66dfbf98fd8be84ea426b7",
      "tree": "40bf575b7d85ba8869f022a07e3313708a8093bf",
      "parents": [
        "c347846e4f917339fd7b4c122a343f93ef621c40"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 22 12:48:14 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Sep 25 18:18:25 2011 +0400"
      },
      "message": "bgpd: improve NEXT_HOP attribute checks (BZ#680)\n\n* lib/prefix.h\n  * IPV4_CLASS_DE(): new helper macro\n* bgp_attr.c\n  * bgp_attr_nexthop(): add check for \"partial\" bit, refresh flag error\n    reporting, explain meaning of RFC4271 section 6.3 and implement it\n"
    },
    {
      "commit": "c347846e4f917339fd7b4c122a343f93ef621c40",
      "tree": "eb04d7554766c2609a0492d64bb8f01173d8bebc",
      "parents": [
        "614da2bf57d7df965d41869d1aa8321210d6560e"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Wed Sep 21 23:13:22 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Sep 25 18:17:50 2011 +0400"
      },
      "message": "bgpd: don\u0027t be confused by \"unspecific\" subcode in the NOTIFY message.\n\n* bgp_debug.c (bgp_notify_open_msg, bgp_notify_update_msg,\n  bgp_notify_cease_msg, bgp_notify_capability_msg): add messages for\n  \"unspecific\" subcode.\n"
    },
    {
      "commit": "614da2bf57d7df965d41869d1aa8321210d6560e",
      "tree": "c0d70c117af2681a7c56baaeb2001d20aeda5982",
      "parents": [
        "ca22cc4cc397dac8f3bf57eca516360085d44214"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Wed Sep 21 17:41:41 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Sep 25 18:17:39 2011 +0400"
      },
      "message": "lib: provide more information in case of failed LOOKUP.\n\n* log.[ch]\n  * mes_lookup: add a parameter with the name of the message list, print\n    the name in case of failure.\n  * LOOKUP macro: pass the name of the message list.\n"
    },
    {
      "commit": "ca22cc4cc397dac8f3bf57eca516360085d44214",
      "tree": "a3b604beff5f6bedfc128e49c8f48f6d713aeb11",
      "parents": [
        "7d25f1883f9a391ad16ec57c06ae71df616b00d8"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 20 14:43:50 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Sep 25 18:17:24 2011 +0400"
      },
      "message": "bgpd: check ATOMIC_AGGREGATE attr flags (BZ#678)\n\n* bgp_attr.c\n  * bgp_attr_atomic(): accept extra argument, add checks for\n    \"optional\", \"transitive\" and \"partial\" bits, log each error\n    condition independently\n  * bgp_attr_parse(): provide extra argument\n"
    },
    {
      "commit": "7d25f1883f9a391ad16ec57c06ae71df616b00d8",
      "tree": "52e431c8280265b93d404f8693c59509e8a5f401",
      "parents": [
        "d0511bd9b09a6952f18bf3a926de759638a5cda7"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 20 10:54:25 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Sep 25 18:17:03 2011 +0400"
      },
      "message": "bgpd: check MULTI_EXIT_DISC attr flags (BZ#677)\n\n* bgp_attr.c\n  * bgp_attr_med(): add checks for \"optional\", \"transitive\" and\n    \"partial\" bits, log each error condition independently\n"
    },
    {
      "commit": "d0511bd9b09a6952f18bf3a926de759638a5cda7",
      "tree": "6c6cd56ce610dad94c17e71b89780c5c914385b0",
      "parents": [
        "dda8187956966b2cc977855603a5beeeada3cc76"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 19 16:30:47 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Sep 25 18:16:51 2011 +0400"
      },
      "message": "bgpd: check LOCAL_PREF attribute flags (BZ#674)\n\n* bgp_attr.c\n  * bgp_attr_local_pref(): accept extra argument, add checks for\n    \"optional\" and \"transitive\" bits, log each error condition\n    independently\n  * bgp_attr_parse(): provide extra argument\n"
    },
    {
      "commit": "dda8187956966b2cc977855603a5beeeada3cc76",
      "tree": "1235a3c869d5f5916ef67fa3854982c0e35c6a8a",
      "parents": [
        "254f118d8671926f946a0b7221f89794cf4bf732"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Thu Sep 15 20:00:33 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Sep 25 18:16:27 2011 +0400"
      },
      "message": "configure: test for glibc backtrace even without glibc.\n\nOther platform may have compatible facilities.\n"
    }
  ],
  "next": "254f118d8671926f946a0b7221f89794cf4bf732"
}
