From b47a2130d231ca4425a0a325d9f0f20eb8bfa3f0 Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Fri, 22 Jun 2007 13:36:35 +0000 Subject: [PATCH] Remove old code. Remove internal imap timer and use mail timer. SVN revision: 30434 --- e_mod_config_box.c | 1 - e_mod_main.c | 1 - e_mod_main.h | 1 - imap2.c | 98 ++++++++-------------------------------------- imap2.h | 2 +- 5 files changed, 17 insertions(+), 86 deletions(-) diff --git a/e_mod_config_box.c b/e_mod_config_box.c index dcf3759..da8f5e2 100644 --- a/e_mod_config_box.c +++ b/e_mod_config_box.c @@ -277,7 +277,6 @@ _basic_apply_data (E_Config_Dialog * cfd, E_Config_Dialog_Data * cfdata) if (!cb) { cb = E_NEW (Config_Box, 1); - cb->item = mail_ci; cb->type = 0; cb->port = 110; cb->monitor = 1; diff --git a/e_mod_main.c b/e_mod_main.c index e23d252..65cfe7e 100644 --- a/e_mod_main.c +++ b/e_mod_main.c @@ -112,7 +112,6 @@ _gc_init (E_Gadcon * gc, const char *name, const char *id, const char *style) Config_Box *cb; cb = l->data; - cb->item = ci; switch (cb->type) { case MAIL_TYPE_IMAP: diff --git a/e_mod_main.h b/e_mod_main.h index 0b61946..196681c 100644 --- a/e_mod_main.h +++ b/e_mod_main.h @@ -58,7 +58,6 @@ struct _Config_Item struct _Config_Box { const char *name; - Config_Item *item; int type; int port; diff --git a/imap2.c b/imap2.c index f889fac..123f5d1 100644 --- a/imap2.c +++ b/imap2.c @@ -12,8 +12,8 @@ static int _mail_imap_server_del (void *data, int type, void *event); static int _mail_imap_server_data (void *data, int type, void *event); static int _mail_imap_server_data_parse (ImapClient *ic, char *line, int length); static void _mail_imap_client_logout (ImapClient *ic); -static int _mail_imap_server_idle (void *data); -static int _mail_imap_server_noop (void *data); +static void _mail_imap_server_idle (ImapClient *ic); +static void _mail_imap_server_noop (ImapClient *ic); static Evas_List *iclients = NULL; @@ -60,6 +60,8 @@ _mail_imap_check_mail (void *data) } else { + if (ic->idle == 1) _mail_imap_server_idle (ic); + else _mail_imap_server_noop (ic); /* Need to set this to revert the state of the icon */ _mail_set_text (ic->data); } @@ -194,14 +196,12 @@ _mail_imap_server_del (void *data, int type, void *event) if (ic->state != IMAP_STATE_DISCONNECTED) { - printf ("The Imap Server disconnected us, consider reducing the check time.\n"); + printf ("The connection was unexpectedly shut down, consider reducing the check time.\n"); ic->state = IMAP_STATE_DISCONNECTED; } ecore_con_server_del (ic->server); ic->server = NULL; - if (ic->timer) ecore_timer_del (ic->timer); - ic->timer = NULL; _mail_set_text (ic->data); return 0; @@ -282,25 +282,17 @@ _mail_imap_server_data (void *data, int type, void *event) ic->state++; break; case IMAP_STATE_SELECTED: - if (ic->idle == 1) + if ((ic->idle == 1) && (!ic->idling)) { - if (!ic->timer) - { - len = snprintf (out, sizeof (out), "A%04i IDLE\r\n", ic->cmd++); - ecore_con_server_send (ic->server, out, len); - ic->timer = ecore_timer_add (ic->config->item->check_time * 60.0, - _mail_imap_server_idle, ic); - } - } - else if (ic->idle == 0) - { - if (!ic->timer) ic->timer = ecore_timer_add (ic->config->item->check_time * 60.0, - _mail_imap_server_noop, ic); + len = snprintf (out, sizeof (out), "A%04i IDLE\r\n", ic->cmd++); + ecore_con_server_send (ic->server, out, len); + ic->idling = 1; } break; } if (ic->cmd > 9999) ic->cmd = 1; + _mail_set_text (ic->data); return 0; } @@ -409,13 +401,11 @@ _mail_imap_server_data_parse (ImapClient *ic, char *line, int length) { printf ("Recent mails: %d\n", atoi (result)); ic->config->num_new = atoi (result); - _mail_set_text (ic->data); } else if (!strcmp (value, "EXISTS")) { printf ("Existing mails: %d\n", atoi (result)); ic->config->num_total = atoi (result); - _mail_set_text (ic->data); } else { @@ -431,55 +421,6 @@ _mail_imap_server_data_parse (ImapClient *ic, char *line, int length) { printf ("Unknown reply: %s\n", line); } -#if 0 - - if (!is->current) return 0; - ic = is->current->data; - is->state++; - - printf ("IMAP data: |%s|\n", in); - printf ("|%s|\n", strstr (in, "\r\n")); - switch (is->state) - { - case IMAP_STATE_SERVER_READY: - len = - snprintf (out, sizeof (out), "A%04i LOGIN %s %s\r\n", ++is->cmd, - is->user, is->pass); - ecore_con_server_send (ev->server, out, len); - break; - case IMAP_STATE_STATUS_OK: - if (sscanf (in, "* STATUS %*s (MESSAGES %i UNSEEN %i)", &total, &num) == 2) - { - ic->config->num_new = num; - ic->config->num_total = total; - _mail_set_text (is->data); - - if ((num > 0) && (ic->config->use_exec) && (ic->config->exec)) - _mail_start_exe (ic->config); - } - - ic = NULL; - is->current = is->current->next; - if (is->current) - { - is->state = IMAP_STATE_LOGGED_IN; - ic = is->current->data; - } - else - _mail_imap_server_logout (is); - /* Fall through if we have another mailbox to check */ - if (!ic) - break; - case IMAP_STATE_LOGGED_IN: - len = - snprintf (out, sizeof (out), "A%04i STATUS %s (MESSAGES UNSEEN)\r\n", - ++is->cmd, ic->config->new_path); - ecore_con_server_send (ev->server, out, len); - break; - default: - break; - } -#endif return 1; } @@ -499,34 +440,27 @@ _mail_imap_client_logout (ImapClient *ic) ecore_con_server_del (ic->server); } ic->server = NULL; - if (ic->timer) ecore_timer_del (ic->timer); - ic->timer = NULL; ic->state = IMAP_STATE_DISCONNECTED; } -static int -_mail_imap_server_idle (void *data) +static void +_mail_imap_server_idle (ImapClient *ic) { - ImapClient *ic; char out[1024]; int len; - ic = data; + if (!ic->idling) return; len = snprintf (out, sizeof (out), "DONE\r\n"); ecore_con_server_send (ic->server, out, len); - ic->timer = NULL; - return 0; + ic->idling = 0; } -static int -_mail_imap_server_noop (void *data) +static void +_mail_imap_server_noop (ImapClient *ic) { - ImapClient *ic; char out[1024]; int len; - ic = data; len = snprintf (out, sizeof (out), "A%04i NOOP\r\n", ic->cmd++); ecore_con_server_send (ic->server, out, len); - return 1; } diff --git a/imap2.h b/imap2.h index 4462a3f..17abe35 100644 --- a/imap2.h +++ b/imap2.h @@ -26,11 +26,11 @@ struct _ImapClient int cmd; ImapState state; int idle; + unsigned char idling : 1; Ecore_Event_Handler *add_handler; Ecore_Event_Handler *del_handler; Ecore_Event_Handler *data_handler; - Ecore_Timer *timer; void *data; };