IRCv3: Negotiate the message-tags capability and make sure our regex matches the BNF

Review Request #2217 — Created Jan. 28, 2023 and submitted

Information

pidgin/pidgin
default

Reviewers

Previously we were missing the client only prefix and we were allowing .'s and -'s
in the vendor field. I've updated the regex to support this and split the key
into all of it's parts; the key, client only prefix, vendor, and key_name. Right
now we only use the full key, but we may need to change the way we represent
tags in memory to accomidate all of these fields.

This also means we are telling the server we support the TAGMSG command which
we do not yet implement, but that should be fine for now.

Ran the unit tests
Connected to a local ergo instance and verified the capability was ack'd.
Connected to libera and discovered they don't currently support message tags.

Summary ID
IRCv3: Negotiate the message-tags capability and make sure our regex matches the BNF
Previously we were missing the client only prefix and we're allowing .'s and -'s in the vendor field. I've updated the regex to support this and split the key into all of it's parts; the key, client only prefix, vendor, and key_name. Right now we only use the full key, but we may need to change the way we represent tags in memory to accomidate all of these fields. This also means we are telling the server we support the TAGMSG command which we do not yet implemnt, but that should be fine for now.
ccc967f91c1897e1698523872aa28f398c12123d
grim
grim
ivanhoe
  1. Ship It!
  2. 
      
grim
grim
grim
Review request changed
Status:
Completed