]> git.ipfire.org Git - people/stevee/network.git/blobdiff - hooks/zones/bridge.configs/ipv4-static
hostapd: Enable WMM by default.
[people/stevee/network.git] / hooks / zones / bridge.configs / ipv4-static
index 9ea7288d133dc246097cf0dd18136e358286f159..f56a5551352ed2c15073c4a7df643c76f34aff7d 100755 (executable)
 #                                                                             #
 ###############################################################################
 
-. /lib/network/header-config
+. /usr/lib/network/header-config
 
 HOOK_SETTINGS="HOOK ADDRESS PREFIX GATEWAY"
 
-function _check() {
+function hook_check() {
        assert isset ADDRESS
        assert isinteger PREFIX
 
@@ -33,7 +33,7 @@ function _check() {
        fi
 }
 
-function _create() {
+function hook_create() {
        local zone=${1}
        shift
 
@@ -65,7 +65,7 @@ function _create() {
        exit ${EXIT_OK}
 }
 
-function _up() {
+function hook_up() {
        local zone=${1}
        local config=${2}
        shift 2
@@ -77,20 +77,21 @@ function _up() {
 
        config_read $(zone_dir ${zone})/configs/${config}
 
-       if ! zone_has_ipv4 ${zone} ${ADDRESS}/${PREFIX}; then
-               ip addr add ${ADDRESS}/${PREFIX} dev ${zone}
-       else
-               warning "Do not set IPv4 address '${ADDRESS}/${PREFIX}' because it was already configured on zone '${zone}'."
-       fi
+       ip_address_add ${zone} ${ADDRESS}/${PREFIX}
 
-       if zone_is_nonlocal ${zone} && [ -n "${GATEWAY}" ]; then
-               : # XXX to be done
-       fi
+       # Save configuration
+       routing_db_set ${zone} ipv4 type "${HOOK}"
+       routing_db_set ${zone} ipv4 local-ip-address "${ADDRESS}/${PREFIX}"
+       routing_db_set ${zone} ipv4 remote-ip-address "${GATEWAY}"
+       routing_db_set ${zone} ipv4 active 1
+
+       routing_update ${zone} ipv4
+       routing_default_update
 
        exit ${EXIT_OK}
 }
 
-function _down() {
+function hook_down() {
        local zone=${1}
        local config=${2}
        shift 2
@@ -102,14 +103,15 @@ function _down() {
        
        config_read $(zone_dir ${zone})/configs/${config}
 
-       if zone_has_ipv4 ${zone} ${ADDRESS}/${PREFIX}; then
-               ip addr del ${ADDRESS}/${PREFIX} dev ${zone}
-       fi
+       ip_address_del ${zone} ${ADDRESS}/${PREFIX}
+
+       # Update routing tables.
+       routing_default_update
 
        exit ${EXIT_OK}
 }
 
-function _status() {
+function hook_status() {
        local zone=${1}
        local config=${2}
        shift 2
@@ -121,17 +123,19 @@ function _status() {
        
        config_read $(zone_dir ${zone})/configs/${config}
 
-       printf "        %10s - " "${HOOK}"
-       if zone_has_ipv4 ${zone} ${ADDRESS}/${PREFIX}; then
-               echo -ne "${COLOUR_ENABLED}ENABLED ${COLOUR_NORMAL}"
+       local status
+       if zone_has_ip ${zone} ${ADDRESS}/${PREFIX}; then
+               status=${MSG_HOOK_UP}
        else
-               echo -ne "${COLOUR_DISABLED}DISABLED${COLOUR_NORMAL}"
+               status=${MSG_HOOK_DOWN}
        fi
-       echo " - ${ADDRESS}/${PREFIX}"
+       cli_statusline 3 "${HOOK}" "${status}"
 
+       cli_print_fmt1 3 "IPv4 address" "${ADDRESS}/${PREFIX}"
        if [ -n "${GATEWAY}" ]; then
-               echo "          Gateway: ${GATEWAY}"
+               cli_print_fmt1 3 "Gateway" "${GATEWAY}"
        fi
+       cli_space
 
        exit ${EXIT_OK}
 }
@@ -158,5 +162,3 @@ function ipv4_mask_to_cidr() {
                echo ${cidr}
        fi
 }
-
-run $@