summaryrefslogtreecommitdiff
path: root/bin/bbackupd/BackupClientContext.h
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2014-03-01 10:42:48 +0000
committerChris Wilson <chris+github@qwirx.com>2014-03-01 10:42:48 +0000
commit2b6ac135fa7071290289741c9e35747bb9f1012f (patch)
tree037507c43ac097fb2cd5850bbd57f25a553e20e8 /bin/bbackupd/BackupClientContext.h
parent2ef0a9aa8cd3cd4dcfa0cd9d2014051832c52e8a (diff)
Make Protocol take control of the socket object passed in.
We pass a std::auto_ptr<SocketStream> to every Protocol subclass when we construct it, and it takes control of this object. This reduces the risk of: * accidentally reusing the same SocketStream for multiple Protocols (it happened to me in testbackupstore); * holding onto a reference to the SocketStream; * allowing a locally-scoped SocketStream to go out of scope and be released while still being referenced by a live Protocol.
Diffstat (limited to 'bin/bbackupd/BackupClientContext.h')
-rw-r--r--bin/bbackupd/BackupClientContext.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/bin/bbackupd/BackupClientContext.h b/bin/bbackupd/BackupClientContext.h
index 1fcc6ede..7e081e2d 100644
--- a/bin/bbackupd/BackupClientContext.h
+++ b/bin/bbackupd/BackupClientContext.h
@@ -214,7 +214,7 @@ public:
{
if(mTcpNiceMode)
{
- mapNice->SetEnabled(enabled);
+ mpNice->SetEnabled(enabled);
}
}
@@ -226,8 +226,6 @@ private:
std::string mHostname;
int mPort;
uint32_t mAccountNumber;
- std::auto_ptr<SocketStream> mapSocket;
- std::auto_ptr<NiceSocketStream> mapNice;
std::auto_ptr<BackupProtocolClient> mapConnection;
bool mExtendedLogging;
bool mExtendedLogToFile;
@@ -246,6 +244,7 @@ private:
int mMaximumDiffingTime;
ProgressNotifier &mrProgressNotifier;
bool mTcpNiceMode;
+ NiceSocketStream *mpNice;
};
#endif // BACKUPCLIENTCONTEXT__H