Make miscellanious improvements to rowbot for SASL
This commit is contained in:
parent
fa17f37485
commit
3a13fda6fa
36
rowbot
36
rowbot
|
@ -513,7 +513,7 @@ on_sys_after_999_annoyatron900() {
|
|||
on_sys_register_999_annoyatron900() {
|
||||
while true; do
|
||||
read -rt 10 </dev/zero
|
||||
KILL -USR1 "$$"
|
||||
kill -USR1 "$$"
|
||||
done &
|
||||
|
||||
alarm_pid=$!
|
||||
|
@ -531,7 +531,7 @@ on_sys_exit_997_annoyatron900() {
|
|||
|
||||
###
|
||||
# register with the server
|
||||
/###
|
||||
###
|
||||
|
||||
# not a doomsday device™
|
||||
welcomeinator() {
|
||||
|
@ -574,13 +574,16 @@ welcomeinator() {
|
|||
fi
|
||||
;;
|
||||
delta)
|
||||
# FIXME: caps should be parsed into associative arrays
|
||||
local avail_cap cap caps=( ) req_caps=( ) found_sasl=0
|
||||
IFS=, read -ra caps <<< "${config[caps]}"
|
||||
|
||||
for cap in "${caps[@]}"; do
|
||||
cap=${cap%%=*}
|
||||
|
||||
for avail_cap in "${avail_caps[@]}"; do
|
||||
if [[ $cap = "$avail_cap" || $cap = "$avail_cap"=* ]]; then
|
||||
avail_cap=${avail_cap%%=*}
|
||||
|
||||
if [[ ${cap^^} = "${avail_cap^^}" ]]; then
|
||||
if [[ $cap = sasl ]]; then
|
||||
found_sasl=1
|
||||
fi
|
||||
|
@ -599,11 +602,12 @@ welcomeinator() {
|
|||
|
||||
if (( ${#req_caps[@]} )); then
|
||||
log_debug "requesting the following capabilities: %s" "${req_caps[*]}"
|
||||
net_send "CAP REQ :%s" "${req_caps[*]}"
|
||||
# net_send "CAP REQ :%s" "${req_caps[*]}"
|
||||
cap req "${req_caps[@]}"
|
||||
synergizing=1
|
||||
else
|
||||
log_debug "no desired capabilities are available."
|
||||
reg_state=registered
|
||||
welcome_phase=registered
|
||||
fi
|
||||
;;
|
||||
sasl)
|
||||
|
@ -611,14 +615,14 @@ welcomeinator() {
|
|||
;;
|
||||
registered)
|
||||
if [[ -v config[caps] ]]; then
|
||||
net_send "CAP END"
|
||||
cap end
|
||||
fi
|
||||
|
||||
synergizing=1
|
||||
esac
|
||||
done
|
||||
|
||||
log_trace "ending welcomeinator state is %s" "$reg_state"
|
||||
log_trace "ending welcomeinator state is %s" "$welcome_phase"
|
||||
}
|
||||
|
||||
on_sys_first_003_welcome() {
|
||||
|
@ -629,7 +633,7 @@ on_sys_first_003_welcome() {
|
|||
get_option realname rowbot
|
||||
get_option sasl-method
|
||||
|
||||
reg_state=begin
|
||||
welcome_phase=begin
|
||||
|
||||
log_debug "beginning registration process."
|
||||
welcomeinator
|
||||
|
@ -659,15 +663,15 @@ on_msg_CAP_welcome() {
|
|||
case ${msg_args[1]} in
|
||||
LS)
|
||||
read -ra avail_caps <<< "${msg_args[-1]}"
|
||||
reg_state=auth
|
||||
welcome_phase=beta
|
||||
;;
|
||||
ACK)
|
||||
# This is a a false positive.
|
||||
# shellcheck disable=SC2102
|
||||
if [[ -v config[sasl-method] ]]; then
|
||||
reg_state=sasl
|
||||
welcome_phase=sasl
|
||||
else
|
||||
reg_state=registered
|
||||
welcome_phase=registered
|
||||
fi
|
||||
esac
|
||||
|
||||
|
@ -717,6 +721,10 @@ irc_on_CAP() {
|
|||
case ${msg_args[1]^^} in
|
||||
LS)
|
||||
log_debug "available server capabilities are: %s" "${msg_args[-1]}"
|
||||
;;
|
||||
END)
|
||||
log_debug "capability negotiation is finished."
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
@ -911,6 +919,10 @@ irc_cap() {
|
|||
ls)
|
||||
net_send "CAP LS %d" "${2-302}"
|
||||
;;
|
||||
req)
|
||||
shift
|
||||
net_send "CAP REQ :%s" "$*"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue