- bytes = recvfrom(sock, pkt, len, MSG_DONTWAIT, NULL, NULL);
- if (bytes < 0) {
- perror("recvfrom(msg)");
- return 1;
- } else if (bytes != len) {
- fprintf(stderr, "Unexpected message length (%zi bytes).\n", len);
- return 1;
- } else {
- if (msg_ntoh(&pkt->msg) != 0) {
- return 1;
- }
- return 0;
- }
-
- return 1;
-}
-
-static int sock_bind_to_intf(int sock, const char *name)
-{
- struct ifreq ifr;
-
- strncpy(ifr.ifr_name, name, IFNAMSIZ - 1);
- if (setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr)) < 0) {
- perror("setsockopt(SO_BINDTODEVICE)");