1 # $OpenBSD: cfginclude.sh,v 1.2 2016/05/03 15:30:46 dtucker Exp $
2 # Placed in the Public Domain.
6 # to appease StrictModes
9 cat > $OBJ/ssh_config.i << _EOF
15 Include $OBJ/ssh_config.i.*
18 Include $OBJ/ssh_config.i.*
22 Include $OBJ/ssh_config.i.*
29 Include $OBJ/ssh_config.i.*
32 Include $OBJ/ssh_config.i.*
36 Include $OBJ/ssh_config.i.*
39 cat > $OBJ/ssh_config.i.0 << _EOF
43 cat > $OBJ/ssh_config.i.1 << _EOF
63 cat > $OBJ/ssh_config.i.2 << _EOF
89 ${REAL_SSH} -F $OBJ/ssh_config.i -G "$_host" > $OBJ/ssh_config.out ||
90 fatal "ssh config parse failed"
91 _got=`grep -i '^hostname ' $OBJ/ssh_config.out | awk '{print $2}'`
92 if test "x$_exp" != "x$_got" ; then
93 fail "host $_host include fail: expected $_exp got $_got"
107 # Prepare an included config with an error.
109 cat > $OBJ/ssh_config.i.3 << _EOF
114 ${REAL_SSH} -F $OBJ/ssh_config.i -G a 2>/dev/null && \
115 fail "ssh include allowed invalid config"
117 ${REAL_SSH} -F $OBJ/ssh_config.i -G x 2>/dev/null && \
118 fail "ssh include allowed invalid config"
120 rm -f $OBJ/ssh_config.i.*
122 # Ensure that a missing include is not fatal.
123 cat > $OBJ/ssh_config.i << _EOF
124 Include $OBJ/ssh_config.i.*
130 # Ensure that Match/Host in an included config does not affect parent.
131 cat > $OBJ/ssh_config.i.x << _EOF
137 cat > $OBJ/ssh_config.i.x << _EOF
144 rm -f $OBJ/ssh_config.i $OBJ/ssh_config.i.* $OBJ/ssh_config.out
145 # $OpenBSD: cfginclude.sh,v 1.2 2016/05/03 15:30:46 dtucker Exp $
146 # Placed in the Public Domain.
150 cat > $OBJ/ssh_config.i << _EOF
156 Include $OBJ/ssh_config.i.*
159 Include $OBJ/ssh_config.i.*
163 Include $OBJ/ssh_config.i.*
170 Include $OBJ/ssh_config.i.*
173 Include $OBJ/ssh_config.i.*
177 Include $OBJ/ssh_config.i.*
180 cat > $OBJ/ssh_config.i.0 << _EOF
184 cat > $OBJ/ssh_config.i.1 << _EOF
204 cat > $OBJ/ssh_config.i.2 << _EOF
230 ${REAL_SSH} -F $OBJ/ssh_config.i -G "$_host" > $OBJ/ssh_config.out ||
231 fatal "ssh config parse failed"
232 _got=`grep -i '^hostname ' $OBJ/ssh_config.out | awk '{print $2}'`
233 if test "x$_exp" != "x$_got" ; then
234 fail "host $_host include fail: expected $_exp got $_got"
248 # Prepare an included config with an error.
250 cat > $OBJ/ssh_config.i.3 << _EOF
255 ${REAL_SSH} -F $OBJ/ssh_config.i -G a 2>/dev/null && \
256 fail "ssh include allowed invalid config"
258 ${REAL_SSH} -F $OBJ/ssh_config.i -G x 2>/dev/null && \
259 fail "ssh include allowed invalid config"
261 rm -f $OBJ/ssh_config.i.*
263 # Ensure that a missing include is not fatal.
264 cat > $OBJ/ssh_config.i << _EOF
265 Include $OBJ/ssh_config.i.*
271 # Ensure that Match/Host in an included config does not affect parent.
272 cat > $OBJ/ssh_config.i.x << _EOF
278 cat > $OBJ/ssh_config.i.x << _EOF
284 # Ensure that recursive includes are bounded.
285 cat > $OBJ/ssh_config.i << _EOF
286 Include $OBJ/ssh_config.i
289 ${REAL_SSH} -F $OBJ/ssh_config.i -G a 2>/dev/null && \
290 fail "ssh include allowed infinite recursion?" # or hang...
293 rm -f $OBJ/ssh_config.i $OBJ/ssh_config.i.* $OBJ/ssh_config.out