Line 0
Link Here
|
|
|
1 |
Revert the following commit until libtorrent 1.1.2 is released: |
2 |
|
3 |
From 729c80f9104a3d01ec724351bd6910b4b8d14c6c Mon Sep 17 00:00:00 2001 |
4 |
From: sledgehammer999 <hammered999@gmail.com> |
5 |
Date: Mon, 31 Oct 2016 02:31:56 +0200 |
6 |
Subject: [PATCH] Use new libtorrent 1.1.2+ utility function to generate client |
7 |
ID instead. |
8 |
|
9 |
--- src/base/bittorrent/session.cpp.orig 2016-12-17 18:02:06 UTC |
10 |
+++ src/base/bittorrent/session.cpp |
11 |
@@ -45,6 +45,7 @@ |
12 |
#include <QTimer> |
13 |
|
14 |
#include <cstdlib> |
15 |
+#include <sstream> |
16 |
#include <queue> |
17 |
#include <vector> |
18 |
|
19 |
@@ -194,6 +195,36 @@ namespace |
20 |
|
21 |
template <typename T> |
22 |
LowerLimited<T> lowerLimited(T limit, T ret) { return LowerLimited<T>(limit, ret); } |
23 |
+ |
24 |
+#if LIBTORRENT_VERSION_NUM >= 10100 |
25 |
+ std::string makeFingerprint(const char* peerId, int major, int minor, int revision, int tag) |
26 |
+ { |
27 |
+ Q_ASSERT(peerId); |
28 |
+ Q_ASSERT(major >= 0); |
29 |
+ Q_ASSERT(minor >= 0); |
30 |
+ Q_ASSERT(revision >= 0); |
31 |
+ Q_ASSERT(tag >= 0); |
32 |
+ Q_ASSERT(std::strlen(peerId) == 2); |
33 |
+ |
34 |
+ auto versionToChar = [](int v) -> char |
35 |
+ { |
36 |
+ if (v >= 0 && v < 10) return static_cast<char>('0' + v); |
37 |
+ if (v >= 10) return static_cast<char>('A' + (v - 10)); |
38 |
+ Q_ASSERT(false); |
39 |
+ return '0'; |
40 |
+ }; |
41 |
+ |
42 |
+ std::ostringstream buf; |
43 |
+ buf << '-' |
44 |
+ << peerId |
45 |
+ << versionToChar(major) |
46 |
+ << versionToChar(minor) |
47 |
+ << versionToChar(revision) |
48 |
+ << versionToChar(tag) |
49 |
+ << '-'; |
50 |
+ return buf.str(); |
51 |
+ } |
52 |
+#endif |
53 |
} |
54 |
|
55 |
// Session |
56 |
@@ -334,7 +365,7 @@ Session::Session(QObject *parent) |
57 |
dispatchAlerts(alertPtr.release()); |
58 |
}); |
59 |
#else |
60 |
- std::string peerId = libt::generate_fingerprint(PEER_ID, VERSION_MAJOR, VERSION_MINOR, VERSION_BUGFIX, VERSION_BUILD); |
61 |
+ std::string peerId = makeFingerprint(PEER_ID, VERSION_MAJOR, VERSION_MINOR, VERSION_BUGFIX, VERSION_BUILD); |
62 |
libt::settings_pack pack; |
63 |
pack.set_int(libt::settings_pack::alert_mask, alertMask); |
64 |
pack.set_str(libt::settings_pack::peer_fingerprint, peerId); |