From cc5fa5e5dc783d16deb4164e5cf340d7af734781 Mon Sep 17 00:00:00 2001 From: drbob Date: Tue, 5 Oct 2010 21:57:22 +0000 Subject: [PATCH] Fixed up BITDHT versioning. * Advertises client as DBxxxx where xxxx is provided by using app. * Added COMPILE switches to enable ANONYMOUS version or remove BD portion. * Fixed version code. * Added slow increase in retry timeout, to reduce DHT traffic over time. now RETRY PERIOD = query age / 2 * initialised bdToken bdVersion etc length. * new bdboot.txt git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3615 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- libbitdht/src/bitdht/bdiface.h | 2 +- libbitdht/src/bitdht/bdmsgs.cc | 2 +- libbitdht/src/bitdht/bdnode.cc | 60 ++++-- libbitdht/src/bitdht/bdobj.h | 3 + libbitdht/src/bitdht/bdquery.cc | 13 +- libbitdht/src/bitdht/bdquery.h | 2 + libbitdht/src/bitdht/bencode.c | 6 +- libbitdht/src/tests/bdboot.txt | 370 ++++++++++++++++---------------- libbitdht/src/udp/udpbitdht.cc | 18 +- 9 files changed, 268 insertions(+), 208 deletions(-) diff --git a/libbitdht/src/bitdht/bdiface.h b/libbitdht/src/bitdht/bdiface.h index 8c211d3c4..08f3fb67d 100644 --- a/libbitdht/src/bitdht/bdiface.h +++ b/libbitdht/src/bitdht/bdiface.h @@ -120,7 +120,7 @@ virtual void bdPrintNodeId(std::ostream &out, const bdNodeId *a) = 0; */ #define BITDHT_PEER_STATUS_MASK_RECVD 0x000000ff -#define BITDHT_PEER_STATUS_MASK_DHT 0x000000ff +#define BITDHT_PEER_STATUS_MASK_DHT 0x0000ff00 #define BITDHT_PEER_STATUS_RECV_PONG 0x00000001 #define BITDHT_PEER_STATUS_RECV_NODES 0x00000002 diff --git a/libbitdht/src/bitdht/bdmsgs.cc b/libbitdht/src/bitdht/bdmsgs.cc index 41c3d7bbd..cef99ddcb 100644 --- a/libbitdht/src/bitdht/bdmsgs.cc +++ b/libbitdht/src/bitdht/bdmsgs.cc @@ -114,7 +114,7 @@ int bitdht_response_ping_msg(bdToken *tid, bdNodeId *id, bdToken *vid, be_add_keypair(dict, "t", tidnode); be_add_keypair(dict, "y", yqrnode); - be_add_keypair(dict, "V", vnode); + be_add_keypair(dict, "v", vnode); #ifdef DEBUG_MSG_DUMP /* dump answer */ diff --git a/libbitdht/src/bitdht/bdnode.cc b/libbitdht/src/bitdht/bdnode.cc index 847cb71b0..33fd5e11c 100644 --- a/libbitdht/src/bitdht/bdnode.cc +++ b/libbitdht/src/bitdht/bdnode.cc @@ -681,8 +681,6 @@ void bdNode::msgout_ping(bdId *id, bdToken *transId) void bdNode::msgout_pong(bdId *id, bdToken *transId) { - char version[5] = "RS50"; - #ifdef DEBUG_NODE_MSGOUT std::cerr << "bdNode::msgout_pong() TransId: "; bdPrintTransId(std::cerr, transId); @@ -696,8 +694,13 @@ void bdNode::msgout_pong(bdId *id, bdToken *transId) /* generate message, send to udp */ bdToken vid; - memcpy(vid.data, version, 5); - vid.len = 4; + int vlen = BITDHT_TOKEN_MAX_LEN; + if (mDhtVersion.size() < vlen) + { + vlen = mDhtVersion.size(); + } + memcpy(vid.data, mDhtVersion.c_str(), vlen); + vid.len = vlen; char msg[10240]; int avail = 10240; @@ -931,7 +934,19 @@ void bdNode::sendPkt(char *msg, int len, struct sockaddr_in addr) void bdNode::recvPkt(char *msg, int len, struct sockaddr_in addr) { #ifdef DEBUG_NODE_PARSE - fprintf(stderr, "bdNode::recvPkt()\n"); + std::cerr << "bdNode::recvPkt() msg[" << len << "] = "; + for(int i = 0; i < len; i++) + { + if ((msg[i] > 31) && (msg[i] < 127)) + { + std::cerr << msg[i]; + } + else + { + std::cerr << "[" << (int) msg[i] << "]"; + } + } + std::cerr << std::endl; #endif /* convert to a be_node */ @@ -1035,7 +1050,7 @@ void bdNode::recvPkt(char *msg, int len, struct sockaddr_in addr) bdToken versionId; if (beType == BITDHT_MSG_TYPE_PONG) { - be_version = beMsgGetDictNode(be_data, "version"); + be_version = beMsgGetDictNode(node, "v"); if (!be_version) { #ifdef DEBUG_NODE_PARSE @@ -1050,7 +1065,6 @@ void bdNode::recvPkt(char *msg, int len, struct sockaddr_in addr) beMsgGetToken(be_version, versionId); } - /*********** handle target (query) or info_hash (get_hash) ************/ bdNodeId target_info_hash; be_node *be_target = NULL; @@ -1202,7 +1216,15 @@ void bdNode::recvPkt(char *msg, int len, struct sockaddr_in addr) mFns->bdPrintId(std::cerr, &srcId); std::cerr << std::endl; #endif - msgin_pong(&srcId, &transId, &versionId); + if (be_version) + { + msgin_pong(&srcId, &transId, &versionId); + } + else + { + msgin_pong(&srcId, &transId, NULL); + } + break; } case BITDHT_MSG_TYPE_FIND_NODE: /* a: id, transId, target */ @@ -1361,40 +1383,50 @@ void bdNode::msgin_pong(bdId *id, bdToken *transId, bdToken *versionId) #endif /* check two bytes */ - if ((versionId->len > 2) && (mDhtVersion.size() > 2) && + if ((versionId->len >= 2) && (mDhtVersion.size() >= 2) && (versionId->data[0] == mDhtVersion[0]) && (versionId->data[1] == mDhtVersion[1])) { sameDhtEngine = true; } /* check two bytes */ - if ((versionId->len > 4) && (mDhtVersion.size() > 4) && + if ((versionId->len >= 4) && (mDhtVersion.size() >= 4) && (versionId->data[2] == mDhtVersion[2]) && (versionId->data[3] == mDhtVersion[3])) { sameAppl = true; } /* check two bytes */ - if ((versionId->len > 6) && (mDhtVersion.size() > 6) && + if ((versionId->len >= 6) && (mDhtVersion.size() >= 6) && (versionId->data[4] == mDhtVersion[4]) && (versionId->data[5] == mDhtVersion[5])) { sameVersion = true; } } + else + { + +#ifdef DEBUG_NODE_MSGIN + std::cerr << "bdNode::msgin_pong() No Version"; + std::cerr << std::endl; +#endif + } + + uint32_t peerflags = BITDHT_PEER_STATUS_RECV_PONG; /* should have id too */ if (sameDhtEngine) { - peerflags = BITDHT_PEER_STATUS_DHT_ENGINE; + peerflags |= BITDHT_PEER_STATUS_DHT_ENGINE; } if (sameAppl) { - peerflags = BITDHT_PEER_STATUS_DHT_APPL; + peerflags |= BITDHT_PEER_STATUS_DHT_APPL; } if (sameVersion) { - peerflags = BITDHT_PEER_STATUS_DHT_VERSION; + peerflags |= BITDHT_PEER_STATUS_DHT_VERSION; } addPeer(id, peerflags); diff --git a/libbitdht/src/bitdht/bdobj.h b/libbitdht/src/bitdht/bdobj.h index 250d8a479..dbc8b5385 100644 --- a/libbitdht/src/bitdht/bdobj.h +++ b/libbitdht/src/bitdht/bdobj.h @@ -35,6 +35,7 @@ class bdToken { public: + bdToken() :len(0) { return; } uint32_t len; unsigned char data[BITDHT_TOKEN_MAX_LEN]; }; @@ -42,6 +43,7 @@ class bdToken class bdCompactIds { public: + bdCompactIds() :len(0) { return; } uint32_t len; unsigned char data[BITDHT_TOKEN_MAX_LEN]; }; @@ -49,6 +51,7 @@ class bdCompactIds class bdVersion { public: + bdVersion() :len(0) { return; } uint32_t len; unsigned char data[BITDHT_TOKEN_MAX_LEN]; }; diff --git a/libbitdht/src/bitdht/bdquery.cc b/libbitdht/src/bitdht/bdquery.cc index cd1ec77d0..8ca279a7d 100644 --- a/libbitdht/src/bitdht/bdquery.cc +++ b/libbitdht/src/bitdht/bdquery.cc @@ -38,7 +38,7 @@ #define EXPECTED_REPLY 20 -#define QUERY_IDLE_RETRY_PEER_PERIOD (mFns->bdNodesPerBucket() * 30) +#define QUERY_IDLE_RETRY_PEER_PERIOD 300 // 5min = (mFns->bdNodesPerBucket() * 30) /************************************************************ @@ -81,6 +81,8 @@ bdQuery::bdQuery(const bdNodeId *id, std::list &startList, uint32_t queryF mQueryFlags = queryFlags; mQueryTS = now; + mQueryIdlePeerRetryPeriod = QUERY_IDLE_RETRY_PEER_PERIOD; + /* setup the limit of the search * by default it is setup to 000000 = exact match */ @@ -114,6 +116,13 @@ int bdQuery::nextQuery(bdId &id, bdNodeId &targetNodeId) /* search through through list, find closest not queried */ time_t now = time(NULL); + + /* update IdlePeerRetry */ + if ((now - mQueryTS) / 2 > mQueryIdlePeerRetryPeriod) + { + mQueryIdlePeerRetryPeriod = (now-mQueryTS) / 2; + } + bool notFinished = false; std::multimap::iterator it; for(it = mClosest.begin(); it != mClosest.end(); it++) @@ -133,7 +142,7 @@ int bdQuery::nextQuery(bdId &id, bdNodeId &targetNodeId) /* re-request every so often */ if ((!queryPeer) && (mQueryFlags & BITDHT_QFLAGS_DO_IDLE) && - (now - it->second.mLastSendTime > QUERY_IDLE_RETRY_PEER_PERIOD)) + (now - it->second.mLastSendTime > mQueryIdlePeerRetryPeriod)) { #ifdef DEBUG_QUERY fprintf(stderr, "NextQuery() Found out-of-date. queryPeer = true : "); diff --git a/libbitdht/src/bitdht/bdquery.h b/libbitdht/src/bitdht/bdquery.h index 2b9a660a8..75b1adc7a 100644 --- a/libbitdht/src/bitdht/bdquery.h +++ b/libbitdht/src/bitdht/bdquery.h @@ -59,6 +59,8 @@ int printQuery(); time_t mQueryTS; uint32_t mQueryFlags; + int32_t mQueryIdlePeerRetryPeriod; // seconds between retries. + private: // closest peers diff --git a/libbitdht/src/bitdht/bencode.c b/libbitdht/src/bitdht/bencode.c index 1136d8919..60bc75660 100644 --- a/libbitdht/src/bitdht/bencode.c +++ b/libbitdht/src/bitdht/bencode.c @@ -27,10 +27,9 @@ /*** * #define BE_DEBUG_DECODE 1 + * #define BE_DEBUG 1 // controlled from Makefile too. ***/ -//#define BE_DEBUG_DECODE 1 - #ifdef BE_DEBUG_DECODE #include /* debug */ #endif @@ -394,8 +393,9 @@ void be_dump_str(be_node *node) } int len = be_str_len(node); + int i = 0; printf("str[%d] = ", len); - for(int i = 0; i < len; i++) + for(i = 0; i < len; i++) { /* sensible chars */ if ((node->val.s[i] > 31) && (node->val.s[i] < 127)) diff --git a/libbitdht/src/tests/bdboot.txt b/libbitdht/src/tests/bdboot.txt index 94d386a6d..86d934160 100644 --- a/libbitdht/src/tests/bdboot.txt +++ b/libbitdht/src/tests/bdboot.txt @@ -1,138 +1,3 @@ -85.56.139.56 58749 -71.196.189.66 43541 -60.54.39.89 18756 -112.207.137.130 45682 -84.115.175.203 38839 -85.10.16.82 42070 -61.116.102.55 58995 -87.56.74.190 51804 -83.31.49.246 49408 -88.132.33.234 10889 -93.148.69.177 64396 -95.140.7.82 45643 -84.42.245.181 62910 -71.172.80.247 16639 -77.41.69.144 58436 -189.239.185.252 63091 -187.114.203.208 18571 -70.75.204.73 34767 -78.83.106.252 32836 -95.139.113.36 30816 -189.60.98.121 38345 -220.132.72.212 27085 -70.157.138.186 23602 -189.136.163.215 22838 -89.33.94.80 18377 -79.111.165.2 19211 -92.24.189.239 45717 -193.25.104.85 45766 -59.93.93.23 39382 -89.18.194.180 53230 -116.71.218.45 10165 -156.34.28.98 45682 -203.206.53.27 10358 -41.235.61.5 16498 -86.138.70.43 14685 -183.14.156.148 16001 -85.107.216.225 61077 -79.89.31.240 23687 -187.67.26.74 20595 -24.87.88.9 49947 -222.131.10.83 5070 -212.117.169.181 55788 -80.64.65.14 61551 -81.232.90.184 43611 -89.180.106.123 51337 -71.180.229.140 25107 -41.238.203.245 42311 -71.227.139.224 32093 -123.115.241.29 8808 -62.45.98.176 6881 -92.154.104.90 49500 -78.60.71.95 39201 -89.113.24.69 41489 -98.222.41.217 55836 -98.242.242.83 25455 -99.41.207.6 58729 -96.250.33.132 50343 -93.80.210.92 53838 -94.236.129.131 46060 -83.142.210.17 17901 -93.152.162.14 42404 -71.82.210.81 26642 -116.74.67.240 42370 -98.225.224.13 16321 -89.179.79.75 62045 -24.250.154.26 52769 -72.39.29.128 22844 -194.186.188.48 63808 -67.172.251.253 22076 -92.13.58.11 55202 -218.44.104.181 59116 -91.195.208.8 6881 -66.197.165.38 6821 -70.160.28.191 29602 -24.15.202.167 15309 -118.128.194.3 35703 -92.27.69.69 11399 -113.169.9.165 20302 -41.204.126.178 11275 -66.212.214.127 22767 -174.94.79.203 63317 -83.84.130.254 2302 -88.203.213.216 9463 -173.174.10.130 39909 -114.24.151.183 8262 -121.164.15.29 13396 -125.26.125.11 16915 -95.130.12.19 61050 -95.79.35.108 54704 -62.30.225.190 10398 -79.69.156.88 11179 -76.28.227.60 10277 -69.249.116.97 60199 -118.100.44.109 48673 -114.47.173.140 12818 -79.116.217.129 36525 -64.46.21.119 30393 -209.82.182.182 46512 -95.56.18.8 55061 -24.210.149.136 45504 -189.110.174.160 42176 -210.159.160.128 43535 -119.179.53.14 16001 -212.63.215.33 49001 -78.61.116.247 56061 -212.80.48.31 11175 -77.49.170.106 30929 -211.187.166.100 46368 -186.45.162.37 54458 -84.52.32.176 22994 -89.34.93.54 23540 -213.151.5.123 21520 -173.72.137.187 27512 -212.75.18.238 9486 -212.21.20.244 24825 -95.7.164.167 23502 -116.0.246.100 11209 -58.153.12.250 5067 -77.126.4.157 63977 -79.81.134.243 12275 -81.89.88.35 20576 -188.19.198.174 9853 -118.233.55.189 14280 -95.155.118.39 9334 -83.97.66.151 12608 -202.125.62.131 7444 -61.57.105.113 22728 -81.82.115.46 43952 -79.111.74.223 45987 -60.56.221.89 1069 -109.74.209.168 62393 -76.224.27.8 56053 -79.163.179.77 26850 -189.32.67.235 63258 -75.84.157.242 15877 142.177.246.95 59112 116.2.32.161 20124 188.126.46.50 44950 @@ -145,7 +10,6 @@ 77.81.214.54 55140 188.2.177.127 18893 77.106.248.215 61010 -76.189.218.104 31714 92.40.218.25 17436 79.11.74.201 25511 124.217.18.33 52665 @@ -153,20 +17,16 @@ 116.75.93.225 17753 91.154.247.194 47519 85.157.34.95 39877 -72.12.147.238 48200 87.207.198.164 57380 76.88.103.96 6688 69.156.182.48 9745 174.118.75.21 57528 78.131.114.243 35625 -178.162.183.226 6821 85.120.227.7 39679 -77.108.227.234 46150 67.21.102.65 61696 90.20.253.243 17134 77.106.112.192 63044 89.132.70.154 54892 -80.190.139.91 6892 89.228.34.41 11402 99.16.45.162 58728 114.169.35.228 10609 @@ -174,11 +34,8 @@ 62.194.214.11 53956 86.140.220.164 63805 89.209.84.223 45645 -69.61.67.154 51413 71.176.151.158 34312 87.252.246.164 10004 -76.83.2.223 51867 -174.100.244.175 32360 174.6.184.150 55074 122.116.144.204 6881 188.126.95.124 51422 @@ -200,19 +57,14 @@ 99.1.110.3 22440 201.53.55.59 61292 95.58.92.65 48802 -188.134.14.120 9089 -78.72.106.34 53188 89.178.134.24 64389 76.215.117.211 51413 114.27.89.171 43349 80.99.42.137 10566 187.20.103.130 16333 213.85.141.144 46456 -84.86.167.83 49250 85.186.48.10 25274 70.48.43.93 59364 -94.31.232.73 47220 -24.12.33.224 25976 114.154.228.24 14512 202.67.20.232 13380 94.15.164.174 45657 @@ -247,7 +99,6 @@ 71.63.16.85 44949 68.215.227.132 50513 62.228.103.223 11249 -219.112.140.25 16297 118.168.199.192 21018 89.103.74.81 11790 77.110.201.72 55144 @@ -276,8 +127,6 @@ 98.148.246.127 50300 142.68.210.47 63653 218.168.225.229 22678 -88.162.153.3 45698 -109.87.83.228 48931 92.104.49.179 8500 173.32.63.117 61054 87.121.173.150 6148 @@ -285,26 +134,15 @@ 91.154.137.162 11984 80.171.58.170 22797 94.27.109.220 36053 -67.215.242.138 6881 -173.50.147.111 55669 -67.240.191.70 53081 118.160.53.83 12731 216.138.216.227 49001 -77.93.16.43 35431 -178.82.201.203 12055 -68.62.10.72 22867 -88.177.195.185 20299 187.16.62.58 63388 121.80.39.231 18252 213.112.106.243 18786 79.113.182.121 42808 -88.184.85.157 40478 82.119.65.229 41614 -24.35.86.183 48539 -67.183.139.6 29721 121.124.190.173 50282 117.194.194.73 13257 -110.175.157.60 12000 93.102.129.104 36854 92.104.22.153 6881 68.203.251.86 18992 @@ -315,20 +153,16 @@ 88.115.78.139 15273 123.117.107.29 19970 93.96.190.204 6883 -83.248.90.115 53778 78.96.174.224 60387 68.40.87.11 37253 -70.178.210.213 38087 77.101.133.246 14789 115.143.47.172 30429 93.100.92.224 27243 80.80.153.98 11832 91.206.4.9 3333 188.35.8.236 62459 -86.107.79.233 49905 24.22.195.49 6881 76.101.135.11 20009 -222.164.18.139 6881 193.106.25.130 57020 79.107.183.240 45683 71.229.83.233 45682 @@ -349,7 +183,6 @@ 95.26.55.82 59164 62.221.151.184 20536 109.201.74.159 10207 -98.254.244.165 56359 203.185.36.12 19872 210.73.1.92 12469 218.171.240.219 10236 @@ -361,7 +194,6 @@ 90.49.27.240 50510 188.4.197.57 59491 84.101.189.175 19015 -90.180.166.149 6880 67.189.42.213 53943 113.199.242.93 35720 183.179.97.20 24840 @@ -370,18 +202,13 @@ 118.137.194.171 26705 210.6.173.121 14972 87.194.243.159 64670 -81.236.226.106 6882 83.77.171.200 15846 84.52.63.250 14255 -67.215.242.139 6881 173.75.218.211 63205 122.118.67.231 23915 83.9.39.33 22798 94.69.249.98 48057 -86.13.80.190 51326 88.106.69.215 11924 -212.242.219.216 47000 -95.76.50.171 19698 88.89.180.142 10766 77.45.166.176 32802 24.14.73.12 40442 @@ -401,17 +228,13 @@ 123.118.137.119 25421 219.175.138.61 23739 95.96.188.23 12400 -188.134.67.102 6882 24.98.183.64 57540 93.123.41.127 23436 173.87.8.115 22866 -200.29.72.19 46935 189.19.100.69 1224 220.102.166.142 27156 -81.106.247.102 19244 82.25.111.214 21311 193.201.198.253 63408 -94.47.188.106 56342 173.71.152.93 50989 70.119.159.158 62727 86.176.212.56 53046 @@ -432,31 +255,23 @@ 87.70.142.8 15960 98.135.71.79 29008 117.47.90.194 10016 -99.139.154.78 8877 -85.12.239.118 64317 76.65.18.45 7700 87.224.254.21 25388 93.84.84.155 51757 -84.124.205.238 23020 -221.46.51.137 22507 213.16.120.166 54701 92.81.249.11 11185 77.54.70.32 35815 60.244.140.57 12687 109.165.40.174 23806 147.46.216.167 50410 -99.57.47.134 19965 180.25.22.176 40005 71.12.16.186 11422 -24.49.177.89 40029 88.141.135.252 58810 92.112.66.105 55311 111.249.218.164 56509 -68.149.168.121 64750 41.223.241.48 38494 80.99.189.105 50001 95.32.38.47 31175 -213.125.29.122 6881 92.28.148.131 22902 114.42.222.199 22443 175.115.187.64 13038 @@ -498,3 +313,188 @@ 114.47.171.209 21087 76.177.235.15 13961 178.164.177.154 8929 +77.41.69.144 58436 +93.152.162.14 42404 +72.39.29.128 22844 +70.160.28.191 29602 +24.87.88.9 49947 +41.204.126.178 11275 +71.227.139.224 32093 +76.28.227.60 10277 +212.80.48.31 11175 +95.130.12.19 61050 +66.197.165.38 6821 +72.12.147.238 48200 +80.190.139.91 6892 +77.108.227.234 46150 +69.61.67.154 51413 +209.82.182.182 46512 +76.83.2.223 51867 +76.189.218.104 31714 +174.100.244.175 32360 +178.162.183.226 6821 +78.72.106.34 53188 +188.134.14.120 9089 +94.31.232.73 47220 +24.12.33.224 25976 +24.250.154.26 52769 +84.86.167.83 49250 +109.87.83.228 48931 +88.162.153.3 45698 +178.82.201.203 12055 +67.215.242.138 6881 +173.50.147.111 55669 +67.240.191.70 53081 +68.62.10.72 22867 +88.184.85.157 40478 +24.35.86.183 48539 +67.183.139.6 29721 +219.112.140.25 16297 +110.175.157.60 12000 +70.178.210.213 38087 +77.93.16.43 35431 +222.164.18.139 6881 +83.248.90.115 53778 +98.254.244.165 56359 +90.180.166.149 6880 +88.177.195.185 20299 +67.215.242.139 6881 +86.13.80.190 51326 +86.107.79.233 49905 +212.242.219.216 47000 +95.76.50.171 19698 +81.106.247.102 19244 +188.134.67.102 6882 +81.236.226.106 6882 +94.47.188.106 56342 +200.29.72.19 46935 +99.139.154.78 8877 +84.124.205.238 23020 +213.125.29.122 6881 +68.149.168.121 64750 +99.57.47.134 19965 +24.49.177.89 40029 +221.46.51.137 22507 +85.12.239.118 64317 +78.90.116.74 19466 +95.79.41.39 40496 +213.133.98.4 6881 +71.170.86.79 20322 +90.154.242.204 59379 +195.184.205.254 14834 +201.37.1.184 20996 +183.179.244.186 17518 +98.219.151.25 33246 +99.25.55.50 63685 +95.90.32.98 21015 +66.197.165.51 6821 +68.44.82.53 12371 +24.186.168.108 36916 +74.79.37.90 31551 +207.38.168.53 44635 +209.202.78.188 14812 +76.101.24.82 13823 +68.46.57.52 11695 +189.122.64.147 24387 +123.163.132.87 64425 +125.24.191.183 32201 +123.231.81.151 45682 +76.189.50.158 29456 +212.117.167.140 10005 +82.75.135.251 49155 +77.250.123.105 6884 +83.25.71.129 43558 +212.117.1.153 17845 +95.84.155.141 21057 +195.22.140.72 4214 +84.40.91.202 42870 +85.10.46.180 24142 +174.112.6.77 6881 +151.12.60.142 42488 +70.162.99.44 54092 +193.91.144.166 43190 +213.60.233.181 34385 +71.235.207.19 53148 +114.42.20.220 14842 +81.98.127.164 48895 +213.10.67.211 17030 +62.45.245.22 6881 +80.82.92.76 29221 +89.28.27.55 17886 +69.151.72.98 12345 +78.187.75.191 41182 +122.173.206.18 21221 +75.53.192.65 56862 +123.204.71.15 12632 +213.46.44.100 59580 +76.115.102.119 40940 +85.227.178.143 25158 +79.129.187.145 16458 +195.98.76.238 24480 +85.227.228.157 51413 +83.252.123.146 58345 +86.110.176.106 30000 +74.13.82.92 6881 +92.33.129.197 16432 +109.252.111.191 33426 +188.17.177.14 23023 +94.232.104.14 59873 +60.54.43.194 14046 +122.211.106.11 14409 +113.10.81.130 18145 +193.23.54.47 23933 +151.46.167.111 14107 +74.73.144.128 8944 +188.168.34.126 50862 +85.30.148.74 34178 +83.99.166.208 32575 +109.226.90.250 59039 +216.252.93.187 10248 +201.127.74.88 23041 +220.232.101.77 10765 +64.53.28.136 10809 +111.254.1.128 17447 +74.44.148.55 34665 +84.10.244.103 48553 +109.173.50.36 49288 +84.3.119.233 45000 +216.121.134.38 10348 +77.49.255.137 38764 +96.252.163.120 35217 +72.89.151.90 17320 +89.168.85.181 15348 +124.84.78.74 10674 +190.188.199.13 62986 +94.254.73.152 44229 +192.188.244.1 10634 +84.215.248.234 40991 +79.119.111.31 63150 +95.155.230.83 54993 +83.85.60.232 6881 +178.130.32.118 14247 +78.36.196.61 59269 +76.29.12.37 12308 +78.180.216.41 17351 +61.231.198.76 14685 +118.14.157.125 21624 +71.62.37.197 7914 +71.29.78.193 55989 +118.18.244.181 25949 +92.97.196.183 42303 +118.104.11.221 21289 +190.174.204.226 42233 +89.134.203.232 17633 +95.26.152.248 60268 +46.0.3.147 27613 +24.49.32.34 28441 +99.23.91.163 15016 +90.209.174.130 21332 +71.17.47.149 53164 +119.246.176.132 6881 +111.249.153.64 21540 +123.119.85.79 24805 +116.15.111.133 44914 +109.154.116.92 24460 +142.167.215.241 12277 +78.8.106.8 50000 +78.8.193.215 64759 diff --git a/libbitdht/src/udp/udpbitdht.cc b/libbitdht/src/udp/udpbitdht.cc index dc53b5f84..3ec826122 100644 --- a/libbitdht/src/udp/udpbitdht.cc +++ b/libbitdht/src/udp/udpbitdht.cc @@ -41,17 +41,31 @@ /* * #define DEBUG_UDP_BITDHT 1 + * + * #define BITDHT_VERSION_ANONYMOUS 1 */ //#define DEBUG_UDP_BITDHT 1 +#define BITDHT_VERSION_IDENTIFER 1 /*************************************/ -UdpBitDht::UdpBitDht(UdpPublisher *pub, bdNodeId *id, std::string dhtVersion, std::string bootstrapfile, bdDhtFunctions *fns) +UdpBitDht::UdpBitDht(UdpPublisher *pub, bdNodeId *id, std::string appVersion, std::string bootstrapfile, bdDhtFunctions *fns) :UdpSubReceiver(pub), mFns(fns) { + std::string usedVersion; + +#ifdef BITDHT_VERSION_IDENTIFER + usedVersion = "BD"; +#endif + usedVersion += appVersion; + +#ifdef BITDHT_VERSION_ANONYMOUS + usedVersion = ""; /* blank it */ +#endif + /* setup nodeManager */ - mBitDhtManager = new bdNodeManager(id, dhtVersion, bootstrapfile, fns); + mBitDhtManager = new bdNodeManager(id, usedVersion, bootstrapfile, fns); }