This commit is contained in:
Tobias Oberstein
2012-03-08 15:39:48 +01:00
8 changed files with 31 additions and 20 deletions

View File

@@ -37,8 +37,8 @@ def boostlibs(libnames):
return []
else:
libs = []
prefix = 'SHLIBPREFIX' if boost_linkshared else 'LIBPREFIX'
suffix = 'SHLIBSUFFIX' if boost_linkshared else 'LIBSUFFIX'
prefix = env['SHLIBPREFIX'] if boost_linkshared else env['LIBPREFIX']
suffix = env['SHLIBSUFFIX'] if boost_linkshared else env['LIBSUFFIX']
for name in libnames:
lib = File(os.path.join(env['BOOST_LIBS'], '%sboost_%s%s' % (prefix, name, suffix)))
libs.append(lib)
@@ -66,7 +66,7 @@ else:
platform_libs = []
if env['PLATFORM'] == 'posix':
platform_libs = ['pthread', 'rt']
platform_libs = ['pthread', 'rt']
elif env['PLATFORM'].startswith('win'):
# Win/VC++ supports autolinking. nothing to do.
pass

View File

@@ -38,7 +38,6 @@ enum correctness_mode {
LENGTH = 1
};
// test class for 9.1.* and 9.2.*
class message_test : public case_handler {
public:
message_test(uint64_t message_size,
@@ -75,7 +74,7 @@ public:
m_rtts = extract_bool(cmd,"rtts");
// specific to message_test
m_message_count = extract_number<size_t>(cmd,"size");
m_message_count = extract_number<uint64_t>(cmd,"size");
m_message_size = extract_number<uint64_t>(cmd,"count");
m_timeout = extract_number<uint64_t>(cmd,"timeout");
@@ -118,7 +117,9 @@ public:
}
void on_message(connection_ptr con,websocketpp::message::data_ptr msg) {
if ((m_mode == LENGTH && msg->get_payload().size() == m_data.size()) || (m_mode == EXACT && msg->get_payload() == m_data)) {
if ((m_mode == LENGTH && msg->get_payload().size() == m_data.size()) ||
(m_mode == EXACT && msg->get_payload() == m_data))
{
m_acks++;
m_bytes += m_message_size;
mark();

View File

@@ -578,7 +578,7 @@ public:
m_write_buf.push_back(boost::asio::buffer(m_write_queue.front()->get_header()));
m_write_buf.push_back(boost::asio::buffer(m_write_queue.front()->get_payload()));
m_endpoint.alog().at(log::alevel::DEVEL) << "write header: " << to_hex(m_write_queue.front()->get_header()) << log::endl;
m_endpoint.alog().at(log::alevel::DEVEL) << "write header: " << zsutil::to_hex(m_write_queue.front()->get_header()) << log::endl;
boost::asio::async_write(
socket_type::get_socket(),

View File

@@ -27,7 +27,9 @@
#include "network_utilities.hpp"
uint64_t htonll(uint64_t src) {
uint64_t zsutil::htonll(uint64_t src) {
static int typ = TYP_INIT;
unsigned char c;
union {
@@ -48,11 +50,11 @@ uint64_t htonll(uint64_t src) {
return x.ull;
}
uint64_t ntohll(uint64_t src) {
uint64_t zsutil::ntohll(uint64_t src) {
return htonll(src);
}
std::string lookup_ws_close_status_string(uint16_t code) {
std::string zsutil::lookup_ws_close_status_string(uint16_t code) {
switch (code) {
case 1000:
return "Normal closure";
@@ -76,12 +78,14 @@ std::string lookup_ws_close_status_string(uint16_t code) {
return "Message too large";
case 1010:
return "Missing required extensions";
case 1011:
return "Internal server error";
default:
return "Unknown";
}
}
std::string to_hex(const std::string& input) {
std::string zsutil::to_hex(const std::string& input) {
std::string output;
std::string hex = "0123456789ABCDEF";

View File

@@ -35,6 +35,8 @@
// TODO: impliment stuff from here:
// http://stackoverflow.com/questions/809902/64-bit-ntohl-in-c
namespace zsutil {
#define TYP_INIT 0
#define TYP_SMLE 1
#define TYP_BIGE 2
@@ -46,4 +48,6 @@ std::string lookup_ws_close_status_string(uint16_t code);
std::string to_hex(const std::string& input);
} // namespace zsutil
#endif // NETWORK_UTILITIES_HPP

View File

@@ -76,7 +76,7 @@ void hybi_header::consume(std::istream& input) {
default:
break;
}
//std::cout << "header so far: " << to_hex(std::string(m_header,MAX_HEADER_LENGTH)) << std::endl;
//std::cout << "header so far: " << zsutil::to_hex(std::string(m_header,MAX_HEADER_LENGTH)) << std::endl;
}
uint64_t hybi_header::get_bytes_needed() const {
return m_bytes_needed;
@@ -136,7 +136,7 @@ void hybi_header::set_payload_size(uint64_t size) {
m_header[1] |= BASIC_PAYLOAD_64BIT_CODE;
}
m_payload_size = size;
*(reinterpret_cast<uint64_t*>(&m_header[BASIC_HEADER_LENGTH])) = htonll(size);
*(reinterpret_cast<uint64_t*>(&m_header[BASIC_HEADER_LENGTH])) = zsutil::htonll(size);
} else {
throw processor::exception("set_payload_size called with value that was too large (>2^63)",processor::error::MESSAGE_TOO_BIG);
}
@@ -245,8 +245,8 @@ void hybi_header::process_extended_header() {
// reinterpret the second two bytes as a 16 bit integer in network
// byte order. Convert to host byte order and store locally.
m_payload_size = ntohs(*(
reinterpret_cast<uint16_t*>(&m_header[BASIC_HEADER_LENGTH])
));
reinterpret_cast<uint16_t*>(&m_header[BASIC_HEADER_LENGTH])
));
if (m_payload_size < s) {
std::stringstream err;
@@ -257,9 +257,9 @@ void hybi_header::process_extended_header() {
} else if (s == BASIC_PAYLOAD_64BIT_CODE) {
// reinterpret the second eight bytes as a 64 bit integer in
// network byte order. Convert to host byte order and store.
m_payload_size = ntohll(*(
reinterpret_cast<uint64_t*>(&m_header[BASIC_HEADER_LENGTH])
));
m_payload_size = zsutil::ntohll(*(
reinterpret_cast<uint64_t*>(&m_header[BASIC_HEADER_LENGTH])
));
if (m_payload_size <= frame::limits::PAYLOAD_SIZE_EXTENDED) {
throw processor::exception("payload length not minimally encoded",

View File

@@ -397,7 +397,7 @@ public:
*reinterpret_cast<uint16_t*>(&m_header[BASIC_HEADER_LENGTH]) = htons(s);
} else if (s <= limits::PAYLOAD_SIZE_JUMBO) {
m_header[1] = BASIC_PAYLOAD_64BIT_CODE;
*reinterpret_cast<uint64_t*>(&m_header[BASIC_HEADER_LENGTH]) = htonll(s);
*reinterpret_cast<uint64_t*>(&m_header[BASIC_HEADER_LENGTH]) = zsutil::htonll(s);
} else {
throw processor::exception("payload size limit is 63 bits",processor::error::PROTOCOL_VIOLATION);
}
@@ -498,7 +498,7 @@ public:
} else if (s == BASIC_PAYLOAD_64BIT_CODE) {
// reinterpret the second eight bytes as a 64 bit integer in
// network byte order. Convert to host byte order and store.
payload_size = ntohll(*(
payload_size = zsutil::ntohll(*(
reinterpret_cast<uint64_t*>(&m_header[BASIC_HEADER_LENGTH])
));

View File

@@ -372,6 +372,7 @@
B6E56D6F150457B8007E1707 /* wscmd.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = wscmd.hpp; path = examples/wsperf/wscmd.hpp; sourceTree = "<group>"; };
B6E56D7E150644A3007E1707 /* request.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = request.cpp; path = examples/wsperf/request.cpp; sourceTree = "<group>"; };
B6E56D7F150644A3007E1707 /* request.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = request.hpp; path = examples/wsperf/request.hpp; sourceTree = "<group>"; };
B6E56D821508EACA007E1707 /* SConstruct */ = {isa = PBXFileReference; lastKnownFileType = text; path = SConstruct; sourceTree = "<group>"; };
B6E7E7731505532E00394909 /* wsperf */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = wsperf; sourceTree = BUILT_PRODUCTS_DIR; };
B6E7E78A150553D000394909 /* libboost_chrono.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libboost_chrono.dylib; path = usr/local/lib/libboost_chrono.dylib; sourceTree = SDKROOT; };
B6FE8CE2144DE17F00B32547 /* readme.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = readme.txt; sourceTree = "<group>"; };
@@ -749,6 +750,7 @@
B6DF1CC51435ECE40029A1B1 /* libraries */,
B6138791145CA6F700ED9B19 /* Makefile */,
B6DE901314C4D875009A1591 /* readme.txt */,
B6E56D821508EACA007E1707 /* SConstruct */,
B64E12D014BDE132006F20F0 /* test */,
B6DF1C7F1434ABB70029A1B1 /* src */,
B6DF1C6A1434A7A30029A1B1 /* Products */,