mirror of
https://github.com/markqvist/tncattach.git
synced 2025-07-30 04:22:25 -04:00
Compare commits
No commits in common. "f6ff9a9618d19323b8129143d013002e1e178171" and "c4c748a46516f34de7c94774388a4ffbbf7421da" have entirely different histories.
f6ff9a9618
...
c4c748a465
36
TAP.c
36
TAP.c
@ -29,7 +29,7 @@ void trySixSet
|
|||||||
char ip_str[INET6_ADDRSTRLEN+1];
|
char ip_str[INET6_ADDRSTRLEN+1];
|
||||||
inet_ntop(AF_INET6, &address, 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",
|
"Adding IPv6 address of '%s/%d' to interface at if_index %d\n",
|
||||||
ip_str,
|
ip_str,
|
||||||
@ -37,7 +37,7 @@ void trySixSet
|
|||||||
interfaceIndex
|
interfaceIndex
|
||||||
);
|
);
|
||||||
|
|
||||||
int inet6 = socket(AF_INET6, SOCK_DGRAM, 0);
|
int inet6 = socket(AF_INET6, SOCK_DGRAM, 0);
|
||||||
if(inet6 < 0)
|
if(inet6 < 0)
|
||||||
{
|
{
|
||||||
printf("Error opening control socket for adding IPv6 address to interface\n");
|
printf("Error opening control socket for adding IPv6 address to interface\n");
|
||||||
@ -45,30 +45,30 @@ void trySixSet
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct in6_ifreq paramReq;
|
struct in6_ifreq paramReq;
|
||||||
memset(¶mReq, 0, sizeof(struct in6_ifreq));
|
memset(¶mReq, 0, sizeof(struct in6_ifreq));
|
||||||
paramReq.ifr6_ifindex = interfaceIndex;
|
paramReq.ifr6_ifindex = interfaceIndex;
|
||||||
paramReq.ifr6_prefixlen = prefixLen;
|
paramReq.ifr6_prefixlen = prefixLen;
|
||||||
paramReq.ifr6_addr = address;
|
paramReq.ifr6_addr = address;
|
||||||
|
|
||||||
|
|
||||||
// Try add the address
|
// Try add the address
|
||||||
if(ioctl(inet6, SIOCSIFADDR, ¶mReq) < 0)
|
if(ioctl(inet6, SIOCSIFADDR, ¶mReq) < 0)
|
||||||
{
|
{
|
||||||
printf
|
printf
|
||||||
(
|
(
|
||||||
"There was an errror assigning address '%s/%d' to if_index %d\n",
|
"There was an errror assigning address '%s/%d' to if_index %d\n",
|
||||||
ip_str,
|
ip_str,
|
||||||
prefixLen,
|
prefixLen,
|
||||||
interfaceIndex
|
interfaceIndex
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
close(inet6);
|
close(inet6);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("Address '%s/%d' added\n", ip_str, prefixLen);
|
printf("Address '%s/%d' added\n", ip_str, prefixLen);
|
||||||
close(inet6);
|
close(inet6);
|
||||||
}
|
}
|
||||||
|
|
||||||
int open_tap(void) {
|
int open_tap(void) {
|
||||||
@ -260,9 +260,9 @@ int open_tap(void) {
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if link-local was NOT requested and interface
|
// if link-local was NOT requested and interface
|
||||||
// has been up'd -> then kernel would have added
|
// has been up'd -> then kernel would have added
|
||||||
// a link-local already, this removes it
|
// a link-local already, this removes it
|
||||||
if(!set_linklocal & !noup)
|
if(!set_linklocal & !noup)
|
||||||
{
|
{
|
||||||
// TODO: Get all addresses that start with fe80
|
// TODO: Get all addresses that start with fe80
|
||||||
|
18
tncattach.c
18
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)
|
long prefixLen_l = strtol(prefixPart_s, NULL, 10); // TODO: Add handling here for errors (using errno)
|
||||||
|
|
||||||
if(prefixLen_l == 0) {
|
if(prefixLen_l == 0) {
|
||||||
printf("Prefix length '%s' is not numeric\n", prefixPart_s);
|
printf("Prefix length '%s' is not numeric\n", prefixPart_s);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
else if(!(prefixLen_l >= 0 && prefixLen_l <= 128))
|
else if(!(prefixLen_l >= 0 && prefixLen_l <= 128))
|
||||||
{
|
{
|
||||||
printf("Prefix length '%s' is not within valid range of 0-128\n", prefixPart_s);
|
printf("Prefix length '%s' is not within valid range of 0-128\n", prefixPart_s);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
arguments->ipv6 = ipPart_s;
|
arguments->ipv6 = ipPart_s;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user