# # # patch "ChangeLog" # from [3a9ca1f4f2e7018132f28c2397ed50714093bf45] # to [1aca4a0308011c18d4cd064b3e43fb815a3e1303] # # patch "netsync.cc" # from [92edcc8965d9a45443c912428b3488b586bf65e2] # to [b570c84be31b69947360e3e58bbd9e635bdb5a48] # ============================================================ --- ChangeLog 3a9ca1f4f2e7018132f28c2397ed50714093bf45 +++ ChangeLog 1aca4a0308011c18d4cd064b3e43fb815a3e1303 @@ -1,5 +1,13 @@ 2006-04-08 Richard Levitte + * netsync.cc (serve_connections): When socket() fails in Netxx, + it throws a Netxx::Exception rather than a + Netxx::NetworkException, so we need to catch that as well. This + should solve the problems some have experienced when they don't + have a IPv6 stack and try to run a IPv6-enabled monotone. + +2006-04-08 Richard Levitte + * po/sv.po: A phrase was changed in command.cc... 2006-04-07 Richard Levitte ============================================================ --- netsync.cc 92edcc8965d9a45443c912428b3488b586bf65e2 +++ netsync.cc b570c84be31b69947360e3e58bbd9e635bdb5a48 @@ -2721,6 +2721,7 @@ } } } + // This exception is thrown when bind() fails somewhere in Netxx. catch (Netxx::NetworkException &e) { // If we tried with IPv6 and failed, we want to try again using IPv4. @@ -2732,6 +2733,20 @@ else throw; } + // This exception is thrown when there is no support for the type of + // connection we want to do in the kernel, for example when a socket() + // call fails somewhere in Netxx. + catch (Netxx::Exception &e) + { + // If we tried with IPv6 and failed, we want to try again using IPv4. + if (try_again) + { + use_ipv6 = false; + } + // In all other cases, just rethrow the exception. + else + throw; + } } while(try_again); }