summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/etc/inc/openvpn.inc12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/etc/inc/openvpn.inc b/src/etc/inc/openvpn.inc
index 2be9b37..fb11747 100644
--- a/src/etc/inc/openvpn.inc
+++ b/src/etc/inc/openvpn.inc
@@ -1008,8 +1008,16 @@ function openvpn_reconfigure($mode, $settings) {
case 'server_tls':
case 'server_tls_user':
case 'server_user':
- $ca = lookup_ca($settings['caref']);
- openvpn_add_keyfile($ca['crt'], $conf, $mode_id, "ca");
+ // ca_chain() expects parameter to be passed by reference.
+ // avoid passing the whole settings array, as param names or
+ // types might change in future releases.
+ $param = array('caref' => $settings['caref']);
+ $ca = ca_chain($param);
+ $ca = base64_encode($ca);
+
+ openvpn_add_keyfile($ca, $conf, $mode_id, "ca");
+
+ unset($ca, $param);
if (!empty($settings['certref'])) {
$cert = lookup_cert($settings['certref']);
OpenPOWER on IntegriCloud