]> git.ipfire.org Git - people/ms/network.git/commitdiff
dummy: Cleanup hook
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 5 Aug 2017 19:38:12 +0000 (19:38 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 5 Aug 2017 19:38:12 +0000 (19:38 +0000)
No functional changes

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/header-port
src/hooks/ports/dummy

index 56551d14fdb2fa83d8637c94a4fc33fc5e72a806..50e26d218d5863dcffb473cd7be659f2a1f6b11e 100644 (file)
@@ -44,6 +44,22 @@ hook_add() {
        cmd_not_implemented
 }
 
+hook_edit() {
+       local port=${1}
+       assert isset port
+       shift
+
+       port_settings_read "${port}" ${HOOK_SETTINGS}
+
+       if ! hook_parse_cmdline $@; then
+               return ${EXIT_ERROR}
+       fi
+
+       port_settings_write "${port}" ${HOOK_SETTINGS}
+
+       exit ${EXIT_OK}
+}
+
 hook_info() {
        local port="${1}"
        assert isset port
index aa313c013a5f8764cb6d848c6658fee78f9d42be..7e6f5d2460bd1a469a15017ffd80c97a5c4abc3f 100644 (file)
@@ -27,7 +27,7 @@ hook_check_settings() {
        assert ismac ADDRESS
 }
 
-hook_new() {
+hook_parse_cmdline() {
        while [ $# -gt 0 ]; do
                case "${1}" in
                        --address=*)
@@ -40,10 +40,22 @@ hook_new() {
                shift
        done
 
-       # Generate a random MAC address if non was set.
-       if ! isset ADDRESS; then
+       if isset ADDRESS; then
+               if ! ismac ADDRESS; then
+                       error "Invalid MAC address given: ${ADDRESS}"
+                       return ${EXIT_ERROR}
+               fi
+
+       # Generate a random but static MAC address if none was set
+       else
                ADDRESS=$(mac_generate)
        fi
+}
+
+hook_new() {
+       if ! hook_parse_cmdline $@; then
+               return ${EXIT_ERROR}
+       fi
 
        local port=$(port_find_free ${DUMMY_PORT_PATTERN})
        assert isset port
@@ -55,30 +67,6 @@ hook_new() {
        exit ${EXIT_OK}
 }
 
-hook_edit() {
-       local port=${1}
-       assert isset port
-       shift
-
-       port_settings_read "${port}" ${HOOK_SETTINGS}
-
-       while [ $# -gt 0 ]; do
-               case "${1}" in
-                       --address=*)
-                               ADDRESS=$(cli_get_val ${1})
-                               ;;
-                       *)
-                               warning "Unknown argument '${1}'"
-                               ;;
-               esac
-               shift
-       done
-
-       port_settings_write "${port}" ${HOOK_SETTINGS}
-
-       exit ${EXIT_OK} 
-}
-
 hook_create() {
        local port="${1}"
        assert isset port