39 |
# These are aliases for the queues, because we use integers to specify queues internally. |
# These are aliases for the queues, because we use integers to specify queues internally. |
40 |
variable QueueAliases |
variable QueueAliases |
41 |
array set QueueAliases [list quick 10 q 10 mode 15 m 15 server 50 serv 50 s 50 help 75 h 75] |
array set QueueAliases [list quick 10 q 10 mode 15 m 15 server 50 serv 50 s 50 help 75 h 75] |
42 |
|
variable TimerID |
43 |
|
set TimerID 0 |
44 |
# Export all the commands that should be available to 3rd-party scripters: |
# Export all the commands that should be available to 3rd-party scripters: |
45 |
namespace export isbotnick jump putserv puthelp putquick queuesize clearqueue putqueue putnow server quit |
namespace export isbotnick jump putserv puthelp putquick queuesize clearqueue putqueue putnow server quit |
46 |
# Default server related settings (These are here in case the user doesn't provide them in his config): |
# Default server related settings (These are here in case the user doesn't provide them in his config): |
125 |
set port ${default-port} |
set port ${default-port} |
126 |
} |
} |
127 |
} |
} |
|
set fail 1 |
|
128 |
callevent connect-server |
callevent connect-server |
129 |
|
variable TimerID |
130 |
|
catch { killutimer $TimerID } |
131 |
set fail [catch { connect $serv $port -timeout ${server-timeout} -myaddr ${my-ip} -control ::tcldrop::server::Read -errors ::tcldrop::server::ConnectErrors -writable ::tcldrop::server::Write } idx] |
set fail [catch { connect $serv $port -timeout ${server-timeout} -myaddr ${my-ip} -control ::tcldrop::server::Read -errors ::tcldrop::server::ConnectErrors -writable ::tcldrop::server::Write } idx] |
132 |
if {!$fail} { |
if {!$fail} { |
133 |
::tcldrop::idx::ChInfo $idx [list handle (server) remote $serv hostname $serv port $port type SERVER other serv timestamp [set timestamp [unixtime]]] |
::tcldrop::idx::ChInfo $idx [list handle (server) remote $serv hostname $serv port $port type SERVER other serv timestamp [set timestamp [unixtime]]] |
136 |
set server-online $timestamp |
set server-online $timestamp |
137 |
set server-idx $idx |
set server-idx $idx |
138 |
# The timeout here is so that we can try another server. |
# The timeout here is so that we can try another server. |
139 |
utimer [expr { ${server-timeout} + 1 }] [list ::tcldrop::server::ConnectTimeout $idx] |
set TimerID [utimer [expr { ${server-timeout} + 1 }] [list ::tcldrop::server::ConnectTimeout $idx]] |
140 |
} else { |
} else { |
141 |
utimer ${server-cycle-wait} [list ::tcldrop::server::server] |
set TimerID [utimer ${server-cycle-wait} [list ::tcldrop::server::server]] |
142 |
} |
} |
143 |
return "$serv:$port" |
return "$serv:$port" |
144 |
} |
} |