Server IP : 51.89.169.208 / Your IP : 216.73.216.211 Web Server : Apache System : Linux ns3209505.ip-198-244-202.eu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Tue Nov 5 04:50:16 EST 2024 x86_64 User : yellowleaf ( 1019) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/usr/share/zsh/5.5.1/functions/ |
Upload File : |
emulate -L zsh setopt extendedglob cbases local opt quiet all sess fd nonewline cat line local -a sessions write_fds integer mystat while getopts "acl:nqs:" opt; do case $opt in (a) all=1 ;; (c) cat=1 ;; (n) nonewline=-n ;; (q) quiet=1 ;; (l) for sess in ${(s.,.)OPTARG}; do if [[ -z ${tcp_by_name[$sess]} ]]; then print "$0: no such session: $sess" >&2 return 1 fi sessions+=($sess) done ;; (s) if [[ -z $tcp_by_name[$OPTARG] ]]; then print "No such session: $OPTARG" >&2 return 1 fi sessions+=($OPTARG) ;; (*) [[ $opt != '?' ]] && print "Unhandled option, complain: $opt" >&2 return 1 ;; esac done (( OPTIND > 1 )) && shift $(( OPTIND - 1 )) if [[ -n $all ]]; then sessions=(${(k)tcp_by_name}) elif (( ! ${#sessions} )); then sessions=($TCP_SESS) fi if (( ! $#sessions )); then if [[ -z $quiet ]]; then print "No current TCP session open." >&2 fi return 1 fi # Writing on a TCP connection closed by the remote end can cause SIGPIPE. # The following test is reasonably robust, though in principle we can # mistake a SIGPIPE owing to another fd. That doesn't seem like a big worry. # `emulate -L zsh' will already have set localtraps. local TCP_FD_CLOSED trap 'TCP_FD_CLOSED=1' PIPE local TCP_SESS while true; do if [[ -n $cat ]]; then read -r line || break else line="$*" fi for TCP_SESS in $sessions; do fd=${tcp_by_name[$TCP_SESS]} if [[ -z $fd ]]; then print "No such session: $TCP_SESS" >&2 mystat=1 continue fi print -u $fd $nonewline -r -- $line if [[ $? -ne 0 || -n $TCP_FD_CLOSED ]]; then print "Session ${TCP_SESS}: fd $fd unusable." >&2 unset TCP_FD_CLOSED mystat=1 continue fi if [[ -n $TCP_OUTPUT ]]; then tcp_output -P "$TCP_OUTPUT" -S $TCP_SESS -F $fd -q "${(j. .)*}" fi done [[ -z $cat ]] && break done return $mystat