# #
###############################################################################
-. /usr/lib/network/header-port
+. /usr/lib/network/header-config
-HOOK_SETTINGS="HOOK ADDRESS PREFIX GATEWAY"
+HOOK_CONFIG_SETTINGS="HOOK ADDRESS PREFIX GATEWAY"
-function hook_check() {
+hook_check_config_settings() {
assert isset ADDRESS
assert isinteger PREFIX
fi
}
-function hook_create() {
+hook_new() {
local zone=${1}
shift
done
# Store IPv6 address in small format.
- ADDRESS=$(ipv6_implode ${ADDRESS})
+ ADDRESS=$(ipv6_format "${ADDRESS}")
if [ -n "${GATEWAY}" ]; then
- GATEWAY=$(ipv6_implode ${GATEWAY})
+ GATEWAY=$(ipv6_format "${GATEWAY}")
fi
- zone_config_settings_write "${zone}" "${HOOK}.$(ipv6_hash ${ADDRESS}).${PREFIX}" ${HOOK_SETTINGS}
+ zone_config_settings_write "${zone}" "${HOOK}.$(ipv6_hash ${ADDRESS}).${PREFIX}"
exit ${EXIT_OK}
}
-function hook_up() {
+hook_up() {
local zone=${1}
local config=${2}
shift 2
exit ${EXIT_ERROR}
fi
- zone_config_settings_read "${zone}" "${config}" ${HOOK_SETTINGS}
+ zone_config_settings_read "${zone}" "${config}"
ip_address_add ${zone} ${ADDRESS}/${PREFIX}
- routing_db_set ${zone} ipv6 local-ip-address ${ADDRESS}/${PREFIX}
- routing_db_set ${zone} ipv6 remote-ip-address ${GATEWAY}
- routing_db_set ${zone} ipv6 active 1
+ db_set "${zone}/ipv6/local-ip-address" "${ADDRESS}/${PREFIX}"
+ db_set "${zone}/ipv6/remote-ip-address" "${GATEWAY}"
+ db_set "${zone}/ipv6/active" 1
+
routing_default_update
exit ${EXIT_OK}
}
-function hook_down() {
+hook_down() {
local zone=${1}
local config=${2}
shift 2
fi
# Remove routing information from database.
- routing_db_remove ${zone} ipv6
+ db_delete "${zone}/ipv6"
- zone_config_settings_read "${zone}" "${config}" ${HOOK_SETTINGS}
+ zone_config_settings_read "${zone}" "${config}"
ip_address_del ${zone} ${ADDRESS}/${PREFIX}
exit ${EXIT_OK}
}
-function hook_status() {
+hook_status() {
local zone=${1}
local config=${2}
shift 2
exit ${EXIT_ERROR}
fi
- zone_config_settings_read "${zone}" "${config}" ${HOOK_SETTINGS}
+ zone_config_settings_read "${zone}" "${config}"
# Make sure ADDRESS is as short as possible.
- ADDRESS=$(ipv6_implode ${ADDRESS})
+ ADDRESS=$(ipv6_format "${ADDRESS}")
local status
if zone_has_ip ${zone} ${ADDRESS}/${PREFIX}; then