From fdcc84f78ef24328dc7d570fa717f0fd9a0f7113 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Tue, 29 May 2012 12:59:11 +0000
Subject: comgt: remove old network scripts

SVN-Revision: 31982
---
 package/comgt/files/3g.sh | 90 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 90 insertions(+)
 create mode 100644 package/comgt/files/3g.sh

(limited to 'package/comgt/files/3g.sh')

diff --git a/package/comgt/files/3g.sh b/package/comgt/files/3g.sh
new file mode 100644
index 0000000..b5da54c
--- /dev/null
+++ b/package/comgt/files/3g.sh
@@ -0,0 +1,90 @@
+#!/bin/sh
+INCLUDE_ONLY=1
+
+. ../netifd-proto.sh
+. ./ppp.sh
+init_proto "$@"
+
+proto_3g_init_config() {
+	no_device=1
+	available=1
+	ppp_generic_init_config
+	proto_config_add_string "device"
+	proto_config_add_string "apn"
+	proto_config_add_string "service"
+	proto_config_add_string "pincode"
+}
+
+proto_3g_setup() {
+	local interface="$1"
+	local chat
+
+	json_get_var device device
+	json_get_var apn apn
+	json_get_var service service
+	json_get_var pincode pincode
+
+	[ -e "$device" ] || {
+		proto_set_available "$interface" 0
+		return 1
+	}
+
+	case "$service" in
+		cdma|evdo)
+			chat="/etc/chatscripts/evdo.chat"
+		;;
+		*)
+			chat="/etc/chatscripts/3g.chat"
+			cardinfo=$(gcom -d "$device" -s /etc/gcom/getcardinfo.gcom)
+			if echo "$cardinfo" | grep -q Novatel; then
+				case "$service" in
+					umts_only) CODE=2;;
+					gprs_only) CODE=1;;
+					*) CODE=0;;
+				esac
+				export MODE="AT\$NWRAT=${CODE},2"
+			elif echo "$cardinfo" | grep -q Option; then
+				case "$service" in
+					umts_only) CODE=1;;
+					gprs_only) CODE=0;;
+					*) CODE=3;;
+				esac
+				export MODE="AT_OPSYS=${CODE}"
+			elif echo "$cardinfo" | grep -q "Sierra Wireless"; then
+				SIERRA=1
+			fi
+
+			if [ -n "$pincode" ]; then
+				PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
+					proto_notify_error "$interface" PIN_FAILED
+					proto_block_restart "$interface"
+					return 1
+				}
+			fi
+			[ -n "$MODE" ] && gcom -d "$device" -s /etc/gcom/setmode.gcom
+
+			# wait for carrier to avoid firmware stability bugs
+			[ -n "$SIERRA" ] && {
+				gcom -d "$device" -s /etc/gcom/getcarrier.gcom || return 1
+			}
+		;;
+	esac
+
+	connect="${apn:+USE_APN=$apn }/usr/sbin/chat -t5 -v -E -f $chat"
+	ppp_generic_setup "$interface" \
+		noaccomp \
+		nopcomp \
+		novj \
+		nobsdcomp \
+		noauth \
+		lock \
+		crtscts \
+		115200 "$device"
+	return 0
+}
+
+proto_3g_teardown() {
+	proto_kill_command "$interface"
+}
+
+add_protocol 3g
-- 
cgit v1.1