if (Imap->num_msgs > Imap->num_alloc) {
Imap->num_alloc += REALLOC_INCREMENT;
Imap->msgids = realloc(Imap->msgids, (Imap->num_alloc * sizeof(long)) );
- Imap->flags = realloc(Imap->flags, (Imap->num_alloc * sizeof(long)) );
+ Imap->flags = realloc(Imap->flags, (Imap->num_alloc * sizeof(unsigned int)) );
}
Imap->msgids[Imap->num_msgs - 1] = msgnum;
Imap->flags[Imap->num_msgs - 1] = 0;
}
if (Imap->num_msgs) {
- Imap->flags = malloc(Imap->num_alloc * sizeof(long));
+ Imap->flags = malloc(Imap->num_alloc * sizeof(unsigned int));
memset(Imap->flags, 0, (Imap->num_alloc * sizeof(long)) );
}
*/
void imap_namespace(int num_parms, ConstStr *Params)
{
+ long len;
int i;
struct floor *fl;
int floors = 0;
if (fl->f_flags & F_INUSE) {
/* if (floors > 0) IAPuts(" "); samjam says this confuses javamail */
IAPuts("(");
- snprintf(Namespace, sizeof(Namespace), "%s/", fl->f_name);
- plain_imap_strout(Namespace);
+ len = snprintf(Namespace, sizeof(Namespace), "%s/", fl->f_name);
+ IPutStr(Namespace, len);
IAPuts(" \"/\")");
++floors;
}
*/
void imap_status(int num_parms, ConstStr *Params)
{
+ long len;
int ret;
char roomname[ROOMNAMELEN];
char imaproomname[SIZ];
* names and simply spew all possible data items. It's far easier to
* code and probably saves us some processing time too.
*/
- imap_mailboxname(imaproomname, sizeof imaproomname, &CC->room);
+ len = imap_mailboxname(imaproomname, sizeof imaproomname, &CC->room);
IAPuts("* STATUS ");
- plain_imap_strout(imaproomname);
+ IPutStr(imaproomname, len);
IAPrintf(" (MESSAGES %d ", msgs);
IAPrintf("RECENT %d ", new); /* Initially, new==recent */
IAPrintf("UIDNEXT %ld ", CitControl.MMhighest + 1);
CtdlRegisterServiceHook(config.c_imaps_port,
NULL, imaps_greeting, imap_command_loop, NULL, CitadelServiceIMAPS);
#endif
- CtdlRegisterSessionHook(imap_cleanup_function, EVT_STOP);
+ CtdlRegisterSessionHook(imap_cleanup_function, EVT_STOP, PRIO_STOP + 30);
CtdlRegisterCleanupHook(imap_cleanup);
}