Commit Graph

230 Commits

Author SHA1 Message Date
Dirk Engling 469e15de22 Last user of sendmmapdata is gone. Purge it. 2007-11-21 01:53:17 +00:00
Dirk Engling 819f9cc1dd Sockets do not inherit non-blocking state in libowfat... 2007-11-20 02:21:53 +00:00
Dirk Engling 032224f150 Cleanup now moved to its own thread, too 2007-11-19 21:10:53 +00:00
Dirk Engling 53a7c09bc0 Full scrapes are now being delivered in different modes, as triggered by stats&mode=tpbs 2007-11-18 16:47:37 +00:00
Dirk Engling e1aa9168b4 introducing multithreaded full scrape creation. 2007-11-16 00:23:42 +00:00
Dirk Engling 2746822a9b Move dead socket handling from handle_(read,write,timedout) into its own function handle_dead 2007-11-14 13:06:34 +00:00
Dirk Engling f03b2740dd Moving accesslist stuff to its own object 2007-11-12 04:38:43 +00:00
Dirk Engling cc7274b7f8 Moving full scrapes to iovec-creating thread safe function 2007-11-12 01:41:57 +00:00
Dirk Engling c37d25fd75 The expensive DMEM stats is gone. No need for it, too much potential to DOS. 2007-11-06 18:02:01 +00:00
Dirk Engling 2e2c1762d3 Move stats out of opentracker.c, also have an own file handle udp requests. 2007-11-06 17:50:41 +00:00
Dirk Engling fed78043a6 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. 2007-11-06 11:58:12 +00:00
Dirk Engling 9ee006d393 Cleaned up stats return format. Also reflect APPI changes due to MT code in trackerlogic.{c,h} 2007-11-06 01:28:40 +00:00
Dirk Engling 472f8469d2 Introduce configuration dependent number of parameters in a nicer way 2007-11-02 13:13:03 +00:00
Dirk Engling a2f3ab87b0 The last experiment failed. No more accept deferral 2007-11-02 04:18:52 +00:00
Dirk Engling 6c8a69da19 Trying to accept connections only when data has come in. This is an experiment. 2007-11-02 03:21:56 +00:00
Dirk Engling 1b467d186c Allow for more than one admin ip address 2007-11-01 20:13:03 +00:00
Dirk Engling 66b21d1e28 Add more full scrape stats 2007-10-31 15:39:41 +00:00
Dirk Engling f37e510592 Reenabled syncing 2007-10-29 17:22:05 +00:00
Dirk Engling df30bc8484 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.
2007-10-27 14:06:07 +00:00
Dirk Engling 7075730766 some clients chose to accidently send negative numwants 2007-10-23 00:39:15 +00:00
Dirk Engling f2f93d093f Accept clients that forget to spell announce at all... 2007-10-23 00:30:46 +00:00
Dirk Engling d16c925901 This uTorrent/1600 client requires some... measures :/ I dont like the workaround. 2007-10-23 00:01:10 +00:00
Dirk Engling 8b81b12af6 Now measure the time a clean_all_torrents takes 2007-10-22 00:44:11 +00:00
Dirk Engling df85d516c8 assume anything looking like GET /a to be an announce... 2007-10-21 05:36:10 +00:00
Dirk Engling c3eaa46d8f Last fix was not enough to get rid off those 1600er buggers. 2007-10-21 05:26:55 +00:00
Dirk Engling 75d96f1f50 Work around the stupid utorrent 1600 bug. That'll be removed after a while. 2007-10-21 05:15:35 +00:00
Dirk Engling 9268f32200 Now the Holzhammer: GET /an is announce, GET /sc is scrape. Period. 2007-10-21 04:55:19 +00:00
Dirk Engling b56035424e now accept more classes of announce fuckups 2007-10-21 04:37:37 +00:00
Dirk Engling ec5395b57c Just one more typo 2007-10-21 04:23:39 +00:00
Dirk Engling 7149cb5600 Just one more typo 2007-10-21 04:20:42 +00:00
Dirk Engling f1ad491e66 Work around more typos that might end up in torrent files as announce urls 2007-10-21 04:13:53 +00:00
Dirk Engling d5839b8407 Debug code sometimes copied too much data 2007-10-21 03:37:26 +00:00
Dirk Engling f2e615720b Fixed one leak from struct_http 2007-10-21 01:11:45 +00:00
Dirk Engling 5f35e4bef7 Be even more stupidistas-tolerant 2007-10-19 23:15:13 +00:00
Dirk Engling c69e375393 Fix debug output 2007-10-19 22:55:13 +00:00
Dirk Engling 0da6f316d6 Enable _DEBUG_HTTPERROR to avoid warning... 2007-10-19 22:36:28 +00:00
Dirk Engling 6de5b8544a Include time since startup in full scrape debug output 2007-10-19 22:20:42 +00:00
Dirk Engling 1a864b16c1 Now limit full scrape to requests sending exactly "GET /scrape HTTP/" 2007-10-19 22:13:59 +00:00
Dirk Engling d3f8013a18 Introducing multiscrape 2007-10-19 21:56:59 +00:00
Dirk Engling 463aabe5f7 Prevent url-decoding for debug by using a temp buffer 2007-10-19 21:00:57 +00:00
Dirk Engling 33530a2ac6 Those stupid "announce ?info_hash" torrents get really annoying. Fix it in announce and scrape. 2007-10-19 20:02:41 +00:00
Dirk Engling e0f88d7545 be more verbose about what full scrape consumers deliver in their http requests 2007-10-19 15:37:00 +00:00
Dirk Engling 8c3624ce9d give opentracker the missing header file 2007-10-19 03:41:23 +00:00
Dirk Engling dd7c0a3cab Must not dealloc mmaped buffers with free() 2007-10-19 03:39:04 +00:00
Dirk Engling 61204221c1 Fix misunderstandig of what libowfat thinks are seconds and what I did... 2007-10-19 02:00:53 +00:00
Dirk Engling cafb0d45fe Since array and io_batch are in a union, and we also have time-outing writable sockets, we need to mark, which of the union is used. Also remove the blessed flag from struct http, since its rarely used and can be done in a seperate memcmp. 2007-10-19 01:26:33 +00:00
Dirk Engling 53054700c8 Cannot access members after they are freed :/ 2007-10-19 00:34:56 +00:00
Dirk Engling 2c3b4e3de7 Save a lot of work when skipping through uninteresting http request parameters 2007-10-18 23:33:07 +00:00
Dirk Engling 1d4eb17452 Increase send timeout. Also use an own variable for that. 2007-10-17 22:50:48 +00:00
Dirk Engling 23465c215a io_timeout is absolute, not relative :/ 2007-10-17 21:13:13 +00:00
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