Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
SIGTERM cleans up the session similarly to SIGINT
Resolves #9 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
- Loading branch information
Showing
6 changed files
with
154 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
#!/bin/sh -x | ||
|
||
# Fake script just for unit tests. Do not use. | ||
# For a real one, see http://www.infradead.org/openconnect/vpnc-script.html | ||
|
||
if [ "$reason" = "connect" ]; then | ||
ip link set dev "$TUNDEV" up mtu "$INTERNAL_IP4_MTU" | ||
ip addr add "$INTERNAL_IP4_ADDRESS/32" peer "$INTERNAL_IP4_ADDRESS" dev "$TUNDEV" | ||
ip -6 addr add $INTERNAL_IP6_NETMASK dev $TUNDEV | ||
rm -f ${DISCONNECT_FILE} | ||
elif [ "$reason" = "disconnect" ];then | ||
touch ${DISCONNECT_FILE} | ||
fi | ||
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
#!/bin/bash | ||
# | ||
# Copyright (C) 2018 Nikos Mavrogiannopoulos | ||
# | ||
# 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 this program. If not, see <http://www.gnu.org/licenses/>. | ||
# | ||
|
||
# This tests operation/traffic under compression (lzs or lz4). | ||
|
||
OCCTL="${OCCTL:-occtl}" | ||
SERV="${OCSERV:-ocserv}" | ||
srcdir=${srcdir:-.} | ||
PORT=4569 | ||
PIDFILE=ocserv-pid.$$.tmp | ||
CLIPID=oc-pid.$$.tmp | ||
PATH=${PATH}:/usr/sbin | ||
IP=$(which ip) | ||
OUTFILE=traffic.$$.tmp | ||
export DISCONNECT_FILE=disconnected-ok.$$.tmp | ||
|
||
. `dirname $0`/common.sh | ||
|
||
rm -f ${DISCONNECT_FILE} | ||
|
||
if test -z "${IP}";then | ||
echo "no IP tool is present" | ||
exit 77 | ||
fi | ||
|
||
if test "$(id -u)" != "0";then | ||
echo "This test must be run as root" | ||
exit 77 | ||
fi | ||
|
||
echo "Testing ocserv connection with DTLS-PSK... " | ||
|
||
function finish { | ||
set +e | ||
echo " * Cleaning up..." | ||
test -n "${PID}" && kill ${PID} >/dev/null 2>&1 | ||
test -n "${PIDFILE}" && rm -f ${PIDFILE} >/dev/null 2>&1 | ||
test -f "${CLIPID}" && kill $(cat ${CLIPID}) >/dev/null 2>&1 | ||
test -f "${CLIPID}" && rm -f ${CLIPID} >/dev/null 2>&1 | ||
test -n "${CONFIG}" && rm -f ${CONFIG} >/dev/null 2>&1 | ||
rm -f ${OUTFILE} 2>&1 | ||
} | ||
trap finish EXIT | ||
|
||
# server address | ||
ADDRESS=10.202.2.1 | ||
CLI_ADDRESS=10.202.1.1 | ||
VPNNET=192.168.3.0/24 | ||
VPNADDR=192.168.3.1 | ||
VPNNET6=fd91:6d87:8341:dc6a::/112 | ||
VPNADDR6=fd91:6d87:8341:dc6a::1 | ||
OCCTL_SOCKET=./occtl-comp-$$.socket | ||
USERNAME=test | ||
TUNDEV=oc-$$-tun0 | ||
|
||
. `dirname $0`/ns.sh | ||
|
||
# Run servers | ||
update_config test-dtls-psk.config | ||
if test "$VERBOSE" = 1;then | ||
DEBUG="-d 3" | ||
fi | ||
|
||
${CMDNS2} ${SERV} -p ${PIDFILE} -f -c ${CONFIG} ${DEBUG} & PID=$! | ||
|
||
sleep 4 | ||
|
||
# Run clients | ||
echo " * Getting cookie from ${ADDRESS}:${PORT}..." | ||
( echo "test" | ${CMDNS1} ${OPENCONNECT} ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 --cookieonly ) | ||
if test $? != 0;then | ||
echo "Could not get cookie from server" | ||
exit 1 | ||
fi | ||
|
||
echo " * Connecting to ${ADDRESS}:${PORT}..." | ||
( echo "test" | ${CMDNS1} ${OPENCONNECT} --interface ${TUNDEV} --dtls-ciphers=PSK-NEGOTIATE ${ADDRESS}:${PORT} -u ${USERNAME} --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s ${srcdir}/scripts/vpnc-script-detect-disconnect --pid-file=${CLIPID} --passwd-on-stdin -b ) | ||
if test $? != 0;then | ||
echo "Could not connect to server" | ||
exit 1 | ||
fi | ||
|
||
set -e | ||
|
||
echo " * wait for ${TUNDEV}" | ||
|
||
TIMEOUT=10 | ||
while ! ${CMDNS1} ip addr list dev ${TUNDEV} &>/dev/null; do | ||
TIMEOUT=$(($TIMEOUT - 1)) | ||
if [ $TIMEOUT -eq 0 ]; then | ||
echo "Timed out waiting for ${TUNDEV}" | ||
exit 1 | ||
fi | ||
sleep 1 | ||
done | ||
|
||
echo " * add routes" | ||
|
||
${CMDNS1} ip route add ${VPNADDR} dev ${TUNDEV} | ||
${CMDNS1} ip -6 route add ${VPNADDR6} dev ${TUNDEV} | ||
|
||
echo " * ping remote address" | ||
|
||
${CMDNS1} ping -c 3 ${VPNADDR} | ||
|
||
test -f "${CLIPID}" && kill $(cat ${CLIPID}) >/dev/null 2>&1 | ||
rm -f "${CLIPID}" | ||
|
||
sleep 5 | ||
|
||
if ! test -f ${DISCONNECT_FILE};then | ||
echo "Could not find ${DISCONNECT_FILE}" | ||
exit 1 | ||
fi | ||
|
||
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters