0
0
mirror of https://github.com/OpenVPN/openvpn3.git synced 2024-09-20 20:13:05 +02:00
openvpn3/openvpn/server/peeraddr.hpp
James Yonan 6e8f2a73f8 Moved openvpn::to_string() to separate source file.
Signed-off-by: James Yonan <james@openvpn.net>
2017-03-18 15:46:45 -06:00

71 lines
1.8 KiB
C++

// OpenVPN -- An application to securely tunnel IP networks
// over a single port, with support for SSL/TLS-based
// session authentication and key exchange,
// packet encryption, packet authentication, and
// packet compression.
//
// Copyright (C) 2012-2017 OpenVPN Technologies, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License Version 3
// as published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program in the COPYING file.
// If not, see <http://www.gnu.org/licenses/>.
#ifndef OPENVPN_SERVER_PEERADDR_H
#define OPENVPN_SERVER_PEERADDR_H
#include <cstdint> // for std::uint32_t, uint64_t, etc.
#include <openvpn/common/rc.hpp>
#include <openvpn/common/to_string.hpp>
#include <openvpn/addr/ip.hpp>
namespace openvpn {
struct AddrPort
{
AddrPort() : port(0) {}
std::string to_string() const
{
return addr.to_string_bracket_ipv6() + ':' + openvpn::to_string(port);
}
IP::Addr addr;
std::uint16_t port;
};
struct PeerAddr : public RC<thread_unsafe_refcount>
{
typedef RCPtr<PeerAddr> Ptr;
PeerAddr()
: tcp(false)
{
}
std::string to_string() const
{
std::string proto;
if (tcp)
proto = "TCP ";
else
proto = "UDP ";
return proto + remote.to_string() + " -> " + local.to_string();
}
AddrPort remote;
AddrPort local;
bool tcp;
};
}
#endif