{KDESTROY $objdir/../../clients/kdestroy/kdestroy}
{RESOLVE $objdir/../resolve/resolve}
{T_INETD $objdir/t_inetd}
+ {KPROPLOG $objdir/../../slave/kproplog}
} {
set varname [lindex $i 0]
if ![info exists $varname] {
# kpasswd +5
# krb524 +7
# application servers (krlogind, telnetd, krshd, ftpd, etc) +8
+# iprop +9
if [info exists PORTBASE] {
set portbase $PORTBASE
} else {
set portbase 3085
}
+set ulog 0
+
# setup_kerberos_files
# This procedure will create some Kerberos files which must be created
# manually before trying to run any Kerberos programs. Returns 1 on
global master_key_type
global mode
global portbase
+ global ulog
if ![get_hostname] {
return 0
puts $conffile " default_principal_expiration = 2037.12.31.23.59.59"
puts $conffile " default_principal_flags = -postdateable forwardable"
puts $conffile " dict_file = $tmppwd/dictfile"
+ if { $ulog != 0 } {
+ puts $conffile " iprop_enable = true"
+ puts $conffile " iprop_port = [expr 9 + $portbase]"
+ puts $conffile " iprop_logfile = $tmppwd/db.ulog"
+ } else {
+ puts $conffile "# no ulog"
+ }
puts $conffile " \}"
puts $conffile ""
close $conffile
return 1
}
+proc reset_kerberos_files { } {
+ global tmppwd
+ file delete $tmppwd/kdc.conf $tmppwd/krb5.client.conf \
+ $tmppwd/krb5.server.conf $tmppwd/krb5.kdc.conf
+ setup_kerberos_files
+}
+
proc setup_krb5_conf { {type client} } {
global tmppwd
global hostname
--- /dev/null
+# Password-changing Kerberos test.
+# This is a DejaGnu test script.
+
+# Set up the Kerberos files and environment.
+if {![get_hostname] || ![setup_kerberos_files] || ![setup_kerberos_env]} {
+ return
+}
+
+# We are about to start up a couple of daemon processes. We do all
+# the rest of the tests inside a proc, so that we can easily kill the
+# processes when the procedure ends.
+
+proc doit { } {
+ global REALMNAME
+ global KLIST
+ global KDESTROY
+ global KEY
+ global KADMIN_LOCAL
+ global KTUTIL
+ global hostname
+ global tmppwd
+ global spawn_id
+ global supported_enctypes
+ global KRBIV
+ global portbase
+ global mode
+ global KPROPLOG
+ global ulog
+
+ # Delete any db, ulog files
+ file delete $tmppwd/adb $tmppwd/adb.ok $tmppwd/adb.ulog
+
+ # Update config file
+ set ulog 1
+ reset_kerberos_files
+
+ # Initialize the Kerberos database. The argument tells
+ # setup_kerberos_db that it is being called from here.
+ if ![setup_kerberos_db 0] {
+ return
+ }
+ if ![start_kerberos_daemons 0] {
+ return
+ }
+
+ # Check that ulog file does exist
+ if [file exists $tmppwd/db.ulog] {
+ pass "create update log"
+ } else {
+ fail "create update log"
+ }
+
+ # Use kadmin to add a key.
+ if ![add_kerberos_key wakawaka 0] {
+ return
+ }
+
+ # Run kproplog, look at output.
+ spawn $KPROPLOG
+ expect_after {
+ timeout {
+ fail "kproplog output"
+ break
+ }
+ eof {
+ fail "kproplog output"
+ break
+ }
+ }
+ catch {
+ expect -re "Kerberos update log"
+ expect -re "Update log dump"
+ expect -re "First serial \# : 1"
+ expect -re "Last serial \# : 2"
+ expect -re "Update Entry"
+ expect -re "Update serial \# : 1"
+ expect -re "Attributes changed : 15"
+ expect -re "Update Entry"
+ expect -re "Update serial \# : 2"
+ expect -re "Update operation : Add"
+ expect -re "Update principal : wakawaka@KRBTEST.COM"
+ expect_after {
+ timeout {
+ fail "kproplog output"
+ break
+ }
+ }
+ expect -re "Attributes changed : 15"
+ expect eof
+ } foo
+ pass "kproplog output"
+ catch expect_after
+ if [check_exit_status kproplog] {
+ pass "kproplog exit status"
+ } else {
+ fail "kproplog exit status"
+ }
+}
+
+set status [catch doit msg]
+
+stop_kerberos_daemons
+
+set ulog 0
+reset_kerberos_files
+file delete $tmppwd/adb $tmppwd/adb.ok $tmppwd/db.ulog
+
+if { $status != 0 } {
+ send_error "ERROR: error in iprop.exp\n"
+ send_error "$msg\n"
+ exit 1
+}