From 5f06f705629624a7800a7081b6559a806bfa4cd0 Mon Sep 17 00:00:00 2001 From: Mike Walters Date: Tue, 26 Sep 2017 16:04:46 +0100 Subject: [PATCH] Support IPv6 in snapserver --- server/controlServer.cpp | 9 ++++++++- server/streamServer.cpp | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/server/controlServer.cpp b/server/controlServer.cpp index b4754f80..292a5251 100644 --- a/server/controlServer.cpp +++ b/server/controlServer.cpp @@ -129,7 +129,14 @@ void ControlServer::handleAccept(socket_ptr socket) void ControlServer::start() { - acceptor_ = make_shared(*io_service_, tcp::endpoint(tcp::v4(), port_)); + asio::ip::address address = asio::ip::address::from_string("::"); + tcp::endpoint endpoint(address, port_); + acceptor_ = make_shared(*io_service_, endpoint); + if (endpoint.protocol() == tcp::v6()) + { + error_code ec; + acceptor_->set_option(asio::ip::v6_only(false), ec); + } startAccept(); } diff --git a/server/streamServer.cpp b/server/streamServer.cpp index 1cb39f81..e1b637c9 100644 --- a/server/streamServer.cpp +++ b/server/streamServer.cpp @@ -615,7 +615,14 @@ void StreamServer::start() } streamManager_->start(); - acceptor_ = make_shared(*io_service_, tcp::endpoint(tcp::v4(), settings_.port)); + asio::ip::address address = asio::ip::address::from_string("::"); + tcp::endpoint endpoint(address, settings_.port); + acceptor_ = make_shared(*io_service_, endpoint); + if (endpoint.protocol() == tcp::v6()) + { + error_code ec; + acceptor_->set_option(asio::ip::v6_only(false), ec); + } startAccept(); } catch (const std::exception& e)