summaryrefslogtreecommitdiff
path: root/src/HttpInitiateConnectionCommand.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2006-10-01 11:29:14 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2006-10-01 11:29:14 +0000
commit07e91896e1558f6beb10bcdc3e5c3ff38904317f (patch)
tree238e441e6eeb51018e8173b08b612f1369923cdc /src/HttpInitiateConnectionCommand.h
parentf7f1770633ac92bd6ba82a320a12ec8076532122 (diff)
2006-10-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To add timeout to async name resolution: * src/AbstractCommand.h (nameResolveFinished): New function. This is not elegant way. It needs to be more refined. (nameResolverCheck): New variable. * src/AbstractCommand.cc (AbstractCommand): Added nameResolverCheck. (execute): Added the check whether the name resolution has finished. (setNameResolverCheck): Set nameResolverCheck to true. (disableNameResolverCheck): Set nameResolverCheck to false. (nameResolverFinished): New function. * src/FtpInitiateConnectionCommand.h (nameResolverFinished): New function. * src/HttpInitiateConnectionCommand.h (nameResolverFinished): New function. To add the support for a non-compact response from a tracker: * src/PeerListProcessor.h: New class. * src/DefaultPeerListProcessor.h: New class. * src/DefaultPeerListProcessor.cc: New class. * src/CompactPeerListProcessor.h: New class. * src/CompactPeerListProcessor.cc: New class. * src/DelegatingPeerListProcessor.h: New class. * src/DelegatingPeerListProcessor.cc: New class. * src/TorrentMan.cc (addPeer): New function(overload). (addPeer): Delete unused peers only when new peer is added. * src/TorrentMan.h (PeerListProcessor.h): Included. (Peers): Removed. (addPeer): New function(overload). * src/TrackerUpdateCommand.cc (netinet/in.h): Removed. (DelegatingPeerListProcessor.h): Included. (execute): Updated to use DelegatingPeerListProcessor. To fix the memory leak in TorrentMan::peers: * src/PeerAbstractCommand.cc (onAbort): Added peer->resetStatus(). * src/Peer.h (resetStatus): Made public. To improve the precision of the speed calculation: * src/SpeedCalc.h (nextInterval): New variable. * src/SpeedCalc.cc (reset): Added nextInterval. (isIntervalOver): Use nextInterval instead of CHANGE_INTERVAL_SEC. (changeSw): Set nextInterval to 15 seconds relative to the current instant time. * src/main.cc (showVersion): Updated.
Diffstat (limited to 'src/HttpInitiateConnectionCommand.h')
-rw-r--r--src/HttpInitiateConnectionCommand.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/HttpInitiateConnectionCommand.h b/src/HttpInitiateConnectionCommand.h
index f7e83829..8eecbbcc 100644
--- a/src/HttpInitiateConnectionCommand.h
+++ b/src/HttpInitiateConnectionCommand.h
@@ -55,6 +55,12 @@ protected:
* evaluated by RequestCommand.
*/
bool executeInternal(Segment& segment);
+#ifdef ENABLE_ASYNC_DNS
+ virtual bool nameResolveFinished() const {
+ return nameResolver->getStatus() == NameResolver::STATUS_SUCCESS ||
+ nameResolver->getStatus() == NameResolver::STATUS_ERROR;
+ }
+#endif // ENABLE_ASYNC_DNS
public:
HttpInitiateConnectionCommand(int cuid, Request* req, DownloadEngine* e);
~HttpInitiateConnectionCommand();