added lang /lib pkgs
[librewrt/.git] / packages / xwrt / webif-vpn / files / etc / ppp / functions.sh
diff --git a/packages/xwrt/webif-vpn/files/etc/ppp/functions.sh b/packages/xwrt/webif-vpn/files/etc/ppp/functions.sh
new file mode 100755 (executable)
index 0000000..ba3ae26
--- /dev/null
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+. /etc/functions-net.sh
+
+USERS=/etc/ppp/users
+PEERS=/etc/ppp/peers
+
+# users.pptpd format:
+# username password ip-address
+
+# users.pptp format:
+# peername username password ip-address
+
+# peers.pptp format:
+# peername host-name username 
+
+ppp_del_user() {
+    rm_entry "$2" $USERS.$1
+}
+
+ppp_add_user() {
+    ppp_del_user "$1" "$2"
+    echo "$2 $3 $4 $5" >> $USERS.$1
+}
+
+ppp_del_peer() {
+    rm_entry "$2" $USERS.$1
+    rm_entry "$2" $PEERS.$1
+}
+
+ppp_add_peer() {
+    ppp_add_user "$1" "$2" "$4" "$5" "$6"
+    rm_entry "$2" $PEERS.$1
+    echo "$2 $3 $4" >> $PEERS.$1
+}
+
+build_chap_secrets() {
+    mkdir /etc/ppp/peers 2>&-
+    touch /etc/ppp/users.pptpd /etc/ppp/users.pptp /etc/ppp/peers.pptp
+    grep -v pptp /etc/ppp/chap-secrets > /tmp/chap-secrets
+    awk '{print $1 " pptpd " $2 " " $3}' /etc/ppp/users.pptpd >> /tmp/chap-secrets
+    awk '{print $2 " pptp:" $1 " " $3 " " $4}' /etc/ppp/users.pptp >> /tmp/chap-secrets
+
+    awk '{
+           peer="/etc/ppp/peers/pptp:" $1
+           print "pty \"pptp " $2 " --nolaunchpppd\"" > peer
+           print "mppe required,stateless" >> peer
+           print "name " $3 >> peer
+           print "remotename pptp:" $1 >> peer
+           print "file /etc/ppp/options.pptp" >> peer
+           print "ipparam pptp:" $1 >> peer
+         }' /etc/ppp/peers.pptp 
+
+    rm /etc/ppp/chap-secrets
+    mv /tmp/chap-secrets /etc/ppp/chap-secrets
+    chmod 700 /etc/ppp/chap-secrets
+    chmod 600 /etc/ppp/peers/* 2>&-
+}
+