Update route.c

Conflict
This commit is contained in:
kabassanov 2026-02-10 18:29:21 +01:00 committed by GitHub
parent 44a5b33021
commit 258282873f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1825,14 +1825,21 @@ add_route_ipv6(struct route_ipv6 *r6, const struct tuntap *tt, unsigned int flag
* but for link-local destinations, we MUST specify the interface, so
* we build a combined "$gateway%$interface" gateway string
*/
if (r6->iface != NULL && gateway_needed
&& IN6_IS_ADDR_LINKLOCAL(&r6->gateway)) /* fe80::...%intf */
{
size_t len = strlen(gateway) + 1 + strlen(r6->iface) + 1;
char *tmp = gc_malloc(len, true, &gc);
snprintf(tmp, len, "%s%%%s", gateway, r6->iface);
gateway = tmp;
}
if (IN6_IS_ADDR_LINKLOCAL(&r6->gateway)) { /* fe80::...%intf */
if (r6->iface != NULL && gateway_needed) {
size_t len = strlen(gateway) + 1 + strlen(r6->iface)+1;
char *tmp = gc_malloc( len, true, &gc );
snprintf( tmp, len, "%s%%%s", gateway, r6->iface );
gateway = tmp;
} else if (device) {
size_t len = strlen(gateway) + 1 + strlen(device)+1;
char *tmp = gc_malloc( len, true, &gc );
snprintf( tmp, len, "%s%%%s", gateway, device );
gateway = tmp;
}
}
#endif
#ifndef _WIN32