Jordan Lee
6ae220dee0
(trunk libT) tr_udpParse(): default to port 80 for URLs with a udp scheme and no explicit port.
2011-03-17 21:22:58 +00:00
Jordan Lee
f4b4ddd231
(trunk libT) better shutdown management of libutp and UDP trackers in tr_sessionClose().
...
This is a little overlapping since the utp code can be closed more-or-less immediately, but the udp manager needs to stay open in order to process the udp tracker connection requests before sending out event=stopped. Moreover DNS resolver can be shut down after the UDP tracker is shutdown.
2011-03-17 18:51:31 +00:00
Jordan Lee
78a4865aa1
(trunk libT) as a followup to r12182, move LPD's periodic upkeep timer into the tr-lpd.c module where it can be started & stopped with the pre-existing tr_lpdInit() and tr_lpdUninit() functions.
2011-03-17 13:16:23 +00:00
Jordan Lee
501f2e106f
(trunk libT) move tr_lpdAnnounceMore() out of the announcer module
...
We can stop local peer discovery immediately during shutdown, but need to leave the announcer running for the event=stopped messages. So it doesn't make sense to keep them on the same periodic timer.
2011-03-17 12:45:29 +00:00
Jordan Lee
6835374661
(trunk libT) move tr_dhtUpkeep() out of the announcer module
...
During shutdown, we can stop DHT almost immediately, but need to leave the announcer running for the DHT tracker event=stopped messages. So it doesn't make sense to keep them on the same periodic timer.
2011-03-17 12:34:43 +00:00
Jordan Lee
686103ae49
(trunk libT) #117 "UDP tracker protocol suppoort" -- in case the tracker gives an error message in response to a connection response, store the error message in the scrape/announce response structs' errmsg fields.
2011-03-17 04:16:19 +00:00
Jordan Lee
13514e16a7
(trunk libT) #4127 "Torrent complete script doesn't pass on the environment" -- fixed with patch from geirha.
...
The fix was to putenv() the new environment variables, then call execvp() instead of execve().
2011-03-16 18:11:48 +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
30f8f499ed
(trunk libT) move the single-use utility function "evbuffer_ref_cleanup_tr_free()" from a public header into a private function to limit its visibility/scope
2011-03-16 17:42:32 +00:00
Jordan Lee
29af00ef56
(trunk libT) make readOrWriteBytes() more readable
2011-03-16 04:44:38 +00:00
Jordan Lee
4844555f26
(trunk libT) remove the "a file disappeared!" check from readOrWriteFile().
...
In both the reading and writing case, this is handled with human-readable errors further up the call chain.
2011-03-16 03:19:56 +00:00
Jordan Lee
7f1a419dd1
(trunk libT) remove unused code from inout.c
2011-03-16 03:17:26 +00:00
Jordan Lee
330e922cc7
(trunk libT) minor tweak to the cache sorting code
2011-03-16 00:49:43 +00:00
Jordan Lee
757dac11ef
(trunk libT) cpu load improvements based on profiling by gunzip
2011-03-15 18:11:31 +00:00
Jordan Lee
591b95286f
Show whether a tracker is http or udp. Without that context, it could be confusing to see the same tracker twice in a tier
2011-03-15 17:03:09 +00:00
Jordan Lee
fee784f1d8
(trunk) #4081 "Add 'cookieString' argument 'torrent-add' method in RPC" -- done.
2011-03-15 04:22:47 +00:00
Jordan Lee
15e2e7d491
(trunk libT) annnouncer.c: as discussed with Waldorf, massage the tracker lists a bit:
...
1. remove duplicate URLs caused by implicit vs. explicit port numbers
2. if two announce URLs are duplicates /except/ for their scheme, put them in the same tier.
3. try announce URLs with a "udp" scheme before trying ones with an "http" scheme.
2011-03-15 03:21:25 +00:00
Jordan Lee
297c24a8a0
(trunk libT) more announce.c work: better handling of incrementing the retry interval on scrape failures
2011-03-14 16:52:47 +00:00
Jordan Lee
cc55286261
(trunk libT) #117 "UDP tracker protocol support (BEP #15 )": (1) use the UDP tracker error response's error string (2) better handling of requests that timeout (3) better filtering of non-tracker UDP messages
2011-03-14 14:15:58 +00:00
Jordan Lee
6b682f8042
(trunk libT) make tr_ptrArrayNth() an inline function
2011-03-14 14:09:41 +00:00
Jordan Lee
46b85c7994
(trunk libT) more tweakin'
2011-03-14 02:40:39 +00:00
Jordan Lee
11e0883ee4
(trunk libT) fix array-bounds-read in the UDP tracker code when an announce or scrape request times out
2011-03-14 02:39:11 +00:00
Jordan Lee
4fc6c1ada2
(trunk libT) add attribution for the fallback tr_htonll() and tr_ntohll() code
2011-03-13 20:39:08 +00:00
Jordan Lee
58c084fbda
(trunk libT) better implementation of tr_htonll() and tr_ntohll()
2011-03-13 20:23:23 +00:00
Jordan Lee
cdff3aa090
(trunk libT) minor tweak: use evutil_closesocket() instead of the older EVUTIL_CLOSESOCKET() macro.
2011-03-13 19:47:21 +00:00
Jordan Lee
e3fab720d1
(trunk) make sure all files with $Id$ has svn:properties set
2011-03-13 14:38:49 +00:00
Jordan Lee
dc8e97eb43
(trunk libT) tweak #includes in announcer-http.c
2011-03-13 14:33:28 +00:00
Jordan Lee
4f6d031a9f
(trunk libT) fix tau_send crash reported by Waldorf overnight in #4114
2011-03-13 14:18:35 +00:00
Jordan Lee
075a0a8b86
(trunk libT) use libevent's portability wrapper for strcasecmp()
2011-03-13 08:21:55 +00:00
Jordan Lee
4a4842fea5
(trunk libT) use libevent2's portability wrappers for inet_ntop() and inet_pton().
...
We currently implement our own versions of these on mingw because that platform doesn't have them... but why reinvent the wheel; libevent has already done the same thing. Let's use libevent2's implementation.
has already done it for us.
2011-03-13 08:15:40 +00:00
Jordan Lee
2cca699f06
(trunk libT) #117 "UDP tracker support (BEP #15 )" -- added request timeout
...
UDP announce and scrapes now have a 120 second TTL.
2011-03-13 06:38:54 +00:00
Jordan Lee
7a24257d00
(trunk libT) tweaks by werehamster
2011-03-13 05:45:34 +00:00
Jordan Lee
5ad95ee3d5
(trunk libT) fix minor memory leak reported by rpc-server.c
2011-03-13 00:35:11 +00:00
Jordan Lee
3cfef5eded
(trunk libT) #117 "UDP tracker protocol support" -- working implementation; needs testing and valgrinding and review.
2011-03-13 00:18:11 +00:00
Jordan Lee
76fdae97cb
(trunk libT) #4106 "Assert in buildHandshakeMessage, r12131" -- probable fix
2011-03-11 19:28:44 +00:00
Jordan Lee
77a0a0b619
remove unused field
2011-03-11 17:26:41 +00:00
Jordan Lee
99ab56a82f
(trunk libT) copyediting: removing trailing spaces from lines
2011-03-11 15:44:24 +00:00
Jordan Lee
7d551f609c
(trunk libT) implement multiscrape.
2011-03-11 15:11:37 +00:00
Jordan Lee
d1f3a885a5
(trunk libT) ensure that a tr_torrent's peer id is initialized when the tr_torrent is constructed
2011-03-11 15:00:10 +00:00
Jordan Lee
a3cfc11268
(trunk libT) repeat the r12129 fix for delegating https scrapes
2011-03-11 13:04:09 +00:00
Jordan Lee
9704888172
(trunk libT) fix r12127 bug with delegating https trackers
2011-03-11 05:48:57 +00:00
Jordan Lee
ef5bb89e91
(trunk libT) optimization for ocelot.
...
When seeding on a private tracker, ocelot omits other seeds from the list of peers returned. We can test for this and update our "seed probability" field accordingly.
2011-03-11 04:57:53 +00:00
Jordan Lee
b46d3a2713
(trunk libT) #117 "UDP tracker protocol support (BEP #15 )" -- refactor announcer.c so that alternate tracker protocols can be supported.
...
This commit adds a set of package-visible structs and functions to allow delegating announces and scrapes to different protocol handlers. (Examples: struct tr_announce_request, struct tr_announce_response, struct tr_scrape_request, struct tr_scrape_response.) HTTP is the only protocol handler currently implemented; however, this provides a clean API for other protocol handlers, and having this in trunk will help shake out any bugs in this refactoring.
In addition, logging via the TR_DEBUG_FD environment variable is vastly improved in the announcer module now.
2011-03-11 04:19:01 +00:00
Jordan Lee
896c9b54e1
(trunk libT) Add an enumeration for the peer id length. Use that enum for the peer_id fields in tr_session and tr_torrent.
...
This also avoids an extra malloc/free per-torrent and per-session, but mostly this tweak is for the extra readability of the PEER_ID_LEN=20 enum.
2011-03-10 12:35:23 +00:00
Jordan Lee
b38466323b
(trunk libT) use a hex key for tracker announces.
2011-03-10 11:46:22 +00:00
Jordan Lee
3933d84e1c
(trunk libT) #4084 "after reaching seed state, no new peers are acquired" -- possible fix.
...
This revises r12110 based on feedback from sadface about the use of tr_atom.uploadOnly.
2011-03-07 14:59:47 +00:00
Jordan Lee
b4538e0625
(trunk libT) copyediting.
...
1. make some accidentally-public functions/variables private
2. comment out tr_generateAllowedSet() since we're not using it
3. argument list indentation
2011-03-07 14:33:45 +00:00
Jordan Lee
d2270852af
(trunk libT) simpler implementation of the idea behind the code removed in r12108 and r12109.
2011-03-07 04:48:46 +00:00
Jordan Lee
6b4d500c36
(trunk libT) finish r12108
2011-03-07 03:46:26 +00:00
Jordan Lee
c9897ff97a
experimental fix for #4084
2011-03-06 23:49:40 +00:00