diff options
author | Mike Buland <eichlan@xagasoft.com> | 2011-03-02 21:05:10 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2011-03-02 21:05:10 +0000 |
commit | 6d82703f1504bf39a6c6a9eed4a307aa3ca3da7a (patch) | |
tree | 192fa6d1e86285b0842b275e902aaa9d509e36ad | |
parent | 66669b2b9d392f6ae8f2c2a6acf7752bc0b6bc7e (diff) | |
download | libbu++-6d82703f1504bf39a6c6a9eed4a307aa3ca3da7a.tar.gz libbu++-6d82703f1504bf39a6c6a9eed4a307aa3ca3da7a.tar.bz2 libbu++-6d82703f1504bf39a6c6a9eed4a307aa3ca3da7a.tar.xz libbu++-6d82703f1504bf39a6c6a9eed4a307aa3ca3da7a.zip |
Corrected a memory leak in Bu::Client, and hopefully sped up transmission some,
there's one more fix I can make later to really speed up transmission, but it's
a little more delicate.
Also, Cache::Ptr objects are now camparable even when unbound.
-rw-r--r-- | src/cache.h | 4 | ||||
-rw-r--r-- | src/client.cpp | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/cache.h b/src/cache.h index 926556d..d4b1900 100644 --- a/src/cache.h +++ b/src/cache.h | |||
@@ -154,12 +154,12 @@ namespace Bu | |||
154 | 154 | ||
155 | bool operator==( const Ptr &rRhs ) const | 155 | bool operator==( const Ptr &rRhs ) const |
156 | { | 156 | { |
157 | return pData == rRhs.pData; | 157 | return pCache == rRhs.pCache && kId == rRhs.kId; |
158 | } | 158 | } |
159 | 159 | ||
160 | bool operator!=( const Ptr &rRhs ) const | 160 | bool operator!=( const Ptr &rRhs ) const |
161 | { | 161 | { |
162 | return pData != rRhs.pData; | 162 | return pCache != rRhs.pCache || kId != rRhs.kId; |
163 | } | 163 | } |
164 | 164 | ||
165 | private: | 165 | private: |
diff --git a/src/client.cpp b/src/client.cpp index 02e51de..795e09b 100644 --- a/src/client.cpp +++ b/src/client.cpp | |||
@@ -14,7 +14,7 @@ | |||
14 | #include "bu/clientlinkfactory.h" | 14 | #include "bu/clientlinkfactory.h" |
15 | 15 | ||
16 | /** Read buffer size. */ | 16 | /** Read buffer size. */ |
17 | #define RBS (1024*2) | 17 | #define RBS (1500) // 1500 is the nominal MTU for ethernet, it's a good guess |
18 | 18 | ||
19 | Bu::Client::Client( Bu::TcpSocket *pSocket, | 19 | Bu::Client::Client( Bu::TcpSocket *pSocket, |
20 | class Bu::ClientLinkFactory *pfLink ) : | 20 | class Bu::ClientLinkFactory *pfLink ) : |
@@ -82,10 +82,10 @@ void Bu::Client::processInput() | |||
82 | 82 | ||
83 | void Bu::Client::processOutput() | 83 | void Bu::Client::processOutput() |
84 | { | 84 | { |
85 | char buf[RBS]; | ||
85 | if( qbWrite.getSize() > 0 ) | 86 | if( qbWrite.getSize() > 0 ) |
86 | { | 87 | { |
87 | int nAmnt = RBS; | 88 | int nAmnt = RBS; |
88 | char *buf = new char[nAmnt]; | ||
89 | nAmnt = qbWrite.peek( buf, nAmnt ); | 89 | nAmnt = qbWrite.peek( buf, nAmnt ); |
90 | int nReal = pTopStream->write( buf, nAmnt ); | 90 | int nReal = pTopStream->write( buf, nAmnt ); |
91 | qbWrite.seek( nReal ); | 91 | qbWrite.seek( nReal ); |