[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#901255: netcfg-static: Unable to configure fe80::1 as a gateway



On 12.06.2018 10:52, Bjørn Mork wrote:

> Igor Scheller <debian@igorscheller.de> writes:
>
> From 6bff2dee11a8d5493f87ec541f854e3897ef6a9a Mon Sep 17 00:00:00 2001
>> From: Igor Scheller <igor.scheller@igorshp.de>
>> Date: Mon, 11 Jun 2018 23:52:37 +0200
>> Subject: [PATCH] Added support for fe80 addresses as gateway
>>
>> ---
>>  netcfg-common.c                      |  5 ++++-
>>  static.c                             |  3 ++-
>>  test/test_netcfg_gateway_reachable.c | 24 ++++++++++++++++++++++++
>>  3 files changed, 30 insertions(+), 2 deletions(-)
>>
>> diff --git a/netcfg-common.c b/netcfg-common.c
>> index c6d1d8d5..007c1875 100644
>> --- a/netcfg-common.c
>> +++ b/netcfg-common.c
>> @@ -1677,8 +1677,11 @@ int netcfg_gateway_reachable(const struct netcfg_interface *interface)
>>      if (interface->address_family == AF_INET) {
>>          return (gw_addr.in4.s_addr && ((gw_addr.in4.s_addr & mask.in4.s_addr) == net.in4.s_addr));
>>      } else if (interface->address_family == AF_INET6) {
>> +        if ((ntohs(gw_addr.in6.s6_addr32[0]) & 0xffc0) == (0xfe80 & 0xffc0)) {
>> +            return 1;
>> +        }
>> +
>>          int i;
>> -        
>>          for (i = 0; i < 4; i++) {
>>              if ((gw_addr.in6.s6_addr32[i] & mask.in6.s6_addr32[i]) != net.in6.s6_addr32[i]) {
>>                  return 0;
Jup, thats true but my programming skills are not good enough to
implement that so this was the first option that came to my mind.
> Or did I  misunderstand what this code tries to do?
That's exactly what it does, same for the default behavior in the for
loop below.
Imho it could be a better option to just configure the interface and
test if something is reachable?
> Bjørn


Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: