Parser: relax continuation response checking for broken IMAP server implementations

fork
mscdex 11 years ago
parent b89b557000
commit 8c68fcc23d

@ -10,14 +10,14 @@ var CH_LF = 10,
LITPLACEHOLDER = String.fromCharCode(0), LITPLACEHOLDER = String.fromCharCode(0),
EMPTY_READCB = function(n) {}, EMPTY_READCB = function(n) {},
RE_INTEGER = /^\d+$/, RE_INTEGER = /^\d+$/,
RE_PRECEDING = /^(?:\*|A\d+|\+) /, RE_PRECEDING = /^(?:(?:\*|A\d+) )|\+ ?/,
RE_BODYLITERAL = /BODY\[(.*)\] \{(\d+)\}$/i, RE_BODYLITERAL = /BODY\[(.*)\] \{(\d+)\}$/i,
RE_SEQNO = /^\* (\d+)/, RE_SEQNO = /^\* (\d+)/,
RE_LISTCONTENT = /^\((.*)\)$/, RE_LISTCONTENT = /^\((.*)\)$/,
RE_LITERAL = /\{(\d+)\}$/, RE_LITERAL = /\{(\d+)\}$/,
RE_UNTAGGED = /^\* (?:(OK|NO|BAD|BYE|FLAGS|LIST|LSUB|SEARCH|STATUS|CAPABILITY|NAMESPACE|PREAUTH|SORT|THREAD|ESEARCH|QUOTA|QUOTAROOT)|(\d+) (EXPUNGE|FETCH|RECENT|EXISTS))(?: (?:\[([^\]]+)\] )?(.+))?$/i, RE_UNTAGGED = /^\* (?:(OK|NO|BAD|BYE|FLAGS|LIST|LSUB|SEARCH|STATUS|CAPABILITY|NAMESPACE|PREAUTH|SORT|THREAD|ESEARCH|QUOTA|QUOTAROOT)|(\d+) (EXPUNGE|FETCH|RECENT|EXISTS))(?: (?:\[([^\]]+)\] )?(.+))?$/i,
RE_TAGGED = /^A(\d+) (OK|NO|BAD) (?:\[([^\]]+)\] )?(.+)$/i, RE_TAGGED = /^A(\d+) (OK|NO|BAD) (?:\[([^\]]+)\] )?(.+)$/i,
RE_CONTINUE = /^\+ (?:\[([^\]]+)\] )?(.+)$/i, RE_CONTINUE = /^\+(?: (?:\[([^\]]+)\] )?(.+))?$/i,
RE_CRLF = /\r\n/g, RE_CRLF = /\r\n/g,
RE_HDR = /^([^:]+):[ \t]?(.+)?$/, RE_HDR = /^([^:]+):[ \t]?(.+)?$/,
RE_ENCWORD = /=\?([^?]*?)\?([qb])\?(.*?)\?=/gi, RE_ENCWORD = /=\?([^?]*?)\?([qb])\?(.*?)\?=/gi,

@ -34,6 +34,13 @@ var CR = '\r', LF = '\n', CRLF = CR + LF;
], ],
what: 'Continuation with text code' what: 'Continuation with text code'
}, },
{ source: ['+', CRLF],
expected: [ { textCode: undefined,
text: undefined
}
],
what: 'Continuation (broken -- RFC violation) sent by AOL IMAP'
},
{ source: ['* NAMESPACE ', { source: ['* NAMESPACE ',
'(("" "/")) ', '(("" "/")) ',
'(("~" "/")) ', '(("~" "/")) ',

Loading…
Cancel
Save