[strongSwan-dev] Best way to add a custom option per connection
Emeric POUPON
emeric.poupon at stormshield.eu
Wed May 24 09:22:48 CEST 2017
Hello,
Thanks for your answer, we will choose this solution.
Regards,
Emeric
----- Original Message -----
> From: "Tobias Brunner" <tobias at strongswan.org>
> To: "Emeric POUPON" <emeric.poupon at stormshield.eu>, dev at lists.strongswan.org
> Sent: Tuesday, 23 May, 2017 17:19:15
> Subject: Re: [strongSwan-dev] Best way to add a custom option per connection
> Hi Emeric,
>
>> As it seems quite complicated and very intusive to add custom options to the
>> ipsec.conf file, we were thinking about something like that:
>
> You should forget about ipsec.conf and start using VICI/swanctl.conf.
> You still need a patch to add new options but it is way easier.
>
>> strongswan.conf:
>>
>> charon {
>> ...
>> plugins {
>> custom-validation-plugin {
>> **connection_1_name** {
>> option_name = value;
>> }
>> **connection_2_name** {
>> option_name = value;
>> }
>> ....
>> }
>> }
>> }
>>
>> In the validation plugin, we would get the name of the connection using the
>> peer_cfg_t of the current ike sa attached to the bus.
>> The option would be got thanks to
>> lib->settings->get_str("%s.plugins.custom-validation-plugin.%s", def, lib->ns,
>> conn_name);
>
> I've used something similar for the p-cscf plugin. For boolean options
> an alternative is to do something like the forecast plugin, whose
> reinject option takes a list of connection names for which packets
> should be reinjected (requires more code as you'd have to parse that list).
>
>> There seems to be some restrictions though (dot cannot be used within a
>> connection name, ... ?)
>
> No, it's not a problem if %s is replaced with a string containing dots
> (manually entering such a name in a get_str() call wouldn't work,
> though, as the dots would then be used to navigate to subsections).
>
>> Sounds like a hack, maybe there is something better to handle this?
>
> Yeah, it's not ideal but until we have something better it's the only
> way to avoid code changes outside the plugin.
>
> Regards,
> Tobias
More information about the Dev
mailing list