Skip to content

Commit 1891124

Browse files
committed
⚡️ Explicitly match RFC5530 and RFC9051 resp codes
None of these response codes have any code data, so it isn't really necessary to add explicit support. This could have a (very small) performance impact, by short-circuiting any further code data parsing for matching codes.
1 parent 6a840b5 commit 1891124

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

lib/net/imap/response_parser.rb

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1487,6 +1487,35 @@ def resp_text
14871487
# capability-data = "CAPABILITY" *(SP capability) SP "IMAP4rev1"
14881488
# *(SP capability)
14891489
#
1490+
# RFC5530:
1491+
# resp-text-code =/ "UNAVAILABLE" / "AUTHENTICATIONFAILED" /
1492+
# "AUTHORIZATIONFAILED" / "EXPIRED" /
1493+
# "PRIVACYREQUIRED" / "CONTACTADMIN" / "NOPERM" /
1494+
# "INUSE" / "EXPUNGEISSUED" / "CORRUPTION" /
1495+
# "SERVERBUG" / "CLIENTBUG" / "CANNOT" /
1496+
# "LIMIT" / "OVERQUOTA" / "ALREADYEXISTS" /
1497+
# "NONEXISTENT"
1498+
# RFC9051:
1499+
# resp-text-code = "ALERT" /
1500+
# "BADCHARSET" [SP "(" charset *(SP charset) ")" ] /
1501+
# capability-data / "PARSE" /
1502+
# "PERMANENTFLAGS" SP "(" [flag-perm *(SP flag-perm)] ")" /
1503+
# "READ-ONLY" / "READ-WRITE" / "TRYCREATE" /
1504+
# "UIDNEXT" SP nz-number / "UIDVALIDITY" SP nz-number /
1505+
# resp-code-apnd / resp-code-copy / "UIDNOTSTICKY" /
1506+
# "UNAVAILABLE" / "AUTHENTICATIONFAILED" /
1507+
# "AUTHORIZATIONFAILED" / "EXPIRED" /
1508+
# "PRIVACYREQUIRED" / "CONTACTADMIN" / "NOPERM" /
1509+
# "INUSE" / "EXPUNGEISSUED" / "CORRUPTION" /
1510+
# "SERVERBUG" / "CLIENTBUG" / "CANNOT" /
1511+
# "LIMIT" / "OVERQUOTA" / "ALREADYEXISTS" /
1512+
# "NONEXISTENT" / "NOTSAVED" / "HASCHILDREN" /
1513+
# "CLOSED" /
1514+
# "UNKNOWN-CTE" /
1515+
# atom [SP 1*<any TEXT-CHAR except "]">]
1516+
# capability-data = "CAPABILITY" *(SP capability) SP "IMAP4rev2"
1517+
# *(SP capability)
1518+
#
14901519
# RFC4315 (UIDPLUS), RFC9051 (IMAP4rev2):
14911520
# resp-code-apnd = "APPENDUID" SP nz-number SP append-uid
14921521
# resp-code-copy = "COPYUID" SP nz-number SP uid-set SP uid-set
@@ -1508,7 +1537,12 @@ def resp_text_code
15081537
when "APPENDUID" then SP!; resp_code_apnd__data # rev2, UIDPLUS
15091538
when "COPYUID" then SP!; resp_code_copy__data # rev2, UIDPLUS
15101539
when "BADCHARSET" then SP? ? charset__list : []
1511-
when "ALERT", "PARSE", "READ-ONLY", "READ-WRITE", "TRYCREATE"
1540+
when "ALERT", "PARSE", "READ-ONLY", "READ-WRITE", "TRYCREATE",
1541+
"UNAVAILABLE", "AUTHENTICATIONFAILED", "AUTHORIZATIONFAILED",
1542+
"EXPIRED", "PRIVACYREQUIRED", "CONTACTADMIN", "NOPERM", "INUSE",
1543+
"EXPUNGEISSUED", "CORRUPTION", "SERVERBUG", "CLIENTBUG", "CANNOT",
1544+
"LIMIT", "OVERQUOTA", "ALREADYEXISTS", "NONEXISTENT", "CLOSED",
1545+
"NOTSAVED", "UIDNOTSTICKY", "UNKNOWN-CTE", "HASCHILDREN"
15121546
when "NOMODSEQ" # CONDSTORE
15131547
else
15141548
SP? and text_chars_except_rbra

0 commit comments

Comments
 (0)