|
|
|
@ -26,8 +26,8 @@ exit 0
|
|
|
|
|
|
|
|
|
|
@DPATCH@ |
|
|
|
|
diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c |
|
|
|
|
--- /usr/projects/isync/SF-cvs/isync/src/imap.c 2004-01-14 18:31:49.000000000 -0500 |
|
|
|
|
+++ isync/src/imap.c 2004-01-14 18:39:18.000000000 -0500 |
|
|
|
|
--- /usr/projects/isync/SF-cvs/isync/src/imap.c 2004-01-15 14:24:40.000000000 -0500 |
|
|
|
|
+++ isync/src/imap.c 2004-01-15 20:36:15.000000000 -0500 |
|
|
|
|
@@ -3,6 +3,7 @@ |
|
|
|
|
* isync - IMAP4 to maildir mailbox synchronizer |
|
|
|
|
* Copyright (C) 2000-2002 Michael R. Elkins <me@mutt.org> |
|
|
|
@ -133,12 +133,20 @@ diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@@ -415,39 +458,114 @@ |
|
|
|
|
@@ -415,39 +458,121 @@ |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
-static int |
|
|
|
|
-imap_exec (imap_t * imap, const char *fmt, ...) |
|
|
|
|
+static void print_imap_command(const char *cmd, FILE *f) |
|
|
|
|
+{ |
|
|
|
|
+ if (strncmp(cmd, "LOGIN", 5)) |
|
|
|
|
+ fputs(cmd, f); |
|
|
|
|
+ else |
|
|
|
|
+ fputs("LOGIN USERNAME PASSWORD", f); |
|
|
|
|
+} |
|
|
|
|
+ |
|
|
|
|
+static struct imap_cmd *issue_imap_cmd(imap_t *imap, |
|
|
|
|
+ const char *fmt, ...) |
|
|
|
|
{ |
|
|
|
@ -177,10 +185,9 @@ diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c
|
|
|
|
|
- printf (">>> %s", buf); |
|
|
|
|
+ if (num_in_progress) |
|
|
|
|
+ printf("(%d in progress) ", num_in_progress); |
|
|
|
|
+ if (strncmp(tmp, "LOGIN", 5)) |
|
|
|
|
+ printf (">>> %s", buf); |
|
|
|
|
+ else |
|
|
|
|
+ printf (">>> LOGIN USERNAME PASSWORD\n"); |
|
|
|
|
+ printf(">>> %d ", cmd->tag); |
|
|
|
|
+ print_imap_command(tmp, stdout); |
|
|
|
|
+ fputc('\n', stdout); |
|
|
|
|
fflush (stdout); |
|
|
|
|
} |
|
|
|
|
n = socket_write (imap->sock, buf, strlen (buf)); |
|
|
|
@ -190,7 +197,7 @@ diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c
|
|
|
|
|
- return -1; |
|
|
|
|
+ free(cmd); |
|
|
|
|
+ return NULL; |
|
|
|
|
+ } |
|
|
|
|
} |
|
|
|
|
+ cmd->next = in_progress; |
|
|
|
|
+ in_progress = cmd; |
|
|
|
|
+ num_in_progress++; |
|
|
|
@ -202,7 +209,7 @@ diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c
|
|
|
|
|
+ printf("(Socket input pending)\n"); |
|
|
|
|
+ get_cmd_result(imap); |
|
|
|
|
+ } |
|
|
|
|
} |
|
|
|
|
+ } |
|
|
|
|
+ return cmd; |
|
|
|
|
+} |
|
|
|
|
+ |
|
|
|
@ -260,7 +267,7 @@ diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c
|
|
|
|
|
|
|
|
|
|
arg = next_arg (&cmd); |
|
|
|
|
if (*arg == '*') |
|
|
|
|
@@ -456,7 +574,7 @@ |
|
|
|
|
@@ -456,7 +581,7 @@ |
|
|
|
|
if (!arg) |
|
|
|
|
{ |
|
|
|
|
fprintf (stderr, "IMAP error: unable to parse untagged response\n"); |
|
|
|
@ -269,7 +276,7 @@ diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!strcmp ("NAMESPACE", arg)) |
|
|
|
|
@@ -528,23 +646,14 @@ |
|
|
|
|
@@ -528,23 +653,14 @@ |
|
|
|
|
imap->recent = atoi (arg); |
|
|
|
|
else if (!strcmp ("FETCH", arg1)) |
|
|
|
|
{ |
|
|
|
@ -296,7 +303,7 @@ diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#if HAVE_LIBSSL |
|
|
|
|
@@ -555,7 +664,7 @@ |
|
|
|
|
@@ -555,7 +671,7 @@ |
|
|
|
|
if (!imap->cram) |
|
|
|
|
{ |
|
|
|
|
fprintf (stderr, "IMAP error, not doing CRAM-MD5 authentication\n"); |
|
|
|
@ -305,7 +312,7 @@ diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c
|
|
|
|
|
} |
|
|
|
|
resp = cram (cmd, imap->box->user, imap->box->pass); |
|
|
|
|
|
|
|
|
|
@@ -568,34 +677,88 @@ |
|
|
|
|
@@ -568,34 +684,94 @@ |
|
|
|
|
if (n <= 0) |
|
|
|
|
{ |
|
|
|
|
socket_perror ("write", imap->sock, n); |
|
|
|
@ -344,8 +351,14 @@ diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c
|
|
|
|
|
+ } |
|
|
|
|
+ arg = next_arg (&cmd); |
|
|
|
|
+ if (strncmp("OK", arg, 2)) { |
|
|
|
|
+ fprintf(stderr, "tag %u returned error: %s\n", |
|
|
|
|
+ tag, arg); |
|
|
|
|
+ if (cmdp->cmd) { |
|
|
|
|
+ fputc('\'', stderr); |
|
|
|
|
+ print_imap_command(cmdp->cmd, stderr); |
|
|
|
|
+ fputc('\'', stderr); |
|
|
|
|
+ } else |
|
|
|
|
+ fprintf(stderr, "tag %u", tag); |
|
|
|
|
+ fprintf(stderr, " returned an error (%s): %s\n", |
|
|
|
|
+ arg, cmd ? cmd : ""); |
|
|
|
|
+ cmdp->response = -1; |
|
|
|
|
+ } |
|
|
|
|
+ parse_response_code (imap, cmd); |
|
|
|
@ -408,7 +421,7 @@ diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c
|
|
|
|
|
#ifdef HAVE_LIBSSL |
|
|
|
|
static int |
|
|
|
|
start_tls (imap_t *imap, config_t * cfg) |
|
|
|
|
@@ -1039,6 +1202,7 @@ |
|
|
|
|
@@ -1039,6 +1215,7 @@ |
|
|
|
|
size_t n; |
|
|
|
|
char buf[1024]; |
|
|
|
|
|
|
|
|
@ -416,7 +429,7 @@ diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c
|
|
|
|
|
send_server (imap->sock, "UID FETCH %d BODY.PEEK[]", uid); |
|
|
|
|
|
|
|
|
|
for (;;) |
|
|
|
|
@@ -1160,7 +1324,9 @@ |
|
|
|
|
@@ -1160,7 +1337,9 @@ |
|
|
|
|
(buf[0] != 0) ? " " : "", Flags[i]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -427,7 +440,7 @@ diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int |
|
|
|
|
@@ -1249,6 +1415,7 @@ |
|
|
|
|
@@ -1249,6 +1428,7 @@ |
|
|
|
|
strcat (flagstr,") "); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -435,7 +448,7 @@ diff -urNad /usr/projects/isync/SF-cvs/isync/src/imap.c isync/src/imap.c
|
|
|
|
|
send_server (imap->sock, "APPEND %s%s %s{%d}", |
|
|
|
|
imap->prefix, imap->box->box, flagstr, len + extra); |
|
|
|
|
|
|
|
|
|
@@ -1341,6 +1508,7 @@ |
|
|
|
|
@@ -1341,6 +1521,7 @@ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* didn't receive an APPENDUID */ |
|
|
|
|