X-Git-Url: https://git.distorted.org.uk/~mdw/ircbot/blobdiff_plain/0d3ea3aa52f4a62b4f8a64892bfbe579164eb26d..fdab59fb4c338e5279c00d66ca18231586f36d53:/irccore.tcl diff --git a/irccore.tcl b/irccore.tcl index 5d28cef..4fbf639 100644 --- a/irccore.tcl +++ b/irccore.tcl @@ -16,9 +16,7 @@ defset out_maxburst 6 defset out_interval 2100 defset out_lag_lag 5000 defset out_lag_very 25000 - -defset marktime_min 300 -defset marktime_join_startdelay 5000 +defset ownping_every 300000 proc manyset {list args} { foreach val $list var $args { @@ -165,7 +163,9 @@ proc bgerror {msg} { proc onread {args} { global sock nick calling_nick errorInfo errorCode line_org_endchar - if {[gets $sock line] == -1} { fail "EOF/error on input" } + if {[catch { gets $sock line } rv]} { fail "error on input: $rv" } + if {$rv == -1} { fail "EOF on input" } + set line_org_endchar [string range $line end end] regsub -all "\[^ -\176\240-\376\]" $line ? line set org $line @@ -212,6 +212,12 @@ proc onread {args} { } } +proc catch_logged {body} { + if {[catch { uplevel 1 $body } emsg]} { + logerror "error (catch_logged): $emsg" + } +} + proc sendprivmsg {dest l} { foreach v [split $l "\n"] { sendout [expr {[ischan $dest] ? "PRIVMSG" : "NOTICE"}] $dest $v @@ -263,11 +269,18 @@ proc msg_PING {p c s1} { sendout PONG $s1 } +proc sendownping {} { + global ownping_every nick + sendout ping $nick + after $ownping_every sendownping +} + proc msg_001 {args} { global muststartby_after if {[info exists muststartby_after]} { after cancel $muststartby_after unset muststartby_after + sendownping connected } }