isync

mailbox synchronization program
git clone https://git.code.sf.net/p/isync/isync
Log | Files | Refs | README | LICENSE

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:
Mimap.c | 20++++++++++----------
Misync.h | 1+
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>