summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2018-09-25 03:54:51 -0400
committerbill-auger <mr.j.spam.me@gmail.com>2018-10-02 19:02:25 -0400
commit1f4e3fb9013b8e65db7be06df6b91995e7b56156 (patch)
tree7fb7a4637976a7c3f47179d0b60ff23dedb9a9ea
parent39525411b8da45a35e958378cb8dec316918d142 (diff)
handle numeric 328 RPL_CHANNEL_URL gracefully
-rw-r--r--lib/main.sh9
-rw-r--r--lib/numerics.sh2
2 files changed, 7 insertions, 4 deletions
diff --git a/lib/main.sh b/lib/main.sh
index 562f240..2c48c59 100644
--- a/lib/main.sh
+++ b/lib/main.sh
@@ -421,11 +421,12 @@ while true; do
continue 2
fi
done
- if [[ $line =~ ^:${server_name}\ +([0-9]{3})\ +([^ ]+)\ +(.*) ]]; then
+ if [[ $line =~ ^:(${server_name}|services\.)\ +([0-9]{3})\ +([^ ]+)\ +(.*) ]]; then
# this is a numeric
- numeric="${BASH_REMATCH[1]}"
- numericdata="${BASH_REMATCH[3]}"
- server_handle_numerics "$numeric" "${BASH_REMATCH[2]}" "$numericdata"
+ numeric="${BASH_REMATCH[2]}"
+ target="${BASH_REMATCH[3]}"
+ numericdata="${BASH_REMATCH[4]}"
+ server_handle_numerics "$numeric" "$target" "$numericdata"
for module in $modules_on_numeric; do
module_${module}_on_numeric "$numeric" "$numericdata"
if [[ $? -ne 0 ]]; then
diff --git a/lib/numerics.sh b/lib/numerics.sh
index bfe3d33..1248342 100644
--- a/lib/numerics.sh
+++ b/lib/numerics.sh
@@ -92,6 +92,7 @@ numeric_RPL_LISTSTART='321'
numeric_RPL_LIST='322'
numeric_RPL_LISTEND='323'
numeric_RPL_CHANNELMODEIS='324'
+numeric_RPL_CHANNEL_URL='328'
numeric_RPL_CREATIONTIME='329'
numeric_RPL_WHOISACCOUNT='330'
numeric_RPL_NOTOPIC='331'
@@ -247,6 +248,7 @@ numerics[321]='RPL_LISTSTART'
numerics[322]='RPL_LIST'
numerics[323]='RPL_LISTEND'
numerics[324]='RPL_CHANNELMODEIS'
+numerics[328]='RPL_CHANNEL_URL'
numerics[329]='RPL_CREATIONTIME'
numerics[330]='RPL_WHOISACCOUNT'
numerics[331]='RPL_NOTOPIC'