]> git.ipfire.org Git - people/arne_f/network.git/blobdiff - functions.ppp
Fix weird device CLI command.
[people/arne_f/network.git] / functions.ppp
index 958b6d2107a9a2fdeeb5ad911521d523f5b06ae0..c10e7e7cbbd3973e0a1bbfeb0068510cc90f620a 100644 (file)
 #                                                                             #
 ###############################################################################
 
+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
@@ -28,6 +34,8 @@ function ppp_common_ip_pre_up() {
                return ${EXIT_ERROR}
        fi
 
+       red_db_from_ppp ${zone}
+
        # Request firewall reload
        event_firewall_reload
 
@@ -43,6 +51,9 @@ function ppp_common_ip_up() {
                return ${EXIT_ERROR}
        fi
 
+       red_db_set ${zone} active 1
+       red_routing_update ${zone}
+
        # Emit interface-up event
        event_interface_up ${zone}
 
@@ -58,6 +69,9 @@ function ppp_common_ip_down() {
                return ${EXIT_ERROR}
        fi
 
+       # Save accounting information
+       ppp_accounting ${zone}
+
        # Emit interface-up event
        event_interface_down ${zone}
 
@@ -83,52 +97,16 @@ function ppp_secret() {
        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
 }