Commit Graph

193 Commits

Author SHA1 Message Date
Charles Kerr 38a032b1bf (trunk libT) possible fix for benc/json saving issues reported in 1.70. This is a guess from rb07's post in the forums about bencode.c, and from John Clay's comments in irc 2009-06-06 19:30:32 +00:00
Charles Kerr ab56a2f7f7 (trunk libT) fix potential permissions headache when saving json/benc files 2009-06-04 15:52:54 +00:00
Charles Kerr b6f3b15f0a (trunk libT) handle windows when saving json files; use evbuffer_write() more safely 2009-06-03 21:08:54 +00:00
Charles Kerr 9513fcbe66 (trunk libT) add a bunch of comments denoting where the libevent 2.0 changes will go 2009-06-02 18:21:23 +00:00
Charles Kerr 9238fb0299 (trunk) #2131: clean up benc read/write API 2009-06-02 01:48:48 +00:00
Charles Kerr 9bfec90e43 (trunk libT) avoid about 75% of the strdup/malloc/frees in benc by using a union of char* and a small string buffer, and using the buffer if the string is small enough 2009-06-01 22:15:50 +00:00
Charles Kerr 7f85090587 (trunk) add a "source" argument to tr_jsonParse() so that if there's an error we can log the filename, or that it came from rpc, etc. 2009-06-01 18:57:37 +00:00
Charles Kerr f538b08fb3 (trunk libT) tracker.c was using tr_benc's private fields 2009-06-01 18:12:36 +00:00
Charles Kerr 62109971c5 (trunk libT) fix two trivial compiler warnings from r8562 2009-05-30 21:59:09 +00:00
Charles Kerr d1b36fee6f (trunk libT) a little bit of early futureproofing for libevent 2.0 2009-05-29 20:52:42 +00:00
Charles Kerr 80158af42f (trunk libT) #2086: JSON RPC messages can be 86% shorter, using less bandwidth and CPU 2009-05-16 15:38:47 +00:00
Charles Kerr 1c3f3acbca (trunk) add an option to the JSON generator to disable the human-readable indentations. Keep indenting the data files such as settings.json, but don't indent the messages used for RPC. This cuts the cost of deflate()ing those RPC messages by about 80%... 2009-05-16 05:51:52 +00:00
Charles Kerr 7f08a87969 (trunk libT) #2046: fix JSON bug when parsing floating point numbers in some locales 2009-05-09 18:01:29 +00:00
Charles Kerr 8387e3abcc (trunk libT) minor benc cleanups 2009-04-16 21:01:00 +00:00
Charles Kerr 1ab6ce13eb more benc code simplification 2009-04-09 00:26:53 +00:00
Charles Kerr d1c6956598 (trunk) tr_metaInfoBuilderCreate() doesn't need a tr_session* handle anymore 2009-04-08 18:47:48 +00:00
Charles Kerr 8c372572a2 (trunk libT) faster serialization from tr_benc structs into json and benc formats 2009-04-08 17:25:17 +00:00
Charles Kerr 3a28dd02e5 (trunk libT) silence a spurious warning in the new bencode code 2009-04-06 01:32:55 +00:00
Charles Kerr 6373802ca8 better bool, real handling in (1) the gtk prefs interface, (2) the dictionary merge code, (2) the json parser 2009-04-05 23:46:53 +00:00
Charles Kerr dce5997f29 (trunk) fix another new bencode bug. add some more unit tests for benc. 2009-04-05 23:16:45 +00:00
Charles Kerr 8f256a4648 (trunk libT) update one of the validity tests to understand the bool and double types 2009-04-05 21:33:06 +00:00
Charles Kerr 248a0c7fcb (trunk) change the bencode type enum to prevent OS-level collision 2009-04-05 18:02:11 +00:00
Charles Kerr 8a8c8711d8 (trunk) Use proper notation for json floating-point and bool types. For backwards compatability, still allow old-style printf strings as doubles, and 0s and 1s as bools. 2009-04-05 17:52:21 +00:00
Charles Kerr beb71cd7ed (trunk) make tr_bencGetReal() work better in i18n settings 2009-03-30 04:45:40 +00:00
Charles Kerr b827a37dbd (trunk libT) add tr_bencGetBool() and tr_bencGetDouble() 2009-03-30 01:46:48 +00:00
Charles Kerr f4557fab8e (trunk) use tr_bencDict{Find,Add}Bool() where appropriate 2009-03-29 23:05:32 +00:00
Charles Kerr d2d507725b (trunk rpc) add "seed ratio" feature to RPC 2009-03-29 18:45:35 +00:00
Charles Kerr e892398a95 (trunk libT) make tr-getopt C++ friendly 2009-03-17 18:08:02 +00:00
Charles Kerr b5a6f8a013 (trunk libT) #1845: if settings.json is empty, T crashes with "Assertion: tr_bencIsDict( source ) failed" 2009-02-18 16:47:27 +00:00
Charles Kerr fe816d8135 (trunk) update the GPL code's copyright dates 2009-01-10 23:09:07 +00:00
Charles Kerr d4c5e904b5 (trunk libT) fix minor compiler warning that cropped up when upgrading our ConvertUTF8 2009-01-10 19:29:01 +00:00
Charles Kerr c6a454d2e2 (trunk libT) win32 portability fixes, reported by Alexey 2009-01-10 02:22:13 +00:00
Charles Kerr cee6610ebb (trunk libT) inline the tr_bencIs*() utility functions 2009-01-03 00:11:31 +00:00
Charles Kerr 2eb2dacd50 (trunk libT) Fix sparse warnings: symbol 'XXX' shadows an earlier one 2009-01-01 18:38:49 +00:00
Charles Kerr 6bec82d0a6 (trunk libT) have tr_bencSaveAsJSON() use an evbuffer 2008-12-30 22:07:39 +00:00
Charles Kerr ad69a937ef (trunk libT) have a pool of reusable evbuffers 2008-12-30 20:32:00 +00:00
Charles Kerr 427f639664 (trunk libT) avoid some unnecessary memory fragmentation... for composited objects that have a tr_ptrArray, contain the tr_ptrArray directly rather than a pointer to one allocated elsewhere on the heap. 2008-12-29 08:54:36 +00:00
Charles Kerr 9594112d27 updated email address 2008-12-16 00:20:44 +00:00
Charles Kerr 6b0d98a695 (trunk) #1559: Simplify tr_sessionInitFull 2008-12-13 23:17:36 +00:00
Charles Kerr 0471e6d765 (trunk libT) make tr_bencDictMerge() support limited nested merges 2008-12-12 02:26:33 +00:00
Charles Kerr 72b9845a5e (trunk libT) #1559 (partial): add tr_bencDictMerge() + unit tests. patch by KyleK and charles_ 2008-12-12 02:12:17 +00:00
Charles Kerr bc51d19c0d (libT) #1491: json floats decimal separator depends on language settings 2008-11-27 18:35:26 +00:00
Charles Kerr 84dcaab5f4 remove dead code 2008-10-22 13:57:30 +00:00
Charles Kerr ef5bc3f150 (libT) more win32 work copied from spry's code:
(1) add #define for {read,write,strncasecmp} -> {_read,_write,_strnicmp}
(2) fix a couple more variadic macros that didn't get fixed in the last commit
(3) use evutil_strtoll() instead of strtoll()
2008-10-14 01:00:15 +00:00
Charles Kerr b824c704b7 first batch of portability changes based on spry's winport:
(1) added tr_getcwd(), a simple portability wrapper for getcwd()
(2) cli: show the help page if no command-line arguments are provided
(3) daemon: use tr_wait() intead of sleep()
(4) daemon: SIGQUIT, SIGPIPE, SIGHUP aren't defined on windows
(5) libtransmission: a couple of small cleanups to bencode.c, list.c, web.c
(6) libtransmission: win32 portability fixes to platform.c
2008-10-13 22:26:02 +00:00
Charles Kerr 7249493759 (libT) #1318: transmission daemon eats all resources 2008-10-06 01:52:29 +00:00
Charles Kerr 4fab4c9e9b (libT) finish killing tr_errno. 2008-10-03 04:49:06 +00:00
Charles Kerr cc89872dd4 run libT, cli, daemon, gtk through the source-code formatter "uncrustify" as promised/threatened 2008-09-23 19:11:04 +00:00
Charles Kerr 419242e36f (libT) change benc's integral type from int to size_t, squashing a couple of minor warnings 2008-09-04 14:42:32 +00:00
Charles Kerr f661504d66 (libT) say goodbye to the last `ii' variable in libT 2008-08-22 15:13:01 +00:00
Charles Kerr 2d2d173275 (libT) avoid an unnecessary memory alloc 2008-08-21 18:40:40 +00:00
Charles Kerr 3f25d101e0 fix metainfo bug from earlier today. (m1b, andersos) 2008-08-21 17:03:44 +00:00
Charles Kerr 58881d45be more metainfo/bencode cleanup 2008-08-21 16:12:17 +00:00
Charles Kerr dcecf09d96 bencode cleanup: remove unused functions and unnecessary #includes 2008-08-21 14:57:59 +00:00
Charles Kerr 3b7499a79b make tr_bencDictFindType() private. 2008-08-20 18:42:45 +00:00
Charles Kerr 6e23743c33 (libT) do proper JSON escaping 2008-08-19 23:11:35 +00:00
Charles Kerr 812b6a1218 roll back the last two diffs (r6582 and r6583) in favor of a simpler/cleaner/better fix 2008-08-18 03:44:09 +00:00
Charles Kerr 0396d9691f (libT) better handling of non-ascii characters when parsing JSON files 2008-08-18 03:10:59 +00:00
Mukund Sivaraman e44f96c88c Send UTF-8 characters straight out in the JSON without encoding further
The code still handles escaping of control characters and double quotes.

Bugs #1089, #1169 and #1190 may be fixed by this commit.
2008-08-17 21:53:24 +00:00
Charles Kerr 51aff87443 lots of C correctness tweaks suggested by sparse/cgcc 2008-08-11 19:05:02 +00:00
Charles Kerr 17cde72891 (libT) #1176: memory leaks in libtransmission 2008-08-11 17:00:23 +00:00
Charles Kerr 2e6443a53d #1168: reading past the end of KTorrent's pex added.f strings 2008-08-10 14:58:11 +00:00
Charles Kerr b860119cd3 minor text cleanup 2008-08-01 16:43:22 +00:00
Charles Kerr d6ede8d09e (libT) make the licensing consistent across all the files which only contain my code 2008-07-22 23:28:28 +00:00
Charles Kerr 2f239319b0 add a portability wrapper ``tr_snprintf()'' around snprintf() 2008-07-15 17:16:57 +00:00
Charles Kerr 8dd3e46450 minor bencode cleanup: (1) remove unused BENC_NULL (2) make tr_bencInit() a private static function in bencode.c 2008-06-19 02:53:57 +00:00
Charles Kerr 71c2cdd1ea #966: allow blocklist support in the daemon. add extra info in the man page explaining how to add blocklists. 2008-06-11 20:09:36 +00:00
Charles Kerr e3e3bee8b5 #800 initial support for GetRight-style fetching of data through http and ftp servers specified in the .torrent's "url-list" tag 2008-06-07 21:26:41 +00:00
Charles Kerr f6dd06c367 r5987 tweak: silence a couple of console debugging messages that snuck into the commit 2008-06-01 01:55:05 +00:00
Charles Kerr 07c1b28e9e #838 (Adding trackers to existing torrents): add a backend API for this (tr_torrentSetAnnounceList) and implement a GUI for it in the gtk+ client. 2008-06-01 01:40:32 +00:00
Charles Kerr 0ab37e45d5 (rpc)
1. fix #968: 'transmission-remote -r' deletes all
2. fix error in escaping control characters when serializing tr_benc to JSON
3. fix small memory leak in rpc command parsing
2008-05-24 18:22:16 +00:00
Charles Kerr 90e151cd4d (rpc) make our generated JSON more human-readable. 2008-05-22 16:41:16 +00:00
Charles Kerr 2c79888a93 RPC/IPC redesign 2008-05-18 16:44:30 +00:00
Charles Kerr 6aaa2fd39e fix bug in the benc-to-json converter.
add rison-to-json converter so we can pass commands to transmission in a uri.
add unit tests for the new code.
2008-05-13 12:52:58 +00:00
Charles Kerr 911bce88c9 add benc-to-json conversion + unit tests. 2008-05-12 17:54:57 +00:00
Charles Kerr e607f26893 add json-to-benc parser 2008-05-11 22:42:53 +00:00
Charles Kerr 73d77f8418 add a couple of benc utility functions 2008-05-08 03:25:21 +00:00
Charles Kerr 1b901ca9df minor tweaks: dead code removal, make functions static, etc 2008-04-22 20:51:15 +00:00
Charles Kerr c88aa6135d benc cleanup 2008-04-18 16:23:59 +00:00
Charles Kerr 87a77ea331 more hacking on the bencoded resume files 2008-04-15 17:00:44 +00:00
Charles Kerr 7f89ee3db2 silence a couple of annoying dbg messages 2008-04-14 20:06:37 +00:00
Charles Kerr afde752dc0 'resume' cleanup 2008-04-14 11:52:50 +00:00
Charles Kerr 4843187f6c #394: resume files should use original name instead of hash name 2008-04-13 22:31:07 +00:00
Charles Kerr 0080f1abe8 ipc/daemon cleanup 2008-04-04 17:19:44 +00:00
Charles Kerr fd0e71c00a hack on IPC a bit because it's been too long since I broke it 2008-04-03 21:38:32 +00:00
Charles Kerr a331582ec0 string folding 2008-03-30 13:52:55 +00:00
Charles Kerr 7200b27a18 lots more i18n string work -- making strings more consistent, folding redundant strings together, etc. 2008-03-07 20:48:36 +00:00
Charles Kerr 0e10715b5e new function: tr_bencSaveAsSerializedPHP() 2008-03-04 19:29:51 +00:00
Charles Kerr 84a8592d1d first cut at adding i18n hooks into libtransmission. 2008-03-04 02:02:25 +00:00
Charles Kerr 6b1001600b remove scaffolding that was accidentally committed in r5183 a few minutes ago 2008-03-02 19:55:04 +00:00
Charles Kerr d712545433 don't crash in makemeta when trying to build a torrent from files you don't have read access to. (wereHamster) 2008-03-02 19:42:45 +00:00
Charles Kerr 8cc587a66f more housekeeping: benc_val_t --> tr_benc 2008-02-26 21:58:58 +00:00
Charles Kerr beb7cc0b92 minor code cleanup 2008-02-02 16:23:49 +00:00
Charles Kerr 3334ea8401 fix the 1.04 bencode errors reported in the forums this morning. add regression tests. 2008-02-01 15:50:17 +00:00
Charles Kerr 606d548514 clarity tweaks to variable & function names 2008-02-01 01:54:04 +00:00
Charles Kerr 375949551b more graceful handling of bad inputs to tr_bencFree(), tr_bencSave(), and tr_bencPrint(). 2008-01-31 15:20:42 +00:00
Charles Kerr b5e119f1ea bencode tweaks. 2008-01-31 06:00:57 +00:00
Charles Kerr 784e0babda fix off-by-one that was uncovered by the new benc's stricter parsing. 2008-01-31 03:09:27 +00:00
Charles Kerr df9bd1f713 #667: remote crash exploit in bencode parser 2008-01-31 02:24:43 +00:00
Charles Kerr 410dffd211 part 1 of the bencode exploit fix:
- better error checking for int & string parsing
 - add automated unit tests
2008-01-30 15:39:41 +00:00