File: test-user-config

package info (click to toggle)
ocserv 1.3.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,924 kB
  • sloc: ansic: 46,747; sh: 12,630; makefile: 412; xml: 29
file content (192 lines) | stat: -rwxr-xr-x 5,863 bytes parent folder | download | duplicates (2)
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
#!/bin/bash
#
# Copyright (C) 2015 Red Hat, Inc.
#
# This file is part of ocserv.
#
# ocserv is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at
# your option) any later version.
#
# ocserv is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GnuTLS; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

SERV="${SERV:-../src/ocserv}"
srcdir=${srcdir:-.}

# Test whether DPD, keepalive per user are actually set, and whether
# the expose-iroutes option has an effect to other users.

. `dirname $0`/common.sh

eval "${GETPORT}"

echo "Testing ocserv and user route application... "

TMPFILE1=${srcdir}/test-user-config.tmp
TMPFILE2=${srcdir}/test-user-config-2.tmp

rm -f ${TMPFILE1}
rm -f ${TMPFILE2}

update_config test-user-config.config
launch_simple_server -d 3 -f -c "${CONFIG}"
PID=$!
wait_server $PID

echo -n "Connecting to obtain cookie (with certificate)... "
( $OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= --cookieonly </dev/null >/dev/null ) ||
	fail $PID "Could not connect with certificate!"

echo ok

echo -n "Re-connecting to force script run... "
$OPENCONNECT -q localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true </dev/null >/dev/null &
kpid1=$!
echo ok

sleep 2

echo -n "Re-connecting to check the iroutes... "
$OPENCONNECT -v localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true </dev/null >${TMPFILE1} 2>&1 &
kpid2=$!

echo ok
sleep 3

echo -n "Checking if max-same-clients is considered... "

timeout 15s $OPENCONNECT localhost:$PORT --sslkey ${srcdir}/certs/user-key.pem -c ${srcdir}/certs/user-cert-testuser.pem --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true </dev/null >${TMPFILE2} 2>&1
if test $? = 124;then
	fail $PID "Max-same-clients directive was ignored"
fi

CONTENTS=`cat ${TMPFILE2}|grep "HTTP/1.1 401"`
if test -z "$CONTENTS";then
	cat ${TMPFILE2}
	fail $PID "Max-same-clients directive was ignored"
fi

echo ok

sleep 2

kill $kpid1
kill $kpid2

echo -n "Checking if proper dns was sent... "

CONTENTS=`cat ${TMPFILE1}|grep "X-CSTP-DNS: 8.8.8.8"`
if test -z "$CONTENTS";then
	cat ${TMPFILE1}|grep X-CSTP-DNS
	fail $PID "Expected DNS was not sent"
fi

echo ok

echo -n "Checking if routes have been sent... "

CONTENTS=`cat ${TMPFILE1}|grep X-CSTP-Split-Include|grep 192.168.1.0`
if test -z "$CONTENTS";then
	cat ${TMPFILE1}|grep X-CSTP-Split-Include
	fail $PID "Temporary file contents are not correct; iroute was not found"
fi

echo ok

echo -n "Checking if split-dns has been sent... "

CONTENTS=`cat ${TMPFILE1}|grep X-CSTP-Split-DNS|grep example6.com`
if test -z "$CONTENTS";then
	cat ${TMPFILE1}|grep X-CSTP-Split-DNS
	fail $PID "Temporary file contents are not correct; X-CSTP-Split-DNS was not found"
fi

echo ok

echo -n "Checking if split-dns has not been sent... "

cat ${TMPFILE1}|grep X-CSTP-Split-DNS|grep example.com >/dev/null
if test $? = 0;then
	cat ${TMPFILE1}|grep X-CSTP-Split-DNS
	fail $PID "Temporary file contents are not correct; X-CSTP-Split-DNS contained main config value"
fi

echo ok

echo -n "Checking if user-specific DPD has been sent... "

CONTENTS=`cat ${TMPFILE1}|grep X-DTLS-DPD|grep 880`
if test -z "$CONTENTS";then
	cat ${TMPFILE1}|grep X-DTLS-DPD
	fail $PID "Temporary file contents are not correct; dpd was not the expected (880)"
fi

echo ok

echo -n "Checking if user-specific Keep alive has been sent... "

CONTENTS=`cat ${TMPFILE1}|grep X-CSTP-Keep|grep 14400`
if test -z "$CONTENTS";then
	cat ${TMPFILE1}|grep X-CSTP-Keep
	fail $PID "Temporary file contents are not correct; keepalive was not the expected (14400)"
fi

echo ok

echo -n "Checking if user-specific hostname has been sent... "

CONTENTS=`cat ${TMPFILE1}|grep X-CSTP-Hostname|grep xxxx`
if test -z "$CONTENTS";then
	cat ${TMPFILE1}|grep X-CSTP-Hostname
	fail $PID "Temporary file contents are not correct; hostname was not the expected (xxxx)"
fi

echo ok

rm -f ${TMPFILE1}
rm -f ${TMPFILE2}

echo -n "Re-connecting to check the ipv4-network... "
$OPENCONNECT -v localhost:$PORT --sslkey "${srcdir}/certs/user-key.pem" -c "${srcdir}/certs/user-cert-testipnet.pem" --servercert=pin-sha256:xp3scfzy3rOQsv9NcOve/8YVVv+pHr4qNCXEXrNl5s8= -s /bin/true </dev/null >${TMPFILE1} 2>&1 & kpid3=$!

echo ok
sleep 3

CONTENTS=`cat ${TMPFILE1}|grep X-CSTP-Netmask|grep '255.255.0.0'`
if test -z "$CONTENTS";then
	cat ${TMPFILE1}|grep X-CSTP-Netmask
	fail $PID "Temporary file contents are not correct; netmask was not the expected (255.255.0.0)"
fi

CONTENTS=`cat ${TMPFILE1}|grep X-CSTP-Address|grep ' 10.9.'`
if test -z "$CONTENTS";then
	cat ${TMPFILE1}|grep X-CSTP-Address
	fail $PID "Temporary file contents are not correct; address was not the expected (10.9.)"
fi

echo -n "Checking if main config split-dns has been sent... "

cat ${TMPFILE1}|grep X-CSTP-Split-DNS|grep example.com >/dev/null
if test $? != 0;then
	cat ${TMPFILE1}|grep X-CSTP-Split-DNS
	fail $PID "Temporary file contents are not correct; X-CSTP-Split-DNS did not contain main config value"
fi

echo ok


kill $kpid3
rm -f ${TMPFILE1} ${CONFIG}
rm -f ${TMPFILE2}
kill $PID
wait

exit 0