From 524761fccbda19e54e7cd57e0aa3d0e0f0b05ed8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Wilfried=20G=C3=B6esgens?= Date: Sat, 13 Oct 2007 15:56:27 +0000 Subject: [PATCH] * don't call the context getter to frequent. --- citadel/modules/imap/imap_misc.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/citadel/modules/imap/imap_misc.c b/citadel/modules/imap/imap_misc.c index b8e50c2aa..671c6ce5f 100644 --- a/citadel/modules/imap/imap_misc.c +++ b/citadel/modules/imap/imap_misc.c @@ -351,6 +351,7 @@ void imap_append(int num_parms, char *parms[]) { int msgs, new; int i; char new_message_flags[SIZ]; + struct citimap *Imap; if (num_parms < 4) { cprintf("%s BAD usage error\r\n", parms[0]); @@ -385,20 +386,21 @@ void imap_append(int num_parms, char *parms[]) { return; } + Imap = IMAP; imap_free_transmitted_message(); /* just in case. */ - IMAP->transmitted_message = malloc(literal_length + 1); - if (IMAP->transmitted_message == NULL) { + Imap->transmitted_message = malloc(literal_length + 1); + if (Imap->transmitted_message == NULL) { cprintf("%s NO Cannot allocate memory.\r\n", parms[0]); return; } - IMAP->transmitted_length = literal_length; + Imap->transmitted_length = literal_length; cprintf("+ Transmit message now.\r\n"); bytes_transferred = 0; - ret = client_read(IMAP->transmitted_message, literal_length); - IMAP->transmitted_message[literal_length] = 0; + ret = client_read(Imap->transmitted_message, literal_length); + Imap->transmitted_message[literal_length] = 0; if (ret != 1) { cprintf("%s NO Read failed.\r\n", parms[0]); @@ -415,18 +417,18 @@ void imap_append(int num_parms, char *parms[]) { lprintf(CTDL_DEBUG, "Converting CRLF to LF\n"); stripped_length = 0; for (i=0; itransmitted_message[i], "\r\n", 2)) { - IMAP->transmitted_message[stripped_length++] = - IMAP->transmitted_message[i]; + if (strncmp(&Imap->transmitted_message[i], "\r\n", 2)) { + Imap->transmitted_message[stripped_length++] = + Imap->transmitted_message[i]; } } literal_length = stripped_length; - IMAP->transmitted_message[literal_length] = 0; /* reterminate it */ + Imap->transmitted_message[literal_length] = 0; /* reterminate it */ lprintf(CTDL_DEBUG, "Converting message format\n"); - msg = convert_internet_message(IMAP->transmitted_message); - IMAP->transmitted_message = NULL; - IMAP->transmitted_length = 0; + msg = convert_internet_message(Imap->transmitted_message); + Imap->transmitted_message = NULL; + Imap->transmitted_length = 0; ret = imap_grabroom(roomname, parms[2], 0); if (ret != 0) { @@ -439,7 +441,7 @@ void imap_append(int num_parms, char *parms[]) { * usergoto() formally takes us to the desired room. (If another * folder is selected, save its name so we can return there!!!!!) */ - if (IMAP->selected) { + if (Imap->selected) { strcpy(savedroom, CC->room.QRname); } usergoto(roomname, 0, 0, &msgs, &new); @@ -493,7 +495,7 @@ void imap_append(int num_parms, char *parms[]) { * If another folder is selected, go back to that room so we can resume * our happy day without violent explosions. */ - if (IMAP->selected) { + if (Imap->selected) { usergoto(savedroom, 0, 0, &msgs, &new); } -- 2.30.2