diff --git a/include/fc/io/datastream.hpp b/include/fc/io/datastream.hpp index 5e54998..75a4269 100644 --- a/include/fc/io/datastream.hpp +++ b/include/fc/io/datastream.hpp @@ -7,7 +7,7 @@ namespace fc { namespace detail { - NO_RETURN void throw_datastream_range_error( const char* file, size_t len, size_t over ); + NO_RETURN void throw_datastream_range_error( const char* file, size_t len, int64_t over ); } /** diff --git a/src/io/datastream.cpp b/src/io/datastream.cpp index da38e14..cfe1104 100644 --- a/src/io/datastream.cpp +++ b/src/io/datastream.cpp @@ -1,7 +1,7 @@ #include #include -NO_RETURN void fc::detail::throw_datastream_range_error(char const* method, size_t len, size_t over) +NO_RETURN void fc::detail::throw_datastream_range_error(char const* method, size_t len, int64_t over) { FC_THROW_EXCEPTION( out_of_range_exception, "${method} datastream of length ${len} over by ${over}", ("method",fc::string(method))("len",len)("over",over) ); } diff --git a/src/network/tcp_socket.cpp b/src/network/tcp_socket.cpp index 292121b..b9fdab7 100644 --- a/src/network/tcp_socket.cpp +++ b/src/network/tcp_socket.cpp @@ -106,23 +106,23 @@ namespace fc { if (WSAIoctl(my->_sock.native(), SIO_KEEPALIVE_VALS, &keepalive_settings, sizeof(keepalive_settings), NULL, 0, &dwBytesRet, NULL, NULL) == SOCKET_ERROR) wlog("Error setting TCP keepalive values"); -#else -# if !defined(__clang__) || (__clang_major__ >= 6) +#elif !defined(__clang__) || (__clang_major__ >= 6) // This should work for modern Linuxes and for OSX >= Mountain Lion int timeout_sec = interval.count() / fc::seconds(1).count(); if (setsockopt(my->_sock.native(), IPPROTO_TCP, -# if defined( __APPLE__ ) + #if defined( __APPLE__ ) TCP_KEEPALIVE, -# else + #else TCP_KEEPIDLE, -# endif + #endif (char*)&timeout_sec, sizeof(timeout_sec)) < 0) wlog("Error setting TCP keepalive idle time"); +# if !defined(__APPLE__) || defined(TCP_KEEPINTVL) // TCP_KEEPINTVL not defined before 10.9 if (setsockopt(my->_sock.native(), IPPROTO_TCP, TCP_KEEPINTVL, (char*)&timeout_sec, sizeof(timeout_sec)) < 0) wlog("Error setting TCP keepalive interval"); -# endif -#endif +# endif // !__APPLE__ || TCP_KEEPINTVL +#endif // !WIN32 } else { diff --git a/src/rpc/json_connection.cpp b/src/rpc/json_connection.cpp index ffd05f2..4a112b4 100644 --- a/src/rpc/json_connection.cpp +++ b/src/rpc/json_connection.cpp @@ -35,7 +35,7 @@ namespace fc { namespace rpc { void send_result( variant id, variant result ) { - ilog( "send ${i} ${r}", ("i",id)("r",result) ); + ilog( "send: {\"id\": ${i}, \"result\": ${r}}", ("i",id)("r",result) ); { fc::scoped_lock lock(_write_mutex); *_out << "{\"id\":"; @@ -48,6 +48,8 @@ namespace fc { namespace rpc { } void send_error( variant id, fc::exception& e ) { + ilog( "send: {\"id\": ${i}, \"error\":{\"message\": ${what},\"code\":0,\"data\":${data}}}", + ("i",id)("what",e.what())("data", e) ); { fc::scoped_lock lock(_write_mutex); *_out << "{\"id\":";