bool opt_same_interface = false;
-int ac_sockfd[AC_NUM];
+static int ac_sockfd[AC_NUM];
struct receiver {
unsigned received, last_received;
{
int i;
- for (i = 0 ; i < AC_NUM; i++)
- close(ac_sockfd[AC_NUM]);
+ for (i = 0; i < AC_NUM; i++)
+ close(ac_sockfd[i]);
exit(0);
}
struct iovec iov;
struct msghdr msg;
struct in_pktinfo *ipi = NULL;
+ struct timespec ts;
ac = (int) queue;
rem_addr_length=sizeof(rem_addr);
perror("recvmsg");
return NULL;
}
- clock_gettime(CLOCK_REALTIME, &buff.msg.sendback_timestamp);
+ clock_gettime(CLOCK_REALTIME, &ts);
+ buff.msg.sendback_timestamp = ts.tv_sec*1000000000 + ts.tv_nsec;
if (opt_same_interface) {
#endif
receivers[ac].received++;
msg.msg_iov->iov_len = mlen;
+#ifdef WITH_FWP
+ /* resp_port is already stored in network order */
+ rem_addr.sin_port = buff.msg.resp_port;
+#endif
while (sendmsg(ac_sockfd[ac], &msg, 0) < 0) {
if (errno == EINTR) continue;
perror("sendmsg");