Feature/ws windows (#86)
* try to build ws on window on travis 📮 * cmake invocation fixed on windows 🐝 * Can use mbedtls to calculate hmac + no openssl config option * build only windows on travis 🕢 * run msbuild 💷 * proper command to build 🕛 * some build fixes * change weird sizeof call 🐙 * warning and missing includes fixes 💮 * ifdef out statsd code on windows 🐍 * logic invertion in ifdef 👄 * bring back makefile 📜 * command line tool is built with mbedtls 🏥
This commit is contained in:
committed by
GitHub
parent
17eaa323ed
commit
fa84ade6be
@ -25,10 +25,14 @@ include_directories(ws ../third_party/statsd-client-cpp/src)
|
||||
include_directories(ws ../third_party/spdlog/include)
|
||||
include_directories(ws snake)
|
||||
|
||||
if (UNIX)
|
||||
set( STATSD_CLIENT_SOURCES ../third_party/statsd-client-cpp/src/statsd_client.cpp)
|
||||
endif()
|
||||
|
||||
add_executable(ws
|
||||
../third_party/msgpack11/msgpack11.cpp
|
||||
../third_party/jsoncpp/jsoncpp.cpp
|
||||
../third_party/statsd-client-cpp/src/statsd_client.cpp
|
||||
${STATSD_CLIENT_SOURCES}
|
||||
|
||||
ixcore/utils/IXCoreLogger.cpp
|
||||
|
||||
@ -68,7 +72,7 @@ add_executable(ws
|
||||
|
||||
target_link_libraries(ws ixwebsocket)
|
||||
|
||||
if(NOT APPLE)
|
||||
if(NOT APPLE AND NOT USE_MBED_TLS)
|
||||
find_package(OpenSSL REQUIRED)
|
||||
add_definitions(${OPENSSL_DEFINITIONS})
|
||||
message(STATUS "OpenSSL: " ${OPENSSL_VERSION})
|
||||
|
@ -22,7 +22,7 @@ namespace ix
|
||||
const std::regex dsnRegex("(http[s]?)://([^:]+):([^@]+)@([^/]+)/([0-9]+)");
|
||||
std::smatch group;
|
||||
|
||||
if (std::regex_match(dsn, group, dsnRegex) and group.size() == 6)
|
||||
if (std::regex_match(dsn, group, dsnRegex) && group.size() == 6)
|
||||
{
|
||||
_validDsn = true;
|
||||
|
||||
@ -47,8 +47,8 @@ namespace ix
|
||||
{
|
||||
std::time_t now;
|
||||
std::time(&now);
|
||||
char buf[sizeof "2011-10-08T07:07:09Z"];
|
||||
std::strftime(buf, sizeof buf, "%Y-%m-%dT%H:%M:%SZ", std::gmtime(&now));
|
||||
char buf[sizeof("2011-10-08T07:07:09Z")];
|
||||
std::strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%SZ", std::gmtime(&now));
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
@ -3,10 +3,14 @@
|
||||
* Author: Benjamin Sergeant
|
||||
* Copyright (c) 2018 Machine Zone. All rights reserved.
|
||||
*/
|
||||
|
||||
#include "IXHMac.h"
|
||||
#include "IXBase64.h"
|
||||
|
||||
#ifdef __APPLE__
|
||||
#if defined(IXWEBSOCKET_USE_MBED_TLS)
|
||||
# include <mbedtls/md.h>
|
||||
#elif defined(__APPLE__)
|
||||
# include <ixwebsocket/IXSocketMbedTLS.h>
|
||||
# include <CommonCrypto/CommonHMAC.h>
|
||||
#else
|
||||
# include <openssl/hmac.h>
|
||||
@ -19,7 +23,12 @@ namespace ix
|
||||
constexpr size_t hashSize = 16;
|
||||
unsigned char hash[hashSize];
|
||||
|
||||
#ifdef __APPLE__
|
||||
#if defined(IXWEBSOCKET_USE_MBED_TLS)
|
||||
mbedtls_md_hmac(mbedtls_md_info_from_type(MBEDTLS_MD_MD5),
|
||||
(unsigned char *) key.c_str(), key.size(),
|
||||
(unsigned char *) data.c_str(), data.size(),
|
||||
(unsigned char *) &hash);
|
||||
#elif defined(__APPLE__)
|
||||
CCHmac(kCCHmacAlgMD5,
|
||||
key.c_str(), key.size(),
|
||||
data.c_str(), data.size(),
|
||||
|
@ -7,6 +7,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
namespace ix
|
||||
{
|
||||
|
@ -17,7 +17,7 @@
|
||||
#include <sstream>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <unistd.h>
|
||||
// #include <unistd.h>
|
||||
|
||||
#include <cli11/CLI11.hpp>
|
||||
#include <spdlog/spdlog.h>
|
||||
|
@ -12,9 +12,12 @@
|
||||
#include <vector>
|
||||
#include <ixcobra/IXCobraConnection.h>
|
||||
|
||||
#include <statsd_client.h>
|
||||
#include <spdlog/spdlog.h>
|
||||
|
||||
#ifndef _WIN32
|
||||
#include <statsd_client.h>
|
||||
#endif
|
||||
|
||||
namespace ix
|
||||
{
|
||||
// fields are command line argument that can be specified multiple times
|
||||
@ -77,7 +80,11 @@ namespace ix
|
||||
// statsd client
|
||||
// test with netcat as a server: `nc -ul 8125`
|
||||
bool statsdBatch = true;
|
||||
#ifndef _WIN32
|
||||
statsd::StatsdClient statsdClient(host, port, prefix, statsdBatch);
|
||||
#else
|
||||
int statsdClient;
|
||||
#endif
|
||||
|
||||
Json::FastWriter jsonWriter;
|
||||
uint64_t msgCount = 0;
|
||||
@ -124,7 +131,9 @@ namespace ix
|
||||
|
||||
spdlog::info("{} {}{}", msgCount++, prefix, id);
|
||||
|
||||
#ifndef _WIN32
|
||||
statsdClient.count(id, 1);
|
||||
#endif
|
||||
});
|
||||
}
|
||||
else if (eventType == ix::CobraConnection_EventType_Subscribed)
|
||||
|
@ -94,7 +94,7 @@ namespace ix
|
||||
std::streamoff size = file.tellg();
|
||||
file.seekg(0, file.beg);
|
||||
|
||||
memblock.resize(size);
|
||||
memblock.resize((size_t) size);
|
||||
file.read((char*)&memblock.front(), static_cast<std::streamsize>(size));
|
||||
|
||||
return memblock;
|
||||
|
@ -23,7 +23,7 @@ namespace
|
||||
std::streamoff size = file.tellg();
|
||||
file.seekg(0, file.beg);
|
||||
|
||||
memblock.resize(size);
|
||||
memblock.resize((size_t) size);
|
||||
file.read((char*)&memblock.front(), static_cast<std::streamsize>(size));
|
||||
|
||||
return memblock;
|
||||
|
Reference in New Issue
Block a user