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),
EMPTY_READCB = function(n) {},
RE_INTEGER = /^\d+$/,
RE_PRECEDING = /^(?:\*|A\d+|\+) /,
RE_PRECEDING = /^(?:(?:\*|A\d+) )|\+ ?/,
RE_BODYLITERAL = /BODY\[(.*)\] \{(\d+)\}$/i,
RE_SEQNO = /^\* (\d+)/,
RE_LISTCONTENT = /^\((.*)\)$/,
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_TAGGED = /^A(\d+) (OK|NO|BAD) (?:\[([^\]]+)\] )?(.+)$/i,
RE_CONTINUE = /^\+ (?:\[([^\]]+)\] )?(.+)$/i,
RE_CONTINUE = /^\+(?: (?:\[([^\]]+)\] )?(.+))?$/i,
RE_CRLF = /\r\n/g,
RE_HDR = /^([^:]+):[ \t]?(.+)?$/,
RE_ENCWORD = /=\?([^?]*?)\?([qb])\?(.*?)\?=/gi,

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

Loading…
Cancel
Save