Dirk Engling
7d4db8015d
Free iobatches on timeout
2007-10-17 20:25:18 +00:00
Dirk Engling
938d063919
HEADS UP: you need to check out the latest libowfat! Huge allocations are now taken from mmap()ed regions, not from heap anymore
2007-10-17 14:43:13 +00:00
Dirk Engling
962ad63424
Sockets we write to now do also timeout
2007-10-16 18:23:36 +00:00
Dirk Engling
5b82b40439
Exclude empty torrents from full scrape, also try to shrink full scrape buffer after it is full
2007-10-16 00:23:13 +00:00
Dirk Engling
9ffe557e6f
fixed line breaks in log
2007-10-15 18:03:13 +00:00
Dirk Engling
1815dd3e53
Log all expansive operations to stderr
2007-10-15 18:01:38 +00:00
Dirk Engling
854c21cece
Most open trackers do not have the problem of not being called often enough.. so do not introduce an extra timeout when waiting for activity. That also removes one of the last extraneous gettimeofday calls
2007-10-13 17:58:20 +00:00
Dirk Engling
7a3ddcfbce
since gettimeofday is rather expansive, we do only fetch time once in a 5 second period, when we are delivered a SIGALRM.
2007-10-13 17:40:37 +00:00
Dirk Engling
b3f834951c
make 64bit safe
2007-10-12 21:57:10 +00:00
Denis Ahrens
943b296f46
fixed some stat output
2007-10-03 22:57:35 +00:00
Dirk Engling
4319defc9c
New stats for s24s code, this is debug, do not use in real world
2007-09-26 16:49:13 +00:00
Dirk Engling
c863c6e108
An announce with event=stopped now returns correct number of leechers and seeders. In TCP and UDP.
2007-09-10 02:43:10 +00:00
Dirk Engling
d58db69d9a
Added whitelisting to reimplement the WANT_CLOSED_TRACKER functionality
2007-08-18 09:56:22 +00:00
Dirk Engling
42433aef94
Under Linux one gets SIG_ALRMs from time to time when using epoll. Ignore those.
2007-08-18 09:29:39 +00:00
Dirk Engling
7043b69e49
Sort of addressed a concorrency issue when receiving mutliple SIG_HUPs
2007-08-11 13:39:36 +00:00
Dirk Engling
6382386416
some subnet stats... still ugly and untested.
2007-07-22 16:17:26 +00:00
Dirk Engling
8ef59b0351
* fixed "nobody " -> "nobody" fuckup when getpwnam-ing
...
* implemented basic blacklisting:
** the file specified with -b <BLACKLIST> is read and added to a blacklist vector
** if an announce hits a torrent in that blacklist vector, add_peer_to_torrent fails
** sending a SIGHUP to the program forces it to reread the blacklists
** the server returns with a 500, which is not exactly nice but does the job for now
** an adaequat "failure reason:" should be delivered... TODO
2007-07-22 00:40:10 +00:00
Dirk Engling
bd1562f8bd
Clean up pw-structs
2007-07-20 10:20:02 +00:00
Denis Ahrens
f8c2f994ff
add comment for udp spec location
2007-06-24 01:53:30 +00:00
Denis Ahrens
4f173a3334
check for mafic udp id
2007-06-06 16:45:48 +00:00
Denis Ahrens
03f92a0051
fixed an overflow in ot_overall_* variables
2007-05-04 23:08:38 +00:00
Dirk Engling
6d290ff767
Clean up help and usage
2007-04-07 00:24:17 +00:00
Dirk Engling
20635e3544
New Makefile, incorporated some patches sent to me by Robin H. Johnson
2007-04-03 11:08:17 +00:00
Dirk Engling
59cac9cb80
Try to figure out nobodys uid und gid using getpwnam
2007-04-02 17:26:40 +00:00
Dirk Engling
691f58cf4a
Fix endianess issue with blessed ips. Document -A feature.
2007-03-29 15:04:06 +00:00
Dirk Engling
ac0b38c401
added the -A feature that blesses a certain IP address for administrative use (like sync)
2007-03-28 23:24:30 +00:00
Dirk Engling
cb90c27b28
Added inbound part of sync. This also meant to remove the black/whitelisting as we did by now. A more scalable way to blacklist will follow.
2007-03-27 16:09:03 +00:00
Dirk Engling
2a646cf4a0
Added outbound part of sync Proposed format: d4:syncd20:<info_hash>8*N:(xxxxyy)*Nee, therefore had to refactor torrent cleanup now that it will hit all torrents once every OT_POOL_TIMEOUT units.
2007-03-27 12:07:29 +00:00
Denis Ahrens
62a41a85c8
code cleanup and more specific comments. tracker starts now also with udp port 6969 as default
2007-03-16 23:37:04 +00:00
Denis Ahrens
1fba7078d7
some udp scrape style cleanup
2007-03-16 23:04:24 +00:00
Denis Ahrens
b3f72c444b
support for udp scrape
2007-03-16 22:46:41 +00:00
Denis Ahrens
f2313f3aff
fix the stats a little for not accepting udp scrapes
2007-03-16 20:11:22 +00:00
Denis Ahrens
272d7a6bdc
udp first connect needs to be counted as a connection too
2007-03-15 23:33:09 +00:00
Denis Ahrens
521cb31ad3
added the udp stats to the main stats
2007-03-15 23:22:26 +00:00
Denis Ahrens
a45648f301
new modes for udp4 and tcp4 stats
2007-03-15 23:14:14 +00:00
Denis Ahrens
2291dfc00f
collecting stats for udp connections (2nd try)
2007-03-15 21:34:02 +00:00
Denis Ahrens
a0a4ea3469
collecting stats for udp connections
2007-03-15 21:32:14 +00:00
Denis Ahrens
7dcd592a17
fixed udp peerport endianess handling
2007-03-13 23:31:06 +00:00
Denis Ahrens
634b9cc10e
fixed udp remoteport handling
2007-03-13 23:24:53 +00:00
Dirk Engling
df6b33f8d8
some 64bit and endianess issues with udp...
2007-03-13 22:19:03 +00:00
Dirk Engling
eea5c628de
make full scrapes a bit faster, increase checkback time for udp
2007-03-10 15:39:19 +00:00
Dirk Engling
b82e06fc9b
Port is a short, not a long
2007-03-08 01:24:47 +00:00
Dirk Engling
b506cb39a9
Sanify handling of server sockets
2007-03-07 22:19:00 +00:00
Dirk Engling
622e34f2b0
udp is working in theory, return_peers_for_torrent accepts a switch to request an udp answer. Fixed prototypes.
2007-03-06 19:43:47 +00:00
Dirk Engling
123ca420a8
Can now handle multiple ips/ports, can BIND to udp ports but not yet handle them, now checks if event=completed comes with left=0 and drops it, if it doesnt
2007-03-05 21:14:36 +00:00
Dirk Engling
b283462534
zero copy sockets do only work on page aligned buffers for page sized blocks. So remove the code that tried to take advantage of false assuming, it would work on any buffer
2007-02-03 16:19:59 +00:00
Denis Ahrens
6117e68584
fixed the last commit. now it really counts the scrapes and fullscrapes
2007-02-02 21:15:46 +00:00
Denis Ahrens
fa7f089536
add the scrapes to the valid requests (blue mrtg line)
2007-02-01 15:35:01 +00:00
Dirk Engling
b0eee67849
el cheapo vector debugging
2007-02-01 13:51:39 +00:00
Dirk Engling
b518c4809a
Use multiple output buffers to try to avoid copy on write when unnecessary
2007-02-01 13:30:58 +00:00
Dirk Engling
bd5f75f1a6
Try to shake off too stupid clients by sending an Bittorrent error rather than an HTTP 400
2007-01-31 09:58:32 +00:00
Dirk Engling
158ce4d616
Use signed size_t wherever appropriate
2007-01-31 09:50:46 +00:00
Dirk Engling
e2d15c9c4b
size_t cant get < 0 and thus wont report errors
2007-01-31 02:19:17 +00:00
Dirk Engling
d299bd4937
provide mrtg with more sane strings
2007-01-29 13:41:04 +00:00
Dirk Engling
8fc31f7e29
We now answer as soon as the first \n is seen
...
We do not copy input buffer to socket's input array anymore, if we find \n in first buffer
We simplified parsing of input string
We removed asserts that were needed to debug negative seeder counts
We split static input and output buffers for obvious reasons
We enlarged static output buffer to prepare multi scrape functionality
We removed -lm from Makefile, this lib was only needed, when our random algorithm worked on floats
We close fds now that come with an empty iocookie into write loop, those don't make sense
We documented query string parser in opentracker.c a lot better to help auditing
2007-01-29 02:02:03 +00:00
Dirk Engling
8f1d76e65e
complete_D_ ... ECODERTOODUMB
2007-01-27 17:13:53 +00:00
Dirk Engling
342e3a25c0
account downloaded before early returns
2007-01-27 16:06:13 +00:00
Dirk Engling
cbd2a8f8f8
announce.php and scrape.php are now being handled
2007-01-26 18:09:14 +00:00
Dirk Engling
96e5b5a076
Introduce another unspec'd command: sync which syncs the most recent peer pool for a torrent out. Do some variable type clean up. Do some code structure clean up.
2007-01-26 16:26:49 +00:00
Dirk Engling
0f85392889
return random check back intervals to our clients
2007-01-25 14:16:26 +00:00
Dirk Engling
94b94106c3
Code cleanup reindenting
2007-01-24 22:23:18 +00:00
Denis Ahrens
1e471b0826
backout Revision 1.67
2007-01-24 21:06:19 +00:00
Denis Ahrens
4b1d9edf58
workaround for some weird requests
2007-01-24 20:48:25 +00:00
Denis Ahrens
b78c6a989a
Denis wanted scrapes and erdgeist didnt give it :)
2007-01-24 20:20:07 +00:00
Denis Ahrens
f85444542e
Copy request before expanding url-encoded bytes
2007-01-24 20:13:30 +00:00
Dirk Engling
2746c1d258
Debugging for failed requests.
2007-01-24 12:56:15 +00:00
Dirk Engling
d2aa76a80b
Count successful announces extra
2007-01-23 15:48:51 +00:00
Dirk Engling
d880646196
FD-debug also in new iob_send path
2007-01-20 14:11:53 +00:00
Dirk Engling
c5d5867900
Full scrape, kinda tested
2007-01-20 11:13:30 +00:00
Denis Ahrens
1a5952c3ee
increase the timeout to make the ride a little smoother for some clients
2007-01-20 02:50:33 +00:00
Dirk Engling
27199ad1c3
-m64 is not usually a correct compile option
2007-01-20 01:50:28 +00:00
Dirk Engling
0210ea5d90
Debug file descriptors
2007-01-19 17:50:35 +00:00
Denis Ahrens
e4323e3fe2
*seuftz*
2007-01-19 03:21:02 +00:00
Denis Ahrens
6d049b33d3
set the interval to 1800 for announce (last change was only for scrape)
2007-01-19 03:19:12 +00:00
Dirk Engling
f05ed877ed
From now the OT_CLIENT_TIMEOUT will be enforced, even if some data arrived inside this interval
2007-01-18 13:06:49 +00:00
Dirk Engling
d3b93762fa
Tidied main loop do accept() and read() before timeout()
2007-01-18 12:27:17 +00:00
Dirk Engling
003d5a52a2
Give our server some air to check for timedout connections
2007-01-18 02:40:18 +00:00
Dirk Engling
7df1f66840
Rearranged code to try to read data as soon as socket is accepted, also raise backlog for listening socket
2007-01-18 02:23:18 +00:00
Dirk Engling
cc07b8ca2c
Simple top5 by peers/seeders table
2007-01-17 11:51:55 +00:00
Dirk Engling
f51335b9b8
Rudimentary stats
2007-01-16 02:57:32 +00:00
Dirk Engling
7fd4de2dfc
Do some timeout checking on the first possible moment
2007-01-16 01:57:06 +00:00
Dirk Engling
03b2e45e0a
Previous answer to event=stopped irritated some clients. Now reply with a static nothing-message
2007-01-16 01:35:10 +00:00
Dirk Engling
add4de97bf
Cast types for mrtg_scrape sprintf
2007-01-14 20:22:59 +00:00
Dirk Engling
6d25d0681f
Drop permission, if we can
2007-01-14 20:15:04 +00:00
Dirk Engling
afa05fad96
Documentation improved, some reindenting (again), variable types checked, unnecessary defines removed
2007-01-11 01:06:10 +00:00
Dirk Engling
400c9a4d6f
Ignore SIGPIPE. This is safe, since it only raises, when the remote site died before we could send our paket back and is catched by write() returning -1
2007-01-10 16:42:39 +00:00
Dirk Engling
f5f4c3e2ce
Fixed a bug where I didn't replace new buffer pointer after realloc. Fixed a bug where I didnt copy enough memory when shrinking vectors. Now save some extra bytes in header.
2007-01-09 06:30:37 +00:00
Dirk Engling
ea9970f77a
Now we also check, if no io happens
2007-01-08 05:23:04 +00:00
Dirk Engling
b51bbd6a4f
Some code spacifying. Added actually checking timeouts.
2007-01-08 05:18:53 +00:00
Dirk Engling
6510d31887
Indent. Sorry. Plus timeout on every connection, for every byte we got.
2007-01-08 00:57:35 +00:00
Dirk Engling
c55c17a871
This one breaks all ;) Lets see, what happens
2007-01-08 00:34:37 +00:00
Dirk Engling
2f9ae6c584
add timeout for clients
2007-01-07 00:20:20 +00:00
Dirk Engling
6df186ff06
shutdown was unnecessary
2007-01-06 23:36:20 +00:00
Dirk Engling
def981fe44
Apply some limits
2007-01-06 22:24:08 +00:00
Dirk Engling
9957e9ea1f
Be more helpful
2007-01-05 13:00:05 +00:00
Dirk Engling
1c97e9cd8c
added closed tracker and blacklist code
2007-01-05 12:25:44 +00:00
Dirk Engling
a3ac795bec
README\!
2007-01-05 00:00:41 +00:00
Dirk Engling
aa444b6e18
Added option to get ip from query string + parser, fixed two bugs concerning grow/shrink of vectors. Now cleans up a torrent BEFORE trying to remove a peer -> this may remove peer already and must be done anyway.
2007-01-03 05:11:48 +00:00
Dirk Engling
dca356ee24
Remove some integer constants from code. Bad coder. Very bad coder :/
2006-12-19 18:09:56 +00:00
Dirk Engling
82d969277e
Now every answer goes in one buffer
2006-12-19 18:01:28 +00:00
Dirk Engling
07c7a58269
Try early answers
2006-12-16 18:46:11 +00:00
Dirk Engling
28037e46dd
Missing header file
2006-12-16 16:14:34 +00:00
Dirk Engling
cbf3b309f7
try shutdown() the socket after writing
2006-12-16 16:10:57 +00:00
Denis Ahrens
c1b8fafd8e
corrected the modifier for size_t
2006-12-16 14:49:20 +00:00
Dirk Engling
f779a22f1b
Fixed two mem leaks from httpd :/
2006-12-16 13:23:12 +00:00
Dirk Engling
e2722edabb
Fixed memleak in example httpd :/
2006-12-16 03:11:07 +00:00
Dirk Engling
48962c678e
Made answer http/1.1
2006-12-16 01:22:48 +00:00
Dirk Engling
e07ea9bf71
Division in stats now works
2006-12-15 23:46:34 +00:00
Dirk Engling
e866ddd61c
fix include
2006-12-15 23:29:38 +00:00
Dirk Engling
dd3589f57e
Make code endianess save
2006-12-15 23:28:23 +00:00
Denis Ahrens
eec69e9a0f
fixed typo
2006-12-15 22:46:01 +00:00
Dirk Engling
300a580250
sorted bencoded order
2006-12-15 22:40:33 +00:00
Dirk Engling
ed84edb53e
Fixed mem leak, inmplemented mrtg_scrape
2006-12-15 22:07:33 +00:00
Dirk Engling
aae002d475
announce now returns all mandatory answer dictionary entries
2006-12-14 02:54:08 +00:00
Dirk Engling
7d1d51cc05
Now actually seems to work for the most parts
...
Added scraping
Added graceful disconnect
2006-12-14 02:44:50 +00:00
Dirk Engling
01bdb5495f
Reacts more appropriate, however EXC_BAD_ACCESS triggered
2006-12-13 14:44:14 +00:00
Dirk Engling
2039029366
This is a complete rewrite... assume nothing works.
2006-12-12 02:37:18 +00:00
Dirk Engling
39c23f5f71
Fixed parser
2006-12-09 12:50:42 +00:00
Dirk Engling
dd31159531
Logic now actually initialized and deinitialized
2006-12-08 22:53:32 +00:00
Denis Ahrens
b2197faac9
Begun printf debugging
2006-12-08 22:37:44 +00:00
Dirk Engling
3c2f9bbea2
Should work now *cough* *cough*
2006-12-08 21:36:25 +00:00
Dirk Engling
7d73d53102
Further compact code
2006-12-08 21:00:56 +00:00
Dirk Engling
3fa7d7958b
More cleanup
2006-12-08 20:50:06 +00:00
Dirk Engling
cc8c0a1df8
Some syntax errors removed
2006-12-08 20:28:17 +00:00
Dirk Engling
75caa3e78e
hooks into scanning functions built
2006-12-08 20:07:26 +00:00
Denis Ahrens
41dfc9cd7e
nochma
2006-12-07 22:38:35 +00:00
Denis Ahrens
f95be2772e
url parser
2006-12-07 22:35:57 +00:00
Dirk Engling
a605dd8dc5
Started to implement glue
2006-12-07 02:58:02 +00:00
Dirk Engling
2f8190f4fe
blocking socket blocks...
2006-12-06 18:36:14 +00:00
Dirk Engling
2a1b78e33b
Kickoff
2006-12-05 12:56:56 +00:00