Commit Graph

600 Commits

Author SHA1 Message Date
Mike Gelfand 39749f8e4b Make it possible to force generic watchdir implementation in runtime 2016-01-25 21:48:58 +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 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 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 4a4badd4af Ongoing refactoring (use size_t instead of int) 2015-12-25 10:19:50 +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 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 d89a22f878 link daemon against systemd libraries if necessary 2015-12-06 14:58:05 +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 f89fab72f9 Remove unused session tag 2015-10-18 18:39:14 +00:00
Mike Gelfand 0420699ad6 Initialise networking in daemon before making libevent calls 2015-10-11 16:35:51 +00:00
Mike Gelfand 2e6d5c8bc9 Add more booleans to the picture 2015-05-31 22:13:31 +00:00
Mike Gelfand c1b10abe0f Use UTF-8 for console I/O on Windows 2015-04-21 10:07:57 +00:00
Mike Gelfand 829cbffaf7 Add version info to executables (on Windows). Group projects into folders (CMake). 2015-04-14 22:46:40 +00:00
Mike Gelfand 3b129a72d8 #5908: Check for `tr_loadFile` return value instead of `errno` in `tr_variantFromFile`
Seems like there could be a defect in uClibc making errno not
thread-local. Don't rely on errno value but check function return value
instead which is a better failure indicator.

Return errors from `tr_loadFile` and `tr_variantFromFile` via tr_error.
Fix `tr_sessionLoadSettings` to not fail on Windows if settings.json
does not exist.
2015-04-11 10:51:59 +00:00
Mike Gelfand f1f2a8f0b7 #5878: Fix typo in transmission-remote -P argument desription (reported by jolan) 2015-04-05 16:29:09 +00:00
Mike Gelfand a8231b42f8 #5910: Fix autotools build (#2) and workaround MSVC bug 2015-04-04 18:28:13 +00:00
Mike Gelfand 5b1b22321c #5910: Fix autotools and Xcode build 2015-04-04 18:21:34 +00:00
Mike Gelfand a079af9ed5 #5910: Run daemon as a service on Windows
Factor out demonization implementation to platform-specific files.
Implement daemonization on Windows using service API. Improve *NIX
implementation by handling signals asynchronously to prevent potential
issues of running complex code inside the handler.
2015-04-04 17:43:56 +00:00
Mike Gelfand cefc477918 Fix a couple more MinGW/MSVC warnings. 2015-03-19 19:13:23 +00:00
Mike Gelfand 45983e66e6 Fix a couple of MinGW warnings. 2015-03-19 06:08:06 +00:00
Mike Gelfand c7d2a7f959 #4400: Add CyaSSL support 2015-01-07 02:04:08 +00:00
Mike Gelfand 440f482d01 Replace tabs with spaces; remove trailing spaces 2015-01-02 11:15:31 +00:00
Mike Gelfand b928ae1ba8 Use libb64 instead of OpenSSL to encode/decode BASE64
Some crypto libraries (like CyaSSL, MatrixSSL and CommonCrypto) either
don't have or expose this functionality at all, expose only part of it,
or (like OpenSSL) have heavyweight API for it. Also, for the task as
easy as BASE64 encoding and decoding it's much better to use small and
simple specialized library.
2015-01-01 21:16:36 +00:00
Mike Gelfand 52a9d774e4 Fix compilation on Windows
This should not affect non-Win32 platforms in any way.
As for Win32 (both MinGW and MSVC), this should hopefully allow for
unpatched compilation. Correct functioning is not yet guaranteed though.
2014-12-13 15:22:39 +00:00
Mike Gelfand 5c43b5c23c #4400, #5462: Move BASE64 helpers to crypto-utils
On a way to factoring out OpenSSL support to a standalone file to ease
addition of other crypto libraries support in the future, move helpers
providing BASE64 encoding and decoding to crypto-utils.{c,h}. OpenSSL-
related functionality is moved to crypto-utils-openssl.c.

Add new functions to be implemented by crypto backends:
* tr_base64_encode_impl - encode from binary to BASE64,
* tr_base64_decode_impl - decode from BASE64 to binary.

Change `tr_base64_encode` and `tr_base64_decode` functions to expect
non-negative input data length which is considered real and never adjusted.
To process null-terminated strings (which was achieved before by passing 0
or -1 as input data length), add new `tr_base64_encode_str` and
`tr_base64_decode_str` functions which do not accept input data length as
an argument but calculate it on their own.
2014-12-04 19:58:34 +00:00
Mike Gelfand ecfa96bf38 Do not use target_include_directories which requires CMake 2.8.11 2014-12-02 20:42:33 +00:00
Mike Gelfand 83c4edb008 #5828: Initial CMake build system support 2014-12-01 19:55:22 +00:00
Jordan Lee 870041d92d (trunk) #4160: mike.dld patch: 4160-08-args.patch 2014-09-21 18:06:28 +00:00
Jordan Lee be290162c2 (trunk) #4160: mike.dld patch: 4160-07-env.patch 2014-09-21 18:05:14 +00:00
Jordan Lee 3e4ceecf03 #4160: mike.dld patch: 4160-06-misc.patch 2014-09-21 18:03:13 +00:00
Jordan Lee d9d66e3e42 (trunk, libt) #4160 - the slow slog to catch trunk up to mike.dld's 4160 diff continues. This step applies 4160-04b-dir.patch, which replaces native file operations with the tr_sys_dir_*() portability wrappers added in the previous commit. 2014-09-21 17:55:39 +00:00
Jordan Lee b325bc0a16 (trunk) #5759 compilation error, undefined reference to sqrt 2014-08-20 17:14:17 +00:00
Jordan Lee 2c0276fc23 (trunk, daemon) #5743 'unknown option: -R': revert previous commit, sync manpage 2014-07-19 23:35:10 +00:00
Jordan Lee b02e4222c3 (trunk, daemon) #5743 'unknown option: -R', fix suggested by silverhammermba 2014-07-19 23:32:20 +00:00
Jordan Lee ab24ef9fcb use pkg-config to get the zlib cflags/libs; remove obsolete zlib.m4 macro 2014-07-13 21:54:56 +00:00
Jordan Lee 0323639e57 (trunk, libT) #4160 'foreign character support' -- merge mike.dld's 4160-02b-path.patch, which updates the codebase to use the new tr_sys_path_*() portability wrappers introduced in 4160-02a 2014-07-08 00:08:43 +00:00
Mitchell Livingston 0e01879974 Use built-in _WIN32 macro instead of WIN32 2014-07-04 00:00:07 +00:00
Jordan Lee 3d1a6df0d7 remove extraneous 'include event.h' that confused the mac build. 2014-05-05 21:08:30 +00:00
Jordan Lee d87e091fff (trunk, daemon) #5660 'Daemon should use event loop' -- fixed with patch by missionsix 2014-04-27 22:01:51 +00:00
Jordan Lee 4097f6333a (trunk, daemon) #5621 'ratio vs ratio limit in transmission-remote' -- fixed. 2014-04-27 19:57:38 +00:00
Jordan Lee 02cff80c2d Copyedit the license's revised text: (1) remove unnecessary repitition use of the word 'license' from the top of the header and source files (2) add the standard 'we hope it's useful, but no warranty' clause to COPYING (3) make explicit that linking OpenSSL is allowed (see https://people.gnome.org/~markmc/openssl-and-the-gpl.html for background) (4) sync the Qt and GTK+ clients' license popups with COPYING's revised text 2014-01-21 03:10:30 +00:00
Jordan Lee 72f9cb7112 (trunk, daemon) #5503: add an ExecReload rule to the systemd service file. 2014-01-21 02:19:48 +00:00
Jordan Lee 621b27fe4d (trunk, daemon) #5562: 'Discrepancy in curl SSL setup between tr-daemon and tr-remote' -- fix by mike.dld 2014-01-19 01:53:07 +00:00
Jordan Lee 4b9626bb83 Licensing changes:
1. add the option the code to be used under GPLv2 or GPLv3; previously only GPLv2 was allowed

2. add the "proxy option" as described in GPLv3 so we can add future licenses without having to bulk-edit everything again :)

3. remove the awkward "exception for MIT code in Mac client" clause; it was unnecessary and confusing.
2014-01-19 01:09:44 +00:00
Jordan Lee 4904b923fb (trunk) restore copyright year as suggested in email by rms 2014-01-18 20:56:57 +00:00
Jordan Lee 106c9af8b2 (trunk, daemon) #5506: manpage fix for transmission-remote by taem 2013-10-20 19:39:56 +00:00
Jordan Lee 2db09dad54 add After=network.target as suggested by upstream arch bug #31478 2013-07-15 23:49:04 +00:00
Jordan Lee ea19848067 don't hardcode the config dir, as discussed in ticket #4503 comments 17, 19 2013-06-09 22:52:33 +00:00
Jordan Lee d1db86eba9 in transmission-daemon.service, remove unnecessary comments and change Type from simple to notify since transmission-daemon uses sd_notify() 2013-06-09 19:54:58 +00:00
Jordan Lee 5ecb8352de add transmission-daemon.service to EXTRA_DIST 2013-06-09 18:25:03 +00:00
Jordan Lee a7d9f17b22 (trunk daemon) add a systemd service file for transmission-daemon.
Suggestions / improvements welcomed at https://trac.transmissionbt.com/ticket/4503
2013-06-09 18:18:09 +00:00
Jordan Lee 4ac417b331 (daemon) systemd support, part 1: add sd_notify() calls to transmission-daemon if libsystemd-daemon is detected at compile time 2013-06-07 23:31:26 +00:00
Jordan Lee 9e244e0b7e add transmission-daemon's --dump option to the manpage. 2013-05-25 23:20:20 +00:00
Jordan Lee 027e3f3066 (trunk, libT) #4682 'Add return id from duplicate torrent torrent-add rpc' -- added. 2013-05-22 20:35:38 +00:00
Jordan Lee cd09204a6e (trunk) first draft of changing the FreeSpace API to behave as https://trac.transmissionbt.com/ticket/4076#comment:25 -- libT, rpc, qt, and gtk implementations. 2013-02-09 04:05:03 +00:00
Jordan Lee 407c0b53c7 (trunk) add portability wrappers tr_rename(), tr_remove() for the rename() and remove() funcs s.t. utf16 can be handled 2013-02-04 21:45:20 +00:00
Jordan Lee 52fcd9d4e7 (daemon) #5260 'conflicting documentation for -w argument': fixed. 2013-01-27 18:19:52 +00:00
Jordan Lee f75027d5e9 make all the log functions/structs/enums use a single 'tr_log' namespace, such as tr_logGetQueue, tr_logAddInfo, tr_logIsLevelActive 2013-01-25 23:34:20 +00:00
Jordan Lee fdf95908c8 (remote) fix global search-and-replace damage wreaked upon the --help text, reported by Elbandi 2013-01-22 18:57:01 +00:00
Jordan Lee 7c44d6db2d (remote) fix global search-and-replace damage wreaked upon the --help text, reported by Elbandi 2013-01-22 18:56:15 +00:00
Jordan Lee d5e45a0c7b (daemon) #5225 nightly regression: remote option '-l' displays warning -- fixed. 2013-01-15 18:10:16 +00:00
Jordan Lee 55551666b0 (daemon) add support for listing recently-active torrents 2013-01-03 05:10:47 +00:00
Jordan Lee 3414faefd6 (trunk, daemon) #4523 'files copied via kde sftp into watchdir not loaded' --fixed, patch by reardon 2012-12-30 23:23:00 +00:00
Jordan Lee fb0ada6582 (trunk, daemon) #5188 'error in transmission-remote manpage: options -i, -if, -ip, -ic, -it don't take arguments anymore' -- fixed. 2012-12-26 23:50:27 +00:00
Jordan Lee c1559f3cc4 (trunk, libT) first drop of the tr_quark patch. 2012-12-22 20:35:19 +00:00
Jordan Lee df5b6365bd (trunk, libT) faster JSON parsing for tr_variant. This mostly helps the Qt client, which makes heavy use of the JSON-based RPC calls. 2012-12-15 00:01:59 +00:00
Jordan Lee e96ed247fe refactor libtransmission's tr_benc class as tr_variant. 2012-12-14 04:34:42 +00:00
Jordan Lee 3d38723ad9 Follow more common whitespace style conventions in the C code (libtransmission, daemon, utils, cli, gtk). 2012-12-05 17:29:46 +00:00
Jordan Lee 357b160cde remove trailing spaces 2012-09-07 04:25:04 +00:00
Jordan Lee c949f93308 (trunk daemon) Small tweak to r13443 to fix a pluralization issue 2012-08-18 21:53:09 +00:00
Jordan Lee a845c3fc8a (trunk, daemon) #4657 "transmission-remote: display times (e.g. Seeding Time) (optionally) in seconds" -- added. 2012-08-18 16:33:28 +00:00
Jordan Lee e63ae0c50c (trunk daemon) #4947 "Expanded info not in transmission-remote manpage, only in --help" -- fixed. 2012-07-01 04:21:22 +00:00
Jordan Lee 6e6f20da91 (trunmk libT) #4162 "daemon should reopen logfile on SIGHUP" -- patch from gvdl to reopen the logfile on SIGHUP s.t. log rotation can be used by outside tools 2012-05-30 17:59:52 +00:00
Jordan Lee 32f846c1a6 (trunk libT) #4895 "SIGHUP race during session init" -- fixed with patch from gvdl 2012-05-21 02:07:46 +00:00
Jordan Lee 217da21bb8 add #4846 'Show magnet links in torrent info in transmission-remote -i' from a patch by eSyr 2012-04-07 00:33:05 +00:00
Jordan Lee b20110fe67 use kB/s rather than KiB/s in transmission-remote's manpage 2012-02-04 03:19:49 +00:00
Jordan Lee 6d4858d8dd (trunk) #4732 "allow switching between internal and system libnatpmp" -- fixed with patch scarabeus and applied by me, so any patch breakage is probably mine... ;) 2012-02-04 01:28:15 +00:00
Jordan Lee fbc7f3dc3c (trunk) use base-10 units for network bandwidth (ie, speed) and disk sizes.
It looks like the Mac client is already doing this and it's clearly the trend in other apps as well. Even apt-get is using kB/s, ferchrissake... :)

Flame away.
2012-02-03 21:21:52 +00:00
Jordan Lee 7eb08c5e4c (trunk daemon) #4725 "transmission-remote does not reflect status in returncode" -- fixed with patch from Xake 2012-01-26 12:56:28 +00:00
Jordan Lee 74b8552521 (trunk daemon) #4648 "Transmission-Remote With Full URL Specified Broken" -- fixed with patch from niol 2011-12-10 18:34:36 +00:00
Jordan Lee 8a90847072 (trunk daemon) #4594 "corrupted status string" -- fixed. 2011-10-25 20:48:39 +00:00
Jordan Lee 01f68ca846 (trunk libT) #4323 "Allow usage of system miniupnpc" -- fixed. 2011-10-09 02:05:52 +00:00
Jordan Lee 2eb7350f43 (trunk daemon) #3753 "support SSL in transmission-remote" -- added patch by reardon. 2011-08-24 19:30:28 +00:00
Jordan Lee c7624b8864 (trunk daemon) #4440 "transmission-remote --port-test & --blocklist-update fail silently" -- fixed with patch from KyleK. 2011-08-24 18:50:39 +00:00
Jordan Lee 35e6858c4b #671 "torrent queuing" -- fix status string for queued torrents in transmission-remote 2011-08-13 01:15:35 +00:00
Jordan Lee 4152033360 (trunk daemon) #4301 "strerror used instead of tr_strerror" -- fixed with a patch from taem 2011-05-30 15:28:55 +00:00
Jordan Lee a802852fef (trunk daemon) #2338 "Add uTP support" -- added er13's patch from comment:115 to add uTP enable/disable commands to transmission-remote. Thanks er13! 2011-04-20 23:17:10 +00:00
Jordan Lee 616bde8c5b (trunk libT) #4138 "use stdbool.h instead of tr_bool" -- fix watch.c error reported by zebulon501 in trac. :) 2011-04-02 07:46:37 +00:00
Jordan Lee a680c4b6cb (trunk libT) fix never-executed code branch detected by clang static analyzer 2011-03-31 05:06:19 +00:00
Jordan Lee e8c22599cb (trunk daemon) fix minor text formatting bug when the ETA is being shown in seconds 2011-03-30 23:11:10 +00:00
Jordan Lee 7e21116e3c (trunk libT) #4157 "'transmission-remote -si' doesn't show alternate download speeds correctly" -- fixed. 2011-03-30 21:19:14 +00:00
Jordan Lee 98633b4145 (trunk daemon) #4156 "request: transmission-remote --session-info report whether µTP is enabled" -- added. 2011-03-30 16:24:45 +00:00
Jordan Lee 375694eda9 (trunk) copyediting: remove some unneeded #includes, and annotate some needed ones 2011-03-24 21:49:42 +00:00
Jordan Lee b4d36aeb54 (trunk) #4138 "use stdbool.h instead of tr_bool" -- done. 2011-03-22 15:19:54 +00:00
Jordan Lee 374ed10f3b (trunk) it's bad form to #include so many system headers in libtransmission/utils.h... 2011-03-16 18:04:23 +00:00
Jordan Lee 934024c195 (trunk daemon) #4118 "transmission-remote, document peer status for H and T in its man page" -- done. 2011-03-14 14:29:00 +00:00
Jordan Lee db3282df47 (trunk daemon) #4094: "move 'Ratio Limit' to 'LIMITS & BANDWIDTH section'" -- fixed. 2011-03-07 15:02:40 +00:00
Jordan Lee 9bf2434e14 (trunk) copyediting: remove trailing spaces from source code lines in daemon/ gtk/ libtransmission/ and utils/ 2011-03-04 23:26:10 +00:00