Closed AnimMouse closed 2 years ago
Looking at the encoded response from your tracker, with X replacing my IP and port:
d8:intervali1800e5:peersld2:id20:-qB3360-Ji7VZzGyp8KX2:ip20:::ffff:XXX.XXX.XXX.XXX:portiXXXXeeee
The 'peers' fields is not in the compact form (http://www.bittorrent.org/beps/bep_0023.html). newTrackon makes HTTP requests with the parameter compact=1
, expects a compact list and doesn't support a normal list. I'm aware that, according to the specification, the compact list is only recommended, the tracker MAY return either format
, and clients MUST continue to support both
. However, he compact response is supported by most tracker software and it's so widely used that, unless you are intentionally returning a non-compact peers list, I don't think it's worth to implement it. Let me know if that's the case, and I'll work on it.
It seems like that is a problem on the qBittorrent side, anyways, thanks for replying, I will wait when the qBittorrent team implements peers in compact form.
ps. I saw you omit HTTP on the error into "Can't bdecode the response" @ f7e0990e0ac2e7e40d6a21de228ae5120103363f
Yes, newTrackon doesn't use any qBittorrent or libTorrent code, I just send a similar peer id so that the requests are not easily identifiable. I will implement non-compact peer responses parsing.
Well, I don't know why qBittorrent still don't implement non-compact peer responses parsing. Maybe because the embedded tracker in qBittorrent is just an afterthought.
Because of that error, it is time to sunset my qBittorrent tracker.
I still plan to implement non-compact response compatibility, but cannot commit to a timeline.
@AnimMouse
FYI, qBittorrent's embedded tracker has had support for compact peer lists since not long after this issue was originally posted: https://github.com/qbittorrent/qBittorrent/commit/5c7f9530ee4345eb986d612634b22903c22a3609. The earliest tagged release that contains the fix is version 4.2.0.
However, it had a pretty nasty bug that would cause announce failures for some infohashes, which was only fixed about a year later in https://github.com/qbittorrent/qBittorrent/commit/06e1b0727456687b25df73c785d24f4f42eef906. The earliest tagged release that contains this fix is version 4.3.0. The embedded tracker is now in good shape, there are no known serious outstanding bugs.
Considering the message above, and that I cannot find any popular trackers returning non-compact list, I don't think there's any value on supporting non-compact responses after all.
newTrackon is already opinionated on several protocol details, this is just one more. I'll clarify newTrackon only understands compact peer list responses.
Hello,
What is the meaning of the error "Can't bdecode the HTTP response"? I'm running a tracker using qBittorrent at http://vps.tracker.eu.org:9000/announce and it says it is always down because of that error.