File indexing completed on 2025-01-05 04:37:11
0001 /* 0002 SPDX-FileCopyrightText: 2012 Joris Guisson <joris.guisson@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "pingrsp.h" 0008 #include "dht.h" 0009 #include <bcodec/bencoder.h> 0010 #include <util/log.h> 0011 0012 using namespace bt; 0013 0014 namespace dht 0015 { 0016 PingRsp::PingRsp() 0017 : RPCMsg(QByteArray(), PING, RSP_MSG, Key()) 0018 { 0019 } 0020 0021 PingRsp::PingRsp(const QByteArray &mtid, const Key &id) 0022 : RPCMsg(mtid, PING, RSP_MSG, id) 0023 { 0024 } 0025 0026 PingRsp::~PingRsp() 0027 { 0028 } 0029 0030 void PingRsp::apply(dht::DHT *dh_table) 0031 { 0032 dh_table->response(*this); 0033 } 0034 0035 void PingRsp::print() 0036 { 0037 Out(SYS_DHT | LOG_DEBUG) << QString("RSP: %1 %2 : ping").arg(mtid[0]).arg(id.toString()) << endl; 0038 } 0039 0040 void PingRsp::encode(QByteArray &arr) const 0041 { 0042 BEncoder enc(new BEncoderBufferOutput(arr)); 0043 enc.beginDict(); 0044 { 0045 enc.write(RSP); 0046 enc.beginDict(); 0047 { 0048 enc.write(QByteArrayLiteral("id")); 0049 enc.write(id.getData(), 20); 0050 } 0051 enc.end(); 0052 enc.write(TID); 0053 enc.write(mtid); 0054 enc.write(TYP); 0055 enc.write(RSP); 0056 } 0057 enc.end(); 0058 } 0059 }