1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-27 04:11:35 +01:00

Added getters and setters to ARP PDU

This commit is contained in:
Santiago Alessandri
2011-08-15 20:51:06 -03:00
parent cc7f1f6761
commit 5b851a9142
2 changed files with 160 additions and 3 deletions

View File

@@ -37,6 +37,42 @@ Tins::ARP::ARP() : PDU(0x0608) {
_arp.ar_pln = 4;
}
void Tins::ARP::sender_hw_addr(uint8_t* new_snd_hw_addr) {
memcpy(this->_arp.ar_sha, new_snd_hw_addr, 6); //Should this use hardware address' length?
}
void Tins::ARP::sender_ip_addr(uint32_t new_snd_ip_addr) {
this->_arp.ar_sip = new_snd_ip_addr;
}
void Tins::ARP::target_hw_addr(uint8_t* new_tgt_hw_addr) {
memcpy(this->_arp.ar_tha, new_tgt_hw_addr, 6); //Should this use hardware address' length?
}
void Tins::ARP::target_ip_addr(uint32_t new_tgt_ip_addr) {
this->_arp.ar_tip = new_tgt_ip_addr;
}
void Tins::ARP::hw_addr_format(uint16_t new_hw_addr_fmt) {
this->_arp.ar_hrd = new_hw_addr_fmt;
}
void Tins::ARP::prot_addr_format(uint16_t new_prot_addr_fmt) {
this->_arp.ar_pro = new_prot_addr_fmt;
}
void Tins::ARP::hw_addr_length(uint8_t new_hw_addr_len) {
this->_arp.ar_hln = new_hw_addr_len;
}
void Tins::ARP::prot_addr_length(uint8_t new_prot_addr_len) {
this->_arp.ar_pln = new_prot_addr_len;
}
void Tins::ARP::opcode(Flags new_opcode) {
this->_arp.ar_op = new_opcode;
}
void Tins::ARP::set_arp_request(const string &ip_dst, const string &ip_src, const string &hw_src) {
_arp.ar_tip = Utils::resolve_ip(ip_dst);
_arp.ar_sip = Utils::resolve_ip(ip_src);