#!/bin/sh # $Id$ # # This is a fake wallet backend that returns bogus data for verification by # the client test suite. It doesn't test any of the wallet server code. # # Written by Russ Allbery # Copyright 2007, 2008 Board of Trustees, Leland Stanford Jr. University # See LICENSE for licensing terms. command="$1" shift type="$1" shift if [ "$type" != "keytab" ] && [ "$type" != "file" ] ; then echo "Unknown object type $type" >&2 exit 1 fi case "$command" in getattr) if [ -n "$3" ] ; then echo "Too many arguments" >&2 exit 1 fi if [ "$type" != "keytab" ] || [ "$2" != sync ] ; then echo "Unknown attribute $2" >&2 exit 1 fi case "$1" in service/fake-srvtab) if [ -f sync-kaserver ] ; then echo "kaserver" fi ;; *) echo "Looking at sync attribute of wrong keytab" >&2 exit 1 ;; esac ;; setattr) if [ -n "$4" ] ; then echo "Too many arguments" >&2 exit 1 fi if [ "$type" != "keytab" ] || [ "$2" != sync ] ; then echo "Unknown attribute $2" >&2 exit 1 fi case "$1" in service/fake-srvtab) if [ "$3" = "kaserver" ] ; then touch sync-kaserver else if [ "$3" = "" ] ; then rm sync-kaserver else echo "Invalid attribute value $3" >&2 exit 1 fi fi ;; *) echo "Looking at sync attribute of wrong keytab" >&2 exit 1 ;; esac ;; check) if [ -n "$2" ] ; then echo "Too many arguments" >&2 exit 1 fi case "${type}:${1}" in file:fake-test) if [ -f autocreated ] ; then echo 'yes' else echo 'no' fi ;; *) echo 'yes' ;; esac exit 0 ;; autocreate) if [ -n "$2" ] ; then echo "Too many arguments" >&2 exit 1 fi case "${type}:${1}" in file:fake-test) touch autocreated exit 0 ;; *) echo "Autocreate called for existing object" >&2 exit 1 ;; esac ;; get) if [ -n "$2" ] ; then echo "Too many arguments" >&2 exit 1 fi case "${type}:${1}" in file:fake-test) cat data/fake-data exit 0 ;; keytab:service/fake-srvtab) cat data/fake-keytab exit 0 ;; keytab:service/fake-keytab) cat data/fake-keytab-2 exit 0 ;; keytab:service/fake-output) printf 'This is a fake keytab.' exit 0 ;; *) echo "Unknown $type $1" >&2 exit 1 ;; esac ;; store) if [ -n "$3" ] ; then echo "Too many arguments" >&2 exit 1 fi printf "$type $1\n$2" > store-output ;; show) if [ -n "$2" ] ; then echo "Too many arguments" >&2 exit 1 fi if [ "$type" = "file" ] && [ "$1" = "fake-test" ] ; then echo "Some stuff about $type $1" exit 0 else echo "Unknown $type $1" >&2 exit 1 fi ;; expires) if [ -n "$2" ] ; then echo "Too many arguments" >&2 exit 1 fi echo "Expiration date of $type $1" exit 0 ;; *) echo "Unknown command $command" >&2 exit 1 ;; esac