)]}'
{
  "log": [
    {
      "commit": "d6af701250915fdc7449500d9191f4eb2e6cfa4d",
      "tree": "315538b5d6d7a9e3351dcf80c23bc0ab12e2cf77",
      "parents": [
        "96a0a39261b5a848228f096a1a1836fa12ed3e69"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Mon Aug 22 11:39:35 2011 +0400"
      },
      "committer": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Mon Aug 22 11:39:35 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": "96a0a39261b5a848228f096a1a1836fa12ed3e69",
      "tree": "45080b3a9b31271c27bbcf0801371a822a7f2831",
      "parents": [
        "b62987450e4d4e0dd18a2766aff220d42174042b"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Fri Aug 19 23:00:30 2011 +0400"
      },
      "committer": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Mon Aug 22 11:28:19 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": "87d29037b3f390cfb9d4e9e2aef4f0b49f98d557",
      "tree": "0123fe8371a8428f0c56e6bb7c76dc8faa038a0d",
      "parents": [
        "9504a6ea39a68523733a8abb147da62deae061a9"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Fri Aug 19 22:25:23 2011 +0400"
      },
      "committer": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Fri Aug 19 22:40:08 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": "bf510e9bc06b55ae9d9c1d6ed67152b94e80977e",
      "tree": "4466103c8ad05307cbd88c7509c8ff03976f260f",
      "parents": [
        "9fa6be78ecbbda17be20b8d2bc4fdde915e33d7e"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Thu Aug 18 20:22:17 2011 +0400"
      },
      "committer": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Fri Aug 19 22:02:17 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": "c69f91be67896e7e68adb7da4b5b9c5f6013f1a2",
      "tree": "00016eca2ba088f3472149381fdea6b3199750ce",
      "parents": [
        "cbfbf2f07bd90f48e268907a597652af6d2e019d"
      ],
      "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": "Mon Aug 01 21:59:04 2011 +0400"
      },
      "message": "lib: remove unused variable\n\n* sockopt.c (getsockopt_ifindex): \"ifindex\" was never used\n"
    },
    {
      "commit": "2b35ae41c2c5d39801c943fa740c72fc15613141",
      "tree": "b72600ce7970f5a62a344fd7fed3f5e53779b7a2",
      "parents": [
        "b60668d092f1778395b6c10b406059b8cbf235b8"
      ],
      "author": {
        "name": "Chris Caputo",
        "email": "ccaputo@alt.net",
        "time": "Tue Jun 23 05:34:29 2009 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 23 14:21:40 2009 +0100"
      },
      "message": "Fixes to RFC2385/MD5 BGP\n\n* bgpd/bgp_network.c: Fix MD5 listen in IPv4 version of bgp_socket() by\n  adding listen socket to listen_sockets list so that MD5 passwords can\n  get set.\n* lib/sockopt.c: (sockopt_tcp_signature) Fix bogus \"% Error while applying\n  TCP-Sig to session(s)\" / \"can\u0027t set TCP_MD5SIG option\" startup error\n  messages by not returning error when there isn\u0027t one.\n"
    },
    {
      "commit": "e5862a2df2b5f65b0c050987c5f145836e0b75b3",
      "tree": "20a10d219e87f9ac98d858cad263e9d1760d1ebb",
      "parents": [
        "66a11e76d4a8ee18c4e79c06d25814b9aa94e45d"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Thu Feb 19 23:01:41 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:27 2009 +0100"
      },
      "message": "[lib] sockopt_tcp_signature: sin6 requires HAVE_IPV6\n\nAn external user was building on system without IPv6 and\nit wouldn\u0027t work.\n"
    },
    {
      "commit": "3453a7122c1d585ad789ed0f63deb90cc5e89fae",
      "tree": "688446217623080afedffc7f074c8cba58b9b5aa",
      "parents": [
        "10819ecee3ced786162b68310cf172aacda18857"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 14:21:02 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 14:21:02 2009 +0100"
      },
      "message": "[bgpd] Add support for the old Linux 2.4, TCP_MD5_AUTH RFC2385 patch\n\n* configure.ac: Add a --enable-linux24-tcp-md5 argument, to compile in\n  support for the old TCP-MD5 patch for Linux 2.4 systems.  This overrides\n  auto-detection of TCP-MD5 supported by the target system.\n* lib/sockopt.c: (sockopt_tcp_signature) add in a variant for the old\n  Linux 2.4, TCP_MD5_AUTH variant of TCP-MD5 support, conditional\n  on the previous configure arg.\n"
    },
    {
      "commit": "f5612dd382d9c0f4089b08ec164c25a8082d9f89",
      "tree": "6766dccbdf57cc0b936d622c8172ae7a9f8cfc6e",
      "parents": [
        "6ac29a51075def99217a4ab1015635db3b3e83ed"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Aug 15 14:05:08 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:58 2008 +0100"
      },
      "message": "[lib] Fix mistake in tcp-md5sig commit which broke compile on BSD\n\n2008-08-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* lib/sockopt.c: (sockopt_tcp_signature) ifdef\u0027ing hid variable\n\t  declaration for HAVE_DECL_TCP_MD5SIG \u0026\u0026 !GNU_LINUX, breaking\n\t  compile - fix.\n"
    },
    {
      "commit": "1423c809cc4ddc2e013ba6264c49a11e5719c6f2",
      "tree": "db0389e7de020bbcb9fd78d45417b0842a6adb0b",
      "parents": [
        "89d9fa301e146193093ff876f96b3612dc390bbb"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Thu Aug 14 17:59:25 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:58 2008 +0100"
      },
      "message": "[lib] mes_lookup string lookup table argument should be marked const\n\n2008-08-14 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* lib/log.{c,h}: struct message argument should point to const\n\t* */*.c: adjust to suit,\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "0df7c91f048f2116610d6bdfce3ab6cad1981802",
      "tree": "18390aa845054b757fae86dde49b907ee7f14908",
      "parents": [
        "f04b0e6bb8c1339243717b156880d7e24c84c951"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Jul 21 21:02:49 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Jul 21 21:02:49 2008 +0000"
      },
      "message": "[bgpd] TCP-MD5: password vty configuration and initial Linux support\n\n2008-07-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_packet.c: (bgp_open_receive) fix warning in a zlog call\n\t* bgp_vty.c: (bgp_vty_return) add return code\n\t* bgpd.c: (bgp_master_init) setup the socket list.\n\t* bgp_network.c: Remove the dual IPv4/6 socket thing for now, which\n\t  was implemented by Michael, until such time as its clear its\n\t  required for Linux (see sockopt comments). IPv6 support, including\n\t  IPv4 sessions on AF_INET6 sockets, therefore is broken, and the\n\t  \u0027-l 0.0.0.0\u0027 arguments would need to be given to bgpd to make\n\t  things work here.\n\n2008-07-21 Michael H. Warfield \u003cmhw@wittsend.com\u003e\n           YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n\t   Tomohiko Kusuda \u003ckusuda@inetcore.com\u003e\n           Leigh Brown \u003cleigh@solinno.co.uk\u003e\n\n\t* bgp_network.c: (bgp_md5_set_one) shim between libzebra tcp-md5\n\t  sockopt and bgpd.\n\t  (bgp_md5_set_socket) Helper for bgp_connect\n\t  (bgp_md5_set) setup TCP-MD5SIG for the given peer.\n\t  (bgp_connect) call out to bgp_md5_set_socket for the outgoing\n\t  connect socket.\n\t  (bgp_socket) save references to the listen sockets, needed if\n\t  TCP-MD5SIG is applied later or changed.\n\t* bgp_vty.c: (*neighbor_password_cmd) New \u0027neighbor ... password\u0027\n\t  commands.\n\t* bgpd.c: (peer_{new,delete) manage TCP-MD5 password\n\t  (peer_group2peer_config_copy) inherit TCP-MD5 password\n\t  (peer_password_{un,}set) orchestrate the whole add/remove of TCP-MD5\n\t  passwords: applying checks, stopping peers, and trying to return\n\t  errors to UI, etc.\n\t  (bgp_config_write_peer) save password.\n\t  Fix missing newline in writeout of neighbor ... port.\n\n2008-07-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* sockunion.c: ifdef out various places that converted\n\t  v4mapped sockets to pure v4. Doesn\u0027t seem necessary at all,\n\t  presumably a workaround for now historical inet_ntop bugs (?)\n\n2008-07-21 Michael H. Warfield \u003cmhw@wittsend.com\u003e\n           YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n\n\t* sockopt.{c,h}: (sockopt_tcp_signature) Add TCP-MD5SIG support.\n"
    },
    {
      "commit": "b7fe4141123c6fc26fffec68d0db62ecf474c074",
      "tree": "78f2cde951e92198b00dea6ed048d41a499f71fb",
      "parents": [
        "1ba27564f3852083839bfa1f91889cb46c780f2f"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Tue Aug 21 16:32:56 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Tue Aug 21 16:32:56 2007 +0000"
      },
      "message": "Bug #362 is fixed now.\n"
    },
    {
      "commit": "97cabcf760b8343512b5646e60cc228b8dc1350a",
      "tree": "4aab9c935540e5eafb6f8fba8c4163e305cb809c",
      "parents": [
        "0b8c4f1d811170224e467b305137ac94861daee6"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Jul 06 17:00:24 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Jul 06 17:00:24 2007 +0000"
      },
      "message": "[lib] Add comments regarding setsockopt_multicast_ipv4 arguments.\n\n2007-07-06 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* sockopt.{c,h}: (setsockopt_multicast_ipv4) Add some comments about\n\t  the arguments.\n"
    },
    {
      "commit": "c188c37caaf589a17b22e9889e63ec96f2f57106",
      "tree": "018d7f024a08c986a5558425ede05590518c9a23",
      "parents": [
        "f9ad937f537df92bf3119686eee97db7b7176674"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Oct 21 02:57:41 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Oct 21 02:57:41 2005 +0000"
      },
      "message": "2005-10-20 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* sockopt.c: (setsockopt_multicast_ipv4) If IP_ADD_MEMBERSHIP\n\t  fails with errno equal to EADDRINUSE, then issue an info\n\t  message and try IP_DROP_MEMBERSHIP followed by IP_ADD_MEMBERSHIP.\n"
    },
    {
      "commit": "42c981994adcf7fb2e1c2bea170cc5f196d5a1d7",
      "tree": "ba2bae75f527d0a034cb42ee3177db9f47802fda",
      "parents": [
        "4dadc291e56195886fd047690ded9686f4e013fa"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 07 02:22:51 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat May 07 02:22:51 2005 +0000"
      },
      "message": "2005-05-07 Yar Tikhiy \u003cyar@comp.chem.msu.su\u003e\n\n\t* configure.ac: Check for OSes which support passing ifindex in\n\t  struct ip_mreq.\n\t* lib/sockopt.c: Add support for BSD style ifindex in ip_mreq.\n\t* ospfd/ospf_network.c: Log ifindex on multicast membership leave/join\n\t  events.\n"
    },
    {
      "commit": "b99760ab51abf8c4c9a1f89dab0c1630a6768ff7",
      "tree": "daaf8cabb567c5ff1a01368fa1382d8257b56854",
      "parents": [
        "73a7dea305b146febb8e57176295689d6a900f1d"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jan 04 16:24:43 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Jan 04 16:24:43 2005 +0000"
      },
      "message": "2005-01-04 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* configure.ac: Added test for broken CMSG_FIRSTHDR macro\n\t  (relevant for Solaris 8 and unpatched Solaris 9, don\u0027t know\n\t  whether other platforms are affected).\n\t* zebra.h: Define ZCMSG_FIRSTHDR appropriately based on whether\n\t  config.h indicates HAVE_BROKEN_CMSG_FIRSTHDR (as determined\n\t  by the configure test program).\n\t* sockopt.c: (getsockopt_cmsg_data) Use ZCMSG_FIRSTHDR instead\n\t  of CMSG_FIRSTHDR.\n\t* rtadv.c: (rtadv_recv_packet,rtadv_send_packet) Use ZCMSG_FIRSTHDR\n\t  instead of CMSG_FIRSTHDR.\n\t* ripd.c: (rip_recvmsg) Use ZCMSG_FIRSTHDR instead of CMSG_FIRSTHDR.\n\t* ripngd.c: (ripng_recv_packet) Use ZCMSG_FIRSTHDR instead of\n\t  CMSG_FIRSTHDR.\n"
    },
    {
      "commit": "cc49eb5a5f970b7405762d3f8a2def179e0022b4",
      "tree": "dbd4d9278b3c2dad27f1908662fab533568a2504",
      "parents": [
        "17eaa728aae282e373b98a8d193c5c48c24e1a0f"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 30 13:50:32 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 30 13:50:32 2004 +0000"
      },
      "message": "Add comment explaining about limit of 20 joined groups on a socket.\n"
    },
    {
      "commit": "d44debedf53b85c989b72fe7c6924ffc1e7e625b",
      "tree": "4c527145158b49674cffb714fb571fd7d9a92b24",
      "parents": [
        "4660687a38034d60296fbc9e82aae772011c407f"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Dec 29 20:06:23 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Dec 29 20:06:23 2004 +0000"
      },
      "message": "2004-12-29  Greg Troxel  \u003cgdt@poblano.ir.bbn.com\u003e\n\n\t* sockopt.c (getsockopt_ipv4_ifindex): Document calling\n\tconvention.  Beef up comments.  Handle the case where the cmsghdr\n\thas a zero controllen, or more specifically when the wanted option\n\tis not present.  This is needed for Solaris 8, and in general for\n\tany platform for which configure finds a method and it can fail.\n\tMark some changes with XXX to be cleaned up post 0.98.\n"
    },
    {
      "commit": "1d69fdf645d8434e8e1488f8bf0c73613df09da9",
      "tree": "c3612df88e349556c1570d7d2ce0b37ce590ea5d",
      "parents": [
        "3cade26fea2febf99780288d31d0bfe7e1b16ef1"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Dec 29 18:53:30 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Wed Dec 29 18:53:30 2004 +0000"
      },
      "message": "2004-12-29  Greg Troxel  \u003cgdt@poblano.ir.bbn.com\u003e\n\n\t* sockopt.c (getsockopt_ipv4_ifindex): Return 0 when passed a NULL\n\t  cmsghdr pointer.\n\nI believe this will avoid ospfd crashing on Solaris 8, which seems to\ndefine IP_RECVIF but not actually implement it.\n"
    },
    {
      "commit": "1d75c8c3b28db50bc53771d5fac37b809d37b614",
      "tree": "530ea967460e0f9978572b85e15666617a4b3f45",
      "parents": [
        "af04bd7c102c3fc1a9c2e98337b0ab1fa824d080"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Dec 28 21:43:17 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Tue Dec 28 21:43:17 2004 +0000"
      },
      "message": "2004-12-28 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* sockopt.c: (setsockopt_ipv4_ifindex) Improve error message.\n\t  When neither IP_PKTINFO nor IP_RECVIF is defined, make return value\n\t  deterministic (-1).\n"
    },
    {
      "commit": "6099b3b56956322567323c11fd698b2328c6826b",
      "tree": "fa537bd0eaa9f7d824f39445eabc928db59050ca",
      "parents": [
        "ae5e24d8678f1e3a60dde58d3382c5ba73d6bb27"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Nov 20 02:06:59 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Nov 20 02:06:59 2004 +0000"
      },
      "message": "2004-11-19 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* global: Replace strerror with safe_strerror.  And vtysh/vtysh.c\n\t  needs to include \"log.h\" to pick up the declaration.\n"
    },
    {
      "commit": "ae5e24d8678f1e3a60dde58d3382c5ba73d6bb27",
      "tree": "fdc23e828988dd7a0c53941fe22a8fd9daa5f4cc",
      "parents": [
        "ca35976927190883368ef3bd32bbf9f174575bd6"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Nov 19 23:43:10 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Nov 19 23:43:10 2004 +0000"
      },
      "message": "Fix previous change to use new function safe_strerror instead of strerror.\n"
    },
    {
      "commit": "ff29bb31505b485e8ffa561e21d075d28ac7d5e7",
      "tree": "20fa0d8bea625c82f5e347b3fadecc93a1112ef0",
      "parents": [
        "48577196af0cd83272cb885ac018d19e30058653"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Nov 19 18:29:22 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Fri Nov 19 18:29:22 2004 +0000"
      },
      "message": "2004-11-19 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* sockopt.c: (setsockopt_so_recvbuf) Stop error message from being\n\t  printed every time.\n"
    },
    {
      "commit": "e064d6d9c3c3319c62fe4fac3e4e5f7a1941a98c",
      "tree": "838df17a38028d8f4afe496f0a2335a0f6945c21",
      "parents": [
        "a2b1ecd29f8bd4b01d5287ff862e156b2ffc30b3"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 01 08:59:21 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 01 08:59:21 2004 +0000"
      },
      "message": "2004-11-01 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* sockopt.c: (setsockopt_pktinfo) remove, its unused.\n"
    },
    {
      "commit": "23b9c61e5bb60d557b07dc1d7c4d7614f63dc009",
      "tree": "5780bf6f095f8eb65b8e698fa6193df88cdc66fd",
      "parents": [
        "7d9c6e511597ee76d42bede782c9ddb9e1f83389"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 22 11:51:57 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 22 11:51:57 2004 +0000"
      },
      "message": "2004-10-22 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * sockopt.c: (setsockopt_pktinfo) unexported\n\t* sockopt.h: Cleanup SOCKOPT_CMSG defines a bit. Add a throwaway\n          define for SOPT_SIZE_CMSG_IFINDEX_IPV4 for systems which have\n          neither IP_RECVIF nor IP_PKTINFO (eg openbsd).\n"
    },
    {
      "commit": "7d9c6e511597ee76d42bede782c9ddb9e1f83389",
      "tree": "2c23062b129595c15e48153a2508500e93b2829e",
      "parents": [
        "c49ad8f1b0775c1b35ea9bf75f44f3eca105d786"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 22 10:54:39 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Oct 22 10:54:39 2004 +0000"
      },
      "message": "2004-10-13 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* sockopt.c: (getsockopt_ipv4_ifindex) no ifindex should be 0, not\n          -1.\n"
    },
    {
      "commit": "9035efaa924c69f4f4fcb1049c7dc4f43b9da980",
      "tree": "f81d25b0e069ad8fb5f2843172a4e60fa0d6cbdf",
      "parents": [
        "ddd119fd3d94e95dd44aa9fb3bc3fca4f26078a0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Oct 10 11:56:56 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Oct 10 11:56:56 2004 +0000"
      },
      "message": "2004-10-10 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* version.h.in: (pid_output*) add const qualifier.\n\t* command.h: Change DEFUN func to take const char *[] rather\n          than char **, to begin process of fixing compile warnings in lib/.\n          Nearly all other changes in this commit follow from this change.\n        * buffer.{c,h}: (buffer_write) pointer-arithmetic is gccism, take\n          const void * and cast an automatic const char *p to it.\n          (buffer_putstr) add const\n        * command.c: (zencrypt) const qualifier\n          (cmd_execute_command_real) ditto\n          (cmd_execute_command_strict) ditto\n          (config_log_file) ditto.\n          Fix leak of getcwd() returned string.\n        * memory.{c,h}: Add MTYPE_DISTRIBUTE_IFNAME for struct dist ifname.\n        * distribute.{c,h}: Update with const qualifier.\n          (distribute_free) use MTYPE_DISTRIBUTE_IFNAME\n          (distribute_lookup) Cast to char *, note that it\u0027s ok.\n          (distribute_hash_alloc) use MTYPE_DISTRIBUTE_IFNAME.\n          (distribute_get)  Cast to char *, note that it\u0027s ok.\n        * filter.c: Update with const qualifier.\n        * if.{c,h}: ditto.\n        * if_rmap.{c,h}: ditto.\n          (if_rmap_lookup) Cast to char *, note that it\u0027s ok.\n          (if_rmap_get) ditto.\n        * log.{c,h}: Update with const qualifier.\n        * plist.{c,h}: ditto.\n        * routemap.{c,h}: ditto.\n        * smux.{c,h}: ditto. Fix some signed/unsigned comparisons.\n        * sockopt.c: (getsockopt_cmsg_data) add return for error case.\n        * vty.c: Update with const qualifier.\n"
    },
    {
      "commit": "96e27c9928b5078526f2a7564700dbdafe2c8d42",
      "tree": "5697279fc355244f385da4fbf6e313feb215f06a",
      "parents": [
        "7347a2ad7c05a86fcd9b7593a9d58b93ad50ef6a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Oct 05 14:33:43 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Oct 05 14:33:43 2004 +0000"
      },
      "message": "2004-10-05 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* sockopt.{c,h}: add sockopt_iphdrincl_swab_{htosys,systoh},\n          functions to change byte order between system IP_HDRINCL order\n          and host order.\n"
    },
    {
      "commit": "e473b032b860444b9656cee1654b0120f77b52b1",
      "tree": "8885e2b15c70fb231e775dead3cc30bea18311ce",
      "parents": [
        "c83dcd3f81ed21c72ad50e56a6c515c7eacac44c"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 16:08:11 2004 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Sun Sep 26 16:08:11 2004 +0000"
      },
      "message": "Compiler warnings fixes.\n"
    },
    {
      "commit": "b89e60c7abd457f97df8351db5610fc9c15178b2",
      "tree": "0dc4ab86a52a617f1acae71f707a172d560d1d1b",
      "parents": [
        "d9c427b21a5509a940178dedebec625bd7a9640a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Sep 21 15:43:13 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Sep 21 15:43:13 2004 +0000"
      },
      "message": "2004-09-17 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* sockopt.c: Add missing bracket\n"
    },
    {
      "commit": "0b3acf4f94241905ff36df5c1d9f9f389e45d191",
      "tree": "48b312ab2de446208d966d234fc37539bed98861",
      "parents": [
        "bf731011ef7038f5766432fec862301c123d4736"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Sep 17 08:39:08 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Sep 17 08:39:08 2004 +0000"
      },
      "message": "2004-09-17 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * ripngd/ripngd.c: move setsockopt_so_recvbuf to lib.\n        * lib/sockopt.{c,h}: Add setsockopt_so_recvbuf, for ripd and ripngd.\n        * ripd/ripd.c: set receive buffer to a decent size, some systems\n          have low defaults. Problem noted and fix suggested by Stephan\n          Schweizer in [zebra 20967].\n"
    },
    {
      "commit": "e6822768a281a5d46d497c0bbfe5ffd2a10c78c8",
      "tree": "c42184d3e7312a6e635a583d3beab4069a637b27",
      "parents": [
        "1a51786a70c45003813ffc60874653555a9b486a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 19 04:13:29 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Aug 19 04:13:29 2004 +0000"
      },
      "message": "2004-08-19 Paul Jakma \u003cpaul@dishone.st\u003e\n2004-08-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * sockopt.c: include sockopt.h\n          rename some of the _pktinfo_ functions to _ifindex, where that is\n          their purpose.\n          (getsockopt_ipv6_pktinfo_ifindex) renamed to\n          getsockopt_ipv6_ifindex.\n          (setsockopt_ipv4_pktinfo) renamed to setsockopt_ipv4_ifindex\n          (setsockopt_pktinfo) update with previous and add comment re\n          AF_INET portability.\n          (setsockopt_ifindex) generic ifindex function ala\n          setsockopt_pktinfo.\n          (getsockopt_ipv4_pktinfo_ifindex) renamed to\n          getsockopt_ipv4_ifindex.\n          (getsockopt_ipv4_ifindex) rejiggling to reduce repeated\n          ifdef/elses. pktinfo case forgot to set ifindex.\n          (getsockopt_pktinfo_ifindex) renamed to\n          getsockopt_ifindex. update some calls to renamed functions.\n        * sockopt.h: Update renamed exported functions\n          Rename the CMSG_SIZE macros to IFINDEX.\n          Guard IPv4 PKTINFO in a conditional define.\n"
    },
    {
      "commit": "33f92320e8a6b078a5972d05c8f49487d8edf19c",
      "tree": "dda4c2355c69089593fac18314f050daa6661e31",
      "parents": [
        "5b73a671aac22a75cc90657aa4a924d199f2284b"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Jul 23 16:14:32 2004 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Fri Jul 23 16:14:32 2004 +0000"
      },
      "message": "2004-07-23  Greg Troxel  \u003cgdt@poblano.ir.bbn.com\u003e\n\n\t* sockopt.c (getsockopt_ipv4_pktinfo_ifindex): Make this compile\n\ton NetBSD, and add comments to make it less confusing.  Change the\n\tsense of the SUNOS_5 test to make parallel structure between the\n\tvariables and the code.\n"
    },
    {
      "commit": "4f7baa0e434053c9f9a70f526be1514ea47cd274",
      "tree": "656c9850fa836fd99a2637bc126148536000ed87",
      "parents": [
        "05c447dd2e3aab0d045889845da0be5c8d974d4b"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 23 15:11:07 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Jul 23 15:11:07 2004 +0000"
      },
      "message": "2004-07-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * sockopt.h: Add SOPT_SIZE_CMSG_PKTINFO{_IPV{4,6}} define, for\n          sizeof pktinfo as appropriate, to be used when allocating msg\n          buffers. export setsockopt_pktinfo() and\n          getsockopt_pktinfo_ifindex()\n        * sockopt.c: (setsockopt_pktinfo_ifindex) new function to portably\n          set received ifindex sock option.\n          (getsockopt_pktinfo_ifindex) portably retrieve ifindex.\n          (getsockopt_cmsg_data) retrieve indicated control info from\n          message header.\n          (getsockopt_ipv6_pktinfo_ifindex) ipv6 version of above.\n          (setsockopt_ipv4_pktinfo) v4 version\n          (setsockopt_pktinfo) the exported version\n          (getsockopt_ipv4_pktinfo_ifindex) v4 specific version\n          (getsockopt_pktinfo_ifindex) the exported version\n"
    },
    {
      "commit": "718e3744195351130f4ce7dbe0613f4b3e23df93",
      "tree": "bac2ad39971cd43f31241ef123bd4e470f695ac9",
      "parents": [],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Dec 13 20:15:29 2002 +0000"
      },
      "message": "Initial revision\n"
    }
  ]
}
