1178825Sdfr#!/bin/sh
2178825Sdfr#
3178825Sdfr# Copyright (c) 2006 Kungliga Tekniska H�gskolan
4178825Sdfr# (Royal Institute of Technology, Stockholm, Sweden). 
5178825Sdfr# All rights reserved. 
6178825Sdfr#
7178825Sdfr# Redistribution and use in source and binary forms, with or without 
8178825Sdfr# modification, are permitted provided that the following conditions 
9178825Sdfr# are met: 
10178825Sdfr#
11178825Sdfr# 1. Redistributions of source code must retain the above copyright 
12178825Sdfr#    notice, this list of conditions and the following disclaimer. 
13178825Sdfr#
14178825Sdfr# 2. Redistributions in binary form must reproduce the above copyright 
15178825Sdfr#    notice, this list of conditions and the following disclaimer in the 
16178825Sdfr#    documentation and/or other materials provided with the distribution. 
17178825Sdfr#
18178825Sdfr# 3. Neither the name of the Institute nor the names of its contributors 
19178825Sdfr#    may be used to endorse or promote products derived from this software 
20178825Sdfr#    without specific prior written permission. 
21178825Sdfr#
22178825Sdfr# THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 
23178825Sdfr# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
24178825Sdfr# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
25178825Sdfr# ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 
26178825Sdfr# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
27178825Sdfr# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
28178825Sdfr# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
29178825Sdfr# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
30178825Sdfr# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
31178825Sdfr# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
32178825Sdfr# SUCH DAMAGE. 
33178825Sdfr#
34178825Sdfr# $Id: check-gssmask.in 21845 2007-08-08 06:54:48Z lha $
35178825Sdfr#
36178825Sdfr
37178825Sdfrsrcdir="@srcdir@"
38178825Sdfrobjdir="@objdir@"
39178825Sdfr
40178825Sdfr# If there is no useful db support compile in, disable test
41178825Sdfr../db/have-db || exit 77
42178825Sdfr
43178825SdfrR=TEST.H5L.SE
44178825Sdfr
45178825Sdfrport=@port@
46178825Sdfr
47178825Sdfrkadmin="${TESTS_ENVIRONMENT} ../../kadmin/kadmin -l -r $R"
48178825Sdfrkdc="${TESTS_ENVIRONMENT} ../../kdc/kdc --addresses=localhost -P $port"
49178825Sdfrkeytabfile=${objdir}/server.keytab
50178825Sdfrkeytab="FILE:${keytabfile}"
51178825Sdfr
52178825Sdfrgssmask="${TESTS_ENVIRONMENT} ../../appl/gssmask/gssmask"
53178825Sdfrgssmaskn1="${gssmask} -p 8889 --spn=host/n1.test.h5l.se@${R} --logfile=n1.log"
54178825Sdfrgssmaskn2="${gssmask} -p 8890 --spn=host/n2.test.h5l.se@${R} --logfile=n2.log"
55178825Sdfrgssmaskn3="${gssmask} -p 8891 --spn=host/n3.test.h5l.se@${R} --logfile=n3.log"
56178825Sdfrgssmaestro="../../appl/gssmask/gssmaestro"
57178825Sdfr
58178825SdfrKRB5_CONFIG="${objdir}/krb5.conf"
59178825Sdfrexport KRB5_CONFIG
60178825Sdfr
61178825Sdfrrm -f ${keytabfile}
62178825Sdfrrm -f current-db*
63178825Sdfrrm -f out-*
64178825Sdfrrm -f mkey.file*
65178825Sdfr
66178825Sdfr> messages.log
67178825Sdfr
68178825Sdfrecho Creating database
69178825Sdfr${kadmin} \
70178825Sdfr    init \
71178825Sdfr    --realm-max-ticket-life=1day \
72178825Sdfr    --realm-max-renewable-life=1month \
73178825Sdfr    ${R} || exit 1
74178825Sdfr
75178825Sdfr${kadmin} add -p p1 --use-defaults host/n1.test.h5l.se@${R} || exit 1
76178825Sdfr${kadmin} add -p p2 --use-defaults host/n2.test.h5l.se@${R} || exit 1
77178825Sdfr${kadmin} add -p p3 --use-defaults host/n3.test.h5l.se@${R} || exit 1
78178825Sdfr${kadmin} ext -k ${keytab} host/n1.test.h5l.se@${R} || exit 1
79178825Sdfr${kadmin} ext -k ${keytab} host/n2.test.h5l.se@${R} || exit 1
80178825Sdfr${kadmin} ext -k ${keytab} host/n3.test.h5l.se@${R} || exit 1
81178825Sdfr
82178825Sdfr${kadmin} add -p u1 --use-defaults user1@${R} || exit 1
83178825Sdfr
84178825Sdfrecho "Doing database check"
85178825Sdfr${kadmin} check ${R} || exit 1
86178825Sdfr
87178825Sdfrecho Starting kdc
88178825Sdfr${kdc} &
89178825Sdfrkdcpid=$!
90178825Sdfr
91178825Sdfrsh ${srcdir}/../kdc/wait-kdc.sh
92178825Sdfrif [ "$?" != 0 ] ; then
93178825Sdfr    kill ${kdcpid}
94178825Sdfr    exit 1
95178825Sdfrfi
96178825Sdfr
97178825Sdfrtrap "kill ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
98178825Sdfr
99178825Sdfrexitcode=0
100178825Sdfr
101178825Sdfrecho "Starting client 1"
102178825Sdfr${gssmaskn1} --moniker=n1 &
103178825Sdfrn1pid=$!
104178825Sdfr#echo $n1pid
105178825Sdfr#xterm -display :0 -e g ${gssmaskn1} &
106178825Sdfr#read x
107178825Sdfr
108178825Sdfrecho "Starting client 2"
109178825Sdfr${gssmaskn2} --moniker=n2 &
110178825Sdfrn2pid=$!
111178825Sdfr
112178825Sdfrecho "Starting client 3"
113178825Sdfr${gssmaskn3} --moniker=n3 &
114178825Sdfrn3pid=$!
115178825Sdfr
116178825Sdfrtrap "kill ${kdcpid} ${n1pid} ${n2pid} ${n3pid} 2> /dev/null; echo signal killing kdc and maskar; exit 1;" EXIT
117178825Sdfr
118178825Sdfrsleep 10
119178825Sdfr
120178825Sdfr${gssmaestro} \
121178825Sdfr    --slaves=localhost:8889 \
122178825Sdfr    --slaves=localhost:8890 \
123178825Sdfr    --slaves=localhost:8891 \
124178825Sdfr    --principals=user1@${R}:u1 || exitcode=1
125178825Sdfr
126178825Sdfrtrap "" EXIT
127178825Sdfr
128178825Sdfrecho "killing kdc and clients (${kdcpid}, ${n1pid}, ${n2pid}, ${n3pid})"
129178825Sdfrkill ${kdcpid} ${n1pid} ${n2pid} ${n3pid} 2> /dev/null
130178825Sdfr
131178825Sdfrexit $exitcode
132178825Sdfr
133178825Sdfr
134