setctx quantum

bind raw - 364 linkping
bind raw - 365 linkpingdone

proc ping6 { host } {
	catch { exec ping6 -c2 -i0.4 -q $host } r
	set p [split [lindex [split $r "\n"] 4] /]
	foreach rl [split $r \n] {
		putmainlog "Ping $host: $rl"
	}
	if {[lindex $p 1] == "avg"} {
		return "[lindex $p 4]ms"
	} else {
		return "no"
	}
}

proc linkping {f k a} {
	global linkping
	set s [lindex $a 1]
	if {[string match *services* $s] == 0 && [string match *webchat* $s] == 0 && [string match *hub* $s] == 0} {
		lappend linkping $s
	}
}

proc linkpingdone {args} {
	global linkping
	putserv "privmsg #kh :Server [lindex $linkping 0] has [ping6 [lindex $linkping 0]] ping"
	set linkping [lreplace $linkping 0 0]
	if {[llength $linkping] > 0} {
		utimer 1 {linkpingdone}
	}
}

proc links {} {
	global linkping
	catch {unset linkping}
	putserv "links"
}
