Changeset View
Changeset View
Standalone View
Standalone View
src/dht/dht.cpp
Show First 20 Lines • Show All 181 Lines • ▼ Show 20 Line(s) | 181 | if (!running) | |||
---|---|---|---|---|---|
182 | return; | 182 | return; | ||
183 | 183 | | |||
184 | // ignore requests we get from ourself | 184 | // ignore requests we get from ourself | ||
185 | if (r.getID() == node->getOurID()) | 185 | if (r.getID() == node->getOurID()) | ||
186 | return; | 186 | return; | ||
187 | 187 | | |||
188 | node->received(this, r); | 188 | node->received(this, r); | ||
189 | // first check if the token is OK | 189 | // first check if the token is OK | ||
190 | dht::Key token = r.getToken(); | 190 | QByteArray token = r.getToken(); | ||
191 | if (!db->checkToken(token, r.getOrigin())) | 191 | if (!db->checkToken(token, r.getOrigin())) | ||
192 | return; | 192 | return; | ||
193 | 193 | | |||
194 | // everything OK, so store the value | 194 | // everything OK, so store the value | ||
195 | db->store(r.getInfoHash(), DBItem(r.getOrigin())); | 195 | db->store(r.getInfoHash(), DBItem(r.getOrigin())); | ||
196 | // send a proper response to indicate everything is OK | 196 | // send a proper response to indicate everything is OK | ||
197 | AnnounceRsp rsp(r.getMTID(), node->getOurID()); | 197 | AnnounceRsp rsp(r.getMTID(), node->getOurID()); | ||
198 | rsp.setOrigin(r.getOrigin()); | 198 | rsp.setOrigin(r.getOrigin()); | ||
Show All 11 Lines | 205 | { | |||
210 | if (r.getID() == node->getOurID()) | 210 | if (r.getID() == node->getOurID()) | ||
211 | return; | 211 | return; | ||
212 | 212 | | |||
213 | node->received(this, r); | 213 | node->received(this, r); | ||
214 | DBItemList dbl; | 214 | DBItemList dbl; | ||
215 | db->sample(r.getInfoHash(), dbl, 50, r.getOrigin().ipVersion()); | 215 | db->sample(r.getInfoHash(), dbl, 50, r.getOrigin().ipVersion()); | ||
216 | 216 | | |||
217 | // generate a token | 217 | // generate a token | ||
218 | dht::Key token = db->genToken(r.getOrigin()); | 218 | QByteArray token = db->genToken(r.getOrigin()); | ||
219 | 219 | | |||
220 | bt::Uint32 wants = 0; | 220 | bt::Uint32 wants = 0; | ||
221 | if (r.wants(4) || r.getOrigin().ipVersion() == 4) | 221 | if (r.wants(4) || r.getOrigin().ipVersion() == 4) | ||
222 | wants |= WANT_IPV4; | 222 | wants |= WANT_IPV4; | ||
223 | if (r.wants(6) || r.getOrigin().ipVersion() == 6) | 223 | if (r.wants(6) || r.getOrigin().ipVersion() == 6) | ||
224 | wants |= WANT_IPV6; | 224 | wants |= WANT_IPV6; | ||
225 | 225 | | |||
226 | // if data is null do the same as when we have a findNode request | 226 | // if data is null do the same as when we have a findNode request | ||
▲ Show 20 Lines • Show All 204 Lines • Show Last 20 Lines |