# function zfstat { # Give a zftp status report using local variables. # With option -v, connect to the remote host and ask it what it # thinks the status is. setopt localoptions unset unsetopt ksharrays local i stat=0 opt optlist verbose while [[ $1 = -* ]]; do if [[ $1 = - || $1 = -- ]]; then shift; break; fi optlist=${1#-} for (( i = 1; i <= $#optlist; i++)); do opt=$optlist[$i] case $opt in v) verbose=1 ;; *) print option $opt not recognised >&2 ;; esac done shift done if [[ -n $ZFTP_HOST ]]; then print "Host:\t\t$ZFTP_HOST" print "IP:\t\t$ZFTP_IP" [[ -n $ZFTP_SYSTEM ]] && print "System type:\t$ZFTP_SYSTEM" if [[ -n $ZFTP_USER ]]; then print "User:\t\t$ZFTP_USER " [[ -n $ZFTP_ACCOUNT ]] && print "Account:\t$AFTP_ACCOUNT" print "Directory:\t$ZFTP_PWD" print -n "Transfer type:\t" if [[ $ZFTP_TYPE = "I" ]]; then print Image elif [[ $ZFTP_TYPE = "A" ]]; then print Ascii else print Unknown fi print -n "Transfer mode:\t" if [[ $ZFTP_MODE = "S" ]]; then print Stream elif [[ $ZFTP_MODE = "B" ]]; then print Block else print Unknown fi else print "No user logged in." fi else print "Not connected." [[ -n $zflastsession ]] && print "Last session:\t$zflastsession" stat=1 fi # things which may be set even if not connected: [[ -n $ZFTP_REPLY ]] && print "Last reply:\t$ZFTP_REPLY" print "Verbosity:\t$ZFTP_VERBOSE" print "Timeout:\t$ZFTP_TMOUT" print -n "Preferences:\t" for (( i = 1; i <= ${#ZFTP_PREFS}; i++ )); do case $ZFTP_PREFS[$i] in [pP]) print -n "Passive " ;; [sS]) print -n "Sendport " ;; [dD]) print -n "Dumb " ;; *) print -n "$ZFTP_PREFS[$i]???" esac done print if [[ -n $ZFTP_HOST && $verbose = 1 ]]; then zfautocheck -d print "Status of remote server:" # make sure we print the reply local ZFTP_VERBOSE=045 zftp quote STAT fi return $stat # }