Re: [PATCH] gateway: Fix typo when setting 'is_vpn6'

Jussi Laakkonen <[email protected]>
Newsgroups dev.linux.lists.connman
Message-ID <[email protected]>
Hello,

Regarding WireGuard, I had to make a bunch of changes to the latest 
version of it to get it running properly on our fork (yes, we upgrade it 
slowly, now 1.38): 
https://github.com/sailfishos/connman/commits/master/connman/vpn

But I haven't had time to figure out all that is needed for upstream to 
be sent first, like this RFC edit that was forgotten because of... 
"eastern winds blowing into our direction": 
https://lore.kernel.org/connman/[email protected]/T/#mbced39d72dd424884fe105a66fea02a83c708f97

And then the connection.c was modified a lot (and renamed) and I'm not 
sure if these will work on top of that anymore. Mostly because we have 
features that may not have been compatible with latest upstream, like 
adding a support  for two different devices to be belonging into one 
service to facilitate CLAT support 
https://github.com/sailfishos/connman/commits/master/connman/src/connection.c 
etc. etc. etc.

At some point I'll start pushing changes but not sure when I have time. 
Mostly they could be RFCs as the changes are big.

BR,
  Jussi


On 1/23/25 12:45, daniel antoine wrote:
> Hi
> 
> I have opened a ticket for connman-vpn not working with wireguard  in
> April 2024. If you give me the patches I can test them
> 
> Best regards
> 
> Daniel
> 
> Le mer. 22 janv. 2025 à 18:01, Grant Erickson
> <[email protected]> a écrit :
>>
>> On Jan 13, 2025, at 5:59 AM, Gabriel Sanches <[email protected]> wrote:
>>> I was testing connman's wireguard plugin and got a segmentation fault.
>>>
>>> Looking at the backtrace revealed that there are some typos in the `src/gateway.c` file where `is_vpn6` was incorrectly set using ipv4 variables instead of ipv6 regarding vpn.
>>>
>>> I simply changed them to ipv6 and got it working.
>>>
>>> not related to the patch:
>>> I had to manually add ip route so the other devices could be pinged
>>> The plugin adds routes for the WireGuard.DNS configuration setting
>>> # ip route
>>> 1.1.1.1 dev wg0 scope link
>>> 8.8.8.8 dev wg0 scope link
>>> 10.42.0.0/24 dev end1 proto kernel scope link src 10.42.0.83
>>> 10.42.0.1 dev end1 scope link
>>> <vpn host ip> via 10.42.0.1 dev end1
>>>
>>> the missing route added manually:
>>> ip route add 10.33.0.0/16 dev wg0 scope link
>>>
>>> an equivalent wireguard file adds it properly (using wg-quick)
>>>
>>> Is the plugin lacking some implementation?
>>>
>>> ---
>>> src/gateway.c | 6 +++---
>>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/src/gateway.c b/src/gateway.c
>>> index 16c87f83..b2c211e2 100644
>>> --- a/src/gateway.c
>>> +++ b/src/gateway.c
>>> @@ -3704,10 +3704,10 @@ int __connman_gateway_add(struct connman_service *service,
>>>                                        is_gateway_config_vpn(
>>>                                                new_gateway->ipv4_config);
>>>
>>> -             is_vpn6 = do_ipv4 &&
>>> -                                     new_gateway->ipv4_config &&
>>> +             is_vpn6 = do_ipv6 &&
>>> +                                     new_gateway->ipv6_config &&
>>>                                        is_gateway_config_vpn(
>>> -                                             new_gateway->ipv4_config);
>>> +                                             new_gateway->ipv6_config);
>>>
>>>        } else {
>>>                if (do_ipv4 && new_gateway->ipv4_config)
>>> --
>>> 2.43.0
>>
>> Gabriel,
>>
>> Great catch on this copy-and-paste typo; thank you!
>>
>> Best,
>>
>> Grant
>>
>>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.