erdgeist
0dafc2ab26
Bugfix: overwrote bencoded data with udp reply data when sending an event=stopped
16 years ago
erdgeist
e534db03c6
added live sync code
...
added a config file parser
added tracker id
changed WANT_CLOSED_TRACKER and WANT_BLACKLIST into WANT_ACCESS_WHITE and WANT_ACCESS_BLACK
changed WANT_TRACKER_SYNC to WANT_SYNC_BATCH and added WANT_SYNC_LIVE
added an option to switch off fullscrapes
cleaned up many internal hardcoded values, like PROTO_FLAG,
16 years ago
denis
c71505fd9a
send out the total downloaders for a announce response
16 years ago
erdgeist
cadf1803e1
Fix endianess issues, also obey number of peers requested in udp announces
17 years ago
erdgeist
c28cf398fd
Introduce some kind of versioning
17 years ago
erdgeist
d3b8375080
Fix include for iovecs
17 years ago
erdgeist
848a06a706
Drop ot_{byte,word,dword} and use uint{8,16,32}_t, also simplify includes
17 years ago
erdgeist
f697fa3dda
Fixed a bug where we forgot to stamp torrents that are not new.
17 years ago
erdgeist
acaf7ae2b3
Fixing mmap allocation went to ot_mutex.c. Also startup new sync thread.
17 years ago
erdgeist
49ba269b9d
Cleanup now moved to its own thread, too
17 years ago
erdgeist
697e239027
Moving accesslist stuff to its own object
17 years ago
erdgeist
a0d12f9ab5
Full scrape moves to its own object
17 years ago
erdgeist
4ccbc9bd0e
Fixed a forgotten unlock and a messed up string pointer
17 years ago
erdgeist
bbbaa0e09d
Fixed warnings about newlines at end of file
17 years ago
erdgeist
8900cc0dd9
No one can get access to buckets now without locking them. Also split up the trackerlogic.c-monster in functional sub-units. HEADS UP: this code is untested and not considered stable.
17 years ago
erdgeist
785a9f13bd
Make to_hex thread safe. Get rid off old /24 counting code. Protect more bucket accesses by locks.
17 years ago
erdgeist
4a68f8692b
We do now use the tools for locking buckets in order to prepare MT code
17 years ago
erdgeist
8acc0ff48f
Introduce configuration dependent number of parameters in a nicer way
17 years ago
erdgeist
31eada6168
Reenabled syncing
17 years ago
erdgeist
b19bbd6a85
Number of buckets is 1024 now
...
Clean all torrents now only cleans one bucket at a time
All torrents that are being worked upon in an announce are being cleaned on demoand
torrent's peer lists now keep extra counts for seeds and peers to speed up scrape and announce
Sync has gone for now. I will think up a new way to implement. The old one was way to slow.
17 years ago
erdgeist
68a104ad2a
Now measure the time a clean_all_torrents takes
17 years ago
erdgeist
41019c79d8
Introducing multiscrape
17 years ago
erdgeist
870c995fbb
Remove an unused variable
17 years ago
erdgeist
cab763d4ee
Release exactly all unused bytes in mmap allocation.
17 years ago
erdgeist
8e78ac7012
HEADS UP: you need to check out the latest libowfat! Huge allocations are now taken from mmap()ed regions, not from heap anymore
17 years ago
erdgeist
c730a24d0a
Fixed 24h clean bug. Allocate less memory for full scrape. Free torrents without any downloaders immediately.
17 years ago
erdgeist
28d88e3380
Exclude empty torrents from full scrape, also try to shrink full scrape buffer after it is full
17 years ago
erdgeist
4c15dc7a70
make 64bit safe
17 years ago
erdgeist
dd82db18ad
There is a pool leak somewhere... try to find it
17 years ago
erdgeist
c350fa0b3c
New stats for s24s code, this is debug, do not use in real world
17 years ago
denis
c4f924810e
fixed a small bug with 0 torrents and a cosmetical one
17 years ago
erdgeist
33c9c530d0
An announce with event=stopped now returns correct number of leechers and seeders. In TCP and UDP.
17 years ago
erdgeist
ea276fa0bf
Fixed the inverse interpretation of black/white listing
18 years ago
erdgeist
3e47339b6c
Added whitelisting to reimplement the WANT_CLOSED_TRACKER functionality
18 years ago
erdgeist
51e4b179ab
off by -1... or so, strange error class
18 years ago
erdgeist
d49c1d5960
Fix endianess issue in /24 stats code
18 years ago
erdgeist
afe966b644
some subnet stats... still ugly and untested.
18 years ago
erdgeist
c0b00c0bf5
* 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
18 years ago
denis
f3d83559e6
need more space for data because we reach this limit easily now
18 years ago
denis
0f5a092f75
fix a warning
18 years ago
erdgeist
5c18293c9c
New Makefile, incorporated some patches sent to me by Robin H. Johnson
18 years ago
erdgeist
33774078ab
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.
18 years ago
erdgeist
b38104b986
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.
18 years ago
denis
5791044029
endianess fix for udp scrape
18 years ago
denis
8ac7768b96
support for udp scrape
18 years ago
erdgeist
e75c3e25cd
make full scrapes a bit faster, increase checkback time for udp
18 years ago
erdgeist
4c3eb0216e
Missing include
18 years ago
erdgeist
0a90216686
udp is working in theory, return_peers_for_torrent accepts a switch to request an udp answer. Fixed prototypes.
18 years ago
erdgeist
175c37c3e8
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
18 years ago
erdgeist
a73186988f
stupid mistake in remove torrent call
18 years ago
erdgeist
2313de59e5
Count completed messages only once per peer
18 years ago
erdgeist
70a65f2842
Add a lot of documentation for static functions in trackerlogic.c. Make vector_remove_peer use hysteresis only, if pool is expected to grow again. Remove too old torrents.
18 years ago
denis
11a1c070ae
shortened the dmem debug output
18 years ago
denis
d451d32b41
made the output of the memdebug smaller
18 years ago
denis
484565b6b7
clear the freed mempointer
18 years ago
erdgeist
4569b9ffdf
release memory for empty peer pools
18 years ago
erdgeist
9882d74b7e
Forgot to take into account, that there are OT_POOL_COUNT debuggable pools in one torrent. Fixed.
18 years ago
erdgeist
e7f6908fb2
Reserved too few space to hold all data for a memdebug
18 years ago
erdgeist
f9c49e9759
el cheapo vector debugging
18 years ago
erdgeist
5a3d6b4029
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
18 years ago
erdgeist
a244da8d5e
really copy in new peer, even if it already existed, to remember its state
18 years ago
erdgeist
dc1099dd66
Asserts were always false :/
18 years ago
erdgeist
6603b51576
Due to recent issues... assert() seed counts
18 years ago
erdgeist
c094695add
account downloaded before early returns
18 years ago
denis
65675cd4da
fix for corrupt fullscrape. did never work until now
18 years ago
erdgeist
05420c40e5
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.
18 years ago
erdgeist
dffea5da69
return random check back intervals to our clients
18 years ago
erdgeist
c2ed48f73b
Return empty dictionary for unknown scrapes
18 years ago
erdgeist
5f7c044b54
Full scrape, kinda tested
18 years ago
erdgeist
908649af98
From now the OT_CLIENT_TIMEOUT will be enforced, even if some data arrived inside this interval
18 years ago
erdgeist
005ff4e231
Simple top5 by peers/seeders table
18 years ago
erdgeist
4eefe49307
Prevent each invocation of clean_peerlist to call time()
18 years ago
erdgeist
43b60783a1
Use mrtg to do periodical cleanup. Hopefully that wont make too much load for stats.
18 years ago
erdgeist
ade8268970
Rudimentary stats
18 years ago
denis
cde935b5bd
set interval to default value from original tracker
18 years ago
erdgeist
ad6c1b2019
New, fixpoint distinct random algorithm for choosing peers from the list... may contain bugs. Feedback welcome
18 years ago
erdgeist
575bf7081f
casting does floor() by itself
18 years ago
erdgeist
805e46450c
Documentation improved, some reindenting (again), variable types checked, unnecessary defines removed
18 years ago
erdgeist
74a7fbd6fe
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.
18 years ago
erdgeist
17c21a0bc4
Apply some limits
18 years ago
erdgeist
e7532408b6
black listing was the wrong way around
18 years ago
erdgeist
9f63a7bd63
really check g_check_blacklist flag
18 years ago
erdgeist
c89cfaad5e
Be more helpful
18 years ago
erdgeist
2aa03492a5
added closed tracker and blacklist code
18 years ago
erdgeist
cdf2fbabed
README\!
18 years ago
erdgeist
33eaf54da7
simplified binary_search, it always does a memcmp. began to implement dump knowledge
18 years ago
erdgeist
e0a9c2a4aa
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.
18 years ago
erdgeist
808e370566
random
18 years ago
erdgeist
82b4df6751
Make code endianess save
18 years ago
erdgeist
4761c70843
sorted bencoded order
18 years ago
erdgeist
af147a1d14
Fixed mem leak, inmplemented mrtg_scrape
18 years ago
erdgeist
8d13a14584
announce now returns all mandatory answer dictionary entries
18 years ago
erdgeist
688a4edd9e
Now actually seems to work for the most parts
...
Added scraping
Added graceful disconnect
18 years ago
erdgeist
c0f667defe
Reacts more appropriate, however EXC_BAD_ACCESS triggered
18 years ago
erdgeist
d7c26dc71b
Trackerlogic done... not tested yet
18 years ago
erdgeist
31c20c515d
This is a complete rewrite... assume nothing works.
18 years ago
erdgeist
0de82a8925
Fixed parser
18 years ago
erdgeist
932242eee7
Logic now actually initialized and deinitialized
18 years ago
erdgeist
62a9b02532
Should work now *cough* *cough*
18 years ago
erdgeist
2adf4fb28a
Our scanner routine for the URI query string
18 years ago