mirror of
https://github.com/deneraraujo/OpenVPNAdapter.git
synced 2026-04-24 00:00:05 +08:00
56284506fc
35bbca799 Merged in OVPN3-184-generate-warning (pull request #1) a73d2ce68 Merged in antonio/OVPN3-169-pure-ssl-transport (pull request #3) 8d7f5f3c1 Merged in feature/docker (pull request #2) d9b5055cd [OVPN3-169] cli.cpp: compile with -DOPENVPN_TLS_LINK when requested 2d99bbfea [OVPN3-169] cliopt.hpp: add support for TLS transport module 62c8461d2 [OVPN3-169] tcpcli.hpp: add runtime support for TLSLink e0e76bb28 [OVPN3-169] tcplink: introduce LinkBase abstract class a71014d40 [OVPN3-169] tcplink: create LinkCommon class and inherit from it cfd6df5bc build system: fix 'git apply' 3e49de7de [OVPN3-210] ovpncli: handle "allow-name-constraints" for OpenSSL 08d72bd76 [OVPN3-184] mbedtls: handle Name Constraints 40c70113d [OVPN3-184] Add mbedTLS patch ef8d11f34 [OVPN3-169] OpenSSL: implement write_ciphertext_unbuffered() function 37dc86378 [OVPN3-169] mbedTLS: implement write_ciphertext_unbuffered() function 5834ed401 [OVPN3-169] SSLAPI: add write_ciphertext_unbuffered() function 071050b5f vars-linux-dbg: update linux debug profile 5bbfe68c3 [OVPN3-169] Protocol: add support for TLS transport protocol type dc12d3189 [OVPN3-223] build: add docker images git-subtree-dir: OpenVPN Adapter/Vendors/openvpn git-subtree-split: 35bbca799dfa3fbe8e17f8d6e94c3946c397b593
40 lines
965 B
C++
40 lines
965 B
C++
// Copyright (C) 2012-2018 OpenVPN Inc.
|
|
|
|
// Base class for generic link objects.
|
|
|
|
#include <openvpn/buffer/buffer.hpp>
|
|
#include <openvpn/common/rc.hpp>
|
|
|
|
#pragma once
|
|
|
|
namespace openvpn
|
|
{
|
|
namespace TCPTransport
|
|
{
|
|
struct PacketFrom
|
|
{
|
|
typedef std::unique_ptr<PacketFrom> SPtr;
|
|
BufferAllocated buf;
|
|
};
|
|
|
|
class LinkBase : public RC<thread_unsafe_refcount>
|
|
{
|
|
protected:
|
|
virtual void recv_buffer(PacketFrom::SPtr& pfp,
|
|
const size_t bytes_recvd) = 0;
|
|
virtual void from_app_send_buffer(BufferPtr& buf) = 0;
|
|
|
|
public:
|
|
typedef RCPtr<LinkBase> Ptr;
|
|
|
|
virtual bool send_queue_empty() const = 0;
|
|
virtual unsigned int send_queue_size() const = 0;
|
|
virtual void reset_align_adjust(const size_t align_adjust) = 0;
|
|
virtual bool send(BufferAllocated& b) = 0;
|
|
virtual void set_raw_mode(const bool mode) = 0;
|
|
virtual void start() = 0;
|
|
virtual void stop() = 0;
|
|
};
|
|
}
|
|
}
|