#!/bin/sh
+. /lib/functions.sh
migrate_ipsec() {
# Skip migration if the 'globals' section already exists
uci show ipsec.globals 1>/dev/null 2>/dev/null
config_foreach migrate_remote_gateway_remote remote
}
+migrate_local_ip_local() {
+ local cfg="$1"
+
+ local local_ip value
+
+ config_get local_ip "$cfg" local_ip ""
+ [ -z "$local_ip" ] && return
+
+ for value in $local_ip; do
+ uci add_list "ipsec.${cfg}.local_addrs=${value}"
+ done
+
+ uci -q delete "ipsec.${cfg}.local_ip"
+ uci commit ipsec
+}
+
+migrate_local_ip() {
+ config_load ipsec
+ config_foreach migrate_local_ip_local remote
+}
+
main() {
migrate_ipsec
migrate_ignore_routing_tables
migrate_local_nat
migrate_gateway
migrate_remote_gateway
+ migrate_local_ip
}
main
local auth_method
local local_identifier
local remote_identifier
- local local_ip
local keyingtries
local dpddelay
local encap
local send_cert
local send_certreq
local eap_id
+ local local_addrs
local remote_addrs
local local_sourceip
local remote_ca_certs
config_get auth_method "$conf" authentication_method
config_get local_identifier "$conf" local_identifier ""
config_get remote_identifier "$conf" remote_identifier ""
- config_get local_ip "$conf" local_ip "%any"
config_get keyingtries "$conf" keyingtries "3"
config_get dpddelay "$conf" dpddelay "30s"
config_get_bool encap "$conf" encap 0
config_get_bool send_certreq "$conf" send_certreq 1
config_get eap_id "$conf" eap_id "%any"
+ config_list_foreach "$conf" local_addrs append_var local_addrs ","
config_list_foreach "$conf" remote_addrs append_var remote_addrs ","
config_list_foreach "$conf" local_sourceip append_var local_sourceip ","
config_list_foreach "$conf" remote_ca_certs append_var remote_ca_certs ","
swanctl_xappend0 "# config for $conf"
swanctl_xappend0 "connections {"
swanctl_xappend1 "$conf {"
- swanctl_xappend2 "local_addrs = $local_ip"
+ [ -n "$local_addrs" ] && swanctl_xappend2 "local_addrs = $local_addrs"
[ -n "$remote_addrs" ] && swanctl_xappend2 "remote_addrs = $remote_addrs"
[ -n "$local_sourceip" ] && swanctl_xappend2 "vips = $local_sourceip"
[ -n "$fragmentation" ] && swanctl_xappend2 "fragmentation = $fragmentation"