summaryrefslogtreecommitdiff
path: root/www/httptunnel/files/httptunnel.sh
blob: 6cc2093ea69eed3da446fca9c567f66a3593c751 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/sh
#
# $FreeBSD$

USER=httptunnel

HTS=%%PREFIX%%/bin/hts		# The installed hts program
HTSPORT=			# [host:]port to listen for htc connection
HTSFORWARD=			# Talk to this socket
HTSDEVICE=			# *or* talk to this device

HTC=%%PREFIX%%/bin/htc		# The installed htc program
HTCPORT=			# host:port where hts is running
HTCFORWARD=			# Talk to this socket
HTCDEVICE=			# *or* talk to this device

HTCPROXY=			# host:port of proxy to talk to hts via
HTCPROXYAUTH=			# user:password to pass to proxy
HTCPROXYBUFFER=1K		# Buffer size for buffered proxies
HTCBROWSER='Mozilla/4.7 [en] (X11; I; Linux 2.2.12 i386)'  # Pretend to be this
HTCARGS=-S			# Any other arguments required

case $1 in
start)
	if [ -n "$HTSPORT" -a -x $HTS ]; then
		[ -n "$HTSFORWARD" ] && args="-F $HTSFORWARD"
		[ -n "$HTSDEVICE" ] && args="-d $HTSDEVICE"
		su -m $USER -c "$HTS $args $HTSPORT" && echo -n ' hts'
	fi

	if [ -n "$HTCPORT" -a -x $HTC ]; then
		[ -n "$HTCFORWARD" ] && args="-F $HTCFORWARD"
		[ -n "$HTCDEVICE" ] && args="-d $HTCDEVICE"
		[ -n "$HTCBROWSER" ] && args="-U \"$HTCBROWSER\" $args"
		if [ -n "$HTCPROXY" ]; then
			[ -n "$HTCPROXYBUFFER" ] &&
				args="-B $HTCPROXYBUFFER $args"
			if [ -n "$HTCPROXYAUTH" ]
			then
				if [ -f "$HTCPROXYAUTH" ]
				then
					args="--proxy-authorization-file $HTCPROXYAUTH $args"
				else
					args="-A $HTCPROXYAUTH $args"
				fi
			fi
			args="-P $HTCPROXY $args"
		fi
		su -m $USER -c "$HTC $args $HTCARGS $HTCPORT" && echo -n ' htc'
	fi
	;;
stop)
	killall htc && echo -n ' htc'
	killall hts && echo -n ' hts'
	;;
*)
	echo "Usage: `basename $0` {start|stop}" >&2
	exit 64
	;;
esac

exit 0