Compare commits

..

3 Commits

Author SHA1 Message Date
Peter Thorson a401a4448d update version information to 0.3.0-alpha1 2013-06-09 08:46:54 -05:00
Peter Thorson ace76f54f9 update docs for 0.3.x in master branch fixes #197 2013-06-09 08:31:05 -05:00
Peter Thorson 1eaa1b790f update travis for 0.3.x in master 2013-06-09 08:30:03 -05:00
13 changed files with 62 additions and 192 deletions
+3 -1
View File
@@ -10,6 +10,8 @@ env:
script: scons -j 2 && scons test
branches:
only:
- master
- permessage-deflate
- experimental
- 0.3.x-cmake
notifications:
@@ -17,4 +19,4 @@ notifications:
- travis@zaphoyd.com
email:
on_success: change
on_failure: always
on_failure: always
+2 -2
View File
@@ -9,8 +9,8 @@ project (websocketpp)
cmake_minimum_required (VERSION 2.6)
set (WEBSOCKETPP_MAJOR_VERSION 0)
set (WEBSOCKETPP_MINOR_VERSION 2)
set (WEBSOCKETPP_PATCH_VERSION 99)
set (WEBSOCKETPP_MINOR_VERSION 3)
set (WEBSOCKETPP_PATCH_VERSION 0)
set (WEBSOCKETPP_VERSION ${WEBSOCKETPP_MAJOR_VERSION}.${WEBSOCKETPP_MINOR_VERSION}.${WEBSOCKETPP_PATCH_VERSION})
set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files")
+1 -1
View File
@@ -33,7 +33,7 @@ PROJECT_NAME = "websocketpp"
# if some version control system is used.
PROJECT_NUMBER = "0.3.0-dev"
PROJECT_NUMBER = "0.3.0-alpha1"
# Using the PROJECT_BRIEF tag one can provide an optional one line description
+1 -1
View File
@@ -1,2 +1,2 @@
0.3.0b1 - 2013-05-??
0.3.0-alpha1 - 2013-06-09
- Initial Release
+1 -13
View File
@@ -1,4 +1,4 @@
WebSocket++ (0.3.x branch)
WebSocket++ (0.3.0-alpha1)
==========================
WebSocket++ is a header only C++ library that implements RFC6455 The WebSocket
@@ -6,18 +6,6 @@ Protocol. It allows integrating WebSocket client and server functionality into
C++ programs. It uses interchangeable network transport modules including one
based on C++ iostreams and one based on Boost Asio.
*This branch is no longer "experimental". It represents the current edge release
of the WebSocket++ library. The API of 0.3.x has some significant changes from
0.2.x, so care should be taken when upgrading.*
*This branch's API is relatively stable now. Features implemented so far are
unlikely to change (except where explicitly noted). New features will be added
regularly until parity with the 0.2 branch is reached.*
*This is the preferred branch for new projects, especially those that involve
multithreaded servers. It is better tested and documented. The 0.3.x API will
be the basis for the 1.0 release.*
Major Features
==============
* Full support for RFC6455
+5 -9
View File
@@ -8,6 +8,8 @@ Complete & Tested:
- GCC support
- 64 bit support
- 32 bit support
- Logging
- Client role
Implimented, needs more testing
- TLS support
@@ -20,26 +22,20 @@ Implimented, needs more testing
- pong_handler
- tcp_init_handler
- exception/error handling
- Logging
- Client role
- Subprotocol negotiation
- Hybi 00/Hixie 76 legacy protocol support
- Performance tuning
- Outgoing Proxy Support
- PowerPC support
- Visual Studio / Windows support
Implimented, API not finalized
- Timeouts
- CMake build/install support
- open_handler
- close_handler
- validate_handler
- http_handler
Needs work:
- Timeouts
Non-release blocking feature roadmap
Future feature roadmap
- Extension support
- permessage_compress extension
- Message buffer pool
- CMake build/install support
-148
View File
@@ -1,148 +0,0 @@
/*
* Copyright (c) 2013, Peter Thorson. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the WebSocket++ Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef WEBSOCKETPP_COMMON_HPP
#define WEBSOCKETPP_COMMON_HPP
// TODO/NOTE:
// _WEBSOCKETPP_CPP11_MEMORY_ and _WEBSOCKETPP_CPP11_FUNCTIONAL_ presently
// only work if either both or neither is defined. It might not make sense to
// have separate options for them both.
//
/**
* _WEBSOCKETPP_CPP11_STL_ enables the use of a C++11 STL. Doing this requires
* that you link to a C++11 STL, that your copy of boost be linked to that same
* STL, and that your compiler supports a minimum set of C++11 features.
*
* Required Features:
* - noexcept
*/
// Optional C++11 support features
#ifndef __has_feature // Optional of course.
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
#endif
#ifndef __has_extension
#define __has_extension __has_feature // Compatibility with pre-3.0 compilers.
#endif
// Enable initializer lists on clang when available.
#if __has_feature(cxx_generalized_initializers)
#define _WEBSOCKETPP_INITIALIZER_LISTS_
#endif
// Enable deleted functions when available.
#if __has_feature(cxx_deleted_functions)
#define _WEBSOCKETPP_DELETED_FUNCTIONS_
#endif
// Enable rvalue references when available.
#if __has_feature(cxx_rvalue_references)
#define _WEBSOCKETPP_RVALUE_REFERENCES_
#endif
// Use C++11 native Alias Templates instead of a hack.
//#define _WEBSOCKETPP_CPP11_ALIAS_TEMPLATES_
#ifdef _WEBSOCKETPP_CPP11_
#define _WEBSOCKETPP_DELETED_FUNCTIONS_
#define _WEBSOCKETPP_RVALUE_REFERENCES_
#endif
#include <string>
namespace websocketpp {
// Size of the transport read buffer. Increasing may improve performance for
// large reads. Higher values will increase memory usage linearly with
// connection count.
const size_t DEFAULT_READ_THRESHOLD = 1; // 512 would be a more sane value
// Maximum size in bytes before rejecting an HTTP header as too big.
// Is defined in websocketpp/http/constants.hpp
// Default user agent.
}
namespace close {
namespace status {
enum value {
INVALID_END = 999,
NORMAL = 1000,
GOING_AWAY = 1001,
PROTOCOL_ERROR = 1002,
UNSUPPORTED_DATA = 1003,
RSV_ADHOC_1 = 1004,
NO_STATUS = 1005,
ABNORMAL_CLOSE = 1006,
INVALID_PAYLOAD = 1007,
POLICY_VIOLATION = 1008,
MESSAGE_TOO_BIG = 1009,
EXTENSION_REQUIRE = 1010,
INTERNAL_ENDPOINT_ERROR = 1011,
RSV_ADHOC_2 = 1012,
RSV_ADHOC_3 = 1013,
RSV_ADHOC_4 = 1014,
TLS_HANDSHAKE = 1015,
RSV_START = 1016,
RSV_END = 2999,
INVALID_START = 5000
};
inline bool reserved(value s) {
return ((s >= RSV_START && s <= RSV_END) || s == RSV_ADHOC_1
|| s == RSV_ADHOC_2 || s == RSV_ADHOC_3 || s == RSV_ADHOC_4);
}
// Codes invalid on the wire
inline bool invalid(value s) {
return ((s <= INVALID_END || s >= INVALID_START) ||
s == NO_STATUS ||
s == ABNORMAL_CLOSE ||
s == TLS_HANDSHAKE);
}
// TODO functions for application ranges?
} // namespace status
} // namespace close
#include <websocketpp/common/memory.hpp>
#include <websocketpp/common/functional.hpp>
#include <websocketpp/common/regex.hpp>
#include <websocketpp/common/system_error.hpp>
#endif // WEBSOCKETPP_COMMON_HPP
+1 -2
View File
@@ -30,14 +30,13 @@
#include <websocketpp/connection.hpp>
#include <websocketpp/logger/levels.hpp>
#include <websocketpp/version.hpp>
#include <iostream>
#include <set>
namespace websocketpp {
static const char user_agent[] = "WebSocket++/0.3.0dev";
/// Creates and manages connections associated with a WebSocket endpoint
template <typename connection, typename config>
class endpoint : public config::transport_type, public config::endpoint_base {
+3 -5
View File
@@ -111,17 +111,15 @@ private:
typedef typename concurrency::scoped_lock_type scoped_lock_type;
typedef typename concurrency::mutex_type mutex_type;
// The timestamp does not include the time zone, because on Windows with the default registry settings,
// the time zone would be written out in full, which would be obnoxiously verbose.
std::string get_timestamp() {
const char* get_timestamp() {
std::time_t t = std::time(NULL);
char buffer[40];
std::strftime(buffer,sizeof(buffer),"%Y-%m-%d %H:%M:%S",std::localtime(&t));
std::strftime(buffer,39,"%Y-%m-%d %H:%M:%S%z",std::localtime(&t));
return buffer;
}
mutex_type m_lock;
char buffer[40];
const level m_static_channels;
level m_dynamic_channels;
std::ostream* m_out;
+2 -2
View File
@@ -338,8 +338,8 @@ public:
}
std::string val;
val.append(1,'\xff');
val.append(1,'\x00');
val.append(1,0xff);
val.append(1,0x00);
out->set_payload(val);
out->set_prepared(true);
-7
View File
@@ -102,14 +102,7 @@ class SHA1
while(length-- && !Corrupted)
{
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(suppress: 6386) // Suppresses Visual Studio code analysis for write overrun. It doesn't know the index into Message_Block is protected by checking length.
#endif
Message_Block[Message_Block_Index++] = (*message_array & 0xFF);
#ifdef _MSC_VER
#pragma warning(pop)
#endif
Length_Low += 8;
Length_Low &= 0xFFFFFFFF; // Force it to 32 bits
+1 -1
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, Peter Thorson. All rights reserved.
* Copyright (c) 2013, Peter Thorson. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
+42
View File
@@ -0,0 +1,42 @@
/*
* Copyright (c) 2013, Peter Thorson. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the WebSocket++ Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef WEBSOCKETPP_VERSION_HPP
#define WEBSOCKETPP_VERSION_HPP
namespace websocketpp {
static int const major_version = 0;
static int const minor_version = 3;
static int const patch_version = 0;
static char const prerelease_flag[] = "alpha1";
static char const user_agent[] = "WebSocket++/0.3.0-alpha1";
} // namespace websocketpp
#endif // WEBSOCKETPP_VERSION_HPP