#pragma once #include namespace rtnetlink { struct newaddr { uint32_t address; uint32_t local; uint32_t ifa_prefixlen; }; bool parse_newaddr(uint8_t const * buf, ssize_t length, uint32_t ifa_index, newaddr * out, int out_length, int & index); int handle_getaddr(int fd, uint32_t ifa_index, newaddr * out, int out_length); int send_getaddr(int fd, uint32_t ifa_index); int send_typeaddr(int fd, uint16_t nlmsg_type, uint32_t ifa_index, uint8_t ifa_prefixlen, uint32_t local, uint32_t address); int send_newroute(int fd, uint32_t ifa_index, uint32_t gateway); int handle_error(int fd); }