~ubuntu-branches/ubuntu/oneiric/libktorrent/oneiric

« back to all changes in this revision

Viewing changes to src/dht/dht.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Modestas Vainius
  • Date: 2011-05-26 00:33:38 UTC
  • mfrom: (5.1.7 experimental)
  • Revision ID: james.westby@ubuntu.com-20110526003338-2r4zwyzn8bovsxay
Tags: 1.1.1-2
Release to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
102
102
                delete srv; srv = 0;
103
103
        }
104
104
 
105
 
        void DHT::ping(PingReq* r)
 
105
        void DHT::ping(PingReq::Ptr r)
106
106
        {
107
107
                if (!running)
108
108
                        return;
114
114
                Out(SYS_DHT|LOG_NOTICE) << "DHT: Sending ping response" << endl;
115
115
                PingRsp rsp(r->getMTID(),node->getOurID());
116
116
                rsp.setOrigin(r->getOrigin());
117
 
                srv->sendMsg(&rsp);
 
117
                srv->sendMsg(rsp);
118
118
                node->received(this,r);
119
119
        }
120
120
        
121
121
        
122
122
        
123
 
        void DHT::findNode(FindNodeReq* r)
 
123
        void DHT::findNode(FindNodeReq::Ptr r)
124
124
        {
125
125
                if (!running)
126
126
                        return;
140
140
                // pack the found nodes in a byte array
141
141
                kns.pack(&fnr);
142
142
                fnr.setOrigin(r->getOrigin());
143
 
                srv->sendMsg(&fnr);
 
143
                srv->sendMsg(fnr);
144
144
        }
145
145
 
146
146
        NodeLookup* DHT::findOwnNode()
161
161
        }
162
162
 
163
163
        
164
 
        void DHT::announce(AnnounceReq* r)
 
164
        void DHT::announce(AnnounceReq::Ptr r)
165
165
        {
166
166
                if (!running)
167
167
                        return;
182
182
                // send a proper response to indicate everything is OK
183
183
                AnnounceRsp rsp(r->getMTID(),node->getOurID());
184
184
                rsp.setOrigin(r->getOrigin());
185
 
                srv->sendMsg(&rsp);
 
185
                srv->sendMsg(rsp);
186
186
        }
187
187
        
188
188
        
189
189
        
190
 
        void DHT::getPeers(GetPeersReq* r)
 
190
        void DHT::getPeers(GetPeersReq::Ptr r)
191
191
        {
192
192
                if (!running)
193
193
                        return;
215
215
                        GetPeersRsp fnr(r->getMTID(),node->getOurID(),token);
216
216
                        kns.pack(&fnr);
217
217
                        fnr.setOrigin(r->getOrigin());
218
 
                        srv->sendMsg(&fnr);
 
218
                        srv->sendMsg(fnr);
219
219
                }
220
220
                else
221
221
                {                       
222
222
                        // send a get peers response
223
223
                        GetPeersRsp fvr(r->getMTID(),node->getOurID(),dbl,token);
224
224
                        fvr.setOrigin(r->getOrigin());
225
 
                        srv->sendMsg(&fvr);
 
225
                        srv->sendMsg(fvr);
226
226
                }
227
227
        }
228
228
        
229
 
        void DHT::response(MsgBase* r)
 
229
        void DHT::response(MsgBase::Ptr r)
230
230
        {
231
231
                if (!running)
232
232
                        return;
234
234
                node->received(this,r);
235
235
        }
236
236
        
237
 
        void DHT::error(ErrMsg* )
 
237
        void DHT::error(ErrMsg::Ptr )
238
238
        {}
239
239
        
240
240
 
244
244
                        return;
245
245
                
246
246
                Out(SYS_DHT|LOG_DEBUG) << "Sending ping request to " << ip << ":" << port << endl;
247
 
                PingReq* r = new PingReq(node->getOurID());
 
247
                MsgBase::Ptr r(new PingReq(node->getOurID()));
248
248
                r->setOrigin(KInetSocketAddress(ip,port));
249
249
                srv->doCall(r);
250
250
        }
346
346
                }
347
347
        }
348
348
        
349
 
        void DHT::timeout(const MsgBase* r)
 
349
        void DHT::timeout(MsgBase::Ptr r)
350
350
        {
351
351
                node->onTimeout(r);
352
352
        }