summaryrefslogtreecommitdiff
path: root/httpconnectd.sh
blob: ff22d1362123d49cc8a026fbadbbe0a69bbbc82e (plain)
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
#!/usr/bin/env bash
# Copyright 2016 Luke Shumaker
# License: WTFPLv2

# Dependencies:
# - bash
# - socat
# - date -R

server='httpconnectd'

MethodNotAllowed() {
	printf '%\r\n' \
	       'HTTP/1.1 405 Method Not Allowed' \
	       "Server: $server" \
	       "Date: $(date -R)" \
	       'Allow: CONNECT' \
	       ''
	exit 0
}

worker() {
	read -r method dest version
	if [[ "$method" != CONNECT ]]; then
		MethodNotAllowed
	fi
	exec socat STDIO TCP-CONNECT:"$dest"
}

worker "$@"