From d436232800cce7037bc0dea2f09511ff6c50dcc9 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 17 Jul 2013 06:37:06 -0700 Subject: [PATCH] correctly log b64 dump of return address at record and use sites --- xwords4/relay/devmgr.cpp | 12 +++++++++++- xwords4/relay/xwrelay.cpp | 10 +++++----- xwords4/relay/xwrelay_priv.h | 1 + 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/xwords4/relay/devmgr.cpp b/xwords4/relay/devmgr.cpp index 724222f65..89eec0d1f 100644 --- a/xwords4/relay/devmgr.cpp +++ b/xwords4/relay/devmgr.cpp @@ -18,6 +18,8 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include + #include "devmgr.h" #include "mlock.h" @@ -35,7 +37,15 @@ DevMgr::Get() void DevMgr::Remember( DevIDRelay devid, const AddrInfo::AddrUnion* saddr ) { - logf( XW_LOGINFO, "%s(devid=%d)", __func__, devid ); + assert( DBMgr::DEVID_NONE != devid ); + + XW_LogLevel level = XW_LOGINFO; + if ( willLog( level ) ) { + gchar* b64 = g_base64_encode( (unsigned char*)&saddr->addr, sizeof(saddr->addr) ); + logf( level, "%s(devid=%d, saddr='%s')", __func__, devid, b64 ); + g_free( b64 ); + } + time_t now = time( NULL ); UDPAddrRec rec( saddr, now ); diff --git a/xwords4/relay/xwrelay.cpp b/xwords4/relay/xwrelay.cpp index 7112d29a4..d7e8d375e 100644 --- a/xwords4/relay/xwrelay.cpp +++ b/xwords4/relay/xwrelay.cpp @@ -91,7 +91,7 @@ static int s_nSpawns = 0; static int g_maxsocks = -1; static int g_udpsock = -1; -static bool +bool willLog( XW_LogLevel level ) { RelayConfigs* rc = RelayConfigs::GetConfigs(); @@ -419,7 +419,7 @@ denyConnection( const AddrInfo* addr, XWREASON err ) } static ssize_t -send_via_udp( int socket, const struct sockaddr *dest_addr, +send_via_udp( int socket, const struct sockaddr* dest_addr, XWRelayReg cmd, ... ) { uint32_t packetNum = UDPAckTrack::nextPacketID( cmd ); @@ -462,13 +462,13 @@ send_via_udp( int socket, const struct sockaddr *dest_addr, XW_LogLevel level = XW_LOGINFO; if ( willLog( level ) ) { - gchar* b64 = g_base64_encode( (unsigned char*)dest_addr, sizeof(dest_addr) ); - logf( level, "%s()=>%d; addr=%s", __func__, nSent, b64 ); + gchar* b64 = g_base64_encode( (unsigned char*)dest_addr, sizeof(*dest_addr) ); + logf( level, "%s()=>%d; addr='%s'", __func__, nSent, b64 ); g_free( b64 ); } return nSent; -} +} // send_via_udp /* No mutex here. Caller better be ensuring no other thread can access this * socket. */ diff --git a/xwords4/relay/xwrelay_priv.h b/xwords4/relay/xwrelay_priv.h index c8fe20909..ef9cfbeac 100644 --- a/xwords4/relay/xwrelay_priv.h +++ b/xwords4/relay/xwrelay_priv.h @@ -42,6 +42,7 @@ typedef enum { } XW_LogLevel; void logf( XW_LogLevel level, const char* format, ... ); +bool willLog( XW_LogLevel level ); void denyConnection( const AddrInfo* addr, XWREASON err ); bool send_with_length_unsafe( const AddrInfo* addr,