)]}'
{
  "log": [
    {
      "commit": "2fbd6f5a62f654c59aec5e1707c859d6ed79c6b0",
      "tree": "cc70afc89da575cdb739d7e1723632e7b75b654c",
      "parents": [
        "1727d2e2b939c8670d0f0e0d1a0e5eb0a8be2135"
      ],
      "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 19:42:05 2011 +0400"
      },
      "message": "bgpd: remove unused function bgp_bind_address\n\nbgp_bind_address is replaced with sockunion_bind.\n"
    },
    {
      "commit": "1727d2e2b939c8670d0f0e0d1a0e5eb0a8be2135",
      "tree": "3bdfda661f96113d61eae25059608d468a8ea4cc",
      "parents": [
        "17e52061bacec93e84324b23382e5ec61e1f16d0"
      ],
      "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 19:41:59 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": "17e52061bacec93e84324b23382e5ec61e1f16d0",
      "tree": "bae9f3f8f8e89b531e5df167d33427627ea709fc",
      "parents": [
        "681b84e8f50a09ff871d9e6536e8d8afb115ce13"
      ],
      "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 19:41:51 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": "681b84e8f50a09ff871d9e6536e8d8afb115ce13",
      "tree": "6821d2c2472934073cc86ff332de7339105af4de",
      "parents": [
        "3cf1288bfd855e339fe2283c79a3ef3746e61737"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Tue Jul 12 17:53:33 2011 +0400"
      },
      "committer": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Thu Nov 17 21:50:47 2011 +0400"
      },
      "message": "ospf6d: check MTU with message header size in mind\n\n* ospf6_message.c: (ospf6_packet_max): new function, return maximum IPv6\n  payload on an interface; (ospf6_hello_send, ospf6_dbdesc_send,\n  ospf6_dbdesc_send_newone, ospf6_lsreq_send, ospf6_lsupdate_send_neighbor,\n  ospf6_lsupdate_send_interface, ospf6_lsack_send_neighbor,\n  ospf6_lsack_send_interface): compare message size with the maximum\n  payload instead of the MTU.\n"
    },
    {
      "commit": "3cf1288bfd855e339fe2283c79a3ef3746e61737",
      "tree": "bbc6600328c20861512c4e26928ffce4cf9c5878",
      "parents": [
        "5c88f19d5b166c6afa8a9b8501badb785afa553b"
      ],
      "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:35:11 2011 +0400"
      },
      "message": "bgpd: fix \"nexthop-local unchanged\" (BZ#350)\n"
    },
    {
      "commit": "5c88f19d5b166c6afa8a9b8501badb785afa553b",
      "tree": "98261a13d284bb6b3fe0028a3d17e50c763fc324",
      "parents": [
        "4de148e5d6f6f7885b2c0952a236a3bc3ec36250"
      ],
      "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 20:57:02 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": "4de148e5d6f6f7885b2c0952a236a3bc3ec36250",
      "tree": "5360772467235934673f5b7e3c039424bcc61329",
      "parents": [
        "1758dbaa3b69bd6e95fb501c40f044f751557e76"
      ],
      "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 20:50:48 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": "1758dbaa3b69bd6e95fb501c40f044f751557e76",
      "tree": "7021223a0aea1c052e831f1bc044bc3c49ad09ab",
      "parents": [
        "267551879e57a5c590f9e12b3a7d6985b28b3dac"
      ],
      "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:45:17 2011 +0400"
      },
      "message": "bgpd: revised fix to --dryrun (BZ#622)\n"
    },
    {
      "commit": "267551879e57a5c590f9e12b3a7d6985b28b3dac",
      "tree": "aeb0f826f3ea541de99d0988794f1454ab3b9e35",
      "parents": [
        "b4cd2421518be7e18046e974e25b9bf4cf769bd2"
      ],
      "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": "Wed Oct 26 19:38:49 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): provide\n  required arguments to bgp_attr_malformed()\n"
    },
    {
      "commit": "b4cd2421518be7e18046e974e25b9bf4cf769bd2",
      "tree": "43a94afcebc8b878040f771de5f0e542bb6bc440",
      "parents": [
        "bbb04bf3bb03be27fbf17b6b3ee903b168201cf0"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 22 22:32:26 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 22 22:32:26 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": "bbb04bf3bb03be27fbf17b6b3ee903b168201cf0",
      "tree": "8db00c5a6db16254146e064bfb350f536cc90e02",
      "parents": [
        "abc384f85b622471ef5ba6c86acc540856da05cf"
      ],
      "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:28:01 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": "abc384f85b622471ef5ba6c86acc540856da05cf",
      "tree": "5bb225c251c3667b12e7b5cb08dd1455dde5b072",
      "parents": [
        "565b828dc00cafd477dd69ce15f0f551ece67710"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Oct 18 13:55:07 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Oct 18 13:55:07 2011 +0400"
      },
      "message": "bgpd: use bgp_attr_malformed()\n\nSome of the recent attribute flags/length checks copied from QRE use\nbgp_notify_send_with_data() directly, but master branch assumes\nusing bgp_attr_malformed().\n\n* bgp_attr.c\n  * bgp_attr_med()\n  * bgp_attr_local_pref()\n  * bgp_attr_atomic()\n  * bgp_attr_originator_id()\n  * bgp_attr_cluster_list()\n  * bgp_mp_reach_parse()\n  * bgp_mp_unreach_parse()\n"
    },
    {
      "commit": "565b828dc00cafd477dd69ce15f0f551ece67710",
      "tree": "e1d5c6c38f89b6d022339df14c9b5224de7c0ca9",
      "parents": [
        "f8627ff1ef7642c8ee4758b1f046ef0d166dfbec"
      ],
      "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 19:07:02 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": "f8627ff1ef7642c8ee4758b1f046ef0d166dfbec",
      "tree": "60fa75de6532991858f718aebfcabc19a745f081",
      "parents": [
        "0b83044b91d7ea50824cfd803d77213b9ff38ed9"
      ],
      "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 19:03:56 2011 +0400"
      },
      "message": "bgpd: fix spelling of CLUSTER_LIST\n"
    },
    {
      "commit": "0b83044b91d7ea50824cfd803d77213b9ff38ed9",
      "tree": "a18f7841fa039c1236ef5ea4770c0f0a5b81d3b1",
      "parents": [
        "d595b566bca1de8b026c469a31ae50f2aee11781"
      ],
      "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 19:03:31 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": "d595b566bca1de8b026c469a31ae50f2aee11781",
      "tree": "1572e36687c8666c8f0c8519addc94f9d2c886af",
      "parents": [
        "566b36ebf903fd873c974ba34c19097d8fb48ce4"
      ],
      "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 19:02:55 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": "566b36ebf903fd873c974ba34c19097d8fb48ce4",
      "tree": "8205c1387ca019b608e745049c6ebee0c32d6cff",
      "parents": [
        "ad61af67b548fa787d4c1da0024ba30f8c3b19c8"
      ],
      "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 19:00:02 2011 +0400"
      },
      "message": "vtysh: [build] silence preprocessor errors in some cases\n\n* extract.pl.in: use configured CPPFLAGS in cpp invocation.\n"
    },
    {
      "commit": "ad61af67b548fa787d4c1da0024ba30f8c3b19c8",
      "tree": "3d0cdb58217702b51b9bdac6e8b11e4a68d0b54d",
      "parents": [
        "6d0732c8abad7ace509d033a41814ea03a3a1b16"
      ],
      "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:59:26 2011 +0400"
      },
      "message": "lib: compile even without IPV6_TCLASS\n"
    },
    {
      "commit": "6d0732c8abad7ace509d033a41814ea03a3a1b16",
      "tree": "d20c537d0e16cb5245047d8ecd9990201a4fb3b6",
      "parents": [
        "a5b228b3792937c93b589938a2545b9311b7938e"
      ],
      "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:59:19 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": "a5b228b3792937c93b589938a2545b9311b7938e",
      "tree": "59c22c60531b0fe2a4ceeb0d8cc1070af1312a9d",
      "parents": [
        "21cc76941abc60b5b5ece0a71ace0b69d6f4572c"
      ],
      "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": "Wed Oct 12 13:59:09 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": "21cc76941abc60b5b5ece0a71ace0b69d6f4572c",
      "tree": "a81b361e0771c7a3bcddebad35158edad00f219f",
      "parents": [
        "a624cae2b210a0e81c80c473f86b73e2be169962"
      ],
      "author": {
        "name": "Peter Pentchev",
        "email": "roam@ringlet.net",
        "time": "Mon Sep 12 16:30:31 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 08 20:17:21 2011 +0400"
      },
      "message": "bgpd: fix parsing of graceful restart cap. (#663)\n\n\"While setting up a testbed, I ran across a little problem in the\nparsing of the \"graceful restart\" BGP capability that resulted in\nQuagga not actually activating it for the peer in question - when\nthe peer sent a single AFI/SAFI block.\"\n\n* bgp_open.c\n  * bgp_capability_restart(): actually process the last AFI/SAFI block\n"
    },
    {
      "commit": "a624cae2b210a0e81c80c473f86b73e2be169962",
      "tree": "b229e5943b651405d5b2277ecb5fbcdc1a747354",
      "parents": [
        "b84b62dfb6ee9daf46c9e4c2c372b179f33be44c"
      ],
      "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": "Sat Oct 08 14:18:00 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\nConflicts:\n\n\tbgpd/bgp_attr.c\n"
    },
    {
      "commit": "b84b62dfb6ee9daf46c9e4c2c372b179f33be44c",
      "tree": "052307acd804e98d224bc4d3246f16c9d02fbad9",
      "parents": [
        "2d42e68aa032ed2f11471aee444935918d35c8bb"
      ],
      "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": "Fri Sep 30 14:11:13 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\nConflicts:\n\n\tbgpd/bgp_attr.c\n"
    },
    {
      "commit": "2d42e68aa032ed2f11471aee444935918d35c8bb",
      "tree": "a58e0b96bdb43fb6ed66a94afc0d44b737ca4c89",
      "parents": [
        "214bcaa13e092d9fff8f233e62ba28ca7eefbc43"
      ],
      "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": "Fri Sep 30 10:32:02 2011 +0400"
      },
      "message": "bgpd: ignore 4 bits of attribute flags byte\n"
    },
    {
      "commit": "214bcaa13e092d9fff8f233e62ba28ca7eefbc43",
      "tree": "eb429544fd7d6727f35cd3fc24b6426a6d577eb3",
      "parents": [
        "bc3443ebf032b5fcc9e0ccb94641e4e899cd17d8"
      ],
      "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": "Fri Sep 30 10:30:36 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\nConflicts:\n\n\tbgpd/bgp_attr.c\n"
    },
    {
      "commit": "bc3443ebf032b5fcc9e0ccb94641e4e899cd17d8",
      "tree": "06d6c8b912958c989ba59e45349e17a3f8d973ac",
      "parents": [
        "0a28130d35bbba47faf47bf9451ba0eb195fcbb7"
      ],
      "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": "Fri Sep 30 01:24:35 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\nConflicts:\n\n\tbgpd/bgp_attr.c\n"
    },
    {
      "commit": "0a28130d35bbba47faf47bf9451ba0eb195fcbb7",
      "tree": "94bcda95ba12a50a81aa7ea893d809ba237b2262",
      "parents": [
        "42e6d745d105018a9469dabad65bd4cf942dcf3c"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Jul 17 19:33:21 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 22:19:08 2011 +0400"
      },
      "message": "bgpd: rename SAFI 3 according to RFC4760\n\n- SAFI value 3 is reserved.  It was assigned by RFC 2858 for a use\n  that was never fully implemented, so it is deprecated by this\n  document.\n\n* zebra.h: rename macro\n* bgp_fsm.c: (bgp_graceful_restart_timer_expire,\n  bgp_graceful_stale_timer_expire, bgp_stop, bgp_establish): update\n* bgpd.c: (peer_nsf_stop): update\n* bgp_open.c: (bgp_capability_vty_out): SAFI 3 isn\u0027t a recognized case\n  any more\n"
    },
    {
      "commit": "42e6d745d105018a9469dabad65bd4cf942dcf3c",
      "tree": "9e653fe2e44d2e3f8510fcb8451931e3b6153ebc",
      "parents": [
        "beb1ca03bfe707d6d1fcad21fcbaa63af49c82f8"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Jul 14 12:36:19 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 22:14:11 2011 +0400"
      },
      "message": "bgpd: more SAFI fixes\n\n(with resolved conflict in bgpd/bgp_packet.c)\n\nTwo macros resolving to the same integer constant broke a case block and\na more thorough merge of BGP_SAFI_VPNV4 and BGP_SAFI_VPNV6 was\nperformed.\n\n* bgpd.h: MPLS-labeled VPN SAFI is AFI-independent, switch to single\n* macro\n* bgp_capability_test.c: update test data\n* bgp_mp_attr_test.c: idem\n* bgp_route.c: (bgp_maximum_prefix_overflow, bgp_table_stats_vty) update\n  macro and check conditions (where appropriate)\n* bgp_packet.c: (bgp_route_refresh_send, bgp_capability_send,\n  bgp_update_receive, bgp_route_refresh_receive): idem\n* bgp_open.c: (bgp_capability_vty_out, bgp_afi_safi_valid_indices,\n  bgp_open_capability_orf, bgp_open_capability): idem\n* bgp_attr.c: (bgp_mp_reach_parse, bgp_packet_attribute,\n  bgp_packet_withdraw): idem\n"
    },
    {
      "commit": "beb1ca03bfe707d6d1fcad21fcbaa63af49c82f8",
      "tree": "78ffcd5ec7e9bb80e92c108f5ca0268ec6cff262",
      "parents": [
        "48f99b0c2bfed8d3880732d188e1d5964f575ee4"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Jul 13 16:53:13 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 22:07:54 2011 +0400"
      },
      "message": "bgpd: fix SAFI for for MPLS labeled VPN-IPv6\n\n* bgpd.h: change value of BGP_SAFI_VPNV6 to 128 (RFC4659, BZ#659)\n* bgp_route.c: (bgp_table_stats_vty) fix length argument to strncmp()\n"
    },
    {
      "commit": "48f99b0c2bfed8d3880732d188e1d5964f575ee4",
      "tree": "deff24887c5590909e625b1b00dd6496fad6190d",
      "parents": [
        "3aad46bdaa0a2700e43252904b9481750c8cb45d"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 16:55:23 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 16:55:23 2011 +0400"
      },
      "message": "release: 0.99.20\n"
    },
    {
      "commit": "3aad46bdaa0a2700e43252904b9481750c8cb45d",
      "tree": "2f98b0538dc45324910201ee445460a68f6e5389",
      "parents": [
        "52ecbbea36439758590f0c31a0ec147fec041d7a"
      ],
      "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:29 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": "52ecbbea36439758590f0c31a0ec147fec041d7a",
      "tree": "7bbf3187dbace4a7e51f45826920f1cc6138beae",
      "parents": [
        "4b4e07d2d83bdbe46ccf4b4a2fd2aa3842370098"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 15 15:40:47 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:46:14 2011 +0400"
      },
      "message": "ospfd: remove unused macro\n"
    },
    {
      "commit": "4b4e07d2d83bdbe46ccf4b4a2fd2aa3842370098",
      "tree": "dde2abd7124f6d89e7d4695482f1abb8f4a0a447",
      "parents": [
        "51abba509a0997f05427a8acbe74dd07d8d6026e"
      ],
      "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": "Tue Sep 27 21:46:04 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": "51abba509a0997f05427a8acbe74dd07d8d6026e",
      "tree": "c9f19fc4eaf2aa01d96bde18b9ec09f1b92724e4",
      "parents": [
        "eda3529e9cf163ccbcf47c889b16fd707d2aed76"
      ],
      "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": "Tue Sep 27 21:45:53 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": "eda3529e9cf163ccbcf47c889b16fd707d2aed76",
      "tree": "60f295c940d7c17a799db549ab20f41a5707d3bc",
      "parents": [
        "bcc6c59ac5e9c1e8cf9693b4768f6b8cad5e559a"
      ],
      "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": "Tue Sep 27 21:45:37 2011 +0400"
      },
      "message": "configure: test for glibc backtrace even without glibc.\n\nOther platform may have compatible facilities.\n"
    },
    {
      "commit": "bcc6c59ac5e9c1e8cf9693b4768f6b8cad5e559a",
      "tree": "110dc04ffd64f9a259015231981165e92a225502",
      "parents": [
        "e6ec1c3648cf3304c1a36341487659aadb9dce95"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Sep 10 23:29:19 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:43:27 2011 +0400"
      },
      "message": "ospfd: spelling\n"
    },
    {
      "commit": "e6ec1c3648cf3304c1a36341487659aadb9dce95",
      "tree": "de881144ddce2cdf272a36b0c8e94030b4379b90",
      "parents": [
        "7ccf5e59c13773097dd551b8a7384b99b7f46927"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Sep 10 21:50:53 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:43:15 2011 +0400"
      },
      "message": "bgpd: spelling\n"
    },
    {
      "commit": "7ccf5e59c13773097dd551b8a7384b99b7f46927",
      "tree": "205ee10231ebf765cf3097c5578c78c0d302a268",
      "parents": [
        "171c9a996dd75a8b9aa596288c974f9ac0fbc5d6"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Sep 10 16:53:30 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:43:03 2011 +0400"
      },
      "message": "bgpd: spelling\n"
    },
    {
      "commit": "171c9a996dd75a8b9aa596288c974f9ac0fbc5d6",
      "tree": "61c7aae794eee1d93fb4bafaca4e73c16bc3b947",
      "parents": [
        "7dbeea9d4f43fda84971d0bcffb6da88228dab53"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Sep 10 16:40:23 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:42:52 2011 +0400"
      },
      "message": "ospfd: use existing macro for consistency\n"
    },
    {
      "commit": "7dbeea9d4f43fda84971d0bcffb6da88228dab53",
      "tree": "b54b34743454a755fb719a98c4a1b1023170bf00",
      "parents": [
        "87362ceb5d493f12e8c937b533190a1996d2df22"
      ],
      "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": "Tue Sep 27 21:42:14 2011 +0400"
      },
      "message": "zebra: add missing includes\n"
    },
    {
      "commit": "87362ceb5d493f12e8c937b533190a1996d2df22",
      "tree": "80e844bd2ace54bdfb8db4914f5e4171ffbcb6d4",
      "parents": [
        "05b7709dad416146376cc4f41db0c866b3738f5b"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Aug 27 22:19:34 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:41:33 2011 +0400"
      },
      "message": "ospf6d: address more trivial compiler warnings\n\n* ospf6_main.c: include required headers\n* ospf6_asbr.h: idem\n* ospf6_spf.c\n  * ospf6_spf_install(): remove unused variables\n"
    },
    {
      "commit": "05b7709dad416146376cc4f41db0c866b3738f5b",
      "tree": "bf17ceea5864f3bd4d6beb0a5dff4ba5b718b339",
      "parents": [
        "10d04cdb4198b69073ea0cdd4c26a64d6697b33e"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Aug 23 11:36:27 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:41:00 2011 +0400"
      },
      "message": "ospfd: sizing macros cleanup\n\n* ospf_spf.c\n  * ROUTER_LSA_TOS_SIZE: prepend OSPF_ and move to ospf_lsa.h\n  * ROUTER_LSA_MIN_SIZE: replace with existing OSPF_ROUTER_LSA_LINK_SIZE\n"
    },
    {
      "commit": "10d04cdb4198b69073ea0cdd4c26a64d6697b33e",
      "tree": "f5b06a3be2a574d92bd7b4c0c90815cffedcdc43",
      "parents": [
        "ee7e75d38bdb139b10f3a1d35209758409db7fb5"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Mon Aug 22 11:39:35 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:39:12 2011 +0400"
      },
      "message": "lib: use \"protocol-independed API\" from RFC3678, if that is available\n\n(This commit is based on the patch from BZ#420, and should fix that bug.)\n\n* configure.ac: detect availability of that API\n* sockopt.c (setsockopt_ipv4_multicast): use it for join/leave IPv4\n  multicast groups\n"
    },
    {
      "commit": "ee7e75d38bdb139b10f3a1d35209758409db7fb5",
      "tree": "72b7a2a72da13a867ea21f85eb431cfafbf17e8b",
      "parents": [
        "e0afa6f44a77a89a543a03284c9f63af7b057c08"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Fri Aug 19 23:00:30 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:38:16 2011 +0400"
      },
      "message": "lib: futher simplification of setsockopt_ipv4_multicast()\n\n* sockopt.c (setsockopt_ipv4_multicast): check for wrong optname with\n  assert(), rather than return an error.\n"
    },
    {
      "commit": "e0afa6f44a77a89a543a03284c9f63af7b057c08",
      "tree": "cbda897188f7280c72f822b47802d0e641c9cdb8",
      "parents": [
        "69bf3a39931ce61a92fb04d8888b4655fd5620a2"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Fri Aug 19 22:25:23 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:37:46 2011 +0400"
      },
      "message": "lib: fix omission in the previous commit to lib/sockopt.c\n\n* sockopt.c (setsockopt_ipv4_multicast_if): fix missed line in\n  the previous commit.\n"
    },
    {
      "commit": "69bf3a39931ce61a92fb04d8888b4655fd5620a2",
      "tree": "e49dae20b1dbc0d1ee37121cd45c75d94290bdd1",
      "parents": [
        "ea4021984f9eec3f2a85551ae0822e1dff0ed2bc"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Thu Aug 18 20:22:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:37:35 2011 +0400"
      },
      "message": "lib: simplify interface of setsockopt_multicast_ipv4().\n\n* sockopt.[ch] (setsockopt_ipv4_multicast): ifindex is now mandatory (all\n  non-ancient OSes can use it anyway), and if_addr parameter (the address\n  of the interface) is now gone. (setsockopt_ipv4_multicast_if):\n  IP_MULTICAST_IF processing moved to this new function\n\n* ospf_network.c (ospf_if_add_allspfrouters, ospf_if_drop_allspfrouters,\n  ospf_if_add_alldrouters, ospf_if_drop_alldrouters, ospf_if_ipmulticast),\n  rip_interface.c (ipv4_multicast_join, ipv4_multicast_leave,\n  rip_interface_new): adapt to the new interface\n"
    },
    {
      "commit": "ea4021984f9eec3f2a85551ae0822e1dff0ed2bc",
      "tree": "e820bbe620cb4fe093e657f2e2ca84b1ac528e06",
      "parents": [
        "3a8c3dd7d0331c2da7c14aa33c48d512300d6e09"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Aug 19 16:27:16 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:36:54 2011 +0400"
      },
      "message": "ospf6d: spelling\n"
    },
    {
      "commit": "3a8c3dd7d0331c2da7c14aa33c48d512300d6e09",
      "tree": "03f2853696fd9e7a7cb8a4449f6e056ae0a57c87",
      "parents": [
        "b82cdeb18f8e68feb797f0b4780ded672635b545"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Aug 01 21:59:04 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:34:48 2011 +0400"
      },
      "message": "lib: remove unused variable\n\n* sockopt.c (getsockopt_ifindex): \"ifindex\" was never used\n"
    },
    {
      "commit": "b82cdeb18f8e68feb797f0b4780ded672635b545",
      "tree": "474532dc205c0b648c5690dc5c2efba6aa8f12ef",
      "parents": [
        "6159928d28285938356a3d48d2477fbdb7890e61"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Aug 01 16:52:03 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:34:26 2011 +0400"
      },
      "message": "delete CVS keywords\n"
    },
    {
      "commit": "6159928d28285938356a3d48d2477fbdb7890e61",
      "tree": "6739469d0e2b57b87ad9e92815fa22719e9fd268",
      "parents": [
        "9eba2ada189597fcb39c806bbbed414fecf20623"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Jul 15 00:24:15 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:33:16 2011 +0400"
      },
      "message": "configure: fix OpenPAM detection\n"
    },
    {
      "commit": "9eba2ada189597fcb39c806bbbed414fecf20623",
      "tree": "59a59ae323a245579c24880d90332070538304aa",
      "parents": [
        "2cfadf09a810e3b660a47a1eb898d0d7c8813c08"
      ],
      "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": "Tue Sep 27 21:21:27 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": "2cfadf09a810e3b660a47a1eb898d0d7c8813c08",
      "tree": "135d9df7af95fed3ffaaa380a22c4a93897f5263",
      "parents": [
        "0ea968d21f194b3960a73aa47a5b06f160632907"
      ],
      "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": "Tue Sep 27 21:19:44 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": "0ea968d21f194b3960a73aa47a5b06f160632907",
      "tree": "61f7a046e2a1124f55d8ce9134984371cfd64ab1",
      "parents": [
        "1212dc1961e81d5ef6e576b854e979ea29284f51"
      ],
      "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": "Tue Sep 27 21:15:56 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": "1212dc1961e81d5ef6e576b854e979ea29284f51",
      "tree": "bc27c64ae0463c1787d641f2946b3e64f24126d3",
      "parents": [
        "d68ab1009f42c5ed62f7c6b0b5700f5f0469a35b"
      ],
      "author": {
        "name": "heasley",
        "email": "heas@shrubbery.net",
        "time": "Mon Sep 12 13:27:52 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:07:07 2011 +0400"
      },
      "message": "bgpd: add useful notification logs (BZ#616)\n\n* bgp_packet.c\n  * bgp_notify_send_with_data(): add calls to zlog_info()\n"
    },
    {
      "commit": "d68ab1009f42c5ed62f7c6b0b5700f5f0469a35b",
      "tree": "155fac87e799841406a0785115a0e0fa4c5a0709",
      "parents": [
        "5fdaa04e635fdef7deca9bdfe1be4b60ec90add6"
      ],
      "author": {
        "name": "heasley",
        "email": "heas@shrubbery.net",
        "time": "Tue Jul 12 20:09:18 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:05:30 2011 +0400"
      },
      "message": "bgpd: consistent log msg format (BZ#565)\n"
    },
    {
      "commit": "5fdaa04e635fdef7deca9bdfe1be4b60ec90add6",
      "tree": "77e76c6bf353685dc9c13698b79b16f68aca3232",
      "parents": [
        "75d044d234d1826db729f9ca580c966a028dbfc3"
      ],
      "author": {
        "name": "Jon Andersson",
        "email": "jonirucoeith@gmail.com",
        "time": "Tue Sep 13 15:47:14 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:02:41 2011 +0400"
      },
      "message": "ospf6d: add lost lines to area config block\n\n* ospf6_area.c\n  * ospf6_area_config_write(): write filter-list, import-list and\n    export-list lines\n"
    },
    {
      "commit": "75d044d234d1826db729f9ca580c966a028dbfc3",
      "tree": "42a43d0c27bc08dee5d2e77b627f42474c6bfbab",
      "parents": [
        "2b43bf231c3004efaef96f2b85d0e0f4cf6a1ea1"
      ],
      "author": {
        "name": "Christian Hammers",
        "email": "ch@debian.org",
        "time": "Mon Sep 12 14:23:05 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:02:26 2011 +0400"
      },
      "message": "ospf6d: fix crash on filter-list handling (BZ#530)\n\nThis essentially merges the fix available from Debian build of Quagga.\n\n* ospf6_area.c\n  * area_filter_list(): use correct argv indices\n  * no_area_filter_list(): idem\n"
    },
    {
      "commit": "2b43bf231c3004efaef96f2b85d0e0f4cf6a1ea1",
      "tree": "d98048f9f306b7fda9fc5cb3a0e51de0dcc42715",
      "parents": [
        "306ca83213aabe069f1645d1708bbc4f278e2a63"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Jul 14 16:30:08 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 20:59:46 2011 +0400"
      },
      "message": "configure: fix FreeBSD header detection (BZ#408)\n\nThis change is based on Xavier Beaudouin\u0027s patch (which fixes detection\nof 3 config.h macros on FreeBSD without any impact to Linux build of\nQuagga) and FreeBSD port patch (which fixes 5 config.h macros, but\nbreaks the Linux build), it fixes 5 macros and works for both FreeBSD 8\nand Linux.\n"
    },
    {
      "commit": "306ca83213aabe069f1645d1708bbc4f278e2a63",
      "tree": "bede2e33f238ff1d68fe16ee527e1b997e58a1b2",
      "parents": [
        "89980759568ec5f5f50c225ef25a00938fc86c72"
      ],
      "author": {
        "name": "Peter Szilagyi",
        "email": "peszilagyi@gmail.com",
        "time": "Tue Sep 13 17:37:06 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 20:50:17 2011 +0400"
      },
      "message": "isisd: include hash.h, not hash.c\n"
    },
    {
      "commit": "89980759568ec5f5f50c225ef25a00938fc86c72",
      "tree": "dec49d657e301443a28d275bbb6695af0f90aee4",
      "parents": [
        "5574999e598eee290c7e43a2b3a7aafd27be0ee0"
      ],
      "author": {
        "name": "Fritz Reichmann",
        "email": "fritz@reichmann.nl",
        "time": "Wed Sep 14 20:46:57 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 20:49:26 2011 +0400"
      },
      "message": "isisd: raise hello rate for DIS (BZ#539)\n\n* isis_pdu.c: Divide hello interval by three, depending if we are DIS or\n  not.\n"
    },
    {
      "commit": "5574999e598eee290c7e43a2b3a7aafd27be0ee0",
      "tree": "0d3b6cdf55031385cec680045edcd1315c6e8812",
      "parents": [
        "b69442d456fa6a00716c5a0684395b04f5794cd6"
      ],
      "author": {
        "name": "Fritz Reichmann",
        "email": "fritz@reichmann.nl",
        "time": "Wed Sep 14 19:31:51 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 20:48:43 2011 +0400"
      },
      "message": "isisd: fix crash on \"no router isis\" (BZ#536)\n\nThe crash is due to threads accessing data that gets destroyed\nduring the removal of the configuration.\n\n* isis_circuit.c: Destroy adjacencies to stop adjacency expiry thread.\n  Stop PSNP threads.\n* isisd.c: Change state of circuit back to INIT and reassign the\n  circuit structure to isis-\u003einit_circ_list rather than destroying\n  the circuit data structure. Stop SPF threads. Stop LSP generation\n  threads.\n* isisd.h: Add pointers to LSP threads into area structure in order to\n  stop them in isisd.c\n* isis_lsp.c: Store pointer to LSP thread in area structure.\n* isis_pdu.c: Stop PDU generation for a circuit with a removed area.\n* isis_pfpacket.c: Stop processing received PDUs for a circuit with a\n  removed area.\n"
    },
    {
      "commit": "b69442d456fa6a00716c5a0684395b04f5794cd6",
      "tree": "149ba75d630f31ce4018e3b6673a23f286b08d5b",
      "parents": [
        "83d1614952faf100a0a1bacaa0a1b3f70a013c9f"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Sep 13 17:15:51 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 20:47:18 2011 +0400"
      },
      "message": "configure: dismiss libutil.h\n\nRecent versions of libc on Linux (Debian Testing) create lots of\ncompile warnings about direct usage of libutil.h\n"
    },
    {
      "commit": "83d1614952faf100a0a1bacaa0a1b3f70a013c9f",
      "tree": "3b1ffb4fbd385e6f5ee2277ed24015ce2305f5db",
      "parents": [
        "3c9cfcdebf680c1d2c0e6b69cb4e11885a049e05"
      ],
      "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": "Tue Sep 27 20:46:25 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": "3c9cfcdebf680c1d2c0e6b69cb4e11885a049e05",
      "tree": "c374a8a8d26ed9481e78828b96f7480574521197",
      "parents": [
        "c31e5726bece392e1d20081c712482e9954fec66"
      ],
      "author": {
        "name": "Alexandre Chappuis",
        "email": "alc@open.ch",
        "time": "Tue Aug 02 17:37:39 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 20:45:22 2011 +0400"
      },
      "message": "ospfd: remove useless RFC1583 check\n\n* ospf_route.c: Function ospf_asbr_route_cmp is called uniquely from\n  ospf_route_cmp() when the flag OSPF_RFC1583_COMPATIBLE is not set.\n  Therefore, the check that the flag is set doesn\u0027t make sense at all\n  and it can consequently be removed without doing any harm.\n\nSigned-off-by: Alexandre Chappuis \u003calc@open.ch\u003e\nSigned-off-by: Roman Hoog Antink \u003crha@open.ch\u003e\n"
    },
    {
      "commit": "c31e5726bece392e1d20081c712482e9954fec66",
      "tree": "60877e3fe755a4d9f147ceb57954557469e4eec1",
      "parents": [
        "37075da75df0451fec4109d440c1a52705222fc6"
      ],
      "author": {
        "name": "Alexandre Chappuis",
        "email": "alc@open.ch",
        "time": "Sun Sep 11 16:54:11 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 20:42:26 2011 +0400"
      },
      "message": "doc: BGP route-flap dampening\n"
    },
    {
      "commit": "37075da75df0451fec4109d440c1a52705222fc6",
      "tree": "f1536ef128a81e0c6a76e97aa91ff9e20b15a6ef",
      "parents": [
        "0998342b5f79b2441d4beade4bb8ac304de86741"
      ],
      "author": {
        "name": "Alexandre Chappuis",
        "email": "alc@open.ch",
        "time": "Tue Sep 13 16:33:45 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 20:39:19 2011 +0400"
      },
      "message": "doc: add missing word\n\n* ospfd.texi: Adjust meaning of the rfc1583compatibility option in\n  order to match the RFC specification and the actual source code.\n"
    },
    {
      "commit": "0998342b5f79b2441d4beade4bb8ac304de86741",
      "tree": "f8b35bd4cba2e19a1be832a102eff484f84472c5",
      "parents": [
        "abc7ef44ca05493500865ce81f7b84f5c4eb6594"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 18:50:06 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 18:50:06 2011 +0400"
      },
      "message": "release: 0.99.19\n"
    },
    {
      "commit": "abc7ef44ca05493500865ce81f7b84f5c4eb6594",
      "tree": "35504952c627e93203df81ebd5c96023879df00b",
      "parents": [
        "09395e2a0e93b2cf4258cb1de91887948796bb68"
      ],
      "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:47:16 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": "09395e2a0e93b2cf4258cb1de91887948796bb68",
      "tree": "771622102161a372b45f730bd48ab23e69676350",
      "parents": [
        "717750433839762d23a5f8d88fe0b4d57c8d490a"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 13:18:36 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Sep 26 18:47:06 2011 +0400"
      },
      "message": "ospf6d: CVE-2011-3324 (DD LSA assertion)\n\nThis vulnerability (CERT-FI #514839) was reported by CROSS project.\n\nWhen Database Description LSA header list contains trailing zero octets,\nospf6d tries to process this data as an LSA header. This triggers an\nassertion in the code and ospf6d shuts down.\n\n* ospf6_lsa.c\n  * ospf6_lsa_is_changed(): handle header-only argument(s)\n    appropriately, do not treat LSA length underrun as a fatal error.\n"
    },
    {
      "commit": "717750433839762d23a5f8d88fe0b4d57c8d490a",
      "tree": "aea292ef6dab658197d1df6c9a5bf3f3925013ad",
      "parents": [
        "61ab0301606053192f45c188bc48afc837518770"
      ],
      "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:46:54 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": "61ab0301606053192f45c188bc48afc837518770",
      "tree": "b7d9037390cd7beefcd7c1c54d2573ef92af80cd",
      "parents": [
        "6b161fc12a15aba8824c84d1eb38e529aaf70769"
      ],
      "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:46:42 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": "6b161fc12a15aba8824c84d1eb38e529aaf70769",
      "tree": "abd6c391a491495c70203420e5d91dbcdf282383",
      "parents": [
        "94431dbc753171b48b5c6806af97fd690813b00a"
      ],
      "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:46:28 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": "94431dbc753171b48b5c6806af97fd690813b00a",
      "tree": "463b917f9f80236be01e4502863b34ae2d52b53d",
      "parents": [
        "a0bf59bcac8b40c3f83e7f2e7f65087ece6acfc7"
      ],
      "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:46:16 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": "a0bf59bcac8b40c3f83e7f2e7f65087ece6acfc7",
      "tree": "e1352b965caa07bdc181f8d30f3e107deb97bc60",
      "parents": [
        "ef95122eb214f80700fc79b4a95686eadfea859b"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Aug 20 23:12:00 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Aug 27 21:20:40 2011 +0400"
      },
      "message": "ospf6d: add missing include\n\nTwo extern declarations in ospf6_abr.h are based on struct ospf6_route,\nwhich may not be available at the time ospf6_abr.h is included. This may\nlead to warnings after including ospf6_abr.h just for the structures\ndefined in it.\n"
    },
    {
      "commit": "ef95122eb214f80700fc79b4a95686eadfea859b",
      "tree": "1aa3631ef8d9e0a5036124c4029d68259df774b5",
      "parents": [
        "d91f35bc90ec4e5c8513cd7ac1f6fd00c5113c27"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Aug 20 20:58:15 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Aug 27 21:18:51 2011 +0400"
      },
      "message": "ospf6d: move named constants to ospf6d.h\n"
    },
    {
      "commit": "d91f35bc90ec4e5c8513cd7ac1f6fd00c5113c27",
      "tree": "29499885dfe8f2f16a0fb49bd36f400fe7194265",
      "parents": [
        "538cb284864c17de66152a5236db4cd80e3e7639"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Aug 19 22:24:27 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Aug 27 21:18:38 2011 +0400"
      },
      "message": "ospf6d: justify some ABR debug code\n\n* ospf6_abr.c\n  * ospf6_abr_examin_summary(): only fill \"buf\" when it is used\n"
    },
    {
      "commit": "538cb284864c17de66152a5236db4cd80e3e7639",
      "tree": "d74ad1f719ca611e13bef19aea129f0653551fff",
      "parents": [
        "036a6e6cf63a1046ab260d090719b305069288eb",
        "8ced4e82e6f417b13f4bfc09018fc51fd31058e2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jul 29 18:21:50 2011 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jul 29 18:21:50 2011 +0100"
      },
      "message": "Merge remote-tracking branch \u0027origin/master\u0027\n"
    },
    {
      "commit": "036a6e6cf63a1046ab260d090719b305069288eb",
      "tree": "638b920464ce82b188e32013f768d6f5d7b1a6dd",
      "parents": [
        "8dd1a8daae0b15065d54c46f82d44d21aa7a2320",
        "b881c7074bb698aeb1b099175b325734fc6e44d2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jul 29 18:16:25 2011 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jul 29 18:16:25 2011 +0100"
      },
      "message": "Merge branch \u0027attr-errors\u0027\n\nContains BGP fixes:\n\n- set extcommunity crash: tihs patch tries to make the refcounting more robust\n  but does not fully solve the problem, sadly.\n- BGP attribute error handling: Little testing.\n"
    },
    {
      "commit": "8ced4e82e6f417b13f4bfc09018fc51fd31058e2",
      "tree": "9d744d6f95473a0b8d49338ee502dfb765e00f5f",
      "parents": [
        "7e924e11a965fc1053a16945ace10c9bd1d868f8",
        "0150c9c969cfbacb28fa9e05c8bf7f65448d9914"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Wed Jul 13 13:20:06 2011 -0400"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Wed Jul 13 13:20:06 2011 -0400"
      },
      "message": "Merge remote-tracking branch \u0027polymorf/master\u0027\n"
    },
    {
      "commit": "7e924e11a965fc1053a16945ace10c9bd1d868f8",
      "tree": "45bda95c903de5b9426c9da5a676ab2a10efbb95",
      "parents": [
        "fe0a1a45c31f4ce8c15041cd213de4b6ac9f76a1"
      ],
      "author": {
        "name": "Roman Hoog Antink",
        "email": "rha@open.ch",
        "time": "Mon Jun 27 17:24:21 2011 +0200"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Tue Jun 28 15:05:35 2011 -0400"
      },
      "message": "fix typo\n"
    },
    {
      "commit": "fe0a1a45c31f4ce8c15041cd213de4b6ac9f76a1",
      "tree": "f9780d7dd0d0529fe0dd3d6b814e2b1349f0f741",
      "parents": [
        "d42306d98fa327eb0ea6094cc6d6ae9202a07475"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Tue Jun 28 15:05:05 2011 -0400"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Tue Jun 28 15:05:05 2011 -0400"
      },
      "message": "Omit --opaque-lsa from build (now default).\n"
    },
    {
      "commit": "d42306d98fa327eb0ea6094cc6d6ae9202a07475",
      "tree": "00b8b426615925a6f3b17592cfe8e8032463aafc",
      "parents": [
        "8dd1a8daae0b15065d54c46f82d44d21aa7a2320"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Fri Apr 22 19:27:54 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Apr 22 19:27:54 2011 +0400"
      },
      "message": "ospf6d: copy \"mtu-ignore\" option from ospfd\n\n\"mtu-ignore\" is an option ospfd used to mimic from the vendor\u0027s\nimplementation, now ospf6d will also implement it.\n\n* ospf6_interface.h: extend ospf6_interface structure by one flag\n* ospf6_interface.c: (ipv6_ospf6_mtu_ignore, no_ipv6_ospf6_mtu_ignore):\n  new declarations; (ospf6_interface_create): show initial value for\n  consistency; (ospf6_interface_show): print flag status\n* ospf6_message.c: (ospf6_dbdesc_recv): consider interface-specific flag\n  when checking MTU\n"
    },
    {
      "commit": "8dd1a8daae0b15065d54c46f82d44d21aa7a2320",
      "tree": "b14e8ed07f1a6ee97de84262bb85cd0a50f9c250",
      "parents": [
        "fdbc8e77c88f751924299d0bc752371d5cc31116"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Apr 11 16:33:20 2011 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Apr 13 15:13:33 2011 +0100"
      },
      "message": "zebra: trivial warning fix\n\n* zebra_routemap.c: (route_set_src) get rid of the dummy family variable.\n"
    },
    {
      "commit": "fdbc8e77c88f751924299d0bc752371d5cc31116",
      "tree": "8f8a5b59c222552b14f3fb79efeb52ff83d1c8b1",
      "parents": [
        "072990e22e66ed9a15261b70658dc4a8801975b5"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Apr 11 16:31:43 2011 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Apr 13 15:13:33 2011 +0100"
      },
      "message": "bgpd: trivial format / warning fixes\n\n* bgp_aspath.c: (assegments_parse) just bail early if length doesn\u0027t match\n  and fix the formatting.\n* bgp_network.c: add include needed for set_nonblocking\n* bgp_packet.c: formatting\n"
    },
    {
      "commit": "072990e22e66ed9a15261b70658dc4a8801975b5",
      "tree": "6fd4e1dcfb4d076a5c14ab148da71679b06a6322",
      "parents": [
        "8f6f78a761fc66f9668b68810a1bac032227b2d1"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Apr 11 16:28:16 2011 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Apr 13 15:13:33 2011 +0100"
      },
      "message": "ospf: Fix OSPF API and ospf-te LSA refreshers to match recent API change\n\n* ospf_apiserver.{c,h}: (ospf_apiserver_lsa_refresher) refreshers must now\n  return the refreshed LSA.\n* ospf_te.{c,h}: (ospf_mpls_te_lsa_refresh) ditto\n* ospf_api.c: trivial compiler warning fix\n"
    },
    {
      "commit": "8f6f78a761fc66f9668b68810a1bac032227b2d1",
      "tree": "cbf84ef77631ac75e4f34d9b037663ced9ba5ef6",
      "parents": [
        "57c4f4f45b7a3c327f274272afe43893e10008e1",
        "597de5a01a59759db05e00b0a1d4e0b158cf2c9e"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Apr 04 11:18:39 2011 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Apr 04 11:18:39 2011 +0100"
      },
      "message": "Fix authorship of previous ospf6d commit\n"
    },
    {
      "commit": "57c4f4f45b7a3c327f274272afe43893e10008e1",
      "tree": "cbf84ef77631ac75e4f34d9b037663ced9ba5ef6",
      "parents": [
        "604a9b43dd68a087ca5a4ac2cae19eb17591ba5f"
      ],
      "author": {
        "name": "Ingo Flaschberger",
        "email": "if@xip.at",
        "time": "Mon Apr 04 11:17:45 2011 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Apr 04 11:17:45 2011 +0100"
      },
      "message": "ospf6d: fix crash if zebra_interface_state_read can\u0027t find interface\n\n* ospf6_zebra.c: (ospf6_zebra_if_state_update) zebra_interface_state_read\n  may return NULL, if it can\u0027t find an interface, deal with it.\n"
    },
    {
      "commit": "597de5a01a59759db05e00b0a1d4e0b158cf2c9e",
      "tree": "cbf84ef77631ac75e4f34d9b037663ced9ba5ef6",
      "parents": [
        "604a9b43dd68a087ca5a4ac2cae19eb17591ba5f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Apr 04 10:39:15 2011 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Apr 04 10:39:15 2011 +0100"
      },
      "message": "ospf6d: fix crash if zebra_interface_state_read can\u0027t find interface\n\n* ospf6_zebra.c: (ospf6_zebra_if_state_update) zebra_interface_state_read\n  may return NULL, if it can\u0027t find an interface, deal with it.\n"
    },
    {
      "commit": "604a9b43dd68a087ca5a4ac2cae19eb17591ba5f",
      "tree": "060a9bc1987cb04cc530c91923367ab5498dd914",
      "parents": [
        "4a2035fd71990848017237838fe11bc1aeb41641"
      ],
      "author": {
        "name": "Michael Lambert",
        "email": "lambert@psc.edu",
        "time": "Mon Sep 13 11:48:11 2010 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Apr 01 15:58:39 2011 +0100"
      },
      "message": "bgpd: fix memory leak when deleting a community\n\n* bgp_routemap.c: (route_set_community_delete) When deleting a\n  community in a route-map the old community was being orphaned.  Like\n  the description of the same code in route_set_community, this is a\n  hack, not a true fix.\n"
    },
    {
      "commit": "4a2035fd71990848017237838fe11bc1aeb41641",
      "tree": "6cc2abfc5b6e3dd51e71a42cae122c9b935a2f4f",
      "parents": [
        "7015b8a24965ce144296a791be816dc9bbeb477a"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Apr 01 15:58:27 2011 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Apr 01 15:58:27 2011 +0100"
      },
      "message": "Revert \"bgpd: \"Intern\" communities in route maps\"\n\nThis reverts commit 2c9fd7e07283b8904ef20030c9dadb032e999b12.\n"
    },
    {
      "commit": "7015b8a24965ce144296a791be816dc9bbeb477a",
      "tree": "668c3aa1d8757a269fff2c6e9aeb9e15a84fde05",
      "parents": [
        "74bd8495d0fc3c24e5fba09164093bd6d997771e"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Mar 30 14:30:20 2011 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Mar 30 14:30:20 2011 +0100"
      },
      "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": "74bd8495d0fc3c24e5fba09164093bd6d997771e",
      "tree": "14ad3ebed3b524fe517d2805eb7a7f921a1f0d10",
      "parents": [
        "31d0f1b3c64903d56a47caebf887067d222c7cd6",
        "0d51c7ef830c3930bb0d7207d93f26bcb8cee455"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Mar 29 14:25:56 2011 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Mar 29 14:25:56 2011 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/quagga/master\u0027\n"
    },
    {
      "commit": "31d0f1b3c64903d56a47caebf887067d222c7cd6",
      "tree": "7a7d90f0517bc2816fc0279f79b5d7a9ab195095",
      "parents": [
        "f5a4827db60545309d0ee378b85acac56cf7837a"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Mar 29 14:18:49 2011 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Mar 29 14:18:49 2011 +0100"
      },
      "message": "bgpd: Fix merge error in jhash commit\n\n* bgp_attr.c: (attrhash_key_make) 98e30f should have changed jhash2 to jhash.\n\n  These kinds of merge errors would be reduced and life would be easier if\n  people would submit fully-formed fixes that could be chucked directly into\n  git-am.\n"
    },
    {
      "commit": "f5a4827db60545309d0ee378b85acac56cf7837a",
      "tree": "a28de765a209f772d1b95b78a357ddf17318844a",
      "parents": [
        "d876bdf4a84f40ac3f9bec8d5040858b3725db3e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Mar 24 17:30:21 2011 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Mar 28 11:27:41 2011 +0100"
      },
      "message": "bgpd: refine the setting up of GTSM\n\n* bgpd.h: Add error code for setting GTSM on iBGP\n* bgpd.c: (peer_ttl_security_hops_set) use previous error code and signal\n  incompatibility of GTSM+iBGP to vty.\n  Consider the session state when setting GTSM, and reset Open/Active peers\n  to let them pick up new TTL from start.\n"
    },
    {
      "commit": "0d51c7ef830c3930bb0d7207d93f26bcb8cee455",
      "tree": "5e0f8395940b03349c07bcab44b4e6d91d35c22b",
      "parents": [
        "d876bdf4a84f40ac3f9bec8d5040858b3725db3e"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Thu Mar 24 10:19:43 2011 -0400"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@ir.bbn.com",
        "time": "Thu Mar 24 10:19:43 2011 -0400"
      },
      "message": "build: treat opaque-lsa default correctly for ospfapi\n\nIn deciding whether to default ospfapi to on or off, use the same rule\nfor opaque-lsa as earlier: !\u003d no rather than \u003d yes, so that not having\nset it implies yes.\n"
    },
    {
      "commit": "d876bdf4a84f40ac3f9bec8d5040858b3725db3e",
      "tree": "9eec834951f91dcf626af620903113630ec179d3",
      "parents": [
        "89b6d1f8e2759cc38bc768067abe3a296d93f454"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Aug 05 10:26:27 2010 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Mar 24 11:18:41 2011 +0000"
      },
      "message": "lib: Add support for IPv6 ttl security\n\n* sockunion.c: (sockopt_minttl) Add IPv6 support for min hop count.\n  The kernel support is Linux kernel 2.6.35 or later.\n"
    },
    {
      "commit": "89b6d1f8e2759cc38bc768067abe3a296d93f454",
      "tree": "ebf4d27f1d93558bba8d0bf6f1022182f7066404",
      "parents": [
        "fa411a212b55bba650d68fd0456686f3e47b7395"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Mar 24 10:51:59 2011 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Mar 24 10:51:59 2011 +0000"
      },
      "message": "bgpd: Cleanups \u0026 fixes for minttl / GTSM\n\n* bgp_vty.c: (peer_ebgp_multihop_{un,}set_vty) tail-call cleanup.\n  ({no_,}neighbor_ttl_security) ditto.\n* bgpd.c: (peer_ttl_security_hops_set) Peer group checks and TTL set only\n  need to be done on transition.\n* sockunion.c: (sockopt_minttl) remove always-on debug and improve readability.\n"
    },
    {
      "commit": "fa411a212b55bba650d68fd0456686f3e47b7395",
      "tree": "4d7ef846c2cbc154631a5901747b3384854d497c",
      "parents": [
        "db07ad7358cb5e26358326332629ffb658f5747a"
      ],
      "author": {
        "name": "Nick Hilliard",
        "email": "nick@inex.ie",
        "time": "Wed Mar 23 15:33:17 2011 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Mar 23 15:33:17 2011 +0000"
      },
      "message": "bgpd: RFC 5082 Generalized TTL Security Mechanism support\n\n* bgpd: Add support for RFC 5082 GTSM, which allows the TTL field to be used\n  to verify that incoming packets have been sent from neighbours no more\n  than X IP hops away. In other words, this allows packets that were sent from\n  further away (i.e. not by the neighbour with known distance, and so possibly\n  a miscreant) to be filtered out.\n* lib/sockunion.{c,h}: (sockopt_minttl) new function, to set a minimum TTL\n  using the IP_MINTTL socket opt.\n* bgpd.h: (BGP_ERR_NO_EBGP_MULTIHOP_WITH_TTLHACK) define for command\n  error for minttl.\n  (struct peer) add a config variable, to store the configured minttl.\n  (peer_ttl_security_hops_{set,unset}) configuration handlers\n* bgpd.c: (peer_group_get) init gtsm_hops\n  (peer_ebgp_multihop_{un,}set) check for conflicts with GTSM. Multihop and\n  GTSM can\u0027t both be active for a peer at the same time.\n  (peer_ttl_security_hops_set) set minttl, taking care to avoid conflicts with\n  ebgp_multihop.\n  (bgp_config_write_peer) write out minttl as \"neighbor .. ttl-security hops X\".\n* bgp_vty.c: (bgp_vty_return) message for\n  BGP_ERR_NO_EBGP_MULTIHOP_WITH_TTLHACK\n  (peer_ebgp_multihop_{un,}set_vty)\n* bgp_network.c: (bgp_accept) set minttl on accepted sockets if appropriate.\n  (bgp_connect) ditto for outbound.\n"
    },
    {
      "commit": "db07ad7358cb5e26358326332629ffb658f5747a",
      "tree": "c8663d225fddb5ce7f6bfaef7b1cdc797932cca4",
      "parents": [
        "3bde17f1af635c9ca19df0b3516cb8ad0376e6d3",
        "fc95186c30884c96543aecfc56cfe5b08774525b"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Mar 23 10:38:45 2011 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Mar 23 10:38:45 2011 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://code.quagga.net/var/git/quagga\n"
    },
    {
      "commit": "3bde17f1af635c9ca19df0b3516cb8ad0376e6d3",
      "tree": "a963755de10136b6d8670bee5d577a49c0f0f984",
      "parents": [
        "98e30f5db6dea65a5d6a176065cd0b60eb7bb001"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Mar 23 10:30:30 2011 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Mar 23 10:30:30 2011 +0000"
      },
      "message": "bgpd: Fix compile failure if IPv6 build was disabled.\n\n* bgp_route.c: ({no_,}ipv6_bgp_network_ttl_cmd) depends on ipv6_bgp_network\n  which is HAVE_IPV6, so these should be too.\n  (bgp_route_init) and the installs should be similarly ifdefed\n"
    }
  ],
  "next": "fc95186c30884c96543aecfc56cfe5b08774525b"
}
