: say me @ swap notify ; : wiznotify online begin dup while swap over 2 + pick notify 1 - repeat pop pop ; : do_bootcon dup "Idleboot> You are being booted for idling too long." connotify "Idleboot> %n on descriptor %d is being booted for idling." over condbref name "%n" subst over intostr "%d" subst wiznotify conboot ; : do_bootuncon dup "Idleboot> Your connection is being booted for idling." connotify "Idleboot> Descriptor %d from %h is being booted for idling." over intostr "%d" subst over conhost "%h" subst wiznotify conboot ; : run connections begin dup while over condbref if over dup conidle 3 pick 5 + pick >= swap condbref wizard? not and if over do_bootcon then else over contime over 3 + pick >= if over do_bootuncon then then swap pop 1 - repeat pop 3 pick sleep run ; : main pop prog "_run" getpropstr atoi dup not if pop "Idleboot> Set check interval _run on program." say exit then prog "_lim" getpropstr atoi dup not if pop pop "Idleboot> Set connected idle limit _lim on program." say exit then prog "_ulim" getpropstr atoi dup not if pop pop pop "Idleboot> Set unconnected idle limit _ulim on program." say exit then "Idlebooter running." say run ;