fix unittest warnings + remove trailing spaces
This commit is contained in:
parent
a55d4cdb76
commit
57086e28d8
@ -1,6 +1,6 @@
|
|||||||
## Hello world
|
## Hello world
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
IXWebSocket is a C++ library for WebSocket client and server development. It has minimal dependencies (no boost), is very simple to use and support everything you'll likely need for websocket dev (SSL, deflate compression, compiles on most platforms, etc...). HTTP client and server code is also available, but it hasn't received as much testing.
|
IXWebSocket is a C++ library for WebSocket client and server development. It has minimal dependencies (no boost), is very simple to use and support everything you'll likely need for websocket dev (SSL, deflate compression, compiles on most platforms, etc...). HTTP client and server code is also available, but it hasn't received as much testing.
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ Close connections when reserved bits are used (fix autobahn test: 3.X Reserved B
|
|||||||
- add utf-8 validation code, not hooked up properly yet
|
- add utf-8 validation code, not hooked up properly yet
|
||||||
- Ping received with a payload too large (> 125 bytes) trigger a connection closure
|
- Ping received with a payload too large (> 125 bytes) trigger a connection closure
|
||||||
- cobra / add tracking about published messages
|
- cobra / add tracking about published messages
|
||||||
- cobra / publish returns a message id, that can be used when
|
- cobra / publish returns a message id, that can be used when
|
||||||
- cobra / new message type in the message received handler when publish/ok is received (can be used to implement an ack system).
|
- cobra / new message type in the message received handler when publish/ok is received (can be used to implement an ack system).
|
||||||
|
|
||||||
## [5.0.9] - 2019-08-30
|
## [5.0.9] - 2019-08-30
|
||||||
@ -89,7 +89,7 @@ ws connect --max_wait 5000 ws://example.com # will only wait 5 seconds max betwe
|
|||||||
|
|
||||||
## [5.0.7] - 2019-08-23
|
## [5.0.7] - 2019-08-23
|
||||||
- WebSocket: add new option to pass in extra HTTP headers when connecting.
|
- WebSocket: add new option to pass in extra HTTP headers when connecting.
|
||||||
- `ws connect` add new option (-H, works like [curl](https://stackoverflow.com/questions/356705/how-to-send-a-header-using-a-http-request-through-a-curl-call)) to pass in extra HTTP headers when connecting
|
- `ws connect` add new option (-H, works like [curl](https://stackoverflow.com/questions/356705/how-to-send-a-header-using-a-http-request-through-a-curl-call)) to pass in extra HTTP headers when connecting
|
||||||
|
|
||||||
If you run against `ws echo_server` you will see the headers being received printed in the terminal.
|
If you run against `ws echo_server` you will see the headers being received printed in the terminal.
|
||||||
```
|
```
|
||||||
|
@ -33,7 +33,7 @@ vcpkg install ixwebsocket
|
|||||||
|
|
||||||
### Conan
|
### Conan
|
||||||
|
|
||||||
Support for building with conan was contributed by Olivia Zoe (thanks !). The package name to reference is `IXWebSocket/5.0.0@LunarWatcher/stable`. The package is in the process to be published to the official conan package repo, but in the meantime, it can be accessed by adding a new remote
|
Support for building with conan was contributed by Olivia Zoe (thanks !). The package name to reference is `IXWebSocket/5.0.0@LunarWatcher/stable`. The package is in the process to be published to the official conan package repo, but in the meantime, it can be accessed by adding a new remote
|
||||||
|
|
||||||
```
|
```
|
||||||
conan remote add remote_name_here https://api.bintray.com/conan/oliviazoe0/conan-packages
|
conan remote add remote_name_here https://api.bintray.com/conan/oliviazoe0/conan-packages
|
||||||
@ -59,6 +59,3 @@ app@ca2340eb9106:~$ ws --help
|
|||||||
ws is a websocket tool
|
ws is a websocket tool
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -225,7 +225,7 @@ Wait time(ms): 10000
|
|||||||
The waiting time is capped by default at 10s between 2 attempts, but that value can be changed and queried.
|
The waiting time is capped by default at 10s between 2 attempts, but that value can be changed and queried.
|
||||||
|
|
||||||
```
|
```
|
||||||
webSocket.setMaxWaitBetweenReconnectionRetries(5 * 1000); // 5000ms = 5s
|
webSocket.setMaxWaitBetweenReconnectionRetries(5 * 1000); // 5000ms = 5s
|
||||||
uint32_t m = webSocket.getMaxWaitBetweenReconnectionRetries();
|
uint32_t m = webSocket.getMaxWaitBetweenReconnectionRetries();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ namespace ix
|
|||||||
int port = _port;
|
int port = _port;
|
||||||
std::string hostname(_hostname);
|
std::string hostname(_hostname);
|
||||||
|
|
||||||
// We make the background thread doing the work a shared pointer
|
// We make the background thread doing the work a shared pointer
|
||||||
// instead of a member variable, because it can keep running when
|
// instead of a member variable, because it can keep running when
|
||||||
// this object goes out of scope, in case of cancellation
|
// this object goes out of scope, in case of cancellation
|
||||||
auto t = std::make_shared<std::thread>(&DNSLookup::run, this, self, hostname, port);
|
auto t = std::make_shared<std::thread>(&DNSLookup::run, this, self, hostname, port);
|
||||||
|
@ -80,7 +80,7 @@ namespace ix
|
|||||||
int ret = select(maxfd + 1, &readfds, &writefds, &errorfds,
|
int ret = select(maxfd + 1, &readfds, &writefds, &errorfds,
|
||||||
timeout != -1 ? &tv : NULL);
|
timeout != -1 ? &tv : NULL);
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@ namespace ix
|
|||||||
// which crash in FD_SET as they are larger than FD_SETSIZE.
|
// which crash in FD_SET as they are larger than FD_SETSIZE.
|
||||||
// Switching to ::poll does fix that.
|
// Switching to ::poll does fix that.
|
||||||
//
|
//
|
||||||
// However poll isn't as portable as select and has bugs on Windows, so we should write a
|
// However poll isn't as portable as select and has bugs on Windows, so we should write a
|
||||||
// shim to fallback to select on those platforms.
|
// shim to fallback to select on those platforms.
|
||||||
// See https://github.com/mpv-player/mpv/pull/5203/files for such a select wrapper.
|
// See https://github.com/mpv-player/mpv/pull/5203/files for such a select wrapper.
|
||||||
//
|
//
|
||||||
|
4
makefile
4
makefile
@ -47,9 +47,9 @@ trail:
|
|||||||
sh third_party/remote_trailing_whitespaces.sh
|
sh third_party/remote_trailing_whitespaces.sh
|
||||||
|
|
||||||
format:
|
format:
|
||||||
find test ixwebsocket ws -name '*.cpp' -o -name '*.h' -exec clang-format -i {} \;
|
clang-format -i `find test ixwebsocket ws -name '*.cpp' -o -name '*.h'`
|
||||||
|
|
||||||
# That target is used to start a node server, but isn't required as we have
|
# That target is used to start a node server, but isn't required as we have
|
||||||
# a builtin C++ server started in the unittest now
|
# a builtin C++ server started in the unittest now
|
||||||
test_server:
|
test_server:
|
||||||
(cd test && npm i ws && node broadcast-server.js)
|
(cd test && npm i ws && node broadcast-server.js)
|
||||||
|
@ -135,12 +135,12 @@ namespace
|
|||||||
if (!msg.isMember("user")) return;
|
if (!msg.isMember("user")) return;
|
||||||
if (!msg.isMember("text")) return;
|
if (!msg.isMember("text")) return;
|
||||||
if (!msg.isMember("session")) return;
|
if (!msg.isMember("session")) return;
|
||||||
|
|
||||||
std::string msg_user = msg["user"].asString();
|
std::string msg_user = msg["user"].asString();
|
||||||
std::string msg_text = msg["text"].asString();
|
std::string msg_text = msg["text"].asString();
|
||||||
std::string msg_session = msg["session"].asString();
|
std::string msg_session = msg["session"].asString();
|
||||||
|
|
||||||
// We are not interested in messages
|
// We are not interested in messages
|
||||||
// from a different session.
|
// from a different session.
|
||||||
if (msg_session != _session) return;
|
if (msg_session != _session) return;
|
||||||
|
|
||||||
@ -150,7 +150,7 @@ namespace
|
|||||||
_receivedQueue.push(msg);
|
_receivedQueue.push(msg);
|
||||||
|
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss << std::endl
|
ss << std::endl
|
||||||
<< msg_user << " > " << msg_text
|
<< msg_user << " > " << msg_text
|
||||||
<< std::endl
|
<< std::endl
|
||||||
<< _user << " > ";
|
<< _user << " > ";
|
||||||
@ -246,7 +246,7 @@ namespace
|
|||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss << "Sending msg [" << text << "]";
|
ss << "Sending msg [" << text << "]";
|
||||||
log(ss.str());
|
log(ss.str());
|
||||||
|
|
||||||
Json::Value channels;
|
Json::Value channels;
|
||||||
channels.append(channel);
|
channels.append(channel);
|
||||||
_conn.publish(channels, msg);
|
_conn.publish(channels, msg);
|
||||||
@ -260,7 +260,7 @@ namespace
|
|||||||
|
|
||||||
ix::msleep(50);
|
ix::msleep(50);
|
||||||
_conn.disconnect();
|
_conn.disconnect();
|
||||||
|
|
||||||
_conn.setEventCallback([]
|
_conn.setEventCallback([]
|
||||||
(ix::CobraConnectionEventType eventType,
|
(ix::CobraConnectionEventType eventType,
|
||||||
const std::string& errMsg,
|
const std::string& errMsg,
|
||||||
@ -305,7 +305,7 @@ TEST_CASE("Cobra_chat", "[cobra_chat]")
|
|||||||
{
|
{
|
||||||
if (chatA.isReady() && chatB.isReady()) break;
|
if (chatA.isReady() && chatB.isReady()) break;
|
||||||
ix::msleep(10);
|
ix::msleep(10);
|
||||||
|
|
||||||
timeout -= 10;
|
timeout -= 10;
|
||||||
if (timeout <= 0)
|
if (timeout <= 0)
|
||||||
{
|
{
|
||||||
@ -329,7 +329,7 @@ TEST_CASE("Cobra_chat", "[cobra_chat]")
|
|||||||
while (chatA.hasPendingMessages() || chatB.hasPendingMessages())
|
while (chatA.hasPendingMessages() || chatB.hasPendingMessages())
|
||||||
{
|
{
|
||||||
ix::msleep(10);
|
ix::msleep(10);
|
||||||
|
|
||||||
timeout -= 10;
|
timeout -= 10;
|
||||||
if (timeout <= 0)
|
if (timeout <= 0)
|
||||||
{
|
{
|
||||||
|
@ -137,13 +137,13 @@ TEST_CASE("Cobra_Metrics_Publisher", "[cobra]")
|
|||||||
std::thread bgThread(&startSubscriber, endpoint);
|
std::thread bgThread(&startSubscriber, endpoint);
|
||||||
|
|
||||||
int timeout = 10 * 1000; // 10s
|
int timeout = 10 * 1000; // 10s
|
||||||
|
|
||||||
// Wait until the subscriber is ready (authenticated + subscription successful)
|
// Wait until the subscriber is ready (authenticated + subscription successful)
|
||||||
while (!gSubscriberConnectedAndSubscribed)
|
while (!gSubscriberConnectedAndSubscribed)
|
||||||
{
|
{
|
||||||
std::chrono::duration<double, std::milli> duration(10);
|
std::chrono::duration<double, std::milli> duration(10);
|
||||||
std::this_thread::sleep_for(duration);
|
std::this_thread::sleep_for(duration);
|
||||||
|
|
||||||
timeout -= 10;
|
timeout -= 10;
|
||||||
if (timeout <= 0)
|
if (timeout <= 0)
|
||||||
{
|
{
|
||||||
|
@ -23,7 +23,6 @@ namespace ix
|
|||||||
|
|
||||||
int getAnyFreePort()
|
int getAnyFreePort()
|
||||||
{
|
{
|
||||||
int defaultPort = 8090;
|
|
||||||
int sockfd;
|
int sockfd;
|
||||||
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
|
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
|
||||||
{
|
{
|
||||||
@ -89,5 +88,3 @@ namespace ix
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
} // namespace ix
|
} // namespace ix
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,7 +28,6 @@ namespace
|
|||||||
void stop();
|
void stop();
|
||||||
void stop(uint16_t code, const std::string& reason);
|
void stop(uint16_t code, const std::string& reason);
|
||||||
bool isReady() const;
|
bool isReady() const;
|
||||||
void sendMessage(const std::string& text);
|
|
||||||
|
|
||||||
uint16_t getCloseCode();
|
uint16_t getCloseCode();
|
||||||
const std::string& getCloseReason();
|
const std::string& getCloseReason();
|
||||||
@ -171,11 +170,6 @@ namespace
|
|||||||
_webSocket.start();
|
_webSocket.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebSocketClient::sendMessage(const std::string& text)
|
|
||||||
{
|
|
||||||
_webSocket.send(text);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool startServer(ix::WebSocketServer& server,
|
bool startServer(ix::WebSocketServer& server,
|
||||||
uint16_t& receivedCloseCode,
|
uint16_t& receivedCloseCode,
|
||||||
std::string& receivedCloseReason,
|
std::string& receivedCloseReason,
|
||||||
|
@ -112,6 +112,8 @@ TEST_CASE("Websocket_server", "[websocket_server]")
|
|||||||
|
|
||||||
auto lineResult = socket->readLine(isCancellationRequested);
|
auto lineResult = socket->readLine(isCancellationRequested);
|
||||||
auto lineValid = lineResult.first;
|
auto lineValid = lineResult.first;
|
||||||
|
REQUIRE(lineValid);
|
||||||
|
|
||||||
auto line = lineResult.second;
|
auto line = lineResult.second;
|
||||||
|
|
||||||
int status = -1;
|
int status = -1;
|
||||||
@ -149,6 +151,8 @@ TEST_CASE("Websocket_server", "[websocket_server]")
|
|||||||
|
|
||||||
auto lineResult = socket->readLine(isCancellationRequested);
|
auto lineResult = socket->readLine(isCancellationRequested);
|
||||||
auto lineValid = lineResult.first;
|
auto lineValid = lineResult.first;
|
||||||
|
REQUIRE(lineValid);
|
||||||
|
|
||||||
auto line = lineResult.second;
|
auto line = lineResult.second;
|
||||||
|
|
||||||
int status = -1;
|
int status = -1;
|
||||||
@ -190,6 +194,8 @@ TEST_CASE("Websocket_server", "[websocket_server]")
|
|||||||
|
|
||||||
auto lineResult = socket->readLine(isCancellationRequested);
|
auto lineResult = socket->readLine(isCancellationRequested);
|
||||||
auto lineValid = lineResult.first;
|
auto lineValid = lineResult.first;
|
||||||
|
REQUIRE(lineValid);
|
||||||
|
|
||||||
auto line = lineResult.second;
|
auto line = lineResult.second;
|
||||||
|
|
||||||
int status = -1;
|
int status = -1;
|
||||||
|
14
third_party/jsoncpp/json/json-forwards.h
vendored
14
third_party/jsoncpp/json/json-forwards.h
vendored
@ -7,28 +7,28 @@
|
|||||||
// //////////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The JsonCpp library's source code, including accompanying documentation,
|
The JsonCpp library's source code, including accompanying documentation,
|
||||||
tests and demonstration applications, are licensed under the following
|
tests and demonstration applications, are licensed under the following
|
||||||
conditions...
|
conditions...
|
||||||
|
|
||||||
The author (Baptiste Lepilleur) explicitly disclaims copyright in all
|
The author (Baptiste Lepilleur) explicitly disclaims copyright in all
|
||||||
jurisdictions which recognize such a disclaimer. In such jurisdictions,
|
jurisdictions which recognize such a disclaimer. In such jurisdictions,
|
||||||
this software is released into the Public Domain.
|
this software is released into the Public Domain.
|
||||||
|
|
||||||
In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
|
In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
|
||||||
2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
|
2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
|
||||||
released under the terms of the MIT License (see below).
|
released under the terms of the MIT License (see below).
|
||||||
|
|
||||||
In jurisdictions which recognize Public Domain property, the user of this
|
In jurisdictions which recognize Public Domain property, the user of this
|
||||||
software may choose to accept it either as 1) Public Domain, 2) under the
|
software may choose to accept it either as 1) Public Domain, 2) under the
|
||||||
conditions of the MIT License (see below), or 3) under the terms of dual
|
conditions of the MIT License (see below), or 3) under the terms of dual
|
||||||
Public Domain/MIT License conditions described here, as they choose.
|
Public Domain/MIT License conditions described here, as they choose.
|
||||||
|
|
||||||
The MIT License is about as close to Public Domain as a license can get, and is
|
The MIT License is about as close to Public Domain as a license can get, and is
|
||||||
described in clear, concise terms at:
|
described in clear, concise terms at:
|
||||||
|
|
||||||
http://en.wikipedia.org/wiki/MIT_License
|
http://en.wikipedia.org/wiki/MIT_License
|
||||||
|
|
||||||
The full text of the MIT License follows:
|
The full text of the MIT License follows:
|
||||||
|
|
||||||
========================================================================
|
========================================================================
|
||||||
|
22
third_party/jsoncpp/json/json.h
vendored
22
third_party/jsoncpp/json/json.h
vendored
@ -6,28 +6,28 @@
|
|||||||
// //////////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The JsonCpp library's source code, including accompanying documentation,
|
The JsonCpp library's source code, including accompanying documentation,
|
||||||
tests and demonstration applications, are licensed under the following
|
tests and demonstration applications, are licensed under the following
|
||||||
conditions...
|
conditions...
|
||||||
|
|
||||||
The author (Baptiste Lepilleur) explicitly disclaims copyright in all
|
The author (Baptiste Lepilleur) explicitly disclaims copyright in all
|
||||||
jurisdictions which recognize such a disclaimer. In such jurisdictions,
|
jurisdictions which recognize such a disclaimer. In such jurisdictions,
|
||||||
this software is released into the Public Domain.
|
this software is released into the Public Domain.
|
||||||
|
|
||||||
In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
|
In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
|
||||||
2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
|
2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
|
||||||
released under the terms of the MIT License (see below).
|
released under the terms of the MIT License (see below).
|
||||||
|
|
||||||
In jurisdictions which recognize Public Domain property, the user of this
|
In jurisdictions which recognize Public Domain property, the user of this
|
||||||
software may choose to accept it either as 1) Public Domain, 2) under the
|
software may choose to accept it either as 1) Public Domain, 2) under the
|
||||||
conditions of the MIT License (see below), or 3) under the terms of dual
|
conditions of the MIT License (see below), or 3) under the terms of dual
|
||||||
Public Domain/MIT License conditions described here, as they choose.
|
Public Domain/MIT License conditions described here, as they choose.
|
||||||
|
|
||||||
The MIT License is about as close to Public Domain as a license can get, and is
|
The MIT License is about as close to Public Domain as a license can get, and is
|
||||||
described in clear, concise terms at:
|
described in clear, concise terms at:
|
||||||
|
|
||||||
http://en.wikipedia.org/wiki/MIT_License
|
http://en.wikipedia.org/wiki/MIT_License
|
||||||
|
|
||||||
The full text of the MIT License follows:
|
The full text of the MIT License follows:
|
||||||
|
|
||||||
========================================================================
|
========================================================================
|
||||||
@ -390,7 +390,7 @@ public:
|
|||||||
#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
|
#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
|
||||||
|
|
||||||
//Conditional NORETURN attribute on the throw functions would:
|
//Conditional NORETURN attribute on the throw functions would:
|
||||||
// a) suppress false positives from static code analysis
|
// a) suppress false positives from static code analysis
|
||||||
// b) possibly improve optimization opportunities.
|
// b) possibly improve optimization opportunities.
|
||||||
#if !defined(JSONCPP_NORETURN)
|
#if !defined(JSONCPP_NORETURN)
|
||||||
# if defined(_MSC_VER)
|
# if defined(_MSC_VER)
|
||||||
@ -422,7 +422,7 @@ protected:
|
|||||||
/** Exceptions which the user cannot easily avoid.
|
/** Exceptions which the user cannot easily avoid.
|
||||||
*
|
*
|
||||||
* E.g. out-of-memory (when we use malloc), stack-overflow, malicious input
|
* E.g. out-of-memory (when we use malloc), stack-overflow, malicious input
|
||||||
*
|
*
|
||||||
* \remark derived from Json::Exception
|
* \remark derived from Json::Exception
|
||||||
*/
|
*/
|
||||||
class JSON_API RuntimeError : public Exception {
|
class JSON_API RuntimeError : public Exception {
|
||||||
@ -433,7 +433,7 @@ public:
|
|||||||
/** Exceptions thrown by JSON_ASSERT/JSON_FAIL macros.
|
/** Exceptions thrown by JSON_ASSERT/JSON_FAIL macros.
|
||||||
*
|
*
|
||||||
* These are precondition-violations (user bugs) and internal errors (our bugs).
|
* These are precondition-violations (user bugs) and internal errors (our bugs).
|
||||||
*
|
*
|
||||||
* \remark derived from Json::Exception
|
* \remark derived from Json::Exception
|
||||||
*/
|
*/
|
||||||
class JSON_API LogicError : public Exception {
|
class JSON_API LogicError : public Exception {
|
||||||
@ -1502,7 +1502,7 @@ public:
|
|||||||
- `"rejectDupKeys": false or true`
|
- `"rejectDupKeys": false or true`
|
||||||
- If true, `parse()` returns false when a key is duplicated within an object.
|
- If true, `parse()` returns false when a key is duplicated within an object.
|
||||||
- `"allowSpecialFloats": false or true`
|
- `"allowSpecialFloats": false or true`
|
||||||
- If true, special float values (NaNs and infinities) are allowed
|
- If true, special float values (NaNs and infinities) are allowed
|
||||||
and their values are lossfree restorable.
|
and their values are lossfree restorable.
|
||||||
|
|
||||||
You can examine 'settings_` yourself
|
You can examine 'settings_` yourself
|
||||||
|
27
third_party/jsoncpp/jsoncpp.cpp
vendored
27
third_party/jsoncpp/jsoncpp.cpp
vendored
@ -6,28 +6,28 @@
|
|||||||
// //////////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The JsonCpp library's source code, including accompanying documentation,
|
The JsonCpp library's source code, including accompanying documentation,
|
||||||
tests and demonstration applications, are licensed under the following
|
tests and demonstration applications, are licensed under the following
|
||||||
conditions...
|
conditions...
|
||||||
|
|
||||||
The author (Baptiste Lepilleur) explicitly disclaims copyright in all
|
The author (Baptiste Lepilleur) explicitly disclaims copyright in all
|
||||||
jurisdictions which recognize such a disclaimer. In such jurisdictions,
|
jurisdictions which recognize such a disclaimer. In such jurisdictions,
|
||||||
this software is released into the Public Domain.
|
this software is released into the Public Domain.
|
||||||
|
|
||||||
In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
|
In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
|
||||||
2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
|
2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
|
||||||
released under the terms of the MIT License (see below).
|
released under the terms of the MIT License (see below).
|
||||||
|
|
||||||
In jurisdictions which recognize Public Domain property, the user of this
|
In jurisdictions which recognize Public Domain property, the user of this
|
||||||
software may choose to accept it either as 1) Public Domain, 2) under the
|
software may choose to accept it either as 1) Public Domain, 2) under the
|
||||||
conditions of the MIT License (see below), or 3) under the terms of dual
|
conditions of the MIT License (see below), or 3) under the terms of dual
|
||||||
Public Domain/MIT License conditions described here, as they choose.
|
Public Domain/MIT License conditions described here, as they choose.
|
||||||
|
|
||||||
The MIT License is about as close to Public Domain as a license can get, and is
|
The MIT License is about as close to Public Domain as a license can get, and is
|
||||||
described in clear, concise terms at:
|
described in clear, concise terms at:
|
||||||
|
|
||||||
http://en.wikipedia.org/wiki/MIT_License
|
http://en.wikipedia.org/wiki/MIT_License
|
||||||
|
|
||||||
The full text of the MIT License follows:
|
The full text of the MIT License follows:
|
||||||
|
|
||||||
========================================================================
|
========================================================================
|
||||||
@ -209,7 +209,7 @@ static inline void fixNumericLocale(char* begin, char* end) {
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#endif
|
#endif
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above
|
#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above
|
||||||
#define snprintf sprintf_s
|
#define snprintf sprintf_s
|
||||||
#elif _MSC_VER >= 1900 // VC++ 14.0 and above
|
#elif _MSC_VER >= 1900 // VC++ 14.0 and above
|
||||||
#define snprintf std::snprintf
|
#define snprintf std::snprintf
|
||||||
@ -3780,7 +3780,7 @@ Value& Path::make(Value& root) const {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above
|
#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above
|
||||||
#define snprintf sprintf_s
|
#define snprintf sprintf_s
|
||||||
#elif _MSC_VER >= 1900 // VC++ 14.0 and above
|
#elif _MSC_VER >= 1900 // VC++ 14.0 and above
|
||||||
#define snprintf std::snprintf
|
#define snprintf std::snprintf
|
||||||
@ -3793,7 +3793,7 @@ Value& Path::make(Value& root) const {
|
|||||||
#define snprintf std::snprintf
|
#define snprintf std::snprintf
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__BORLANDC__)
|
#if defined(__BORLANDC__)
|
||||||
#include <float.h>
|
#include <float.h>
|
||||||
#define isfinite _finite
|
#define isfinite _finite
|
||||||
#define snprintf _snprintf
|
#define snprintf _snprintf
|
||||||
@ -4856,7 +4856,7 @@ StreamWriter* StreamWriterBuilder::newStreamWriter() const
|
|||||||
std::string cs_str = settings_["commentStyle"].asString();
|
std::string cs_str = settings_["commentStyle"].asString();
|
||||||
bool eyc = settings_["enableYAMLCompatibility"].asBool();
|
bool eyc = settings_["enableYAMLCompatibility"].asBool();
|
||||||
bool dnp = settings_["dropNullPlaceholders"].asBool();
|
bool dnp = settings_["dropNullPlaceholders"].asBool();
|
||||||
bool usf = settings_["useSpecialFloats"].asBool();
|
bool usf = settings_["useSpecialFloats"].asBool();
|
||||||
unsigned int pre = settings_["precision"].asUInt();
|
unsigned int pre = settings_["precision"].asUInt();
|
||||||
CommentStyle::Enum cs = CommentStyle::All;
|
CommentStyle::Enum cs = CommentStyle::All;
|
||||||
if (cs_str == "All") {
|
if (cs_str == "All") {
|
||||||
@ -4945,8 +4945,3 @@ std::ostream& operator<<(std::ostream& sout, Value const& root) {
|
|||||||
// //////////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////////
|
||||||
// End of content of file: src/lib_json/json_writer.cpp
|
// End of content of file: src/lib_json/json_writer.cpp
|
||||||
// //////////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
32
third_party/mbedtls/.github/issue_template.md
vendored
32
third_party/mbedtls/.github/issue_template.md
vendored
@ -7,35 +7,35 @@ Note: This is just a template, so feel free to use/remove the unnecessary things
|
|||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
## Bug
|
## Bug
|
||||||
|
|
||||||
**OS**
|
**OS**
|
||||||
Mbed OS|linux|windows|
|
Mbed OS|linux|windows|
|
||||||
|
|
||||||
**mbed TLS build:**
|
**mbed TLS build:**
|
||||||
Version: x.x.x or git commit id
|
Version: x.x.x or git commit id
|
||||||
OS version: x.x.x
|
OS version: x.x.x
|
||||||
Configuration: please attach config.h file where possible
|
Configuration: please attach config.h file where possible
|
||||||
Compiler and options (if you used a pre-built binary, please indicate how you obtained it):
|
Compiler and options (if you used a pre-built binary, please indicate how you obtained it):
|
||||||
Additional environment information:
|
Additional environment information:
|
||||||
|
|
||||||
**Peer device TLS stack and version**
|
**Peer device TLS stack and version**
|
||||||
OpenSSL|GnuTls|Chrome|NSS(Firefox)|SecureChannel (IIS/Internet Explorer/Edge)|Other
|
OpenSSL|GnuTls|Chrome|NSS(Firefox)|SecureChannel (IIS/Internet Explorer/Edge)|Other
|
||||||
Version:
|
Version:
|
||||||
|
|
||||||
**Expected behavior**
|
**Expected behavior**
|
||||||
|
|
||||||
**Actual behavior**
|
**Actual behavior**
|
||||||
|
|
||||||
**Steps to reproduce**
|
**Steps to reproduce**
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
## Enhancement\Feature Request
|
## Enhancement\Feature Request
|
||||||
|
|
||||||
**Justification - why does the library need this feature?**
|
**Justification - why does the library need this feature?**
|
||||||
|
|
||||||
**Suggested enhancement**
|
**Suggested enhancement**
|
||||||
|
|
||||||
-----------------------------------------------------------------
|
-----------------------------------------------------------------
|
||||||
|
|
||||||
## Question
|
## Question
|
||||||
|
|
||||||
**Please first check for answers in the [Mbed TLS knowledge Base](https://tls.mbed.org/kb), and preferably file an issue in the [Mbed TLS support forum](https://forums.mbed.com/c/mbed-tls)**
|
**Please first check for answers in the [Mbed TLS knowledge Base](https://tls.mbed.org/kb), and preferably file an issue in the [Mbed TLS support forum](https://forums.mbed.com/c/mbed-tls)**
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Notes:
|
Notes:
|
||||||
* Pull requests cannot be accepted until:
|
* Pull requests cannot be accepted until:
|
||||||
- The submitter has [accepted the online agreement here with a click through](https://developer.mbed.org/contributor_agreement/)
|
- The submitter has [accepted the online agreement here with a click through](https://developer.mbed.org/contributor_agreement/)
|
||||||
or for companies or those that do not wish to create an mbed account, a slightly different agreement can be found [here](https://www.mbed.com/en/about-mbed/contributor-license-agreements/)
|
or for companies or those that do not wish to create an mbed account, a slightly different agreement can be found [here](https://www.mbed.com/en/about-mbed/contributor-license-agreements/)
|
||||||
- The PR follows the [mbed TLS coding standards](https://tls.mbed.org/kb/development/mbedtls-coding-standards)
|
- The PR follows the [mbed TLS coding standards](https://tls.mbed.org/kb/development/mbedtls-coding-standards)
|
||||||
* This is just a template, so feel free to use/remove the unnecessary things
|
* This is just a template, so feel free to use/remove the unnecessary things
|
||||||
@ -17,7 +17,7 @@ Changes do not have to be backported if:
|
|||||||
- This PR is a new feature\enhancement
|
- This PR is a new feature\enhancement
|
||||||
- This PR contains changes in the API. If this is true, and there is a need for the fix to be backported, the fix should be handled differently in the legacy branch
|
- This PR contains changes in the API. If this is true, and there is a need for the fix to be backported, the fix should be handled differently in the legacy branch
|
||||||
|
|
||||||
Yes | NO
|
Yes | NO
|
||||||
Which branch?
|
Which branch?
|
||||||
|
|
||||||
## Migrations
|
## Migrations
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
************************************** WARNING **************************************
|
************************************** WARNING **************************************
|
||||||
|
|
||||||
The ciarcom bot parses this header automatically. Any deviation from the
|
The ciarcom bot parses this header automatically. Any deviation from the
|
||||||
template may cause the bot to automatically correct this header or may result in a
|
template may cause the bot to automatically correct this header or may result in a
|
||||||
warning message, requesting updates.
|
warning message, requesting updates.
|
||||||
|
|
||||||
Please ensure that nothing follows the Issue request type section, all
|
Please ensure that nothing follows the Issue request type section, all
|
||||||
issue details are within the Description section and no changes are made to the
|
issue details are within the Description section and no changes are made to the
|
||||||
template format (as detailed below).
|
template format (as detailed below).
|
||||||
|
|
||||||
*************************************************************************************
|
*************************************************************************************
|
||||||
@ -41,4 +41,3 @@
|
|||||||
[ ] Question
|
[ ] Question
|
||||||
[ ] Enhancement
|
[ ] Enhancement
|
||||||
[ ] Bug
|
[ ] Bug
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ This subdirectory mostly contains sample programs that illustrate specific featu
|
|||||||
|
|
||||||
## Symmetric cryptography (AES) examples
|
## Symmetric cryptography (AES) examples
|
||||||
|
|
||||||
* [`aes/aescrypt2.c`](aes/aescrypt2.c): file encryption and authentication with a key derived from a low-entropy secret, demonstrating the low-level AES interface, the digest interface and HMAC.
|
* [`aes/aescrypt2.c`](aes/aescrypt2.c): file encryption and authentication with a key derived from a low-entropy secret, demonstrating the low-level AES interface, the digest interface and HMAC.
|
||||||
Warning: this program illustrates how to use low-level functions in the library. It should not be taken as an example of how to build a secure encryption mechanism. To derive a key from a low-entropy secret such as a password, use a standard key stretching mechanism such as PBKDF2 (provided by the `pkcs5` module). To encrypt and authenticate data, use a standard mode such as GCM or CCM (both available as library module).
|
Warning: this program illustrates how to use low-level functions in the library. It should not be taken as an example of how to build a secure encryption mechanism. To derive a key from a low-entropy secret such as a password, use a standard key stretching mechanism such as PBKDF2 (provided by the `pkcs5` module). To encrypt and authenticate data, use a standard mode such as GCM or CCM (both available as library module).
|
||||||
|
|
||||||
* [`aes/crypt_and_hash.c`](aes/crypt_and_hash.c): file encryption and authentication, demonstrating the generic cipher interface and the generic hash interface.
|
* [`aes/crypt_and_hash.c`](aes/crypt_and_hash.c): file encryption and authentication, demonstrating the generic cipher interface and the generic hash interface.
|
||||||
@ -54,7 +54,7 @@ This subdirectory mostly contains sample programs that illustrate specific featu
|
|||||||
|
|
||||||
## Random number generator (RNG) examples
|
## Random number generator (RNG) examples
|
||||||
|
|
||||||
* [`random/gen_entropy.c`](random/gen_entropy.c): shows how to use the default entropy sources to generate random data.
|
* [`random/gen_entropy.c`](random/gen_entropy.c): shows how to use the default entropy sources to generate random data.
|
||||||
Note: most applications should only use the entropy generator to seed a cryptographic pseudorandom generator, as illustrated by `random/gen_random_ctr_drbg.c`.
|
Note: most applications should only use the entropy generator to seed a cryptographic pseudorandom generator, as illustrated by `random/gen_random_ctr_drbg.c`.
|
||||||
|
|
||||||
* [`random/gen_random_ctr_drbg.c`](random/gen_random_ctr_drbg.c): shows how to use the default entropy sources to seed a pseudorandom generator, and how to use the resulting random generator to generate random data.
|
* [`random/gen_random_ctr_drbg.c`](random/gen_random_ctr_drbg.c): shows how to use the default entropy sources to seed a pseudorandom generator, and how to use the resulting random generator to generate random data.
|
||||||
|
@ -8,7 +8,7 @@ The mbed TLS git hooks are located in `<mbed TLS root>/tests/git-scripts` direct
|
|||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
Execute the following command to create a link on linux from the mbed TLS `.git/hooks` directory:
|
Execute the following command to create a link on linux from the mbed TLS `.git/hooks` directory:
|
||||||
`ln -s ../../tests/git-scripts/pre-push.sh pre-push`
|
`ln -s ../../tests/git-scripts/pre-push.sh pre-push`
|
||||||
|
|
||||||
**Note: Currently the mbed TLS git hooks work only on a GNU platform. If using a non-GNU platform, don't enable these hooks!**
|
**Note: Currently the mbed TLS git hooks work only on a GNU platform. If using a non-GNU platform, don't enable these hooks!**
|
||||||
|
5
third_party/mbedtls/programs/README.md
vendored
5
third_party/mbedtls/programs/README.md
vendored
@ -5,7 +5,7 @@ This subdirectory mostly contains sample programs that illustrate specific featu
|
|||||||
|
|
||||||
## Symmetric cryptography (AES) examples
|
## Symmetric cryptography (AES) examples
|
||||||
|
|
||||||
* [`aes/aescrypt2.c`](aes/aescrypt2.c): file encryption and authentication with a key derived from a low-entropy secret, demonstrating the low-level AES interface, the digest interface and HMAC.
|
* [`aes/aescrypt2.c`](aes/aescrypt2.c): file encryption and authentication with a key derived from a low-entropy secret, demonstrating the low-level AES interface, the digest interface and HMAC.
|
||||||
Warning: this program illustrates how to use low-level functions in the library. It should not be taken as an example of how to build a secure encryption mechanism. To derive a key from a low-entropy secret such as a password, use a standard key stretching mechanism such as PBKDF2 (provided by the `pkcs5` module). To encrypt and authenticate data, use a standard mode such as GCM or CCM (both available as library module).
|
Warning: this program illustrates how to use low-level functions in the library. It should not be taken as an example of how to build a secure encryption mechanism. To derive a key from a low-entropy secret such as a password, use a standard key stretching mechanism such as PBKDF2 (provided by the `pkcs5` module). To encrypt and authenticate data, use a standard mode such as GCM or CCM (both available as library module).
|
||||||
|
|
||||||
* [`aes/crypt_and_hash.c`](aes/crypt_and_hash.c): file encryption and authentication, demonstrating the generic cipher interface and the generic hash interface.
|
* [`aes/crypt_and_hash.c`](aes/crypt_and_hash.c): file encryption and authentication, demonstrating the generic cipher interface and the generic hash interface.
|
||||||
@ -56,7 +56,7 @@ This subdirectory mostly contains sample programs that illustrate specific featu
|
|||||||
|
|
||||||
## Random number generator (RNG) examples
|
## Random number generator (RNG) examples
|
||||||
|
|
||||||
* [`random/gen_entropy.c`](random/gen_entropy.c): shows how to use the default entropy sources to generate random data.
|
* [`random/gen_entropy.c`](random/gen_entropy.c): shows how to use the default entropy sources to generate random data.
|
||||||
Note: most applications should only use the entropy generator to seed a cryptographic pseudorandom generator, as illustrated by `random/gen_random_ctr_drbg.c`.
|
Note: most applications should only use the entropy generator to seed a cryptographic pseudorandom generator, as illustrated by `random/gen_random_ctr_drbg.c`.
|
||||||
|
|
||||||
* [`random/gen_random_ctr_drbg.c`](random/gen_random_ctr_drbg.c): shows how to use the default entropy sources to seed a pseudorandom generator, and how to use the resulting random generator to generate random data.
|
* [`random/gen_random_ctr_drbg.c`](random/gen_random_ctr_drbg.c): shows how to use the default entropy sources to seed a pseudorandom generator, and how to use the resulting random generator to generate random data.
|
||||||
@ -120,4 +120,3 @@ In addition to providing options for testing client-side features, the `ssl_clie
|
|||||||
* [`x509/crl_app.c`](x509/crl_app.c): loads and dumps a certificate revocation list (CRL).
|
* [`x509/crl_app.c`](x509/crl_app.c): loads and dumps a certificate revocation list (CRL).
|
||||||
|
|
||||||
* [`x509/req_app.c`](x509/req_app.c): loads and dumps a certificate signing request (CSR).
|
* [`x509/req_app.c`](x509/req_app.c): loads and dumps a certificate signing request (CSR).
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ The mbed TLS git hooks are located in `<mbed TLS root>/tests/git-scripts` direct
|
|||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
Execute the following command to create a link on linux from the mbed TLS `.git/hooks` directory:
|
Execute the following command to create a link on linux from the mbed TLS `.git/hooks` directory:
|
||||||
`ln -s ../../tests/git-scripts/pre-push.sh pre-push`
|
`ln -s ../../tests/git-scripts/pre-push.sh pre-push`
|
||||||
|
|
||||||
**Note: Currently the mbed TLS git hooks work only on a GNU platform. If using a non-GNU platform, don't enable these hooks!**
|
**Note: Currently the mbed TLS git hooks work only on a GNU platform. If using a non-GNU platform, don't enable these hooks!**
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
//
|
//
|
||||||
// 1. First you need to generate a config file in a config folder,
|
// 1. First you need to generate a config file in a config folder,
|
||||||
// which can use a white list of test to execute (with globbing),
|
// which can use a white list of test to execute (with globbing),
|
||||||
// or a black list of tests to ignore
|
// or a black list of tests to ignore
|
||||||
//
|
//
|
||||||
// config/fuzzingserver.json
|
// config/fuzzingserver.json
|
||||||
// {
|
// {
|
||||||
// "url": "ws://127.0.0.1:9001",
|
// "url": "ws://127.0.0.1:9001",
|
||||||
// "outdir": "./reports/clients",
|
// "outdir": "./reports/clients",
|
||||||
@ -18,15 +18,10 @@
|
|||||||
// ],
|
// ],
|
||||||
// "exclude-agent-cases": {}
|
// "exclude-agent-cases": {}
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// 2 Run the test server (using docker)
|
// 2 Run the test server (using docker)
|
||||||
// docker run -it --rm \
|
// docker run -it --rm -v "${PWD}/config:/config" -v "${PWD}/reports:/reports" -p 9001:9001 --name fuzzingserver crossbario/autobahn-testsuite
|
||||||
// -v "${PWD}/config:/config" \
|
|
||||||
// -v "${PWD}/reports:/reports" \
|
|
||||||
// -p 9001:9001 \
|
|
||||||
// --name fuzzingserver \
|
|
||||||
// crossbario/autobahn-testsuite
|
|
||||||
//
|
//
|
||||||
// 3. Run this command
|
// 3. Run this command
|
||||||
// ws autobahn -q --url ws://localhost:9001
|
// ws autobahn -q --url ws://localhost:9001
|
||||||
@ -315,4 +310,3 @@ namespace ix
|
|||||||
return generateReport(url) ? 0 : 1;
|
return generateReport(url) ? 0 : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ namespace ix
|
|||||||
// Display incoming messages
|
// Display incoming messages
|
||||||
std::atomic<int> msgPerSeconds(0);
|
std::atomic<int> msgPerSeconds(0);
|
||||||
std::atomic<int> msgCount(0);
|
std::atomic<int> msgCount(0);
|
||||||
|
|
||||||
auto timer = [&msgPerSeconds, &msgCount]
|
auto timer = [&msgPerSeconds, &msgCount]
|
||||||
{
|
{
|
||||||
while (true)
|
while (true)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user