]> git.ipfire.org Git - people/ms/network.git/commitdiff
network: add new ipsec functionality
authorJonatan Schlag <jonatan.schlag@ipfire.org>
Sat, 29 Jul 2017 08:39:37 +0000 (10:39 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 30 Jul 2017 13:09:02 +0000 (15:09 +0200)
Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/network

index 16c8f609bc05b7b19521eb62de6727c591783e2e..88c90b1f57cfc67676a5918f3ef05a26d65d39f8 100644 (file)
@@ -1409,6 +1409,24 @@ cli_vpn() {
                security-policies)
                        cli_vpn_security_policies $@
                        ;;
+               ipsec)
+                       cli_vpn_ipsec $@
+                       ;;
+               *)
+                       error "Unrecognized argument: ${action}"
+                       exit ${EXIT_ERROR}
+                       ;;
+       esac
+}
+
+cli_vpn_ipsec() {
+       local action=${1}
+       shift 1
+
+       case "${action}" in
+               connection)
+                       cli_vpn_ipsec_connection $@
+                       ;;
                *)
                        error "Unrecognized argument: ${action}"
                        exit ${EXIT_ERROR}
@@ -1416,6 +1434,43 @@ cli_vpn() {
        esac
 }
 
+cli_vpn_ipsec_connection() {
+       if ipsec_connection_exists ${1}; then
+               local connection=${1}
+               local key=${2}
+               key=${key//-/_}
+               shift 2
+
+               case "${key}" in
+                       authentication|inactivity-timout|local|mode|peer|remote|security-policy)
+                               ipsec_connection_${key} ${connection} $@
+                               ;;
+                       *)
+                               error "Unrecognized argument: ${key}"
+                               exit ${EXIT_ERROR}
+                               ;;
+               esac
+       else
+               local action=${1}
+               shift
+
+               case "${action}" in
+                       new)
+                               ipsec_connection_new $@
+                               ;;
+                       destroy)
+                               ipsec_connection_destroy $@
+                               ;;
+                       ""|*)
+                               if [ -n "${action}" ]; then
+                                       error "Unrecognized argument: '${action}'"
+                               fi
+                               exit ${EXIT_ERROR}
+                               ;;
+               esac
+       fi
+}
+
 cli_vpn_security_policies() {
 
        local action