Commit Graph

240 Commits

Author SHA1 Message Date
Charles Kerr acc8e64102 (trunk) another test build that logs tracker announces to a file in /tmp, so you probably shouldn't use it unless I've asked you to. After hudson-t is done building a debug dmg of this, I'll commit r10155 to remove the logging code 2010-02-10 04:35:59 +00:00
Charles Kerr 2cbfe53717 (trunk libT) #2887 "dangling pointer in 1.81" -- fixed in trunk for 1.90 / 1.8x 2010-02-10 03:26:19 +00:00
Charles Kerr a8a5a6cae5 (trunk) revert that last commit, which was only intended for about a dozen people. Unless you're one of them (and you don't know, then you're not) DON'T USE r10145. r10145 -- **ONLY** r10145 -- stored user's tracker announces to a logfile in /tmp. 2010-02-09 02:46:40 +00:00
Charles Kerr 8e51476258 pulling my hair out.... gaaaah 2010-02-09 01:47:16 +00:00
Charles Kerr 8b3fb8a5e8 (trunk libT) #2854 "`tracker did not respond' errors" -- lengthen the time we wait before timing out. This was shortened not too many releases ago to prevent a logjam from dead tpb tracker announces; however, we now have better ways of doing that and the short deadline may be contributing to the "did not respond" errors. 2010-02-05 04:54:08 +00:00
Charles Kerr d118db0f37 (trunk libT) remove dead announce fields like supportscrypto and requirescrypto. these don't appear to be supported by any of the major clients so why waste the announce bandwidth... 2010-02-03 06:32:14 +00:00
Charles Kerr 5014319622 (trunk libT) experimental commit for faster tracker announces 2010-02-03 03:38:13 +00:00
Charles Kerr 931558aea3 (trunk libT) fix DNS timing issue reported by gn0s1s in irc 2010-01-28 18:25:18 +00:00
Charles Kerr dd41b5c257 (trunk libT) #2819 "announce URLs containing raw IP addresses won't announce/scrape in 1.82" -- possible fix 2010-01-28 17:24:23 +00:00
Charles Kerr a334b422c3 (trunk) remove unnecessary #includes 2010-01-28 13:33:40 +00:00
Charles Kerr a888c4d425 (trunk libT) web.c: add a cache for unresolvable hostnames 2010-01-27 06:40:12 +00:00
Charles Kerr 3ace0afaae (trunk libT) #2792 "since 1.80 update downloads failing" -- try to handle non-resolving tracker addresses without blocking in curl 2010-01-26 07:22:50 +00:00
Charles Kerr c2adab97b2 (trunk libT) fix typo from prev commit 2010-01-25 04:26:08 +00:00
Charles Kerr 4164b17977 (trunk libT) extend the lifespan of the cached DNS entries 2010-01-25 04:24:48 +00:00
Charles Kerr 1d1b09b75b (trunk libT) #2804 "segmentation fault add-by-url when url scheme is ftp" -- fixed in trunk for 1.83 2010-01-25 04:00:08 +00:00
Charles Kerr ae966e0725 (trunk libT) increase the announce timeout from 30 seconds to 45 seconds. 2010-01-24 23:32:49 +00:00
Charles Kerr 7e5e4db797 (trunk libT) #2783 "blocklist is empty" -- fix this 1.82 regression. apparently update.transmissionbt.com doesn't like it when you make the ":80" in the Host: header explicit instead of implicit... so probably other web servers have the same problem too. 2010-01-24 19:22:22 +00:00
Charles Kerr d97a04b001 (trunk libT) when adding the Host: header by hand, make include the host's port 2010-01-23 07:51:51 +00:00
Charles Kerr 2be24ec9a8 (trunk libT) #2783 "starting with r9992, IP blocklist is empty" -- when replacing a URL's hostname with an IP address before passing the URL to curl, manually set the Host: header to the original hostname. (Xref: #2781) 2010-01-22 07:27:19 +00:00
Charles Kerr 0f6214d9ae (trunk libT) if we're calling evdns_init(), we probably ought to call evdns_shutdown() on exit... 2010-01-22 03:39:21 +00:00
Charles Kerr 1f44272678 (trunk libT) #2781 "1.80 freezes on startup" -- possible fix. implement nonblocking dns before we hand the URLs over to libcurl 2010-01-22 02:40:11 +00:00
Charles Kerr e2feb075b9 (trunk libT) reinstate proxies in the http announce 2010-01-10 20:15:56 +00:00
Charles Kerr 2ac553361a (trunk libT) #2416 "crash in event_queue_insert" -- I think this is happening if we queue up two changes, one to listen for read/write, and then a second one to delete the polling, in kqueue's event mechanism, at libcurl's request. Let's try disabling kqueue in libevent and use poll/select instead. 2010-01-10 19:52:01 +00:00
Mitchell Livingston 14da64ec06 assorted small cleanup and log removal 2010-01-10 16:26:30 +00:00
Mitchell Livingston 5af45426d4 random code optimization: when escaping http, use an if with a lot less comparisons rather than a switch 2010-01-10 14:56:04 +00:00
Mitchell Livingston 8f6e1dedf5 revert r9505, which appears to cause a crash on launch 2010-01-10 14:36:53 +00:00
Charles Kerr 5a60e4549d (trunk libT) #2416 "crash in event_queue_insert" -- another guess, based on the idea that we might queue two actions (one to insert, one to delete) on the same event before libevent's dispatcher is invoked 2010-01-10 08:53:17 +00:00
Charles Kerr 69cb1362e3 (trunk libT) #2416 "crash in event_queue_insert" -- see if we can get the program to crash in a different way. 2010-01-09 07:27:45 +00:00
Charles Kerr 0bb355d8df (trunk libT) #2416 "crash in event_queue_insert" -- continue throwing the kitchen sink at this ticket. (1) disable proxies to see if that makes any difference (2) rearrange the sequencing in sock_cb() to unconditionally delete the active event before doing anything else (3) use a libevent timer instead of CURLOPT_TIMEOUT to workaround curl bug http://tinyurl.com/ycm5d3e 2010-01-08 21:45:56 +00:00
Charles Kerr 5c26afdb52 happy new year! 2010-01-04 21:00:47 +00:00
Charles Kerr 339173d1b4 (trunk libT) make sure to restart curl's periodic timer 2010-01-04 20:06:39 +00:00
Charles Kerr 8ae3911477 (trunk libT) #2416 "crash in event_queue_insert" -- I am really quite sick of this bug. It's not reproducible at all under Linux and appears to be a bug in libevent's kqueue implementation. In this commit, we leak the event object on OS X. 2009-12-29 00:00:33 +00:00
Charles Kerr 6151881a03 (trunk libT) #2416 "crash in event_queue_insert" -- instead of freeing libevent's event objects, pool and reuse them. *sigh* 2009-12-28 23:29:59 +00:00
Charles Kerr ee58472ec2 (trunk libT) fix minor bug in r9651 "Reduce SO_SNDBUF and SO_RCVBUF for tracker announce/scrape messages" -- libcurl's CURLOPT_SOCKOPTFUNCTION doesn't return void; it returns an int that is nonzero if an error occurs. 2009-12-28 23:25:50 +00:00
Charles Kerr ac202f13bb (trunk libT) remove dead code -- tr_assert() 2009-12-28 23:11:26 +00:00
Charles Kerr bc86c0b364 (trunk libT) #2416 "crash in event_queue_insert" -- maybe this will finally fix it... 2009-12-26 23:57:25 +00:00
Charles Kerr 8903e1b4e3 (trunk libT) #2416 "crash in event_queue_insert" -- another experimental commit. /as an experiment/ let's just leak that event struct and see if that makes the crash go away. Obviously leaking those objects is not a long term fix but this will help point the way towards the real fix. 2009-12-24 18:50:34 +00:00
Charles Kerr b8d7e76750 (trunk libT) #2416 "crash in event_queue_insert" -- possible fix. it looks like the kqueue client is accessing the event after the callback and after event_del() is being called. *If* that's the case I don't know if it's a libevent bug or if libtransmission is making assumptions it shouldn't've... but it's easy enough to keep the memory in a pool and free it later when it's safer to do so. 2009-12-23 16:12:18 +00:00
Charles Kerr ef650d0398 (trunk libT) it certainly smells like we're using freed memory in the libcurl + libevent code in web.c... let's trash the structures right before free()ing them 2009-12-18 17:32:16 +00:00
Charles Kerr 0601442f58 (trunk libT) #2416 "crash in event_queue_insert" -- another stab at fixing this. yay 2009-12-14 18:24:26 +00:00
Charles Kerr 87aefaf5ff (trunk libT) #1699 "announce to multiple trackers at once" -- fix minor bug in reporting scrape results when an announce returns enough information that a separate scrape isn't necessary. 2009-12-14 17:17:05 +00:00
Charles Kerr ee0de4b06c (trunk libT) keep simplifying web.c... is there anything left to strip out? 2009-12-14 14:25:22 +00:00
Charles Kerr c33aef7e2d (trunk libT) more web.c simplification + handle an unhandled case CURL_POLL_NONE in the socket callback. 2009-12-14 12:54:30 +00:00
Charles Kerr 2653cd5153 (trunk libT) keep simplifying web.c. also, fix an improbable FMR at shutdown 2009-12-14 05:11:33 +00:00
Charles Kerr 6d9e6ececc (trunk libT) remove some more obsolete debug messages and other cruft from web.c 2009-12-13 19:33:02 +00:00
Charles Kerr 485b64a5e3 (trunk libT) it never ends 2009-12-13 17:54:01 +00:00
Charles Kerr a89d2217af (trunk libT) #2416 "crash in event_queue_insert()" 2009-12-11 15:41:34 +00:00
Charles Kerr 5f1f2b1e85 (trunk libT) use curl_multi_socket_action(), even on OS X. 2009-12-10 19:05:21 +00:00
Charles Kerr 1c772bd1fe (trunk libT) finally get rid of the last remnants of tr_timer 2009-12-10 05:52:46 +00:00
Charles Kerr 78ead8c3dd (trunk) update the copyright notices 2009-12-05 02:19:24 +00:00
Charles Kerr 6eec59008c (trunk libT) experimental: Reduce SO_SNDBUF and SO_RCVBUF for tracker announce/scrape messages. Reduce SO_RCVBUF for outgoing peer connections on seeding torrents. 2009-12-02 05:30:46 +00:00
Charles Kerr 63027e1d5a (trunk libT) resolve "noslashes" vs "keep_slashes" variable name inconsistency between the declaration and the definition of tr_http_escape() 2009-11-29 08:05:47 +00:00
Charles Kerr 9383a6abfd (trunk libT) #2096: add code magnet URL parser and unit tests 2009-11-20 04:38:19 +00:00
Charles Kerr 44df1d5548 (trunk libT) #2112: provide "ipv6=" parameter to trackers 2009-11-10 17:03:23 +00:00
Charles Kerr 55c59fa478 (trunk) fix r9380 #2412 timing issue 2009-10-23 05:48:56 +00:00
Charles Kerr 9affe9ef59 (trunk libT) #2412: tracker query should use bind address 2009-10-22 05:15:34 +00:00
Charles Kerr 459bea37f9 (trunk libT) remove a couple more debugging printf() calls 2009-09-26 13:21:46 +00:00
Charles Kerr 86ada18266 (trunk)
#1699: Announce to multiple trackers at once
#2424: Tracker address is not listed in GTK client.
2009-09-25 21:05:59 +00:00
Charles Kerr 172d64c32c (trunk libT) #2416: possible fix for 'crash in event_queue_insert' on Snow Leopard 2009-09-23 15:28:11 +00:00
Charles Kerr 3524ae637e (trunk libT) sync the announce/scrape timeout intervals in trunk with those in 1.7x 2009-09-08 18:39:20 +00:00
Charles Kerr bd41421591 decide at runtime, rather than compile time, whether to use curl_multi_action 2009-09-08 05:18:46 +00:00
Charles Kerr 786887b147 (trunk libT) tell libcurl to set a time limit of 120 seconds for announces; 30 seconds for scrapes 2009-08-22 23:22:50 +00:00
Charles Kerr cb79214854 (trunk) remove trailing spaces 2009-08-10 20:04:08 +00:00
Charles Kerr 24746cff7f (trunk libT) minor #include futzing 2009-07-01 14:58:57 +00:00
Charles Kerr b2a6def953 (trunk libT) fix small dead code. found by clang static analyzer and reported by d0k 2009-05-13 19:04:14 +00:00
Charles Kerr 03a7251054 (trunk) make it possible to #include "version.h" without having to add -I${TOP}/libtransmission/ to your CFLAGS 2009-04-13 19:04:21 +00:00
Charles Kerr 9e9743c6b1 (trunk libT) re-add the curl "easy queue" from 1.4x to queue libcurl tasks to ameliorate complaints of "too many open files" 2009-04-05 13:00:17 +00:00
Charles Kerr 491a6ac63d (trunk libT) #1844: Prefer curl_multi_socket_action() to curl_multi_perform() in modern versions of libcurl 2009-02-18 16:16:24 +00:00
Charles Kerr 236f8ad2ff (trunk libT) yet another possible fix for the libcurl/libevent/kqueue issue 2009-02-10 18:03:55 +00:00
Erick Turnquist f3a2a35952 (trunk libT) only resolve ipv4 tracker addresses for now 2009-02-07 00:20:47 +00:00
Charles Kerr eb538aa492 (trunk libT) #1748 keep looking for a workaround 2009-02-06 21:14:05 +00:00
Charles Kerr 8572d81e00 (trunk libT) experimental fix for #1748: crash in event_queue_insert in thread1 2009-02-05 22:00:21 +00:00
Charles Kerr 46ff5598a7 (trunk libT) more hoops for Biiaru 2009-02-05 20:53:59 +00:00
Charles Kerr ee58379377 (trunk libT) #1748: judging from Biiaru's testing yesterday after I left, the problem is somewhere in web.c. Let's start by adding some cruel assertions in there. 2009-02-05 14:52:00 +00:00
Charles Kerr adc6791de3 (trunk libT) add more assertions to ensure that the libevent calls are all being made from the same thread 2009-01-28 19:35:39 +00:00
Charles Kerr 0b5558c3e3 (trunk libT) silence curl_easy_setopt -Wunreachable-code warnings 2009-01-24 00:25:11 +00:00
Charles Kerr 4f95edf647 (trunk libT) minor cleanup 2009-01-17 22:49:15 +00:00
Charles Kerr bc2b7fcb03 (trunk libT) minor tweaks to reduce libtransmission shear between trunk and 1.5x 2009-01-16 17:29:42 +00:00
Charles Kerr fe816d8135 (trunk) update the GPL code's copyright dates 2009-01-10 23:09:07 +00:00
Charles Kerr 7683452514 (trunk libT) undo r7645 based on feedback that the experimental code did improve performance. 2009-01-09 19:24:40 +00:00
Charles Kerr f7db63329d (trunk libT) clear out the experimental code that accumulated while trying to find the fix to the tracker-announces-never-finish bug. This revision is 1.42's version plus bugfixes. 2009-01-08 20:35:10 +00:00
Charles Kerr 217d3d3c91 (trunk libT) this diff has held #1631 at bay for 18 hours now... is it finally fixed? :) 2008-12-31 14:28:20 +00:00
Charles Kerr 68ad6f452c (trunk libT) probable fix for #1631 2008-12-30 01:02:53 +00:00
Charles Kerr eff510da18 (trunk libT) simplify web.c's remove_finished_tasks() a bit 2008-12-29 19:02:12 +00:00
Charles Kerr 415f04059f (trunk libT) wrap tr_inf(), tr_msg(), tr_dbg() calls inside a check to see if that debugging level is active. That way that function calls in the vararg list won't be invoked unless that level of verbosity is actually turned on. 2008-12-29 18:11:56 +00:00
Charles Kerr db381a5e40 (trunk libT) revert #7517 since it didn't do any good. disable http connection reuse. 2008-12-29 07:51:09 +00:00
Charles Kerr 1582135e3c (trunk libT) experimental test for #1631 in web.c::setsock() 2008-12-26 20:14:47 +00:00
Charles Kerr dfcc9173e5 (trunk libT) #include "session.h" cleanup from wereHamster 2008-12-23 17:27:15 +00:00
Charles Kerr 9594112d27 updated email address 2008-12-16 00:20:44 +00:00
Charles Kerr 788b397ecc (trunk libT) more semantic cleanup: tr_handle->tr_session, int->tr_bool, int->tr_port 2008-12-14 11:21:11 +00:00
Charles Kerr b9b67ee2c2 (libT) libcurl configuration tweaks 2008-12-02 23:54:26 +00:00
Charles Kerr d12af295c1 use tr_bool instead of C bitfields. (http://blogs.msdn.com/oldnewthing/archive/2008/11/26/9143050.aspx) 2008-11-28 22:11:41 +00:00
Charles Kerr f336aff2e7 (libT) fix a pair of dead store warnings from m1b & clang 2008-11-04 19:40:18 +00:00
Charles Kerr d0ade0358f (libT) #1399: No tracker response result in error: 0 in the log 2008-10-31 19:01:27 +00:00
Charles Kerr 4480da5403 (libT) #1359: Transmission shows no tracker error when unable to contact the tracker 2008-10-29 16:06:14 +00:00
Charles Kerr 98168cb605 (libT) #1359: Transmission shows no tracker error when unable to contact the tracker 2008-10-27 18:00:03 +00:00
Charles Kerr 06939cafa6 (libT) low-hanging fruit discovered from softwareelves' shark profile. 2008-10-26 15:39:04 +00:00
Charles Kerr 7ec84486ee (libT) more win32 portability fixes from Spry 2008-10-20 19:34:19 +00:00
Charles Kerr 071c6733e5 this seems to work pretty well. maybe it's done now? 2008-10-18 15:45:12 +00:00
Charles Kerr 00cfd90bb5 <bullwinkle>this time for sure!</bullwinkle> 2008-10-18 00:20:37 +00:00
Charles Kerr a44f3d75a0 more hacking on libcurl + libevent integration 2008-10-17 20:57:54 +00:00
Charles Kerr 123a5c53a9 Try to hammer out some of the bugs in web.c. This still feels like a work in progress. Also, add a queue for tracker requests so that we don't wind up with 100s of concurrent http requests when there are a lot of torrents. 2008-10-16 05:24:57 +00:00
Mitchell Livingston 96f3939edd 2 arguments were swapped in curl_multi_socket_action() 2008-10-15 23:21:53 +00:00
Charles Kerr 26cac56509 (libT) if a tracker announce succeeds and the tracker's response is a superset of a scrape response, then treat it as a successful announce AND scrape. 2008-10-15 17:53:42 +00:00
Charles Kerr 2f3580cc90 (libT) possible backwards compatability tweak for libcurl < 7.16.3 2008-10-15 17:12:53 +00:00
Charles Kerr 0b991a55c7 (libT) try again to get the libevent+libcurl code working 2008-10-15 16:43:51 +00:00
Charles Kerr 88ce8a5c44 more changes inspired by spry's `winport' code: for portability, use the standard __VA_ARGS__ macro for variadic macros instead of the CPP extensions. 2008-10-13 22:45:05 +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 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 8c421bd0ec pump the web connections more frequently when there are tasks pending. this may speed up the shutdown flurry of `stop' announcements 2008-09-03 19:13:19 +00:00
Charles Kerr a11aac24ca (libT) add an environmental variable to enable libcurl verbosity 2008-08-22 19:14:19 +00:00
Charles Kerr 98e1b995e0 possible fix for #1134: revert libtransmission/web.c back to r6354 2008-08-06 23:33:29 +00:00
Charles Kerr 9006f75edb #1117: crash on exit in curl_multi_socket_action() 2008-07-29 18:53:41 +00:00
Charles Kerr 703f96aeb3 #1122: faster http processing 2008-07-29 00:51:07 +00:00
Charles Kerr 2eb89eb2a7 (libT) fix some minor warnings foudn by clang's scan-build and reported by m1b 2008-07-17 20:33:34 +00:00
Charles Kerr 7974a1e50a (libT) add proxy port arg as requested by BentMyWookie 2008-07-15 01:03:03 +00:00
Charles Kerr af8e44a5e7 maybe *now* 1.30 is feature complete: by popular demand, add proxy support for SOCKS4/SOCKS5. This will break the mac build temporarily. 2008-06-11 20:45:53 +00:00
Charles Kerr b94893a4c9 wire up the backend proxy support. 2008-06-10 16:16:31 +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 f861f39711 maybe fix the tracker authentication problems reported by demio 2008-06-05 16:35:33 +00:00
Charles Kerr fb8dccf179 undo the curl timeout option from earlier today 2008-05-09 04:00:14 +00:00
Charles Kerr 20986a5dac raise the timeout interval that we tell curl to use 2008-05-08 17:15:06 +00:00
Charles Kerr f48b2b24e9 tell webcurl to timeout tracker requests after 30 seconds 2008-05-08 17:05:43 +00:00
Charles Kerr 6ba02efb58 #915: Does too many wake-ups when idle 2008-05-06 15:52:57 +00:00
Charles Kerr 1dfc98fc77 fix another crash-on-shutdown in the new web code 2008-04-28 13:29:38 +00:00
Charles Kerr 3f71ea1f51 fix one of the crash-on-shutdown bugs reported by Gimp_ 2008-04-27 18:27:32 +00:00
Charles Kerr b8fc148fe0 experiment to lower CPU for Gimp_ 2008-04-27 17:22:37 +00:00
Charles Kerr b66af4ab07 curl_easy_getopt(CURLINFO_RESPONSE_CODE) needs a pointer to a long, not an int. 2008-04-27 07:15:20 +00:00
Charles Kerr c4fc897b38 steal some curl configuration options from rtorrent :) 2008-04-25 23:54:02 +00:00
Charles Kerr 03572a0ad5 add tr_webClose() 2008-04-25 19:46:36 +00:00
Charles Kerr 0545e70f5b (gtk) use libT's curl wrapper for port testing & getting the blocklist 2008-04-25 18:35:48 +00:00
Charles Kerr cffd7f92e2 more hacking on the curl code, based on libcurl's "hiperfifo.c" sample code 2008-04-25 16:07:06 +00:00
Charles Kerr dbf3e95cd9 make the tracker response lines more human-readable 2008-04-25 04:26:04 +00:00
Charles Kerr 47021f1a12 fold most of the "deep logging" functions into a single function 2008-04-25 02:57:33 +00:00
Charles Kerr 169e717474 fix failed buildin 2008-04-24 19:49:13 +00:00
Charles Kerr 335ff66baa reported by John_Clay: allow the connection to continue even if the certificate can't be authenticated. 2008-04-24 19:48:27 +00:00
Charles Kerr aa731deaa6 maybe make hudson happy 2008-04-24 19:42:29 +00:00
Charles Kerr 73b1f106a3 maybe work on libcurl < 7.16.3 2008-04-24 19:38:59 +00:00
Charles Kerr 7ef2511ca8 #377: preliminary https support. this commit probably breaks mac and cli and is not for the faint of heart. 2008-04-24 01:42:53 +00:00