diff options
| author | Christian Poessinger <christian@poessinger.com> | 2022-04-18 12:09:54 +0200 | 
|---|---|---|
| committer | Christian Poessinger <christian@poessinger.com> | 2022-04-18 12:09:54 +0200 | 
| commit | f2b722a8879231383f8b0eaf92fda09eb121d78d (patch) | |
| tree | db314b7299a62f4f43594c71f1e8e4ad6ca7dea2 | |
| parent | 217f5d42e17ae5dd55adaab1114cacc7f5a2e280 (diff) | |
| download | vyos-1x-f2b722a8879231383f8b0eaf92fda09eb121d78d.tar.gz vyos-1x-f2b722a8879231383f8b0eaf92fda09eb121d78d.zip | |
openvpn: T4353: T4351: fix generation of openvpn-option string passed to daemon
| -rw-r--r-- | data/templates/openvpn/service-override.conf.j2 | 21 | ||||
| -rw-r--r-- | data/templates/openvpn/service-override.conf.tmpl | 20 | 
2 files changed, 21 insertions, 20 deletions
| diff --git a/data/templates/openvpn/service-override.conf.j2 b/data/templates/openvpn/service-override.conf.j2 new file mode 100644 index 000000000..d7551eb92 --- /dev/null +++ b/data/templates/openvpn/service-override.conf.j2 @@ -0,0 +1,21 @@ +{% set options = namespace(value=0) %} +{% if openvpn_option is vyos_defined %} +{%     for option in openvpn_option %} +{#         Remove the '--' prefix from variable if it is presented #} +{%         if option.startswith('--') %} +{%             set option = option.split('--', maxsplit=1)[1] %} +{%         endif %} +{#         Workaround to pass '--push' options properly. Previously openvpn accepted this option without values in double-quotes #} +{#         But now it stopped doing this, so we need to add them for compatibility #} +{#         HOWEVER! This is a raw option and we do not promise that this or any other trick will work for all the cases. #} +{#         Using 'openvpn-option' you take all responsibility for compatibility for yourself. #} +{%         if option.startswith('push') and not (option.startswith('push "') and option.endswith('"')) %} +{%             set option = 'push \"%s\"' | format(option.split('push ', maxsplit=1)[1]) %} +{%         endif %} +{%         set options.value = options.value ~ ' --' ~ option %} +{%     endfor %} +{% endif %} +[Service] +ExecStart= +ExecStart=/usr/sbin/openvpn --daemon openvpn-%i --config %i.conf --status %i.status 30 --writepid %i.pid {{ options.value }} + diff --git a/data/templates/openvpn/service-override.conf.tmpl b/data/templates/openvpn/service-override.conf.tmpl deleted file mode 100644 index cba652223..000000000 --- a/data/templates/openvpn/service-override.conf.tmpl +++ /dev/null @@ -1,20 +0,0 @@ -[Service] -ExecStart= -ExecStart=/usr/sbin/openvpn --daemon openvpn-%i --config %i.conf --status %i.status 30 --writepid %i.pid -{%- if openvpn_option is vyos_defined %} -{%   for option in openvpn_option %} -{#     Remove the '--' prefix from variable if it is presented #} -{%     if option.startswith('--') %} -{%       set option = option.split('--', maxsplit=1)[1] %} -{%     endif %} -{#     Workaround to pass '--push' options properly. Previously openvpn accepted this option without values in double-quotes #} -{#     But now it stopped doing this, so we need to add them for compatibility #} -{#     HOWEVER! This is a raw option and we do not promise that this or any other trick will work for all the cases. #} -{#     Using 'openvpn-option' you take all responsibility for compatibility for yourself. #} -{%     if option.startswith('push') and not (option.startswith('push "') and option.endswith('"')) %} -{%       set option = 'push \"%s\"'|format(option.split('push ', maxsplit=1)[1]) %} -{%     endif %} - --{{ option }} -{%-   endfor %} -{% endif %} - | 
