packages/net/vpnc/patches/002-vpn_script.patch

42 lines
1.2 KiB
Diff
Raw Normal View History

--- a/vpnc-script.in
+++ b/vpnc-script.in
@@ -97,7 +97,7 @@ do_ifconfig() {
fi
# Point to point interface require a netmask of 255.255.255.255 on some systems
- ifconfig "$TUNDEV" inet "$INTERNAL_IP4_ADDRESS" $ifconfig_syntax_ptp "$INTERNAL_IP4_ADDRESS" netmask 255.255.255.255 mtu ${MTU} up
+ ifconfig "$TUNDEV" "$INTERNAL_IP4_ADDRESS" $ifconfig_syntax_ptp "$INTERNAL_IP4_ADDRESS" netmask 255.255.255.255 mtu ${MTU} up
if [ -n "$INTERNAL_IP4_NETMASK" ]; then
set_network_route $INTERNAL_IP4_NETADDR $INTERNAL_IP4_NETMASK $INTERNAL_IP4_NETMASKLEN
@@ -503,6 +503,18 @@ do_disconnect() {
destroy_tun_device
}
+start_vpn_nat() {
+ iptables -A forwarding_rule -o $TUNDEV -j ACCEPT
+ iptables -A forwarding_rule -i $TUNDEV -j ACCEPT
+ iptables -t nat -A postrouting_rule -o $TUNDEV -j MASQUERADE
+}
+
+stop_vpn_nat() {
+ iptables -t nat -D postrouting_rule -o $TUNDEV -j MASQUERADE
+ iptables -D forwarding_rule -i $TUNDEV -j ACCEPT
+ iptables -D forwarding_rule -o $TUNDEV -j ACCEPT
+}
+
#### Main
if [ -z "$reason" ]; then
@@ -516,8 +528,10 @@ case "$reason" in
;;
connect)
do_connect
+ start_vpn_nat
;;
disconnect)
+ stop_vpn_nat
do_disconnect
;;
*)