# #
###############################################################################
+function ppp_init() {
+ mkdir -p /var/run/ppp 2>/dev/null
+}
+
+init_register ppp_init
+
function ppp_common_ip_pre_up() {
local zone=${1}
shift
return ${EXIT_ERROR}
fi
+ red_db_from_ppp ${zone}
+
# Request firewall reload
event_firewall_reload
return ${EXIT_ERROR}
fi
+ red_db_set ${zone} active 1
+ red_routing_update ${zone}
+
# Emit interface-up event
event_interface_up ${zone}
return ${EXIT_ERROR}
fi
+ # Save accounting information
+ ppp_accounting ${zone}
+
# Emit interface-up event
event_interface_down ${zone}
rm -f ${PPP_SECRETS}.tmp
}
-function ppp_stat() {
- local name=${1}
- local time=${2}
- local rcvd=${3}
- local sent=${4}
-
- local file="${LOG_DIR}/ppp_${name}.db"
- if ! [ -e "${file}" ]; then
- sqlite3 -batch ${file} <<EOF
-CREATE TABLE connections(date, duration, rcvd, sent);
-EOF
- fi
- ppp_stat_init ${file}
-
- sqlite3 -batch ${file} <<EOF
-INSERT INTO connections(date, duration, rcvd, sent) VALUES('$(date -u '+%s')', '${time}', '${rcvd}', '${sent}');
-EOF
-}
+function ppp_accounting() {
+ local zone=${1}
+ shift
-function ppp_linkname_get() {
- local config=${1}
- (
- . ${config}
- echo "${NAME}"
- )
+ db_ppp_update ${zone} --duration="${CONNECT_TIME}" \
+ --rcvd="${BYTES_RCVD}" --sent="${BYTES_SENT}"
}
-function red_defaultroute_update() {
- local command="ip route replace default"
-
- local uplink
- for uplink in ${RED_RUN}/*; do
- [ -d "${uplink}" ] || continue
-
- # Skip if no gateway given
- [ -e "${uplink}/gateway" ] || continue
-
- command="${command} nexthop via $(<${uplink}/gateway)"
- if [ -e "${uplink}/weight" ]; then
- command="${command} weight $(<${uplink}/weight)"
- fi
- done
- $command
- #ip route flush cache
-}
+function pppd_exec() {
+ log DEBUG "Running pppd with parameters '$@'."
-function red_dns_update() {
- : # XXX todo
+ pppd $@ > /dev/null
}