From d2053887e02b1adce7fc59cbc1f87c4a2d6f16fd Mon Sep 17 00:00:00 2001 From: Danny van Heumen Date: Sat, 5 Aug 2023 15:31:44 +0200 Subject: [PATCH] fix: extend capability id symbols, properly escape regex, share patterns --- .../java/com/ircclouds/irc/api/CapabilityNegotiator.java | 5 +++++ .../ircclouds/irc/api/negotiators/CompositeNegotiator.java | 4 ---- .../com/ircclouds/irc/api/negotiators/SaslNegotiator.java | 2 -- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ircclouds/irc/api/CapabilityNegotiator.java b/src/main/java/com/ircclouds/irc/api/CapabilityNegotiator.java index 5bd438e..9c129f9 100644 --- a/src/main/java/com/ircclouds/irc/api/CapabilityNegotiator.java +++ b/src/main/java/com/ircclouds/irc/api/CapabilityNegotiator.java @@ -3,6 +3,8 @@ import com.ircclouds.irc.api.commands.*; import com.ircclouds.irc.api.listeners.*; +import java.util.regex.Pattern; + /** * IRC v3.1 capability negotiation. * @@ -14,6 +16,9 @@ */ public interface CapabilityNegotiator extends IMessageListener { + Pattern CAPABILITY_LS = Pattern.compile("\\sCAP\\s+([^\\s]+)\\s+LS\\s+:([\\w\\-_/.]+(?:\\s+[\\w\\-_/.]+)*)\\s*$", 0); + Pattern CAPABILITY_ACK = Pattern.compile("\\sCAP\\s+([^\\s]+)\\s+ACK\\s+:([\\w\\-_/.]+(?:\\s+[\\w\\-_/.]+)*)\\s*$", 0); + Pattern CAPABILITY_NAK = Pattern.compile("\\sCAP\\s+([^\\s]+)\\s+NAK"); /** * Initiate the negotiator with the provided irc instance. diff --git a/src/main/java/com/ircclouds/irc/api/negotiators/CompositeNegotiator.java b/src/main/java/com/ircclouds/irc/api/negotiators/CompositeNegotiator.java index 146af57..567be8a 100644 --- a/src/main/java/com/ircclouds/irc/api/negotiators/CompositeNegotiator.java +++ b/src/main/java/com/ircclouds/irc/api/negotiators/CompositeNegotiator.java @@ -37,10 +37,6 @@ public class CompositeNegotiator implements CapabilityNegotiator, IMessageListen */ private static final Logger LOG = LoggerFactory.getLogger(CompositeNegotiator.class); - private static final Pattern CAPABILITY_LS = Pattern.compile("\\sCAP\\s+([^\\s]+)\\s+LS\\s+:([\\w-_]+(?:\\s+[\\w-_]+)*)\\s*$", 0); - private static final Pattern CAPABILITY_ACK = Pattern.compile("\\sCAP\\s+([^\\s]+)\\s+ACK\\s+:([\\w-_]+(?:\\s+[\\w-_]+)*)\\s*$", 0); - private static final Pattern CAPABILITY_NAK = Pattern.compile("\\sCAP\\s+([^\\s]+)\\s+NAK"); - /** * List of requested capabilities. */ diff --git a/src/main/java/com/ircclouds/irc/api/negotiators/SaslNegotiator.java b/src/main/java/com/ircclouds/irc/api/negotiators/SaslNegotiator.java index 52e7590..286c7a5 100644 --- a/src/main/java/com/ircclouds/irc/api/negotiators/SaslNegotiator.java +++ b/src/main/java/com/ircclouds/irc/api/negotiators/SaslNegotiator.java @@ -26,8 +26,6 @@ public class SaslNegotiator extends VariousMessageListenerAdapter implements Cap private static final String SASL_CAPABILITY_ID = "sasl"; - private static final Pattern CAPABILITY_ACK = Pattern.compile("\\sCAP\\s+([^\\s]+)\\s+ACK\\s+:([\\w-_]+(?:\\s+[\\w-_]+)*)\\s*$", 0); - private static final Pattern CAPABILITY_NAK = Pattern.compile("\\sCAP\\s+([^\\s]+)\\s+NAK"); private static final Pattern AUTHENTICATE_CONFIRMATION = Pattern.compile("AUTHENTICATE\\s+(\\+)\\s*$", 0); // AUTHENTICATE numeric replies