Commit Graph

1483 Commits

Author SHA1 Message Date
PRESFIL 8dcf2bc609 chore(lua): Use PACKAGE_DATADIR and AM_CPPFLAGS 2025-08-07 11:03:58 +02:00
PRESFIL 7022722c64 chore(lua): Make LUA_DATADIR instead of PACKAGE_DATADIR 2025-08-07 11:03:58 +02:00
PRESFIL 2829a73d8b chore(lua): Make AC_DEFINE_UNQUOTED for PACKAGE_DATADIR 2025-08-07 11:03:58 +02:00
PRESFIL 43c36db5fc chore(lua): Add empty newlines for code readability 2025-08-07 11:03:58 +02:00
PRESFIL 9ed8fe8fd8 doc(lua): Add example Lua configuration
Additional step to test in development (non-packaged) mode:

- In packaged mode, rtorrent knows where to search rtorrent.lua, but in
  project mode, rtorrent.lua located in a non-standard location.
  Therefore run rtorrent with following environment variabler set:

  LUA_PATH=<full path to rtorrent project dir>/lua/?.lua
2025-08-07 11:03:58 +02:00
PRESFIL 95cc070ecc feat(lua): Add insert_lua_method for lua-callbacks
Updated @kannibalox's method to pass lua-functions as rtorrent's methods.
2025-08-07 11:03:58 +02:00
PRESFIL d43d08404a feat(lua): Some aliases for Target-commands 2025-08-07 11:03:58 +02:00
PRESFIL c92becbb7c feat(lua): Replace Autocall with Target-object, Autocall_config -> Autocall
Deep-copy `__namestack` decouples all instances of Autocall, previously it
worked as singleton. This allows to store call-chains as variables, aliases.

Target-object allows to avoid duplication of the target-parameter as required
with Autocall by storing them as variables.

Autocall_config renamed to Autocall for brevity.
2025-08-07 11:03:58 +02:00
PRESFIL 20887b1ccb fix(lua): print= shadowed by native Lua print()
Trying `rc.print()` causes redirection to native global Lua `print()`, which
prints to stdout. I don't see any proc of shor-circuiting `autocall_config`
with global environment `_G`.
2025-08-07 11:03:58 +02:00
PRESFIL 3bd111e498 feat(lua): Add autocall_config assignment semantic 2025-08-07 11:03:58 +02:00
PRESFIL f8ec1ca95e fix(lua): Make rtorrent.lua accessible at start 2025-08-07 11:03:58 +02:00
PRESFIL d9976af767 chore(rpc/parse.cc): Fix typo 2025-08-07 11:03:58 +02:00
PRESFIL c649e49a42 fix(lua): Treat VALUE always as integer
rtorrent doesn't have floating point data type
2025-08-07 11:03:58 +02:00
PRESFIL 9b0d74bd68 fix(lua): Execution of commands with empty target 2025-08-07 11:03:58 +02:00
PRESFIL 09dd1ce9c8 fix(lua): Handling of LUA_TNIL 2025-08-07 11:03:58 +02:00
PRESFIL eb45508ab9 chore(lua): Remove unused lua_rtorrent_call() local function 2025-08-07 11:03:58 +02:00
PRESFIL a1ff6f5710 fix(lua): require(rtorrent) cause infinite loop
- missing `pos = end + 1` pos caused infinite loop

- there was no processing of the last element after the last ';', i.e. it was
  assumed that `lua_path` always has ';' in the last character
2025-08-07 11:03:58 +02:00
rakshasa 756e3bd5ae Invert color of focus ui element. 2025-08-05 08:56:22 +02:00
rakshasa ce97bf583d Fixed formating. 2025-08-04 09:52:27 +02:00
rakshasa dd8281204f Update common.m4. 2025-08-04 09:52:27 +02:00
rakshasa 420f03b40b Fixed input key bindings. 2025-08-04 09:52:27 +02:00
mmmsalmon 9ac43c2b40 remove comment 2025-08-04 09:52:27 +02:00
mmmsalmon 25448320aa add vi/emacs keybind for stopping/removing torrent from download list 2025-08-04 09:52:27 +02:00
rakshasa 788442de6a Added test for xmlrpc string reflection. 2025-08-02 15:02:25 +02:00
rakshasa 4492715737 Strict checking of d.views push_back arguments. 2025-08-02 15:02:25 +02:00
Jari Sundell f1a4c13c41 Added network.block.ipv4in6.set command. 2025-07-05 22:31:52 +09:00
Rosen Penev e11ac9abe3 remove downloa_slot_map.h
Unused.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-30 10:14:07 +02:00
Rosen Penev 34aba86d67 remove std::function inheritance
This does nothing but bloat code size.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-30 10:00:23 +02:00
Rosen Penev 5175414333 add chrono header
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-22 17:26:22 +02:00
Rosen Penev 2b15c4a1fa command_ui: use templates instead of function
Less overhead.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-21 11:48:21 +02:00
Rosen Penev 84c0d516ef replace for_each with range loops
No advantage over the latter, which is simpler.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-21 11:23:11 +02:00
Rosen Penev 8b663dd169 add a void cast to get rid of warning
Just copied the file from libtorrent.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-20 13:07:51 +02:00
Rosen Penev c48b7f5b93 replace VERSION with PACKAGE_VERSION
They're both the same. The latter is more descriptive.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-20 13:07:51 +02:00
rakshasa 4c06e7a923 Changed the order in which slots are added in HttpQueue. 2025-06-19 22:50:42 +02:00
Rosen Penev e3918f5d84 remove some get() calls
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-19 10:07:52 +02:00
Rosen Penev 0948b5f86a clang-tidy: convert loops to range based
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-19 09:57:21 +02:00
Phil Rosenthal bb8d677f6e Fix file descriptor leak in session file saving
When system.files.session.fdatasync is set to "no", file descriptors
  were not being closed after writing session files, causing a severe
  resource leak. Each save operation would leak one file descriptor.

  With hundreds of torrents, this leads to tens of thousands of leaked
  file descriptors within hours, mostly pointing to deleted session files.
  This can exhaust the system's file descriptor limit and cause rtorrent
  to fail when opening new files.

  The fix moves the close() call outside the fdatasync conditional block,
  ensuring file descriptors are always properly closed regardless of the
  fdatasync setting.
2025-06-18 19:00:56 +02:00
Rosen Penev dc6208ccc9 add missing header for va_list
Fixes compilation on NetBSD.
2025-06-18 18:20:22 +02:00
Rosen Penev 18d19e3dee initialize in vector directly
No need for std::copy.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-18 16:15:47 +02:00
Rosen Penev f0517e2748 replace various find_if calls
C++11 has shorter equivalents.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-18 14:39:42 +02:00
Rosen Penev 47089bce70 remove some transform calls
for range loop is more readable.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-17 17:13:05 +02:00
Jari Sundell 64cb3d11a0 Use shared_ptr for CurlGet stream and improved thread-safety. 2025-06-17 23:15:40 +09:00
Rosen Penev 12347843a9 add file.h header
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-11 20:32:35 +02:00
Jari Sundell 41589f06c2 Converted curl/http to be thread-safe. 2025-06-12 00:04:40 +09:00
Fredrik Lindell a51f367671 Add emacs and vi keymap config logic
* Add emacs and vi keymap config logic
2025-06-05 16:29:12 +02:00
Rosen Penev ac4afeb4bc remove variable fdset check
Doesn't seem to be used.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-05 14:33:28 +02:00
Rosen Penev 8d562d53fc remove disabling ipv6
Doesn't look like it does anything.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-05 14:33:28 +02:00
Rosen Penev 1a79eec876 remove LT_SMP_CACHE_BYTES
This is used by the library, not here.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-05 14:33:28 +02:00
Rosen Penev c803970628 remove posix_memalign check
This was used by the library, not here.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-05 14:33:28 +02:00
Rosen Penev 5f2f046165 remove HAVE_CONFIG_H define
config.h is always included. This is not a library.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-06-05 14:33:28 +02:00