Nils Maier
8aa1db682b
Check for sys/signal.h and/or signal.h
...
mingw-w64 does not actually have sys/signal.h, while OSX currently has a
broken signal.h
Better check the presence of both and use sys/signal.h if present, else
signal.h
2013-03-02 15:09:54 +01:00
Nils Maier
62f842579d
Fix bustage on OSX with ./configure CC=cc CXX=c++ (clang)
2013-03-01 12:43:40 +01:00
Tatsuhiro Tsujikawa
61665d2c26
Set sa_mask when setting signal handler
2013-02-14 21:51:30 +09:00
Tatsuhiro Tsujikawa
8e3ae3b76c
Use _exit() instead of exit() where appropriate
2013-02-14 01:01:06 +09:00
Tatsuhiro Tsujikawa
6a976a4118
Accept k and m as well as K and M in util::getRealSize()
2013-01-15 21:36:25 +09:00
Tatsuhiro Tsujikawa
b017e80438
Changed threshold of using upper unit for abbrevSize
2012-12-19 23:58:24 +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
4fdd5da27d
Compact readout when more than 1 simultaneous downloads are going on
...
If more than 1 simultaneous downloads are going on, use more compact
format in readout. Currently, at most 5 download stats are displayed.
util::abbrevSize() is rewritten to support "Gi" unit and provides more
compact abbreviation.
2012-12-11 23:40:06 +09:00
Tatsuhiro Tsujikawa
2ee4361848
Removed unused static function util::parseParam
2012-11-17 14:38:55 +09:00
Tatsuhiro Tsujikawa
31189b1222
Made return type of util::parse_content_disposition ssize_t
2012-11-01 22:54:32 +09:00
Tatsuhiro Tsujikawa
49e9f66c16
Use len formal parameter of util::parse_content_disposition
2012-10-31 01:24:10 +09:00
Tatsuhiro Tsujikawa
f60b956a48
Removed always-true condition
2012-10-29 23:42:58 +09:00
Tatsuhiro Tsujikawa
118aed9c24
Content-Disposition parser conforming to RFC 6266.
...
RFC 2231 Continuation is not supported.
2012-10-27 14:51:07 +09:00
Tatsuhiro Tsujikawa
8b0c701266
Removed trailing spaces
2012-10-01 23:52:22 +09:00
Tatsuhiro Tsujikawa
3258614033
Removed *Handle typedef
2012-09-28 23:27:46 +09:00
Tatsuhiro Tsujikawa
8fc5cdea02
Removed unused functions
2012-09-27 01:03:39 +09:00
Tatsuhiro Tsujikawa
89f18dde85
Use nothrow version of parseInt, parseUInt and parseLLInt
2012-09-27 00:45:32 +09:00
Tatsuhiro Tsujikawa
10a68061f7
Code cleanup
2012-09-26 23:03:25 +09:00
Tatsuhiro Tsujikawa
f133091a9e
Made BufferedFile ctor take const char* args
2012-09-25 23:44:41 +09:00
Tatsuhiro Tsujikawa
a8c0794640
Made DEFAULT_STRIP_CHARSET const char[]
2012-09-24 23:54:41 +09:00
Tatsuhiro Tsujikawa
d95a179876
Removed A2STR strings other than NIL
2012-09-24 23:01:08 +09:00
Tatsuhiro Tsujikawa
dd7014a612
Store only interesting HTTP headers in HttpHeader
...
In this change, we defined HTTP header fields we are interested in.
We only store those headers in HttpHeader object. Accessing HTTP
headers in HttpHeader object is now done through enum values.
2012-09-23 20:59:34 +09:00
Tatsuhiro Tsujikawa
461a542c5e
Rewritten DownloadHandlerConstants
...
DownloadHandlerConstants was simplified. MIME type handling in Accept
header was also reworked. DownloadContext's metalinkServerContacted_
is replaced with acceptMetalink_ and its boolean value is reverted.
RequestGroup and HttpRequest now do not hold vector of accepting
types. HttpRequest has the flag acceptMetalink_ which will be set by
the same value of DownloadContext::accpetMetalink_ and if it is true,
Metalink MIME types are added to Accept header field.
2012-09-22 23:19:41 +09:00
Tatsuhiro Tsujikawa
f6c7aaa1cd
Use execlp() instead of execl()
2012-09-07 01:28:53 +09:00
Tatsuhiro Tsujikawa
f1017d5def
Don't percent-decode filename value in Content-Disposition.
...
We only percent-decode filename* value in Content-Disposition because
the encoding is fully specified. But since filename value is not, so
we just accept it as is.
2012-06-28 23:18:50 +09:00
Tatsuhiro Tsujikawa
1b874268a0
Use int64_t instead of off_t
...
Some classes such as DiskAdaptor, DiskWriter, FileAllocationIterator
and ChecksumValidator are left unchanged.
2012-06-25 23:35:24 +09:00
Tatsuhiro Tsujikawa
4b03634f36
Use PRId64 for int64_t format specifier
2012-06-25 22:43:33 +09:00
Tatsuhiro Tsujikawa
5fc1b1ad29
Rewritten HTTP header parser
2012-06-23 17:34:20 +09:00
Tatsuhiro Tsujikawa
ef86d760cc
Use CreateProcessW instead of CreateProcessA
2012-04-07 23:57:49 +09:00
Tatsuhiro Tsujikawa
fcb102b650
Fixed compile error with i686-w64-mingw32
2012-04-07 21:26:33 +09:00
Tatsuhiro Tsujikawa
840ca5adb6
Check availability of pwd.h
2012-04-07 15:49:22 +09:00
Tatsuhiro Tsujikawa
65a20f5070
First check there is wildcard character or not in tls hostname check.
2012-04-01 22:07:01 +09:00
Tatsuhiro Tsujikawa
e6f04416d9
Don't use locale dependent toupper and tolower.
2012-03-31 00:06:55 +09:00
Tatsuhiro Tsujikawa
0a9abd89c6
Rewritten TLS hostname check based on RFC 6125.
2012-03-30 23:49:14 +09:00
Tatsuhiro Tsujikawa
e4e9562c92
Get the home directory of the effective user ID using getpwuid() if
...
$HOME is not defined.
2012-03-30 01:43:38 +09:00
Tatsuhiro Tsujikawa
25ef6677e9
Added hostname check described in RFC 2818 with OpenSSL.
2012-03-28 23:28:22 +09:00
Tatsuhiro Tsujikawa
3b1834e633
Avoid strlen in util::streq, util::strieq, util::startsWith and util::istartsWith
2012-01-11 01:50:35 +09:00
Tatsuhiro Tsujikawa
b6fd4366fe
Use short form of util::startsWith and util::endsWith
2012-01-11 01:17:51 +09:00
Tatsuhiro Tsujikawa
9331f6a43d
Removed static const char[] as much as possible.
...
Provided convenient functions for streq, strieq, startsWith,
istartsWith, endsWith, iendsWith to support this move.
2012-01-11 01:03:38 +09:00
Tatsuhiro Tsujikawa
b6f8a3dbb3
Use std::ifstream instead of file descriptor for generateRandomDataUrandom()
...
Usually required random bytes are short, it is advantageous to use
std::ifstream which is buffered I/O rather than read() syscall.
2012-01-08 01:21:42 +09:00
Tatsuhiro Tsujikawa
deb0983ab4
Fixed compile error on android (which does not LFS support)
2011-12-26 00:10:27 +09:00
Tatsuhiro Tsujikawa
12988e5282
Replaced uint64_t with off_t or int64_t.
...
Since off_t is int64_t with LFS, we cannot take advantage of extra
capacity of uint64_t.
2011-12-09 21:39:43 +09:00
Tatsuhiro Tsujikawa
bc9fb7cb65
Fixed bug in util::parseULLIntNoThrow()
2011-12-02 00:44:33 +09:00
Tatsuhiro Tsujikawa
11c5a13534
Return true if bits == 0 in util::inSameCidrBlock()
2011-12-02 00:27:14 +09:00
Tatsuhiro Tsujikawa
c42dd7e755
Changed format of ETA.
...
Now no leading 0 is used. If hour part and/or min part is non-zero,
and sec part is 0, sec part is omitted, like this "1h3m".
2011-11-13 20:59:15 +09:00
Tatsuhiro Tsujikawa
1687741303
Use fmt instead of util::itos
2011-11-13 20:55:06 +09:00
Tatsuhiro Tsujikawa
db5cc4db27
Don't append character to std::string.
2011-11-12 21:27:24 +09:00
Tatsuhiro Tsujikawa
0da2468d6b
Removed strappend
2011-11-12 19:24:38 +09:00
Tatsuhiro Tsujikawa
2e5d9b056f
Removed strconcat
2011-11-12 18:17:34 +09:00
Tatsuhiro Tsujikawa
c4e66390ac
Code cleanup
2011-11-12 17:13:43 +09:00
Tatsuhiro Tsujikawa
2f4393d17c
Rewritten parse*Int
2011-11-12 01:06:52 +09:00
Tatsuhiro Tsujikawa
226480ad60
Made const char[] static
2011-11-11 23:00:41 +09:00
Tatsuhiro Tsujikawa
30fdb08f40
Rewritten parametered URI handling routine.
2011-11-06 16:37:02 +09:00
Tatsuhiro Tsujikawa
0c162dfbfb
Made util::fromHex and base32::decode function template
2011-11-05 18:05:23 +09:00
Tatsuhiro Tsujikawa
d305432ec0
Code cleanup. Avoid std::string temporaries.
2011-11-05 01:26:09 +09:00
Tatsuhiro Tsujikawa
1d56c17225
Code cleanup. Avoid std::string temporaries.
2011-11-05 01:11:04 +09:00
Tatsuhiro Tsujikawa
5c88f61269
Added util::istartsWith()
2011-11-05 00:33:35 +09:00
Tatsuhiro Tsujikawa
79876af88f
Removed util::endsWith(a, b). Added util::iendsWith()
2011-11-05 00:25:24 +09:00
Tatsuhiro Tsujikawa
601ec0f44a
Removed util::startsWith(a, b)
2011-11-04 23:43:32 +09:00
Tatsuhiro Tsujikawa
f84d2253b2
Rewritten util::split and added its iterator version.
...
Iterator based functions util::startsWith, util::endsWith,
util::streq, util::strieq were added.
2011-11-04 22:27:58 +09:00
Tatsuhiro Tsujikawa
6267676e8b
util::divide now takes iterators as arguments.
2011-11-03 23:09:03 +09:00
Tatsuhiro Tsujikawa
118626afc4
util::percentDecode now takes iterators as arguments.
2011-11-03 19:27:29 +09:00
Tatsuhiro Tsujikawa
9bb914b76e
Changed parse*Int functions so that it accepts iterators.
2011-11-03 18:51:31 +09:00
Tatsuhiro Tsujikawa
6ef91d60b3
Rewritten util::stripIter(), which now returns pair of iterator.
2011-11-03 16:19:21 +09:00
Tatsuhiro Tsujikawa
f884ad8339
Rewritten parseIndexPath. Renamed createIndexPathMap as createIndexPaths.
2011-11-02 00:18:39 +09:00
Tatsuhiro Tsujikawa
4a455b5afe
Removed IntSequence and Sequence<T>
2011-10-30 15:08:44 +09:00
Tatsuhiro Tsujikawa
a6ea8531e7
Code cleanup
2011-10-30 14:42:19 +09:00
Tatsuhiro Tsujikawa
5749647ae5
Use SegList<int> instead of IntSequence in DownloadContext::setFileFilter()
2011-10-29 23:33:48 +09:00
Tatsuhiro Tsujikawa
0ba6f8c352
Use same domain-match algorithm for no-proxy and netrc.
...
Now "example.org" does not domain-match ".example.org" in both
functions.
2011-10-29 00:16:46 +09:00
Tatsuhiro Tsujikawa
3832ed97c6
Rewritten Option. Introduced Pref.
...
Now preference key is Pref instead of just string. It has Option
ID. Now option lookup and setting takes O(1) using Pref object.
2011-10-21 21:56:42 +09:00
Tatsuhiro Tsujikawa
74e5aa0ace
Rewritten util::inSameCidrBlock() to support IPv6 address.
...
We also introduced union sockaddr_union in a2netcompat.h.
2011-10-19 23:14:13 +09:00
Tatsuhiro Tsujikawa
2b68f72fa6
Fixed bug that generateRandomData() does not populate data at the
...
first call.
2011-10-19 00:43:52 +09:00
Tatsuhiro Tsujikawa
2d6e087f58
Use /dev/urandom in generateRandomData() if available.
2011-10-13 23:12:05 +09:00
Tatsuhiro Tsujikawa
846b9b9283
Detect \b as \f as valid UTF-8 chars.
2011-08-24 21:55:32 +09:00
Tatsuhiro Tsujikawa
dce0667c0b
MinGW32 build: Replace all '\' in path with '/' in util::applyDir()
...
In MinGW32 build, replace all '\' in path with '/' in
util::applyDir(). Take into account '\' in File::getBasename() and
File::getDirname().
2011-08-18 17:27:41 +09:00
Tatsuhiro Tsujikawa
e76dc28f7f
Added libnettle and libgmp support.
...
libnettle and libgmp is used by default. Old implementation uses
libgcrypt as default. If more and more Linux distributions offer
libnettle linked GnuTLS, then this change decrease library dependency
against libgcrypt and libgpg-error. The current library detection for
libnettle and libgmp is very simple, just use AC_SEARCH_LIBS.
util::generateRandomData() was written using SimpleRandomizer, thus no
external library dependency from this function.
2011-08-11 02:29:14 +09:00
Tatsuhiro Tsujikawa
97f34ab668
Added global::cerr. windows.h now included from common.h
...
We replaced most of std::cerr with global::cerr. windows.h is now
included from common.h. Before including it, we define WINVER. We
renamed some variable name because some macros in windows.h collide
with them.
2011-08-10 00:38:48 +09:00
Tatsuhiro Tsujikawa
a10cda2f17
Use global::cout to output string to stdout.
...
In MinGW32 build, global::cout is WinConsoleFile. When outputing to
console, it uses WriteConsoleW, so Unicode characters are written.
Fixed memory leak in WChar<->MultiByte conversion functions. The
portion of code which uses std::cout is rewritten to use global::cout.
2011-08-09 23:33:55 +09:00
Tatsuhiro Tsujikawa
02307cee0a
Removed utf8ToNative from log message and exception message.
2011-08-08 21:46:10 +09:00
Tatsuhiro Tsujikawa
7368c9c9d8
Percent-encode non-printable ASCII and non-ASCII chars in FileEntry.
...
Percent-encode non-printable ASCII and non-ASCII chars in URI using
util::percentEncodeMini() when URI is added to FileEntry. Removed
percent-encode from Request. Also do percent-encoding when setting
referer and redirected URI.
2011-08-07 20:46:04 +09:00
Tatsuhiro Tsujikawa
0f349773f5
Rewritten saveAs using BufferedFile
2011-08-07 01:10:17 +09:00
Tatsuhiro Tsujikawa
3879da592d
In MinGW32, open file with UNICODE filename and print them in ANSI.
2011-08-04 21:43:02 +09:00
Tatsuhiro Tsujikawa
5a4a627d72
Remove Metalink content-type after first server response.
...
We don't accept Metalink content-type after first server response.
2011-07-25 00:03:13 +09:00
Tatsuhiro Tsujikawa
ed589ab034
Run batch file with cmd.exe. Quoted user command.
...
It seems that we have to specify the full path to cmd.exe in the first
argument of CreateProcess() to run batch file in proper manner. We
first determine the full path to cmd.exe. To do this, we get windir
environment variable and concatenate it with "\system32\cmd.exe".
2011-05-14 21:27:31 +09:00
Tatsuhiro Tsujikawa
e7d7233d54
Moved joinUri from util namespace to uri namespace.
2011-05-06 23:20:43 +09:00
Tatsuhiro Tsujikawa
1122e55a35
Handle "..", "." in util::joinUri()
2011-04-30 22:42:10 +09:00
Tatsuhiro Tsujikawa
871819af59
Added util::joinUri()
2011-04-30 00:15:27 +09:00
Tatsuhiro Tsujikawa
6e818a06dc
Replaced gid_t with a2_gid_t cause gid_t is commonly used as group ID.
2011-03-17 12:17:46 +09:00
Tatsuhiro Tsujikawa
395212f47f
Replaced HAVE_LIBSSL with HAVE_OPENSSL
2011-02-18 22:43:50 +09:00
Tatsuhiro Tsujikawa
eb6a811279
Look for USERPROFILE and the combination of HOMEDRIVE and HOMEPATH to
...
get user's home directory in MinGW32 build.
Usually HOME environment variable is defined in *nix like OSes, but
not in Windows. So in MinGW32 build, if HOME is not defined, we also
look for USERPROFILE and the combination of HOMEDRIVE and HOMEPATH.
2011-02-12 18:38:13 +09:00
Tatsuhiro Tsujikawa
2666bc8170
Renamed MessageDigestHelper as message_digest_helper
...
Static member variables in MessageDigestHelper class are now functions
under message_digest namespace.
2011-02-05 23:38:51 +09:00
Tatsuhiro Tsujikawa
c5ef9dadbd
Pass the number of requested files as 2nd argument to the command specified in
...
--on-download-* hook.
As a consequence, first filename is passed as 3rd argument.
2010-12-04 19:00:48 +09:00
Tatsuhiro Tsujikawa
567b424907
Pass first filename as 2nd argument to command specified by
...
--on-download-* option.
2010-12-04 18:14:27 +09:00
Tatsuhiro Tsujikawa
f0f4f8f703
Added more error code values.
...
I have not set error code for all exception invocation.
In this change, I set error code where error likely occurs.
2010-12-01 21:26:58 +09:00
Tatsuhiro Tsujikawa
ba026adb5e
2010-11-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
For MINGW32 build, percent-encode non-ASCII characters in
filename.
* src/util.cc
2010-11-26 13:07:28 +00:00
Tatsuhiro Tsujikawa
694fb307aa
2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Replaced StringFormat with fmt
2010-11-20 09:36:14 +00:00
Tatsuhiro Tsujikawa
580098eb49
2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Rewritten Logger interface. Logger now writes source file name and
line number in log file.
2010-11-20 08:21:36 +00:00
Tatsuhiro Tsujikawa
d8d159ccd8
2010-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Replaced HttpHeader::responseStatus_ with HttpHeader::statusCode_.
statusCode_ is of type int.
* src/AbstractProxyResponseCommand.cc
* src/FtpNegotiationCommand.cc
* src/HttpHeader.cc
* src/HttpHeader.h
* src/HttpHeaderProcessor.cc
* src/HttpResponse.cc
* src/HttpResponse.h
* src/HttpResponseCommand.cc
* src/HttpSkipResponseCommand.cc
* src/util.cc
* src/util.h
* test/HttpHeaderProcessorTest.cc
* test/HttpHeaderTest.cc
* test/HttpResponseTest.cc
* test/UtilTest.cc
2010-11-15 12:52:03 +00:00
Tatsuhiro Tsujikawa
ba540085a6
2010-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Fixed compile error on opensolaris
* src/util.cc
2010-11-14 08:19:53 +00:00
Tatsuhiro Tsujikawa
89f997ec0d
2010-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
...
Replaced MessageDigestContext with MessageDigest. Cleaned up
unnecessary functions in MessageDigestHelper.
* src/BtPieceMessage.cc
* src/Checksum.h
* src/DHTTokenTracker.cc
* src/DownloadCommand.cc
* src/DownloadCommand.h
* src/HashFuncEntry.h
* src/IteratableChecksumValidator.cc
* src/IteratableChecksumValidator.h
* src/IteratableChunkChecksumValidator.cc
* src/IteratableChunkChecksumValidator.h
* src/LibgcryptMessageDigestImpl.cc
* src/LibgcryptMessageDigestImpl.h
* src/LibsslMessageDigestImpl.cc
* src/LibsslMessageDigestImpl.h
* src/MSEHandshake.cc
* src/MSEHandshake.h
* src/Makefile.am
* src/MessageDigest.cc
* src/MessageDigest.h
* src/MessageDigestHelper.cc
* src/MessageDigestHelper.h
* src/MessageDigestImpl.h
* src/MetalinkParserController.cc
* src/Piece.cc
* src/Piece.h
* src/UTMetadataDataExtensionMessage.cc
* src/bittorrent_helper.cc
* src/messageDigest.cc: Removed
* src/messageDigest.h: Removed
* src/util.cc
* src/version_usage.cc
* test/BittorrentHelperTest.cc
* test/GZipDecoderTest.cc
* test/GZipDecodingStreamFilterTest.cc
* test/IteratableChecksumValidatorTest.cc
* test/IteratableChunkChecksumValidatorTest.cc
* test/Makefile.am
* test/MessageDigestHelperTest.cc
* test/MessageDigestTest.cc
* test/Metalink2RequestGroupTest.cc
* test/MetalinkProcessorTest.cc
* test/PieceTest.cc
* test/TestUtil.cc
* test/TestUtil.h
* test/UTMetadataDataExtensionMessageTest.cc
* test/UTMetadataPostDownloadHandlerTest.cc
2010-11-11 02:56:24 +00:00