linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #05944
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 3024: Protect against sending an empty token in reserveSlot
------------------------------------------------------------
revno: 3024
committer: iceman50 <bdcdevel@xxxxxxxxx>
branch nick: dcplusplus
timestamp: Tue 2012-08-07 13:09:26 -0500
message:
Protect against sending an empty token in reserveSlot
modified:
dcpp/UploadManager.cpp
--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk
Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'dcpp/UploadManager.cpp'
--- dcpp/UploadManager.cpp 2012-08-07 14:49:43 +0000
+++ dcpp/UploadManager.cpp 2012-08-07 18:09:26 +0000
@@ -296,8 +296,10 @@
auto it = find_if(waitingUsers.cbegin(), waitingUsers.cend(), [&](const UserPtr& u) { return u == aUser.user; });
return (it != waitingUsers.cend()) ? it->token : Util::emptyString;
};
-
- ClientManager::getInstance()->connect(aUser, userToken());
+
+ string token;
+ if((token = userToken()) != Util::emptyString)
+ ClientManager::getInstance()->connect(aUser, token);
}
}
@@ -583,18 +585,20 @@
// TimerManagerListener
void UploadManager::on(TimerManagerListener::Second, uint64_t) noexcept {
- Lock l(cs);
- UploadList ticks;
+ {
+ Lock l(cs);
+ UploadList ticks;
- for(auto u: uploads) {
- if(u->getPos() > 0) {
- ticks.push_back(u);
- u->tick();
+ for(auto u: uploads) {
+ if(u->getPos() > 0) {
+ ticks.push_back(u);
+ u->tick();
+ }
}
+
+ if(!uploads.empty())
+ fire(UploadManagerListener::Tick(), UploadList(uploads));
}
-
- if(!uploads.empty())
- fire(UploadManagerListener::Tick(), UploadList(uploads));
notifyQueuedUsers();
}