Ark Server API (ASE) - Wiki
Loading...
Searching...
No Matches
CertificateHandlerFactory.h
Go to the documentation of this file.
1//
2// CertificateHandlerFactory.h
3//
4// Library: NetSSL_OpenSSL
5// Package: SSLCore
6// Module: CertificateHandlerFactory
7//
8// Definition of the CertificateHandlerFactory class.
9//
10// Copyright (c) 2006-2009, Applied Informatics Software Engineering GmbH.
11// and Contributors.
12//
13// SPDX-License-Identifier: BSL-1.0
14//
15
16
17#ifndef NetSSL_CertificateHandlerFactory_INCLUDED
18#define NetSSL_CertificateHandlerFactory_INCLUDED
19
20
21#include "Poco/Net/NetSSL.h"
22
23
24namespace Poco {
25namespace Net {
26
27
29
30
32 /// A CertificateHandlerFactory is responsible for creating InvalidCertificateHandlers.
33 ///
34 /// You don't need to access this class directly. Use the macro
35 /// POCO_REGISTER_CHFACTORY(namespace, InvalidCertificateHandlerName)
36 /// instead (see the documentation of InvalidCertificateHandler for an example).
37{
38public:
40 /// Creates the CertificateHandlerFactory.
41
43 /// Destroys the CertificateHandlerFactory.
44
45 virtual InvalidCertificateHandler* create(bool server) const = 0;
46 /// Creates a new InvalidCertificateHandler. Set server to true if the certificate handler is used on the server side.
47};
48
49
51 /// Registrar class which automatically registers CertificateHandlerFactory at the CertificateHandlerFactoryMgr.
52 /// You don't need to access this class directly. Use the macro
53 /// POCO_REGISTER_CHFACTORY(namespace, InvalidCertificateHandlerName)
54 /// instead (see the documentation of InvalidCertificateHandler for an example).
55{
56public:
57 CertificateHandlerFactoryRegistrar(const std::string& name, CertificateHandlerFactory* pFactory);
58 /// Registers the CertificateHandlerFactory with the given name at the factory manager.
59
61 /// Destroys the CertificateHandlerFactoryRegistrar.
62};
63
64
65template <typename T>
67{
68public:
70 {
71 }
72
74 {
75 }
76
78 {
79 return new T(server);
80 }
81};
82
83
84} } // namespace Poco::Net
85
86
87// DEPRECATED: register the factory directly at the FactoryMgr:
88// Poco::Net::SSLManager::instance().certificateHandlerFactoryMgr().setFactory(name, new Poco::Net::CertificateHandlerFactoryImpl<MyConsoleHandler>());
89#define POCO_REGISTER_CHFACTORY(API, PKCLS)
90 static Poco::Net::CertificateHandlerFactoryRegistrar aRegistrar(std::string(#PKCLS), new Poco::Net::CertificateHandlerFactoryImpl<PKCLS>());
91
92
93#endif // NetSSL_CertificateHandlerFactory_INCLUDED
#define ARK_API
Definition Base.h:9
#define poco_bugcheck()
Definition Bugcheck.h:129
#define poco_check_ptr(ptr)
Definition Bugcheck.h:125
#define poco_unexpected()
Definition Bugcheck.h:140
#define poco_assert(cond)
Definition Bugcheck.h:117
#define poco_assert_dbg(cond)
Definition Bugcheck.h:113
#define POCO_EXTERNAL_OPENSSL
Definition Config.h:189
#define POCO_THREAD_STACK_SIZE
Definition Config.h:52
#define POCO_NO_SOO
Definition Config.h:82
#define POCO_DECLARE_EXCEPTION(API, CLS, BASE)
Definition Exception.h:157
#define POCO_DECLARE_EXCEPTION_CODE(API, CLS, BASE, CODE)
Definition Exception.h:140
#define POCO_DO_JOIN2(X, Y)
Definition Foundation.h:134
#define POCO_DO_JOIN(X, Y)
Definition Foundation.h:133
#define Foundation_API
Definition Foundation.h:60
#define POCO_JOIN(X, Y)
Definition Foundation.h:132
Net_API Poco::BinaryReader & operator>>(Poco::BinaryReader &reader, Poco::Net::IPAddress &value)
#define POCO_HAVE_IPv6
Definition Net.h:64
#define Net_API
Definition Net.h:47
#define NetSSL_API
Definition NetSSL.h:48
#define POCO_OS_IRIX
Definition Platform.h:35
#define POCO_OS_TRU64
Definition Platform.h:30
#define POCO_OS_WINDOWS_NT
Definition Platform.h:43
#define POCO_OS_HPUX
Definition Platform.h:29
#define POCO_OS_CYGWIN
Definition Platform.h:39
#define POCO_OS_WINDOWS_CE
Definition Platform.h:44
#define POCO_UNUSED
Definition Platform.h:274
#define POCO_OS_VXWORKS
Definition Platform.h:38
#define POCO_OS_ANDROID
Definition Platform.h:41
#define POCO_OS_QNX
Definition Platform.h:37
#define POCO_OS_AIX
Definition Platform.h:28
#define POCO_OS_LINUX
Definition Platform.h:31
#define POCO_OS_SOLARIS
Definition Platform.h:36
#define POCO_ARCH_AMD64
Definition Platform.h:129
#define OPENSSL_VERSION_PREREQ(maj, min)
Definition Crypto.h:36
#define Crypto_API
Definition Crypto.h:82
RSAPaddingMode
The padding mode used for RSA public key encryption.
Definition Crypto.h:44
@ RSA_PADDING_PKCS1_OAEP
PKCS #1 v1.5 padding. This currently is the most widely used mode.
Definition Crypto.h:48
@ RSA_PADDING_NONE
Definition Crypto.h:52
@ RSA_PADDING_PKCS1
Definition Crypto.h:45
#define POCO_EXTERNAL_OPENSSL_SLPRO
Definition Crypto.h:24
Net_API Poco::BinaryReader & operator>>(Poco::BinaryReader &reader, Poco::Net::SocketAddress &value)
#define poco_ntoh_32(x)
Definition SocketDefs.h:328
#define INADDR_NONE
Definition SocketDefs.h:291
#define INADDR_BROADCAST
Definition SocketDefs.h:299
#define INADDR_ANY
Definition SocketDefs.h:295
#define poco_ntoh_16(x)
Definition SocketDefs.h:326
#define INADDR_LOOPBACK
Definition SocketDefs.h:303
void ASN1_STRING_clear_free(ASN1_STRING *a)
#define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name)
Definition asn1.h:226
int UTF8_getc(const unsigned char *str, int len, unsigned long *val)
ASN1_INTEGER * BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai)
#define ASN1_STRFLGS_ESC_QUOTE
Definition asn1.h:370
void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags)
ASN1_TYPE * ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t)
int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str)
int ASN1_STRING_set_default_mask_asc(const char *p)
ASN1_STRING * ASN1_STRING_set_by_NID(ASN1_STRING **out, const unsigned char *in, int inlen, int inform, int nid)
#define B_ASN1_UTCTIME
Definition asn1.h:106
const ASN1_ITEM * ASN1_ITEM_lookup(const char *name)
int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, int ctype_nid, int econt_nid, STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it)
#define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname)
Definition asn1.h:254
#define B_ASN1_PRINTABLESTRING
Definition asn1.h:91
#define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name)
Definition asn1.h:247
#define B_ASN1_NUMERICSTRING
Definition asn1.h:90
ASN1_GENERALIZEDTIME * ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, time_t t, int offset_day, long offset_sec)
#define ASN1_STRFLGS_UTF8_CONVERT
Definition asn1.h:390
int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v)
void ASN1_PCTX_free(ASN1_PCTX *p)
void ASN1_STRING_length_set(ASN1_STRING *x, int n)
unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p)
const ASN1_ITEM * ASN1_SCTX_get_item(ASN1_SCTX *p)
int ASN1_TIME_set_string(ASN1_TIME *s, const char *str)
#define DECLARE_ASN1_FUNCTIONS_name(type, name)
Definition asn1.h:222
int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, int inform, unsigned long mask)
#define DECLARE_ASN1_PRINT_FUNCTION(stname)
Definition asn1.h:251
int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)
int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b)
ASN1_ENUMERATED * BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai)
int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a)
int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags)
#define ASN1_STRFLGS_ESC_CTRL
Definition asn1.h:362
#define TYPEDEF_D2I2D_OF(type)
Definition asn1.h:275
ASN1_VALUE * ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, long len, const ASN1_ITEM *it)
int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b)
#define B_ASN1_UTF8STRING
Definition asn1.h:105
void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags)
int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, const char *hdr, const ASN1_ITEM *it)
long ASN1_INTEGER_get(const ASN1_INTEGER *a)
int ASN1_TIME_normalize(ASN1_TIME *s)
DIRECTORYSTRING time_t t
Definition asn1.h:626
unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p)
#define TYPEDEF_I2D_OF(type)
Definition asn1.h:274
int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a)
BIO * BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it)
#define DECLARE_ASN1_NDEF_FUNCTION(name)
Definition asn1.h:240
int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size)
#define ASN1_STRFLGS_ESC_MSB
Definition asn1.h:363
int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a)
ASN1_TIME * ASN1_TIME_adj(ASN1_TIME *s, time_t t, int offset_day, long offset_sec)
int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in)
int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long)
int ASN1_check_infinite_end(unsigned char **p, long len)
int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s)
int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t)
int ASN1_INTEGER_set(ASN1_INTEGER *a, long v)
int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a)
#define ASN1_i2d_bio_of_const(type, i2d, out, x)
Definition asn1.h:752
void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data)
int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, const unsigned char *flags, int flags_len)
int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a)
int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len)
unsigned long ASN1_tag2bit(int tag)
int UTF8_putc(unsigned char *str, int len, unsigned long value)
#define D2I_OF(type)
Definition asn1.h:258
ASN1_SCTX * ASN1_SCTX_new(int(*scan_cb)(ASN1_SCTX *ctx))
int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size)
int ASN1_TIME_check(const ASN1_TIME *t)
void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags)
#define DIRSTRING_TYPE
Definition asn1.h:182
int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str)
int ASN1_UTCTIME_check(const ASN1_UTCTIME *a)
void ASN1_STRING_TABLE_cleanup(void)
int ASN1_object_size(int constructed, int length, int tag)
int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n)
int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off)
struct ASN1_TEMPLATE_st ASN1_TEMPLATE
Definition asn1.h:210
ASN1_UTCTIME * ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t)
int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v)
#define ASN1_ITEM_rptr(ref)
Definition asn1.h:326
int ASN1_TIME_diff(int *pday, int *psec, const ASN1_TIME *from, const ASN1_TIME *to)
struct ASN1_TLC_st ASN1_TLC
Definition asn1.h:211
BIGNUM * ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn)
void * ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x)
#define V_ASN1_PRIMITIVE_TAG
Definition asn1.h:41
#define ASN1_d2i_bio_of(type, xnew, d2i, in, x)
Definition asn1.h:738
#define CHECKED_D2I_OF(type, d2i)
Definition asn1.h:262
ASN1_GENERALIZEDTIME * ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, time_t t)
BIGNUM * ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn)
int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, unsigned char *data, int len)
ASN1_TYPE * ASN1_generate_v3(const char *str, X509V3_CTX *cnf)
int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value)
#define CHECKED_NEW_OF(type, xnew)
Definition asn1.h:266
#define DECLARE_ASN1_FUNCTIONS(type)
Definition asn1.h:217
#define MBSTRING_FLAG
Definition asn1.h:110
#define ASN1_STRFLGS_DUMP_UNKNOWN
Definition asn1.h:412
ASN1_VALUE * SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it)
void ASN1_put_object(unsigned char **pp, int constructed, int length, int tag, int xclass)
int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a)
void * ASN1_SCTX_get_app_data(ASN1_SCTX *p)
int ASN1_STRING_type(const ASN1_STRING *x)
int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r)
#define CHECKED_I2D_OF(type, i2d)
Definition asn1.h:264
#define ASN1_dup_of(type, i2d, d2i, x)
Definition asn1.h:690
int ASN1_str2mask(const char *str, unsigned long *pmask)
int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it)
int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm)
ASN1_VALUE * ASN1_item_new(const ASN1_ITEM *it)
int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, int dump)
void * ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x)
int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a)
ASN1_GENERALIZEDTIME * ASN1_TIME_to_generalizedtime(const ASN1_TIME *t, ASN1_GENERALIZEDTIME **out)
ASN1_OBJECT * d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long length)
#define B_ASN1_IA5STRING
Definition asn1.h:95
void * ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it)
const char * ASN1_tag2str(int tag)
#define B_ASN1_BIT_STRING
Definition asn1.h:102
int SMIME_crlf_copy(BIO *in, BIO *out, int flags)
int ASN1_put_eoc(unsigned char **pp)
ASN1_STRING * ASN1_STRING_type_new(int type)
void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value)
void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags)
int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, const ASN1_OCTET_STRING *b)
#define B_ASN1_BMPSTRING
Definition asn1.h:103
unsigned long ASN1_STRING_get_default_mask(void)
int ASN1_PRINTABLE_type(const unsigned char *s, int max)
#define B_ASN1_T61STRING
Definition asn1.h:92
#define ASN1_STRFLGS_RFC2253
Definition asn1.h:431
ASN1_OCTET_STRING * ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a)
void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it)
int ASN1_const_check_infinite_end(const unsigned char **p, long len)
unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p)
int SMIME_text(BIO *in, BIO *out)
void ASN1_add_oid_module(void)
ASN1_INTEGER * d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, long length)
int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a)
void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags)
int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r)
#define TYPEDEF_D2I_OF(type)
Definition asn1.h:273
int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x)
int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value, BIT_STRING_BITNAME *tbl)
int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl)
int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a)
struct ASN1_VALUE_st ASN1_VALUE
Definition asn1.h:213
void ASN1_SCTX_free(ASN1_SCTX *p)
void * ASN1_d2i_bio(void *(*xnew)(void), d2i_of_void *d2i, BIO *in, void **x)
#define CHECKED_PTR_OF(type, p)
Definition asn1.h:268
int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y)
int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, int *pclass, long omax)
int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x)
int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len)
int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r)
int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x)
void ASN1_STRING_free(ASN1_STRING *a)
void * ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x)
ASN1_TYPE * ASN1_generate_nconf(const char *str, CONF *nconf)
unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p)
int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp)
int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a)
#define B_ASN1_UNIVERSALSTRING
Definition asn1.h:100
ASN1_OBJECT * ASN1_OBJECT_new(void)
int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type)
int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a)
#define CHECKED_PPTR_OF(type, p)
Definition asn1.h:270
int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len)
ASN1_STRING * ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct)
int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size)
int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, BIT_STRING_BITNAME *tbl, int indent)
void * ASN1_d2i_fp(void *(*xnew)(void), d2i_of_void *d2i, FILE *in, void **x)
ASN1_UTCTIME * ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, int offset_day, long offset_sec)
#define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name)
Definition asn1.h:230
ASN1_STRING * ASN1_STRING_dup(const ASN1_STRING *a)
const unsigned char * ASN1_STRING_get0_data(const ASN1_STRING *x)
ASN1_INTEGER * ASN1_INTEGER_dup(const ASN1_INTEGER *x)
#define B_ASN1_SEQUENCE
Definition asn1.h:108
int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, int len)
ASN1_PCTX * ASN1_PCTX_new(void)
int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x)
unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p)
const ASN1_ITEM * ASN1_ITEM_get(size_t i)
unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p)
int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length)
void ASN1_OBJECT_free(ASN1_OBJECT *a)
int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str)
#define ASN1_STRFLGS_ESC_2253
Definition asn1.h:361
ASN1_STRING * ASN1_STRING_new(void)
#define B_ASN1_VISIBLESTRING
Definition asn1.h:98
int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, const ASN1_ITEM *it)
#define DECLARE_ASN1_ALLOC_FUNCTIONS(type)
Definition asn1.h:219
int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it)
#define B_ASN1_TELETEXSTRING
Definition asn1.h:93
#define V_ASN1_NEG
Definition asn1.h:85
void ASN1_add_stable_module(void)
void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len)
#define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name)
Definition asn1.h:235
int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, unsigned char *buf, int off)
int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent)
#define DECLARE_ASN1_ITEM(name)
Definition asn1.h:328
int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, int inform, unsigned long mask, long minsize, long maxsize)
#define B_ASN1_UNKNOWN
Definition asn1.h:104
#define ASN1_i2d_bio_of(type, i2d, out, x)
Definition asn1.h:747
int ASN1_STRING_length(const ASN1_STRING *x)
int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, const ASN1_ITEM *it, const ASN1_PCTX *pctx)
void * ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t)
ASN1_OBJECT * ASN1_OBJECT_create(int nid, unsigned char *data, int len, const char *sn, const char *ln)
int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len)
#define ASN1_STRFLGS_DUMP_DER
Definition asn1.h:419
void ASN1_STRING_set_default_mask(unsigned long mask)
const ASN1_TEMPLATE * ASN1_SCTX_get_template(ASN1_SCTX *p)
#define B_ASN1_GENERALIZEDTIME
Definition asn1.h:107
#define STABLE_FLAGS_MALLOC
Definition asn1.h:173
void * ASN1_item_dup(const ASN1_ITEM *it, void *x)
ASN1_STRING_TABLE * ASN1_STRING_TABLE_get(int nid)
int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b)
int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str)
const BIO_METHOD * BIO_f_asn1(void)
int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t)
int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags)
long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a)
#define I2D_OF(type)
Definition asn1.h:259
int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
int ERR_load_ASN1_strings(void)
int ASYNC_init_thread(size_t max_size, size_t init_size)
ASYNC_WAIT_CTX * ASYNC_get_wait_ctx(ASYNC_JOB *job)
struct async_wait_ctx_st ASYNC_WAIT_CTX
Definition async.h:33
void ASYNC_block_pause(void)
int ASYNC_is_capable(void)
void ASYNC_unblock_pause(void)
void ASYNC_cleanup_thread(void)
struct async_job_st ASYNC_JOB
Definition async.h:32
ASYNC_JOB * ASYNC_get_current_job(void)
int ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *ctx, int *ret, int(*func)(void *), void *args, size_t size)
#define OSSL_ASYNC_FD
Definition async.h:22
int ASYNC_pause_job(void)
int ERR_load_ASYNC_strings(void)
#define BIO_FLAGS_READ
Definition bio.h:144
#define BIO_FLAGS_RWS
Definition bio.h:147
#define BIO_C_SET_WRITE_BUF_SIZE
Definition bio.h:324
#define BIO_C_GET_READ_REQUEST
Definition bio.h:329
int(*)(BIO *, char *, size_t, size_t *) BIO_meth_get_read_ex(const BIO_METHOD *biom)
Definition bio.h:767
#define BIO_C_GET_CIPHER_STATUS
Definition bio.h:300
#define BIO_C_MAKE_BIO_PAIR
Definition bio.h:326
#define BIO_TYPE_FILTER
Definition bio.h:29
#define BIO_FP_READ
Definition bio.h:139
#define BIO_C_SET_SSL
Definition bio.h:296
#define BIO_C_SET_BUFF_SIZE
Definition bio.h:304
#define BIO_C_GET_MD_CTX
Definition bio.h:307
#define BIO_CTRL_INFO
Definition bio.h:73
#define BIO_C_GET_MD
Definition bio.h:299
#define BIO_C_SET_BUFF_READ_DATA
Definition bio.h:309
#define BIO_C_GET_ACCEPT
Definition bio.h:311
#define BIO_CTRL_FLUSH
Definition bio.h:81
int(*)(BIO *, char *, int) BIO_meth_get_read(const BIO_METHOD *biom)
Definition bio.h:766
#define BIO_C_GET_FD
Definition bio.h:292
#define BIO_TYPE_DESCRIPTOR
Definition bio.h:28
#define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT
Definition bio.h:314
#define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD
Definition bio.h:118
#define BIO_TYPE_SOURCE_SINK
Definition bio.h:30
#define BIO_C_FILE_SEEK
Definition bio.h:315
#define BIO_C_FILE_TELL
Definition bio.h:320
#define BIO_C_DO_STATE_MACHINE
Definition bio.h:288
#define BIO_C_GET_WRITE_BUF_SIZE
Definition bio.h:325
#define BIO_CTRL_SET_CLOSE
Definition bio.h:79
#define BIO_CB_RETURN
Definition bio.h:225
#define BIO_C_SET_CONNECT_MODE
Definition bio.h:346
int(*)(BIO *, const char *) BIO_meth_get_puts(const BIO_METHOD *biom)
Definition bio.h:772
#define BIO_CTRL_EOF
Definition bio.h:72
#define BIO_FLAGS_IO_SPECIAL
Definition bio.h:146
#define BIO_CTRL_PENDING
Definition bio.h:80
#define BIO_C_SET_ACCEPT
Definition bio.h:305
int(*)(BIO *) BIO_meth_get_destroy(const BIO_METHOD *biom)
Definition bio.h:783
#define BIO_FP_WRITE
Definition bio.h:140
#define BIO_CTRL_WPENDING
Definition bio.h:83
#define BIO_C_SET_FD
Definition bio.h:291
int(*)(BIO *) BIO_meth_get_create(const BIO_METHOD *bion)
Definition bio.h:781
#define BIO_CTRL_SET_CALLBACK
Definition bio.h:84
#define BIO_C_SET_CONNECT
Definition bio.h:287
#define BIO_C_GET_WRITE_GUARANTEE
Definition bio.h:328
#define BIO_do_handshake(b)
Definition bio.h:402
#define BIO_FLAGS_WRITE
Definition bio.h:145
#define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP
Definition bio.h:98
#define BIO_C_SET_BIND_MODE
Definition bio.h:318
#define BIO_C_GET_BIND_MODE
Definition bio.h:319
#define BIO_C_SSL_MODE
Definition bio.h:306
#define ossl_bio__attr__(x)
Definition bio.h:728
#define BIO_C_GET_SSL_NUM_RENEGOTIATES
Definition bio.h:313
#define BIO_C_GET_BUF_MEM_PTR
Definition bio.h:302
#define BIO_C_SET_FILE_PTR
Definition bio.h:293
#define BIO_C_SET_MD
Definition bio.h:298
#define BIO_CTRL_DGRAM_SET_PEER
Definition bio.h:113
#define BIO_C_GET_CONNECT
Definition bio.h:310
#define BIO_C_DESTROY_BIO_PAIR
Definition bio.h:327
#define BIO_SOCK_REUSEADDR
Definition bio.h:694
#define BIO_C_SET_SSL_RENEGOTIATE_BYTES
Definition bio.h:312
#define BIO_C_GET_BUFF_NUM_LINES
Definition bio.h:303
#define BIO_CTRL_DGRAM_GET_PEER
Definition bio.h:112
#define BIO_CTRL_GET_CLOSE
Definition bio.h:78
#define BIO_C_SET_BUF_MEM_EOF_RETURN
Definition bio.h:317
#define BIO_C_GET_SSL
Definition bio.h:297
#define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP
Definition bio.h:99
#define BIO_C_SHUTDOWN_WR
Definition bio.h:330
#define BIO_CTRL_RESET
Definition bio.h:71
#define BIO_CTRL_DUP
Definition bio.h:82
#define BIO_C_SET_NBIO
Definition bio.h:289
#define BIO_C_SET_FILENAME
Definition bio.h:295
#define BIO_CTRL_DGRAM_CONNECT
Definition bio.h:91
#define BIO_CTRL_DGRAM_SET_CONNECTED
Definition bio.h:92
#define BIO_C_GET_CIPHER_CTX
Definition bio.h:316
#define BIO_C_GET_FILE_PTR
Definition bio.h:294
int(*)(BIO *, char *, int) BIO_meth_get_gets(const BIO_METHOD *biom)
Definition bio.h:775
#define BIO_CTRL_PEEK
Definition bio.h:87
#define BIO_C_SET_BUF_MEM
Definition bio.h:301
#define BIO_CLOSE
Definition bio.h:66
#define BIO_FLAGS_SHOULD_RETRY
Definition bio.h:148
#define BIO_CTRL_GET
Definition bio.h:75
#define BIO_FP_APPEND
Definition bio.h:141
#define BIO_C_SET_MD_CTX
Definition bio.h:336
long(*)(BIO *, int, BIO_info_cb *) BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)
Definition bio.h:785
#define BIO_CTRL_GET_CALLBACK
Definition bio.h:85
int ERR_load_BIO_strings(void)
#define BN_BITS2
Definition bn.h:48
void BN_GENCB_set(BN_GENCB *gencb, int(*callback)(int, int, BN_GENCB *), void *cb_arg)
int BN_GENCB_call(BN_GENCB *cb, int a, int b)
BN_GENCB * BN_GENCB_new(void)
int BN_get_flags(const BIGNUM *b, int n)
void BN_set_flags(BIGNUM *b, int n)
void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags)
void * BN_GENCB_get_arg(BN_GENCB *cb)
void BN_GENCB_free(BN_GENCB *cb)
void BN_GENCB_set_old(BN_GENCB *gencb, void(*callback)(int, int, void *), void *cb_arg)
#define BN_FLG_CONSTTIME
Definition bn.h:61
int ERR_load_BN_strings(void)
int ERR_load_BUF_strings(void)
virtual std::unique_ptr< ArkApi::ICommands > & GetCommands()=0
std::mutex RequestMutex_
Definition Requests.cpp:47
void WriteRequest(std::function< void(bool, std::string)> callback, bool success, std::string result)
Definition Requests.cpp:73
std::string GetResponse(Poco::Net::HTTPClientSession *session, Poco::Net::HTTPResponse &response)
Definition Requests.cpp:107
Poco::Net::HTTPRequest ConstructRequest(const std::string &url, Poco::Net::HTTPClientSession *&session, const std::vector< std::string > &headers, const std::string &request_type)
Definition Requests.cpp:79
std::vector< RequestData > RequestsVec_
Definition Requests.cpp:46
Requests(Requests &&)=delete
ARK_API bool CreateGetRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, std::vector< std::string > headers={})
Creates an async GET Request that runs in another thread but calls the callback from the main thread.
Definition Requests.cpp:129
ARK_API bool CreatePostRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, const std::vector< std::string > &post_ids, const std::vector< std::string > &post_data, std::vector< std::string > headers={})
Creates an async POST Request that runs in another thread but calls the callback from the main thread...
Definition Requests.cpp:238
Requests & operator=(Requests &&)=delete
ARK_API bool CreateDeleteRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, std::vector< std::string > headers={})
Creates an async DELETE Request that runs in another thread but calls the callback from the main thre...
Definition Requests.cpp:292
Requests & operator=(const Requests &)=delete
ARK_API bool CreatePostRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, const std::string &post_data, std::vector< std::string > headers={})
Creates an async POST Request with application/x-www-form-urlencoded content type that runs in anothe...
Definition Requests.cpp:162
static ARK_API Requests & Get()
Definition Requests.cpp:67
ARK_API bool CreatePostRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, const std::string &post_data, const std::string &content_type, std::vector< std::string > headers={})
Creates an async POST Request that runs in another thread but calls the callback from the main thread...
Definition Requests.cpp:200
std::unique_ptr< impl > pimpl
Definition Requests.h:84
Requests(const Requests &)=delete
virtual void AddOnTickCallback(const FString &id, const std::function< void(float)> &callback)=0
Added function will be called every frame.
virtual bool RemoveOnTickCallback(const FString &id)=0
Removes a on-tick callback.
Definition Logger.h:9
static std::shared_ptr< spdlog::logger > & GetLog()
Definition Logger.h:22
virtual void disable()=0
Returns a deep copy of the AbstractDelegate.
AbstractDelegate(const AbstractDelegate &)
virtual const AbstractDelegate * unwrap() const
Disables the delegate, which is done prior to removal.
virtual AbstractDelegate * clone() const =0
Compares the AbstractDelegate with the other one for equality.
virtual bool notify(const void *sender)=0
virtual bool equals(const AbstractDelegate &other) const =0
Base class for Delegate and Expire.
virtual AbstractDelegate * clone() const =0
Compares the AbstractDelegate with the other one for equality.
AbstractDelegate(const AbstractDelegate &)
virtual bool equals(const AbstractDelegate &other) const =0
virtual void disable()=0
Returns a deep copy of the AbstractDelegate.
virtual bool notify(const void *sender, TArgs &arguments)=0
virtual const AbstractDelegate * unwrap() const
Disables the delegate, which is done prior to removal.
bool empty() const
Checks if any delegates are registered at the delegate.
bool _enabled
The strategy used to notify observers.
DelegateHandle add(const TDelegate &aDelegate)
ActiveResult< void > notifyAsync(const void *pSender)
AbstractEvent & operator=(const AbstractEvent &other)
void operator()(const void *pSender)
Shortcut for notify(pSender, args);.
ActiveMethod< void, NotifyAsyncParams, AbstractEvent > _executeAsync
void clear()
Removes all delegates.
void notify(const void *pSender, TArgs &args)
AbstractEvent & operator=(const AbstractEvent &other)
void remove(DelegateHandle delegateHandle)
void operator+=(const TDelegate &aDelegate)
bool isEnabled() const
Returns true if event is enabled.
ActiveMethod< TArgs, NotifyAsyncParams, AbstractEvent > _executeAsync
ActiveResult< TArgs > notifyAsync(const void *pSender, const TArgs &args)
bool empty() const
Checks if any delegates are registered at the delegate.
AbstractEvent(const AbstractEvent &other)
void operator()(TArgs &args)
Shortcut for notify(args).
bool hasDelegates() const
Returns true if there are registered delegates.
bool _enabled
The strategy used to notify observers.
TDelegate * DelegateHandle
TArgs executeAsyncImpl(const NotifyAsyncParams &par)
DelegateHandle add(const TDelegate &aDelegate)
AbstractEvent(const TStrategy &strat)
void operator()(const void *pSender, TArgs &args)
Shortcut for notify(pSender, args);.
void operator-=(const TDelegate &aDelegate)
void enable()
Enables the event.
ActiveMethod & operator=(const ActiveMethod &other)
ActiveRunnable< ResultType, void, OwnerType > ActiveRunnableType
ActiveResultType operator()(void)
Invokes the ActiveMethod.
void swap(ActiveMethod &other)
ActiveMethod(OwnerType *pOwner, Callback method)
ActiveResultType operator()(const ArgType &arg)
Invokes the ActiveMethod.
ActiveRunnable< ResultType, ArgType, OwnerType > ActiveRunnableType
ActiveResult< ResultType > ActiveResultType
ActiveMethod(const ActiveMethod &other)
OwnerType * _pOwner
ActiveMethod & operator=(const ActiveMethod &other)
ActiveResultHolder< void > ActiveResultHolderType
void swap(ActiveResult &result)
bool available() const
Returns true if a result is available.
ActiveResult & operator=(const ActiveResult &result)
Assignment operator.
ActiveResult(const ActiveResult &result)
Copy constructor.
Exception * exception() const
void wait()
Pauses the caller until the result becomes available.
std::string error() const
ActiveResultHolderType * _pHolder
~ActiveResult()
Destroys the result.
ActiveResult(ActiveResultHolderType *pHolder)
bool tryWait(long milliseconds)
void error(const Exception &exc)
Sets the failed flag and the exception message.
void wait(long milliseconds)
void wait()
Pauses the caller until the result becomes available.
void notify()
Notifies the invoking thread that the result became available.
void error(const Exception &exc)
Sets the exception.
bool tryWait(long milliseconds)
void wait(long milliseconds)
bool tryWait(long milliseconds)
std::string error() const
void wait(long milliseconds)
void wait()
Pauses the caller until the result becomes available.
void notify()
Notifies the invoking thread that the result became available.
void error(const Exception &exc)
Sets the exception.
Exception * exception() const
ResultType & data()
Returns a reference to the actual result.
void data(ResultType *pData)
bool tryWait(long milliseconds)
bool available() const
Returns true if a result is available.
void data(ResultType *pValue)
ResultType & data()
Exception * exception() const
ActiveResult & operator=(const ActiveResult &result)
Assignment operator.
void swap(ActiveResult &result)
ResultType & data() const
Returns a reference to the result data.
void wait(long milliseconds)
ActiveResultHolderType * _pHolder
void error(const Exception &exc)
Sets the failed flag and the exception message.
~ActiveResult()
Destroys the result.
ActiveResultHolder< ResultType > ActiveResultHolderType
bool failed() const
void wait()
Pauses the caller until the result becomes available.
ActiveResult(ActiveResultHolderType *pHolder)
std::string error() const
ActiveResult(const ActiveResult &result)
Copy constructor.
ActiveRunnable(OwnerType *pOwner, Callback method, const ActiveResultType &result)
ActiveRunnable(OwnerType *pOwner, Callback method, const ArgType &arg, const ActiveResultType &result)
void(OwnerType::* Callback)(const ArgType &)
ActiveRunnable(OwnerType *pOwner, Callback method, const ActiveResultType &result)
The base class for all ActiveRunnable instantiations.
ActiveResultType _result
ActiveResult< ResultType > ActiveResultType
ActiveRunnable(OwnerType *pOwner, Callback method, const ArgType &arg, const ActiveResultType &result)
static void start(OwnerType *, ActiveRunnableBase::Ptr pRunnable)
friend ValueType & RefAnyCast(Any &)
Definition Any.h:582
friend const ValueType & RefAnyCast(const Any &)
Definition Any.h:557
friend ValueType * UnsafeAnyCast(Any *)
Definition Any.h:607
friend ValueType * AnyCast(Any *)
Definition Any.h:481
friend ValueType AnyCast(Any &)
Definition Any.h:509
static bool isAscii(int ch)
Definition Ascii.h:136
static bool isAlpha(int ch)
Returns true iff the given character is a punctuation character.
Definition Ascii.h:178
static const int CHARACTER_PROPERTIES[128]
Definition Ascii.h:120
static bool isPrintable(int ch)
Definition Ascii.h:202
static bool isUpper(int ch)
Definition Ascii.h:196
static int toUpper(int ch)
Definition Ascii.h:217
static int toLower(int ch)
Returns true iff the given character is printable.
Definition Ascii.h:208
static bool isHexDigit(int ch)
Returns true iff the given character is a digit.
Definition Ascii.h:166
static bool isLower(int ch)
Returns true iff the given character is an alphabetic character.
Definition Ascii.h:190
CharacterProperties
ASCII character properties.
Definition Ascii.h:46
@ ACP_ALPHA
Definition Ascii.h:52
@ ACP_UPPER
Definition Ascii.h:54
@ ACP_SPACE
Definition Ascii.h:48
@ ACP_PRINT
Definition Ascii.h:56
@ ACP_LOWER
Definition Ascii.h:53
@ ACP_HEXDIGIT
Definition Ascii.h:51
@ ACP_GRAPH
Definition Ascii.h:55
@ ACP_CONTROL
Definition Ascii.h:47
@ ACP_DIGIT
Definition Ascii.h:50
@ ACP_PUNCT
Definition Ascii.h:49
static bool isPunct(int ch)
Returns true iff the given character is a hexadecimal digit.
Definition Ascii.h:172
static bool isAlphaNumeric(int ch)
Returns true iff the given character is an alphabetic character.
Definition Ascii.h:184
static bool hasProperties(int ch, int properties)
Definition Ascii.h:142
static int properties(int ch)
Definition Ascii.h:127
static bool isDigit(int ch)
Returns true iff the given character is a whitespace.
Definition Ascii.h:160
static bool hasSomeProperties(int ch, int properties)
Definition Ascii.h:148
static bool isSpace(int ch)
Definition Ascii.h:154
ValueType operator--()
Increments the counter and returns the previous value.
ValueType operator++()
Returns the value of the counter.
ValueType operator++(int)
Increments the counter and returns the result.
AtomicCounter(ValueType initialValue)
Creates a new AtomicCounter and initializes it to zero.
operator ValueType() const
Assigns a value to the counter.
ValueType operator--(int)
Decrements the counter and returns the result.
ValueType value() const
Converts the AtomicCounter to ValueType.
AtomicCounter & operator=(const AtomicCounter &counter)
Destroys the AtomicCounter.
AtomicCounter & operator=(ValueType value)
Assigns the value of another AtomicCounter.
AtomicCounter()
The underlying integer type.
bool operator!() const
Decrements the counter and returns the previous value.
AtomicCounter(const AtomicCounter &counter)
~AtomicCounter()
Creates the counter by copying another one.
std::atomic< int > _counter
Returns true if the counter is zero, false otherwise.
AutoPtr(C *ptr, bool shared)
Definition AutoPtr.h:73
C * operator->()
Definition AutoPtr.h:227
const C & operator*() const
Definition AutoPtr.h:251
bool operator!=(C *ptr) const
Definition AutoPtr.h:325
bool operator!=(const AutoPtr &ptr) const
Definition AutoPtr.h:315
AutoPtr & operator=(const AutoPtr &ptr)
Definition AutoPtr.h:178
bool operator>=(const AutoPtr &ptr) const
Definition AutoPtr.h:380
bool operator<(C *ptr) const
Definition AutoPtr.h:345
AutoPtr & operator=(const AutoPtr< Other > &ptr)
Definition AutoPtr.h:192
bool operator>(const C *ptr) const
Definition AutoPtr.h:370
bool operator>(const AutoPtr &ptr) const
Definition AutoPtr.h:365
const C * get() const
Definition AutoPtr.h:264
void reset(const AutoPtr &ptr)
Definition AutoPtr.h:162
bool operator!=(const C *ptr) const
Definition AutoPtr.h:320
bool operator<(const AutoPtr &ptr) const
Definition AutoPtr.h:335
AutoPtr(C *ptr)
Definition AutoPtr.h:69
void reset()
Definition AutoPtr.h:143
bool operator>=(C *ptr) const
Definition AutoPtr.h:390
void reset(C *ptr, bool shared)
Definition AutoPtr.h:157
void swap(AutoPtr &ptr)
Definition AutoPtr.h:197
bool operator!() const
Definition AutoPtr.h:279
bool operator<=(const AutoPtr &ptr) const
Definition AutoPtr.h:350
AutoPtr & operator=(AutoPtr &&ptr) noexcept
Definition AutoPtr.h:183
AutoPtr & assign(const AutoPtr< Other > &ptr)
Definition AutoPtr.h:132
AutoPtr< Other > cast() const
Definition AutoPtr.h:203
AutoPtr & assign(const AutoPtr &ptr)
Definition AutoPtr.h:120
AutoPtr & operator=(C *ptr)
Definition AutoPtr.h:173
AutoPtr(const AutoPtr &ptr)
Definition AutoPtr.h:78
bool operator==(const AutoPtr &ptr) const
Definition AutoPtr.h:295
AutoPtr(AutoPtr &&ptr) noexcept
Definition AutoPtr.h:83
C * duplicate()
Definition AutoPtr.h:289
C & operator*()
Definition AutoPtr.h:243
bool operator!=(std::nullptr_t ptr) const
Definition AutoPtr.h:330
bool operator==(C *ptr) const
Definition AutoPtr.h:305
bool operator<(const C *ptr) const
Definition AutoPtr.h:340
AutoPtr(const AutoPtr< Other > &ptr)
Definition AutoPtr.h:89
const C * operator->() const
Definition AutoPtr.h:235
void reset(const AutoPtr< Other > &ptr)
Definition AutoPtr.h:168
bool operator<=(C *ptr) const
Definition AutoPtr.h:360
AutoPtr & assign(C *ptr, bool shared)
Definition AutoPtr.h:109
AutoPtr< Other > unsafeCast() const
Definition AutoPtr.h:216
bool operator==(std::nullptr_t ptr) const
Definition AutoPtr.h:310
AutoPtr & assign(C *ptr)
Definition AutoPtr.h:99
void reset(C *ptr)
Definition AutoPtr.h:152
bool operator>(C *ptr) const
Definition AutoPtr.h:375
bool isNull() const
Definition AutoPtr.h:284
operator const C *() const
Definition AutoPtr.h:274
bool operator==(const C *ptr) const
Definition AutoPtr.h:300
bool operator>=(const C *ptr) const
Definition AutoPtr.h:385
bool operator<=(const C *ptr) const
Definition AutoPtr.h:355
BasicEvent & operator=(const BasicEvent &e)
BasicEvent(const BasicEvent &e)
BasicFIFOBuffer(const T *pBuffer, std::size_t size, bool notify=false)
Definition FIFOBuffer.h:100
bool isEOF() const
Returns true if EOF flag has been set and buffer is empty.
Definition FIFOBuffer.h:468
void drain(std::size_t length=0)
Definition FIFOBuffer.h:288
~BasicFIFOBuffer()
Destroys the FIFOBuffer.
Definition FIFOBuffer.h:111
bool isFull() const
Returns true is buffer is full, false otherwise.
Definition FIFOBuffer.h:480
bool isValid() const
Definition FIFOBuffer.h:435
Mutex & mutex()
Returns reference to mutex.
Definition FIFOBuffer.h:512
std::size_t read(T *pBuffer, std::size_t length)
Definition FIFOBuffer.h:174
void notify(std::size_t usedBefore)
Definition FIFOBuffer.h:519
bool isEmpty() const
Returns true is buffer is empty, false otherwise.
Definition FIFOBuffer.h:474
std::size_t peek(T *pBuffer, std::size_t length) const
Definition FIFOBuffer.h:136
bool getNotify() const
Returns true if notifications are enabled, false otherwise.
Definition FIFOBuffer.h:506
const Buffer< T > & buffer() const
Returns const reference to the underlying buffer.
Definition FIFOBuffer.h:402
Poco::BasicEvent< bool > readable
Definition FIFOBuffer.h:66
void advance(std::size_t length)
Definition FIFOBuffer.h:332
T * begin()
Returns the pointer to the beginning of the buffer.
Definition FIFOBuffer.h:356
std::size_t available() const
Returns the size of the available portion of the buffer.
Definition FIFOBuffer.h:282
std::size_t write(const T *pBuffer, std::size_t length)
Definition FIFOBuffer.h:219
bool isReadable() const
Definition FIFOBuffer.h:486
std::size_t write(const Buffer< T > &buffer, std::size_t length=0)
Definition FIFOBuffer.h:253
const T & operator[](std::size_t index) const
Definition FIFOBuffer.h:390
void setEOF(bool eof=true)
Definition FIFOBuffer.h:442
BasicFIFOBuffer(std::size_t size, bool notify=false)
Definition FIFOBuffer.h:78
void setError(bool error=true)
Definition FIFOBuffer.h:408
void resize(std::size_t newSize, bool preserveContent=true)
Definition FIFOBuffer.h:116
void setNotify(bool notify=true)
Enables/disables notifications.
Definition FIFOBuffer.h:500
std::size_t used() const
Returns the size of the used portion of the buffer.
Definition FIFOBuffer.h:276
BasicFIFOBuffer(const BasicFIFOBuffer &)
BasicFIFOBuffer & operator=(const BasicFIFOBuffer &)
void copy(const T *ptr, std::size_t length)
Definition FIFOBuffer.h:311
Poco::BasicEvent< bool > writable
Definition FIFOBuffer.h:54
T & operator[](std::size_t index)
Definition FIFOBuffer.h:378
bool hasEOF() const
Returns true if EOF flag has been set.
Definition FIFOBuffer.h:462
T * next()
Returns the pointer to the next available position in the buffer.
Definition FIFOBuffer.h:371
std::size_t read(Poco::Buffer< T > &buffer, std::size_t length=0)
Definition FIFOBuffer.h:197
std::size_t size() const
Returns the size of the buffer.
Definition FIFOBuffer.h:270
bool isWritable() const
Definition FIFOBuffer.h:493
std::size_t peek(Poco::Buffer< T > &buffer, std::size_t length=0) const
Definition FIFOBuffer.h:155
BasicFIFOBuffer(T *pBuffer, std::size_t size, bool notify=false)
Definition FIFOBuffer.h:89
A convenient wrapper for using Buffer and MemoryStream with BinaryReader.
const Buffer< T > & data() const
BasicMemoryBinaryReader(const Buffer< T > &data, TextEncoding &encoding, StreamByteOrder byteOrder=NATIVE_BYTE_ORDER)
MemoryInputStream & stream()
BasicMemoryBinaryReader(const Buffer< T > &data, StreamByteOrder byteOrder=NATIVE_BYTE_ORDER)
const MemoryInputStream & stream() const
const Buffer< T > & _data
A convenient wrapper for using Buffer and MemoryStream with BinarWriter.
BasicMemoryBinaryWriter(Buffer< T > &data, TextEncoding &encoding, StreamByteOrder byteOrder=NATIVE_BYTE_ORDER)
const MemoryOutputStream & stream() const
BasicMemoryBinaryWriter(Buffer< T > &data, StreamByteOrder byteOrder=NATIVE_BYTE_ORDER)
MemoryOutputStream & stream()
const Buffer< T > & data() const
std::streamsize charsWritten() const
std::basic_streambuf< ch, tr > Base
virtual pos_type seekoff(off_type off, std::ios_base::seekdir way, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out)
std::basic_ios< ch, tr > IOS
virtual int_type overflow(int_type)
BasicMemoryStreamBuf & operator=(const BasicMemoryStreamBuf &)
std::streamsize _bufferSize
virtual int_type underflow()
BasicMemoryStreamBuf(char_type *pBuffer, std::streamsize bufferSize)
BasicMemoryStreamBuf(const BasicMemoryStreamBuf &)
virtual int_type writeToDevice(char_type)
BasicUnbufferedStreamBuf(const BasicUnbufferedStreamBuf &)
static int_type charToInt(char_type c)
virtual int_type pbackfail(int_type c)
virtual int_type overflow(int_type c)
BasicUnbufferedStreamBuf & operator=(const BasicUnbufferedStreamBuf &)
std::basic_streambuf< ch, tr > Base
virtual std::streamsize xsgetn(char_type *p, std::streamsize count)
BinaryReader & operator>>(float &value)
void readBOM()
Reads length bytes of raw data into buffer.
BinaryReader(std::istream &istr, TextEncoding &encoding, StreamByteOrder byteOrder=NATIVE_BYTE_ORDER)
Creates the BinaryReader.
TextConverter * _pTextConverter
BinaryReader & operator>>(unsigned short &value)
std::streamsize available() const
Sets the stream to throw exception on specified state (default failbit and badbit);.
BinaryReader & operator>>(unsigned long &value)
BinaryReader & operator>>(int &value)
BinaryReader & operator>>(signed char &value)
BinaryReader & operator>>(double &value)
BinaryReader(std::istream &istr, StreamByteOrder byteOrder=NATIVE_BYTE_ORDER)
bool bad()
Returns _istr.fail();.
bool fail()
Returns _istr.good();.
BinaryReader & operator>>(long &value)
std::istream & _istr
Returns the number of available bytes in the stream.
BinaryReader & operator>>(bool &value)
Destroys the BinaryReader.
BinaryReader & operator>>(unsigned int &value)
void readRaw(char *buffer, std::streamsize length)
Reads length bytes of raw data into value.
@ NETWORK_BYTE_ORDER
big-endian (network) byte-order
@ UNSPECIFIED_BYTE_ORDER
little-endian byte-order
@ BIG_ENDIAN_BYTE_ORDER
the host's native byte-order
@ LITTLE_ENDIAN_BYTE_ORDER
big-endian (network) byte-order
BinaryReader & operator>>(short &value)
StreamByteOrder byteOrder() const
Returns the underlying stream.
void setExceptions(std::ios_base::iostate st=(std::istream::failbit|std::istream::badbit))
BinaryReader & operator>>(char &value)
void read7BitEncoded(UInt32 &value)
BinaryReader & operator>>(unsigned char &value)
std::istream & stream() const
Returns _istr.eof();.
bool eof()
Returns _istr.bad();.
BinaryWriter(std::ostream &ostr, StreamByteOrder byteOrder=NATIVE_BYTE_ORDER)
bool bad()
Returns _ostr.fail();.
bool fail()
Returns _ostr.good();.
void writeRaw(const char *buffer, std::streamsize length)
Writes the string as-is to the stream.
void write7BitEncoded(UInt32 value)
StreamByteOrder byteOrder() const
Returns the underlying stream.
TextConverter * _pTextConverter
void writeBOM()
Writes length raw bytes from the given buffer to the stream.
BinaryWriter(std::ostream &ostr, TextEncoding &encoding, StreamByteOrder byteOrder=NATIVE_BYTE_ORDER)
Creates the BinaryWriter.
std::ostream & stream() const
Returns _ostr.bad();.
std::ostream & _ostr
bool good()
Flushes the underlying stream.
@ LITTLE_ENDIAN_BYTE_ORDER
big-endian (network) byte-order
@ BIG_ENDIAN_BYTE_ORDER
the host's native byte-order
@ NETWORK_BYTE_ORDER
big-endian (network) byte-order
Buffer(const Buffer &other)
Definition Buffer.h:83
~Buffer()
Destroys the Buffer.
Definition Buffer.h:140
const T * begin() const
Returns a pointer to the beginning of the buffer.
Definition Buffer.h:311
Buffer(T *pMem, std::size_t length)
Definition Buffer.h:52
bool operator==(const Buffer &other) const
Compare operator.
Definition Buffer.h:262
std::size_t sizeBytes() const
Returns the used size of the buffer in bytes.
Definition Buffer.h:299
T & operator[](std::size_t index)
Definition Buffer.h:335
Buffer(const T *pMem, std::size_t length)
Definition Buffer.h:66
T * begin()
Returns a pointer to the beginning of the buffer.
Definition Buffer.h:305
Buffer & operator=(const Buffer &other)
Assignment operator.
Definition Buffer.h:110
std::size_t capacityBytes() const
Returns the allocated memory size in bytes.
Definition Buffer.h:245
std::size_t capacity() const
Returns the allocated memory size in elements.
Definition Buffer.h:239
void setCapacity(std::size_t newCapacity, bool preserveContent=true)
Definition Buffer.h:174
const T * end() const
Returns a pointer to the end of the buffer.
Definition Buffer.h:323
void assign(const T *buf, std::size_t sz)
Definition Buffer.h:208
Buffer(Buffer &&other) noexcept
Definition Buffer.h:97
bool _ownMem
Definition Buffer.h:355
bool operator!=(const Buffer &other) const
Compare operator.
Definition Buffer.h:281
void resize(std::size_t newCapacity, bool preserveContent=true)
Definition Buffer.h:146
const T & operator[](std::size_t index) const
Definition Buffer.h:342
void append(const T *buf, std::size_t sz)
Resizes this buffer and appends the argument buffer.
Definition Buffer.h:218
std::size_t size() const
Returns the used size of the buffer in elements.
Definition Buffer.h:293
void clear()
Sets the contents of the buffer to zero.
Definition Buffer.h:287
Buffer(std::size_t length)
Definition Buffer.h:39
bool empty() const
Return true if buffer is empty.
Definition Buffer.h:329
std::size_t _used
Definition Buffer.h:353
Buffer & operator=(Buffer &&other) noexcept
Move assignment operator.
Definition Buffer.h:122
void append(const Buffer &buf)
Resizes this buffer and appends the argument buffer.
Definition Buffer.h:233
void append(T val)
Resizes this buffer by one element and appends the argument value.
Definition Buffer.h:226
T * end()
Returns a pointer to end of the buffer.
Definition Buffer.h:317
std::size_t _capacity
Definition Buffer.h:352
void swap(Buffer &other)
Swaps the buffer with another one.
Definition Buffer.h:251
static std::string what(const char *msg, const char *file, int line, const char *text=0)
static void bugcheck(const char *msg, const char *file, int line)
static void nullPointer(const char *ptr, const char *file, int line)
static void debugger(const char *msg, const char *file, int line)
static void debugger(const char *file, int line)
static void bugcheck(const char *file, int line)
static void assertion(const char *cond, const char *file, int line, const char *text=0)
static void unexpected(const char *file, int line)
void setKey(RSA *pKey)
Definition EVPPKey.h:349
~EVPPKey()
Assignment move operator.
bool operator!=(const EVPPKey &other) const
Definition EVPPKey.h:304
void duplicate(EVP_PKEY *pEVPPKey)
static EVP_PKEY * duplicate(const EVP_PKEY *pFromKey, EVP_PKEY **pToKey)
Returns pointer to the OpenSSL EVP_PKEY structure.
int type() const
Definition EVPPKey.h:318
void newECKey(const char *group)
void setKey(ECKey *pKey)
EVPPKey(const char *ecCurveName)
EVPPKey & operator=(EVPPKey &&other) noexcept
Assignment operator.
void setKey(RSAKey *pKey)
EVPPKey(EVP_PKEY *pEVPPKey)
bool isSupported(int type) const
Retuns the EVPPKey type NID.
Definition EVPPKey.h:324
EVPPKey(const EVPPKey &other)
void setKey(EC_KEY *pKey)
Definition EVPPKey.h:342
EVPPKey()
Duplicates pFromKey into *pToKey and returns.
EVPPKey(EVPPKey &&other) noexcept
Copy constructor.
static int passCB(char *buf, int size, int, void *pass)
operator EVP_PKEY *()
Returns const pointer to the OpenSSL EVP_PKEY structure.
Definition EVPPKey.h:336
void *(* EVP_PKEY_get_Key_fn)(EVP_PKEY *)
Definition EVPPKey.h:155
static int type(const EVP_PKEY *pEVPPKey)
Definition EVPPKey.h:310
operator const EVP_PKEY *() const
Returns true if OpenSSL type is supported.
Definition EVPPKey.h:330
EVPPKey & operator=(const EVPPKey &other)
Move constructor.
EVP_PKEY * _pEVPPKey
Definition EVPPKey.h:284
bool operator==(const EVPPKey &other) const
Destroys the EVPPKey.
Definition EVPPKey.h:296
virtual ~KeyPair()
Move assignment.
const std::string & name() const
Returns the impl object.
Definition KeyPair.h:123
KeyPairImpl::Ptr _pImpl
Returns key pair type.
Definition KeyPair.h:94
Type type() const
Returns key pair name.
Definition KeyPair.h:135
KeyPair & operator=(const KeyPair &other)
Move constructor.
KeyPair(KeyPair &&other) noexcept
Copy constructor.
KeyPairImpl::Ptr impl() const
Definition KeyPair.h:129
KeyPair(KeyPairImpl::Ptr pKeyPairImpl=0)
KeyPair(const KeyPair &other)
Extracts the RSA public key from the given certificate.
KeyPair & operator=(KeyPair &&other) noexcept
Assignment.
virtual int size() const
Destroys the KeyPair.
Definition KeyPair.h:101
Class KeyPairImpl.
Definition KeyPairImpl.h:36
const std::string & name() const
Definition KeyPairImpl.h:92
virtual int size() const =0
Destroys the KeyPairImpl.
OpenSSLInitializer _openSSLInitializer
Definition KeyPairImpl.h:83
virtual ~KeyPairImpl()
Create KeyPairImpl with specified type and name.
KeyPairImpl()
Returns key pair type.
Type type() const
Returns key pair name.
Definition KeyPairImpl.h:98
const char * name() const noexcept
OpenSSLException(const OpenSSLException &exc)
const char * className() const noexcept
Poco::Exception * clone() const
OpenSSLException & operator=(const OpenSSLException &exc)
static struct CRYPTO_dynlock_value * dynlockCreate(const char *file, int line)
static void uninitialize()
Initializes the OpenSSL machinery.
static void initialize()
Automatically shut down OpenSSL on exit.
~OpenSSLInitializer()
Automatically initialize OpenSSL on startup.
static void lock(int mode, int n, const char *file, int line)
static unsigned long id()
static Poco::AtomicCounter _rc
static void enableFIPSMode(bool enabled)
static Poco::FastMutex * _mutexes
static void dynlock(int mode, struct CRYPTO_dynlock_value *lock, const char *file, int line)
static bool isFIPSEnabled()
Shuts down the OpenSSL machinery.
static void dynlockDestroy(struct CRYPTO_dynlock_value *lock, const char *file, int line)
RSAKey(KeyLength keyLength, Exponent exp)
Extracts the RSA private key from the given certificate.
RSAKeyImpl::ByteVec modulus() const
Move assignment.
RSAKeyImpl::ByteVec encryptionExponent() const
Returns the RSA modulus.
RSAKey(const PKCS12Container &cert)
Extracts the RSA public key from the given certificate.
RSAKey(const X509Certificate &cert)
Constructs ECKeyImpl by extracting the EC key.
RSAKey(RSAKey &&other) noexcept
Copy constructor.
RSAKey(const EVPPKey &key)
RSAKeyImpl::Ptr impl() const
Returns the RSA decryption exponent.
Definition RSAKey.h:125
RSAKey & operator=(RSAKey &&other) noexcept
Assignment.
RSAKey & operator=(const RSAKey &other)
Destroys the RSAKey.
RSAKey(const RSAKey &other)
~RSAKey()
Move constructor.
RSAKeyImpl::ByteVec decryptionExponent() const
Returns the RSA encryption exponent.
class RSAKeyImpl
Definition RSAKeyImpl.h:48
int size() const
Returns the OpenSSL RSA object.
RSAKeyImpl(const PKCS12Container &cert)
Extracts the RSA public key from the given certificate.
RSAKeyImpl(const EVPPKey &key)
RSAKeyImpl(int keyLength, unsigned long exponent)
Extracts the EC private key from the given certificate.
ByteVec decryptionExponent() const
Returns the RSA encryption exponent.
ByteVec encryptionExponent() const
Returns the RSA modulus.
RSA * getRSA()
Destroys the RSAKeyImpl.
Definition RSAKeyImpl.h:126
static ByteVec convertToByteVec(const BIGNUM *bn)
const RSA * getRSA() const
Returns the OpenSSL RSA object.
Definition RSAKeyImpl.h:132
ByteVec modulus() const
Returns the RSA modulus size.
RSAKeyImpl(const X509Certificate &cert)
Constructs ECKeyImpl by extracting the EC key.
This class represents a X509 Certificate.
void swap(X509Certificate &cert)
Move assignment.
std::string subjectName(NID nid) const
Returns the certificate subject's distinguished name.
bool equals(const X509Certificate &otherCertificate) const
const X509 * certificate() const
Poco::DateTime expiresOn() const
Returns the date and time the certificate is valid from.
X509Certificate(X509 *pCert, bool shared)
std::string issuerName(NID nid) const
Returns the certificate issuer's distinguished name.
const std::string & subjectName() const
X509Certificate(const X509Certificate &cert)
const std::string & serialNumber() const
Returns the version of the certificate.
X509Certificate & operator=(const X509Certificate &cert)
Creates the certificate by moving another one.
X509 * dup() const
Returns the underlying OpenSSL certificate.
~X509Certificate()
Exchanges the certificate with another one.
bool issuedBy(const X509Certificate &issuerCertificate) const
const std::string & issuerName() const
long version() const
Destroys the X509Certificate.
X509Certificate(X509Certificate &&cert) noexcept
Creates the certificate by copying another one.
void load(std::istream &stream)
Writes the list of certificates to the specified PEM file.
std::string signatureAlgorithm() const
void print(std::ostream &out) const
Returns the certificate signature algorithm long name.
Poco::DateTime validFrom() const
X509Certificate(std::istream &istr)
std::string commonName() const
void save(std::ostream &stream) const
OpenSSLInitializer _openSSLInitializer
X509Certificate & operator=(X509Certificate &&cert) noexcept
Assigns a certificate.
void swap(DateTime &dateTime)
bool operator<=(const DateTime &dateTime) const
Definition DateTime.h:410
short _millisecond
Definition DateTime.h:286
DateTime & operator-=(const Timespan &span)
int millisecond() const
Returns the second (0 to 59).
Definition DateTime.h:380
static bool isValid(int year, int month, int day, int hour=0, int minute=0, int second=0, int millisecond=0, int microsecond=0)
bool operator!=(const DateTime &dateTime) const
Definition DateTime.h:398
static bool isLeapYear(int year)
Converts a UTC time into a local time, by applying the given time zone differential.
Definition DateTime.h:428
void makeUTC(int tzd)
Converts DateTime to tm struct.
DateTime(double julianDay)
int microsecond() const
Returns the millisecond (0 to 999)
Definition DateTime.h:386
Timestamp::UtcTimeVal utcTime() const
Returns the date and time expressed as a Timestamp.
Definition DateTime.h:315
Months
Symbolic names for month numbers (1 to 12).
Definition DateTime.h:66
bool operator<(const DateTime &dateTime) const
Definition DateTime.h:404
void computeDaytime()
int hour() const
Definition DateTime.h:339
DateTime & operator=(double julianDay)
Assigns a Timestamp.
bool operator>(const DateTime &dateTime) const
Definition DateTime.h:416
bool operator>=(const DateTime &dateTime) const
Definition DateTime.h:422
bool isPM() const
Returns true if hour < 12;.
Definition DateTime.h:362
int day() const
Definition DateTime.h:333
short _microsecond
Definition DateTime.h:287
int dayOfYear() const
int hourAMPM() const
Returns the hour (0 to 23).
Definition DateTime.h:345
double julianDay() const
Returns the microsecond (0 to 999)
static double toJulianDay(int year, int month, int day, int hour=0, int minute=0, int second=0, int millisecond=0, int microsecond=0)
Computes the Julian day for an UTC time.
DaysOfWeek
Symbolic names for week day numbers (0 to 6).
Definition DateTime.h:83
DateTime & operator=(const DateTime &dateTime)
Destroys the DateTime.
void makeLocal(int tzd)
Converts a local time into UTC, by applying the given time zone differential.
DateTime(const Timestamp &timestamp)
Creates a DateTime from tm struct.
static double toJulianDay(Timestamp::UtcTimeVal utcTime)
Definition DateTime.h:296
Timespan operator-(const DateTime &dateTime) const
tm makeTM() const
DateTime operator-(const Timespan &span) const
DateTime & operator+=(const Timespan &span)
static Timestamp::UtcTimeVal toUtcTime(double julianDay)
Definition DateTime.h:303
Timestamp timestamp() const
Returns the julian day for the date and time.
Definition DateTime.h:309
int week(int firstDayOfWeek=MONDAY) const
Returns the month (1 to 12).
int second() const
Returns the minute (0 to 59).
Definition DateTime.h:374
~DateTime()
Copy constructor. Creates the DateTime from another one.
bool operator==(const DateTime &dateTime) const
Definition DateTime.h:392
int year() const
Swaps the DateTime with another one.
Definition DateTime.h:321
static int daysOfMonth(int year, int month)
void computeGregorian(double julianDay)
Computes the UTC time for a Julian day.
int dayOfWeek() const
Returns the day within the month (1 to 31).
DateTime & assign(int year, int month, int day, int hour=0, int minute=0, int second=0, int millisecond=0, int microseconds=0)
Assigns a Julian day.
void checkLimit(short &lower, short &higher, short limit)
Extracts the daytime (hours, minutes, seconds, etc.) from the stored utcTime.
DateTime(const DateTime &dateTime)
Timestamp::UtcTimeVal _utcTime
utility functions used to correct the overflow in computeGregorian
Definition DateTime.h:279
int month() const
Returns the year.
Definition DateTime.h:327
DateTime(int year, int month, int day, int hour=0, int minute=0, int second=0, int millisecond=0, int microsecond=0)
DateTime(const tm &tmStruct)
Creates a DateTime for the current date and time.
DateTime(Timestamp::UtcTimeVal utcTime, Timestamp::TimeDiff diff)
Creates a DateTime for the given Julian day.
DateTime & operator=(const Timestamp &timestamp)
Assigns another DateTime.
DateTime operator+(const Timespan &span) const
int minute() const
Returns true if hour >= 12.
Definition DateTime.h:368
bool isAM() const
Returns the hour (0 to 12).
Definition DateTime.h:356
DefaultStrategy(const DefaultStrategy &s)
bool empty() const
Removes all delegates from the strategy.
DefaultStrategy & operator=(const DefaultStrategy &s)
void remove(const TDelegate &delegate)
Adds a delegate to the strategy.
DelegateHandle add(const TDelegate &delegate)
Sends a notification to all registered delegates.
void remove(DelegateHandle delegateHandle)
DelegateHandle add(const TDelegate &delegate)
Sends a notification to all registered delegates.
void remove(const TDelegate &delegate)
Adds a delegate to the strategy.
bool empty() const
Removes all delegates from the strategy.
void remove(DelegateHandle delegateHandle)
DefaultStrategy(const DefaultStrategy &s)
DefaultStrategy & operator=(const DefaultStrategy &s)
void notify(const void *sender, TArgs &arguments)
virtual void updateImpl(const void *data, std::size_t length)=0
virtual const Digest & digest()=0
void update(char data)
DigestEngine & operator=(const DigestEngine &)
virtual std::size_t digestLength() const =0
Updates the digest with the given data.
DigestEngine(const DigestEngine &)
void update(const void *data, std::size_t length)
virtual void reset()=0
Returns the length of the digest in bytes.
virtual ~DigestEngine()
void wait()
Definition Event.h:105
void reset()
Definition Event.h:124
bool tryWait(long milliseconds)
Definition Event.h:118
Event & operator=(const Event &)
void wait(long milliseconds)
Waits for the event to become signalled.
Definition Event.h:111
Event(bool autoReset)
@ EVENT_AUTORESET
Manual reset event.
Definition Event.h:50
@ EVENT_MANUALRESET
Definition Event.h:49
~Event()
Please use Event::Event(EventType) instead.
void set()
Destroys the event.
Definition Event.h:99
Event(EventType type=EVENT_AUTORESET)
Event(const Event &)
Resets the event to unsignalled state.
bool waitImpl(long milliseconds)
Exception(const Exception &exc)
virtual const char * what() const noexcept
Returns the name of the exception class.
const std::string & message() const
Definition Exception.h:116
void message(const std::string &msg)
Standard constructor.
Definition Exception.h:122
Exception(const std::string &msg, const Exception &nested, int code=0)
Creates an exception.
std::string _msg
Sets the extended message for the exception.
Definition Exception.h:101
Exception(const std::string &msg, const std::string &arg, int code=0)
Creates an exception.
const Exception * nested() const
Definition Exception.h:110
Exception * _pNested
Definition Exception.h:102
virtual Exception * clone() const
Exception & operator=(const Exception &exc)
Destroys the exception and deletes the nested exception.
Exception(int code=0)
virtual void rethrow() const
void extendedMessage(const std::string &arg)
Sets the message for the exception.
virtual const char * name() const noexcept
Assignment operator.
int code() const
Returns the message text.
Definition Exception.h:128
~Exception() noexcept
Copy constructor.
std::string displayText() const
Returns the exception code if defined.
Exception(const std::string &msg, int code=0)
virtual const char * className() const noexcept
Returns a static string describing the exception.
void unlock()
Definition Mutex.h:333
bool tryLock(long milliseconds)
Definition Mutex.h:327
~FastMutex()
creates the Mutex.
void lock()
destroys the Mutex.
Definition Mutex.h:308
bool tryLock()
Definition Mutex.h:321
FastMutex(const FastMutex &)
void lock(long milliseconds)
Definition Mutex.h:314
FastMutex & operator=(const FastMutex &)
MemoryStreamBuf _buf
Returns a pointer to the underlying streambuf.
MemoryIOS(char *pBuffer, std::streamsize bufferSize)
MemoryStreamBuf * rdbuf()
Destroys the stream.
~MemoryIOS()
Creates the basic stream.
An input stream for reading from a memory area.
MemoryInputStream(const char *pBuffer, std::streamsize bufferSize)
An input stream for reading from a memory area.
std::streamsize charsWritten() const
Destroys the MemoryInputStream.
MemoryOutputStream(char *pBuffer, std::streamsize bufferSize)
bool tryLock(long milliseconds)
Definition Mutex.h:292
void lock(long milliseconds)
Definition Mutex.h:279
void unlock()
Definition Mutex.h:298
void lock()
destroys the Mutex.
Definition Mutex.h:273
Mutex & operator=(const Mutex &)
bool tryLock()
Definition Mutex.h:286
Mutex(const Mutex &)
~Mutex()
creates the Mutex.
bool tryLockImpl(long milliseconds)
virtual InvalidCertificateHandler * create(bool server) const =0
Destroys the CertificateHandlerFactory.
virtual ~CertificateHandlerFactory()
Creates the CertificateHandlerFactory.
InvalidCertificateHandler * create(bool server) const
Destroys the CertificateHandlerFactory.
A CertificateHandlerFactoryMgr manages all existing CertificateHandlerFactories.
~CertificateHandlerFactoryMgr()
Creates the CertificateHandlerFactoryMgr.
FactoriesMap _factories
Removes the factory from the manager.
virtual ~CertificateHandlerFactoryRegistrar()
Registers the CertificateHandlerFactory with the given name at the factory manager.
void init(const Params &params)
void setSessionCacheSize(std::size_t size)
Returns true iff the session cache is enabled.
std::size_t getSessionCacheSize() const
Context::VerificationMode verificationMode() const
Returns true iff the context is for use by a server.
Definition Context.h:466
void requireMinimumProtocol(Protocols protocol)
void enableExtendedCertificateVerification(bool flag=true)
void setInvalidCertificateHandler(InvalidCertificateHandlerPtr pInvalidCertificageHandler)
Usage _usage
Create a SSL_CTX object according to Context configuration.
Definition Context.h:437
Usage usage() const
Returns the underlying OpenSSL SSL Context object.
Definition Context.h:449
SSL_CTX * sslContext() const
Definition Context.h:472
long getSessionTimeout() const
void usePrivateKey(const Poco::Crypto::RSAKey &key)
Add one trusted certification authority to be used by the Context.
void enableSessionCache(bool flag=true)
Returns the verification mode.
void addCertificateAuthority(const Poco::Crypto::X509Certificate &certificate)
Adds a certificate for certificate chain validation.
void usePrivateKey(const Poco::Crypto::EVPPKey &pkey)
bool extendedCertificateVerificationEnabled() const
Definition Context.h:478
bool isForServerUse() const
Definition Context.h:455
void addChainCertificate(const Poco::Crypto::X509Certificate &certificate)
bool _ocspStaplingResponseVerification
Definition Context.h:441
bool ocspStaplingResponseVerificationEnabled() const
Definition Context.h:484
bool _extendedCertificateVerification
Definition Context.h:440
VerificationMode _mode
Definition Context.h:438
@ SERVER_USE
DEPRECATED. Context is used by a client.
Definition Context.h:71
@ TLSV1_2_CLIENT_USE
DEPRECATED. Context is used by a server requiring TLSv1.1 (OpenSSL 1.0.0 or newer).
Definition Context.h:76
@ TLSV1_CLIENT_USE
DEPRECATED. Context is used by a server.
Definition Context.h:72
@ TLSV1_3_SERVER_USE
DEPRECATED. Context is used by a client requiring TLSv1.3 (OpenSSL 1.1.1 or newer).
Definition Context.h:79
@ CLIENT_USE
Context is used by a client for TLSv1 or higher. Use requireMinimumProtocol() or disableProtocols() t...
Definition Context.h:70
@ TLSV1_2_SERVER_USE
DEPRECATED. Context is used by a client requiring TLSv1.2 (OpenSSL 1.0.1 or newer).
Definition Context.h:77
@ TLSV1_SERVER_USE
DEPRECATED. Context is used by a client requiring TLSv1.
Definition Context.h:73
@ TLSV1_3_CLIENT_USE
DEPRECATED. Context is used by a server requiring TLSv1.2 (OpenSSL 1.0.1 or newer).
Definition Context.h:78
@ TLS_SERVER_USE
Context is used by a client for TLSv1 or higher. Use requireMinimumProtocol() or disableProtocols() t...
Definition Context.h:69
@ TLSV1_1_CLIENT_USE
DEPRECATED. Context is used by a server requiring TLSv1.
Definition Context.h:74
@ TLSV1_1_SERVER_USE
DEPRECATED. Context is used by a client requiring TLSv1.1 (OpenSSL 1.0.0 or newer).
Definition Context.h:75
void useCertificate(const Poco::Crypto::X509Certificate &certificate)
Destroys the Context.
void preferServerCiphers()
Context(Usage usage, const Params &params)
InvalidCertificateHandlerPtr _pInvalidCertificateHandler
Definition Context.h:442
void setSessionTimeout(long seconds)
InvalidCertificateHandlerPtr getInvalidCertificateHandler() const
Definition Context.h:490
void disableStatelessSessionResumption()
bool sessionCacheEnabled() const
void disableProtocols(int protocols)
SSL_CTX * _pSSLContext
Definition Context.h:439
void parse(std::string::const_iterator first, std::string::const_iterator last)
virtual ~HTTPAuthenticationParams()
See fromResponse() documentation.
HTTPAuthenticationParams(const HTTPRequest &request)
See fromAuthInfo() documentation.
HTTPAuthenticationParams & operator=(const HTTPAuthenticationParams &authParams)
Destroys the HTTPAuthenticationParams.
const std::string & getRealm() const
Sets the "realm" parameter to the provided string.
void fromRequest(const HTTPRequest &request)
HTTPBasicCredentials(const HTTPBasicCredentials &)
HTTPBasicCredentials & operator=(const HTTPBasicCredentials &)
HTTPBasicCredentials(const HTTPRequest &request)
Creates a HTTPBasicCredentials object with the given username and password.
const std::string & getPassword() const
Sets the password.
static const std::string SCHEME
Adds proxy authentication information to the given HTTPRequest.
const std::string & getUsername() const
Sets the username.
void authenticate(HTTPRequest &request) const
Returns true if both username and password are empty, otherwise false.
bool empty() const
Returns the password.
void clear()
Destroys the HTTPBasicCredentials.
void proxyAuthenticate(HTTPRequest &request) const
Adds authentication information to the given HTTPRequest.
void proxyAuthenticateDigest(HTTPRequest &request)
HTTPClientSession(const SocketAddress &address)
const std::string & getHost() const
virtual void proxyAuthenticate(HTTPRequest &request)
Checks if we can reuse a persistent connection.
static ProxyConfig _globalProxyConfig
@ PROXY_AUTH_HTTP_BASIC
No proxy authentication.
@ PROXY_AUTH_HTTP_DIGEST
HTTP Basic proxy authentication (default, if username and password are supplied)
@ PROXY_AUTH_NTLM
HTTP Digest proxy authentication.
HTTPClientSession(const StreamSocket &socket)
Creates an unconnected HTTPClientSession.
std::ostream & sendRequestImpl(const HTTPRequest &request)
Tries to re-connect if keep-alive is on.
const ProxyConfig & getProxyConfig() const
Sets the proxy configuration.
const std::string & getProxyHost() const
Sets the port number of the proxy server.
virtual std::istream & receiveResponse(HTTPResponse &response)
Poco::SharedPtr< std::ostream > _pRequestStream
virtual bool peekResponse(HTTPResponse &response)
virtual std::ostream & sendRequest(HTTPRequest &request)
Returns the connection timeout for HTTP connections.
void proxyAuthenticateImpl(HTTPRequest &request, const ProxyConfig &proxyConfig)
virtual bool mustReconnect() const
void proxyAuthenticateNTLM(HTTPRequest &request)
Initiates a HTTP Digest authentication handshake with the proxy.
const std::string & getProxyUsername() const
Poco::SharedPtr< std::istream > _pResponseStream
void setProxyConfig(const ProxyConfig &config)
Returns the password for proxy authentication.
void setKeepAliveTimeout(const Poco::Timespan &timeout)
Returns the global proxy configuration.
const Poco::Timespan & getKeepAliveTimeout() const
Sets the connection timeout for HTTP connections.
static void setGlobalProxyConfig(const ProxyConfig &config)
Returns the proxy configuration.
HTTPDigestCredentials _proxyDigestCreds
const std::string & getProxyPassword() const
void setProxyPort(Poco::UInt16 port)
Sets the host name of the proxy server.
int write(const char *buffer, std::streamsize length)
Connects the underlying socket to the HTTP server.
HTTPNTLMCredentials _proxyNTLMCreds
static const ProxyConfig & getGlobalProxyConfig()
void sendChallengeRequest(const HTTPRequest &request, HTTPResponse &response)
Initiates a HTTP NTLM authentication handshake with the proxy.
virtual ~HTTPClientSession()
Creates a HTTPClientSession using the given host, port and proxy configuration.
HTTPClientSession & operator=(const HTTPClientSession &)
virtual bool secure() const
Poco::UInt16 getProxyPort() const
Returns the proxy host name.
void setPort(Poco::UInt16 port)
Returns the host name of the target HTTP server.
HTTPBasicCredentials _proxyBasicCreds
HTTPClientSession(const HTTPClientSession &)
virtual std::string proxyRequestPrefix() const
Sends the given HTTPRequest over an existing connection.
void updateAuthParams(const HTTPRequest &request)
HTTPAuthenticationParams _requestAuthParams
void authenticate(HTTPRequest &request, const HTTPAuthenticationParams &responseAuthParams)
HTTPDigestCredentials & operator=(const HTTPDigestCredentials &)
static const std::string SCHEME
Creates a random nonce string.
void proxyAuthenticate(HTTPRequest &request, const HTTPAuthenticationParams &responseAuthParams)
static const std::string ALGORITHM_PARAM
bool empty() const
Returns the password.
bool verifyAuthParams(const HTTPRequest &request, const HTTPAuthenticationParams &params) const
HTTPDigestCredentials(const HTTPDigestCredentials &)
static std::string createNonce()
void updateProxyAuthInfo(HTTPRequest &request)
void authenticate(HTTPRequest &request, const HTTPResponse &response)
Returns true if both username and password are empty, otherwise false.
static const std::string DEFAULT_ALGORITHM
bool verifyAuthInfo(const HTTPRequest &request) const
const std::string & getUsername() const
Sets the username.
std::map< std::string, int > NonceCounterMap
static const std::string USERNAME_PARAM
void reset()
Destroys the HTTPDigestCredentials.
const std::string & getPassword() const
Sets the password.
void createAuthParams(const HTTPRequest &request, const HTTPAuthenticationParams &responseAuthParams)
void proxyAuthenticate(HTTPRequest &request, const HTTPResponse &response)
static const std::string RESPONSE_PARAM
~HTTPDigestCredentials()
Creates a HTTPDigestCredentials object with the given username and password.
void updateAuthInfo(HTTPRequest &request)
std::string _version
Destroys the HTTPMessage.
static const std::string EMPTY
static const std::string CHUNKED_TRANSFER_ENCODING
static const std::string CONTENT_LENGTH
HTTPMessage & operator=(const HTTPMessage &other)
Copy constructor.
static const std::string PROXY_CONNECTION
static const std::string CONNECTION_CLOSE
virtual ~HTTPMessage()
Assignment operator.
void setKeepAlive(bool keepAlive)
const std::string & getVersion() const
Sets the HTTP version for this message.
HTTPMessage(const HTTPMessage &other)
static const int UNKNOWN_CONTENT_LENGTH
const std::string & getTransferEncoding() const
std::streamsize getContentLength() const
void setChunkedTransferEncoding(bool flag)
static const std::string HTTP_1_1
bool hasContentLength() const
static const std::string HTTP_1_0
void setContentType(const MediaType &mediaType)
bool getChunkedTransferEncoding() const
bool getKeepAlive() const
void setContentLength(std::streamsize length)
Returns the HTTP version for this message.
static const std::string CONNECTION
const std::string & getContentType() const
Sets the content type for this message.
static const std::string TRANSFER_ENCODING
static const std::string IDENTITY_TRANSFER_ENCODING
static const std::string UNKNOWN_CONTENT_TYPE
static const std::string CONNECTION_KEEP_ALIVE
static const std::string CONTENT_TYPE
void updateProxyAuthInfo(HTTPRequest &request)
HTTPNTLMCredentials & operator=(const HTTPNTLMCredentials &)
bool empty() const
Returns the password.
static const std::string SCHEME
const std::string & getHost() const
~HTTPNTLMCredentials()
Creates a HTTPNTLMCredentials object with the given username, password and target host.
HTTPNTLMCredentials(const HTTPNTLMCredentials &)
Poco::SharedPtr< NTLMContext > _pNTLMContext
const std::string & getUsername() const
Sets the username.
void proxyAuthenticate(HTTPRequest &request, const HTTPResponse &response)
void reset()
Destroys the HTTPNTLMCredentials.
const std::string & getPassword() const
Sets the password.
void authenticate(HTTPRequest &request, const HTTPResponse &response)
Returns the target host.
void updateAuthInfo(HTTPRequest &request)
void setCookies(const NameValueCollection &cookies)
void setURI(const std::string &uri)
Returns the method.
static const std::string HTTP_TRACE
static const std::string HTTP_OPTIONS
void setExpectContinue(bool expectContinue)
static const std::string HTTP_CONNECT
const std::string & getURI() const
Sets the request URI.
void read(std::istream &istr)
virtual ~HTTPRequest()
Creates a HTTP request by copying another one.
void setProxyCredentials(const std::string &scheme, const std::string &authInfo)
static const std::string HTTP_PATCH
static const std::string HOST
void getCookies(NameValueCollection &cookies) const
static const std::string HTTP_PUT
void setCredentials(const std::string &scheme, const std::string &authInfo)
const std::string & getMethod() const
Sets the method.
void getCredentials(const std::string &header, std::string &scheme, std::string &authInfo) const
HTTPRequest(const std::string &version)
Creates a GET / HTTP/1.0 HTTP request.
bool getExpectContinue() const
Removes any credentials from the request.
HTTPRequest(const std::string &method, const std::string &uri)
HTTPRequest(const HTTPRequest &other)
Creates a HTTP request with the given method, URI and version.
bool hasProxyCredentials() const
static const std::string AUTHORIZATION
void write(std::ostream &ostr) const
Removes any proxy credentials from the request.
HTTPRequest & operator=(const HTTPRequest &)
Destroys the HTTPRequest.
void setMethod(const std::string &method)
Assignment operator.
void setCredentials(const std::string &header, const std::string &scheme, const std::string &authInfo)
HTTPRequest(const std::string &method, const std::string &uri, const std::string &version)
Creates a HTTP/1.0 request with the given method and URI.
static const std::string PROXY_AUTHORIZATION
void setHost(const std::string &host, Poco::UInt16 port)
Sets the value of the Host header field.
static const std::string EXPECT
void setHost(const std::string &host)
Returns the request URI.
void getProxyCredentials(std::string &scheme, std::string &authInfo) const
void getCredentials(std::string &scheme, std::string &authInfo) const
static const std::string HTTP_GET
static const std::string HTTP_DELETE
static const std::string COOKIE
bool hasCredentials() const
static const std::string HTTP_POST
static const std::string UPGRADE
const std::string & getHost() const
static const std::string HTTP_HEAD
static const std::string HTTP_REASON_INTERNAL_SERVER_ERROR
static const std::string HTTP_REASON_SWITCHING_PROTOCOLS
static const std::string HTTP_REASON_UNAVAILABLE_FOR_LEGAL_REASONS
static const std::string HTTP_REASON_UNPROCESSABLE_ENTITY
static const std::string HTTP_REASON_UPGRADE_REQUIRED
void setStatusAndReason(HTTPStatus status)
Sets the HTTP status code and reason phrase.
static const std::string HTTP_REASON_RESET_CONTENT
static const std::string HTTP_REASON_UNKNOWN
HTTPResponse & operator=(const HTTPResponse &other)
Destroys the HTTPResponse.
static const std::string HTTP_REASON_LOOP_DETECTED
static const std::string HTTP_REASON_MOVED_PERMANENTLY
static const std::string HTTP_REASON_PRECONDITION_REQUIRED
void addCookie(const HTTPCookie &cookie)
Returns the value of the Date header.
void setStatus(const std::string &status)
Returns the HTTP status code.
static const std::string HTTP_REASON_USE_PROXY
static const std::string HTTP_REASON_PARTIAL_CONTENT
HTTPResponse(const HTTPResponse &other)
static const std::string HTTP_REASON_TEMPORARY_REDIRECT
static const std::string HTTP_REASON_NOT_MODIFIED
void read(std::istream &istr)
static const std::string & getReasonForStatus(HTTPStatus status)
static const std::string HTTP_REASON_NONAUTHORITATIVE
static const std::string HTTP_REASON_MULTIPLE_CHOICES
static const std::string HTTP_REASON_IM_A_TEAPOT
static const std::string HTTP_REASON_OK
static const std::string HTTP_REASON_FORBIDDEN
static const std::string HTTP_REASON_NOT_IMPLEMENTED
const std::string & getReason() const
Sets the HTTP reason phrase.
static const std::string HTTP_REASON_PERMANENT_REDIRECT
void write(std::ostream &ostr) const
static const std::string HTTP_REASON_EXPECTATION_FAILED
static const std::string HTTP_REASON_PRECONDITION_FAILED
static const std::string HTTP_REASON_IM_USED
static const std::string HTTP_REASON_REQUESTED_RANGE_NOT_SATISFIABLE
static const std::string HTTP_REASON_REQUEST_TIMEOUT
static const std::string HTTP_REASON_PROCESSING
static const std::string HTTP_REASON_ALREADY_REPORTED
void getCookies(std::vector< HTTPCookie > &cookies) const
static const std::string HTTP_REASON_NETWORK_AUTHENTICATION_REQUIRED
virtual ~HTTPResponse()
Creates the HTTPResponse by copying another one.
static const std::string HTTP_REASON_REQUEST_HEADER_FIELDS_TOO_LARGE
HTTPResponse(const std::string &version, HTTPStatus status)
static const std::string HTTP_REASON_LENGTH_REQUIRED
static const std::string HTTP_REASON_VARIANT_ALSO_NEGOTIATES
HTTPResponse(const std::string &version, HTTPStatus status, const std::string &reason)
static const std::string HTTP_REASON_NOT_EXTENDED
static const std::string HTTP_REASON_INSUFFICIENT_STORAGE
HTTPResponse(HTTPStatus status, const std::string &reason)
Creates the HTTPResponse with OK status.
static const std::string HTTP_REASON_ENCHANCE_YOUR_CALM
void setDate(const Poco::Timestamp &dateTime)
static const std::string HTTP_REASON_CONFLICT
static const std::string HTTP_REASON_SEE_OTHER
static const std::string HTTP_REASON_MULTI_STATUS
static const std::string HTTP_REASON_UNSUPPORTED_MEDIA_TYPE
static const std::string HTTP_REASON_NO_CONTENT
static const std::string HTTP_REASON_UNAUTHORIZED
static const std::string HTTP_REASON_SERVICE_UNAVAILABLE
HTTPResponse(HTTPStatus status)
static const std::string HTTP_REASON_PAYMENT_REQUIRED
static const std::string HTTP_REASON_GATEWAY_TIMEOUT
static const std::string HTTP_REASON_BAD_GATEWAY
static const std::string HTTP_REASON_NOT_ACCEPTABLE
static const std::string HTTP_REASON_REQUEST_ENTITY_TOO_LARGE
static const std::string HTTP_REASON_PROXY_AUTHENTICATION_REQUIRED
static const std::string SET_COOKIE
static const std::string HTTP_REASON_GONE
static const std::string HTTP_REASON_REQUEST_URI_TOO_LONG
static const std::string DATE
static const std::string HTTP_REASON_ACCEPTED
static const std::string HTTP_REASON_VERSION_NOT_SUPPORTED
void setStatusAndReason(HTTPStatus status, const std::string &reason)
Returns the HTTP reason phrase.
static const std::string HTTP_REASON_CREATED
static const std::string HTTP_REASON_FAILED_DEPENDENCY
static const std::string HTTP_REASON_METHOD_NOT_ALLOWED
static const std::string HTTP_REASON_BAD_REQUEST
static const std::string HTTP_REASON_LOCKED
void setReason(const std::string &reason)
void setStatus(HTTPStatus status)
Assignment operator.
static const std::string HTTP_REASON_TOO_MANY_REQUESTS
static const std::string HTTP_REASON_CONTINUE
Poco::Timestamp getDate() const
Sets the Date header to the given date/time value.
static const std::string HTTP_REASON_NOT_FOUND
static const std::string HTTP_REASON_MISDIRECTED_REQUEST
static const std::string HTTP_REASON_FOUND
HTTPStatus getStatus() const
HTTPSClientSession(const std::string &host, Poco::UInt16 port, Context::Ptr pContext, Session::Ptr pSession)
std::string proxyRequestPrefix() const
Sends the given HTTPRequest over an existing connection.
HTTPSClientSession(Context::Ptr pContext, Session::Ptr pSession)
HTTPSClientSession(Context::Ptr pContext)
Creates a HTTPSClientSession using the given host and port.
void proxyAuthenticate(HTTPRequest &request)
Checks if we can reuse a persistent connection.
int read(char *buffer, std::streamsize length)
HTTPSClientSession(const HTTPSClientSession &)
void connect(const SocketAddress &address)
Refills the internal buffer.
HTTPSClientSession(const SecureStreamSocket &socket, Session::Ptr pSession)
X509Certificate serverCertificate()
HTTPSClientSession & operator=(const HTTPSClientSession &)
HTTPSClientSession(const std::string &host, Poco::UInt16 port=HTTPS_PORT)
HTTPSClientSession(const SecureStreamSocket &socket)
Creates an unconnected HTTPSClientSession.
HTTPSClientSession(const std::string &host, Poco::UInt16 port, Context::Ptr pContext)
void clearException()
Stores a clone of the exception.
void setKeepAlive(bool keepAlive)
void attachSessionData(const Poco::Any &data)
StreamSocket & socket()
virtual int write(const char *buffer, std::streamsize length)
HTTPSession & operator=(const HTTPSession &)
HTTPSession(const HTTPSession &)
StreamSocket detachSocket()
void setTimeout(const Poco::Timespan &connectionTimeout, const Poco::Timespan &sendTimeout, const Poco::Timespan &receiveTimeout)
Sets the timeout for the HTTP session.
int receive(char *buffer, int length)
Writes data to the socket.
void setException(const Poco::Exception &exc)
Closes the underlying socket.
Poco::Timespan _connectionTimeout
Poco::Timespan getTimeout() const
Sets different timeouts for the HTTP session.
bool getKeepAlive() const
Poco::Exception * _pException
virtual int read(char *buffer, std::streamsize length)
void drainBuffer(Poco::Buffer< char > &buffer)
Returns a reference to the underlying socket.
Poco::Timespan _sendTimeout
HTTPSession(const StreamSocket &socket, bool keepAlive)
virtual void abort()
Returns true if the underlying socket is connected.
void refill()
Returns the number of bytes in the buffer.
bool connected() const
Returns the timeout for the HTTP session.
HTTPSession(const StreamSocket &socket)
const Poco::Any & sessionData() const
void setTimeout(const Poco::Timespan &timeout)
void attachSocket(const StreamSocket &socket)
int buffered() const
Reads up to length bytes.
const Poco::Exception * networkException() const
virtual void connect(const SocketAddress &address)
Refills the internal buffer.
Poco::Timespan _receiveTimeout
IPAddress(const struct sockaddr &sockaddr)
Creates an IPAddress mask with the given length of prefix.
bool isSiteLocal() const
IPAddress(unsigned prefix, Family family)
void mask(const IPAddress &mask)
Returns the prefix length.
bool isBroadcast() const
bool isOrgLocalMC() const
bool operator!=(const IPAddress &addr) const
bool isLoopback() const
void mask(const IPAddress &mask, const IPAddress &set)
const void * addr() const
Returns the length in bytes of the internal socket address structure.
IPAddress(const void *addr, poco_socklen_t length, Poco::UInt32 scope)
bool isLinkLocal() const
static const Family IPv4
Definition IPAddress.h:63
~IPAddress()
Same for struct sock_addr on POSIX.
bool operator==(const IPAddress &addr) const
bool operator>=(const IPAddress &addr) const
bool isUnicast() const
Poco::AutoPtr< Impl > Ptr
Definition IPAddress.h:368
IPAddress operator&(const IPAddress &addr) const
void newIPv4(const void *hostAddr)
Definition IPAddress.h:400
IPAddress operator~() const
bool isNodeLocalMC() const
int af() const
Returns the internal address structure.
bool isIPv4Mapped() const
bool isLinkLocalMC() const
bool operator<=(const IPAddress &addr) const
IPAddress(const IPAddress &addr)
Creates a wildcard (zero) IPv4 IPAddress.
bool isSiteLocalMC() const
std::string toString() const
IPAddress & operator=(const IPAddress &addr)
Destroys the IPAddress.
bool isWellKnownMC() const
bool operator<(const IPAddress &addr) const
Ptr pImpl() const
Definition IPAddress.h:387
bool isMulticast() const
IPAddress(Family family)
Creates an IPAddress by copying another one.
bool isWildcard() const
Family family() const
Assigns an IPAddress.
poco_socklen_t length() const
static IPAddress broadcast()
Returns a wildcard IPv4 or IPv6 address (0.0.0.0).
IPAddress operator|(const IPAddress &addr) const
bool isIPv4Compatible() const
void newIPv4(unsigned prefix)
Definition IPAddress.h:406
IPAddress operator^(const IPAddress &addr) const
IPAddress(const void *addr, poco_socklen_t length)
unsigned prefixLength() const
Returns the address family (AF_INET or AF_INET6) of the address.
static IPAddress wildcard(Family family=IPv4)
Poco::UInt32 scope() const
Returns the address family (IPv4 or IPv6) of the address.
bool operator>(const IPAddress &addr) const
bool isGlobalMC() const
virtual std::string toString() const =0
virtual bool isBroadcast() const =0
virtual bool isSiteLocalMC() const =0
virtual bool isIPv4Mapped() const =0
virtual bool isWildcard() const =0
IPAddressImpl & operator=(const IPAddressImpl &)
virtual Family family() const =0
IPAddressImpl(const IPAddressImpl &)
virtual bool isOrgLocalMC() const =0
virtual bool isWellKnownMC() const =0
virtual bool isSiteLocal() const =0
virtual Poco::UInt32 scope() const =0
virtual unsigned prefixLength() const =0
virtual bool isNodeLocalMC() const =0
virtual bool isGlobalMC() const =0
virtual IPAddressImpl * clone() const =0
virtual bool isIPv4Compatible() const =0
virtual bool isLinkLocalMC() const =0
virtual void mask(const IPAddressImpl *pMask, const IPAddressImpl *pSet)=0
virtual bool isLinkLocal() const =0
virtual poco_socklen_t length() const =0
virtual int af() const =0
virtual bool isLoopback() const =0
virtual const void * addr() const =0
virtual bool isMulticast() const =0
IPv4AddressImpl operator^(const IPv4AddressImpl &addr) const
IPv4AddressImpl & operator=(const IPv4AddressImpl &)
std::string toString() const
void mask(const IPAddressImpl *pMask, const IPAddressImpl *pSet)
IPv4AddressImpl(const IPv4AddressImpl &addr)
IPv4AddressImpl(const void *addr)
IPv4AddressImpl operator~() const
IPAddressImpl * clone() const
IPv4AddressImpl operator&(const IPv4AddressImpl &addr) const
poco_socklen_t length() const
bool operator!=(const IPv4AddressImpl &addr) const
Poco::UInt32 scope() const
IPv4AddressImpl operator|(const IPv4AddressImpl &addr) const
bool operator==(const IPv4AddressImpl &addr) const
IPv4SocketAddressImpl(const void *addr, UInt16 port)
const struct sockaddr * addr() const
IPv4SocketAddressImpl(const struct sockaddr_in *addr)
SocketAddressImpl(const SocketAddressImpl &)
virtual Family family() const =0
virtual poco_socklen_t length() const =0
virtual std::string toString() const =0
SocketAddressImpl & operator=(const SocketAddressImpl &)
virtual const struct sockaddr * addr() const =0
virtual UInt16 port() const =0
virtual IPAddress host() const =0
InvalidCertificateHandler(bool handleErrorsOnServerSide)
virtual void onInvalidCertificate(const void *pSender, VerificationErrorArgs &errorCert)=0
Destroys the InvalidCertificateHandler.
virtual void write(std::ostream &ostr) const
Assigns the content of another MessageHeader.
MessageHeader & operator=(const MessageHeader &messageHeader)
Destroys the MessageHeader.
void setFieldLimit(int limit)
Limits
Decode RFC2047 string.
virtual void read(std::istream &istr)
MessageHeader(const MessageHeader &messageHeader)
Creates the MessageHeader.
static void splitParameters(const std::string::const_iterator &begin, const std::string::const_iterator &end, NameValueCollection &parameters)
An opaque context class for working with SSPI NTLM authentication.
NTLMContext(NTLMContextImpl *pImpl)
NTLMContext & operator=(const NTLMContext &)
NTLMContext(const NTLMContext &)
static std::vector< unsigned char > formatNegotiateMessage(const NegotiateMessage &message)
Creates the NTLMv2 response by creating the "blob" and prepending its HMAC-MD5, using the ntlm2Hash a...
static std::vector< unsigned char > createNonce()
static const std::string NTLMSSP
Decodes the given base64-encoded string.
static void readBufferDesc(Poco::BinaryReader &reader, BufferDesc &desc)
Creates the NTLM Type 3 Authenticate message used for sending the response to the challenge.
static std::vector< unsigned char > formatAuthenticateMessage(const AuthenticateMessage &message)
static bool parseChallengeMessage(const unsigned char *buffer, std::size_t size, ChallengeMessage &message)
Creates the NTLM Type 1 Negotiate message used for initiating NTLM authentication from the client.
static Poco::UInt64 createTimestamp()
Creates an 8-byte client nonce for NTLM authentication.
static void writeBufferDesc(Poco::BinaryWriter &writer, const BufferDesc &desc)
Reads a buffer descriptor.
void swap(NameValueCollection &nvc)
Moves the name-value pairs of another NameValueCollection to this one.
void clear()
Removes all name-value pairs with the given name.
NameValueCollection & operator=(const NameValueCollection &nvc)
Destroys the NameValueCollection.
NameValueCollection(const NameValueCollection &nvc)
Creates an empty NameValueCollection.
ConstIterator begin() const
virtual ~NameValueCollection()
Creates a NameValueCollection by moving another one.
std::size_t size() const
Returns true iff the header does not have any content.
NameValueCollection(NameValueCollection &&nvc) noexcept
Creates a NameValueCollection by copying another one.
ConstIterator end() const
NameValueCollection & operator=(NameValueCollection &&nvc) noexcept
Assigns the name-value pairs of another NameValueCollection to this one.
HeaderMap _map
Removes all name-value pairs and their values.
virtual PrivateKeyPassphraseHandler * create(bool onServer) const =0
Destroys the PrivateKeyFactory.
virtual ~PrivateKeyFactory()
Creates the PrivateKeyFactory.
PrivateKeyPassphraseHandler * create(bool server) const
Destroys the PrivateKeyFactory.
A PrivateKeyFactoryMgr manages all existing PrivateKeyFactories.
~PrivateKeyFactoryMgr()
Creates the PrivateKeyFactoryMgr.
FactoriesMap _factories
Removes the factory from the manager.
virtual ~PrivateKeyFactoryRegistrar()
Registers the PrivateKeyFactory with the given name at the factory manager.
RejectCertificateHandler(bool handleErrorsOnServerSide)
Poco::BasicEvent< VerificationErrorArgs > ClientVerificationError
Fired whenever a certificate verification error is detected by the server during a handshake.
Definition SSLManager.h:166
static const std::string CFG_DISABLE_PROTOCOLS
Definition SSLManager.h:351
static const bool VAL_ENABLE_DEFAULT_CA
Definition SSLManager.h:333
void initializeClient(PrivateKeyPassphraseHandlerPtr ptrPassphraseHandler, InvalidCertificateHandlerPtr ptrHandler, Context::Ptr ptrContext)
static int verifyServerCallback(int ok, X509_STORE_CTX *pStore)
Definition SSLManager.h:390
static const std::string CFG_REQUIRE_TLSV1
Definition SSLManager.h:347
static const std::string CFG_REQUIRE_TLSV1_2
Definition SSLManager.h:349
static const std::string CFG_PRIV_KEY_FILE
Definition SSLManager.h:325
void initDefaultContext(bool server)
Destroys the SSLManager.
Context::Ptr _ptrDefaultClientContext
Definition SSLManager.h:319
Poco::FastMutex _mutex
Definition SSLManager.h:323
static const std::string VAL_DELEGATE_HANDLER
Definition SSLManager.h:339
PrivateKeyPassphraseHandlerPtr _ptrServerPassphraseHandler
Definition SSLManager.h:317
static const std::string VAL_CIPHER_LIST
Definition SSLManager.h:336
static Poco::Util::AbstractConfiguration & appConfig()
static bool isFIPSEnabled()
Definition SSLManager.h:380
static const std::string CFG_CLIENT_PREFIX
Definition SSLManager.h:257
static const std::string CFG_DH_PARAMS_FILE
Definition SSLManager.h:352
static const std::string CFG_ECDH_CURVE
Definition SSLManager.h:353
PrivateKeyFactoryMgr _factoryMgr
Definition SSLManager.h:314
PrivateKeyFactoryMgr & privateKeyFactoryMgr()
Definition SSLManager.h:368
int contextIndex() const
Definition SSLManager.h:402
static const Context::VerificationMode VAL_VER_MODE
Definition SSLManager.h:329
void initializeServer(PrivateKeyPassphraseHandlerPtr ptrPassphraseHandler, InvalidCertificateHandlerPtr ptrCertificateHandler, Context::Ptr ptrContext)
Returns the instance of the SSLManager singleton.
static SSLManager & instance()
InvalidCertificateHandlerPtr serverCertificateHandler()
static const std::string CFG_SESSION_ID_CONTEXT
Definition SSLManager.h:343
static int verifyCallback(bool server, int ok, X509_STORE_CTX *pStore)
Inits the certificate handler.
static const std::string CFG_CERTIFICATE_HANDLER
Definition SSLManager.h:340
void initCertificateHandler(bool server)
Inits the passphrase handler.
static const std::string CFG_CYPHER_LIST
Definition SSLManager.h:335
static const std::string CFG_SESSION_TIMEOUT
Definition SSLManager.h:345
static const std::string CFG_DELEGATE_HANDLER
Definition SSLManager.h:338
~SSLManager()
Creates the SSLManager.
Context::Ptr defaultClientContext()
static const std::string CFG_VER_DEPTH
Definition SSLManager.h:330
PrivateKeyPassphraseHandlerPtr serverPassphraseHandler()
static const std::string CFG_ENABLE_DEFAULT_CA
Definition SSLManager.h:332
static const int VAL_VER_DEPTH
Definition SSLManager.h:331
static const std::string CFG_CERTIFICATE_FILE
Definition SSLManager.h:326
PrivateKeyPassphraseHandlerPtr _ptrClientPassphraseHandler
Definition SSLManager.h:320
static const std::string CFG_SESSION_CACHE_SIZE
Definition SSLManager.h:344
void initPassphraseHandler(bool server)
Registers delegates at the events according to the configuration.
static const std::string CFG_SERVER_PREFIX
Definition SSLManager.h:256
PrivateKeyPassphraseHandlerPtr clientPassphraseHandler()
static const std::string CFG_REQUIRE_TLSV1_1
Definition SSLManager.h:348
static const std::string CFG_EXTENDED_VERIFICATION
Definition SSLManager.h:346
InvalidCertificateHandlerPtr clientCertificateHandler()
Context::Ptr _ptrDefaultServerContext
Definition SSLManager.h:316
static const std::string CFG_CA_LOCATION
Definition SSLManager.h:327
CertificateHandlerFactoryMgr & certificateHandlerFactoryMgr()
Definition SSLManager.h:374
InvalidCertificateHandlerPtr _ptrServerCertificateHandler
Definition SSLManager.h:318
Poco::BasicEvent< VerificationErrorArgs > ServerVerificationError
Definition SSLManager.h:163
static const std::string CFG_REQUIRE_TLSV1_3
Definition SSLManager.h:350
static const std::string CFG_CACHE_SESSIONS
Definition SSLManager.h:342
static int privateKeyPassphraseCallback(char *pBuf, int size, int flag, void *userData)
Poco::BasicEvent< std::string > PrivateKeyPassphraseRequired
Fired whenever a certificate verification error is detected by the client during a handshake.
Definition SSLManager.h:169
Context::Ptr defaultServerContext()
static const std::string CFG_PREFER_SERVER_CIPHERS
Definition SSLManager.h:337
InvalidCertificateHandlerPtr _ptrClientCertificateHandler
Definition SSLManager.h:321
static const std::string CFG_VER_MODE
Definition SSLManager.h:328
static const std::string VAL_CERTIFICATE_HANDLER
Definition SSLManager.h:341
static int verifyClientCallback(int ok, X509_STORE_CTX *pStore)
Definition SSLManager.h:396
void initEvents(bool server)
Inits the default context, the first time it is accessed.
static int verifyOCSPResponseCallback(SSL *pSSL, void *arg)
CertificateHandlerFactoryMgr _certHandlerFactoryMgr
Definition SSLManager.h:315
static const std::string CFG_CIPHER_LIST
Definition SSLManager.h:334
static const std::string SERVICE_SMTP
static std::vector< unsigned char > negotiate(NTLMContext &context)
static const std::string SERVICE_HTTP
Creates the NTLM Type 3 Authenticate message used for sending the response to the challenge.
Session(SSL_SESSION *pSession)
Returns the stored OpenSSL SSL_SESSION object.
SSL_SESSION * _pSession
Definition Session.h:61
SSL_SESSION * sslSession() const
Definition Session.h:70
bool operator<(const SocketAddress &socketAddress) const
Returns the address family of the host's address.
SocketAddress & operator=(const SocketAddress &socketAddress)
Destroys the SocketAddress.
SocketAddress(const SocketAddress &addr)
static const Family IPv4
SocketAddress(const IPAddress &hostAddress, Poco::UInt16 portNumber)
Poco::AutoPtr< Impl > Ptr
Poco::UInt16 port() const
Returns the host IP address.
void newIPv4(const IPAddress &hostAddress, Poco::UInt16 portNumber)
int af() const
Returns a pointer to the internal native socket address.
IPAddress host() const
Assigns another SocketAddress.
Family family() const
Returns a string representation of the address.
SocketAddress(Family family)
Creates a wildcard (all zero) IPv4 SocketAddress.
void newIPv4(const sockaddr_in *)
std::string toString() const
Returns the address family (AF_INET or AF_INET6) of the address.
poco_socklen_t length() const
Returns the port number.
SocketAddress(Poco::UInt16 port)
Creates a SocketAddress from an IP address and given port number.
~SocketAddress()
Creates a SocketAddress from a native socket address.
bool operator!=(const SocketAddress &socketAddress) const
const struct sockaddr * addr() const
Returns the length of the internal native socket address.
bool operator==(const SocketAddress &socketAddress) const
void init(const IPAddress &hostAddress, Poco::UInt16 portNumber)
SocketAddress(const struct sockaddr *addr, poco_socklen_t length)
Creates a SocketAddress by copying another one.
SocketAddress(Family family, Poco::UInt16 port)
poco_socket_t sockfd() const
Definition Socket.h:622
bool getNoDelay() const
Sets the value of the TCP_NODELAY socket option.
Definition Socket.h:550
int getSendBufferSize() const
Sets the size of the send buffer.
Definition Socket.h:430
bool getOOBInline() const
Sets the value of the SO_OOBINLINE socket option.
Definition Socket.h:598
bool operator<=(const Socket &socket) const
Compares the SocketImpl pointers.
Definition Socket.h:388
void setReceiveBufferSize(int size)
Definition Socket.h:436
void getOption(int level, int option, Poco::Timespan &value) const
Definition Socket.h:520
void getOption(int level, int option, IPAddress &value) const
Definition Socket.h:526
void setLinger(bool on, int seconds)
Definition Socket.h:532
Socket & operator=(const Socket &socket)
bool getReuseAddress() const
Sets the value of the SO_REUSEADDR socket option.
Definition Socket.h:574
Socket(const Socket &socket)
Creates an uninitialized socket.
bool operator>=(const Socket &socket) const
Compares the SocketImpl pointers.
Definition Socket.h:400
void setOption(int level, int option, const Poco::Timespan &value)
Definition Socket.h:490
bool operator==(const Socket &socket) const
Definition Socket.h:370
void setOption(int level, int option, unsigned char value)
Definition Socket.h:484
void init(int af)
Returns true if the system supports IPv6.
Definition Socket.h:662
void setOption(int level, int option, int value)
Definition Socket.h:472
bool getKeepAlive() const
Sets the value of the SO_KEEPALIVE socket option.
Definition Socket.h:562
void setSendBufferSize(int size)
Definition Socket.h:424
SocketAddress address() const
Definition Socket.h:628
SelectMode
The mode argument to poll() and select().
Definition Socket.h:42
SocketAddress peerAddress() const
Returns the IP address and port number of the socket.
Definition Socket.h:634
bool secure() const
Returns the SocketImpl for this socket.
Definition Socket.h:640
bool operator<(const Socket &socket) const
Definition Socket.h:382
void setSendTimeout(const Poco::Timespan &timeout)
Definition Socket.h:448
SocketImpl * _pImpl
Returns the socket descriptor for this socket.
Definition Socket.h:363
void getOption(int level, int option, unsigned &value) const
Definition Socket.h:508
void setKeepAlive(bool flag)
Returns the value of the TCP_NODELAY socket option.
Definition Socket.h:556
void setOption(int level, int option, unsigned value)
Definition Socket.h:478
void setOption(int level, int option, const IPAddress &value)
Definition Socket.h:496
void getOption(int level, int option, unsigned char &value) const
Definition Socket.h:514
static bool supportsIPv4()
Definition Socket.h:646
void setReceiveTimeout(const Poco::Timespan &timeout)
Definition Socket.h:460
bool operator>(const Socket &socket) const
Compares the SocketImpl pointers.
Definition Socket.h:394
void getLinger(bool &on, int &seconds) const
Sets the value of the SO_LINGER socket option.
Definition Socket.h:538
void setReuseAddress(bool flag)
Returns the value of the SO_KEEPALIVE socket option.
Definition Socket.h:568
int getReceiveBufferSize() const
Sets the size of the receive buffer.
Definition Socket.h:442
bool getBlocking() const
Definition Socket.h:610
Poco::Timespan getReceiveTimeout() const
Definition Socket.h:466
void setOOBInline(bool flag)
Definition Socket.h:592
void close()
Compares the SocketImpl pointers.
Definition Socket.h:406
void setBlocking(bool flag)
Returns the value of the SO_OOBINLINE socket option.
Definition Socket.h:604
bool getReusePort() const
Definition Socket.h:586
void getOption(int level, int option, int &value) const
Definition Socket.h:502
bool poll(const Poco::Timespan &timeout, int mode) const
Definition Socket.h:412
static SocketBuf makeBuffer(void *buffer, std::size_t length)
bool operator!=(const Socket &socket) const
Definition Socket.h:376
static SocketBufVec makeBufVec(std::size_t size, std::size_t bufLen)
Poco::Timespan getSendTimeout() const
Sets the send timeout for the socket.
Definition Socket.h:454
Socket(SocketImpl *pImpl)
SocketImpl * impl() const
Returns the IP address and port number of the peer socket.
Definition Socket.h:616
void setReusePort(bool flag)
Returns the value of the SO_REUSEADDR socket option.
Definition Socket.h:580
static bool supportsIPv6()
Returns true if the system supports IPv4.
Definition Socket.h:652
void setNoDelay(bool flag)
Returns the value of the SO_LINGER socket option.
Definition Socket.h:544
int available() const
Definition Socket.h:418
virtual bool secure() const
virtual int available()
virtual void listen(int backlog=64)
virtual void sendUrgent(unsigned char data)
virtual void shutdownReceive()
Close the socket.
virtual int receiveBytes(void *buffer, int length, int flags=0)
virtual int sendTo(const void *buffer, int length, const SocketAddress &address, int flags=0)
virtual Poco::Timespan getReceiveTimeout()
virtual Poco::Timespan getSendTimeout()
Sets the send timeout for the socket.
virtual void getRawOption(int level, int option, void *value, poco_socklen_t &length)
virtual void connectNB(const SocketAddress &address)
void getOption(int level, int option, unsigned char &value)
static void error(int code)
Throws an appropriate exception for the last error.
void setOption(int level, int option, const IPAddress &value)
bool getBroadcast()
Sets the value of the SO_BROADCAST socket option.
virtual void setReceiveBufferSize(int size)
void setOption(int level, int option, int value)
Returns the IP address and port number of the peer socket.
virtual void setRawOption(int level, int option, const void *value, poco_socklen_t length)
virtual void setBlocking(bool flag)
Returns the value of the SO_BROADCAST socket option.
virtual SocketImpl * acceptConnection(SocketAddress &clientAddr)
poco_socket_t sockfd() const
Returns the value of the SO_ERROR socket option.
Definition SocketImpl.h:529
static int lastError()
Definition SocketImpl.h:541
virtual bool getBlocking() const
Definition SocketImpl.h:551
SocketImpl()
Returns true iff the underlying socket is initialized.
virtual void bind(const SocketAddress &address, bool reuseAddress=false)
bool getKeepAlive()
Sets the value of the SO_KEEPALIVE socket option.
void checkBrokenTimeout(SelectMode mode)
Allows subclasses to set the socket manually, iff no valid socket is set yet.
bool getOOBInline()
Sets the value of the SO_OOBINLINE socket option.
virtual int getReceiveBufferSize()
Sets the size of the receive buffer.
void setReusePort(bool flag)
Returns the value of the SO_REUSEADDR socket option.
virtual void bind6(const SocketAddress &address, bool reuseAddress, bool reusePort, bool ipV6Only)
virtual void setReceiveTimeout(const Poco::Timespan &timeout)
virtual int getSendBufferSize()
Sets the size of the send buffer.
virtual SocketAddress peerAddress()
Returns the IP address and port number of the socket.
void reset(poco_socket_t fd=POCO_INVALID_SOCKET)
virtual void bind6(const SocketAddress &address, bool reuseAddress=false, bool ipV6Only=false)
bool getReuseAddress()
Sets the value of the SO_REUSEADDR socket option.
void getOption(int level, int option, Poco::Timespan &value)
int receiveFrom(void *buffer, int length, struct sockaddr **ppSA, poco_socklen_t **ppSALen, int flags=0)
void setNoDelay(bool flag)
Returns the value of the SO_LINGER socket option.
virtual void setSendTimeout(const Poco::Timespan &timeout)
SocketImpl(const SocketImpl &)
Throws an appropriate exception for the given error code.
virtual void init(int af)
virtual bool poll(const Poco::Timespan &timeout, int mode)
bool initialized() const
A wrapper for the ioctl system call.
Definition SocketImpl.h:535
static void error()
Returns the last error code.
virtual void close()
virtual ~SocketImpl()
Creates a SocketImpl using the given native socket.
virtual int receiveBytes(Poco::Buffer< char > &buffer, int flags=0, const Poco::Timespan &timeout=100000)
virtual void connect(const SocketAddress &address)
virtual void bind(const SocketAddress &address, bool reuseAddress, bool reusePort)
void setBroadcast(bool flag)
Returns the value of the SO_OOBINLINE socket option.
void getOption(int level, int option, IPAddress &value)
void ioctl(poco_ioctl_request_t request, int &arg)
virtual int receiveFrom(void *buffer, int length, SocketAddress &address, int flags=0)
SocketImpl(poco_socket_t sockfd)
Creates a SocketImpl.
void ioctl(poco_ioctl_request_t request, void *arg)
A wrapper for the ioctl system call.
virtual int sendBytes(const void *buffer, int length, int flags=0)
void getOption(int level, int option, int &value)
void setOption(int level, int option, const Poco::Timespan &value)
bool getNoDelay()
Sets the value of the TCP_NODELAY socket option.
SocketImpl & operator=(const SocketImpl &)
void setOption(int level, int option, unsigned char value)
Poco::Timespan _recvTimeout
Definition SocketImpl.h:515
void setLinger(bool on, int seconds)
virtual void shutdownSend()
Shuts down the receiving part of the socket connection.
void setReuseAddress(bool flag)
Returns the value of the SO_KEEPALIVE socket option.
poco_socket_t _sockfd
Definition SocketImpl.h:514
void getOption(int level, int option, unsigned &value)
Poco::Timespan _sndTimeout
Definition SocketImpl.h:516
virtual void connect(const SocketAddress &address, const Poco::Timespan &timeout)
virtual void shutdown()
Shuts down the sending part of the socket connection.
void getLinger(bool &on, int &seconds)
Sets the value of the SO_LINGER socket option.
void initSocket(int af, int type, int proto=0)
virtual SocketAddress address()
void setOOBInline(bool flag)
void setOption(int level, int option, unsigned value)
void setKeepAlive(bool flag)
Returns the value of the TCP_NODELAY socket option.
virtual void setSendBufferSize(int size)
StreamSocket(SocketImpl *pImpl)
void shutdown()
Shuts down the sending part of the socket connection.
StreamSocket & operator=(const Socket &socket)
Destroys the StreamSocket.
int receiveBytes(void *buffer, int length, int flags=0)
void connectNB(const SocketAddress &address)
void connect(const SocketAddress &address)
int receiveBytes(Poco::Buffer< char > &buffer, int flags=0, const Poco::Timespan &timeout=100000)
int sendBytes(const void *buffer, int length, int flags=0)
StreamSocket(SocketAddress::Family family)
void sendUrgent(unsigned char data)
StreamSocket(const Socket &socket)
int sendBytes(Poco::FIFOBuffer &buffer)
int receiveBytes(Poco::FIFOBuffer &buffer)
void connect(const SocketAddress &address, const Poco::Timespan &timeout)
void shutdownSend()
Shuts down the receiving part of the socket connection.
StreamSocket(const SocketAddress &address)
static std::string convertCertificateError(long errCode)
static std::string getLastError()
Converts an SSL certificate handling error code into an error message.
static void clearErrorStack()
Returns the last error from the error stack.
A utility class for certificate error handling.
int errorDepth() const
Returns the certificate that caused the error.
const X509Certificate & certificate() const
Returns the Context of the underlying connection causing the error.
Poco::Net::Context::Ptr _pContext
returns the value of _ignoreError
void setIgnoreError(bool ignoreError)
Returns the textual presentation of the errorNumber.
const std::string & errorMessage() const
Returns the id of the error.
bool getIgnoreError() const
setIgnoreError to true, if a verification error is judged non-fatal by the user.
~VerificationErrorArgs()
Creates the VerificationErrorArgs. _ignoreError is per default set to false.
int errorNumber() const
Returns the position of the certificate in the certificate chain.
bool _ignoreError
Textual representation of the _errorNumber.
Poco::Net::Context::Ptr context() const
Destroys the VerificationErrorArgs.
X509Certificate(std::istream &istr)
~X509Certificate()
Moves a certificate.
X509Certificate & operator=(X509Certificate &&cert) noexcept
Assigns a certificate.
X509Certificate(const X509Certificate &cert)
Creates the certificate by copying another one.
X509Certificate(X509 *pCert, bool shared)
X509Certificate(const Poco::Crypto::X509Certificate &cert)
X509Certificate(X509Certificate &&cert) noexcept
Creates the certificate by copying another one.
X509Certificate & operator=(const X509Certificate &cert)
Assigns a certificate.
X509Certificate & operator=(const Poco::Crypto::X509Certificate &cert)
Creates the certificate by moving another one.
virtual bool empty() const =0
Removes all delegates from the strategy.
virtual void remove(const TDelegate &delegate)=0
Adds a delegate to the strategy.
virtual DelegateHandle add(const TDelegate &delegate)=0
Sends a notification to all registered delegates.
virtual void remove(DelegateHandle delegateHandle)=0
virtual void notify(const void *sender)=0
virtual void remove(const TDelegate &delegate)=0
Adds a delegate to the strategy.
virtual void clear()=0
virtual void remove(DelegateHandle delegateHandle)=0
virtual void notify(const void *sender, TArgs &arguments)=0
virtual DelegateHandle add(const TDelegate &delegate)=0
Sends a notification to all registered delegates.
virtual bool empty() const =0
Removes all delegates from the strategy.
NullStreamBuf _buf
Definition NullStream.h:58
~NullInputStream()
Creates the NullInputStream.
void unlock()
Does nothing.
Definition Mutex.h:258
void lock(long)
Does nothing.
Definition Mutex.h:241
NullMutex()
Creates the NullMutex.
Definition Mutex.h:226
bool tryLock()
Does nothing and always returns true.
Definition Mutex.h:246
void lock()
Does nothing.
Definition Mutex.h:236
~NullMutex()
Destroys the NullMutex.
Definition Mutex.h:231
bool tryLock(long)
Does nothing and always returns true.
Definition Mutex.h:252
This stream discards all characters written to it.
Definition NullStream.h:77
~NullOutputStream()
Creates the NullOutputStream.
int writeToDevice(char c)
~NullStreamBuf()
Creates a NullStreamBuf.
int readFromDevice()
Destroys the NullStreamBuf.
Path & parse(const std::string &path)
Returns a string containing the path in the given format.
Definition Path.h:418
Path(const char *path)
Creates an empty absolute or relative path.
bool tryParse(const std::string &path, Style style)
bool isFile() const
Definition Path.h:412
Path absolute() const
Path & makeParent()
Path & makeFile()
std::vector< std::string > StringVec
Definition Path.h:51
Path(const char *path, Style style)
Creates a path from a string.
static void listRoots(std::vector< std::string > &roots)
static std::string cacheHome()
Path(const Path &parent, const std::string &fileName)
Move constructor.
Path(bool absolute)
Creates an empty relative path.
Path(const std::string &path)
Creates a path from a string.
Path & clear()
Returns the file version. VMS only.
static std::string current()
static std::string dataHome()
bool isDirectory() const
Returns true iff the path is relative.
Definition Path.h:406
static std::string transcode(const std::string &path)
static std::string config()
Returns the temporary directory.
std::string buildUnix() const
Path & operator=(const Path &path)
Destroys the Path.
static std::string configHome()
Returns the user's home directory.
Path(const Path &parent, const char *fileName)
std::string toString() const
Assigns a string containing a path.
static std::string home()
Returns the current working directory.
Path & resolve(const Path &path)
Appends the given path.
static std::string expand(const std::string &path)
Returns the name of the null device.
Path & makeAbsolute()
Makes the path refer to its parent.
Path(const Path &path)
Creates a path from a string.
static char separator()
Creates a path referring to a directory.
Definition Path.h:474
Path & parseDirectory(const std::string &path, Style style)
static std::string null()
Path(Path &&path) noexcept
Copy constructor.
Path & operator=(const char *path)
Assigns a string containing a path in native format.
void parseWindows(const std::string &path)
Path & assign(const std::string &path, Style style)
Assigns a string containing a path in native format.
std::string _device
Definition Path.h:383
static std::string temp()
std::string _version
Definition Path.h:385
Path & operator=(Path &&path) noexcept
Assignment operator.
Path absolute(const Path &base) const
const std::string & directory(int n) const
Returns the number of directories in the directory list.
bool isRelative() const
Returns true iff the path is absolute.
Definition Path.h:400
bool _absolute
Definition Path.h:387
static char pathSeparator()
Definition Path.h:486
static Path forDirectory(const std::string &path, Style style)
Creates a path referring to a directory.
Definition Path.h:467
Path & parse(const std::string &path, Style style)
Same as assign().
Definition Path.h:424
std::string getExtension() const
Sets the filename extension.
Path & operator=(const std::string &path)
Move assignment.
Path & setFileName(const std::string &name)
Removes the first directory from the directory list.
const std::string & operator[](int n) const
const std::string & getFileName() const
Sets the filename.
Definition Path.h:442
std::string buildVMS() const
Path & makeAbsolute(const Path &base)
Path parent() const
Clears all components.
Path & append(const Path &path)
Path(const Path &parent, const Path &relative)
std::string _node
Definition Path.h:382
Path(const std::string &path, Style style)
Creates a path from a string.
void swap(Path &path)
Assigns a string containing a path in native format.
std::string toString(Style style) const
Returns a string containing the path in native format.
bool isAbsolute() const
Definition Path.h:394
Path & parseDirectory(const std::string &path)
const std::string & getDevice() const
Definition Path.h:436
std::string buildWindows() const
void parseUnix(const std::string &path)
void parseVMS(const std::string &path)
Path & setDevice(const std::string &device)
Returns the node name.
Path & makeDirectory()
int depth() const
Returns the device name.
Definition Path.h:448
StringVec _dirs
Definition Path.h:386
static Path forDirectory(const std::string &path)
Definition Path.h:460
void parseGuess(const std::string &path)
Path & popDirectory()
Adds a directory to the directory list.
Path & setExtension(const std::string &extension)
const std::string & version() const
Returns the filename extension.
Definition Path.h:454
Path & setBaseName(const std::string &name)
Returns the filename.
Path & pushDirectory(const std::string &dir)
Path & popFrontDirectory()
Removes the last directory from the directory list.
Path & assign(const Path &path)
Assigns a string containing a path.
std::string _name
Definition Path.h:384
Path & assign(const char *path)
Assigns the given path.
std::string getBaseName() const
const std::string & getNode() const
Definition Path.h:430
static bool find(StringVec::const_iterator it, StringVec::const_iterator end, const std::string &name, Path &path)
bool tryParse(const std::string &path)
Assigns a string containing a path.
static bool find(const std::string &pathList, const std::string &name, Path &path)
@ PATH_GUESS
The current platform's native style.
Definition Path.h:48
@ PATH_URI
Unix-style path.
Definition Path.h:44
@ PATH_NATIVE
VMS-style path.
Definition Path.h:47
@ PATH_WINDOWS
URI-style path, same as Unix-style.
Definition Path.h:45
@ PATH_UNIX
Definition Path.h:43
@ PATH_VMS
Windows-style path.
Definition Path.h:46
static std::string tempHome()
Path & assign(const std::string &path)
Swaps the path with another one.
Path & setNode(const std::string &node)
virtual ~RefCountedObject()
Returns the reference count.
void release() const noexcept
Increments the object's reference count.
RefCountedObject & operator=(const RefCountedObject &)
RefCountedObject(const RefCountedObject &)
Destroys the RefCountedObject.
Simple ReferenceCounter object, does not delete itself when count reaches 0.
Definition SharedPtr.h:33
AtomicCounter _cnt
Definition SharedPtr.h:55
int referenceCount() const
Definition SharedPtr.h:49
The release policy for SharedPtr holding arrays.
Definition SharedPtr.h:77
static void release(C *pObj) noexcept
Definition SharedPtr.h:79
static void release(C *pObj) noexcept
Definition SharedPtr.h:65
virtual ~Runnable()
virtual void run()=0
ScopedLock(M &mutex, long milliseconds)
Definition ScopedLock.h:41
ScopedLock(const ScopedLock &)
ScopedLock(M &mutex)
Definition ScopedLock.h:36
ScopedLock & operator=(const ScopedLock &)
ScopedLockWithUnlock & operator=(const ScopedLockWithUnlock &)
ScopedLockWithUnlock(const ScopedLockWithUnlock &)
ScopedLockWithUnlock(M &mutex, long milliseconds)
Definition ScopedLock.h:83
C * deref() const
Definition SharedPtr.h:431
bool operator!=(const SharedPtr &ptr) const
Definition SharedPtr.h:345
SharedPtr(SharedPtr &&ptr) noexcept
Definition SharedPtr.h:151
SharedPtr & operator=(SharedPtr &&ptr) noexcept
Definition SharedPtr.h:226
const C * get() const
Definition SharedPtr.h:300
SharedPtr< Other, RC, RP > cast() const
Definition SharedPtr.h:249
void release() noexcept
Definition SharedPtr.h:439
SharedPtr(C *ptr)
Definition SharedPtr.h:125
bool operator<=(C *ptr) const
Definition SharedPtr.h:390
bool operator<(const C *ptr) const
Definition SharedPtr.h:370
bool operator<=(const C *ptr) const
Definition SharedPtr.h:385
bool operator>=(C *ptr) const
Definition SharedPtr.h:420
void swap(SharedPtr &ptr)
Definition SharedPtr.h:242
SharedPtr(const SharedPtr< Other, RC, OtherRP > &ptr)
Definition SharedPtr.h:137
void reset(const SharedPtr< Other, RC, OtherRP > &ptr)
Definition SharedPtr.h:211
bool operator==(const SharedPtr &ptr) const
Definition SharedPtr.h:325
bool operator>=(const C *ptr) const
Definition SharedPtr.h:415
bool operator!=(const C *ptr) const
Definition SharedPtr.h:350
bool operator>(C *ptr) const
Definition SharedPtr.h:405
bool operator>(const C *ptr) const
Definition SharedPtr.h:400
void reset(const SharedPtr &ptr)
Definition SharedPtr.h:205
bool operator==(C *ptr) const
Definition SharedPtr.h:335
bool operator<=(const SharedPtr &ptr) const
Definition SharedPtr.h:380
bool operator!=(C *ptr) const
Definition SharedPtr.h:355
bool operator>=(const SharedPtr &ptr) const
Definition SharedPtr.h:410
bool operator==(std::nullptr_t ptr) const
Definition SharedPtr.h:340
SharedPtr(const SharedPtr &ptr)
Definition SharedPtr.h:144
SharedPtr(RC *pCounter, C *ptr)
Definition SharedPtr.h:451
SharedPtr< Other, RC, RP > unsafeCast() const
Definition SharedPtr.h:264
SharedPtr & assign(const SharedPtr &ptr)
Definition SharedPtr.h:174
SharedPtr & operator=(const SharedPtr &ptr)
Definition SharedPtr.h:221
operator const C *() const
Definition SharedPtr.h:310
SharedPtr & assign(C *ptr)
Definition SharedPtr.h:164
const C & operator*() const
Definition SharedPtr.h:290
const C * operator->() const
Definition SharedPtr.h:280
int referenceCount() const
Definition SharedPtr.h:425
SharedPtr & assign(const SharedPtr< Other, RC, OtherRP > &ptr)
Definition SharedPtr.h:185
void reset(C *ptr)
Definition SharedPtr.h:200
bool operator==(const C *ptr) const
Definition SharedPtr.h:330
bool operator>(const SharedPtr &ptr) const
Definition SharedPtr.h:395
bool operator!() const
Definition SharedPtr.h:315
SharedPtr & operator=(const SharedPtr< Other, RC, OtherRP > &ptr)
Definition SharedPtr.h:237<