From 65328399387cb6da4833e0057693174d0dad24d5 Mon Sep 17 00:00:00 2001 From: Daniel Larimer Date: Fri, 2 May 2014 14:09:29 -0400 Subject: [PATCH 1/2] fix apple build --- src/network/tcp_socket.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/network/tcp_socket.cpp b/src/network/tcp_socket.cpp index 382a938..bb4d15b 100644 --- a/src/network/tcp_socket.cpp +++ b/src/network/tcp_socket.cpp @@ -95,9 +95,12 @@ namespace fc { # endif (char*)&timeout_sec, sizeof(timeout_sec)) < 0) wlog("Error setting TCP keepalive idle time"); +#ifndef __APPLE__ // TCP_KEEPINTVL does not seem to work on 10.8.4 if (setsockopt(my->_sock.native(), IPPROTO_TCP, TCP_KEEPINTVL, (char*)&timeout_sec, sizeof(timeout_sec)) < 0) wlog("Error setting TCP keepalive interval"); +#endif // !__APPLE__ + #endif } else From b8a7531eab08af3756eb4670437484ae2e137d74 Mon Sep 17 00:00:00 2001 From: Eric Frias Date: Tue, 6 May 2014 17:20:04 -0400 Subject: [PATCH 2/2] Fix error message printed when unable to deserialize a json object, improve logging of return values and add logging of exceptional returns from json function calls. Continue my endless quest to break the mac build. --- include/fc/io/datastream.hpp | 2 +- src/io/datastream.cpp | 2 +- src/network/tcp_socket.cpp | 8 ++++---- src/rpc/json_connection.cpp | 4 +++- 4 files changed, 9 insertions(+), 7 deletions(-) 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 b6e807a..b9fdab7 100644 --- a/src/network/tcp_socket.cpp +++ b/src/network/tcp_socket.cpp @@ -110,19 +110,19 @@ namespace fc { // 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 TCP_KEEPIDLE, #endif (char*)&timeout_sec, sizeof(timeout_sec)) < 0) wlog("Error setting TCP keepalive idle time"); - #ifndef __APPLE__ // TCP_KEEPINTVL does not seem to work on 10.8.4 +# 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 // !__APPLE__ -#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\":";