15#ifndef OPENVPN_CLIENT_CLIEVENT_H
16#define OPENVPN_CLIENT_CLIEVENT_H
107 static const char *names[] = {
129 "COMPRESSION_ENABLED",
130 "UNSUPPORTED_FEATURE",
141 "TLS_ALERT_PROTOCOL_VERSION",
142 "TLS_ALERT_UNKNOWN_CA",
144 "TLS_ALERT_HANDSHAKE_FAILURE",
145 "TLS_ALERT_CERTIFICATE_EXPIRED",
146 "TLS_ALERT_CERTIFICATE_REVOKED",
147 "TLS_ALERT_BAD_CERTIFICATE",
148 "TLS_ALERT_UNSUPPORTED_CERTIFICATE",
149 "TLS_SIGALG_DISALLOWED_OR_UNSUPPORTED",
153 "CONNECTION_TIMEOUT",
160 "TUN_IFACE_DISABLED",
162 "EPKI_INVALID_ALIAS",
165 "NTLM_MISSING_CRYPTO",
173 return "UNKNOWN_EVENT_TYPE";
179class Base :
public RC<thread_safe_refcount>
422 Json::Value jdata_arg)
425 jdata(std::move(jdata_arg))
462 std::ostringstream
out;
493 std::ostringstream
out;
497 if (
server_host.find_first_of(
':') == std::string::npos)
528 reason(std::move(reason_arg))
765 static std::string
make(
const std::string &status,
const std::string &
message)
769 if (!status.empty() && !
message.empty())
784class Queue :
public RC<thread_unsafe_refcount>
const Connected * connected_cast() const
virtual std::string render() const
const char * name() const
static std::string make(const std::string &status, const std::string &message)
ClientSetup(const std::string &status, const std::string &message)
virtual void add_event(Base::Ptr event)=0
Reference count base class for objects tracked by RCPtr. Disallows copying and assignment.
constexpr BufferFlags GROW(1u<< 2)
if enabled, buffer will grow (otherwise buffer_full exception will be thrown)
const char * event_name(const Type type)
@ TLS_ALERT_PROTOCOL_VERSION
@ TLS_ALERT_HANDSHAKE_FAILURE
@ TLS_ALERT_CERTIFICATE_EXPIRED
@ TLS_SIGALG_DISALLOWED_OR_UNSUPPORTED
@ TLS_ALERT_UNSUPPORTED_CERTIFICATE
@ TLS_ALERT_CERTIFICATE_REVOKED
@ TLS_ALERT_BAD_CERTIFICATE
void format_compact(const Json::Value &root, Buffer &buf)
constexpr std::size_t array_size(T(&)[N])
void buf_append_string(Buffer &buf, const std::string &str)
std::string buf_to_string(const Buffer &buf)
AppCustomControlMessage(std::string protocol, std::string message)
std::string custommessage
AuthFailed(std::string reason)
AuthPending(int timeout, std::string value)
CertVerifyFail(std::string reason)
ClientHalt(std::string reason)
ClientRestart(std::string reason)
CompressError(std::string reason)
CompressionEnabled(std::string msg)
std::uint32_t vpn_interface_index
std::string render() const override
DynamicChallenge(std::string reason)
EpkiError(std::string reason)
EpkiInvalidAlias(std::string reason)
InfoJSON(std::string msg_type_arg, Json::Value jdata_arg)
virtual std::string render() const
NtlmMissingCryptoError(std::string reason)
Pause(std::string reason)
ProxyError(std::string reason)
ProxyNeedCreds(std::string reason)
std::string render() const override
ReasonBase(const Type id, const std::string &reason_arg)
ReasonBase(const Type id, std::string &&reason_arg)
RelayError(std::string reason)
SessionExpired(std::string reason)
TLSAlertCertificateExpire()
TLSAlertCertificateRevoked()
TLSAlertHandshakeFailure()
TLSAlertMisc(std::string reason)
TLSAlertProtocolUnknownCA()
TLSAlertProtocolVersion()
TLSAlertUnsupportedCertificate()
TLSSigAlgDisallowedOrUnsupported()
TransportError(std::string reason)
TunError(std::string reason)
TunHalt(std::string reason)
TunIfaceCreate(std::string reason)
TunIfaceDisabled(std::string reason)
TunSetupFailed(std::string reason)
std::string render() const override
RCPtr< UnsupportedFeature > Ptr
UnsupportedFeature(const std::string &name_arg, const std::string &reason_arg, bool critical_arg)
static std::stringstream out