struct in6_ifreq
{
struct in6_addr ifr6_addr;
- uint32_t ifr6_prefixlen;
- unsigned int ifr6_ifindex;
+ __u32 ifr6_prefixlen;
+ int ifr6_ifindex;
};
#endif
set_address6 (const char *dev, const char *address, unsigned long prefix_len)
{
struct ifreq ifr;
- struct in6_ifreq ifr6;
struct sockaddr_in6 sa6;
int fd;
+ struct in6_ifreq ifr6;
/*
* parse the new address
*/
memset (&sa6, 0, sizeof (struct sockaddr_in6));
sa6.sin6_family = AF_INET6;
- if (1 != inet_pton (AF_INET6, address, sa6.sin6_addr.s6_addr))
+ if (1 != inet_pton (AF_INET6, address, &sa6.sin6_addr))
{
fprintf (stderr, "Failed to parse address `%s': %s\n", address,
strerror (errno));
if (-1 == (fd = socket (PF_INET6, SOCK_DGRAM, 0)))
{
- fprintf (stderr, "Error creating socket: %s\n", strerror (errno));
+ fprintf (stderr, "Error creating socket: %s\n", strerror (errno));
exit (1);
}
if (-1 == (fd_tun = init_tun (dev)))
{
- fprintf (stderr, "Fatal: could not initialize tun-interface\n");
+ fprintf (stderr,
+ "Fatal: could not initialize tun-interface `%s' with IPv6 %s/%s and IPv4 %s/%s\n",
+ dev,
+ argv[3],
+ argv[4],
+ argv[5],
+ argv[6]);
return 1;
}