1
0
Fork 0
mirror of https://github.com/yarrick/iodine.git synced 2025-04-07 11:07:03 +00:00
This commit is contained in:
Julian Kranz 2012-01-28 13:59:24 +01:00 committed by Barak A. Pearlmutter
parent f8380d7e6a
commit 8c12e7d8a3
4 changed files with 13 additions and 4 deletions

View file

@ -396,6 +396,10 @@ send_query(int fd, char *hostname)
fprintf(stderr, " Sendquery: id %5d name[0] '%c'\n", q.id, hostname[0]);
#endif
static char a = 0;
printf("send_query() -> sendto: %d\n", a);
a++;
if(_v6_connect)
sendto(fd, packet, len, 0, (struct sockaddr*)&nameserv6, sizeof(nameserv6));
else

View file

@ -184,13 +184,13 @@ open_dns_ipv6(int localport, struct in6_addr listen_ip6)
#ifndef WINDOWS32
/* To get destination address from each UDP datagram, see iodined.c:read_dns() */
setsockopt(fd, IPPROTO_IP, DSTADDR_SOCKOPT, (const void*) &flag, sizeof(flag));
setsockopt(fd, IPPROTO_IPV6, DSTADDR_SOCKOPT, (const void*) &flag, sizeof(flag));
#endif
#ifdef IP_OPT_DONT_FRAG
/* Set dont-fragment ip header flag */
flag = DONT_FRAG_VALUE;
setsockopt(fd, IPPROTO_IP, IP_OPT_DONT_FRAG, (const void*) &flag, sizeof(flag));
setsockopt(fd, IPPROTO_IPV6, IP_OPT_DONT_FRAG, (const void*) &flag, sizeof(flag));
#endif
if(bind(fd, (struct sockaddr*)&addr, sizeof(addr)) < 0)

View file

@ -59,7 +59,8 @@ extern const unsigned char raw_header[RAW_HDR_LEN];
# define dstaddr(x) ((struct in_addr *) CMSG_DATA(x))
#elif defined IP_PKTINFO
# define DSTADDR_SOCKOPT IP_PKTINFO
# define dstaddr(x) (&(((struct in_pktinfo *)(CMSG_DATA(x)))->ipi_addr))
# define dstaddr(x) (&(((struct in_pktinfo *)(CMSG_DATA(x)))->ipi_addr))
# define dstaddr6(x) (&(((struct in6_pktinfo *)(CMSG_DATA(x)))->ipi6_addr))
#endif
#if defined IP_MTU_DISCOVER

View file

@ -2124,7 +2124,11 @@ read_dns(int fd, int tun_fd, struct query *q) /* FIXME: tun_fd is because of raw
if (cmsg->cmsg_level == IPPROTO_IPV6 &&
cmsg->cmsg_type == DSTADDR_SOCKOPT) {
memcpy(&q->destination.v6, dstaddr(cmsg), sizeof(struct in6_addr));
memcpy(&q->destination.v6, cmsg->__cmsg_data, sizeof(struct in6_addr));
printf("Vaavvaaaa\n");
ipv6_print(&q->destination.v6, 00);
break;// printf("write_dns()\n");
// ipv6_print(&q->from.v6, 44);
}