Commit Graph

88 Commits (dda0b62fb9feddc1c82efffd3b87d66f4eecea32)

Author SHA1 Message Date
Tatsuhiro Tsujikawa 0a63a7ecc3 Add clang-format
Use clang-format-3.6 for now.
2015-12-23 18:00:49 +09:00
Nils Maier 48bcb47a30 Refine messages to include peer info 2014-12-14 10:34:09 +01:00
Nils Maier 3c8704178a Move warn logic into SocketCore
Also fiddle a bit with the WinTLS implementation, forcing "strong"
crypto only for > SSLv3.
2014-12-14 10:34:09 +01:00
Nils Maier c5c38bf3a4 Warn about insecure SSL connections.
Fixed GH-313
2014-12-12 18:24:19 +01:00
Tatsuhiro Tsujikawa 84f1a15e10 Check negative number from Integer::i() where it is not allowed 2014-05-01 11:34:27 +09:00
Tatsuhiro Tsujikawa b9da9d4ed3 Use 64 bits random bytes as GID
This change replaces the current 64 bit sequential GID with 64 bits
random bytes GID in an attempt to support persistent GID. Internally,
the GID is stored as uint64_t. For human representation and RPC
interface, GID is represented as 16 bytes hex string. For console
readout, 16 bytes are too long, so it is abbreviated to first 6 bytes.
When querying GID in RPC calls, user can speicfy the prefix of GID as
long as the prefix is shared by more than 1 GID entries.
2012-12-16 17:29:01 +09:00
Tatsuhiro Tsujikawa 4046f27ea9 Use system-wide certificates for SSL
Use system-wide certificates for SSL.  For GnuTLS it requires the
latest version, 3.0.20. OpenSSL had it for longer.  This means that if
SSL library is properly configured to locate system-wide certificates
store, the user don't have to use --ca-certificate option. Also
packagers don't have to use --with-ca-bundle configure option.

Patch from Cristian Morales Vega
2012-07-05 23:22:34 +09:00
Tatsuhiro Tsujikawa 4b03634f36 Use PRId64 for int64_t format specifier 2012-06-25 22:43:33 +09:00
Tatsuhiro Tsujikawa 8499a47d21 Added --bt-remove-unselected-file option.
Removes the unselected files when download is completed in
BitTorrent. To selecting files, use --select-file option. If it is not
used, all files are assumed to be selected. Please use this option
with care because it will actually remove files from your disk.
This option is default to false.
2012-03-25 19:25:43 +09:00
Tatsuhiro Tsujikawa b97a7c8ecf Use int32_t for begin, length in RangeBtMessage 2011-12-09 21:39:43 +09:00
Tatsuhiro Tsujikawa f860bf0d50 Use %lld to fomat a2_gid_t 2011-12-02 21:36:11 +09:00
Tatsuhiro Tsujikawa 1687741303 Use fmt instead of util::itos 2011-11-13 20:55:06 +09:00
Tatsuhiro Tsujikawa 03417e94b4 2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use format specifier %lld for cuid_t. Defined cuid_t as long long
	int instead of int64_t, since g++ complains int64_t is not
	suitable for %lld.
2010-11-20 12:12:06 +00:00
Tatsuhiro Tsujikawa 228b4c50d7 2010-11-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Capture errno right after system/library call to avoid it to get
	overwritten. Use util::safeStrerror instead of strerror directly
	because strerror might return NULL. We don't check errno for
	std::fstream anymore.
	* src/AbstractDiskWriter.cc
	* src/CookieStorage.cc
	* src/DHTAutoSaveCommand.cc
	* src/DHTRoutingTableDeserializer.cc
	* src/DHTRoutingTableSerializer.cc
	* src/DefaultBtProgressInfoFile.cc
	* src/EpollEventPoll.cc
	* src/IteratableChunkChecksumValidator.cc
	* src/KqueueEventPoll.cc
	* src/Logger.cc
	* src/MessageDigestHelper.cc
	* src/PortEventPoll.cc
	* src/SelectEventPoll.cc
	* src/SocketCore.cc
	* src/message.h
	* src/util.cc
	* src/util.h
2010-11-09 14:43:47 +00:00
Tatsuhiro Tsujikawa 2b458da480 2010-10-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Made #include guard consistent for c++ header files.
2010-10-31 07:23:53 +00:00
Tatsuhiro Tsujikawa b7df39b7ae 2010-10-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed compiler warning about printf format.
	* src/AdaptiveURISelector.cc
	* src/BtPieceMessage.cc
	* src/DHTAbstractNodeLookupTask.h
	* src/DHTMessageFactoryImpl.cc
	* src/DHTPeerLookupTask.cc
	* src/DHTReplaceNodeTask.cc
	* src/DefaultBtAnnounce.cc
	* src/DefaultBtInteractive.cc
	* src/DefaultBtMessageDispatcher.cc
	* src/DefaultBtProgressInfoFile.cc
	* src/DefaultBtRequestFactory.cc
	* src/DefaultExtensionMessageFactory.cc
	* src/DefaultPieceStorage.cc
	* src/DownloadCommand.cc
	* src/FileAllocationCommand.cc
	* src/FileEntry.cc
	* src/HandshakeExtensionMessage.cc
	* src/IteratableChunkChecksumValidator.cc
	* src/LibgcryptDHKeyExchange.h
	* src/LibsslDHKeyExchange.h
	* src/LpdDispatchMessageCommand.cc
	* src/MSEHandshake.cc
	* src/MessageDigestHelper.cc
	* src/MultiDiskAdaptor.cc
	* src/PeerConnection.cc
	* src/SegmentMan.cc
	* src/TimedHaltCommand.cc
	* src/UTMetadataRequestExtensionMessage.cc
	* src/UTPexExtensionMessage.cc
	* src/bencode2.cc
	* src/bittorrent_helper.cc
	* src/message.h
2010-10-28 14:19:29 +00:00
Tatsuhiro Tsujikawa be2cd51e1b 2010-10-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Removed warning message when CA certificates are not imported.
	--ca-certificate and --check-certificate option were added to the
	error message displayed when certificate verification failed.
	* src/MultiUrlRequestInfo.cc
	* src/message.h
2010-10-03 14:07:57 +00:00
Tatsuhiro Tsujikawa 3a3511ee28 2010-06-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Run whole checksum check when download file name and size are
	determined and download is already completed. Related to r2221.
	Guarded ENABLE_MESSAGE_DIGEST where necessary.
	* src/AbstractCommand.cc
	* src/RequestGroup.cc
	* src/message.h
2010-06-23 14:45:25 +00:00
Tatsuhiro Tsujikawa a0d13a7fee 2010-03-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Defined gid_t as int64_t.
	* src/BtDependency.cc
	* src/BtStopDownloadCommand.cc
	* src/FtpNegotiationCommand.cc
	* src/HttpResponseCommand.cc
	* src/RequestGroup.cc
	* src/RequestGroup.h
	* src/RequestGroupMan.cc
	* src/TrackerWatcherCommand.cc
	* src/XmlRpcMethodImpl.cc
	* src/message.h
	* test/XmlRpcMethodTest.cc
2010-03-21 14:04:05 +00:00
Tatsuhiro Tsujikawa de8fef01f3 2010-03-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Defined cuid_t as int64_t. Removed texts containing "CUID#%D" from
	translatable texts because it is used in log and debugging
	purpose.
2010-03-21 07:05:49 +00:00
Tatsuhiro Tsujikawa dc2a51b54a 2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Discard torrent file if path data in it contains directory
	traversal directives.  Discard metalink:file element in Metalink3
	format if its name attribute contains directory traversal
	directives.  Ignore name attribute of metalink:signature element
	in Metalink3 format if it contains directory traversal directives.
	* src/MetalinkParserStateV3Impl.cc
	* src/bittorrent_helper.cc
	* src/message.h
	* test/BittorrentHelperTest.cc
	* test/Makefile.am
	* test/MetalinkProcessorTest.cc
	* test/metalink3-dirtraversal.xml
	* test/test.xml
2010-02-27 08:22:58 +00:00
Tatsuhiro Tsujikawa 4db349c1f3 2010-01-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Untabify. Fixed one line in copyright which is longer than 80
	columns.
	* src
	* test
2010-01-05 16:01:46 +00:00
Tatsuhiro Tsujikawa 2745d85597 2009-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added --bt-save-metadata option. When true is given, it saves
	metadata as .torrent file. This option has effect only when
	BitTorrent Magnet URI is used.  The filename is name in metadata
	with suffix .torrent. The directory to be saved is the same
	directory where download file is saved. If the same file already
	exists, metdata is not saved.
	* src/OptionHandlerFactory.cc
	* src/UTMetadataPostDownloadHandler.cc
	* src/UTMetadataPostDownloadHandler.h
	* src/message.h
	* src/prefs.cc
	* src/prefs.h
	* src/usage_text.h
	* test/UTMetadataDataExtensionMessageTest.cc
2009-12-23 13:21:12 +00:00
Tatsuhiro Tsujikawa 4156debe5c 2009-12-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added --interface option.  This feature binds sockets to given
	interface. You can specify interface name, IP address and
	hostname.
	* configure.ac
	* src/OptionHandlerFactory.cc
	* src/SocketCore.cc
	* src/SocketCore.h
	* src/main.cc
	* src/message.h
	* src/prefs.cc
	* src/prefs.h
	* src/usage_text.h
2009-12-03 14:41:08 +00:00
Tatsuhiro Tsujikawa 4536bd7211 2009-10-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Allowed non-regular file in LocalFilePathOptionHandler
	* src/OptionHandlerImpl.h
	* src/message.h
2009-10-17 13:13:32 +00:00
Tatsuhiro Tsujikawa dbaf521756 2009-09-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Made MSG_NOT_FILE translatable.
	* src/message.h
2009-09-16 14:40:22 +00:00
Tatsuhiro Tsujikawa 81de583a63 2009-09-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Updated message when a path is not a file. Updated common message
	for wrong option.
	* src/OptionHandlerException.cc
	* src/message.h
2009-09-11 12:59:43 +00:00
Tatsuhiro Tsujikawa 97ffdf3eb2 2009-09-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use File::isFile() instead of File::exists(). Updated message when
	a path is not a file.
	* src/OptionHandlerImpl.cc
	* src/message.h
2009-09-10 12:14:57 +00:00
Tatsuhiro Tsujikawa 66b5950115 2009-09-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use LocalFilePathOptionHandler for -T and -M option.
	Updated message of MSG_FILE_NOT_EXIST.
	* src/OptionHandlerFactory.cc
	* src/message.h
2009-09-09 12:58:23 +00:00
Tatsuhiro Tsujikawa 9f54011349 2009-09-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added LocalFilePathOptionHandler which check whether the specified
	file path does exist or not.
	* src/OptionHandlerImpl.cc
	* src/message.h
2009-09-09 12:50:42 +00:00
Tatsuhiro Tsujikawa a4d5134f80 2009-08-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed the bug that download fails if
	SocketCore::establishConnection() throws exception and aria2
	doesn't try another address.
	* src/AbstractCommand.cc
	* src/InitiateConnectionCommand.cc
	* src/message.h
2009-08-18 14:09:56 +00:00
Tatsuhiro Tsujikawa 85cec59174 2009-07-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Updated debug log message
	* src/AbstractCommand.cc
	* src/message.h
2009-07-17 10:27:45 +00:00
Tatsuhiro Tsujikawa 5f966f6327 2009-07-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Disconnect seeder if client is also in seed state.
	* src/BtBitfieldMessage.cc
	* src/BtHaveAllMessage.cc
	* src/BtHaveMessage.cc
	* src/message.h
	* test/BtBitfieldMessageTest.cc
	* test/BtHaveAllMessageTest.cc
	* test/BtHaveMessageTest.cc
	* test/MockPieceStorage.h
2009-07-06 15:22:06 +00:00
Tatsuhiro Tsujikawa ee75995198 2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Defined MSG_CANNOT_PARSE_XML_RPC_REQUEST
	* src/ExpatXmlRpcRequestProcessor.cc
	* src/Xml2XmlRpcRequestProcessor.cc
	* src/message.h
2009-05-15 08:56:34 +00:00
Tatsuhiro Tsujikawa 389866621f 2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Defined const BDEs to avoid duplicate instantiation.
	Defined MSG_GID_NOT_PROVIDED.
	* src/XmlRpcMethodImpl.cc
	* src/message.h
2009-05-15 08:53:05 +00:00
Tatsuhiro Tsujikawa a84cc7621d 2008-12-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Made messages in showFiles() translatable.
	* po/aria2.pot
	* src/main.cc
	* src/message.h
2008-12-20 11:09:05 +00:00
Tatsuhiro Tsujikawa 8129042a3a 2008-12-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use BDE instead of Dictionary/List/Data classes.
	* src/CompactPeerListProcessor.cc
	* src/CompactPeerListProcessor.h
	* src/DefaultBtAnnounce.cc
	* src/DefaultBtContext.cc
	* src/DefaultBtContext.h
	* src/DefaultPeerListProcessor.cc
	* src/DefaultPeerListProcessor.h
	* src/DelegatingPeerListProcessor.cc
	* src/DelegatingPeerListProcessor.h
	* src/PeerListProcessor.h
	* src/UTPexExtensionMessage.cc
	* src/Util.h
	* src/message.h
	* test/DefaultBtContextTest.cc
	* test/DefaultPeerListProcessorTest.cc
2008-12-09 15:03:29 +00:00
Tatsuhiro Tsujikawa 63ddc1f147 2008-12-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Enabled --check-certificate by default.  Added compile
	time(configure) option --with-ca-bundle to specify CA bundle.
	Warn if --check-certificate=true and --ca-certificate is not
	specified or loading CA certificate is failed.
	* configure.ac
	* src/MultiUrlRequestInfo.cc
	* src/OptionHandlerFactory.cc
	* src/message.h
2008-12-03 16:07:14 +00:00
Tatsuhiro Tsujikawa 15586812c5 2008-11-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Print a message when no files to download.
	* src/download_helper.cc
	* src/main.cc
	* src/message.h
2008-11-30 09:35:27 +00:00
Tatsuhiro Tsujikawa ce4186b4c3 2008-11-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added the ability to verify peer in SSL/TLS using given CA
	certificates.
	The CA certificates are specified in --ca-certificate option.
	By default, the verification is disabled. Use --check-certificate
	option to enable it.
	* src/HttpRequestCommand.cc
	* src/LibgnutlsTLSContext.cc
	* src/LibgnutlsTLSContext.h
	* src/LibsslTLSContext.cc
	* src/LibsslTLSContext.h
	* src/MultiUrlRequestInfo.cc
	* src/OptionHandlerFactory.cc
	* src/SocketCore.cc
	* src/SocketCore.h
	* src/a2functional.h
	* src/message.h
	* src/option_processing.cc
	* src/prefs.cc
	* src/prefs.h
	* src/usage_text.h
2008-11-09 07:36:44 +00:00
Tatsuhiro Tsujikawa 52316b0972 2008-11-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Introduced TLSContext that holds TLS related data that can be
	shared with multiple SSL connections.
	* src/DownloadEngineFactory.cc
	* src/LibgnutlsTLSContext.cc
	* src/LibgnutlsTLSContext.h
	* src/LibsslTLSContext.cc
	* src/LibsslTLSContext.h
	* src/Makefile.am
	* src/SocketCore.cc
	* src/SocketCore.h
	* src/TLSContext.h
	* src/message.h
2008-11-08 10:48:02 +00:00
Tatsuhiro Tsujikawa c921529d68 2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
If establishing conneciton to a server is failed, then mark 
error on
	its ServerStat.
	Added the cause of error to log when error event occurred.
	Moved message string to message.h for translation.
	* src/AbstractCommand.cc
	* src/AbstractCommand.h
	* src/FtpNegotiationCommand.cc
	* src/HttpRequestCommand.cc
	* src/PeerAbstractCommand.cc
	* src/message.h
2008-09-14 14:31:19 +00:00
Tatsuhiro Tsujikawa 33ad8505cd 2008-08-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Externalized message.
	* src/RequestGroupMan.cc
	* src/message.h
2008-08-23 15:59:15 +00:00
Tatsuhiro Tsujikawa 05d06e6e0d 2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Externalize messages.
	* src/RequestGroupMan.cc
	* src/message.h: Added MSG_SIGNATURE_SAVED, 
MSG_SIGNATURE_NOT_SAVED.
2008-07-13 12:15:56 +00:00
Tatsuhiro Tsujikawa 4708809094 2008-02-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Change the unit of --stop option from a minute to a second.
	* src/usage_text.h
	* src/DownloadEngineFactory.cc
	* src/OptionHandlerFactory.cc
	* src/message.h
	* src/TimedHaltCommand.cc
2008-02-20 12:33:16 +00:00
Tatsuhiro Tsujikawa bc1f1bdf35 2008-02-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed typo in log message and define the message in message.h
	* src/TimedHaltCommand.cc
	* src/message.h
2008-02-12 13:45:54 +00:00
Tatsuhiro Tsujikawa 0f13363229 2008-02-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added DHT functionality, compatible with mainline.
	DHT is disabled by default. To enable it, give --enable-dht to 
aria2c.
	You may need to specify entry point to DHT network using
	--dht-entry-point. DHT uses UDP port to listen incoming message.
	Use --dht-listen-port to specify port number. Make sure that 
your
	firewall configuration can pass through UDP traffic to the port.
	The routing table is saved in $HOME/.aria2/dht.dat.
	* src/DHT*
	* src/BNode.{h, cc}
	* src/PeerInteractionCommand.cc: enable DHT functionality for a
	particular torrent.
	* src/Data.cc: Rewritten ctor.
	* src/OptionHandlerFactory.cc: Added --enable-dht, 
--dht-listen-port,
	--dht-entry-point.
	* src/DefaultBtInteractive.cc: Send port message if dht is 
enabled.
	* src/RequestGroup.cc: Initialize DHT functionality. When 
download
	ends, remove BtContext from DHTPeerAnnounceStorage.
	* src/BtPortMessage.{h, cc}: Rewritten.
	* src/message.h
	* src/OptionHandlerImpl.cc
	* src/option_processing.cc: Added --enable-dht, 
--dht-listen-port,
	--dht-entry-point.
	* src/Dictionary.{h, cc} (remove): New function.
	* src/prefs.h
	* src/DefaultBtMessageFactory.h
	* src/BtHandshakeMessage.cc
	* src/ActivePeerConnectionCommand.cc
	* src/SocketCore.{h, cc}: Added datagram socket support.
	* src/DefaultBtMessageFactory.cc
	* src/BtSetup.cc: Add BtContext to DHTPeerAnnounceStorage here.
	Create DHT commands.
	* src/BtMessageFactory.h
	* src/PeerMessageUtil.{h, cc}
2008-02-01 17:36:33 +00:00
Tatsuhiro Tsujikawa 160d5a8614 2008-01-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Externalize message to message.h
	* src/Platform.cc
	* src/message.h
2008-01-11 15:32:45 +00:00
Tatsuhiro Tsujikawa 9a7fe58c57 2008-01-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that EX_TOO_LONG_PAYLOAD exception is thrown if just
	payload length(4bytes) are received. This happens because lenbufLength
	is not updated in this particular case and successive call of
	receiveMessage() overwrites payload length with bytes recieved which
	are payload body.
	* src/PeerConnection.cc
	* src/message.h
2008-01-10 15:12:32 +00:00
Tatsuhiro Tsujikawa da4d9092b2 2008-01-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed segmentation fault when bad torrent metainfo is parsed.
	Added dynamic_cast properly to detect the misconfiguration of 
metainfo
	and then throw exception or skip it.
	* src/DefaultBtContext.{h, cc}
	* test/DefaultBtContextTest.cc
	* src/AnnounceList.cc
	* src/CompactPeerListProcessor.cc
	* src/message.h
	* src/DefaultBtAnnounce.{h, cc}
	* test/DefaultBtAnnounceTest.cc
	* src/BencodeVisitor.cc
2008-01-04 12:31:49 +00:00