#pragma once #include "icmp.h" struct icmp_client_incoming { const uint8_t *data; // points to internal buffer size_t length; // length of 'data' int id, seqnum; }; // Returns -1 on error with errno. int icmp_client_open_socket(void); // Only actual IPv4 addresses allowed. Sends data in 'data' with length 'length', and // returns pointer to internal buffer with reply data. Buffer is invalidated on next // call to the function. // Returns {.data=NULL} on error with errno. struct icmp_client_incoming icmp_client_communicate( int sock, const char *ip_address, int id, int seqnum, const void *data, size_t length);