From ab0b336a656d168d132f685ead24c0c18df4a612 Mon Sep 17 00:00:00 2001 From: Ben Summers Date: Mon, 13 Feb 2006 13:35:51 +0000 Subject: Bandwidth usage logging patch from Pascal Lalonde , with minor change to exception handling --- lib/server/SocketStream.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'lib/server/SocketStream.cpp') diff --git a/lib/server/SocketStream.cpp b/lib/server/SocketStream.cpp index 2c704b8b..aa3825bf 100644 --- a/lib/server/SocketStream.cpp +++ b/lib/server/SocketStream.cpp @@ -38,7 +38,9 @@ SocketStream::SocketStream() : mSocketHandle(-1), mReadClosed(false), - mWriteClosed(false) + mWriteClosed(false), + mBytesRead(0), + mBytesWritten(0) { } @@ -53,7 +55,9 @@ SocketStream::SocketStream() SocketStream::SocketStream(int socket) : mSocketHandle(socket), mReadClosed(false), - mWriteClosed(false) + mWriteClosed(false), + mBytesRead(0), + mBytesWritten(0) { if(socket < 0) { @@ -72,7 +76,9 @@ SocketStream::SocketStream(int socket) SocketStream::SocketStream(const SocketStream &rToCopy) : mSocketHandle(::dup(rToCopy.mSocketHandle)), mReadClosed(rToCopy.mReadClosed), - mWriteClosed(rToCopy.mWriteClosed) + mWriteClosed(rToCopy.mWriteClosed), + mBytesRead(rToCopy.mBytesRead), + mBytesWritten(rToCopy.mBytesWritten) { if(rToCopy.mSocketHandle < 0) @@ -114,6 +120,7 @@ void SocketStream::Attach(int socket) if(mSocketHandle != -1) {THROW_EXCEPTION(ServerException, SocketAlreadyOpen)} mSocketHandle = socket; + ResetCounters(); } @@ -154,6 +161,7 @@ void SocketStream::Open(int Type, const char *Name, int Port) mSocketHandle = -1; THROW_EXCEPTION(ConnectionException, Conn_SocketConnectError) } + ResetCounters(); } // -------------------------------------------------------------------------- @@ -225,6 +233,7 @@ int SocketStream::Read(void *pBuffer, int NBytes, int Timeout) mReadClosed = true; } + mBytesRead += r; return r; } @@ -266,6 +275,8 @@ void SocketStream::Write(const void *pBuffer, int NBytes) bytesLeft -= sent; // Move buffer pointer buffer += sent; + + mBytesWritten += sent; // Need to wait until it can send again? if(bytesLeft > 0) -- cgit v1.2.3