View file File name : _sockstat Content :#compdef sockstat local -a args protocols local proto case $OSTYPE in *bsd*) args=( '-4[show AF_INET (IPv4) sockets]' '-6[show AF_INET6 (IPv6) sockets]' '-c[show connected sockets]' '-l[show listening sockets]' '*-p+[specify port number]:port numbers (comma delimited)' '-u[show AF_LOCAL (UNIX) sockets]' ) ;| freebsd<12->.*) args+=( '-S[display the protocol stack if applicable]' '-U[display the remote UDP encapsulation port number if applicable]' '-v[verbose mode]' '-w[use wider field size for displaying addresses]' ) ;| freebsd*) for proto in ${${(M)${(f)"$(</etc/protocols)"}##[a-z0-9]*}}; do case $proto in *\#*) protocols+=(${${${(j: :)${(q)=proto}}// *\# /\[}/%/\]}) ;; *) protocols+=(${${(j: :)${=proto}}// */}) esac done args+=( '*-j[show sockets belonging to JID]: : _jails -0 -o jid' '-L[exclude loopback]' '*-P+[specify protocol]: : _values -s , protocols $protocols' '-s[display protocol state if applicable]' ) ;; netbsd*) args+=( '*-f+[only show specified address family]:address family:(inet inet6 local unix)' '-n[no symbolic names for addresses/ports]' ) ;; esac if (( $#args )); then _arguments -s -w : $args return fi _default