1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-23 02:35:57 +01:00

Removed PDU::clone_packet and renamed PDU::clone_pdu to PDU::clone.

This commit is contained in:
Matias Fontanini
2012-09-11 16:54:14 -03:00
parent 7cbd32361a
commit e8151724c4
38 changed files with 106 additions and 117 deletions

View File

@@ -88,7 +88,7 @@ void send_syns(const NetworkInterface &iface, IPv4Address dest_ip, const vector<
// Pretend we're the scanned host...
ip.src_addr(dest_ip);
// We use an ethernet pdu, otherwise the kernel will drop it.
EthernetII eth(iface, info.hw_addr, info.hw_addr, ip.clone_pdu());
EthernetII eth(iface, info.hw_addr, info.hw_addr, ip.clone());
sender.send(eth);
}

View File

@@ -270,9 +270,9 @@ namespace Tins {
PDU *clone_packet(const uint8_t *ptr, uint32_t total_sz);
/**
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
ARP *clone_pdu() const {
ARP *clone() const {
return new ARP(*this);
}
private:

View File

@@ -291,9 +291,9 @@ namespace Tins {
PDUType pdu_type() const { return PDU::BOOTP; }
/**
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
BootP *clone_pdu() const {
BootP *clone() const {
return new BootP(*this);
}
protected:

View File

@@ -379,9 +379,9 @@ namespace Tins {
uint32_t header_size() const;
/**
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
DHCP *clone_pdu() const {
DHCP *clone() const {
return new DHCP(*this);
}
private:

View File

@@ -481,9 +481,9 @@ namespace Tins {
resources_type dns_answers();
/**
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
DNS *clone_pdu() const {
DNS *clone() const {
return new DNS(*this);
}
private:

View File

@@ -402,6 +402,13 @@ namespace Tins {
*/
PDUType pdu_type() const { return pdu_flag; }
/**
* \sa PDU::clone
*/
Dot11 *clone() const {
return new Dot11(*this);
}
/**
* \brief Check wether this PDU matches the specified flag.
* \param flag The flag to match
@@ -1550,9 +1557,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11Beacon *clone_pdu() const {
Dot11Beacon *clone() const {
return new Dot11Beacon(*this);
}
@@ -1647,9 +1654,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11Disassoc *clone_pdu() const {
Dot11Disassoc *clone() const {
return new Dot11Disassoc(*this);
}
private:
@@ -1750,9 +1757,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11AssocRequest *clone_pdu() const {
Dot11AssocRequest *clone() const {
return new Dot11AssocRequest(*this);
}
private:
@@ -1868,9 +1875,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11AssocResponse *clone_pdu() const {
Dot11AssocResponse *clone() const {
return new Dot11AssocResponse(*this);
}
private:
@@ -1987,9 +1994,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11ReAssocRequest *clone_pdu() const {
Dot11ReAssocRequest *clone() const {
return new Dot11ReAssocRequest(*this);
}
private:
@@ -2106,9 +2113,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11ReAssocResponse *clone_pdu() const {
Dot11ReAssocResponse *clone() const {
return new Dot11ReAssocResponse(*this);
}
private:
@@ -2225,9 +2232,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11Authentication *clone_pdu() const {
Dot11Authentication *clone() const {
return new Dot11Authentication(*this);
}
private:
@@ -2317,9 +2324,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11Deauthentication *clone_pdu() const {
Dot11Deauthentication *clone() const {
return new Dot11Deauthentication(*this);
}
private:
@@ -2384,9 +2391,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu()
* \sa PDU::clone()
*/
Dot11ProbeRequest* clone_pdu() const {
Dot11ProbeRequest* clone() const {
return new Dot11ProbeRequest(*this);
}
@@ -2479,9 +2486,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu()
* \sa PDU::clone()
*/
Dot11ProbeResponse* clone_pdu() const {
Dot11ProbeResponse* clone() const {
return new Dot11ProbeResponse(*this);
}
@@ -2629,9 +2636,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11Data *clone_pdu() const {
Dot11Data *clone() const {
return new Dot11Data(*this);
}
protected:
@@ -2713,9 +2720,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11QoSData *clone_pdu() const {
Dot11QoSData *clone() const {
return new Dot11QoSData(*this);
}
@@ -2882,9 +2889,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11RTS *clone_pdu() const {
Dot11RTS *clone() const {
return new Dot11RTS(*this);
}
@@ -2938,9 +2945,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11PSPoll *clone_pdu() const {
Dot11PSPoll *clone() const {
return new Dot11PSPoll(*this);
}
@@ -2994,9 +3001,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11CFEnd *clone_pdu() const {
Dot11CFEnd *clone() const {
return new Dot11CFEnd(*this);
}
@@ -3049,9 +3056,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11EndCFAck *clone_pdu() const {
Dot11EndCFAck *clone() const {
return new Dot11EndCFAck(*this);
}
@@ -3103,9 +3110,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11Ack *clone_pdu() const {
Dot11Ack *clone() const {
return new Dot11Ack(*this);
}
@@ -3209,9 +3216,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11BlockAckRequest *clone_pdu() const {
Dot11BlockAckRequest *clone() const {
return new Dot11BlockAckRequest(*this);
}
@@ -3346,9 +3353,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
Dot11BlockAck *clone_pdu() const {
Dot11BlockAck *clone() const {
return new Dot11BlockAck(*this);
}
private:

View File

@@ -313,9 +313,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
RC4EAPOL *clone_pdu() const {
RC4EAPOL *clone() const {
return new RC4EAPOL(*this);
}
private:
@@ -519,9 +519,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
RSNEAPOL *clone_pdu() const {
RSNEAPOL *clone() const {
return new RSNEAPOL(*this);
}
private:

View File

@@ -181,9 +181,9 @@ namespace Tins {
PDU *clone_packet(const uint8_t *ptr, uint32_t total_sz);
/**
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
EthernetII *clone_pdu() const {
EthernetII *clone() const {
return new EthernetII(*this);
}
private:

View File

@@ -303,9 +303,9 @@ namespace Tins {
PDU *clone_packet(const uint8_t *ptr, uint32_t total_sz);
/**
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
ICMP *clone_pdu() const {
ICMP *clone() const {
return new ICMP(*this);
}
private:

View File

@@ -179,9 +179,9 @@ namespace Tins {
PDU *clone_packet(const uint8_t *ptr, uint32_t total_sz);
/**
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
IEEE802_3 *clone_pdu() const {
IEEE802_3 *clone() const {
return new IEEE802_3(*this);
}
private:

View File

@@ -547,9 +547,9 @@ namespace Tins {
PDU *clone_packet(const uint8_t *ptr, uint32_t total_sz);
/**
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
IP *clone_pdu() const {
IP *clone() const {
return new IP(*this);
}
private:

View File

@@ -300,9 +300,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
LLC *clone_pdu() const {
LLC *clone() const {
return new LLC(*this);
}
private:

View File

@@ -205,19 +205,7 @@ namespace Tins {
* The pointer returned must be deleted by the user.
* \return A pointer to a clone of this packet.
*/
PDU *clone_packet() const;
/**
* \brief Clones this PDU.
*
* This method does not clone the inner PDUs. \sa PDU::clone_packet
* \return A pointer to a copy of this PDU.
*/
virtual PDU *clone_pdu() const {
/* Should be pure virtual. It's this way to avoid compiling issues.
* Once every pdu has implemented it, make it pure virtual. */
return 0;
}
virtual PDU *clone() const = 0;
/** \brief Send the stack of PDUs through a PacketSender.
*
@@ -327,7 +315,7 @@ namespace Tins {
* \brief Generic clone pdu method.
*/
template<class T>
T *do_clone_pdu() const {
T *do_clone() const {
T *new_pdu = new T(*static_cast<const T*>(this));
//new_pdu->copy_inner_pdu(*this);
return new_pdu;

View File

@@ -273,6 +273,13 @@ namespace Tins {
*/
uint32_t trailer_size() const;
/**
* \sa PDU::clone
*/
RadioTap *clone() const {
return new RadioTap(*this);
}
/**
* \brief Getter for the PDU's type.
* \sa PDU::pdu_type

View File

@@ -107,9 +107,9 @@ namespace Tins {
PDUType pdu_type() const { return PDU::RAW; }
/**
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
RawPDU *clone_pdu() const {
RawPDU *clone() const {
return new RawPDU(*this);
}
private:

View File

@@ -134,9 +134,9 @@ namespace Tins {
/**
* \brief Clones this PDU.
*
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
SNAP *clone_pdu() const {
SNAP *clone() const {
return new SNAP(*this);
}
private:

View File

@@ -377,9 +377,9 @@ namespace Tins {
const tcp_option *search_option(Option opt) const;
/**
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
TCP *clone_pdu() const {
TCP *clone() const {
return new TCP(*this);
}
private:

View File

@@ -109,9 +109,9 @@ namespace Tins {
PDUType pdu_type() const { return PDU::UDP; }
/**
* \sa PDU::clone_pdu
* \sa PDU::clone
*/
PDU *clone_pdu() const {
PDU *clone() const {
return new UDP(*this);
}
private:

View File

@@ -47,7 +47,7 @@ PDU::~PDU() {
void PDU::copy_inner_pdu(const PDU &pdu) {
if(pdu.inner_pdu())
inner_pdu(pdu.inner_pdu()->clone_pdu());
inner_pdu(pdu.inner_pdu()->clone());
}
uint32_t PDU::size() const {
@@ -111,17 +111,4 @@ PDU *PDU::clone_inner_pdu(const uint8_t *ptr, uint32_t total_sz) {
child = new RawPDU(ptr, total_sz);
return child;
}
PDU *PDU::clone_packet() const {
PDU *ret = clone_pdu();
if(ret) {
PDU *ptr = 0, *last = ret;
while(last && last->inner_pdu()) {
ptr = last->inner_pdu()->clone_pdu();
last->inner_pdu(ptr);
last = ptr;
}
}
return ret;
}
}

View File

@@ -80,7 +80,7 @@ void TCPStream::free_fragments(fragments_type &frags) {
TCPStream::fragments_type TCPStream::clone_fragments(const fragments_type &frags) {
fragments_type new_frags;
for(fragments_type::const_iterator it = frags.begin(); it != frags.end(); ++it)
new_frags.insert(std::make_pair(it->first, it->second->clone_pdu()));
new_frags.insert(std::make_pair(it->first, it->second->clone()));
return new_frags;
}

View File

@@ -83,7 +83,7 @@ TEST_F(Dot11AckTest, CopyAssignmentOperator) {
TEST_F(Dot11AckTest, ClonePDU) {
Dot11Ack dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11Ack> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11Ack> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -73,7 +73,7 @@ TEST_F(Dot11AssocRequestTest, ListenInterval) {
TEST_F(Dot11AssocRequestTest, ClonePDU) {
Dot11AssocRequest dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11AssocRequest> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11AssocRequest> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -81,7 +81,7 @@ TEST_F(Dot11AssocResponseTest, AID) {
TEST_F(Dot11AssocResponseTest, ClonePDU) {
Dot11AssocResponse dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11AssocResponse> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11AssocResponse> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -89,7 +89,7 @@ TEST_F(Dot11AuthenticationTest, AuthAlgorithm) {
TEST_F(Dot11AuthenticationTest, ClonePDU) {
Dot11Authentication dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11Authentication> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11Authentication> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -78,7 +78,7 @@ TEST_F(Dot11BlockAckRequestTest, ClonePDU) {
dot1.fragment_number(6);
dot1.start_sequence(0x294);
dot1.bar_control(0x92f);
std::auto_ptr<Dot11BlockAckRequest> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11BlockAckRequest> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -60,7 +60,7 @@ TEST_F(Dot11CFEndTest, CopyAssignmentOperator) {
TEST_F(Dot11CFEndTest, ClonePDU) {
Dot11CFEnd dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11CFEnd> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11CFEnd> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -60,7 +60,7 @@ TEST_F(Dot11EndCFAckTest, CopyAssignmentOperator) {
TEST_F(Dot11EndCFAckTest, ClonePDU) {
Dot11EndCFAck dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11EndCFAck> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11EndCFAck> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -49,7 +49,7 @@ TEST_F(Dot11DataTest, CopyAssignmentOperator) {
TEST_F(Dot11DataTest, ClonePDU) {
Dot11Data dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11Data> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11Data> dot2(dot1.clone());
test_equals(dot1, *dot2);
}
@@ -89,7 +89,7 @@ TEST_F(Dot11DataTest, PCAPLoad1) {
EXPECT_EQ(dot1.from_ds(), 1);
EXPECT_EQ(dot1.frag_num(), 0);
EXPECT_EQ(dot1.seq_num(), 1945);
std::auto_ptr<Dot11Data> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11Data> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -71,7 +71,7 @@ TEST_F(Dot11DeauthenticationTest, ReasonCode) {
TEST_F(Dot11DeauthenticationTest, ClonePDU) {
Dot11Deauthentication dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11Deauthentication> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11Deauthentication> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -71,7 +71,7 @@ TEST_F(Dot11DisassocTest, ReasonCode) {
TEST_F(Dot11DisassocTest, ClonePDU) {
Dot11Disassoc dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11Disassoc> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11Disassoc> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -61,7 +61,7 @@ TEST_F(Dot11ProbeRequestTest, CopyAssignmentOperator) {
TEST_F(Dot11ProbeRequestTest, ClonePDU) {
Dot11ProbeRequest dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11ProbeRequest> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11ProbeRequest> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -81,7 +81,7 @@ TEST_F(Dot11ProbeResponseTest, Timestamp) {
TEST_F(Dot11ProbeResponseTest, ClonePDU) {
Dot11ProbeResponse dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11ProbeResponse> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11ProbeResponse> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -60,7 +60,7 @@ TEST_F(Dot11PSPollTest, CopyAssignmentOperator) {
TEST_F(Dot11PSPollTest, ClonePDU) {
Dot11PSPoll dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11PSPoll> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11PSPoll> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -80,7 +80,7 @@ TEST_F(Dot11ReAssocRequestTest, CurrentAP) {
TEST_F(Dot11ReAssocRequestTest, ClonePDU) {
Dot11ReAssocRequest dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11ReAssocRequest> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11ReAssocRequest> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -69,7 +69,7 @@ TEST_F(Dot11ReAssocResponseTest, CopyAssignmentOperator) {
TEST_F(Dot11ReAssocResponseTest, ClonePDU) {
Dot11ReAssocResponse dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11ReAssocResponse> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11ReAssocResponse> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -60,7 +60,7 @@ TEST_F(Dot11RTSTest, CopyAssignmentOperator) {
TEST_F(Dot11RTSTest, ClonePDU) {
Dot11RTS dot1(expected_packet, sizeof(expected_packet));
std::auto_ptr<Dot11RTS> dot2(dot1.clone_pdu());
std::auto_ptr<Dot11RTS> dot2(dot1.clone());
test_equals(dot1, *dot2);
}

View File

@@ -78,7 +78,7 @@ TEST_F(SNAPTest, ClonePDU) {
snap1.eth_type(0xfab1);
snap1.org_code(0xfab1c3);
snap1.control(0x1);
SNAP *snap2 = static_cast<SNAP*>(snap1.clone_pdu());
SNAP *snap2 = static_cast<SNAP*>(snap1.clone());
ASSERT_TRUE(snap2);
test_equals(snap1, *snap2);

View File

@@ -89,7 +89,7 @@ TEST_F(UDPTest, ClonePDU) {
udp1.sport(sport);
udp1.length(length);
UDP *udp2 = static_cast<UDP*>(udp1.clone_pdu());
UDP *udp2 = static_cast<UDP*>(udp1.clone());
ASSERT_TRUE(udp2);
EXPECT_EQ(udp2->sport(), sport);
EXPECT_EQ(udp2->dport(), dport);