cfgparse.sh revision 1.2
1#	$OpenBSD: cfgparse.sh,v 1.2 2015/04/29 05:23:27 dtucker Exp $
2#	Placed in the Public Domain.
3
4tid="config parse"
5
6verbose "reparse default config"
7($SUDO ${SSHD} -T -f /dev/null >$OBJ/sshd_config.1 &&
8 $SUDO ${SSHD} -T -f $OBJ/sshd_config.1 >$OBJ/sshd_config.2 &&
9 diff $OBJ/sshd_config.1 $OBJ/sshd_config.2) || fail "reparse default config"
10
11verbose "reparse regress config"
12($SUDO ${SSHD} -T -f $OBJ/sshd_config >$OBJ/sshd_config.1 &&
13 $SUDO ${SSHD} -T -f $OBJ/sshd_config.1 >$OBJ/sshd_config.2 &&
14 diff $OBJ/sshd_config.1 $OBJ/sshd_config.2) || fail "reparse regress config"
15
16verbose "listenaddress order"
17# expected output
18cat > $OBJ/sshd_config.0 <<EOD
19listenaddress 1.2.3.4:1234
20listenaddress 1.2.3.4:5678
21listenaddress [::1]:1234
22listenaddress [::1]:5678
23EOD
24# test input sets.  should all result in the output above.
25# test 1: addressfamily and port first
26cat > $OBJ/sshd_config.1 <<EOD
27addressfamily any
28port 1234
29port 5678
30listenaddress 1.2.3.4
31listenaddress ::1
32EOD
33($SUDO ${SSHD} -T -f $OBJ/sshd_config.1 | \
34 grep 'listenaddress ' >$OBJ/sshd_config.2 &&
35 diff -u $OBJ/sshd_config.0 $OBJ/sshd_config.2) || \
36 fail "listenaddress order 1"
37# test 2: listenaddress first
38cat > $OBJ/sshd_config.1 <<EOD
39listenaddress 1.2.3.4
40listenaddress ::1
41port 1234
42port 5678
43addressfamily any
44EOD
45($SUDO ${SSHD} -T -f $OBJ/sshd_config.1 | \
46 grep 'listenaddress ' >$OBJ/sshd_config.2 &&
47 diff -u $OBJ/sshd_config.0 $OBJ/sshd_config.2) || \
48 fail "listenaddress order 2"
49
50# cleanup
51rm -f $OBJ/sshd_config.[012]
52