// // CS461 Distributed Computing and Networking // Princeton University // Tammo Spalink // // Revision 8 // #include #include #include "interface.h" #include #include #include #include #define FOREVER ;; void clockHandler(void) // A simple clock callback { fprintf(stderr, "!"); } void recvHandler(void *buf) // A simple IO callback { struct iphdr *header; unsigned int tmp; struct iovec iov; header = (struct iphdr *)buf; tmp = header->daddr; header->daddr = header->saddr; header->saddr = tmp; iov.iov_base = buf; iov.iov_len = ntohs(header->tot_len); CS461_SendIov(inet_addr("128.112.4.6"), &iov, 1); CS461_Free(buf); fprintf(stderr, "."); } int main(void) { CS461_Initialize(IPPROTO_ICMP, recvHandler, clockHandler, 200, 0); CS461_InterruptToggle(CS461_INTOFF); for (FOREVER) { CS461_Block(); } return 0; }