mirror of
https://github.com/yarrick/iodine.git
synced 2025-04-07 11:07:03 +00:00
---
This commit is contained in:
parent
f8380d7e6a
commit
8c12e7d8a3
4 changed files with 13 additions and 4 deletions
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue