Mike Gelfand
9ecd2ad319
Improve file test modification time checks
2016-01-04 05:04:55 +00:00
Mike Gelfand
6e00b1c543
Uncomment error prefixing tests
2016-01-03 21:03:54 +00:00
Mike Gelfand
52b2a7557f
Fix line endings on last commit
2016-01-02 15:26:23 +00:00
Mike Gelfand
119d10f01e
#5663 : Emulate `GetOverlappedResultEx` on Windows Vista/7
2016-01-02 15:23:38 +00:00
Mike Gelfand
ea48360212
#5663 : Rework directory watching in daemon
...
Implement BSD/Darwin (kqueue) and Windows (ReadDirectoryChanges) mechanisms
for receiving directory change notifications. Use events instead of polling
for changes. Retry file parsing up to 3 times before giving up.
Huge thanks to missionsix for preparing first two versions of the patch.
2016-01-02 14:28:59 +00:00
Mike Gelfand
de304e8a35
#5407 : In `tr_peerMgrGetDesiredAvailable()`, check if swarm is running (suggested by x190)
2015-12-31 14:33:02 +00:00
Mike Gelfand
7d30ad3ff6
#5891 : Move UDP shutdown timer setup to sessionCloseImplStart
2015-12-31 14:24:15 +00:00
Mike Gelfand
d3f5b5d5ab
#5891 : Fix crash on session shutdown (evdns_getaddrinfo_cancel)
2015-12-31 14:17:37 +00:00
Mike Gelfand
40f3de0572
Loosen bitfield assertions to account for unknown bit counts
2015-12-31 05:22:42 +00:00
Mike Gelfand
d4213f09d5
On second thought, bring back stdbool.h check back
...
Might be useful for uClibc (which still doesn't provide it) and others.
2015-12-29 19:44:50 +00:00
Mike Gelfand
eb8fc35ac6
Remove useless checks and definitions (C99)
...
Now that MSVC support for C99 is quite good, remove previously needed but
now unused checks and definitions, like PRI* format macros (including
PRIdMAX and TR_PRIuSIZE, replaced with %jd and %zu) and inline macro.
Also, remove ssize_t typedef and replace few occurences with ev_ssize_t.
Also, remove check for stdbool.h availability (guaranteed by C99) and
include it unconditionally (except when in C++ mode).
2015-12-29 19:37:31 +00:00
Mike Gelfand
eee92c82ac
Always add all source files to targets
...
Mark files which shouldn't be compiled as header-only, but still add
them as sources so that they are visible in e.g. MSVS project tree.
2015-12-29 02:04:37 +00:00
Mike Gelfand
db9d46bb91
Would you please die already, nasty chdir warning...
2015-12-29 00:48:55 +00:00
Mike Gelfand
a6d4bd35fc
Get rid of some more warnings
2015-12-29 00:42:40 +00:00
Mike Gelfand
15c9e5c126
Get rid of some more warnings
2015-12-28 23:53:55 +00:00
Mike Gelfand
4f266a5b15
Optimize URL-parsing functions a bit; rewrite `tr_urlParse()`
2015-12-28 23:52:26 +00:00
Mike Gelfand
d0e157eceb
Fix bitfield bit removal, add more asserts, extend unit test
2015-12-27 16:34:47 +00:00
Mike Gelfand
e3c5ab74ed
#5963 : Fix two more places where int is used in boolean context
2015-12-27 15:19:03 +00:00
Mike Gelfand
3523277e7f
Ongoing refactoring (use size_t instead of int)
2015-12-25 11:34:35 +00:00
Mike Gelfand
4a4badd4af
Ongoing refactoring (use size_t instead of int)
2015-12-25 10:19:50 +00:00
Mike Gelfand
9853eb6715
Print log messages in one `OutputDebugString()` call (Windows)
2015-12-13 10:34:53 +00:00
Mike Gelfand
ceb19b9711
Optionally return result length from `evbuffer_free_to_str()`
2015-12-13 10:23:22 +00:00
Mike Gelfand
073b05bb85
Reserve a few more bytes for base64 operations to prevent heap corruption
2015-12-13 01:29:39 +00:00
Jordan Lee
3ea43ba778
fix const warnings
...
In particular, in passing argv around as a "const char * const *"
instead of a "const char *".
2015-12-06 22:39:14 +00:00
Jordan Lee
3d76f23b2b
fix unused label warning
...
some #ifdef code had a goto label 'non_sparse_out', so that goto label was
unused on platforms where all those #ifdef blocks were disabled.
2015-12-06 22:24:35 +00:00
Jordan Lee
b559a20029
const correctness
...
silence some qual-cast warnings by sprinkling more consts throughout,
e.g. casting a const void* to a const struct foo * const *
2015-12-06 22:13:10 +00:00
Jordan Lee
39c48a162e
(trivial) remove trailing enum comma
2015-12-06 21:41:18 +00:00
Jordan Lee
562f56459f
remove unused macro
2015-12-06 16:39:38 +00:00
Mike Gelfand
505561c055
#5802 : Require absolute paths in "session-set" and "free-space" requests as well
2015-11-05 21:48:00 +00:00
Mike Gelfand
f6f15d6937
Use tr_realloc (BSD reallocf-alike) instead of plain realloc
2015-10-25 17:13:14 +00:00
Mike Gelfand
3d8c4c3960
Support absolute paths longer than ~260 chars on Windows
2015-10-23 05:29:47 +00:00
Mike Gelfand
88983c1ac1
Use tr_sys_path_remove instead of remove
2015-10-23 04:09:40 +00:00
Mike Gelfand
abb572fe26
Better support for UNC paths in tr_sys_path_is_relative
...
Accept \\ and // and valid UNC path prefixes, but not \/ or /\.
2015-10-23 03:55:04 +00:00
Mike Gelfand
5f420cafda
Rework Win32 basename and dirname implementation
...
Don't use _splitpath_s and _makepath_s as they don't support long paths
and UNC paths properly. Report error if path is not valid.
2015-10-23 03:42:11 +00:00
Mike Gelfand
650db1f46e
#5802 : Don't make assumptions of remote path validity in transmission-remote
...
Defer validity checks until path gets to the remote side, where they
actually make sense. Add simple checks for download directory path to
ensure it's not relative, since one cannot know what current working
directory of the remote process is.
2015-10-20 21:22:19 +00:00
Mike Gelfand
ca21c1f230
Always invoke async RPC callback, even if operation failed to start
2015-10-20 21:06:01 +00:00
Mike Gelfand
f89fab72f9
Remove unused session tag
2015-10-18 18:39:14 +00:00
Mike Gelfand
72f9dc6f92
#5992 : Remove now obsolete check for 13th Baktun (already happened)
2015-10-16 19:49:07 +00:00
Mike Gelfand
7d972ed5e6
#6006 : Don't use newlocale/uselocale with uClibc below 0.9.34
...
Incomplete locale internals initialization in uClibc leads to crash upon
`newlocale` call.
See also: http://git.uclibc.org/uClibc/commit/?id=3902d0c472
2015-10-15 20:19:27 +00:00
Mike Gelfand
c059eea6b4
#6005 : Style fix for previous commit (no functional changes)
2015-10-14 08:22:17 +00:00
Mike Gelfand
69687544d7
#6005 : Bump minimum OpenSSL version to 0.9.7, fix build for versions less than 0.9.8b
2015-10-13 21:24:31 +00:00
Mike Gelfand
0420699ad6
Initialise networking in daemon before making libevent calls
2015-10-11 16:35:51 +00:00
Mike Gelfand
8beea92859
Improve error handling when formatting error messages on Windows
2015-10-11 16:15:19 +00:00
Mike Gelfand
e745408f3b
Fix parameters order in `tr_web_done_func` declaration
2015-10-08 19:47:59 +00:00
Mike Gelfand
1e6a3c2039
#5732 : Change length argument type to uint32_t for LTEP messages
2015-10-05 23:10:52 +00:00
Mike Gelfand
fcbc2915eb
#5732 : Fix possible overflow in messageLengthIsCorrect (partial patch by cfpp2p)
2015-10-05 01:21:47 +00:00
Mike Gelfand
a90a473d48
#6003 : Update to miniupnpc api 14 (slightly modified patch by infirit)
2015-10-04 04:53:18 +00:00
Mike Gelfand
18ea8c429a
Improve RPC performance for local sessions
...
Don't unnecessarily de-/serialize JSON data if local session is used.
2015-07-13 00:32:48 +00:00
Mike Gelfand
b9adf279ca
#5912 : Prevent completed pieces modification by webseeds (patch by cfpp2p)
...
This avoids blocks corruption in case webseed provides bad data.
As explained by cfpp2p, "The requirements to reproduce are at least one
webseed that sends corrupt block(s), and at least one other peer (webseed
or regular peer) that sends correct data for the same block. Then a peer
with correct block sends the block and transmission accepts and verifies
that block as good. But then the webseed thread comes around and the same
block is downloaded from the webseed that sends a bad block which is then
written even though the piece was previously deemed complete."
2015-07-05 07:54:46 +00:00
Mike Gelfand
6cbfcdc85e
Fix `tr_net_strerror` on Windows (oops)
2015-07-01 00:58:00 +00:00