mirror of
https://github.com/markqvist/tncattach.git
synced 2025-06-13 20:12:26 -04:00
Compare commits
4 Commits
c4c748a465
...
f6ff9a9618
Author | SHA1 | Date | |
---|---|---|---|
|
f6ff9a9618 | ||
|
8f32dc809e | ||
|
dcfa6edcb6 | ||
|
8b26e1bfb4 |
38
TAP.c
38
TAP.c
@ -29,7 +29,7 @@ void trySixSet
|
||||
char ip_str[INET6_ADDRSTRLEN+1];
|
||||
inet_ntop(AF_INET6, &address, ip_str, INET6_ADDRSTRLEN+1);
|
||||
|
||||
printf
|
||||
printf
|
||||
(
|
||||
"Adding IPv6 address of '%s/%d' to interface at if_index %d\n",
|
||||
ip_str,
|
||||
@ -37,7 +37,7 @@ void trySixSet
|
||||
interfaceIndex
|
||||
);
|
||||
|
||||
int inet6 = socket(AF_INET6, SOCK_DGRAM, 0);
|
||||
int inet6 = socket(AF_INET6, SOCK_DGRAM, 0);
|
||||
if(inet6 < 0)
|
||||
{
|
||||
printf("Error opening control socket for adding IPv6 address to interface\n");
|
||||
@ -45,30 +45,30 @@ void trySixSet
|
||||
exit(1);
|
||||
}
|
||||
|
||||
struct in6_ifreq paramReq;
|
||||
memset(¶mReq, 0, sizeof(struct in6_ifreq));
|
||||
paramReq.ifr6_ifindex = interfaceIndex;
|
||||
paramReq.ifr6_prefixlen = prefixLen;
|
||||
paramReq.ifr6_addr = address;
|
||||
struct in6_ifreq paramReq;
|
||||
memset(¶mReq, 0, sizeof(struct in6_ifreq));
|
||||
paramReq.ifr6_ifindex = interfaceIndex;
|
||||
paramReq.ifr6_prefixlen = prefixLen;
|
||||
paramReq.ifr6_addr = address;
|
||||
|
||||
|
||||
|
||||
// Try add the address
|
||||
if(ioctl(inet6, SIOCSIFADDR, ¶mReq) < 0)
|
||||
{
|
||||
printf
|
||||
if(ioctl(inet6, SIOCSIFADDR, ¶mReq) < 0)
|
||||
{
|
||||
printf
|
||||
(
|
||||
"There was an errror assigning address '%s/%d' to if_index %d\n",
|
||||
ip_str,
|
||||
prefixLen,
|
||||
interfaceIndex
|
||||
);
|
||||
cleanup();
|
||||
close(inet6);
|
||||
exit(1);
|
||||
}
|
||||
cleanup();
|
||||
close(inet6);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
printf("Address '%s/%d' added\n", ip_str, prefixLen);
|
||||
close(inet6);
|
||||
close(inet6);
|
||||
}
|
||||
|
||||
int open_tap(void) {
|
||||
@ -260,9 +260,9 @@ int open_tap(void) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// if link-local was NOT requested and interface
|
||||
// has been up'd -> then kernel would have added
|
||||
// a link-local already, this removes it
|
||||
// if link-local was NOT requested and interface
|
||||
// has been up'd -> then kernel would have added
|
||||
// a link-local already, this removes it
|
||||
if(!set_linklocal & !noup)
|
||||
{
|
||||
// TODO: Get all addresses that start with fe80
|
||||
|
20
tncattach.c
20
tncattach.c
@ -504,15 +504,15 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
||||
|
||||
long prefixLen_l = strtol(prefixPart_s, NULL, 10); // TODO: Add handling here for errors (using errno)
|
||||
|
||||
if(prefixLen_l == 0) {
|
||||
printf("Prefix length '%s' is not numeric\n", prefixPart_s);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
else if(!(prefixLen_l >= 0 && prefixLen_l <= 128))
|
||||
{
|
||||
printf("Prefix length '%s' is not within valid range of 0-128\n", prefixPart_s);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if(prefixLen_l == 0) {
|
||||
printf("Prefix length '%s' is not numeric\n", prefixPart_s);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
else if(!(prefixLen_l >= 0 && prefixLen_l <= 128))
|
||||
{
|
||||
printf("Prefix length '%s' is not within valid range of 0-128\n", prefixPart_s);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
arguments->ipv6 = ipPart_s;
|
||||
|
||||
@ -540,7 +540,7 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
||||
printf("MTU was %d, setting to minimum of %d as is required for IPv6\n", arguments->mtu, 1280);
|
||||
arguments->mtu = 1280;
|
||||
break;
|
||||
|
||||
|
||||
case 'n':
|
||||
arguments->noipv6 = true;
|
||||
if(arguments->set_ipv6)
|
||||
|
Loading…
x
Reference in New Issue
Block a user