]> granicus.if.org Git - curl/commitdiff
imap: Don't check for continuation when executing a CUSTOMREQUEST
authorJustin Ehlert <ehlertjd@gmail.com>
Tue, 13 Oct 2015 13:55:05 +0000 (08:55 -0500)
committerSteve Holme <steve_holme@hotmail.com>
Sun, 8 Nov 2015 12:12:33 +0000 (12:12 +0000)
Bug: https://github.com/bagder/curl/issues/486
Closes https://github.com/bagder/curl/pull/487

lib/imap.c
tests/data/Makefile.inc
tests/data/test841 [new file with mode: 0644]

index 1157d8fc14ff940bbc0eb8c2d413aecc33e81c7e..b0809e3208b15e73f3900d5842c41187c3350419 100644 (file)
@@ -360,8 +360,8 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len,
      a space and optionally some text as per RFC-3501 for the AUTHENTICATE and
      APPEND commands and as outlined in Section 4. Examples of RFC-4959 but
      some e-mail servers ignore this and only send a single + instead. */
-  if((len == 3 && !memcmp("+", line, 1)) ||
-     (len >= 2 && !memcmp("+ ", line, 2))) {
+  if(!imap->custom && ((len == 3 && !memcmp("+", line, 1)) ||
+     (len >= 2 && !memcmp("+ ", line, 2)))) {
     switch(imapc->state) {
       /* States which are interested in continuation responses */
       case IMAP_AUTHENTICATE:
index 3cf8c3e22632afdbca99a1cc5e5adf13f157c5c7..3cc4d8de3489f342d1d92e66312470b2df1b48a9 100644 (file)
@@ -86,7 +86,7 @@ test800 test801 test802 test803 test804 test805 test806 test807 test808 \
 test809 test810 test811 test812 test813 test814 test815 test816 test817 \
 test818 test819 test820 test821 test822 test823 test824 test825 test826 \
 test827 test828 test829 test830 test831 test832 test833 test834 test835 \
-test836 test837 test838 test839 test840 \
+test836 test837 test838 test839 test840 test841 \
 \
 test850 test851 test852 test853 test854 test855 test856 test857 test858 \
 test859 test860 test861 test862 test863 test864 test865 test866 test867 \
diff --git a/tests/data/test841 b/tests/data/test841
new file mode 100644 (file)
index 0000000..839bfe3
--- /dev/null
@@ -0,0 +1,51 @@
+<testcase>
+<info>
+<keywords>
+IMAP
+Clear Text
+FETCH
+CUSTOMREQUEST
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+body\r
+\r
++ Curl did not used to like this line\r
+--\r
+  yours sincerely\r
+</data>
+<datacheck>
+* 123 FETCH (BODY[1] {70}\r
+</datacheck>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+imap
+</server>
+ <name>
+IMAP custom request doesn't check continuation data
+ </name>
+ <command>
+ imap://%HOSTIP:%IMAPPORT/841/ -u user:secret -X 'FETCH 123 BODY[1]'
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+A001 CAPABILITY\r
+A002 LOGIN user secret\r
+A003 SELECT 841\r
+A004 FETCH 123 BODY[1]\r
+A005 LOGOUT\r
+</protocol>
+</verify>
+</testcase>