#include "util.h" void print_hex(uint8_t * array, size_t size){ for (size_t i = 0 ; i < size; i++){ uint8_t high = (array[i] >> 4) & 0x0F; uint8_t low = array[i] & 0x0F; printf("%X", high); printf("%X ", low); } printf("\n"); } void print_u16_hex(uint16_t number){ uint8_t tmp_a[2]; tmp_a[0] = (number >> 8) & 0x00FF; tmp_a[1] = number & 0x00FF; print_hex(tmp_a, 2); return; } void print_u8_hex(uint8_t number){ printf("%X", (number >> 4) & 0x0F); printf("%X", number & 0x0F); printf("\n"); } // void print_packet_info(arp_packet_t * packet){ // printf("destination: "); print_hex(packet->destination, DST_S); // printf("source: "); print_hex(packet->source, SRC_S); // // printf("hardware type: "); print_u16_hex(packet->hrd_t); // printf("protocal type: "); print_u16_hex(packet->pro_t); // printf("hardware size: "); print_u8_hex(packet->hrd_s); // printf("protocal size: "); print_u8_hex(packet->pro_s); // printf("op type: "); print_u16_hex(packet->op); // // printf("sender mac address: "); print_hex(packet->sender_mac_a, SENDER_MAC_A_S); // printf("sender ip address: "); print_hex(packet->sender_ip_a, SENDER_IP_A_S); // printf("target mac address: "); print_hex(packet->target_mac_a, TARGET_MAC_A_S); // printf("target ip address: "); print_hex(packet->target_ip_a, TARGET_IP_A_S); // } uint16_t combine_uint8(uint8_t high, uint8_t low){ return (high << 8 ) | low; } uint32_t combine_uint8_32(uint8_t * arr){ return (arr[0] << 24 ) | (arr[1] << 16) | (arr[2] << 8) | (arr[3]); }