Opened 9 years ago
Closed 6 years ago
#4677 closed Bug (duplicate)
Webseeds should be filtered by loaded blocklists
Reported by: | x190 | Owned by: | jordan |
---|---|---|---|
Priority: | High | Milestone: | None Set |
Component: | libtransmission | Version: | 2.42 |
Severity: | Normal | Keywords: | |
Cc: | webseeds, blocklist |
Description
Webseeds should be filtered by loaded blocklists the same as any peer. This is even more important as they don't appear to be affected by the 5 bad pieces rule nor are they removable by editing.
Change History (6)
comment:1 follow-up: ↓ 2 Changed 9 years ago by jordan
comment:2 in reply to: ↑ 1 Changed 9 years ago by x190
Replying to jordan:
...my two favorite features, rolled up into one ticket. :|
Yeah, I know, but we really do need a way of getting rid of misbehaving or unwanted webseeds. #4644 has brought this into focus. I'm dealing with that issue in real life and it can really mess up an otherwise perfectly good torrent.
Compliments of the Season to you and yours! :)
comment:3 Changed 9 years ago by pathetic_loser
I see nothing unexpected in scenario where web server could return wrong/corrupted/malicious file. Be it bad sector on hdd, erroneously replaced file or just some malicious server.
comment:4 Changed 8 years ago by x190
"they don't appear to be affected by the 5 bad pieces rule nor are they removable by editing."
Well, they should be!
comment:5 Changed 6 years ago by cfpp2p
Webseed addresses are not checked for blocklisting.
Simplified implementation as follows:
web.c
// after line 496 web.c char * server_ip; struct tr_address addr; task->is_blocklisted = false; // hooking for blocklist check if (!curl_easy_getinfo (e, CURLINFO_PRIMARY_IP, &server_ip)) // CURLE_OK { if (tr_address_from_string( &addr, server_ip)) { if (tr_sessionIsAddressBlocked( task->session, &addr)) task->is_blocklisted = true; } } const tr_address * send_address = &addr; task->tracker_addr = tr_strdup (tr_address_to_string( send_address));
Then in webseed.c web_response_func() insert if (blocklisted) to prevent the downloading.
This is the basic idea but highly simplified for conciseness.
I have a fully functional and tested implementation for the blocklist hook at my github account but for the old v2.77 base.
I couldn't be sure I'd want to block the webseed address without some sort of indicator to the user. The user could even do a direct download of the file via browser and url from the .torrent file and wonder why transmission wasn't downloading. It's not like peers where there could be many. Blocking of webseed without warning seems problematic to me. A warning would be necessary in my opinion.
comment:6 Changed 6 years ago by x190
- Resolution set to duplicate
- Status changed from new to closed
See #5923 for a patch.
...my two favorite features, rolled up into one ticket. :|