Charles Kerr
92ee6566db
(trunk libT) #1675 : better utf8 validation of metainfo name, creator, and comment fields
2009-01-10 22:48:58 +00:00
Charles Kerr
98420365e9
(trunk libT) remove a small number of redundant or unnecessary asserts
2009-01-08 04:43:00 +00:00
Charles Kerr
141847b902
(trunk libT) update the copyrights on some files that no longer have old code in them
2009-01-07 06:53:29 +00:00
Charles Kerr
51e68d6e56
(trunk libT) new peer request fifo queue with log(N) search time. new unit tests for the queue. new utility tr_lowerBound()
2009-01-04 16:29:44 +00:00
Charles Kerr
dfa0622a6c
(trunk libT) add "deep log" message to help track down freeze reported by the|Navigator. also, small + cheap speedup in tr_deepLoggingIsActive()
2009-01-03 02:43:17 +00:00
Charles Kerr
5e9af46612
(trunk libT) make the tr_bandwidth macros into safer inline funcs. inline utils' one-liners.
2009-01-02 20:12:23 +00:00
Charles Kerr
ad69a937ef
(trunk libT) have a pool of reusable evbuffers
2008-12-30 20:32:00 +00:00
Charles Kerr
a8e15578f3
(trunk libT) use torrent's unique ID as the torrent's lookup key
2008-12-29 21:17:48 +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
7a4002dd3a
(trunk libT) avoid some unnecessary memory fragmentation... for composited objects that have a tr_bitfield, contain it directly rather than a pointer to one allocated elsewhere on the heap.
2008-12-29 09:51:54 +00:00
Charles Kerr
f8a7c4b347
#1406 : need tr_getDefaultDownloadDir() for consistency between apps
2008-11-15 17:39:54 +00:00
Charles Kerr
06939cafa6
(libT) low-hanging fruit discovered from softwareelves' shark profile.
2008-10-26 15:39:04 +00:00
Charles Kerr
188adb1d6a
reverse patch #6948 . one of the new gcc attributes seems to be causing trouble.
2008-10-23 02:37:21 +00:00
Charles Kerr
f0eddb5c20
(libT) move the TR_GNUC macros from utils.h to a standalone header file so other libT headers can use them without getting an extra dependency tree.
2008-10-22 18:42:37 +00:00
Charles Kerr
674307add7
Add a new token, TR_DEFAULT_ENCRYPTION, and use it as the default in the various clients.
...
Add a new #define, TR_EMBEDDED. When it's set, gettext is disabled and non-encrypted connections are the default.
2008-10-22 17:16:12 +00:00
Charles Kerr
fc99ff6881
(libT) add some extra gcc safeguards. fix a couple of compiler warnings in makemeta
2008-10-22 17:14:50 +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
b04be5fb2e
make MAX_PATH_LENGTH private to libtransmission. add tr_dirname() and tr_basename() utility / portability wrappers
2008-10-14 03:39:16 +00:00
Charles Kerr
e3a5524189
have tr_buildPath() allocate memory from the heap rather than using an input buffer
2008-10-14 03:03:29 +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
4fab4c9e9b
(libT) finish killing tr_errno.
2008-10-03 04:49:06 +00:00
Charles Kerr
4c34b2bc89
rpc-server cleanups. add true wildmat control. break the Mac build a little harder.
2008-09-25 18:48:09 +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
e07bc3543e
(wx) get the wxWidgets port building again. :)
2008-09-19 17:17:34 +00:00
Charles Kerr
ee10a8acab
(libT) #1255 : fails to parse announce URLs that have leading or trailing spaces
2008-09-05 19:11:30 +00:00
Charles Kerr
c32491ab3a
(libT) remove a little more dead code
2008-08-22 15:33:55 +00:00
Charles Kerr
ef68e36a0d
(libT) more dead code removal: tr_compareUint32(), tr_compareUint64(), tr_strcmp(), tr_strcasecmp()
2008-08-22 14:52:20 +00:00
Charles Kerr
d323a99cdd
undo part of r6616 to address the assertion failure reported by andersos and Waldorf
2008-08-22 01:27:00 +00:00
Charles Kerr
7e4fb99f8c
* add DISABLE_GETTEXT preprocessor directive to turn off i18n in libtransmission for embedded devices.
...
* remove `wchar.h' #include from shttpd that broke the compile on embedded devices.
2008-08-21 21:04:57 +00:00
Charles Kerr
ca45125259
(libT) more dead code removal: tr_compareTime() and tr_compareDouble()
2008-08-21 20:39:57 +00:00
Charles Kerr
1105dc0038
(libT) remove some dead functions: tr_calloc(), tr_compareUint16(), tr_compareUint32()
2008-08-21 19:03:56 +00:00
Charles Kerr
58881d45be
more metainfo/bencode cleanup
2008-08-21 16:12:17 +00:00
Mukund Sivaraman
ed7685dd1a
Make tr_bitfieldHas() a macro
2008-08-20 13:45:52 +00:00
Mukund Sivaraman
de62de3e19
Replace random number generation code
2008-08-14 11:11:25 +00:00
Charles Kerr
fc87510be3
(gtk) #1108 : transmission includes several unlocalized strings
2008-07-25 11:50:17 +00:00
Charles Kerr
2f239319b0
add a portability wrapper ``tr_snprintf()'' around snprintf()
2008-07-15 17:16:57 +00:00
Charles Kerr
518f277e9f
(RPC) add utility arguments for torrent-info: sort by (activity|age|id|name|progress|ratio|state|tracker), filter by (active|all|downloading|paused|seeding)
2008-06-16 22:11:50 +00:00
Charles Kerr
f0229ed8ad
(libT) allow custom blocklists... now all you need to do is place a file in the blocklists/ folder and Transmission will automatically use it the next time it starts.
2008-06-11 16:15:45 +00:00
Charles Kerr
dce24eb1f0
libT: first cut at implementing the internal peers' request queues as pieces rather than blocks, as discussed with erdgeist and denis, to avoid a couple of nasty CPU bottlenecks.
2008-06-09 22:53:45 +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
e212eeceb7
add first draft of tr_bitfieldFindTrue() courtesy of erdgeist
2008-06-07 14:41:31 +00:00
Charles Kerr
041561f232
minor refactoring of tr_bitfield to (a) simplify the tests and (b) make things easier to read
2008-06-07 01:44:54 +00:00
Charles Kerr
7b88afdca7
(libT) 1. tweak tr_bitfieldTestFast(). 2. add tr_memdup()
2008-06-06 23:53:30 +00:00
Charles Kerr
2878d0d32e
bitfield speedups written by denis__. Thanks!
2008-06-05 20:21:56 +00:00
Charles Kerr
e391ef6e1a
on shutdown, close the most active torrents first. That way if we can't get everyting closed in a reasonable amount of time, at least we get the ones that affect stats first.
2008-05-30 17:22:26 +00:00
Charles Kerr
7beacb3032
(1) RPC "add-torrent" now lets clients embed base64-encoded metainfo directly into the request
...
(2) remove the RISON code; it didn't make the final cut
(3) add base64 encode/decode utilities and unit tests
2008-05-20 17:33:54 +00:00
Charles Kerr
d7f0e0fa1e
* better RPC handling of requests submitted via http POST
...
* plug a pair of minor memory leaks reported by valgrind.
2008-05-19 18:16:58 +00:00
Charles Kerr
2c79888a93
RPC/IPC redesign
2008-05-18 16:44:30 +00:00
Charles Kerr
078ea29f37
add tr_strdup_printf()
2008-05-15 15:44:51 +00:00
Charles Kerr
0f9ca34848
#917 : when seeding, drop peers that have everything you have (instead of just dropping seeds)
2008-05-06 19:06:46 +00:00
Charles Kerr
a362df0a14
#905 : update peer_id client lists. add a dozen or so new clients from Azureus (thanks amc1!)
2008-04-29 16:57:16 +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
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
Mitchell Livingston
1d40202bfc
string folding and dead code removal
2008-04-06 04:16:05 +00:00
Charles Kerr
8930e63e8b
#840 : bencode.c (and others) does not compile without libintl.h
2008-04-05 20:49:51 +00:00
Charles Kerr
39a7583f82
rename tr_httpParseUrl() -> tr_httpParseURL()
2008-03-24 19:29:25 +00:00
Charles Kerr
910d77ae12
( #814 ) require a valid announce URL when creating torrents
2008-03-24 15:58:06 +00:00
Mitchell Livingston
128fa0aedf
Put in function for localization (as suggested on the cocoa dev list) and comment it out because i can't get it working as desired yet.
2008-03-18 19:18:22 +00:00
Charles Kerr
29f092197f
#138 : per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages#138: per-torrent messages
2008-03-13 03:53:18 +00:00
Charles Kerr
daddf2c3ef
(gtk) fix minor compiler warning when #including <libtransmission/utils.h>
2008-03-05 01:05:42 +00:00
Mitchell Livingston
052d849b59
get mac build compiling again
2008-03-04 02:23:01 +00:00
Charles Kerr
84a8592d1d
first cut at adding i18n hooks into libtransmission.
2008-03-04 02:02:25 +00:00
Charles Kerr
24e05bf3fb
harden the bitfield handling to handle corrupt messages from peers. This is in response to Ryoujin's crash report in the forums ( http://forum.transmissionbt.com/viewtopic.php?p=20414#20414 )
2008-03-02 23:44:34 +00:00
Charles Kerr
d2f1c7aff3
added tr_sha1_to_hex()
2008-02-25 20:21:22 +00:00
Charles Kerr
deaeb24cb5
cleanup #includes for errno & strerror
2008-02-19 04:16:04 +00:00
Charles Kerr
de515ee339
if the torrent's download path doesn't exist, don't create it -- it's might be a removeable disk that got unplugged.
2008-01-18 19:13:32 +00:00
Charles Kerr
dd75a769c9
fix tr_mkdirp()'s errno/retvals.
2008-01-18 01:40:41 +00:00
Charles Kerr
15ffb4232e
tr_stat.ratio now returns TR_RATIO_INF when appropriate
2008-01-04 19:13:30 +00:00
Charles Kerr
ce6c33b7bf
set copyright info to 2008
2008-01-01 17:20:20 +00:00
Charles Kerr
73ee11f233
Use libnatpmp for port mapping. rewrite the upnp/natpmp manager.
...
NOTE: this will break the xpjets build until SoftwareElves or a volunteer patches the xcode project file to make a libnatpmp library just like was done for libminiupnp.
2007-12-08 19:34:15 +00:00
Charles Kerr
0663c4aef7
possible fix for Zeph's "too many open files" bug report.
2007-11-26 21:26:01 +00:00
Charles Kerr
0a61e04757
now that libevent has a stable 1.4 release out with the features & fixes we wanted, aim third-party/libevent/ at libevent's 1.4 maintainance branch instead of their trunk.
2007-11-20 03:11:50 +00:00
Charles Kerr
8516860fec
fix a bug in tr_stat's availability numbers, reported by BentMyWookie
2007-11-11 16:33:04 +00:00
Charles Kerr
fd430fde90
undoing the r3773-r3774 experiment.
2007-11-09 20:07:52 +00:00
Charles Kerr
fda79c7eef
oops, wrong #include for NSCParameterAssert in r3773.
2007-11-09 19:51:48 +00:00
Charles Kerr
67b719c2de
on Darwin, use NSCParameterAssert() instead of assert().
2007-11-09 19:50:40 +00:00
Charles Kerr
60aab6c433
remove libtransmission code that duplicates functionality in libevent
2007-11-06 21:14:30 +00:00
Charles Kerr
9df263326d
use Thomas Bernard's miniupnp library instead of rolling our own.
2007-11-06 16:02:50 +00:00
Charles Kerr
96351b93ef
part 1 of the data corruption fix: plug the leaky abstraction in fdlimit
2007-10-30 18:35:06 +00:00
Charles Kerr
6527f4e12a
dead code removal.
2007-10-20 15:17:36 +00:00
Charles Kerr
212470560e
fix overflow error that caused timers with intervals larger than 35 minutes to be lost... which is nastier than it sounds, since that's shorter than many tracker announce intervals.
2007-10-18 18:32:58 +00:00
Charles Kerr
3210f92085
const-ify tr_msg()'s input arguments
2007-10-17 18:24:53 +00:00
Charles Kerr
efe4847204
new utility (tr_loadFile), and reimplement metainfo's "readtorrent" to use it.
2007-10-15 20:15:34 +00:00
Charles Kerr
c75f49bc26
* add a per-peer request queue to hold the next 10-15 seconds' worth of requests so that we always have more requests at hand when the current requests start to run low.
...
* increase the tracker `numwant' variable to grow our peer pool
* bugfixes in cancelling requests.
* make the debug log sexy and readable like uTorrent's ;)
2007-10-06 18:20:52 +00:00
Charles Kerr
dd8dc4d87e
tweak the bitfield code to be a little faster.
2007-09-25 17:43:39 +00:00
Charles Kerr
28bcf6204b
clamp down on the flood of debug messages.
2007-09-20 23:33:46 +00:00
Mitchell Livingston
76da1185ca
merge encryption branch to trunk (xcode project is still out of date)
2007-09-20 16:32:01 +00:00
Charles Kerr
53d48e4c37
add utility function for setting libevent timer intervals
2007-08-23 20:33:01 +00:00
Josh Elsasser
7301b39c8b
Rework utf-8 string concat function a little and make it more widely available.
2007-08-15 23:02:56 +00:00
Charles Kerr
2bf071543b
get some pieces of the new tracker code into svn...
2007-08-14 20:45:23 +00:00
Josh Elsasser
b46052826c
Include inttypes.h instead of stdint.h to unbreak beos.
...
Hopefully this won't break anything.
2007-08-04 00:43:47 +00:00
Charles Kerr
26caf4f5dd
More Win32 portability changes
2007-08-01 00:40:49 +00:00
Charles Kerr
7cfafc5371
* now that we've got a new function at the top of the CPU hog list, tweak it too.
...
* reduce large torrents' memory consumption in tr_completion_t.
2007-07-28 22:47:10 +00:00
Charles Kerr
459b8958cb
simplify xml.c and utils.c's dependencies
2007-07-19 11:54:37 +00:00
Charles Kerr
b73297e799
sync with r2397
2007-07-18 22:59:29 +00:00
Charles Kerr
1c7c8072b4
fix crash on zero-byte torrents
2007-07-15 03:52:51 +00:00
Josh Elsasser
c0970d0431
Unbreak the build on my system.
2007-07-14 05:28:35 +00:00
Charles Kerr
790476ac23
clean up #includes a bit.
2007-07-12 17:51:45 +00:00
Charles Kerr
f0950d7390
lots of performance improvements. fun!
...
* dynamically resize the request queue on a per-peer basis based on its speed
* fix a huge bug that sabotaged the `swift' performance
* on startup, unchoke peers much sooner
* bump MAX_PEERS and PERCENT_PEER_WANTED
* do a better job of estimating speed on torrents less than 30 seconds old.
* getting an unrecognized extension ID, ignore it instead of stopping the torrent.
2007-06-29 05:45:17 +00:00