devicify ${device}
}
+function pppd_pid() {
+ local zone=${1}
+ shift
+
+ cat /var/run/${zone}.pid 2>/dev/null
+}
+
function _check() {
assert isset USER
assert isset SECRET
config_read ${ZONE_DIR}/${zone}/settings
- ppp_pre_up
-
# Creating necessary files
[ -d "${RED_RUN}/${LINKNAME}" ] || mkdir -p ${RED_RUN}/${LINKNAME}
pppd file ${RED_RUN}/${LINKNAME}/options >/dev/null
- exit ${EXIT_OK}
+ local ret=$?
+
+ # Get exit code from ppp daemon and handle it:
+ case "${ret}" in
+ 0)
+ log DEBUG "pppd detached successfully"
+ exit ${EXIT_OK}
+ ;;
+ esac
+
+ error_log "pppd exited with unknown exit code '${ret}'"
+
+ exit ${EXIT_ERROR}
}
function _down() {
config_read ${ZONE_DIR}/${zone}/settings
- ppp_pre_down
-
# Kill pppd
- pid=$(cat /var/run/${zone}.pid 2>/dev/null)
- if [ -n "${pid}" ]; then
- kill ${pid} &>/dev/null
- fi
+ kill $(pppd_pid ${zone}) &>/dev/null
# Pull down device or remove virtual one
- if [ -n "${DEVICE_VID}" ]; then
+ if [ -n "${DEVICE_VID}" ]; then
device_remove_virtual ${DEVICE_MAC}
else
device_set_down ${DEVICE}