68 Commits (fork)

Author SHA1 Message Date
Sven Slootweg 3357108b52 WIP 3 years ago
Sven Slootweg 7344b45be0 WIP 3 years ago
Matthias Biggeleben 941b071f80
Parser: fix IDLE parsing
Dovecot might answer DONE with some statistics:

  IDLE OK Idle completed (0.001 + 0.093 + 0.092 secs).

The plus character passes RE_PRECEDING which leads to dead end
code-wise.
8 years ago
Suraj Sharma c2a859727d Parser: handle tagged responses without response code and/or other text 8 years ago
Craig Paterson 3051724f85 lib: add support for retrieving special-use mailboxes 8 years ago
Eric Pinzur b607d5fa7d Parser: fixed exception when parsing invalid bodystructure 9 years ago
Chotiwat Chawannakul 36f2290a0c Parser: ignore invalid first line that starts with a whitespace 10 years ago
Brian White 8376f212e6 Parser: ensure no socket read if push() calls _read() during body finish
This fixes an edge case where the following happens:

 * a body stream had data pushed to it such that the highWaterMark was reached
 * when the body stream buffer dips below highWaterMark, _read() is called
 * _read() tries to read more data from the socket, which pushes the last part of the body
 * the last body part push() again calls _read() which in turn reads more data from the socket
 * at this point the parser state is not stable because _body._read and _body are not reset yet, this causes the parser to potentially try to start reading the beginning of a response in the middle of the data for another fetch result for example

Fixes #345
10 years ago
Brian White 42a486d2df Parser: decode names in envelope 10 years ago
Alexander Kitaev 937336e440 esearch parser was failing on single digit items, like 'ALL 1' 10 years ago
Brian White 05dd60ebb6 Parser: improve quoted string escaping 10 years ago
Brian White c705211ee4 Parser: add workaround for node v0.10.29 regression
Signed-off-by: Brian White <mscdex@mscdex.net>
10 years ago
Brian White cb74e957bd Parser: fix style 10 years ago
Chotiwat Chawannakul 4d3da4ab0f Parser: fix base64 decoding of multi-byte character 10 years ago
Chotiwat Chawannakul c159c112b1 Parser: join only consecutive q-encoded words 10 years ago
Chotiwat Chawannakul b630ed05ce Parser: fix premature decoding of encoded words ending with an incomplete multi-byte character 10 years ago
Brian White 7a843a7c29 Merge pull request #352 from ericz/master
Fix imap.openBox not returning with highestmodseq`
10 years ago
Brian White 2e7196e477 Merge pull request #351 from wavify/mime-decode-lws
Parser: ignore linear whitespace between consecutive mime-encoded words in header
10 years ago
Eric Zhang 0dcffb816b Fix RE_UNTAGGED regex not picking up highestmodseq 10 years ago
Brian White 26aede8408 style change and lint 10 years ago
Brian White 6cdb81bd29 Parser: support optional language in mime encoded words (RFC2231) 10 years ago
Chotiwat Chawannakul 8249a257c7 Parser: ignore linear whitespace between consecutive mime-encoded words in header 10 years ago
Brian White 94bd04544c Parser: check regexp success before trying to use captures 10 years ago
Brian White 0a7a5e80ff Parser: properly handle escaped double quotes and backslashes in quoted strings 11 years ago
Brian White 609cde6ee1 Parser: don't add quoted body to attributes after we streamed it 11 years ago
Brian White 051a115444 Merge pull request #330 from juhovh/master
Remove useless _tryreads because they cause problems.
11 years ago
Brian White 89aef1b73d Parser: check stream readable before read() 11 years ago
Juho Vähä-Herttua 130f1bea74 Remove useless _tryreads because they cause problems.
These cases are already handled in _parse function.
11 years ago
Brian White d4e7eb6257 Parser: check for non-literal bodies in FETCH 11 years ago
Dominik Gehl 36a1280abd decode envelope subject 11 years ago
Brian White 32445a188b lint 11 years ago
Brian White 11b37fcd8f Merge pull request #283 from wavify/tagged-ok
Pass tagged OK text code as the last argument of the callback (for APPENDUID, COPYUID, etc.)
11 years ago
Dominik Gehl 4ff1b82b9f ID support improvements 11 years ago
Dominik Gehl b697dfe66d support for IMAP ID extension (RFC 2971) 11 years ago
Kevin Locke b73f325327 Reattach 'readable' event listener when changing streams
Parser was not unregistering the 'readable' event listener from the old
socket, nor registering it to the new socket when setSocket() was
called.  This caused event handling to stop during the STARTTLS handoff.

Signed-off-by: Kevin Locke <klocke@quantpost.com>
11 years ago
Brian White a3a1d158c5 Parser: attempt workaround for broken mime encoded words
Some MUAs appear to break multi-byte characters across encoded word boundaries, which goes against RFC2047.

This change attempts to work around this by trying to concatenate broken encoded words that are separated by linear white space.
11 years ago
Brian White 510aa0b7b9 Parser: remove Readable proxied event for node 0.8
readable-stream proxies some events in wrap(). Since the Parser doesn't care about any events other than 'readable', we remove the troublesome proxied 'error' event.

Fixes #285
11 years ago
Chotiwat Chawannakul 0f09bfdea6 Pass tagged OK text code as the last argument of the callback (for APPENDUID, COPYUID, etc.) 11 years ago
Alex Indigo 16dfe6a894 #276 Made parseHeader parse only header and ignore message's body + test. 11 years ago
mscdex 4729de2dab Parser: fix header parsing so that folded whitespace between adjacent MIME encoded-words is ignored 11 years ago
mscdex 8c68fcc23d Parser: relax continuation response checking for broken IMAP server implementations 11 years ago
mscdex 7dd577a133 restore npm dependency on iconv-lite 11 years ago
mscdex 671c5b3e0d deps: add iconv-lite fork (for now) 11 years ago
mscdex 2d7012a835 Parser: use (slower?) pure-JS fallback for encodings that iconv-lite does not support 11 years ago
mscdex 30d0b12953 lint 11 years ago
mscdex 201818dda1 Parser: fix typo 11 years ago
mscdex 88359f9f43 First go at CONDSTORE support 11 years ago
mscdex 517367ef19 Parser: check for unexpected readable-stream module behavior for node v0.8 11 years ago
mscdex 99e054b69c Parser: fix spacing 11 years ago
Roger Garner 2867d2ac96 Ending IDLE not being detected
As the buffer was wiped before emitting the 'other' event, the
parser.on('other') event handler has no buffer data passed to it thus
can't detect the end of the IDLE and never calls the
self._processQueue() to get the stuff waiting in the queue to move.
11 years ago