changeset 434:ef6e0eaae6c1 stable-2

Merge from release-2.1
author David Demelier <markand@malikania.fr>
date Tue, 07 Mar 2017 12:20:43 +0100
parents cbea51723652 (current diff) 7db60982075f (diff)
children 18574b79e422 13c7b9a82f1f
files
diffstat 7 files changed, 27 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/.hgsigs	Sat Feb 18 09:26:30 2017 +0100
+++ b/.hgsigs	Tue Mar 07 12:20:43 2017 +0100
@@ -3,3 +3,4 @@
 02409acc34e21fa08a781f6f68aef66dc734a132 0 iQEcBAABCAAGBQJXFekwAAoJEKHa+bhAI/MfxG4IAK9Es4VcTU5HZ+VfpuFxjx5NcbEzbdqexUFI4m4Z8/LWD7Xb9RT0bekomEDHGT91csQFJ1es1Aeekbgw1XDk/wwYphaTUTNKF8L9VWRKdRbGQT8AjkOxJXfjMviGJbUa7lkQNllwLexvwPmnMJP8+A/QVf5EWlim8rxpeaKqrpwmizd4UhvLb7w5F5YyIHVsI8FizFL9VdnFplK+iQgSMX2mRUkAGOHCno7MIxilcmUGy/6yzV7VyuJHmkGjluBxURp73HQSAIVM3SwJagpWZS6zZ5tI5PFf6gw9rlByJJOLcbuuvUaAKLYhKISi5qlLmKRW097sJxCF4bgWfUVUp1w=
 ef19e4c406cf9611650fe25354170485ab27b819 0 iQEcBAABCAAGBQJYGI4KAAoJEKHa+bhAI/MfdlIH/jP3ktybzbMISVHeZOx5Kd6sQYyEQP5u0StQ3Sgj/oV+tqn3UWrTypKXJZWeI1yb3KYtHfcmP8l/nKeN0Zz3c05qh+J+MuBCoBNL1yP8ZHqarKrhPjkoC5OQoUgegsMEOcCBK7j8VXmSJ5DUXpn1Drd9dQ7qKE3fu84knHWe0ViVThbFFQsqBv5DQOgA+Pl5GN1JzeMWo/hWHjHldrsFC2xOeDJNuJ42RgmFmKaj7MHO9Nsu6aLZwDzkZvoImPzsO/AAQsrqAHC2um85LptCsWZ3LFw8aC1UqmlvvcdXLivChHs0+Qwr9VrGGlcaZ8mLaD4ucCG2LUR9EjmtwOCkJvc=
 13097484da5145f5e83705aed9288c3f3d745375 0 iQEzBAABCAAdFiEEvr8S/JLqYAXrLA5Xodr5uEAj8x8FAliRvf0ACgkQodr5uEAj8x/MbQf7B8PnmQLQvB5URnAZiPQlxUwV/ueu1g2ygZaMv3shop9PQBDUHEkVso+kivGDrIhX+E94JeNno3L+FMaNigOHS67x2ycoaerk89COcTIfj426KyvBSJ/nP5m8Sx3AnXXjuqV83blQCOhi99lNE1o3Zw9UX9IwhIjZnLX6o48ybEhbh/DeXQ/qw4KIbqhA4LjE+UNndf0zDCgSN9DJXw3kUejRCNb7ygP/zkbnhpuM5prdzjHFsrAlGCtTAebB2Aq7oAn/ZYIJclh38E2j89fFxUbz8wg5JtXJBUQ2a4oGtByM6aKD8zXUMgTRHc/EfLvjlL8EoOZG8HkUM+kMcgPGDw==
+033d85c3c81e053368714174c22b692d99b03c24 0 iQEcBAABCAAGBQJYvpdpAAoJEKHa+bhAI/MfD68H/RSos3CKE1SU4n3iz0Y005J39nKVwYia8i4EPb1chuVS2qxiYISYCGHcmnALkIGYek8nSzEYAH6EoMoWnUz5WSYGuV0X5KH6722J+kgRlYn3l8ZgIt+cgOBfZh+91JCyIPSDRBCD3qF2bTXsgweX9F/iqWWRGIBcYLm/qw8YDaroiTm2kF9Txzs1VtJrLGLaltsndRj3v1sWyAeVD8xuKiF8v+zB1vZQQi75wSrhyovdQf13dy+GDUwqMZnZu+O9hTeq+mxIijGf+WXFLsBZ4Myxi1UNq5HAKO6kKKNMWdNnMqasL6VNx6D7dtDEJ1RV8DgbGsKUDFb957mdvLRFBr8=
--- a/.hgtags	Sat Feb 18 09:26:30 2017 +0100
+++ b/.hgtags	Tue Mar 07 12:20:43 2017 +0100
@@ -3,3 +3,4 @@
 de1c1e4a5dbb3f9d03a6833333f03f595f79e33d 2.0.2
 d37069bcbbab340c122a4f6fbb028c02996cc143 2.0.3
 a8b0353ac831ef6cb9be9f92a634252a680169b0 2.1.0
+4022c5fa8b7c62b461380bc9a6cb150fe6a53186 2.1.1
--- a/CHANGES.md	Sat Feb 18 09:26:30 2017 +0100
+++ b/CHANGES.md	Tue Mar 07 12:20:43 2017 +0100
@@ -1,6 +1,13 @@
 IRC Client Daemon CHANGES
 =========================
 
+irccd 2.1.1 2017-03-07
+----------------------
+
+  - Fix invalid documented option transport.family,
+  - Fix error when logs.type is set to console,
+  - Fix invalid IPV6_V6ONLY option in transports.
+
 irccd 2.1.0 2017-02-01
 ----------------------
 
--- a/cmake/IrccdVersion.cmake	Sat Feb 18 09:26:30 2017 +0100
+++ b/cmake/IrccdVersion.cmake	Tue Mar 07 12:20:43 2017 +0100
@@ -19,7 +19,7 @@
 # Irccd version.
 set(IRCCD_VERSION_MAJOR "2")
 set(IRCCD_VERSION_MINOR "1")
-set(IRCCD_VERSION_PATCH "0")
+set(IRCCD_VERSION_PATCH "1")
 set(IRCCD_VERSION "${IRCCD_VERSION_MAJOR}.${IRCCD_VERSION_MINOR}.${IRCCD_VERSION_PATCH}")
 set(IRCCD_VERSION_SHLIB "2")
 
@@ -32,6 +32,6 @@
 # IRCCD_RELEASE_DATE_DAY        2 digits (01 = first day of month)
 #
 set(IRCCD_RELEASE_DATE_YEAR 2017)
-set(IRCCD_RELEASE_DATE_MONTH 02)
-set(IRCCD_RELEASE_DATE_DAY 01)
+set(IRCCD_RELEASE_DATE_MONTH 03)
+set(IRCCD_RELEASE_DATE_DAY 07)
 set(IRCCD_RELEASE_DATE "${IRCCD_RELEASE_DATE_YEAR}-${IRCCD_RELEASE_DATE_MONTH}-${IRCCD_RELEASE_DATE_DAY}")
--- a/irccdctl/main.cpp	Sat Feb 18 09:26:30 2017 +0100
+++ b/irccdctl/main.cpp	Tue Mar 07 12:20:43 2017 +0100
@@ -132,13 +132,13 @@
 
     int domain = AF_INET;
 
-    if ((it = sc.find("domain")) != sc.end()) {
+    if ((it = sc.find("domain")) != sc.end() || (it = sc.find("family")) != sc.end()) {
         if (it->value() == "ipv6") {
             domain = AF_INET6;
         } else if (it->value() == "ipv4") {
             domain = AF_INET;
         } else {
-            throw std::invalid_argument("invalid domain: " + it->value());
+            throw std::invalid_argument("invalid family: " + it->value());
         }
     }
 
--- a/libirccd/irccd/config.cpp	Sat Feb 18 09:26:30 2017 +0100
+++ b/libirccd/irccd/config.cpp	Tue Mar 07 12:20:43 2017 +0100
@@ -157,10 +157,16 @@
     if ((it = sc.find("address")) != sc.end())
         address = it->value();
 
-    // Domain
     std::uint8_t mode = TransportServerIp::v4;
 
-    if ((it = sc.find("domain")) != sc.end()) {
+    /*
+     * Documentation stated family but code checked for 'domain' option.
+     *
+     * As irccdctl uses domain, accept both and unify the option name to 'family'.
+     *
+     * See #637
+     */
+    if ((it = sc.find("domain")) != sc.end() || (it = sc.find("family")) != sc.end()) {
         mode = 0;
 
         for (const auto &v : *it) {
@@ -188,7 +194,7 @@
     }
 
     if (mode == 0)
-        throw std::invalid_argument("transport: domain must at least have ipv4 or ipv6");
+        throw std::invalid_argument("transport: family must at least have ipv4 or ipv6");
 
     if (pkey.empty())
         return std::make_shared<TransportServerIp>(address, port, mode);
@@ -485,7 +491,7 @@
             iface = loadLogFile(*sc);
         else if (it->value() == "syslog")
             iface = loadLogSyslog();
-        else
+        else if (it->value() != "console")
             throw std::runtime_error("logs: unknown log type: {}"_format(it->value()));
 
         if (iface)
--- a/libirccd/irccd/transport.cpp	Sat Feb 18 09:26:30 2017 +0100
+++ b/libirccd/irccd/transport.cpp	Tue Mar 07 12:20:43 2017 +0100
@@ -376,14 +376,13 @@
     m_socket.set(net::option::SockReuseAddress(true));
 
     if (mode & v6) {
+        // Disable or enable IPv4 when using IPv6.
+        m_socket.set(net::option::Ipv6Only(!(mode & v4)));
+
         if (address == "*")
             m_socket.bind(net::ipv6::any(port));
         else
             m_socket.bind(net::ipv6::pton(address, port));
-
-        // Disable or enable IPv4 when using IPv6.
-        if (!(mode & v4))
-            m_socket.set(net::option::Ipv6Only(true));
     } else {
         if (address == "*")
             m_socket.bind(net::ipv4::any(port));