diff options
| author | Charles.Forsyth <devnull@localhost> | 2006-12-22 20:52:35 +0000 |
|---|---|---|
| committer | Charles.Forsyth <devnull@localhost> | 2006-12-22 20:52:35 +0000 |
| commit | 46439007cf417cbd9ac8049bb4122c890097a0fa (patch) | |
| tree | 6fdb25e5f3a2b6d5657eb23b35774b631d4d97e4 /dis/grid/spreesrv | |
| parent | 37da2899f40661e3e9631e497da8dc59b971cbd0 (diff) | |
20060303-partial
Diffstat (limited to 'dis/grid/spreesrv')
| -rwxr-xr-x | dis/grid/spreesrv | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/dis/grid/spreesrv b/dis/grid/spreesrv new file mode 100755 index 00000000..f90cdbd2 --- /dev/null +++ b/dis/grid/spreesrv @@ -0,0 +1,67 @@ +#!/dis/sh + + +load std +autoload=std +pctl forkns newpgrp +echo -n 62.254.170.99 > /dev/sysname + +# from /dis/svc/auth (except -n option) +fn auth { + or {ftest -e /net/dns} {ftest -e /env/emuhost} {ndb/dns} + or {ftest -e /net/cs} {ndb/cs} + # svc/registry # unclear if we should + or {ftest -f /keydb/signerkey} {echo 'auth: need to use createsignerkey(8)' >[1=2]; exit nosignerkey} + or {ftest -f /keydb/keys} {echo 'auth: need to create /keydb/keys' >[1=2]; exit nokeys} + nopt := () + if{ftest -r /tmp/gamepasswd} { + nopt=-n /tmp/gamepasswd + } + and {auth/keyfs $nopt} { + listen -v -t -A 'tcp!*!inflogin' {auth/logind&} + listen -v -t -A 'tcp!*!infkey' {auth/keysrv&} + listen -v -t -A 'tcp!*!infsigner' {auth/signer&} + listen -v -t -A 'tcp!*!infcsigner' {auth/countersigner&} + } +} + +fn ck { + or {$*} { + echo signer startup failed >[1=2] + rm -f /mnt/registry/tcp!doppio!inflogin + kill -g ${pid} + raise error + } +} + +fn register { + { + or {echo $*} { + echo spreesrv: register $* failed >[1=2] + } + sleep 2000000 + } $* > /mnt/registry/new & +} +sysname="{cat /dev/sysname} + +ck ndb/cs +ck mount -A 'tcp!$registry!registry' /mnt/registry + +@ { + pctl forkns + ck listen -f /usr/i4e/keyring/spree tcp!$sysname!1234 { + if {~ $user spree} { + export /lib/spreearchive & + } + } +} + +# start auth services and announce them in the registry. +ck bind /keydb/gamesignerkey /keydb/signerkey +ck bind /keydb/gamekeys /keydb/keys +ck auth +pk=`{getpk /keydb/signerkey} +ck register tcp!$sysname!inflogin resource login pk $pk +ck register tcp!$sysname!infkey resource infkey pk $pk + +ck grid/register -a resource createuser -a signer $pk { grid/usercreatesrv } |
