commit 77358f170674c68bef1e0da1b699694bec8330df
parent 91d2f60584ff0eaa1920dfb795ad5d2250c3b063
Author: Michael Elkins <me@mutt.org>
Date: Fri, 26 Jan 2001 20:21:27 +0000
include <sys/types.h> for off_t
patch from "lorenzo martignoni" <lorenzo.martignoni@technologist.com>
- fixed uploading of message to IMAP server
Diffstat:
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/imap.c b/imap.c
@@ -968,11 +968,8 @@ imap_append_message (imap_t * imap, int fd, message_t * msg)
sizeof (flagstr) - strlen (flagstr), ") ");
}
- send_server (imap->sock, "APPEND %s%s %s{%d}\r\n",
+ send_server (imap->sock, "APPEND %s%s %s{%d}",
imap->prefix, imap->box->box, flagstr, msg->size + lines);
- socket_write (imap->sock, buf, strlen (buf));
- if (Verbose)
- fputs (buf, stdout);
if (buffer_gets (imap->buf, &s))
return -1;
@@ -980,7 +977,10 @@ imap_append_message (imap_t * imap, int fd, message_t * msg)
puts (s);
if (*s != '+')
+ {
+ puts ("Error, expected `+' from server (aborting)");
return -1;
+ }
/* rewind */
lseek (fd, 0, 0);
@@ -1002,12 +1002,12 @@ imap_append_message (imap_t * imap, int fd, message_t * msg)
end++;
if (start != end)
socket_write (imap->sock, buf + start, end - start);
-/* if (Verbose)
- {
- buf[end] = 0;
- puts (buf + start);
- } */
- socket_write (imap->sock, "\r\n", 2);
+ /* only send a crlf if we actually hit the end of a line. we
+ * might be in the middle of a line in which case we don't
+ * send one.
+ */
+ if (end != len)
+ socket_write (imap->sock, "\r\n", 2);
start = end + 1;
}
sofar += len;
diff --git a/isync.h b/isync.h
@@ -18,6 +18,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include <sys/types.h>
#include <stdarg.h>
#if HAVE_LIBSSL
#include <openssl/ssl.h>