# Apparantly, this is taken from the CS client.
# All rights reserved by whoever the author is.
#
alias uping {
	if ([$0]) {
	  ctcp $0 ECHO UPING $utime()
	}
}
on ^CTCP_REPLY "% ECHO*UPING *" {
	@ crud = utime()
	@ sec = word(0 $crud)
	@ usec = word(1 $crud)
	@ olds = [$3]
	@ oldus = [$4]
	if (oldus>usec) {
	  @ usec = usec + 1000000
	  @ sec = sec - 1
	}
	@ secdiff = tdiff2(${sec - olds})
	@ usecdiff = usec - oldus
	@ usecdiff = usecdiff / 1000
	if (usecdiff<10) {
	  @usecdiff = [0]##usecdiff
	}
	if (usecdiff<100) {
	  @usecdiff = [0]##usecdiff
	}
	@secdiff = strip(s $secdiff)
	if ((secdiff==[0])||([]==secdiff)) {
	  @ secdiff = [0.]
	}{
	  @ secdiff = secdiff##[.]
	}
	echo *** uPING time to $[-9]0: $secdiff$usecdiff\s
}
on ^CTCP_REPLY "% PING %" {
	@ crud = time()
	@ hozer = crud - [$2]
	@ hozer = tdiff2($hozer)
	echo *** PING time to $[-9]0: $hozer
}
