Commit Graph

155 Commits (master)

Author SHA1 Message Date
denis 1c3c5d57da only sync when the peer is actually added to the first pool. this saves ca. 40% syncdata 16 years ago
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 17 years ago
erdgeist 3e47339b6c Added whitelisting to reimplement the WANT_CLOSED_TRACKER functionality 17 years ago
erdgeist 51e4b179ab off by -1... or so, strange error class 17 years ago
erdgeist d49c1d5960 Fix endianess issue in /24 stats code 17 years ago
erdgeist afe966b644 some subnet stats... still ugly and untested. 17 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
17 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