From: Art Cancro Date: Thu, 17 Jul 2008 19:50:29 +0000 (+0000) Subject: Displaying incoming instant messages through an IMAP client X-Git-Tag: v7.86~2083 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=d0a6f3a795db5fb278316acf068019d71845d1fa Displaying incoming instant messages through an IMAP client was really cool, but now that we've got XMPP it's probably just causing most people to see each message twice. Removed this feature. --- diff --git a/citadel/modules/imap/imap_misc.c b/citadel/modules/imap/imap_misc.c index be350a572..3a9474ccc 100644 --- a/citadel/modules/imap/imap_misc.c +++ b/citadel/modules/imap/imap_misc.c @@ -233,77 +233,6 @@ void imap_uidcopy(int num_parms, char *parms[]) { } -/* - * Poll for instant messages (yeah, we can do this in IMAP ... I think) - */ -void imap_print_instant_messages(void) { - struct ExpressMessage *ptr, *holdptr; - char *dumpomatic = NULL; - char tmp[SIZ]; - int i; - size_t size, size2; - struct tm stamp; - - if (CC->FirstExpressMessage == NULL) { - return; - } - begin_critical_section(S_SESSION_TABLE); - ptr = CC->FirstExpressMessage; - CC->FirstExpressMessage = NULL; - end_critical_section(S_SESSION_TABLE); - - while (ptr != NULL) { - localtime_r(&(ptr->timestamp), &stamp); - size = strlen(ptr->text) + SIZ; - dumpomatic = malloc(size); - strcpy(dumpomatic, ""); - if (ptr->flags && EM_BROADCAST) - strcat(dumpomatic, "Broadcast message "); - else if (ptr->flags && EM_CHAT) - strcat(dumpomatic, "Chat request "); - else if (ptr->flags && EM_GO_AWAY) - strcat(dumpomatic, "Please logoff now, as requested "); - else - strcat(dumpomatic, "Message "); - - /* Timestamp. Can this be improved? */ - if (stamp.tm_hour == 0 || stamp.tm_hour == 12) - sprintf(tmp, "at 12:%02d%cm", - stamp.tm_min, - stamp.tm_hour ? 'p' : 'a'); - else if (stamp.tm_hour > 12) /* pm */ - sprintf(tmp, "at %d:%02dpm", - stamp.tm_hour - 12, - stamp.tm_min); - else /* am */ - sprintf(tmp, "at %d:%02dam", - stamp.tm_hour, stamp.tm_min); - strcat(dumpomatic, tmp); - - size2 = strlen(dumpomatic); - snprintf(&dumpomatic[size2], size - size2, - " from %s:\n", ptr->sender); - if (ptr->text != NULL) - strcat(dumpomatic, ptr->text); - - holdptr = ptr->next; - if (ptr->text != NULL) free(ptr->text); - free(ptr); - ptr = holdptr; - - for (i=0; dumpomatic[i]; ++i) { - if (!isprint(dumpomatic[i])) dumpomatic[i] = ' '; - if (dumpomatic[i]=='\\') dumpomatic[i]='/'; - if (dumpomatic[i]=='\"') dumpomatic[i]='\''; - } - - cprintf("* OK [ALERT] %s\r\n", dumpomatic); - free(dumpomatic); - } - cprintf("000\n"); -} - - /* * imap_do_append_flags() is called by imap_append() to set any flags that * the client specified at append time. diff --git a/citadel/modules/imap/imap_misc.h b/citadel/modules/imap/imap_misc.h index 7fec93635..34c865f9b 100644 --- a/citadel/modules/imap/imap_misc.h +++ b/citadel/modules/imap/imap_misc.h @@ -5,5 +5,4 @@ void imap_copy(int num_parms, char *parms[]); void imap_uidcopy(int num_parms, char *parms[]); -void imap_print_instant_messages(void); void imap_append(int num_parms, char *parms[]); diff --git a/citadel/modules/imap/serv_imap.c b/citadel/modules/imap/serv_imap.c index 5c2e15899..f09af1254 100644 --- a/citadel/modules/imap/serv_imap.c +++ b/citadel/modules/imap/serv_imap.c @@ -1424,13 +1424,14 @@ void imap_command_loop(void) } if (untagged_ok) { - imap_print_instant_messages(); - + + /* we can put any additional untagged stuff right here in the future */ + /* * Before processing the command that was just entered... if we happen * to have a folder selected, we'd like to rescan that folder for new * messages, and for deletions/changes of existing messages. This - * could probably be optimized somehow, but IMAP sucks... + * could probably be optimized better with some deep thought... */ if (IMAP->selected) { imap_rescan_msgids(); @@ -1458,7 +1459,7 @@ void imap_command_loop(void) else if (!strcasecmp(parms[1], "LOGOUT")) { if (IMAP->selected) { - imap_do_expunge(); /* yes, we auto-expunge */ + imap_do_expunge(); /* yes, we auto-expunge at logout */ } cprintf("* BYE %s logging out\r\n", config.c_fqdn); cprintf("%s OK Citadel IMAP session ended.\r\n",