<feed xmlns='http://www.w3.org/2005/Atom'>
<title>aria2/src/HttpProxyResponseCommand.h, branch libaria2</title>
<subtitle>Aria2 download utility with uTP support</subtitle>
<id>http://x-nagi.com/cgit/aria2/atom?h=libaria2</id>
<link rel='self' href='http://x-nagi.com/cgit/aria2/atom?h=libaria2'/>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/'/>
<updated>2010-10-31T07:23:53Z</updated>
<entry>
<title>2010-10-31  Tatsuhiro Tsujikawa  &lt;t-tujikawa@users.sourceforge.net&gt;</title>
<updated>2010-10-31T07:23:53Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2010-10-31T07:23:53Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=2b458da480074f615c1a9d78cbe2e31dcebc94d7'/>
<id>urn:sha1:2b458da480074f615c1a9d78cbe2e31dcebc94d7</id>
<content type='text'>
	Made #include guard consistent for c++ header files.


</content>
</entry>
<entry>
<title>2010-03-20  Tatsuhiro Tsujikawa  &lt;t-tujikawa@users.sourceforge.net&gt;</title>
<updated>2010-03-20T14:30:36Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2010-03-20T14:30:36Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=bf5f559c5cfd3a7111a67b542008ca0878ac43d1'/>
<id>urn:sha1:bf5f559c5cfd3a7111a67b542008ca0878ac43d1</id>
<content type='text'>
	Use cuid_t type for cuid.


</content>
</entry>
<entry>
<title>2010-01-06  Tatsuhiro Tsujikawa  &lt;t-tujikawa@users.sourceforge.net&gt;</title>
<updated>2010-01-05T16:01:46Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2010-01-05T16:01:46Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=4db349c1f32b4a313d12d114137432441633d00a'/>
<id>urn:sha1:4db349c1f32b4a313d12d114137432441633d00a</id>
<content type='text'>
	Untabify. Fixed one line in copyright which is longer than 80
	columns.
	* src
	* test


</content>
</entry>
<entry>
<title>2009-07-01  Tatsuhiro Tsujikawa  &lt;t-tujikawa@users.sourceforge.net&gt;</title>
<updated>2009-07-01T13:45:28Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2009-07-01T13:45:28Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=e6a7c952d1e1812f36968e8c44454c36e10461e2'/>
<id>urn:sha1:e6a7c952d1e1812f36968e8c44454c36e10461e2</id>
<content type='text'>
	Get proxy download working
	* src/AbstractProxyRequestCommand.cc
	* src/AbstractProxyRequestCommand.h
	* src/AbstractProxyResponseCommand.cc
	* src/AbstractProxyResponseCommand.h
	* src/FtpInitiateConnectionCommand.cc
	* src/FtpTunnelRequestCommand.cc
	* src/FtpTunnelRequestCommand.h
	* src/FtpTunnelResponseCommand.cc
	* src/FtpTunnelResponseCommand.h
	* src/HttpInitiateConnectionCommand.cc
	* src/HttpProxyRequestCommand.cc
	* src/HttpProxyRequestCommand.h
	* src/HttpProxyResponseCommand.cc
	* src/HttpProxyResponseCommand.h


</content>
</entry>
<entry>
<title>2008-02-08  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;</title>
<updated>2008-02-08T15:53:45Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2008-02-08T15:53:45Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=1b7c1982896dba1d38e1fe84ba9660996607f5f9'/>
<id>urn:sha1:1b7c1982896dba1d38e1fe84ba9660996607f5f9</id>
<content type='text'>
	Removed "using namespace std;" from all sources. Appended std:: 
prefix to c++
	standard classes.
	Included string.h where mem* function are used.


</content>
</entry>
<entry>
<title>2007-05-20  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;</title>
<updated>2007-05-20T13:51:52Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2007-05-20T13:51:52Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=eaf2d53a91d4019683bc6caf25c5a143f88a84b4'/>
<id>urn:sha1:eaf2d53a91d4019683bc6caf25c5a143f88a84b4</id>
<content type='text'>
	* Added the simultaneous download feature.


</content>
</entry>
<entry>
<title>2007-03-15  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;</title>
<updated>2007-03-15T15:07:18Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2007-03-15T15:07:18Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=11907c175d9e3e6f4069df79dade320b6f93cd7f'/>
<id>urn:sha1:11907c175d9e3e6f4069df79dade320b6f93cd7f</id>
<content type='text'>
	To handle Segment as SegmentHandle:
	* src/AbstractCommand.cc (execute): Rewritten.
	* src/SegmentMan.h: Segment -&gt; SegmentHandle

	Introducded HttpResponse class, HttpRequest class to improve 
code
	extensiveness and make it clear:
	* src/HttpDownloadCommand.cc: transfer encoders are now managed 
by
	HttpResponse class.
	* src/HttpRequest.h, src/HttpRequest.cc: New class.
	* src/HttpResponse.h, src/HttpResponse.cc: New class.
	* src/HttpConnection.cc: Contruction of http request were moved 
to
	HttpRequest class.
	* src/HttpResponseCommand.h, src/HttpResponseCommand.cc: 
Refactored.
	* src/HttpRequestCommand.cc (executeInternal): Rewritten.
	* src/HttpAuthConfig.h: New class.
	* src/Range.h: New class.
	
	To make FtpTunnel{Request, Response}Command and
	HttpProxy{Request, Response}Command derived from
	AbstractProxy{Request, Response}Command:
	* src/FtpTunnelResponseCommand.h, 
src/FtpTunnelResponseCommand.cc:
	Derived from AbstractProxyRequestCommand class.
	* src/FtpTunnelRequestCommand.h, src/FtpTunnelRequestCommand.cc:
	Derived from AbstractProxyResponseCommand class.
	* src/HttpProxyRequestCommand.h, src/HttpProxyRequestCommand.cc:
	Derived from AbstractProxyRequestCommand class.
	* src/HttpProxyResponseCommand.h, 
src/HttpProxyResponseCommand.cc:
	Derived from AbstractProxyResponseCommand class.
	* src/AbstractProxyRequestCommand.h, 
src/AbstractProxyRequestCommand.cc
	: New class.
	* src/AbstractProxyResponseCommand.h,
	src/AbstractProxyResponseCommand.cc: New class.

	To add netrc support:
	* src/Netrc.h, src/Netrc.cc: New class.
	* src/Util.h, src/Util.cc (split): New function.
	
	* src/HttpHeader.cc (getRange): Fixed so that it inspects
	"Content-Range" header instead of "Range" header.
	* src/HttpHeader.h
	(getStatus): Removed.
	(setStatus): Removed.

	* src/Segment.h
	(getPositionToWrite): New function.


</content>
</entry>
<entry>
<title>2006-10-18  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;</title>
<updated>2006-10-18T14:57:00Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2006-10-18T14:57:00Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=c0fd1fff2a6d78d3157790bbef6f98d54f31d0fc'/>
<id>urn:sha1:c0fd1fff2a6d78d3157790bbef6f98d54f31d0fc</id>
<content type='text'>
	Request -&gt; RequestHandle:
	
	* src/HttpResponseCommand.h: Request-&gt;RequestHandle
	* src/AbstractCommand.cc: Request-&gt;RequestHandle
	* src/HttpDownloadCommand.cc: Request-&gt;RequestHandle
	* src/HttpRequestCommand.cc: Request-&gt;RequestHandle
	* src/FtpInitiateConnectionCommand.h: Request-&gt;RequestHandle
	* src/AbstractCommand.h: Request-&gt;RequestHandle
	* src/HttpProxyRequestCommand.h: Request-&gt;RequestHandle
	* src/HttpResponseCommand.cc: Request-&gt;RequestHandle
	* src/HttpInitiateConnectionCommand.h: Request-&gt;RequestHandle
	* src/FtpNegotiateCommand.cc: Request-&gt;RequestHandle
	* src/FtpTunnelResponseCommand.h: Request-&gt;RequestHandle
	* src/HttpConnection.h: Request-&gt;RequestHandle
	* src/HttpProxyResponseCommand.cc: Request-&gt;RequestHandle
	* src/InitiateConnectionCommandFactory.h: Request-&gt;RequestHandle
	* src/FtpTunnelResponseCommand.cc: Request-&gt;RequestHandle
	* src/DownloadCommand.h: Request-&gt;RequestHandle
	* src/FtpDowndloadCommand.cc: Request-&gt;RequestHandle
	* src/HttpInitiateConnectionCommand.cc: Request-&gt;RequestHandle
	* src/HttpRequestCommand.h: Request-&gt;RequestHandle
	* src/FtpNegotiateCommand.h: Request-&gt;RequestHandle
	* src/FtpTunnelResponseCommand.cc: Request-&gt;RequestHandle
	* src/FtpInitiateConnectionCommand.cc: Request-&gt;RequestHandle
	* src/HttpDownloadCommand.h: Request-&gt;RequestHandle
	* src/FtpConnection.cc: Request-&gt;RequestHandle
	* src/InitiateConnectionCommandFactory.cc: 
Request-&gt;RequestHandle
	* src/UrlRequestInfo.cc: Request-&gt;RequestHandle
	* src/HttpProxyResponseCommand.h: Request-&gt;RequestHandle
	* src/HttpConnection.h: Request-&gt;RequestHandle
	* src/DownloadCommand.cc: Request-&gt;RequestHandle
	* src/FtpConnection.h: Request-&gt;RequestHandle
	* src/FtpDowndloadCommand.h: Request-&gt;RequestHandle
	* src/HttpProxyRequestCommand.cc: Request-&gt;RequestHandle
	* src/FtpTunnelRequestCommand.h: Request-&gt;RequestHandle
	* src/Request.h
	(SharedHandle.h): New include.
	(RequestHandle): New type definition.
	(Requests): Redefined.
	
	To add MULTITRACKER support:

	* src/TrackerWatcherCommand.h
	(createRequestCommand): New function.
	* src/DownloadEngineFactory.cc
	(newTorrentConsoleEngine): Removed req.
	* src/prefs.h
	(PREF_TRACKER_MAX_TRIES): New definition.
	* src/TorrentMan.cc
	(TorrentMan): Removed req. Added trackerNumTry.
	(~TorrentMan): Removed req.
	(setupInternal1): Added announceList.
	* src/TorrentRequestInfo.cc
	(execute): Set PREF_MAX_TIRES to 1. The max number of tries for
	announces is now specified by PREF_TRACKER_MAX_TRIES.
	* src/main.cc
	(main): Added PREF_TRACKER_MAX_TRIES.
	* src/TorrentMan.h
	(Request.h): Removed.
	(AnnounceList.h): New include.
	(trackerNumTry): New variable.
	(req): Removed.
	(announceList): New variable.
	* src/TrackerWatcherCommand.cc
	(execute): Rewritten.
	(createRequestCommand): New function.
	* src/TrackerUpdateCommand.cc
	(execute): Updated with the use of AnnounceList.
	* src/AnnounceList.cc: New class.
	* src/AnnounceList.h: New class.
	
	To fix typo:

	* src/prefs.h
	(PREF_MAX_TRIES): max_try-&gt;max_tries

	To not to decode "+" as space in URL decode:

	* src/Util.cc
	(urldecode): Removed "+"-&gt;space decoding rule. Test case was 
updated.


</content>
</entry>
<entry>
<title>2006-09-22  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;</title>
<updated>2006-09-21T15:31:24Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2006-09-21T15:31:24Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=1b5af8e8298d85d47be1de79cf8158b1aae6f06b'/>
<id>urn:sha1:1b5af8e8298d85d47be1de79cf8158b1aae6f06b</id>
<content type='text'>
	* src/*.{h,cc}:
	Added an exception to the license which allows linking with 
OpenSSL.


</content>
</entry>
<entry>
<title>2006-09-19  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;</title>
<updated>2006-09-19T14:52:59Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2006-09-19T14:52:59Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=2fb9b5be9705560fd77b4244636bc2515e81f32c'/>
<id>urn:sha1:2fb9b5be9705560fd77b4244636bc2515e81f32c</id>
<content type='text'>
	To rewrite segment download mechanism for HTTP/FTP download.
	Use BitfieldMan to manage segment download.
	* src/HttpResponseCommand.h
	(executeInternal): Pass the reference of segment.
	* src/AbstractCommand.cc
	(prepareForRetry): Call segmentMan-&gt;cancelSegment here.
	(onAbort): Call segmentMan-&gt;cancelSegment here.
	* src/HttpDownloadCommand.cc
	(prepareForNextSegment): New function.
	* src/DownloadEngineFactory.cc
	(newConsoleEngine): Removed splitter.
	(newTorrentConsoleEngine): Removed splitter.
	* src/Request.h
	(segment): Renamed from seg.
	* src/FtpInitiateConnectionCommand.h
	(executeInternal): Pass the reference of segment.
	* src/AbstractCommand.h
	(executeInternal): Pass the reference of segment.
	* src/pref.h
	(PREF_SEGMENT_SIZE): New definition.
	* src/HttpProxyRequestCommand.h
	(executeInternal): Pass the reference of segment.
	* src/HttpResponseCommand.cc
	(checkResponse): Allowed status 206 when a request range starts 
0.
	(handleDefaultEncoding): Rewritten the code related to Segment.
	(handleOtherEncoding): Rewritten the code related to Segment.
	* src/SegmentMan.h
	(SegmentEntry): New class.
	(SegmentEntries): New type definition.
	(bitfield): New variable.
	(usedSegmentEntries): New variable.
	(onNullBitfield): New function.
	(checkoutSegment): New function.
	(segments): Removed.
	(splitter): Removed.
	(unregisterId): Removed.
	(getSegment): New function(overload)
	(getDownloadedSize): Removed.
	(cancelSegment): New function.
	(completeSegment): New function.
	(initBitfield): New function.
	(hasSegment): New function.
	(getDownloadLength): New function.
	* src/BitfieldMan.h
	(getStartIndex): New function.
	(getEndIndex): New function.
	(getMissingUnusedIndex): New function(overload).
	(getSparseMissingUnusedIndex): New function.	
	* src/BitfieldMan.cc
	(getMissingIndexRandomly): Handle the last byte of bitfield 
properly.
	(getMissingUnusedIndex): New function(overload).
	(Range): New class.
	(getStartIndex): New function.
	(getEndIndex): New function.
	(getSparseMissingUnusedIndex): New function.
	(isBitSetInternal): Return false if the given index is less than 
0.
	* src/HttpInitiateConnectionCommand.h
	(executeInternal): Pass the reference of segment.
	* src/FtpNegotiateCommand.h
	(executeInternal): Pass the reference of segment.
	* src/FtpNegotiateCommand.cc
	(recvSize): Initialize bitfield here.
	* src/FtpTunnelResponseCommand.h
	(executeInternal): Pass the reference of segment.
	* src/HttpConnection.cc
	(createRequest): Rewritten range header processing.
	* src/DownloadCommand.h
	(executeInternal): Pass the reference of segment.
	(prepareForRetry): Removed.
	(prepareForNextSegment): Added an argument segment. Made it a 
virtual
	function.
	* src/main.cc
	(main): Set the initial value of PREF_SEGMENT_SIZE to 1MB.
	* src/SegmentMan.cc
	(SegmentMan): Added bitfield. Removed splitter.
	(~SegmentMan): Added bitfield. Removed splitter.
	(unregisterId): Removed.
	(getSegment): Rewritten.
	(updateSegment): Rewritten.
	(save): Rewritten.
	(read): Rewritten.
	(finished): Rewritten.
	(getDownloadedSize): Removed.
	(initBitfield): New function.
	(FindSegmentEntryByIndex): New function object.
	(FindSegmentEntryByCuid): New function object.
	(checkoutSegment): New function.
	(onNullBitfield): New function.
	(getSegment): New function(overload).
	(CancelSegment): New function object.
	(cancelSegment): New function.
	(completeSegment): New function.
	(hasSegment): New function.
	(getDownloadLength): New function.
	* src/FtpInitiateConnectionCommand.cc
	(executeInternal): Load .aria2 file after hostname resolution 
finishes.
	* src/Segment.h: Rewritten.
	* src/Segment.cc (operator&lt;&lt;): New function.
	* src/HttpDownloadCommand.h
	(prepareForNextSegment): New function.
	* src/Request.cc
	(resetUrl): Made segment null.
	* src/DownloadEngine.cc
	(~DownloadEngine): Call cleanQueue before deleting segmentMan.
	* src/HttpProxyRequestCommand.h
	(executeInternal): Pass the reference of segment.
	* src/DownloadCommand.cc
	(executeInternal): Rewritten the code related to Segment.
	(prepareForRetry): Removed.
	(prepareForNextSegment): Rewritten.
	* src/FtpTunnelResponseCommand.h
	(executeInternal): Pass the reference of segment.
	
	To add HTTP 1.1 persistent connection support(experimental)
	* src/HttpRequestCommand.cc
	(executeInternal): Disable keep alive if it is disabled by
	configuration.
	* src/Request.h
	(keepAlive): New variable.
	(isKeepAlive): New function.
	(setKeepAlive): New function.
	* src/pref.h
	(PREF_HTTP_KEEP_ALIVE): New definition.
	* src/HttpResponseCommand.cc
	(executeInternal): Check the remote server supports keep alive.
	* src/HttpConnection.cc
	(createRequest): Send "Connection: close" only if keep alive is
	disabled.
	* src/main.cc
	(main):
	Set the initial value(false) of PREF_KEEP_ALIVE to false.

	To add max download speed limit:
	* src/pref.h
	(PREF_MAX_SPEED_LIMIT): New definition.
	* src/PeerInteractionCommand.cc
	(executeInternal): Added max download speed limit. Not tested 
yet.
	* src/SegmentMan.h
	(PeerStats): New type definition.
	(peerStats): New variable.
	(registerPeerStat): New function.
	(FindPeerStat): New function object.
	(getPeerStat): New function.
	(calculateDownloadSpeed): New function.
	* src/SpeedCalc.h: New class.
	* src/SpeedCalc.cc: New class.
	* src/main.cc
	(main):
	Set the initial value of PREF_MAX_SPEED_LIMIT to 0(which means 
the
	download speed is not restricted).
	* src/PeerStat.h: New class.
	* src/SegmentMan.cc
	(registerPeerStat): New function.
	(calculateDownloadSpeed): New function.
	* src/DownloadCommand.cc
	(STARTUP_IDLE_TIME): New definition.
	(DownloadCommand): Register peerStat to segmentMan. Call 
peerStat-&gt;
	downloadStart.
	(~DownloadCommand): Call peerStat-&gt;downloadStop.
	(executeInternal): Added download speed limitter. Rewritten 
lowest
	speed limitter.

	* src/HttpConnection.cc
	(receiveResponse): Fixed: eohIndex[headerBuf] -&gt; 
headerBuf[eohIndex].
	
	* src/AbstractCommand.cc
	(resolveHostname): Throw DlAbortEx if a name resolution failes.
	Added hostname to the error message.
	
	* src/ConsoleDownloadEngine.cc
	(calculateStatistics): Initialize psize with dlSize.

	* src/PieceMessage.cc
	(receivedAction): Do not call peerInteraction-&gt;abortPiece here.
	(onGotWrongPiece): Call peerInteraction-&gt;abortPiece here.

	* src/BitfieldMan.h
	(clearAllUseBit): New function.
	(setAllUseBit): New function.
	* src/BitfieldMan.cc
	(clearAllBit): Do not clear useBitfield here.
	(clearAllUseBit): New function.
	(setAllUseBit): New function.
	* src/Piece.cc
	(clearAllBlock): Call bitfield-&gt;clearAllUseBit().


</content>
</entry>
</feed>
