Loading...
Searching...
No Matches
md5.hpp
/*
md5.hpp is a reformulation of the md5.h and md5.c code from
http://www.opensource.apple.com/source/cups/cups-59/cups/md5.c to allow it to
function as a component of a header only library. This conversion was done by
Peter Thorson (webmaster@zaphoyd.com) in 2012 for the WebSocket++ project. The
changes are released under the same license as the original (listed below)
*/
/*
Copyright (C) 1999, 2002 Aladdin Enterprises. All rights reserved.
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
L. Peter Deutsch
ghost@aladdin.com
*/
/* $Id: md5.h,v 1.4 2002/04/13 19:20:28 lpd Exp $ */
/*
Independent implementation of MD5 (RFC 1321).
This code implements the MD5 Algorithm defined in RFC 1321, whose
text is available at
http://www.ietf.org/rfc/rfc1321.txt
The code is derived from the text of the RFC, including the test suite
(section A.5) but excluding the rest of Appendix A. It does not include
any code or documentation that is identified in the RFC as being
copyrighted.
The original and principal author of md5.h is L. Peter Deutsch
<ghost@aladdin.com>. Other authors are noted in the change history
that follows (in reverse chronological order):
2002-04-13 lpd Removed support for non-ANSI compilers; removed
references to Ghostscript; clarified derivation from RFC 1321;
now handles byte order either statically or dynamically.
1999-11-04 lpd Edited comments slightly for automatic TOC extraction.
1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5);
added conditionalization for C++ compilation from Martin
Purschke <purschke@bnl.gov>.
1999-05-03 lpd Original version.
*/
#ifndef WEBSOCKETPP_COMMON_MD5_HPP
#define WEBSOCKETPP_COMMON_MD5_HPP
/*
* This package supports both compile-time and run-time determination of CPU
* byte order. If ARCH_IS_BIG_ENDIAN is defined as 0, the code will be
* compiled to run only on little-endian CPUs; if ARCH_IS_BIG_ENDIAN is
* defined as non-zero, the code will be compiled to run only on big-endian
* CPUs; if ARCH_IS_BIG_ENDIAN is not defined, the code will be compiled to
* run on either big- or little-endian CPUs, but will run slightly less
* efficiently on either one than if ARCH_IS_BIG_ENDIAN is defined.
*/
#include <stddef.h>
#include <string>
#include <cstring>
namespace websocketpp {
/// Provides MD5 hashing functionality
namespace md5 {
typedef unsigned char md5_byte_t; /* 8-bit byte */
typedef unsigned int md5_word_t; /* 32-bit word */
/* Define the state of the MD5 Algorithm. */
typedef struct md5_state_s {
md5_word_t count[2]; /* message length in bits, lsw first */
md5_word_t abcd[4]; /* digest buffer */
md5_byte_t buf[64]; /* accumulate block */
} md5_state_t;
/* Initialize the algorithm. */
inline void md5_init(md5_state_t *pms);
/* Append a string to the message. */
inline void md5_append(md5_state_t *pms, md5_byte_t const * data, size_t nbytes);
/* Finish the message and return the digest. */
inline void md5_finish(md5_state_t *pms, md5_byte_t digest[16]);
#undef ZSW_MD5_BYTE_ORDER /* 1 = big-endian, -1 = little-endian, 0 = unknown */
#ifdef ARCH_IS_BIG_ENDIAN
# define ZSW_MD5_BYTE_ORDER (ARCH_IS_BIG_ENDIAN ? 1 : -1)
#else
# define ZSW_MD5_BYTE_ORDER 0
#endif
#define ZSW_MD5_T_MASK ((md5_word_t)~0)
#define ZSW_MD5_T1 /* 0xd76aa478 */ (ZSW_MD5_T_MASK ^ 0x28955b87)
#define ZSW_MD5_T2 /* 0xe8c7b756 */ (ZSW_MD5_T_MASK ^ 0x173848a9)
#define ZSW_MD5_T3 0x242070db
#define ZSW_MD5_T4 /* 0xc1bdceee */ (ZSW_MD5_T_MASK ^ 0x3e423111)
#define ZSW_MD5_T5 /* 0xf57c0faf */ (ZSW_MD5_T_MASK ^ 0x0a83f050)
#define ZSW_MD5_T6 0x4787c62a
#define ZSW_MD5_T7 /* 0xa8304613 */ (ZSW_MD5_T_MASK ^ 0x57cfb9ec)
#define ZSW_MD5_T8 /* 0xfd469501 */ (ZSW_MD5_T_MASK ^ 0x02b96afe)
#define ZSW_MD5_T9 0x698098d8
#define ZSW_MD5_T10 /* 0x8b44f7af */ (ZSW_MD5_T_MASK ^ 0x74bb0850)
#define ZSW_MD5_T11 /* 0xffff5bb1 */ (ZSW_MD5_T_MASK ^ 0x0000a44e)
#define ZSW_MD5_T12 /* 0x895cd7be */ (ZSW_MD5_T_MASK ^ 0x76a32841)
#define ZSW_MD5_T13 0x6b901122
#define ZSW_MD5_T14 /* 0xfd987193 */ (ZSW_MD5_T_MASK ^ 0x02678e6c)
#define ZSW_MD5_T15 /* 0xa679438e */ (ZSW_MD5_T_MASK ^ 0x5986bc71)
#define ZSW_MD5_T16 0x49b40821
#define ZSW_MD5_T17 /* 0xf61e2562 */ (ZSW_MD5_T_MASK ^ 0x09e1da9d)
#define ZSW_MD5_T18 /* 0xc040b340 */ (ZSW_MD5_T_MASK ^ 0x3fbf4cbf)
#define ZSW_MD5_T19 0x265e5a51
#define ZSW_MD5_T20 /* 0xe9b6c7aa */ (ZSW_MD5_T_MASK ^ 0x16493855)
#define ZSW_MD5_T21 /* 0xd62f105d */ (ZSW_MD5_T_MASK ^ 0x29d0efa2)
#define ZSW_MD5_T22 0x02441453
#define ZSW_MD5_T23 /* 0xd8a1e681 */ (ZSW_MD5_T_MASK ^ 0x275e197e)
#define ZSW_MD5_T24 /* 0xe7d3fbc8 */ (ZSW_MD5_T_MASK ^ 0x182c0437)
#define ZSW_MD5_T25 0x21e1cde6
#define ZSW_MD5_T26 /* 0xc33707d6 */ (ZSW_MD5_T_MASK ^ 0x3cc8f829)
#define ZSW_MD5_T27 /* 0xf4d50d87 */ (ZSW_MD5_T_MASK ^ 0x0b2af278)
#define ZSW_MD5_T28 0x455a14ed
#define ZSW_MD5_T29 /* 0xa9e3e905 */ (ZSW_MD5_T_MASK ^ 0x561c16fa)
#define ZSW_MD5_T30 /* 0xfcefa3f8 */ (ZSW_MD5_T_MASK ^ 0x03105c07)
#define ZSW_MD5_T31 0x676f02d9
#define ZSW_MD5_T32 /* 0x8d2a4c8a */ (ZSW_MD5_T_MASK ^ 0x72d5b375)
#define ZSW_MD5_T33 /* 0xfffa3942 */ (ZSW_MD5_T_MASK ^ 0x0005c6bd)
#define ZSW_MD5_T34 /* 0x8771f681 */ (ZSW_MD5_T_MASK ^ 0x788e097e)
#define ZSW_MD5_T35 0x6d9d6122
#define ZSW_MD5_T36 /* 0xfde5380c */ (ZSW_MD5_T_MASK ^ 0x021ac7f3)
#define ZSW_MD5_T37 /* 0xa4beea44 */ (ZSW_MD5_T_MASK ^ 0x5b4115bb)
#define ZSW_MD5_T38 0x4bdecfa9
#define ZSW_MD5_T39 /* 0xf6bb4b60 */ (ZSW_MD5_T_MASK ^ 0x0944b49f)
#define ZSW_MD5_T40 /* 0xbebfbc70 */ (ZSW_MD5_T_MASK ^ 0x4140438f)
#define ZSW_MD5_T41 0x289b7ec6
#define ZSW_MD5_T42 /* 0xeaa127fa */ (ZSW_MD5_T_MASK ^ 0x155ed805)
#define ZSW_MD5_T43 /* 0xd4ef3085 */ (ZSW_MD5_T_MASK ^ 0x2b10cf7a)
#define ZSW_MD5_T44 0x04881d05
#define ZSW_MD5_T45 /* 0xd9d4d039 */ (ZSW_MD5_T_MASK ^ 0x262b2fc6)
#define ZSW_MD5_T46 /* 0xe6db99e5 */ (ZSW_MD5_T_MASK ^ 0x1924661a)
#define ZSW_MD5_T47 0x1fa27cf8
#define ZSW_MD5_T48 /* 0xc4ac5665 */ (ZSW_MD5_T_MASK ^ 0x3b53a99a)
#define ZSW_MD5_T49 /* 0xf4292244 */ (ZSW_MD5_T_MASK ^ 0x0bd6ddbb)
#define ZSW_MD5_T50 0x432aff97
#define ZSW_MD5_T51 /* 0xab9423a7 */ (ZSW_MD5_T_MASK ^ 0x546bdc58)
#define ZSW_MD5_T52 /* 0xfc93a039 */ (ZSW_MD5_T_MASK ^ 0x036c5fc6)
#define ZSW_MD5_T53 0x655b59c3
#define ZSW_MD5_T54 /* 0x8f0ccc92 */ (ZSW_MD5_T_MASK ^ 0x70f3336d)
#define ZSW_MD5_T55 /* 0xffeff47d */ (ZSW_MD5_T_MASK ^ 0x00100b82)
#define ZSW_MD5_T56 /* 0x85845dd1 */ (ZSW_MD5_T_MASK ^ 0x7a7ba22e)
#define ZSW_MD5_T57 0x6fa87e4f
#define ZSW_MD5_T58 /* 0xfe2ce6e0 */ (ZSW_MD5_T_MASK ^ 0x01d3191f)
#define ZSW_MD5_T59 /* 0xa3014314 */ (ZSW_MD5_T_MASK ^ 0x5cfebceb)
#define ZSW_MD5_T60 0x4e0811a1
#define ZSW_MD5_T61 /* 0xf7537e82 */ (ZSW_MD5_T_MASK ^ 0x08ac817d)
#define ZSW_MD5_T62 /* 0xbd3af235 */ (ZSW_MD5_T_MASK ^ 0x42c50dca)
#define ZSW_MD5_T63 0x2ad7d2bb
#define ZSW_MD5_T64 /* 0xeb86d391 */ (ZSW_MD5_T_MASK ^ 0x14792c6e)
static void md5_process(md5_state_t *pms, md5_byte_t const * data /*[64]*/) {
md5_word_t
a = pms->abcd[0], b = pms->abcd[1],
c = pms->abcd[2], d = pms->abcd[3];
md5_word_t t;
#if ZSW_MD5_BYTE_ORDER > 0
/* Define storage only for big-endian CPUs. */
md5_word_t X[16];
#else
/* Define storage for little-endian or both types of CPUs. */
md5_word_t xbuf[16];
md5_word_t const * X;
#endif
{
#if ZSW_MD5_BYTE_ORDER == 0
/*
* Determine dynamically whether this is a big-endian or
* little-endian machine, since we can use a more efficient
* algorithm on the latter.
*/
static int const w = 1;
if (*((md5_byte_t const *)&w)) /* dynamic little-endian */
#endif
#if ZSW_MD5_BYTE_ORDER <= 0 /* little-endian */
{
/*
* On little-endian machines, we can process properly aligned
* data without copying it.
*/
if (!((data - (md5_byte_t const *)0) & 3)) {
/* data are properly aligned */
X = (md5_word_t const *)data;
} else {
/* not aligned */
std::memcpy(xbuf, data, 64);
X = xbuf;
}
}
#endif
#if ZSW_MD5_BYTE_ORDER == 0
else /* dynamic big-endian */
#endif
#if ZSW_MD5_BYTE_ORDER >= 0 /* big-endian */
{
/*
* On big-endian machines, we must arrange the bytes in the
* right order.
*/
const md5_byte_t *xp = data;
int i;
# if ZSW_MD5_BYTE_ORDER == 0
X = xbuf; /* (dynamic only) */
# else
# define xbuf X /* (static only) */
# endif
for (i = 0; i < 16; ++i, xp += 4)
xbuf[i] = xp[0] + (xp[1] << 8) + (xp[2] << 16) + (xp[3] << 24);
}
#endif
}
#define ZSW_MD5_ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32 - (n))))
/* Round 1. */
/* Let [abcd k s i] denote the operation
a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */
#define ZSW_MD5_F(x, y, z) (((x) & (y)) | (~(x) & (z)))
#define SET(a, b, c, d, k, s, Ti)
t = a + ZSW_MD5_F(b,c,d) + X[k] + Ti;
a = ZSW_MD5_ROTATE_LEFT(t, s) + b
/* Do the following 16 operations. */
SET(a, b, c, d, 0, 7, ZSW_MD5_T1);
SET(d, a, b, c, 1, 12, ZSW_MD5_T2);
SET(c, d, a, b, 2, 17, ZSW_MD5_T3);
SET(b, c, d, a, 3, 22, ZSW_MD5_T4);
SET(a, b, c, d, 4, 7, ZSW_MD5_T5);
SET(d, a, b, c, 5, 12, ZSW_MD5_T6);
SET(c, d, a, b, 6, 17, ZSW_MD5_T7);
SET(b, c, d, a, 7, 22, ZSW_MD5_T8);
SET(a, b, c, d, 8, 7, ZSW_MD5_T9);
SET(d, a, b, c, 9, 12, ZSW_MD5_T10);
SET(c, d, a, b, 10, 17, ZSW_MD5_T11);
SET(b, c, d, a, 11, 22, ZSW_MD5_T12);
SET(a, b, c, d, 12, 7, ZSW_MD5_T13);
SET(d, a, b, c, 13, 12, ZSW_MD5_T14);
SET(c, d, a, b, 14, 17, ZSW_MD5_T15);
SET(b, c, d, a, 15, 22, ZSW_MD5_T16);
#undef SET
/* Round 2. */
/* Let [abcd k s i] denote the operation
a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */
#define ZSW_MD5_G(x, y, z) (((x) & (z)) | ((y) & ~(z)))
#define SET(a, b, c, d, k, s, Ti)
t = a + ZSW_MD5_G(b,c,d) + X[k] + Ti;
a = ZSW_MD5_ROTATE_LEFT(t, s) + b
/* Do the following 16 operations. */
SET(a, b, c, d, 1, 5, ZSW_MD5_T17);
SET(d, a, b, c, 6, 9, ZSW_MD5_T18);
SET(c, d, a, b, 11, 14, ZSW_MD5_T19);
SET(b, c, d, a, 0, 20, ZSW_MD5_T20);
SET(a, b, c, d, 5, 5, ZSW_MD5_T21);
SET(d, a, b, c, 10, 9, ZSW_MD5_T22);
SET(c, d, a, b, 15, 14, ZSW_MD5_T23);
SET(b, c, d, a, 4, 20, ZSW_MD5_T24);
SET(a, b, c, d, 9, 5, ZSW_MD5_T25);
SET(d, a, b, c, 14, 9, ZSW_MD5_T26);
SET(c, d, a, b, 3, 14, ZSW_MD5_T27);
SET(b, c, d, a, 8, 20, ZSW_MD5_T28);
SET(a, b, c, d, 13, 5, ZSW_MD5_T29);
SET(d, a, b, c, 2, 9, ZSW_MD5_T30);
SET(c, d, a, b, 7, 14, ZSW_MD5_T31);
SET(b, c, d, a, 12, 20, ZSW_MD5_T32);
#undef SET
/* Round 3. */
/* Let [abcd k s t] denote the operation
a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */
#define ZSW_MD5_H(x, y, z) ((x) ^ (y) ^ (z))
#define SET(a, b, c, d, k, s, Ti)
t = a + ZSW_MD5_H(b,c,d) + X[k] + Ti;
a = ZSW_MD5_ROTATE_LEFT(t, s) + b
/* Do the following 16 operations. */
SET(a, b, c, d, 5, 4, ZSW_MD5_T33);
SET(d, a, b, c, 8, 11, ZSW_MD5_T34);
SET(c, d, a, b, 11, 16, ZSW_MD5_T35);
SET(b, c, d, a, 14, 23, ZSW_MD5_T36);
SET(a, b, c, d, 1, 4, ZSW_MD5_T37);
SET(d, a, b, c, 4, 11, ZSW_MD5_T38);
SET(c, d, a, b, 7, 16, ZSW_MD5_T39);
SET(b, c, d, a, 10, 23, ZSW_MD5_T40);
SET(a, b, c, d, 13, 4, ZSW_MD5_T41);
SET(d, a, b, c, 0, 11, ZSW_MD5_T42);
SET(c, d, a, b, 3, 16, ZSW_MD5_T43);
SET(b, c, d, a, 6, 23, ZSW_MD5_T44);
SET(a, b, c, d, 9, 4, ZSW_MD5_T45);
SET(d, a, b, c, 12, 11, ZSW_MD5_T46);
SET(c, d, a, b, 15, 16, ZSW_MD5_T47);
SET(b, c, d, a, 2, 23, ZSW_MD5_T48);
#undef SET
/* Round 4. */
/* Let [abcd k s t] denote the operation
a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */
#define ZSW_MD5_I(x, y, z) ((y) ^ ((x) | ~(z)))
#define SET(a, b, c, d, k, s, Ti)
t = a + ZSW_MD5_I(b,c,d) + X[k] + Ti;
a = ZSW_MD5_ROTATE_LEFT(t, s) + b
/* Do the following 16 operations. */
SET(a, b, c, d, 0, 6, ZSW_MD5_T49);
SET(d, a, b, c, 7, 10, ZSW_MD5_T50);
SET(c, d, a, b, 14, 15, ZSW_MD5_T51);
SET(b, c, d, a, 5, 21, ZSW_MD5_T52);
SET(a, b, c, d, 12, 6, ZSW_MD5_T53);
SET(d, a, b, c, 3, 10, ZSW_MD5_T54);
SET(c, d, a, b, 10, 15, ZSW_MD5_T55);
SET(b, c, d, a, 1, 21, ZSW_MD5_T56);
SET(a, b, c, d, 8, 6, ZSW_MD5_T57);
SET(d, a, b, c, 15, 10, ZSW_MD5_T58);
SET(c, d, a, b, 6, 15, ZSW_MD5_T59);
SET(b, c, d, a, 13, 21, ZSW_MD5_T60);
SET(a, b, c, d, 4, 6, ZSW_MD5_T61);
SET(d, a, b, c, 11, 10, ZSW_MD5_T62);
SET(c, d, a, b, 2, 15, ZSW_MD5_T63);
SET(b, c, d, a, 9, 21, ZSW_MD5_T64);
#undef SET
/* Then perform the following additions. (That is increment each
of the four registers by the value it had before this block
was started.) */
pms->abcd[0] += a;
pms->abcd[1] += b;
pms->abcd[2] += c;
pms->abcd[3] += d;
}
void md5_init(md5_state_t *pms) {
pms->count[0] = pms->count[1] = 0;
pms->abcd[0] = 0x67452301;
pms->abcd[1] = /*0xefcdab89*/ ZSW_MD5_T_MASK ^ 0x10325476;
pms->abcd[2] = /*0x98badcfe*/ ZSW_MD5_T_MASK ^ 0x67452301;
pms->abcd[3] = 0x10325476;
}
void md5_append(md5_state_t *pms, md5_byte_t const * data, size_t nbytes) {
md5_byte_t const * p = data;
size_t left = nbytes;
int offset = (pms->count[0] >> 3) & 63;
md5_word_t nbits = (md5_word_t)(nbytes << 3);
if (nbytes <= 0)
return;
/* Update the message length. */
pms->count[1] += static_cast<md5_word_t>(nbytes >> 29);
pms->count[0] += nbits;
if (pms->count[0] < nbits)
pms->count[1]++;
/* Process an initial partial block. */
if (offset) {
int copy = (offset + nbytes > 64 ? 64 - offset : static_cast<int>(nbytes));
std::memcpy(pms->buf + offset, p, copy);
if (offset + copy < 64)
return;
p += copy;
left -= copy;
md5_process(pms, pms->buf);
}
/* Process full blocks. */
for (; left >= 64; p += 64, left -= 64)
md5_process(pms, p);
/* Process a final partial block. */
if (left)
std::memcpy(pms->buf, p, left);
}
void md5_finish(md5_state_t *pms, md5_byte_t digest[16]) {
static md5_byte_t const pad[64] = {
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
md5_byte_t data[8];
int i;
/* Save the length before padding. */
for (i = 0; i < 8; ++i)
data[i] = (md5_byte_t)(pms->count[i >> 2] >> ((i & 3) << 3));
/* Pad to 56 bytes mod 64. */
md5_append(pms, pad, ((55 - (pms->count[0] >> 3)) & 63) + 1);
/* Append the length. */
md5_append(pms, data, 8);
for (i = 0; i < 16; ++i)
digest[i] = (md5_byte_t)(pms->abcd[i >> 2] >> ((i & 3) << 3));
}
// some convenience c++ functions
inline std::string md5_hash_string(std::string const & s) {
char digest[16];
md5_state_t state;
md5_init(&state);
md5_append(&state, (md5_byte_t const *)s.c_str(), s.size());
md5_finish(&state, (md5_byte_t *)digest);
std::string ret;
ret.resize(16);
std::copy(digest,digest+16,ret.begin());
return ret;
}
const char hexval[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
inline std::string md5_hash_hex(std::string const & input) {
std::string hash = md5_hash_string(input);
std::string hex;
for (size_t i = 0; i < hash.size(); i++) {
hex.push_back(hexval[((hash[i] >> 4) & 0xF)]);
hex.push_back(hexval[(hash[i]) & 0x0F]);
}
return hex;
}
} // md5
} // websocketpp
#endif // WEBSOCKETPP_COMMON_MD5_HPP
_WEBSOCKETPP_CPP11_FUNCTIONAL_
#define _WEBSOCKETPP_CPP11_FUNCTIONAL_
Definition boost_config.hpp:41
_WEBSOCKETPP_CPP11_THREAD_
#define _WEBSOCKETPP_CPP11_THREAD_
Definition boost_config.hpp:61
_WEBSOCKETPP_CPP11_MEMORY_
#define _WEBSOCKETPP_CPP11_MEMORY_
Definition boost_config.hpp:40
_WEBSOCKETPP_CPP11_SYSTEM_ERROR_
#define _WEBSOCKETPP_CPP11_SYSTEM_ERROR_
Definition boost_config.hpp:57
_WEBSOCKETPP_INITIALIZER_LISTS_
#define _WEBSOCKETPP_INITIALIZER_LISTS_
Definition boost_config.hpp:65
broadcast_server
Definition simple_broadcast_server.cpp:13
websocketpp::concurrency::basic
Concurrency policy that uses std::mutex / boost::mutex.
Definition basic.hpp:37
websocketpp::connection_base
Stub for user supplied base class.
Definition connection_base.hpp:34
websocketpp::connection
Represents an individual WebSocket connection.
Definition connection.hpp:238
websocketpp::connection::get_shared
ptr get_shared()
Get a shared pointer to this component.
Definition connection.hpp:336
websocketpp::connection::handle_interrupt
void handle_interrupt()
Transport interrupt callback.
Definition connection_impl.hpp:359
websocketpp::connection::set_message_handler
void set_message_handler(message_handler h)
Set message handler.
Definition connection.hpp:473
websocketpp::connection::interrupt
lib::error_code interrupt()
Asynchronously invoke handler::on_interrupt.
Definition connection_impl.hpp:347
websocketpp::connection::start
void start()
Start the connection state machine.
Definition connection_impl.hpp:820
websocketpp::connection::get_request_body
std::string const & get_request_body() const
Retrieve a request body.
Definition connection_impl.hpp:544
websocketpp::connection::transport_con_type
config::transport_type::transport_con_type transport_con_type
Type of the transport component of this connection.
Definition connection.hpp:256
websocketpp::connection::set_close_handler
void set_close_handler(close_handler h)
Set close handler.
Definition connection.hpp:361
websocketpp::connection::send
lib::error_code send(message_ptr msg)
Add a message to the outgoing send queue.
websocketpp::connection::alog_type
config::alog_type alog_type
Type of the access logging policy.
Definition connection.hpp:250
websocketpp::connection::get_response_code
http::status_code::value get_response_code() const
Get response HTTP status code.
Definition connection.hpp:981
websocketpp::connection::defer_http_response
lib::error_code defer_http_response()
Defer HTTP Response until later (Exception free).
Definition connection_impl.hpp:763
websocketpp::connection::resume_reading
lib::error_code resume_reading()
Resume reading of new data.
Definition connection_impl.hpp:384
websocketpp::connection::get_secure
bool get_secure() const
Returns the secure flag from the connection URI.
Definition connection_impl.hpp:412
websocketpp::connection::set_close_handshake_timeout
void set_close_handshake_timeout(long dur)
Set close handshake timeout.
Definition connection.hpp:525
websocketpp::connection::get_buffered_amount
size_t get_buffered_amount() const
Get the size of the outgoing write buffer (in payload bytes).
Definition connection_impl.hpp:71
websocketpp::connection::get_origin
std::string const & get_origin() const
Return the same origin policy origin value from the opening request.
Definition connection_impl.hpp:65
websocketpp::connection::get_host
std::string const & get_host() const
Returns the host component of the connection URI.
Definition connection_impl.hpp:418
websocketpp::connection::get_response
response_type const & get_response() const
Get response object.
Definition connection.hpp:1272
websocketpp::connection::set_max_message_size
void set_max_message_size(size_t new_value)
Set maximum message size.
Definition connection.hpp:575
websocketpp::connection::get_resource
std::string const & get_resource() const
Returns the resource component of the connection URI.
Definition connection_impl.hpp:424
websocketpp::connection::process_handshake_request
lib::error_code process_handshake_request()
Definition connection_impl.hpp:1288
websocketpp::connection::handle_pause_reading
void handle_pause_reading()
Pause reading callback.
Definition connection_impl.hpp:378
websocketpp::connection::get_supported_versions
std::vector< int > const & get_supported_versions() const
Get array of WebSocket protocol versions that this connection supports.
Definition connection_impl.hpp:2070
websocketpp::connection::send
lib::error_code send(void const *payload, size_t len, frame::opcode::value op=frame::opcode::binary)
Send a message (raw array overload).
Definition connection_impl.hpp:94
websocketpp::connection::get_uri
uri_ptr get_uri() const
Gets the connection URI.
Definition connection_impl.hpp:436
websocketpp::connection::get_handle
connection_hdl get_handle() const
Get Connection Handle.
Definition connection.hpp:1334
websocketpp::connection::send_http_response
void send_http_response(lib::error_code &ec)
Send deferred HTTP Response (exception free).
Definition connection_impl.hpp:788
websocketpp::connection::type
connection< config > type
Type of this connection.
Definition connection.hpp:241
websocketpp::connection::set_http_handler
void set_http_handler(http_handler h)
Set http handler.
Definition connection.hpp:447
websocketpp::connection::get_response_msg
std::string const & get_response_msg() const
Get response HTTP status message.
Definition connection.hpp:993
websocketpp::connection::elog_type
config::elog_type elog_type
Type of the error logging policy.
Definition connection.hpp:252
websocketpp::connection::get_message
message_ptr get_message(websocketpp::frame::opcode::value op, size_t size) const
Get a message buffer.
Definition connection.hpp:1428
websocketpp::connection::handle_write_frame
void handle_write_frame(lib::error_code const &ec)
Process the results of a frame write operation and start the next write.
Definition connection_impl.hpp:2028
websocketpp::connection::get_local_close_code
close::status::value get_local_close_code() const
Get the WebSocket close code sent by this endpoint.
Definition connection.hpp:1368
websocketpp::connection::get_ec
lib::error_code get_ec() const
Get the internal error code for a closed/failed connection.
Definition connection.hpp:1405
websocketpp::connection::set_status
void set_status(http::status_code::value code, lib::error_code &ec)
Set response status code and message (exception free).
Definition connection_impl.hpp:555
websocketpp::connection::set_fail_handler
void set_fail_handler(fail_handler h)
Set fail handler.
Definition connection.hpp:372
websocketpp::connection::write_frame
void write_frame()
Checks if there are frames in the send queue and if there are sends one.
Definition connection_impl.hpp:1932
websocketpp::connection::get_state
session::state::value get_state() const
Return the connection state.
Definition connection_impl.hpp:77
websocketpp::connection::set_status
void set_status(http::status_code::value code)
Set response status code and message (exception).
Definition connection_impl.hpp:567
websocketpp::connection::get_max_http_body_size
size_t get_max_http_body_size() const
Get maximum HTTP message body size.
Definition connection.hpp:594
websocketpp::connection::concurrency_type
config::concurrency_type concurrency_type
Type of the concurrency component of this connection.
Definition connection.hpp:248
websocketpp::connection::timer_ptr
transport_con_type::timer_ptr timer_ptr
Type of a pointer to a transport timer handle.
Definition connection.hpp:284
websocketpp::connection::set_validate_handler
void set_validate_handler(validate_handler h)
Set validate handler.
Definition connection.hpp:463
websocketpp::connection::set_interrupt_handler
void set_interrupt_handler(interrupt_handler h)
Set interrupt handler.
Definition connection.hpp:432
websocketpp::connection::buffered_amount
size_t buffered_amount() const
Get the size of the outgoing write buffer (in payload bytes).
Definition connection.hpp:635
websocketpp::connection::send_http_response
void send_http_response()
Send deferred HTTP Response.
Definition connection_impl.hpp:805
websocketpp::connection::get_remote_close_code
close::status::value get_remote_close_code() const
Get the WebSocket close code sent by the remote endpoint.
Definition connection.hpp:1384
websocketpp::connection::set_open_handler
void set_open_handler(open_handler h)
Set open handler.
Definition connection.hpp:351
websocketpp::connection::is_server
bool is_server() const
Get whether or not this connection is part of a server or client.
Definition connection.hpp:1342
websocketpp::connection::ptr
lib::shared_ptr< type > ptr
Type of a shared pointer to this connection.
Definition connection.hpp:243
websocketpp::connection::get_remote_close_reason
std::string const & get_remote_close_reason() const
Get the WebSocket close reason sent by the remote endpoint.
Definition connection.hpp:1392
websocketpp::connection::set_pong_timeout
void set_pong_timeout(long dur)
Set pong timeout.
Definition connection.hpp:546
websocketpp::connection::initialize_processor
lib::error_code initialize_processor()
Definition connection_impl.hpp:1246
websocketpp::connection::set_uri
void set_uri(uri_ptr uri)
Sets the connection URI.
Definition connection_impl.hpp:442
websocketpp::connection::set_termination_handler
void set_termination_handler(termination_handler new_handler)
Definition connection_impl.hpp:53
websocketpp::connection::get_request
request_type const & get_request() const
Get request object.
Definition connection.hpp:1253
websocketpp::connection::set_max_http_body_size
void set_max_http_body_size(size_t new_value)
Set maximum HTTP message body size.
Definition connection.hpp:610
websocketpp::connection::transport_con_ptr
transport_con_type::ptr transport_con_ptr
Type of a shared pointer to the transport component of this connection.
Definition connection.hpp:258
websocketpp::connection::set_open_handshake_timeout
void set_open_handshake_timeout(long dur)
Set open handshake timeout.
Definition connection.hpp:501
websocketpp::connection::pause_reading
lib::error_code pause_reading()
Pause reading of new data.
Definition connection_impl.hpp:366
websocketpp::connection::handle_resume_reading
void handle_resume_reading()
Resume reading callback.
Definition connection_impl.hpp:396
websocketpp::connection::get_requested_subprotocols
std::vector< std::string > const & get_requested_subprotocols() const
Gets all of the subprotocols requested by the client.
Definition connection_impl.hpp:459
websocketpp::connection::get_subprotocol
std::string const & get_subprotocol() const
Gets the negotiated subprotocol.
Definition connection_impl.hpp:453
websocketpp::connection::set_handle
void set_handle(connection_hdl hdl)
Set Connection Handle.
Definition connection.hpp:1507
websocketpp::connection::read_frame
void read_frame()
Issue a new transport read unless reading is paused.
Definition connection_impl.hpp:1225
websocketpp::connection::get_port
uint16_t get_port() const
Returns the port component of the connection URI.
Definition connection_impl.hpp:430
websocketpp::connection::get_local_close_reason
std::string const & get_local_close_reason() const
Get the WebSocket close reason sent by this endpoint.
Definition connection.hpp:1376
websocketpp::connection::get_max_message_size
size_t get_max_message_size() const
Get maximum message size.
Definition connection.hpp:559
websocketpp::connection::rng_type
config::rng_type rng_type
Type of RNG.
Definition connection.hpp:275
websocketpp::endpoint_base
Stub for user supplied base class.
Definition endpoint_base.hpp:34
websocketpp::endpoint
Creates and manages connections associated with a WebSocket endpoint.
Definition endpoint.hpp:44
websocketpp::endpoint::set_max_http_body_size
void set_max_http_body_size(size_t new_value)
Set maximum HTTP message body size.
Definition endpoint.hpp:468
websocketpp::endpoint::get_con_from_hdl
connection_ptr get_con_from_hdl(connection_hdl hdl, lib::error_code &ec)
Retrieves a connection_ptr from a connection_hdl (exception free).
Definition endpoint.hpp:644
websocketpp::endpoint::concurrency_type
config::concurrency_type concurrency_type
Type of the concurrency component of this endpoint.
Definition endpoint.hpp:53
websocketpp::endpoint::alog_type
config::alog_type alog_type
Type of access logger.
Definition endpoint.hpp:77
websocketpp::endpoint::get_alog
alog_type & get_alog()
Get reference to access logger.
Definition endpoint.hpp:263
websocketpp::endpoint::transport_con_ptr
transport_con_type::ptr transport_con_ptr
Definition endpoint.hpp:67
websocketpp::endpoint::get_user_agent
std::string get_user_agent() const
Returns the user agent string that this endpoint will use.
Definition endpoint.hpp:171
websocketpp::endpoint::clear_access_channels
void clear_access_channels(log::level channels)
Clear Access logging channels.
Definition endpoint.hpp:233
websocketpp::endpoint::resume_reading
void resume_reading(connection_hdl hdl)
Resume reading of new data.
Definition endpoint_impl.hpp:205
websocketpp::endpoint::elog_type
config::elog_type elog_type
Type of error logger.
Definition endpoint.hpp:75
websocketpp::endpoint::get_elog
elog_type & get_elog()
Get reference to error logger.
Definition endpoint.hpp:271
websocketpp::endpoint::is_server
bool is_server() const
Returns whether or not this endpoint is a server.
Definition endpoint.hpp:207
websocketpp::endpoint::~endpoint
~endpoint()
Destructor.
Definition endpoint.hpp:114
websocketpp::endpoint::set_close_handshake_timeout
void set_close_handshake_timeout(long dur)
Set close handshake timeout.
Definition endpoint.hpp:379
websocketpp::endpoint::message_ptr
connection_type::message_ptr message_ptr
Type of message pointers that this endpoint uses.
Definition endpoint.hpp:72
websocketpp::endpoint::set_access_channels
void set_access_channels(log::level channels)
Set Access logging channel.
Definition endpoint.hpp:222
websocketpp::endpoint::set_max_message_size
void set_max_message_size(size_t new_value)
Set default maximum message size.
Definition endpoint.hpp:434
websocketpp::endpoint::get_max_message_size
size_t get_max_message_size() const
Get default maximum message size.
Definition endpoint.hpp:417
websocketpp::endpoint::get_con_from_hdl
connection_ptr get_con_from_hdl(connection_hdl hdl)
Retrieves a connection_ptr from a connection_hdl (exception version).
Definition endpoint.hpp:655
websocketpp::endpoint::connection_type
connection connection_type
Type of the connections that this endpoint creates.
Definition endpoint.hpp:56
websocketpp::endpoint::set_error_channels
void set_error_channels(log::level channels)
Set Error logging channel.
Definition endpoint.hpp:244
websocketpp::endpoint::transport_type
config::transport_type transport_type
Type of the transport component of this endpoint.
Definition endpoint.hpp:51
websocketpp::endpoint::clear_error_channels
void clear_error_channels(log::level channels)
Clear Error logging channels.
Definition endpoint.hpp:255
websocketpp::endpoint::resume_reading
void resume_reading(connection_hdl hdl, lib::error_code &ec)
Resume reading of new data (exception free).
Definition endpoint_impl.hpp:114
websocketpp::endpoint::connection_ptr
connection_type::ptr connection_ptr
Shared pointer to connection_type.
Definition endpoint.hpp:58
websocketpp::endpoint::transport_con_type
transport_type::transport_con_type transport_con_type
Definition endpoint.hpp:64
websocketpp::endpoint::mutex_type
concurrency_type::mutex_type mutex_type
Type of our concurrency policy's mutex object.
Definition endpoint.hpp:82
websocketpp::endpoint::interrupt
void interrupt(connection_hdl hdl, lib::error_code &ec)
Definition endpoint_impl.hpp:94
websocketpp::endpoint::set_pong_timeout
void set_pong_timeout(long dur)
Set pong timeout.
Definition endpoint.hpp:401
websocketpp::endpoint::get_max_http_body_size
size_t get_max_http_body_size() const
Get maximum HTTP message body size.
Definition endpoint.hpp:451
websocketpp::endpoint::set_open_handshake_timeout
void set_open_handshake_timeout(long dur)
Set open handshake timeout.
Definition endpoint.hpp:354
websocketpp::endpoint::rng_type
config::rng_type rng_type
Type of RNG.
Definition endpoint.hpp:85
websocketpp::endpoint::scoped_lock_type
concurrency_type::scoped_lock_type scoped_lock_type
Type of our concurrency policy's scoped lock object.
Definition endpoint.hpp:80
websocketpp::endpoint::send_http_response
void send_http_response(connection_hdl hdl, lib::error_code &ec)
Send deferred HTTP Response.
Definition endpoint_impl.hpp:123
websocketpp::endpoint::pause_reading
void pause_reading(connection_hdl hdl, lib::error_code &ec)
Pause reading of new data (exception free).
Definition endpoint_impl.hpp:105
websocketpp::endpoint::send_http_response
void send_http_response(connection_hdl hdl)
Send deferred HTTP Response (exception free).
Definition endpoint_impl.hpp:212
websocketpp::endpoint::pause_reading
void pause_reading(connection_hdl hdl)
Pause reading of new data.
Definition endpoint_impl.hpp:198
websocketpp::endpoint::message_handler
connection_type::message_handler message_handler
Type of message_handler.
Definition endpoint.hpp:70
websocketpp::endpoint::connection_weak_ptr
connection_type::weak_ptr connection_weak_ptr
Weak pointer to connection type.
Definition endpoint.hpp:60
websocketpp::error::category
Definition error.hpp:153
websocketpp::exception
Definition error.hpp:256
websocketpp::extensions::error::category
Definition extension.hpp:61
websocketpp::extensions::permessage_deflate::disabled
Stub class for use when disabling permessage_deflate extension.
Definition disabled.hpp:53
websocketpp::extensions::permessage_deflate::disabled::is_implemented
bool is_implemented() const
Definition disabled.hpp:82
websocketpp::extensions::permessage_deflate::disabled::negotiate
err_str_pair negotiate(http::attribute_list const &)
Negotiate extension.
Definition disabled.hpp:65
websocketpp::extensions::permessage_deflate::disabled::is_enabled
bool is_enabled() const
Definition disabled.hpp:88
websocketpp::extensions::permessage_deflate::disabled::generate_offer
std::string generate_offer() const
Generate extension offer.
Definition disabled.hpp:99
websocketpp::extensions::permessage_deflate::disabled::init
lib::error_code init(bool)
Initialize state.
Definition disabled.hpp:76
websocketpp::http::error::category
HTTP parser error category.
Definition constants.hpp:399
websocketpp::http::exception
An exception type specific to HTTP errors.
Definition constants.hpp:300
websocketpp::http::parser::parser
Base HTTP parser.
Definition parser.hpp:398
websocketpp::http::parser::parser::get_headers
header_list const & get_headers() const
Return a list of all HTTP headers.
Definition parser.hpp:211
websocketpp::http::parser::parser::get_body
std::string const & get_body() const
Get HTTP body.
Definition parser.hpp:515
websocketpp::http::parser::parser::body_ready
bool body_ready() const
Check if the parser is done parsing the body.
Definition parser.hpp:618
websocketpp::http::parser::parser::set_max_body_size
void set_max_body_size(size_t value)
Set body size limit.
Definition parser.hpp:555
websocketpp::http::parser::parser::prepare_body
bool prepare_body(lib::error_code &ec)
Prepare the parser to begin parsing body data.
Definition parser.hpp:143
websocketpp::http::parser::parser::raw_headers
std::string raw_headers() const
Generate and return the HTTP headers as a string.
Definition parser.hpp:215
websocketpp::http::parser::parser::process_body
size_t process_body(char const *buf, size_t len, lib::error_code &ec)
Process body data.
Definition parser.hpp:172
websocketpp::http::parser::parser::get_version
std::string const & get_version() const
Get the HTTP version string.
Definition parser.hpp:410
websocketpp::http::parser::parser::get_max_body_size
size_t get_max_body_size() const
Get body size limit.
Definition parser.hpp:542
websocketpp::http::parser::parser::process_header
lib::error_code process_header(std::string::iterator begin, std::string::iterator end)
Process a header line.
Definition parser.hpp:191
websocketpp::http::parser::request
Stores, parses, and manipulates HTTP requests.
Definition request.hpp:50
websocketpp::http::parser::request::raw
std::string raw() const
Returns the full raw request (including the body).
Definition request.hpp:195
websocketpp::http::parser::request::get_uri
std::string const & get_uri() const
Return the requested URI.
Definition request.hpp:123
websocketpp::http::parser::request::get_method
std::string const & get_method() const
Return the request method.
Definition request.hpp:107
websocketpp::http::parser::request::ready
bool ready() const
Returns whether or not the request is ready for reading.
Definition request.hpp:85
websocketpp::http::parser::request::consume
size_t consume(char const *buf, size_t len, lib::error_code &ec)
Process bytes in the input buffer.
Definition request.hpp:41
websocketpp::http::parser::request::raw_head
std::string raw_head() const
Returns the raw request headers only (similar to an HTTP HEAD request).
Definition request.hpp:205
websocketpp::http::parser::response
Stores, parses, and manipulates HTTP responses.
Definition response.hpp:57
websocketpp::http::parser::response::raw
std::string raw() const
Returns the full raw response.
Definition response.hpp:246
websocketpp::http::parser::response::consume
size_t consume(char const *buf, size_t len, lib::error_code &ec)
Process bytes in the input buffer.
Definition response.hpp:42
websocketpp::http::parser::response::headers_ready
bool headers_ready() const
Returns true if the response headers are fully parsed.
Definition response.hpp:149
websocketpp::http::parser::response::consume
size_t consume(std::istream &s, lib::error_code &ec)
Process bytes in the input buffer (istream version).
Definition response.hpp:189
websocketpp::http::parser::response::set_status
lib::error_code set_status(status_code::value code)
Set response status code and message.
Definition response.hpp:259
websocketpp::http::parser::response::ready
bool ready() const
Returns true if the response is ready.
Definition response.hpp:144
websocketpp::http::parser::response::get_status_msg
const std::string & get_status_msg() const
Return the response status message.
Definition response.hpp:190
websocketpp::http::parser::response::get_status_code
status_code::value get_status_code() const
Return the response status code.
Definition response.hpp:185
websocketpp::log::basic
Basic logger that outputs to an ostream.
Definition basic.hpp:59
websocketpp::log::basic::write
void write(level channel, char const *msg)
Write a cstring message to the given channel.
Definition basic.hpp:151
websocketpp::log::basic::basic
basic(basic< concurrency, names > const &other)
Copy constructor.
Definition basic.hpp:87
websocketpp::log::basic::~basic
~basic()
Destructor.
Definition basic.hpp:84
websocketpp::message_buffer::alloc::con_msg_manager
Definition alloc.hpp:43
websocketpp::message_buffer::alloc::con_msg_manager::recycle
bool recycle(message *)
Recycle a message.
Definition alloc.hpp:80
websocketpp::message_buffer::alloc::con_msg_manager::get_message
message_ptr get_message(frame::opcode::value op, size_t size)
Get a message buffer with specified size and opcode.
Definition alloc.hpp:66
websocketpp::message_buffer::alloc::con_msg_manager::get_message
message_ptr get_message()
Get an empty message buffer.
Definition alloc.hpp:55
websocketpp::message_buffer::alloc::endpoint_msg_manager
Definition alloc.hpp:88
websocketpp::message_buffer::alloc::endpoint_msg_manager::get_manager
con_msg_man_ptr get_manager() const
Get a pointer to a connection message manager.
Definition alloc.hpp:96
websocketpp::message_buffer::message
Represents a buffer for a single WebSocket message.
Definition message.hpp:84
websocketpp::message_buffer::message::message
message(const con_msg_man_ptr manager, frame::opcode::value op, size_t size=128)
Construct a message and fill in some values.
Definition message.hpp:107
websocketpp::message_buffer::message::get_raw_payload
std::string & get_raw_payload()
Get a non-const reference to the payload string.
Definition message.hpp:254
websocketpp::message_buffer::message::recycle
bool recycle()
Recycle the message.
Definition message.hpp:316
websocketpp::message_buffer::message::get_compressed
bool get_compressed() const
Return whether or not the message is flagged as compressed.
Definition message.hpp:143
websocketpp::message_buffer::message::get_terminal
bool get_terminal() const
Get whether or not the message is terminal.
Definition message.hpp:169
websocketpp::message_buffer::message::get_header
std::string const & get_header() const
Return the prepared frame header.
Definition message.hpp:224
websocketpp::message_buffer::message::set_payload
void set_payload(void const *payload, size_t len)
Set payload data.
Definition message.hpp:275
websocketpp::message_buffer::message::get_fin
bool get_fin() const
Read the fin bit.
Definition message.hpp:195
websocketpp::message_buffer::message::append_payload
void append_payload(void const *payload, size_t len)
Append payload data.
Definition message.hpp:298
websocketpp::message_buffer::message::set_opcode
void set_opcode(frame::opcode::value op)
Set the opcode.
Definition message.hpp:215
websocketpp::message_buffer::message::set_prepared
void set_prepared(bool value)
Set or clear the flag that indicates that the message has been prepared.
Definition message.hpp:135
websocketpp::message_buffer::message::get_opcode
frame::opcode::value get_opcode() const
Return the message opcode.
Definition message.hpp:210
websocketpp::message_buffer::message::set_terminal
void set_terminal(bool value)
Set the terminal flag.
Definition message.hpp:181
websocketpp::message_buffer::message::get_prepared
bool get_prepared() const
Return whether or not the message has been prepared for sending.
Definition message.hpp:125
websocketpp::message_buffer::message::set_compressed
void set_compressed(bool value)
Set or clear the compression flag.
Definition message.hpp:156
websocketpp::message_buffer::message::message
message(const con_msg_man_ptr manager)
Construct an empty message.
Definition message.hpp:96
websocketpp::message_buffer::message::set_fin
void set_fin(bool value)
Set the fin bit.
Definition message.hpp:205
websocketpp::message_buffer::message::get_payload
std::string const & get_payload() const
Get a reference to the payload string.
Definition message.hpp:246
websocketpp::processor::error::processor_category
Category for processor errors.
Definition base.hpp:161
websocketpp::processor::hybi00
Processor for Hybi Draft version 00.
Definition hybi00.hpp:54
websocketpp::processor::hybi00::get_raw
std::string get_raw(response_type const &res) const
Given a completed response, get the raw bytes to put on the wire.
Definition hybi00.hpp:179
websocketpp::processor::hybi00::prepare_ping
lib::error_code prepare_ping(std::string const &, message_ptr) const
Prepare a ping frame.
Definition hybi00.hpp:373
websocketpp::processor::hybi00::prepare_pong
lib::error_code prepare_pong(std::string const &, message_ptr) const
Prepare a pong frame.
Definition hybi00.hpp:386
websocketpp::processor::hybi00::process_handshake
lib::error_code process_handshake(request_type const &req, std::string const &subprotocol, response_type &res) const
Calculate the appropriate response for this websocket request.
Definition hybi00.hpp:100
websocketpp::processor::hybi00::client_handshake_request
lib::error_code client_handshake_request(request_type &, uri_ptr, std::vector< std::string > const &) const
Fill in a set of request headers for a client connection request.
Definition hybi00.hpp:158
websocketpp::processor::hybi00::get_key3
std::string get_key3() const
Get hybi00 handshake key3.
Definition hybi00.hpp:247
websocketpp::processor::hybi00::consume
size_t consume(uint8_t *buf, size_t len, lib::error_code &ec)
Process new websocket connection bytes.
Definition hybi00.hpp:252
websocketpp::processor::hybi00::get_error
bool get_error() const
Tests whether the processor is in a fatal error state.
Definition hybi00.hpp:313
websocketpp::processor::hybi00::ready
bool ready() const
Checks if there is a message ready.
Definition hybi00.hpp:309
websocketpp::processor::hybi00::validate_server_handshake_response
lib::error_code validate_server_handshake_response(request_type const &, response_type &) const
Validate the server's response to an outgoing handshake request.
Definition hybi00.hpp:173
websocketpp::processor::hybi00::prepare_close
lib::error_code prepare_close(close::status::value, std::string const &, message_ptr out) const
Prepare a close frame.
Definition hybi00.hpp:401
websocketpp::processor::hybi00::prepare_data_frame
virtual lib::error_code prepare_data_frame(message_ptr in, message_ptr out)
Prepare a message for writing.
Definition hybi00.hpp:329
websocketpp::processor::hybi00::validate_handshake
lib::error_code validate_handshake(request_type const &r) const
validate a WebSocket handshake request for this version
Definition hybi00.hpp:77
websocketpp::processor::hybi00::get_version
int get_version() const
Get the protocol version of this processor.
Definition hybi00.hpp:73
websocketpp::processor::hybi00::get_uri
uri_ptr get_uri(request_type const &request) const
Extracts client uri from a handshake request.
Definition hybi00.hpp:217
websocketpp::processor::hybi00::extract_subprotocols
lib::error_code extract_subprotocols(request_type const &req, std::vector< std::string > &subprotocol_list)
Extracts requested subprotocols from a handshake request.
Definition hybi00.hpp:198
websocketpp::processor::hybi00::get_origin
std::string const & get_origin(request_type const &r) const
Return the value of the header containing the CORS origin.
Definition hybi00.hpp:185
websocketpp::processor::hybi00::get_message
message_ptr get_message()
Retrieves the most recently processed message.
Definition hybi00.hpp:317
websocketpp::processor::hybi07
Processor for Hybi Draft version 07.
Definition hybi07.hpp:44
websocketpp::processor::hybi08
Processor for Hybi Draft version 08.
Definition hybi08.hpp:44
websocketpp::processor::hybi13
Processor for Hybi version 13 (RFC6455).
Definition hybi13.hpp:54
websocketpp::processor::processor
WebSocket protocol processor abstract base class.
Definition processor.hpp:160
websocketpp::processor::processor::prepare_data_frame
virtual lib::error_code prepare_data_frame(message_ptr in, message_ptr out)=0
Prepare a data message for writing.
websocketpp::processor::processor::get_bytes_needed
virtual size_t get_bytes_needed() const
Definition processor.hpp:349
websocketpp::processor::processor::consume
virtual size_t consume(uint8_t *buf, size_t len, lib::error_code &ec)=0
process new websocket connection bytes
websocketpp::processor::processor::negotiate_extensions
virtual err_str_pair negotiate_extensions(response_type const &)
Initializes extensions based on the Sec-WebSocket-Extensions header.
Definition processor.hpp:239
websocketpp::processor::processor::get_version
virtual int get_version() const =0
Get the protocol version of this processor.
websocketpp::processor::processor::get_raw
virtual std::string get_raw(response_type const &request) const =0
Given a completed response, get the raw bytes to put on the wire.
websocketpp::processor::processor::ready
virtual bool ready() const =0
Checks if there is a message ready.
websocketpp::processor::processor::validate_handshake
virtual lib::error_code validate_handshake(request_type const &request) const =0
validate a WebSocket handshake request for this version
websocketpp::processor::processor::get_uri
virtual uri_ptr get_uri(request_type const &request) const =0
Extracts client uri from a handshake request.
websocketpp::processor::processor::negotiate_extensions
virtual err_str_pair negotiate_extensions(request_type const &)
Initializes extensions based on the Sec-WebSocket-Extensions header.
Definition processor.hpp:225
websocketpp::processor::processor::has_permessage_compress
virtual bool has_permessage_compress() const
Returns whether or not the permessage_compress extension is implemented.
Definition processor.hpp:212
websocketpp::processor::processor::validate_server_handshake_response
virtual lib::error_code validate_server_handshake_response(request_type const &req, response_type &res) const =0
Validate the server's response to an outgoing handshake request.
websocketpp::processor::processor::client_handshake_request
virtual lib::error_code client_handshake_request(request_type &req, uri_ptr uri, std::vector< std::string > const &subprotocols) const =0
Fill in an HTTP request for an outgoing connection handshake.
websocketpp::processor::processor::extract_subprotocols
virtual lib::error_code extract_subprotocols(const request_type &req, std::vector< std::string > &subprotocol_list)=0
Extracts requested subprotocols from a handshake request.
websocketpp::processor::processor::get_error
virtual bool get_error() const =0
Tests whether the processor is in a fatal error state.
websocketpp::processor::processor::set_max_message_size
void set_max_message_size(size_t new_value)
Set maximum message size.
Definition processor.hpp:203
websocketpp::processor::processor::get_origin
virtual std::string const & get_origin(request_type const &request) const =0
Return the value of the header containing the CORS origin.
websocketpp::processor::processor::get_max_message_size
size_t get_max_message_size() const
Get maximum message size.
Definition processor.hpp:188
websocketpp::processor::processor::get_message
virtual message_ptr get_message()=0
Retrieves the most recently processed message.
websocketpp::random::none::int_generator
Thread safe stub "random" integer generator.
Definition none.hpp:46
websocketpp::random::none::int_generator::operator()
int_type operator()()
advances the engine's state and returns the generated value
Definition none.hpp:51
websocketpp::server
Server endpoint role based on the given config.
Definition server_endpoint.hpp:44
websocketpp::server::transport_con_type
transport_type::transport_con_type transport_con_type
Type of the connection transport component.
Definition server_endpoint.hpp:60
websocketpp::server::connection_ptr
connection_type::ptr connection_ptr
Type of a shared pointer to the connections this server will create.
Definition server_endpoint.hpp:57
websocketpp::server::type
server< config > type
Type of this endpoint.
Definition server_endpoint.hpp:47
websocketpp::server::start_accept
void start_accept(accept_loop_handler completion_handler)
Starts the server's async connection acceptance loop (exception free).
Definition server_endpoint.hpp:209
websocketpp::server::endpoint_type
endpoint< connection_type, config > endpoint_type
Type of the endpoint component of this server.
Definition server_endpoint.hpp:65
websocketpp::server::transport_type
config::transport_type transport_type
Type of the endpoint transport component.
Definition server_endpoint.hpp:52
websocketpp::server::connection_type
connection< config > connection_type
Type of the connections this server will create.
Definition server_endpoint.hpp:55
websocketpp::server::get_connection
connection_ptr get_connection(lib::error_code &ec)
Create and initialize a new connection.
Definition server_endpoint.hpp:133
websocketpp::server::get_connection
connection_ptr get_connection()
Create and initialize a new connection.
Definition server_endpoint.hpp:114
websocketpp::server::accept_loop_handler
lib::function< void(lib::error_code const &, lib::error_code const &)> accept_loop_handler
The type and signature of the callback passed to the start_accept method.
Definition server_endpoint.hpp:68
websocketpp::server::~server
~server()
Destructor.
Definition server_endpoint.hpp:78
websocketpp::server::concurrency_type
config::concurrency_type concurrency_type
Type of the endpoint concurrency component.
Definition server_endpoint.hpp:50
websocketpp::server::transport_con_ptr
transport_con_type::ptr transport_con_ptr
Type of a shared pointer to the connection transport component.
Definition server_endpoint.hpp:62
websocketpp::transport::asio::basic_socket::connection
Basic Asio connection socket component.
Definition none.hpp:58
websocketpp::transport::asio::basic_socket::connection::get_raw_socket
lib::asio::ip::tcp::socket & get_raw_socket()
Retrieve a pointer to the underlying socket.
Definition none.hpp:124
websocketpp::transport::asio::basic_socket::connection::ptr
lib::shared_ptr< type > ptr
Type of a shared pointer to this connection socket component.
Definition none.hpp:63
websocketpp::transport::asio::basic_socket::connection::set_socket_init_handler
void set_socket_init_handler(socket_init_handler h)
Set the socket initialization handler.
Definition none.hpp:100
websocketpp::transport::asio::basic_socket::connection::set_uri
void set_uri(uri_ptr)
Set uri hook.
Definition none.hpp:190
websocketpp::transport::asio::basic_socket::connection::type
connection type
Type of this connection socket component.
Definition none.hpp:61
websocketpp::transport::asio::basic_socket::connection::strand_ptr
lib::shared_ptr< lib::asio::io_context::strand > strand_ptr
Type of a pointer to the Asio io_context strand being used.
Definition none.hpp:68
websocketpp::transport::asio::basic_socket::connection::get_socket
lib::asio::ip::tcp::socket & get_socket()
Retrieve a pointer to the underlying socket.
Definition none.hpp:108
websocketpp::transport::asio::basic_socket::connection::is_secure
bool is_secure() const
Check whether or not this connection is secure.
Definition none.hpp:88
websocketpp::transport::asio::basic_socket::connection::socket_ptr
lib::shared_ptr< socket_type > socket_ptr
Type of a shared pointer to the socket being used.
Definition none.hpp:72
websocketpp::transport::asio::basic_socket::connection::translate_ec
static lib::error_code translate_ec(lib::error_code ec)
Definition none.hpp:293
websocketpp::transport::asio::basic_socket::connection::translate_ec
static lib::error_code translate_ec(ErrorCodeType)
Translate any security policy specific information about an error code.
Definition none.hpp:285
websocketpp::transport::asio::basic_socket::connection::set_handle
void set_handle(connection_hdl hdl)
Sets the connection handle.
Definition none.hpp:235
websocketpp::transport::asio::basic_socket::connection::cancel_socket
lib::asio::error_code cancel_socket()
Cancel all async operations on this socket.
Definition none.hpp:248
websocketpp::transport::asio::basic_socket::connection::pre_init
void pre_init(init_handler callback)
Pre-initialize security policy.
Definition none.hpp:201
websocketpp::transport::asio::basic_socket::connection::get_remote_endpoint
std::string get_remote_endpoint(lib::error_code &ec) const
Get the remote endpoint address.
Definition none.hpp:138
websocketpp::transport::asio::basic_socket::connection::io_context_ptr
lib::asio::io_context * io_context_ptr
Type of a pointer to the Asio io_context being used.
Definition none.hpp:66
websocketpp::transport::asio::basic_socket::connection::post_init
void post_init(init_handler callback)
Post-initialize security policy.
Definition none.hpp:224
websocketpp::transport::asio::basic_socket::connection::socket_type
lib::asio::ip::tcp::socket socket_type
Type of the ASIO socket being used.
Definition none.hpp:70
websocketpp::transport::asio::basic_socket::connection::init_asio
lib::error_code init_asio(io_context_ptr context, strand_ptr, bool)
Perform one time initializations.
Definition none.hpp:166
websocketpp::transport::asio::basic_socket::connection::get_shared
ptr get_shared()
Get a shared pointer to this component.
Definition none.hpp:80
websocketpp::transport::asio::basic_socket::connection::get_next_layer
lib::asio::ip::tcp::socket & get_next_layer()
Retrieve a pointer to the underlying socket.
Definition none.hpp:116
websocketpp::transport::asio::basic_socket::endpoint
Basic ASIO endpoint socket component.
Definition none.hpp:318
websocketpp::transport::asio::basic_socket::endpoint::set_socket_init_handler
void set_socket_init_handler(socket_init_handler h)
Set socket init handler.
Definition none.hpp:347
websocketpp::transport::asio::basic_socket::endpoint::init
lib::error_code init(socket_con_ptr scon)
Initialize a connection.
Definition none.hpp:360
websocketpp::transport::asio::basic_socket::endpoint::type
endpoint type
The type of this endpoint socket component.
Definition none.hpp:321
websocketpp::transport::asio::basic_socket::endpoint::is_secure
bool is_secure() const
Checks whether the endpoint creates secure connections.
Definition none.hpp:335
websocketpp::transport::asio::basic_socket::endpoint::socket_con_type
connection socket_con_type
The type of the corresponding connection socket component.
Definition none.hpp:324
websocketpp::transport::asio::basic_socket::endpoint::socket_con_ptr
socket_con_type::ptr socket_con_ptr
Definition none.hpp:327
websocketpp::transport::asio::connection
Asio based connection transport component.
Definition connection.hpp:67
websocketpp::transport::asio::connection::set_proxy_timeout
void set_proxy_timeout(long duration)
Set the proxy timeout duration (exception).
Definition connection.hpp:266
websocketpp::transport::asio::connection::set_tcp_post_init_handler
void set_tcp_post_init_handler(tcp_init_handler h)
Sets the tcp post init handler.
Definition connection.hpp:173
websocketpp::transport::asio::connection::set_proxy_timeout
void set_proxy_timeout(long duration, lib::error_code &ec)
Set the proxy timeout duration (exception free).
Definition connection.hpp:254
websocketpp::transport::asio::connection::elog_type
config::elog_type elog_type
Type of this transport's error logging policy.
Definition connection.hpp:81
websocketpp::transport::asio::connection::get_strand
strand_ptr get_strand()
Get a pointer to this connection's strand.
Definition connection.hpp:372
websocketpp::transport::asio::connection::async_read_at_least
void async_read_at_least(size_t num_bytes, char *buf, size_t len, read_handler handler)
read at least num_bytes bytes into buf and then call handler.
Definition connection.hpp:835
websocketpp::transport::asio::connection::socket_con_ptr
socket_con_type::ptr socket_con_ptr
Type of a shared pointer to the socket connection component.
Definition connection.hpp:77
websocketpp::transport::asio::connection::interrupt
lib::error_code interrupt(interrupt_handler handler)
Trigger the on_interrupt handler.
Definition connection.hpp:1031
websocketpp::transport::asio::connection::strand_ptr
lib::shared_ptr< lib::asio::io_context::strand > strand_ptr
Type of a pointer to the Asio io_context::strand being used.
Definition connection.hpp:91
websocketpp::transport::asio::connection::alog_type
config::alog_type alog_type
Type of this transport's access logging policy.
Definition connection.hpp:79
websocketpp::transport::asio::connection::io_context_ptr
lib::asio::io_context * io_context_ptr
Type of a pointer to the Asio io_context being used.
Definition connection.hpp:89
websocketpp::transport::asio::connection::handle_async_write
void handle_async_write(write_handler handler, lib::asio::error_code const &ec, size_t)
Async write callback.
Definition connection.hpp:998
websocketpp::transport::asio::connection::handle_timer
void handle_timer(timer_ptr, timer_handler callback, lib::asio::error_code const &ec)
Timer callback.
Definition connection.hpp:356
websocketpp::transport::asio::connection::handle_post_init
void handle_post_init(timer_ptr post_timer, init_handler callback, lib::error_code const &ec)
Post init timeout callback.
Definition connection.hpp:578
websocketpp::transport::asio::connection::init_asio
lib::error_code init_asio(io_context_ptr io_context)
Finish constructing the transport.
Definition connection.hpp:467
websocketpp::transport::asio::connection::async_shutdown
void async_shutdown(shutdown_handler callback)
close and clean up the underlying socket
Definition connection.hpp:1054
websocketpp::transport::asio::connection::get_transport_ec
lib::asio::error_code get_transport_ec() const
Get the internal transport error code for a closed/failed connection.
Definition connection.hpp:395
websocketpp::transport::asio::connection::socket_con_type
config::socket_type::socket_con_type socket_con_type
Type of the socket connection component.
Definition connection.hpp:75
websocketpp::transport::asio::connection::handle_post_init_timeout
void handle_post_init_timeout(timer_ptr, init_handler callback, lib::error_code const &ec)
Post init timeout callback.
Definition connection.hpp:542
websocketpp::transport::asio::connection::type
connection< config > type
Type of this connection transport component.
Definition connection.hpp:70
websocketpp::transport::asio::connection::handle_async_shutdown_timeout
void handle_async_shutdown_timeout(timer_ptr, init_handler callback, lib::error_code const &ec)
Async shutdown timeout handler.
Definition connection.hpp:1088
websocketpp::transport::asio::connection::timer_ptr
lib::shared_ptr< lib::asio::steady_timer > timer_ptr
Type of a pointer to the Asio timer class.
Definition connection.hpp:93
websocketpp::transport::asio::connection::async_write
void async_write(const char *buf, size_t len, write_handler handler)
Initiate a potentially asyncronous write of the given buffer.
Definition connection.hpp:921
websocketpp::transport::asio::connection::async_write
void async_write(std::vector< buffer > const &bufs, write_handler handler)
Initiate a potentially asyncronous write of the given buffers.
Definition connection.hpp:954
websocketpp::transport::asio::connection::ptr
lib::shared_ptr< type > ptr
Type of a shared pointer to this connection transport component.
Definition connection.hpp:72
websocketpp::transport::asio::connection::set_timer
timer_ptr set_timer(long duration, timer_handler callback)
Call back a function after a period of time.
Definition connection.hpp:319
websocketpp::transport::asio::connection::set_tcp_init_handler
void set_tcp_init_handler(tcp_init_handler h)
Sets the tcp pre init handler (deprecated).
Definition connection.hpp:158
websocketpp::transport::asio::connection::handle_proxy_read
void handle_proxy_read(init_handler callback, lib::asio::error_code const &ec, size_t)
Proxy read callback.
Definition connection.hpp:747
websocketpp::transport::asio::connection::set_uri
void set_uri(uri_ptr u)
Set uri hook.
Definition connection.hpp:130
websocketpp::transport::asio::connection::get_remote_endpoint
std::string get_remote_endpoint() const
Get the remote endpoint address.
Definition connection.hpp:287
websocketpp::transport::asio::connection::get_shared
ptr get_shared()
Get a shared pointer to this component.
Definition connection.hpp:110
websocketpp::transport::asio::connection::cancel_socket_checked
void cancel_socket_checked()
Cancel the underlying socket and log any errors.
Definition connection.hpp:1152
websocketpp::transport::asio::connection::set_handle
void set_handle(connection_hdl hdl)
Set Connection Handle.
Definition connection.hpp:1022
websocketpp::transport::asio::connection::set_tcp_pre_init_handler
void set_tcp_pre_init_handler(tcp_init_handler h)
Sets the tcp pre init handler.
Definition connection.hpp:144
websocketpp::transport::asio::connection::init
void init(init_handler callback)
Initialize transport for reading.
Definition connection.hpp:417
websocketpp::transport::asio::connection::get_handle
connection_hdl get_handle() const
Get the connection handle.
Definition connection.hpp:301
websocketpp::transport::asio::custom_alloc_handler
Definition base.hpp:92
websocketpp::transport::asio::endpoint
Asio based endpoint transport component.
Definition endpoint.hpp:54
websocketpp::transport::asio::endpoint::work_guard_ptr
lib::shared_ptr< lib::asio::executor_work_guard< lib::asio::io_context::executor_type > > work_guard_ptr
Type of a shared pointer to an io_context work object.
Definition endpoint.hpp:89
websocketpp::transport::asio::endpoint::run_one
std::size_t run_one()
wraps the run_one method of the internal io_context object
Definition endpoint.hpp:671
websocketpp::transport::asio::endpoint::socket_con_type
socket_type::socket_con_type socket_con_type
Type of the socket connection component.
Definition endpoint.hpp:69
websocketpp::transport::asio::endpoint::stop_listening
void stop_listening(lib::error_code &ec)
Stop listening (exception free).
Definition endpoint.hpp:546
websocketpp::transport::asio::endpoint::socket_type
config::socket_type socket_type
Type of the socket policy.
Definition endpoint.hpp:62
websocketpp::transport::asio::endpoint::timer_ptr
lib::shared_ptr< lib::asio::steady_timer > timer_ptr
Type of timer handle.
Definition endpoint.hpp:87
websocketpp::transport::asio::endpoint::async_connect
void async_connect(transport_con_ptr tcon, uri_ptr u, connect_handler cb)
Initiate a new connection.
Definition endpoint.hpp:874
websocketpp::transport::asio::endpoint::init_asio
void init_asio()
Initialize asio transport with internal io_context.
Definition endpoint.hpp:252
websocketpp::transport::asio::endpoint::elog_type
config::elog_type elog_type
Type of the error logging policy.
Definition endpoint.hpp:64
websocketpp::transport::asio::endpoint::init_logging
void init_logging(const lib::shared_ptr< alog_type > &a, const lib::shared_ptr< elog_type > &e)
Initialize logging.
Definition endpoint.hpp:848
websocketpp::transport::asio::endpoint::io_context_ptr
lib::asio::io_context * io_context_ptr
Type of a pointer to the ASIO io_context being used.
Definition endpoint.hpp:81
websocketpp::transport::asio::endpoint::is_secure
bool is_secure() const
Return whether or not the endpoint produces secure connections.
Definition endpoint.hpp:172
websocketpp::transport::asio::endpoint::get_local_endpoint
lib::asio::ip::tcp::endpoint get_local_endpoint(lib::asio::error_code &ec)
Get local TCP endpoint.
Definition endpoint.hpp:399
websocketpp::transport::asio::endpoint::set_reuse_addr
void set_reuse_addr(bool value)
Sets whether to use the SO_REUSEADDR flag when opening listening sockets.
Definition endpoint.hpp:367
websocketpp::transport::asio::endpoint::set_tcp_init_handler
void set_tcp_init_handler(tcp_init_handler h)
Sets the tcp pre init handler (deprecated).
Definition endpoint.hpp:306
websocketpp::transport::asio::endpoint::handle_timer
void handle_timer(timer_ptr, timer_handler callback, lib::asio::error_code const &ec)
Timer handler.
Definition endpoint.hpp:768
websocketpp::transport::asio::endpoint::start_perpetual
void start_perpetual()
Marks the endpoint as perpetual, stopping it from exiting when empty.
Definition endpoint.hpp:712
websocketpp::transport::asio::endpoint::stop
void stop()
wraps the stop method of the internal io_context object
Definition endpoint.hpp:676
websocketpp::transport::asio::endpoint::run
std::size_t run()
wraps the run method of the internal io_context object
Definition endpoint.hpp:663
websocketpp::transport::asio::endpoint::set_tcp_post_init_handler
void set_tcp_post_init_handler(tcp_init_handler h)
Sets the tcp post init handler.
Definition endpoint.hpp:321
websocketpp::transport::asio::endpoint::set_listen_backlog
void set_listen_backlog(int backlog)
Sets the maximum length of the queue of pending connections.
Definition endpoint.hpp:346
websocketpp::transport::asio::endpoint::stopped
bool stopped() const
wraps the stopped method of the internal io_context object
Definition endpoint.hpp:696
websocketpp::transport::asio::endpoint::set_timer
timer_ptr set_timer(long duration, timer_handler callback)
Call back a function after a period of time.
Definition endpoint.hpp:740
websocketpp::transport::asio::endpoint::socket_con_ptr
socket_con_type::ptr socket_con_ptr
Type of a shared pointer to the socket connection component.
Definition endpoint.hpp:71
websocketpp::transport::asio::endpoint::init
lib::error_code init(transport_con_ptr tcon)
Initialize a connection.
Definition endpoint.hpp:1138
websocketpp::transport::asio::endpoint::transport_con_type
asio::connection< config > transport_con_type
Definition endpoint.hpp:75
websocketpp::transport::asio::endpoint::init_asio
void init_asio(lib::error_code &ec)
Initialize asio transport with internal io_context (exception free).
Definition endpoint.hpp:229
websocketpp::transport::asio::endpoint::async_accept
void async_accept(transport_con_ptr tcon, accept_handler callback)
Accept the next connection attempt and assign it to con.
Definition endpoint.hpp:831
websocketpp::transport::asio::endpoint::listen
void listen(uint16_t port)
Set up endpoint for listening on a port.
Definition endpoint.hpp:607
websocketpp::transport::asio::endpoint::type
endpoint< config > type
Type of this endpoint transport component.
Definition endpoint.hpp:57
websocketpp::transport::asio::endpoint::init_asio
void init_asio(io_context_ptr ptr, lib::error_code &ec)
initialize asio transport with external io_context (exception free)
Definition endpoint.hpp:185
websocketpp::transport::asio::endpoint::concurrency_type
config::concurrency_type concurrency_type
Type of the concurrency policy.
Definition endpoint.hpp:60
websocketpp::transport::asio::endpoint::poll
std::size_t poll()
wraps the poll method of the internal io_context object
Definition endpoint.hpp:681
websocketpp::transport::asio::endpoint::stop_perpetual
void stop_perpetual()
Clears the endpoint's perpetual flag, allowing it to exit when empty.
Definition endpoint.hpp:724
websocketpp::transport::asio::endpoint::init_asio
void init_asio(io_context_ptr ptr)
initialize asio transport with external io_context
Definition endpoint.hpp:213
websocketpp::transport::asio::endpoint::acceptor_ptr
lib::shared_ptr< lib::asio::ip::tcp::acceptor > acceptor_ptr
Type of a shared pointer to the acceptor being used.
Definition endpoint.hpp:83
websocketpp::transport::asio::endpoint::listen
void listen(lib::asio::ip::tcp::endpoint const &ep)
Set up endpoint for listening manually.
Definition endpoint.hpp:569
websocketpp::transport::asio::endpoint::get_io_context
lib::asio::io_context & get_io_context()
Retrieve a reference to the endpoint's io_context.
Definition endpoint.hpp:382
websocketpp::transport::asio::endpoint::handle_resolve_timeout
void handle_resolve_timeout(timer_ptr, connect_handler callback, lib::error_code const &ec)
DNS resolution timeout handler.
Definition endpoint.hpp:969
websocketpp::transport::asio::endpoint::listen
void listen(lib::asio::ip::tcp::endpoint const &ep, lib::error_code &ec)
Set up endpoint for listening manually (exception free).
Definition endpoint.hpp:416
websocketpp::transport::asio::endpoint::transport_con_ptr
transport_con_type::ptr transport_con_ptr
Definition endpoint.hpp:78
websocketpp::transport::asio::endpoint::reset
void reset()
wraps the restart method of the internal io_context object
Definition endpoint.hpp:691
websocketpp::transport::asio::endpoint::set_tcp_pre_bind_handler
void set_tcp_pre_bind_handler(tcp_pre_bind_handler h)
Sets the tcp pre bind handler.
Definition endpoint.hpp:278
websocketpp::transport::asio::endpoint::alog_type
config::alog_type alog_type
Type of the access logging policy.
Definition endpoint.hpp:66
websocketpp::transport::asio::endpoint::listen
void listen(InternetProtocol const &internet_protocol, uint16_t port)
Set up endpoint for listening with protocol and port.
Definition endpoint.hpp:589
websocketpp::transport::asio::endpoint::set_tcp_pre_init_handler
void set_tcp_pre_init_handler(tcp_init_handler h)
Sets the tcp pre init handler.
Definition endpoint.hpp:292
websocketpp::transport::asio::endpoint::handle_connect_timeout
void handle_connect_timeout(transport_con_ptr tcon, timer_ptr, connect_handler callback, lib::error_code const &ec)
Asio connect timeout handler.
Definition endpoint.hpp:1078
websocketpp::transport::asio::endpoint::async_accept
void async_accept(transport_con_ptr tcon, accept_handler callback, lib::error_code &ec)
Accept the next connection attempt and assign it to con (exception free).
Definition endpoint.hpp:791
websocketpp::transport::asio::endpoint::poll_one
std::size_t poll_one()
wraps the poll_one method of the internal io_context object
Definition endpoint.hpp:686
websocketpp::transport::asio::endpoint::listen
void listen(InternetProtocol const &internet_protocol, uint16_t port, lib::error_code &ec)
Set up endpoint for listening with protocol and port (exception free).
Definition endpoint.hpp:471
websocketpp::transport::asio::endpoint::listen
void listen(uint16_t port, lib::error_code &ec)
Set up endpoint for listening on a port (exception free).
Definition endpoint.hpp:490
websocketpp::transport::asio::endpoint::is_listening
bool is_listening() const
Check if the endpoint is listening.
Definition endpoint.hpp:658
websocketpp::transport::asio::endpoint::stop_listening
void stop_listening()
Stop listening.
Definition endpoint.hpp:647
websocketpp::transport::asio::endpoint::resolver_ptr
lib::shared_ptr< lib::asio::ip::tcp::resolver > resolver_ptr
Type of a shared pointer to the resolver being used.
Definition endpoint.hpp:85
websocketpp::transport::asio::endpoint::tcp_pre_bind_handler
lib::function< lib::error_code(acceptor_ptr)> tcp_pre_bind_handler
Type of socket pre-bind handler.
Definition endpoint.hpp:92
websocketpp::transport::asio::error::category
Asio transport error category.
Definition base.hpp:184
websocketpp::transport::asio::handler_allocator
Definition base.hpp:52
websocketpp::transport::asio::socket::socket_category
Error category related to asio transport socket policies.
Definition base.hpp:110
websocketpp::transport::error::category
Definition connection.hpp:183
websocketpp::transport::iostream::connection
Definition connection.hpp:60
websocketpp::transport::iostream::connection::ptr
lib::shared_ptr< type > ptr
Type of a shared pointer to this connection transport component.
Definition connection.hpp:65
websocketpp::transport::iostream::connection::get_handle
connection_hdl get_handle() const
Get the connection handle.
Definition connection.hpp:313
websocketpp::transport::iostream::connection::alog_type
config::alog_type alog_type
Type of this transport's access logging policy.
Definition connection.hpp:70
websocketpp::transport::iostream::connection::dispatch
lib::error_code dispatch(dispatch_handler handler)
Call given handler back within the transport's event system (if present).
Definition connection.hpp:580
websocketpp::transport::iostream::connection::set_uri
void set_uri(uri_ptr)
Set uri hook.
Definition connection.hpp:121
websocketpp::transport::iostream::connection::async_shutdown
void async_shutdown(transport::shutdown_handler handler)
Perform cleanup on socket shutdown_handler.
Definition connection.hpp:593
websocketpp::transport::iostream::connection::set_write_handler
void set_write_handler(write_handler h)
Sets the write handler.
Definition connection.hpp:350
websocketpp::transport::iostream::connection::set_secure
void set_secure(bool value)
Set whether or not this connection is secure.
Definition connection.hpp:257
websocketpp::transport::iostream::connection::set_shutdown_handler
void set_shutdown_handler(shutdown_handler h)
Sets the shutdown handler.
Definition connection.hpp:400
websocketpp::transport::iostream::connection::type
connection< config > type
Type of this connection transport component.
Definition connection.hpp:63
websocketpp::transport::iostream::connection::elog_type
config::elog_type elog_type
Type of this transport's error logging policy.
Definition connection.hpp:72
websocketpp::transport::iostream::connection::fatal_error
void fatal_error()
Signal transport error.
Definition connection.hpp:235
websocketpp::transport::iostream::connection::read_some
size_t read_some(char const *buf, size_t len)
Manual input supply (read some).
Definition connection.hpp:165
websocketpp::transport::iostream::connection::read_all
size_t read_all(char const *buf, size_t len)
Manual input supply (read all).
Definition connection.hpp:188
websocketpp::transport::iostream::connection::async_write
void async_write(char const *buf, size_t len, transport::write_handler handler)
Asyncronous Transport Write.
Definition connection.hpp:487
websocketpp::transport::iostream::connection::readsome
size_t readsome(char const *buf, size_t len)
Manual input supply (DEPRECATED).
Definition connection.hpp:208
websocketpp::transport::iostream::connection::concurrency_type
config::concurrency_type concurrency_type
transport concurrency policy
Definition connection.hpp:68
websocketpp::transport::iostream::connection::init
void init(init_handler handler)
Initialize the connection transport.
Definition connection.hpp:410
websocketpp::transport::iostream::connection::set_timer
timer_ptr set_timer(long, timer_handler)
Call back a function after a period of time.
Definition connection.hpp:327
websocketpp::transport::iostream::connection::eof
void eof()
Signal EOF.
Definition connection.hpp:219
websocketpp::transport::iostream::connection::operator>>
friend std::istream & operator>>(std::istream &in, type &t)
Overloaded stream input operator.
Definition connection.hpp:142
websocketpp::transport::iostream::connection::set_vector_write_handler
void set_vector_write_handler(vector_write_handler h)
Sets the vectored write handler.
Definition connection.hpp:380
websocketpp::transport::iostream::connection::is_secure
bool is_secure() const
Tests whether or not the underlying transport is secure.
Definition connection.hpp:271
websocketpp::transport::iostream::connection::get_remote_endpoint
std::string get_remote_endpoint() const
Get human readable remote endpoint address.
Definition connection.hpp:305
websocketpp::transport::iostream::connection::set_handle
void set_handle(connection_hdl hdl)
Set Connection Handle.
Definition connection.hpp:565
websocketpp::transport::iostream::connection::register_ostream
void register_ostream(std::ostream *o)
Register a std::ostream with the transport for writing output.
Definition connection.hpp:104
websocketpp::transport::iostream::connection::async_read_at_least
void async_read_at_least(size_t num_bytes, char *buf, size_t len, read_handler handler)
Initiate an async_read for at least num_bytes bytes into buf.
Definition connection.hpp:439
websocketpp::transport::iostream::connection::async_write
void async_write(std::vector< buffer > const &bufs, transport::write_handler handler)
Asyncronous Transport Write (scatter-gather).
Definition connection.hpp:527
websocketpp::transport::iostream::connection::get_shared
ptr get_shared()
Get a shared pointer to this component.
Definition connection.hpp:93
websocketpp::transport::iostream::endpoint
Definition endpoint.hpp:46
websocketpp::transport::iostream::endpoint::transport_con_type
iostream::connection< config > transport_con_type
Definition endpoint.hpp:62
websocketpp::transport::iostream::endpoint::elog_type
config::elog_type elog_type
Type of this endpoint's error logging policy.
Definition endpoint.hpp:56
websocketpp::transport::iostream::endpoint::set_write_handler
void set_write_handler(write_handler h)
Sets the write handler.
Definition endpoint.hpp:134
websocketpp::transport::iostream::endpoint::set_shutdown_handler
void set_shutdown_handler(shutdown_handler h)
Sets the shutdown handler.
Definition endpoint.hpp:154
websocketpp::transport::iostream::endpoint::is_secure
bool is_secure() const
Tests whether or not the underlying transport is secure.
Definition endpoint.hpp:116
websocketpp::transport::iostream::endpoint::ptr
lib::shared_ptr< type > ptr
Type of a pointer to this endpoint transport component.
Definition endpoint.hpp:51
websocketpp::transport::iostream::endpoint::transport_con_ptr
transport_con_type::ptr transport_con_ptr
Definition endpoint.hpp:65
websocketpp::transport::iostream::endpoint::async_connect
void async_connect(transport_con_ptr, uri_ptr, connect_handler cb)
Initiate a new connection.
Definition endpoint.hpp:183
websocketpp::transport::iostream::endpoint::init
lib::error_code init(transport_con_ptr tcon)
Initialize a connection.
Definition endpoint.hpp:197
websocketpp::transport::iostream::endpoint::init_logging
void init_logging(lib::shared_ptr< alog_type > a, lib::shared_ptr< elog_type > e)
Initialize logging.
Definition endpoint.hpp:171
websocketpp::transport::iostream::endpoint::type
endpoint type
Type of this endpoint transport component.
Definition endpoint.hpp:49
websocketpp::transport::iostream::endpoint::register_ostream
void register_ostream(std::ostream *o)
Register a default output stream.
Definition endpoint.hpp:80
websocketpp::transport::iostream::endpoint::concurrency_type
config::concurrency_type concurrency_type
Type of this endpoint's concurrency policy.
Definition endpoint.hpp:54
websocketpp::transport::iostream::endpoint::set_secure
void set_secure(bool value)
Set whether or not endpoint can create secure connections.
Definition endpoint.hpp:102
websocketpp::transport::iostream::endpoint::alog_type
config::alog_type alog_type
Type of this endpoint's access logging policy.
Definition endpoint.hpp:58
websocketpp::transport::iostream::error::category
iostream transport error category
Definition base.hpp:85
websocketpp::uri
Definition uri.hpp:397
websocketpp::uri::get_query
std::string get_query() const
Return the query portion.
Definition uri.hpp:732
websocketpp::uri::is_ipv6_literal
bool is_ipv6_literal() const
Definition uri.hpp:651
websocketpp::utf8_validator::validator
Provides streaming UTF8 validation functionality.
Definition utf8_validator.hpp:81
websocketpp::utf8_validator::validator::decode
bool decode(iterator_type begin, iterator_type end)
Advance validator state with input from an iterator pair.
Definition utf8_validator.hpp:105
websocketpp::utf8_validator::validator::validator
validator()
Construct and initialize the validator.
Definition utf8_validator.hpp:84
websocketpp::utf8_validator::validator::complete
bool complete()
Return whether the input sequence ended on a valid utf8 codepoint.
Definition utf8_validator.hpp:124
websocketpp::utf8_validator::validator::reset
void reset()
Reset the validator to decode another message.
Definition utf8_validator.hpp:129
websocketpp::utf8_validator::validator::consume
bool consume(uint8_t byte)
Advance the state of the validator with the next input byte.
Definition utf8_validator.hpp:91
_WEBSOCKETPP_CONSTEXPR_TOKEN_
#define _WEBSOCKETPP_CONSTEXPR_TOKEN_
Definition cpp11.hpp:134
_WEBSOCKETPP_NOEXCEPT_TOKEN_
#define _WEBSOCKETPP_NOEXCEPT_TOKEN_
Definition cpp11.hpp:115
__has_extension
#define __has_extension
Definition cpp11.hpp:40
__has_feature
#define __has_feature(x)
Definition cpp11.hpp:37
ZSW_MD5_BYTE_ORDER
#define ZSW_MD5_BYTE_ORDER
Definition md5.hpp:101
ZSW_MD5_T54
#define ZSW_MD5_T54
Definition md5.hpp:158
ZSW_MD5_T40
#define ZSW_MD5_T40
Definition md5.hpp:144
ZSW_MD5_T55
#define ZSW_MD5_T55
Definition md5.hpp:159
ZSW_MD5_T29
#define ZSW_MD5_T29
Definition md5.hpp:133
ZSW_MD5_T37
#define ZSW_MD5_T37
Definition md5.hpp:141
ZSW_MD5_T5
#define ZSW_MD5_T5
Definition md5.hpp:109
ZSW_MD5_T44
#define ZSW_MD5_T44
Definition md5.hpp:148
ZSW_MD5_T52
#define ZSW_MD5_T52
Definition md5.hpp:156
ZSW_MD5_T20
#define ZSW_MD5_T20
Definition md5.hpp:124
ZSW_MD5_T26
#define ZSW_MD5_T26
Definition md5.hpp:130
ZSW_MD5_T33
#define ZSW_MD5_T33
Definition md5.hpp:137
ZSW_MD5_T8
#define ZSW_MD5_T8
Definition md5.hpp:112
ZSW_MD5_T36
#define ZSW_MD5_T36
Definition md5.hpp:140
ZSW_MD5_H
#define ZSW_MD5_H(x, y, z)
ZSW_MD5_T50
#define ZSW_MD5_T50
Definition md5.hpp:154
ZSW_MD5_T61
#define ZSW_MD5_T61
Definition md5.hpp:165
ZSW_MD5_T12
#define ZSW_MD5_T12
Definition md5.hpp:116
ZSW_MD5_I
#define ZSW_MD5_I(x, y, z)
ZSW_MD5_T_MASK
#define ZSW_MD5_T_MASK
Definition md5.hpp:104
ZSW_MD5_T35
#define ZSW_MD5_T35
Definition md5.hpp:139
ZSW_MD5_T63
#define ZSW_MD5_T63
Definition md5.hpp:167
ZSW_MD5_T1
#define ZSW_MD5_T1
Definition md5.hpp:105
ZSW_MD5_T53
#define ZSW_MD5_T53
Definition md5.hpp:157
ZSW_MD5_T41
#define ZSW_MD5_T41
Definition md5.hpp:145
ZSW_MD5_T60
#define ZSW_MD5_T60
Definition md5.hpp:164
ZSW_MD5_T11
#define ZSW_MD5_T11
Definition md5.hpp:115
ZSW_MD5_T39
#define ZSW_MD5_T39
Definition md5.hpp:143
ZSW_MD5_T21
#define ZSW_MD5_T21
Definition md5.hpp:125
ZSW_MD5_T2
#define ZSW_MD5_T2
Definition md5.hpp:106
ZSW_MD5_T16
#define ZSW_MD5_T16
Definition md5.hpp:120
ZSW_MD5_T57
#define ZSW_MD5_T57
Definition md5.hpp:161
ZSW_MD5_T32
#define ZSW_MD5_T32
Definition md5.hpp:136
SET
#define SET(a, b, c, d, k, s, Ti)
ZSW_MD5_T47
#define ZSW_MD5_T47
Definition md5.hpp:151
ZSW_MD5_T28
#define ZSW_MD5_T28
Definition md5.hpp:132
ZSW_MD5_T46
#define ZSW_MD5_T46
Definition md5.hpp:150
ZSW_MD5_T58
#define ZSW_MD5_T58
Definition md5.hpp:162
ZSW_MD5_T62
#define ZSW_MD5_T62
Definition md5.hpp:166
ZSW_MD5_T13
#define ZSW_MD5_T13
Definition md5.hpp:117
ZSW_MD5_T7
#define ZSW_MD5_T7
Definition md5.hpp:111
ZSW_MD5_T31
#define ZSW_MD5_T31
Definition md5.hpp:135
ZSW_MD5_T6
#define ZSW_MD5_T6
Definition md5.hpp:110
ZSW_MD5_G
#define ZSW_MD5_G(x, y, z)
ZSW_MD5_T48
#define ZSW_MD5_T48
Definition md5.hpp:152
ZSW_MD5_T15
#define ZSW_MD5_T15
Definition md5.hpp:119
ZSW_MD5_T43
#define ZSW_MD5_T43
Definition md5.hpp:147
ZSW_MD5_T10
#define ZSW_MD5_T10
Definition md5.hpp:114
ZSW_MD5_T34
#define ZSW_MD5_T34
Definition md5.hpp:138
ZSW_MD5_T4
#define ZSW_MD5_T4
Definition md5.hpp:108
ZSW_MD5_T22
#define ZSW_MD5_T22
Definition md5.hpp:126
ZSW_MD5_T64
#define ZSW_MD5_T64
Definition md5.hpp:168
ZSW_MD5_T14
#define ZSW_MD5_T14
Definition md5.hpp:118
ZSW_MD5_T25
#define ZSW_MD5_T25
Definition md5.hpp:129
ZSW_MD5_T38
#define ZSW_MD5_T38
Definition md5.hpp:142
ZSW_MD5_T3
#define ZSW_MD5_T3
Definition md5.hpp:107
ZSW_MD5_T45
#define ZSW_MD5_T45
Definition md5.hpp:149
ZSW_MD5_T17
#define ZSW_MD5_T17
Definition md5.hpp:121
ZSW_MD5_T24
#define ZSW_MD5_T24
Definition md5.hpp:128
ZSW_MD5_F
#define ZSW_MD5_F(x, y, z)
ZSW_MD5_T59
#define ZSW_MD5_T59
Definition md5.hpp:163
ZSW_MD5_T18
#define ZSW_MD5_T18
Definition md5.hpp:122
ZSW_MD5_T9
#define ZSW_MD5_T9
Definition md5.hpp:113
ZSW_MD5_T27
#define ZSW_MD5_T27
Definition md5.hpp:131
ZSW_MD5_T56
#define ZSW_MD5_T56
Definition md5.hpp:160
ZSW_MD5_T23
#define ZSW_MD5_T23
Definition md5.hpp:127
ZSW_MD5_T19
#define ZSW_MD5_T19
Definition md5.hpp:123
ZSW_MD5_T30
#define ZSW_MD5_T30
Definition md5.hpp:134
ZSW_MD5_T51
#define ZSW_MD5_T51
Definition md5.hpp:155
ZSW_MD5_ROTATE_LEFT
#define ZSW_MD5_ROTATE_LEFT(x, n)
ZSW_MD5_T49
#define ZSW_MD5_T49
Definition md5.hpp:153
ZSW_MD5_T42
#define ZSW_MD5_T42
Definition md5.hpp:146
websocketpp::close::status
A package of types and methods for manipulating WebSocket close status'.
Definition close.hpp:47
websocketpp::close::status::service_restart
static value const service_restart
Definition close.hpp:138
websocketpp::close::status::message_too_big
static value const message_too_big
An endpoint received a message too large to process.
Definition close.hpp:121
websocketpp::close::status::try_again_later
static value const try_again_later
Definition close.hpp:143
websocketpp::close::status::force_tcp_drop
static value const force_tcp_drop
Close the connection with a forced TCP drop.
Definition close.hpp:72
websocketpp::close::status::tls_handshake
static value const tls_handshake
An endpoint failed to perform a TLS handshake.
Definition close.hpp:157
websocketpp::close::status::rsv_end
static value const rsv_end
Last value in range reserved for future protocol use.
Definition close.hpp:177
websocketpp::close::status::invalid_payload
static value const invalid_payload
An endpoint received message data inconsistent with its type.
Definition close.hpp:110
websocketpp::close::status::terminal
bool terminal(value code)
Determine if the code represents an unrecoverable error.
Definition close.hpp:217
websocketpp::close::status::protocol_error
static value const protocol_error
A protocol error occurred.
Definition close.hpp:83
websocketpp::close::status::get_string
std::string get_string(value code)
Return a human readable interpretation of a WebSocket close code.
Definition close.hpp:232
websocketpp::close::status::bad_gateway
static value const bad_gateway
Definition close.hpp:148
websocketpp::close::status::invalid_subprotocol_data
static value const invalid_subprotocol_data
A invalid subprotocol data.
Definition close.hpp:172
websocketpp::close::status::invalid_high
static value const invalid_high
Last value in range that is always invalid on the wire.
Definition close.hpp:192
websocketpp::close::status::unsupported_data
static value const unsupported_data
Definition close.hpp:91
websocketpp::close::status::no_status
static value const no_status
A dummy value to indicate that no status code was received.
Definition close.hpp:97
websocketpp::close::status::omit_handshake
static value const omit_handshake
Close the connection without a WebSocket close handshake.
Definition close.hpp:62
websocketpp::close::status::normal
static value const normal
Definition close.hpp:76
websocketpp::close::status::blank
static value const blank
A blank value for internal use.
Definition close.hpp:52
websocketpp::close::status::invalid_low
static value const invalid_low
First value in range that is always invalid on the wire.
Definition close.hpp:190
websocketpp::close::status::abnormal_close
static value const abnormal_close
A dummy value to indicate that the connection was closed abnormally.
Definition close.hpp:104
websocketpp::close::status::rsv_start
static value const rsv_start
First value in range reserved for future protocol use.
Definition close.hpp:175
websocketpp::close::status::value
uint16_t value
The type of a close code value.
Definition close.hpp:49
websocketpp::close::status::policy_violation
static value const policy_violation
An endpoint received a message that violated its policy.
Definition close.hpp:118
websocketpp::close::status::extension_required
static value const extension_required
A client expected the server to accept a required extension request.
Definition close.hpp:129
websocketpp::close::status::invalid
bool invalid(value code)
Test whether a close code is invalid on the wire.
Definition close.hpp:199
websocketpp::close::status::internal_endpoint_error
static value const internal_endpoint_error
Definition close.hpp:133
websocketpp::close::status::subprotocol_error
static value const subprotocol_error
A generic subprotocol error.
Definition close.hpp:165
websocketpp::close::status::reserved
bool reserved(value code)
Test whether a close code is in a reserved range.
Definition close.hpp:184
websocketpp::close::status::going_away
static value const going_away
Definition close.hpp:80
websocketpp::close
A package of types and methods for manipulating WebSocket close codes.
Definition close.hpp:45
websocketpp::concurrency
Concurrency handling support.
Definition basic.hpp:34
websocketpp::error
Library level error codes.
Definition error.hpp:44
websocketpp::error::value
value
Definition error.hpp:45
websocketpp::error::general
@ general
Catch-all library error.
Definition error.hpp:47
websocketpp::error::unrequested_subprotocol
@ unrequested_subprotocol
Selected subprotocol was not requested by the client.
Definition error.hpp:102
websocketpp::error::invalid_port
@ invalid_port
Invalid port in URI.
Definition error.hpp:120
websocketpp::error::client_only
@ client_only
Attempted to use a client specific feature on a server endpoint.
Definition error.hpp:105
websocketpp::error::http_connection_ended
@ http_connection_ended
HTTP connection ended.
Definition error.hpp:111
websocketpp::error::async_accept_not_listening
@ async_accept_not_listening
Definition error.hpp:124
websocketpp::error::operation_canceled
@ operation_canceled
The requested operation was canceled.
Definition error.hpp:127
websocketpp::error::endpoint_unavailable
@ endpoint_unavailable
Definition error.hpp:62
websocketpp::error::no_outgoing_buffers
@ no_outgoing_buffers
The endpoint is out of outgoing message buffers.
Definition error.hpp:68
websocketpp::error::http_parse_error
@ http_parse_error
HTTP parse error.
Definition error.hpp:143
websocketpp::error::reserved_close_code
@ reserved_close_code
Close code is in a reserved range.
Definition error.hpp:80
websocketpp::error::con_creation_failed
@ con_creation_failed
Connection creation attempted failed.
Definition error.hpp:99
websocketpp::error::no_incoming_buffers
@ no_incoming_buffers
The endpoint is out of incoming message buffers.
Definition error.hpp:71
websocketpp::error::invalid_state
@ invalid_state
The connection was in the wrong state for this operation.
Definition error.hpp:74
websocketpp::error::extension_neg_failed
@ extension_neg_failed
Extension negotiation failed.
Definition error.hpp:146
websocketpp::error::rejected
@ rejected
Connection rejected.
Definition error.hpp:130
websocketpp::error::unsupported_version
@ unsupported_version
Unsupported WebSocket protocol version.
Definition error.hpp:140
websocketpp::error::invalid_utf8
@ invalid_utf8
Invalid UTF-8.
Definition error.hpp:86
websocketpp::error::bad_connection
@ bad_connection
Definition error.hpp:93
websocketpp::error::payload_violation
@ payload_violation
Definition error.hpp:54
websocketpp::error::invalid_close_code
@ invalid_close_code
Close code is invalid.
Definition error.hpp:83
websocketpp::error::server_only
@ server_only
Attempted to use a server specific feature on a client endpoint.
Definition error.hpp:108
websocketpp::error::endpoint_not_secure
@ endpoint_not_secure
Attempted to open a secure connection with an insecure endpoint.
Definition error.hpp:57
websocketpp::error::close_handshake_timeout
@ close_handshake_timeout
WebSocket close handshake timed out.
Definition error.hpp:117
websocketpp::error::invalid_subprotocol
@ invalid_subprotocol
Invalid subprotocol.
Definition error.hpp:89
websocketpp::error::bad_close_code
@ bad_close_code
Unable to parse close code.
Definition error.hpp:77
websocketpp::error::open_handshake_timeout
@ open_handshake_timeout
WebSocket opening handshake timed out.
Definition error.hpp:114
websocketpp::error::upgrade_required
@ upgrade_required
Definition error.hpp:134
websocketpp::error::invalid_version
@ invalid_version
Invalid WebSocket protocol version.
Definition error.hpp:137
websocketpp::error::transport_error
@ transport_error
General transport error, consult more specific transport error code.
Definition error.hpp:149
websocketpp::error::send_queue_full
@ send_queue_full
send attempted when endpoint write queue was full
Definition error.hpp:50
websocketpp::error::test
@ test
Unit testing utility error code.
Definition error.hpp:96
websocketpp::error::invalid_uri
@ invalid_uri
An invalid uri was supplied.
Definition error.hpp:65
websocketpp::extensions::permessage_deflate
Implementation of RFC 7692, the permessage-deflate WebSocket extension.
Definition disabled.hpp:44
websocketpp::extensions
Definition disabled.hpp:43
websocketpp::frame::limits
Constants related to frame and payload limits.
Definition frame.hpp:145
websocketpp::frame::limits::close_reason_size
static uint8_t const close_reason_size
Maximum size of close frame reason.
Definition frame.hpp:169
websocketpp::frame::limits::payload_size_jumbo
static uint64_t const payload_size_jumbo
Maximum size of a jumbo WebSocket payload (basic payload = 127).
Definition frame.hpp:162
websocketpp::frame::limits::max_extended_header_length
static unsigned int const max_extended_header_length
Maximum length of the variable portion of the WebSocket header.
Definition frame.hpp:153
websocketpp::frame::limits::max_header_length
static unsigned int const max_header_length
Maximum length of a WebSocket header.
Definition frame.hpp:150
websocketpp::frame::limits::payload_size_extended
static uint16_t const payload_size_extended
Maximum size of an extended WebSocket payload (basic payload = 126).
Definition frame.hpp:159
websocketpp::frame::limits::payload_size_basic
static uint8_t const payload_size_basic
Maximum size of a basic WebSocket payload.
Definition frame.hpp:156
websocketpp::frame::limits::basic_header_length
static unsigned int const basic_header_length
Minimum length of a WebSocket frame header.
Definition frame.hpp:147
websocketpp::frame::opcode
Constants and utility functions related to WebSocket opcodes.
Definition frame.hpp:76
websocketpp::frame::opcode::invalid
bool invalid(value v)
Check if an opcode is invalid.
Definition frame.hpp:130
websocketpp::frame::opcode::reserved
bool reserved(value v)
Check if an opcode is reserved.
Definition frame.hpp:118
websocketpp::frame::opcode::is_control
bool is_control(value v)
Check if an opcode is for a control frame.
Definition frame.hpp:139
websocketpp::frame
Data structures and utility functions for manipulating WebSocket frames.
Definition frame.hpp:45
websocketpp::frame::get_masking_key_offset
unsigned int get_masking_key_offset(basic_header const &)
Calculate the offset location of the masking key within the extended header.
Definition frame.hpp:469
websocketpp::frame::set_rsv2
void set_rsv2(basic_header &h, bool value)
Set the frame's RSV2 bit.
Definition frame.hpp:366
websocketpp::frame::MAX_HEADER_LENGTH
static unsigned int const MAX_HEADER_LENGTH
Maximum length of a WebSocket header.
Definition frame.hpp:50
websocketpp::frame::get_opcode
opcode::value get_opcode(basic_header const &h)
Extract opcode from basic header.
Definition frame.hpp:393
websocketpp::frame::set_rsv3
void set_rsv3(basic_header &h, bool value)
Set the frame's RSV3 bit.
Definition frame.hpp:384
websocketpp::frame::get_payload_size
uint64_t get_payload_size(basic_header const &, extended_header const &)
Extract the full payload size field from a WebSocket header.
Definition frame.hpp:573
websocketpp::frame::get_basic_size
uint8_t get_basic_size(basic_header const &)
Extracts the raw payload length specified in the basic header.
Definition frame.hpp:431
websocketpp::frame::byte_mask_circ
size_t byte_mask_circ(uint8_t *input, uint8_t *output, size_t length, size_t prepared_key)
Circular byte aligned mask/unmask.
Definition frame.hpp:830
websocketpp::frame::byte_mask
void byte_mask(input_iter b, input_iter e, output_iter o, masking_key_type const &key, size_t key_offset=0)
Byte by byte mask/unmask.
Definition frame.hpp:645
websocketpp::frame::MAX_EXTENDED_HEADER_LENGTH
static unsigned int const MAX_EXTENDED_HEADER_LENGTH
Maximum length of the variable portion of the WebSocket header.
Definition frame.hpp:52
websocketpp::frame::get_rsv3
bool get_rsv3(basic_header const &h)
check whether the frame's RSV3 bit is set
Definition frame.hpp:375
websocketpp::frame::get_masked
bool get_masked(basic_header const &h)
check whether the frame is masked
Definition frame.hpp:402
websocketpp::frame::get_rsv2
bool get_rsv2(basic_header const &h)
check whether the frame's RSV2 bit is set
Definition frame.hpp:357
websocketpp::frame::byte_mask
void byte_mask(iter_type b, iter_type e, masking_key_type const &key, size_t key_offset=0)
Byte by byte mask/unmask (in place).
Definition frame.hpp:675
websocketpp::frame::get_extended_size
uint16_t get_extended_size(extended_header const &)
Extract the extended size field from an extended header.
Definition frame.hpp:540
websocketpp::frame::byte_mask_circ
size_t byte_mask_circ(uint8_t *data, size_t length, size_t prepared_key)
Circular byte aligned mask/unmask (in place).
Definition frame.hpp:857
websocketpp::frame::get_fin
bool get_fin(basic_header const &h)
Check whether the frame's FIN bit is set.
Definition frame.hpp:321
websocketpp::frame::circshift_prepared_key
size_t circshift_prepared_key(size_t prepared_key, size_t offset)
circularly shifts the supplied prepared masking key by offset bytes
Definition frame.hpp:612
websocketpp::frame::get_rsv1
bool get_rsv1(basic_header const &h)
check whether the frame's RSV1 bit is set
Definition frame.hpp:339
websocketpp::frame::set_masked
void set_masked(basic_header &h, bool value)
Set the frame's MASK bit.
Definition frame.hpp:411
websocketpp::frame::word_mask_circ
size_t word_mask_circ(uint8_t *input, uint8_t *output, size_t length, size_t prepared_key)
Circular word aligned mask/unmask.
Definition frame.hpp:768
websocketpp::frame::word_mask_exact
void word_mask_exact(uint8_t *data, size_t length, masking_key_type const &key)
Exact word aligned mask/unmask (in place).
Definition frame.hpp:731
websocketpp::frame::set_rsv1
void set_rsv1(basic_header &h, bool value)
Set the frame's RSV1 bit.
Definition frame.hpp:348
websocketpp::frame::get_header_len
size_t get_header_len(basic_header const &)
Calculates the full length of the header based on the first bytes.
Definition frame.hpp:445
websocketpp::frame::set_fin
void set_fin(basic_header &h, bool value)
Set the frame's FIN bit.
Definition frame.hpp:330
websocketpp::frame::get_jumbo_size
uint64_t get_jumbo_size(extended_header const &)
Extract the jumbo size field from an extended header.
Definition frame.hpp:555
websocketpp::frame::word_mask_exact
void word_mask_exact(uint8_t *input, uint8_t *output, size_t length, masking_key_type const &key)
Exact word aligned mask/unmask.
Definition frame.hpp:702
websocketpp::frame::prepare_header
std::string prepare_header(const basic_header &h, const extended_header &e)
Generate a properly sized contiguous string that encodes a full frame header.
Definition frame.hpp:489
websocketpp::frame::get_masking_key
masking_key_type get_masking_key(basic_header const &, extended_header const &)
Extract the masking key from a frame header.
Definition frame.hpp:516
websocketpp::frame::BASIC_HEADER_LENGTH
static unsigned int const BASIC_HEADER_LENGTH
Minimum length of a WebSocket frame header.
Definition frame.hpp:48
websocketpp::frame::word_mask_circ
size_t word_mask_circ(uint8_t *data, size_t length, size_t prepared_key)
Circular word aligned mask/unmask (in place).
Definition frame.hpp:805
websocketpp::frame::prepare_masking_key
size_t prepare_masking_key(masking_key_type const &key)
Extract a masking key into a value the size of a machine word.
Definition frame.hpp:595
websocketpp::http::error
HTTP parser errors.
Definition constants.hpp:325
websocketpp::http::error::get_status_code
status_code::value get_status_code(error::value value)
Get the HTTP status code associated with the error.
Definition constants.hpp:367
websocketpp::http::error::get_category
lib::error_category const & get_category()
Get a reference to a static copy of the asio transport error category.
Definition constants.hpp:438
websocketpp::http::error::value
value
Definition constants.hpp:326
websocketpp::http::error::unknown_transfer_encoding
@ unknown_transfer_encoding
The transfer encoding is unknown.
Definition constants.hpp:344
websocketpp::http::error::istream_bad
@ istream_bad
An istream read command returned with the bad flag set.
Definition constants.hpp:359
websocketpp::http::error::invalid_format
@ invalid_format
The specified data contains illegal characters for the context.
Definition constants.hpp:332
websocketpp::http::error::body_too_large
@ body_too_large
The body value is larger than the configured maximum size.
Definition constants.hpp:338
websocketpp::http::error::incomplete_request
@ incomplete_request
The request was missing some required values.
Definition constants.hpp:353
websocketpp::http::error::unsupported_transfer_encoding
@ unsupported_transfer_encoding
The transfer encoding is not supported.
Definition constants.hpp:341
websocketpp::http::error::incomplete_status_line
@ incomplete_status_line
The response status line was missing some required values.
Definition constants.hpp:356
websocketpp::http::error::missing_header_separator
@ missing_header_separator
A header line was missing a separator.
Definition constants.hpp:347
websocketpp::http::error::istream_overread
@ istream_overread
Definition constants.hpp:363
websocketpp::http::error::general
@ general
Definition constants.hpp:329
websocketpp::http::error::invalid_header_name
@ invalid_header_name
The header name specified contains illegal characters.
Definition constants.hpp:335
websocketpp::http::error::request_header_fields_too_large
@ request_header_fields_too_large
The request headers are larger than the configured maximum size.
Definition constants.hpp:350
websocketpp::http::error::make_error_code
lib::error_code make_error_code(error::value e)
Create an error code with the given value and the asio transport category.
Definition constants.hpp:444
websocketpp::http::status_code
HTTP Status codes.
Definition constants.hpp:124
websocketpp::http::status_code::get_string
std::string get_string(value code)
Given a status code value, return the default status message.
Definition constants.hpp:189
websocketpp::http::status_code::value
value
Known values for HTTP Status codes.
Definition constants.hpp:126
websocketpp::http
HTTP handling support.
Definition request.hpp:37
websocketpp::http::max_body_size
size_t const max_body_size
Default Maximum size in bytes for HTTP message bodies.
Definition constants.hpp:71
websocketpp::http::header_separator
static char const header_separator[]
Literal value of the HTTP header separator.
Definition constants.hpp:62
websocketpp::http::parameter_list
std::vector< std::pair< std::string, attribute_list > > parameter_list
The type of an HTTP parameter list.
Definition constants.hpp:56
websocketpp::http::istream_buffer
size_t const istream_buffer
Number of bytes to use for temporary istream read buffers.
Definition constants.hpp:74
websocketpp::http::is_not_token_char
bool is_not_token_char(unsigned char c)
Is the character a non-token.
Definition constants.hpp:106
websocketpp::http::max_header_size
size_t const max_header_size
Maximum size in bytes before rejecting an HTTP header as too big.
Definition constants.hpp:68
websocketpp::http::header_delimiter
static char const header_delimiter[]
Literal value of the HTTP header delimiter.
Definition constants.hpp:59
websocketpp::http::is_whitespace_char
bool is_whitespace_char(unsigned char c)
Is the character whitespace.
Definition constants.hpp:114
websocketpp::http::header_token
static char const header_token[]
invalid HTTP token characters
Definition constants.hpp:81
websocketpp::http::is_not_whitespace_char
bool is_not_whitespace_char(unsigned char c)
Is the character non-whitespace.
Definition constants.hpp:119
websocketpp::http::attribute_list
std::map< std::string, std::string > attribute_list
The type of an HTTP attribute list.
Definition constants.hpp:48
websocketpp::http::is_token_char
bool is_token_char(unsigned char c)
Is the character a token.
Definition constants.hpp:101
websocketpp::http::empty_header
static std::string const empty_header
Literal value of an empty header.
Definition constants.hpp:65
websocketpp::md5
Provides MD5 hashing functionality.
Definition md5.hpp:76
websocketpp::processor::constants
Constants related to processing WebSocket connections.
Definition base.hpp:44
websocketpp::processor::error_cat
Processor class related error codes.
Definition base.hpp:54
websocketpp::processor::error
Error code category and codes used by all processor types.
Definition base.hpp:65
websocketpp::processor::error::get_processor_category
lib::error_category const & get_processor_category()
Get a reference to a static copy of the processor error category.
Definition base.hpp:238
websocketpp::processor::error::to_ws
close::status::value to_ws(lib::error_code ec)
Converts a processor error_code into a websocket close code.
Definition base.hpp:261
websocketpp::processor::error::processor_errors
processor_errors
Definition base.hpp:66
websocketpp::processor::error::missing_required_header
@ missing_required_header
Missing Required Header.
Definition base.hpp:129
websocketpp::processor::error::control_too_big
@ control_too_big
Control frame too large.
Definition base.hpp:90
websocketpp::processor::error::invalid_http_method
@ invalid_http_method
Invalid HTTP method.
Definition base.hpp:120
websocketpp::processor::error::invalid_rsv_bit
@ invalid_rsv_bit
Illegal use of reserved bit.
Definition base.hpp:93
websocketpp::processor::error::reason_requires_code
@ reason_requires_code
Using a reason requires a close code.
Definition base.hpp:144
websocketpp::processor::error::invalid_close_code
@ invalid_close_code
Invalid close code used.
Definition base.hpp:141
websocketpp::processor::error::masking_required
@ masking_required
Clients may not send unmasked frames.
Definition base.hpp:102
websocketpp::processor::error::protocol_violation
@ protocol_violation
Processor encountered a protocol violation in an incoming message.
Definition base.hpp:75
websocketpp::processor::error::extensions_disabled
@ extensions_disabled
Extension related operation was ignored because extensions are disabled.
Definition base.hpp:153
websocketpp::processor::error::reserved_close_code
@ reserved_close_code
Reserved close code used.
Definition base.hpp:138
websocketpp::processor::error::extension_parse_error
@ extension_parse_error
Error parsing extensions.
Definition base.hpp:150
websocketpp::processor::error::masking_forbidden
@ masking_forbidden
Servers may not send masked frames.
Definition base.hpp:105
websocketpp::processor::error::not_implemented
@ not_implemented
Operation required not implemented functionality.
Definition base.hpp:117
websocketpp::processor::error::invalid_opcode
@ invalid_opcode
Opcode was invalid for requested operation.
Definition base.hpp:87
websocketpp::processor::error::sha1_library
@ sha1_library
Embedded SHA-1 library error.
Definition base.hpp:132
websocketpp::processor::error::requires_64bit
@ requires_64bit
Not supported on 32 bit systems.
Definition base.hpp:111
websocketpp::processor::error::subprotocol_parse_error
@ subprotocol_parse_error
Error parsing subprotocols.
Definition base.hpp:147
websocketpp::processor::error::bad_request
@ bad_request
Error was the result of improperly formatted user input.
Definition base.hpp:72
websocketpp::processor::error::invalid_utf8
@ invalid_utf8
Invalid UTF-8 encoding.
Definition base.hpp:114
websocketpp::processor::error::invalid_http_status
@ invalid_http_status
Invalid HTTP status.
Definition base.hpp:126
websocketpp::processor::error::short_key3
@ short_key3
Definition base.hpp:157
websocketpp::processor::error::invalid_payload
@ invalid_payload
Processor encountered invalid payload data.
Definition base.hpp:81
websocketpp::processor::error::general
@ general
Definition base.hpp:69
websocketpp::processor::error::invalid_http_version
@ invalid_http_version
Invalid HTTP version.
Definition base.hpp:123
websocketpp::processor::error::message_too_big
@ message_too_big
Processor encountered a message that was too large.
Definition base.hpp:78
websocketpp::processor::error::no_protocol_support
@ no_protocol_support
No support for this feature in this protocol version.
Definition base.hpp:135
websocketpp::processor::error::invalid_arguments
@ invalid_arguments
The processor method was called with invalid arguments.
Definition base.hpp:84
websocketpp::processor::error::invalid_continuation
@ invalid_continuation
Continuation without message.
Definition base.hpp:99
websocketpp::processor::error::non_minimal_encoding
@ non_minimal_encoding
Payload length not minimally encoded.
Definition base.hpp:108
websocketpp::processor::error::fragmented_control
@ fragmented_control
Fragmented control message.
Definition base.hpp:96
websocketpp::processor::error::make_error_code
lib::error_code make_error_code(error::processor_errors e)
Create an error code with the given value and the processor category.
Definition base.hpp:244
websocketpp::processor
Processors encapsulate the protocol rules specific to each WebSocket version.
Definition processor.hpp:59
websocketpp::processor::get_websocket_version
int get_websocket_version(request_type &r)
Extract the version from a WebSocket handshake request.
Definition processor.hpp:107
websocketpp::processor::is_websocket_handshake
bool is_websocket_handshake(request_type &r)
Determine whether or not a generic HTTP request is a WebSocket handshake.
Definition processor.hpp:68
websocketpp::random::none
Stub RNG policy that always returns 0.
Definition none.hpp:35
websocketpp::random
Random number generation policies.
Definition random_device.hpp:34
websocketpp::transport::asio::basic_socket
Definition none.hpp:47
websocketpp::transport::asio::basic_socket::socket_init_handler
lib::function< void(connection_hdl, lib::asio::ip::tcp::socket &)> socket_init_handler
The signature of the socket init handler for this socket policy.
Definition none.hpp:51
websocketpp::transport::asio::error
Asio transport errors.
Definition base.hpp:161
websocketpp::transport::asio::error::get_category
lib::error_category const & get_category()
Get a reference to a static copy of the asio transport error category.
Definition base.hpp:211
websocketpp::transport::asio::error::make_error_code
lib::error_code make_error_code(error::value e)
Create an error code with the given value and the asio transport category.
Definition base.hpp:217
websocketpp::transport::asio::error::value
value
Definition base.hpp:162
websocketpp::transport::asio::error::proxy_invalid
@ proxy_invalid
Invalid Proxy URI.
Definition base.hpp:177
websocketpp::transport::asio::error::pass_through
@ pass_through
there was an error in the underlying transport library
Definition base.hpp:171
websocketpp::transport::asio::error::proxy_failed
@ proxy_failed
The connection to the requested proxy server failed.
Definition base.hpp:174
websocketpp::transport::asio::error::general
@ general
Definition base.hpp:165
websocketpp::transport::asio::error::invalid_num_bytes
@ invalid_num_bytes
async_read_at_least call requested more bytes than buffer can store
Definition base.hpp:168
websocketpp::transport::asio::error::invalid_host_service
@ invalid_host_service
Invalid host or service.
Definition base.hpp:180
websocketpp::transport::asio::socket::error
Errors related to asio transport sockets.
Definition base.hpp:75
websocketpp::transport::asio::socket::error::value
value
Definition base.hpp:76
websocketpp::transport::asio::socket::error::socket
@ socket
Definition base.hpp:83
websocketpp::transport::asio::socket::error::missing_tls_init_handler
@ missing_tls_init_handler
Required tls_init handler not present.
Definition base.hpp:99
websocketpp::transport::asio::socket::error::invalid_tls_context
@ invalid_tls_context
Definition base.hpp:90
websocketpp::transport::asio::socket::error::invalid_state
@ invalid_state
A function was called in a state that it was illegal to do so.
Definition base.hpp:86
websocketpp::transport::asio::socket::error::tls_failed_sni_hostname
@ tls_failed_sni_hostname
Failed to set TLS SNI hostname.
Definition base.hpp:105
websocketpp::transport::asio::socket::error::tls_handshake_failed
@ tls_handshake_failed
TLS Handshake Failed.
Definition base.hpp:102
websocketpp::transport::asio::socket::error::tls_handshake_timeout
@ tls_handshake_timeout
TLS Handshake Timeout.
Definition base.hpp:93
websocketpp::transport::asio::socket::error::pass_through
@ pass_through
pass_through from underlying library
Definition base.hpp:96
websocketpp::transport::asio::socket::error::security
@ security
Definition base.hpp:79
websocketpp::transport::asio
Transport policy that uses asio.
Definition endpoint.hpp:46
websocketpp::transport::error
Generic transport related errors.
Definition connection.hpp:146
websocketpp::transport::error::value
value
Definition connection.hpp:147
websocketpp::transport::error::timeout
@ timeout
Timer expired.
Definition connection.hpp:174
websocketpp::transport::error::general
@ general
Definition connection.hpp:150
websocketpp::transport::error::pass_through
@ pass_through
underlying transport pass through
Definition connection.hpp:153
websocketpp::transport::error::eof
@ eof
End of file.
Definition connection.hpp:168
websocketpp::transport::error::operation_not_supported
@ operation_not_supported
Operation not supported.
Definition connection.hpp:165
websocketpp::transport::error::operation_aborted
@ operation_aborted
Operation aborted.
Definition connection.hpp:162
websocketpp::transport::error::tls_error
@ tls_error
Other TLS error.
Definition connection.hpp:180
websocketpp::transport::error::invalid_num_bytes
@ invalid_num_bytes
async_read_at_least call requested more bytes than buffer can store
Definition connection.hpp:156
websocketpp::transport::error::action_after_shutdown
@ action_after_shutdown
read or write after shutdown
Definition connection.hpp:177
websocketpp::transport::error::tls_short_read
@ tls_short_read
TLS short read.
Definition connection.hpp:171
websocketpp::transport::error::double_read
@ double_read
async_read called while another async_read was in progress
Definition connection.hpp:159
websocketpp::transport::iostream::error
iostream transport errors
Definition base.hpp:64
websocketpp::transport::iostream::error::value
value
Definition base.hpp:65
websocketpp::transport::iostream::error::general
@ general
Definition base.hpp:68
websocketpp::transport::iostream::error::output_stream_required
@ output_stream_required
Definition base.hpp:78
websocketpp::transport::iostream::error::invalid_num_bytes
@ invalid_num_bytes
async_read_at_least call requested more bytes than buffer can store
Definition base.hpp:71
websocketpp::transport::iostream::error::double_read
@ double_read
async_read called while another async_read was in progress
Definition base.hpp:74
websocketpp::transport::iostream::error::bad_stream
@ bad_stream
stream error
Definition base.hpp:81
websocketpp::transport::iostream::error::make_error_code
lib::error_code make_error_code(error::value e)
Get an error code with the given value and the iostream transport category.
Definition base.hpp:118
websocketpp::transport::iostream::error::get_category
lib::error_category const & get_category()
Get a reference to a static copy of the iostream transport error category.
Definition base.hpp:112
websocketpp::transport::iostream
Transport policy that uses STL iostream for I/O and does not support timers.
Definition endpoint.hpp:43
websocketpp::transport::iostream::vector_write_handler
lib::function< lib::error_code(connection_hdl, std::vector< transport::buffer > const &bufs)> vector_write_handler
Definition base.hpp:57
websocketpp::transport::iostream::shutdown_handler
lib::function< lib::error_code(connection_hdl)> shutdown_handler
Definition base.hpp:61
websocketpp::transport::iostream::write_handler
lib::function< lib::error_code(connection_hdl, char const *, size_t)> write_handler
The type and signature of the callback used by iostream transport to write.
Definition base.hpp:48
websocketpp::transport
Transport policies provide network connectivity and timers.
Definition endpoint.hpp:45
websocketpp::transport::read_handler
lib::function< void(lib::error_code const &, size_t)> read_handler
The type and signature of the callback passed to the read method.
Definition connection.hpp:120
websocketpp::transport::dispatch_handler
lib::function< void()> dispatch_handler
The type and signature of the callback passed to the dispatch method.
Definition connection.hpp:135
websocketpp::transport::interrupt_handler
lib::function< void()> interrupt_handler
The type and signature of the callback passed to the interrupt method.
Definition connection.hpp:132
websocketpp::transport::accept_handler
lib::function< void(lib::error_code const &)> accept_handler
The type and signature of the callback passed to the accept method.
Definition endpoint.hpp:80
websocketpp::transport::timer_handler
lib::function< void(lib::error_code const &)> timer_handler
The type and signature of the callback passed to the read method.
Definition connection.hpp:126
websocketpp::transport::connect_handler
lib::function< void(lib::error_code const &)> connect_handler
The type and signature of the callback passed to the connect method.
Definition endpoint.hpp:83
websocketpp::transport::write_handler
lib::function< void(lib::error_code const &)> write_handler
The type and signature of the callback passed to the write method.
Definition connection.hpp:123
websocketpp::transport::init_handler
lib::function< void(lib::error_code const &)> init_handler
The type and signature of the callback passed to the init hook.
Definition connection.hpp:117
websocketpp::transport::shutdown_handler
lib::function< void(lib::error_code const &)> shutdown_handler
The type and signature of the callback passed to the shutdown method.
Definition connection.hpp:129
websocketpp::uri_helper
A group of helper methods for parsing and validating URIs against RFC 3986.
Definition uri.hpp:52
websocketpp::uri_helper::digit
bool digit(char c)
RFC3986 digit character test.
Definition uri.hpp:184
websocketpp::uri_helper::gen_delim
bool gen_delim(char c)
RFC3986 generic delimiter character test.
Definition uri.hpp:78
websocketpp::uri_helper::digit
bool digit(std::string::const_iterator it)
RFC3986 digit character test (iterator version).
Definition uri.hpp:195
websocketpp::uri_helper::ipv4_literal
bool ipv4_literal(std::string::const_iterator start, std::string::const_iterator end)
Tests a range for a valid IPv4 literal.
Definition uri.hpp:250
websocketpp::uri_helper::sub_delim
bool sub_delim(char c)
RFC3986 subcomponent delimiter character test.
Definition uri.hpp:100
websocketpp::uri_helper::reg_name
bool reg_name(std::string::const_iterator start, std::string::const_iterator end)
Tests a range for validity for a registry name.
Definition uri.hpp:373
websocketpp::uri_helper::pct_encoded
bool pct_encoded(std::string::const_iterator it)
RFC3986 per cent encoded character test.
Definition uri.hpp:211
websocketpp::uri_helper::scheme
bool scheme(char c)
RFC3986 scheme character test.
Definition uri.hpp:165
websocketpp::uri_helper::unreserved
bool unreserved(char c)
RFC3986 unreserved character test.
Definition uri.hpp:61
websocketpp::uri_helper::reg_name
bool reg_name(char c)
Tests a character for validity for a registry name.
Definition uri.hpp:361
websocketpp::uri_helper::hex4
bool hex4(std::string::const_iterator start, std::string::const_iterator end)
Tests a range for a valid IPv6 hex quad.
Definition uri.hpp:279
websocketpp::uri_helper::dec_octet
bool dec_octet(std::string::const_iterator start, std::string::const_iterator end)
Tests a range for a valid IPv4 decimal octet.
Definition uri.hpp:223
websocketpp::uri_helper::ipv6_literal
bool ipv6_literal(std::string::const_iterator start, std::string::const_iterator end)
Tests a range for a valid IPv6 literal.
Definition uri.hpp:299
websocketpp::uri_helper::hexdigit
bool hexdigit(char c)
RFC3986 hex digit character test.
Definition uri.hpp:128
websocketpp::utility
Generic non-websocket specific utility functions and data structures.
Definition utilities.hpp:39
websocketpp::utility::to_hex
std::string to_hex(uint8_t const *input, size_t length)
Convert byte array (uint8_t) to ascii printed string of hex digits.
Definition utilities_impl.hpp:41
websocketpp::utility::ci_find_substr
T::const_iterator ci_find_substr(T const &haystack, T const &needle, std::locale const &loc=std::locale())
Find substring (case insensitive).
Definition utilities.hpp:101
websocketpp::utility::ci_find_substr
T::const_iterator ci_find_substr(T const &haystack, typename T::value_type const *needle, typename T::size_type size, std::locale const &loc=std::locale())
Find substring (case insensitive).
Definition utilities.hpp:123
websocketpp::utility::to_hex
std::string to_hex(char const *input, size_t length)
Convert char array to ascii printed string of hex digits.
Definition utilities_impl.hpp:55
websocketpp
Namespace for the WebSocket++ project.
Definition asio_no_tls_client.hpp:34
websocketpp::pong_handler
lib::function< void(connection_hdl, std::string)> pong_handler
The type and function signature of a pong handler.
Definition connection.hpp:109
websocketpp::close_handler
lib::function< void(connection_hdl)> close_handler
The type and function signature of a close handler.
Definition connection.hpp:69
websocketpp::pong_timeout_handler
lib::function< void(connection_hdl, std::string)> pong_timeout_handler
The type and function signature of a pong timeout handler.
Definition connection.hpp:116
websocketpp::http_handler
lib::function< void(connection_hdl)> http_handler
The type and function signature of a http handler.
Definition connection.hpp:151
websocketpp::open_handler
lib::function< void(connection_hdl)> open_handler
The type and function signature of an open handler.
Definition connection.hpp:59
websocketpp::interrupt_handler
lib::function< void(connection_hdl)> interrupt_handler
The type and function signature of an interrupt handler.
Definition connection.hpp:91
websocketpp::uri_default_secure_port
static uint16_t const uri_default_secure_port
Default port for wss://.
Definition uri.hpp:47
websocketpp::fail_handler
lib::function< void(connection_hdl)> fail_handler
The type and function signature of a fail handler.
Definition connection.hpp:79
websocketpp::connection_hdl
lib::weak_ptr< void > connection_hdl
A handle to uniquely identify a connection.
Definition connection_hdl.hpp:48
websocketpp::uri_default_port
static uint16_t const uri_default_port
Default port for ws://.
Definition uri.hpp:45
websocketpp::ping_handler
lib::function< bool(connection_hdl, std::string)> ping_handler
The type and function signature of a ping handler.
Definition connection.hpp:101
websocketpp::user_agent
static char const user_agent[]
Default user agent string.
Definition version.hpp:57
websocketpp::uri_ptr
lib::shared_ptr< uri > uri_ptr
Pointer to a URI.
Definition uri.hpp:791
websocketpp::err_str_pair
std::pair< lib::error_code, std::string > err_str_pair
Combination error code / string type for returning two values.
Definition error.hpp:41
websocketpp::validate_handler
lib::function< bool(connection_hdl)> validate_handler
The type and function signature of a validate handler.
Definition connection.hpp:129
websocketpp::is_base64
static bool is_base64(unsigned char c)
Test whether a character is a valid base64 character.
Definition base64.hpp:53
websocketpp::base64_encode
std::string base64_encode(unsigned char const *input, size_t len)
Encode a char buffer into a base64 string.
Definition base64.hpp:66
TYP_BIGE
#define TYP_BIGE
Definition network.hpp:53
TYP_SMLE
#define TYP_SMLE
Definition network.hpp:52
TYP_INIT
#define TYP_INIT
Definition network.hpp:51
is_error_code_enum< websocketpp::error::value >
Definition error.hpp:249
is_error_code_enum< websocketpp::extensions::error::value >
Definition extension.hpp:97
is_error_code_enum< websocketpp::http::error::value >
Definition constants.hpp:454
is_error_code_enum< websocketpp::processor::error::processor_errors >
Definition base.hpp:294
is_error_code_enum< websocketpp::transport::asio::error::value >
Definition base.hpp:228
is_error_code_enum< websocketpp::transport::error::value >
Definition connection.hpp:233
is_error_code_enum< websocketpp::transport::iostream::error::value >
Definition base.hpp:128
websocketpp::config::asio::transport_config
Definition asio_no_tls.hpp:56
websocketpp::config::asio
Server config with asio transport and TLS disabled.
Definition asio_no_tls.hpp:38
websocketpp::config::core::permessage_deflate_config
Extension specific settings:
Definition core.hpp:260
websocketpp::config::core::permessage_deflate_config::minimum_outgoing_window_bits
static const uint8_t minimum_outgoing_window_bits
Definition core.hpp:272
websocketpp::config::core::permessage_deflate_config::allow_disabling_context_takeover
static const bool allow_disabling_context_takeover
Definition core.hpp:265
websocketpp::config::core::transport_config
Definition core.hpp:100
websocketpp::config::core::transport_config::timeout_socket_shutdown
static const long timeout_socket_shutdown
Length of time to wait for socket shutdown.
Definition core.hpp:137
websocketpp::config::core::transport_config::timeout_connect
static const long timeout_connect
Length of time to wait for TCP connect.
Definition core.hpp:134
websocketpp::config::core::transport_config::timeout_dns_resolve
static const long timeout_dns_resolve
Length of time to wait for dns resolution.
Definition core.hpp:131
websocketpp::config::core::transport_config::timeout_proxy
static const long timeout_proxy
Length of time to wait before a proxy handshake is aborted.
Definition core.hpp:121
websocketpp::config::core::transport_config::timeout_socket_pre_init
static const long timeout_socket_pre_init
Default timer values (in ms).
Definition core.hpp:118
websocketpp::config::core::transport_config::enable_multithreading
static bool const enable_multithreading
Definition core.hpp:110
websocketpp::config::core::transport_config::timeout_socket_post_init
static const long timeout_socket_post_init
Length of time to wait for socket post-initialization.
Definition core.hpp:128
websocketpp::config::core
Server config with iostream transport.
Definition core.hpp:68
websocketpp::config::core::rng_type
websocketpp::random::none::int_generator< uint32_t > rng_type
RNG policies.
Definition core.hpp:93
websocketpp::config::core::elog_level
static const websocketpp::log::level elog_level
Default static error logging channels.
Definition core.hpp:176
websocketpp::config::core::transport_type
websocketpp::transport::iostream::endpoint< transport_config > transport_type
Transport Endpoint Component.
Definition core.hpp:142
websocketpp::config::core::max_http_body_size
static const size_t max_http_body_size
Default maximum http body size.
Definition core.hpp:252
websocketpp::config::core::timeout_open_handshake
static const long timeout_open_handshake
Default timer values (in ms).
Definition core.hpp:152
websocketpp::config::core::max_message_size
static const size_t max_message_size
Default maximum message size.
Definition core.hpp:240
websocketpp::config::core::drop_on_protocol_error
static const bool drop_on_protocol_error
Drop connections immediately on protocol error.
Definition core.hpp:213
websocketpp::config::core::timeout_close_handshake
static const long timeout_close_handshake
Length of time before a closing handshake is aborted.
Definition core.hpp:154
websocketpp::config::core::alog_level
static const websocketpp::log::level alog_level
Default static access logging channels.
Definition core.hpp:189
websocketpp::config::core::elog_type
websocketpp::log::basic< concurrency_type, websocketpp::log::elevel > elog_type
Logging policies.
Definition core.hpp:88
websocketpp::config::core::timeout_pong
static const long timeout_pong
Length of time to wait for a pong after a ping.
Definition core.hpp:156
websocketpp::config::core::silent_close
static const bool silent_close
Suppresses the return of detailed connection close information.
Definition core.hpp:228
websocketpp::config::core::enable_multithreading
static bool const enable_multithreading
Definition core.hpp:98
websocketpp::config::core::connection_read_buffer_size
static const size_t connection_read_buffer_size
Size of the per-connection read buffer.
Definition core.hpp:204
websocketpp::config::core::enable_extensions
static const bool enable_extensions
Global flag for enabling/disabling extensions.
Definition core.hpp:255
websocketpp::config::core::client_version
static const int client_version
WebSocket Protocol version to use as a client.
Definition core.hpp:164
websocketpp::frame::basic_header
The constant size component of a WebSocket frame header.
Definition frame.hpp:189
websocketpp::frame::extended_header
The variable size component of a WebSocket frame header.
Definition frame.hpp:235
websocketpp::log::alevel
Package of log levels for logging access events.
Definition levels.hpp:112
websocketpp::log::alevel::channel_name
static char const * channel_name(level channel)
Get the textual name of a channel given a channel id.
Definition levels.hpp:164
websocketpp::log::alevel::fail
static level const fail
One line for each failed WebSocket connection with details.
Definition levels.hpp:147
websocketpp::log::alevel::none
static level const none
Special aggregate value representing "no levels".
Definition levels.hpp:114
websocketpp::log::alevel::debug_handshake
static level const debug_handshake
Extra information about opening handshakes.
Definition levels.hpp:137
websocketpp::log::alevel::devel
static level const devel
Development messages (warning: very chatty).
Definition levels.hpp:141
websocketpp::log::alevel::all
static level const all
Special aggregate value representing "all levels".
Definition levels.hpp:152
websocketpp::log::alevel::debug_close
static level const debug_close
Extra information about closing handshakes.
Definition levels.hpp:139
websocketpp::log::alevel::frame_payload
static level const frame_payload
One line per frame, includes the full message payload (warning: chatty).
Definition levels.hpp:129
websocketpp::log::alevel::connect
static level const connect
Information about new connections.
Definition levels.hpp:121
websocketpp::log::alevel::app
static level const app
Special channel for application specific logs. Not used by the library.
Definition levels.hpp:143
websocketpp::log::alevel::frame_header
static level const frame_header
One line per frame, includes the full frame header.
Definition levels.hpp:127
websocketpp::log::alevel::message_payload
static level const message_payload
Reserved.
Definition levels.hpp:133
websocketpp::log::alevel::endpoint
static level const endpoint
Reserved.
Definition levels.hpp:135
websocketpp::log::alevel::message_header
static level const message_header
Reserved.
Definition levels.hpp:131
websocketpp::log::alevel::control
static level const control
One line per control frame.
Definition levels.hpp:125
websocketpp::log::alevel::disconnect
static level const disconnect
One line for each closed connection. Includes closing codes and reasons.
Definition levels.hpp:123
websocketpp::log::alevel::access_core
static level const access_core
Definition levels.hpp:150
websocketpp::log::alevel::http
static level const http
Access related to HTTP requests.
Definition levels.hpp:145
websocketpp::log::channel_type_hint
Package of values for hinting at the nature of a given logger.
Definition levels.hpp:46
websocketpp::log::channel_type_hint::none
static value const none
No information.
Definition levels.hpp:51
websocketpp::log::channel_type_hint::access
static value const access
Access log.
Definition levels.hpp:53
websocketpp::log::channel_type_hint::error
static value const error
Error log.
Definition levels.hpp:55
websocketpp::log::channel_type_hint::value
uint32_t value
Type of a channel type hint value.
Definition levels.hpp:48
websocketpp::log::elevel
Package of log levels for logging errors.
Definition levels.hpp:59
websocketpp::log::elevel::devel
static level const devel
Low level debugging information (warning: very chatty).
Definition levels.hpp:63
websocketpp::log::elevel::channel_name
static char const * channel_name(level channel)
Get the textual name of a channel given a channel id.
Definition levels.hpp:91
websocketpp::log::elevel::library
static level const library
Definition levels.hpp:66
websocketpp::log::elevel::info
static level const info
Definition levels.hpp:69
websocketpp::log::elevel::all
static level const all
Special aggregate value representing "all levels".
Definition levels.hpp:80
websocketpp::log::elevel::fatal
static level const fatal
Definition levels.hpp:78
websocketpp::log::elevel::none
static level const none
Special aggregate value representing "no levels".
Definition levels.hpp:61
websocketpp::log::elevel::rerror
static level const rerror
Definition levels.hpp:75
websocketpp::log::elevel::warn
static level const warn
Definition levels.hpp:72
websocketpp::md5::md5_state_s
Definition md5.hpp:82
websocketpp::transport::buffer
A simple utility buffer class.
Definition connection.hpp:138
websocketpp::transport::iostream::timer
Definition connection.hpp:55
websocketpp::utility::ci_less::nocase_compare
Definition utilities.hpp:77
websocketpp::utility::ci_less
Helper less than functor for case insensitive find.
Definition utilities.hpp:75
websocketpp::utility::my_equal
Helper functor for case insensitive find.
Definition utilities.hpp:49
websocketpp::utility::my_equal::operator()
bool operator()(charT ch1, charT ch2)
Perform a case insensitive comparison.
Definition utilities.hpp:63
websocketpp::utility::my_equal::my_equal
my_equal(std::locale const &loc)
Construct the functor with the given locale.
Definition utilities.hpp:54
_WEBSOCKETPP_ERROR_CODE_ENUM_NS_END_
#define _WEBSOCKETPP_ERROR_CODE_ENUM_NS_END_
Definition system_error.hpp:78
_WEBSOCKETPP_ERROR_CODE_ENUM_NS_START_
#define _WEBSOCKETPP_ERROR_CODE_ENUM_NS_START_
Definition system_error.hpp:77
websocketpp::close::code_converter
Type used to convert close statuses between integer and wire representations.
Definition close.hpp:275
websocketpp::frame::uint16_converter
Two byte conversion union.
Definition frame.hpp:55
websocketpp::frame::uint32_converter
Four byte conversion union.
Definition frame.hpp:61
websocketpp::frame::uint64_converter
Eight byte conversion union.
Definition frame.hpp:67