fix unittest warnings + remove trailing spaces

This commit is contained in:
Benjamin Sergeant 2019-09-12 11:43:52 -07:00
parent a55d4cdb76
commit 57086e28d8
25 changed files with 87 additions and 106 deletions

View File

@ -1,6 +1,6 @@
## Hello world ## Hello world
![Alt text](https://travis-ci.org/machinezone/IXWebSocket.svg?branch=master) ![Alt text](https://travis-ci.org/machinezone/IXWebSocket.svg?branch=master)
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.

View File

@ -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.
``` ```

View File

@ -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
... ...
``` ```

View File

@ -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();
``` ```

View File

@ -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);

View File

@ -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;
} }

View File

@ -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.
// //

View File

@ -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)

View File

@ -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)
{ {

View File

@ -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)
{ {

View File

@ -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

View File

@ -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,

View File

@ -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;

View File

@ -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:
======================================================================== ========================================================================

View File

@ -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

View File

@ -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
// ////////////////////////////////////////////////////////////////////// // //////////////////////////////////////////////////////////////////////

View File

@ -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)**

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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!**

View File

@ -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).

View File

@ -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!**

View File

@ -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;
} }
} }

View File

@ -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)