parent
daff66690a
commit
b8802aebb5
|
@ -249,6 +249,11 @@ private:
|
|||
{
|
||||
}
|
||||
|
||||
[[nodiscard]] tr_address bind_address(tr_address_type type) const override
|
||||
{
|
||||
return session_.publicAddress(type).address;
|
||||
}
|
||||
|
||||
[[nodiscard]] tr_port port() const override
|
||||
{
|
||||
return session_.advertisedPeerPort();
|
||||
|
|
|
@ -99,9 +99,7 @@ auto makeAnnounceMsg(std::string_view cookie, tr_port port, std::vector<std::str
|
|||
ret += fmt::format("cookie: {:s}\r\n", cookie);
|
||||
}
|
||||
|
||||
ret += "\r\n\r\n";
|
||||
|
||||
return ret;
|
||||
return ret + "\r\n\r\n";
|
||||
}
|
||||
|
||||
struct ParsedAnnounce
|
||||
|
@ -364,6 +362,22 @@ private:
|
|||
return false;
|
||||
}
|
||||
|
||||
if (setsockopt(
|
||||
mcast_snd_socket_,
|
||||
SOL_SOCKET,
|
||||
SO_REUSEADDR,
|
||||
reinterpret_cast<char const*>(&opt_on),
|
||||
sizeof(opt_on)) == -1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (auto [ss, sslen] = mediator_.bind_address(TR_AF_INET).to_sockaddr({});
|
||||
bind(mcast_snd_socket_, reinterpret_cast<sockaddr*>(&ss), sslen) == -1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/* configure outbound multicast TTL */
|
||||
if (setsockopt(
|
||||
mcast_snd_socket_,
|
||||
|
|
|
@ -41,6 +41,8 @@ public:
|
|||
|
||||
virtual ~Mediator() = default;
|
||||
|
||||
[[nodiscard]] virtual tr_address bind_address(tr_address_type type) const = 0;
|
||||
|
||||
[[nodiscard]] virtual tr_port port() const = 0;
|
||||
|
||||
[[nodiscard]] virtual bool allowsLPD() const = 0;
|
||||
|
|
|
@ -35,6 +35,11 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
[[nodiscard]] tr_address bind_address(tr_address_type /* type */) const override
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
[[nodiscard]] tr_port port() const override
|
||||
{
|
||||
return port_;
|
||||
|
|
Loading…
Reference in New Issue