parent
9b46910a6a
commit
fb52fb1a04
|
@ -154,7 +154,7 @@ _basic_apply_data (E_Config_Dialog * cfd, E_Config_Dialog_Data * cfdata)
|
||||||
ci->show_popup = cfdata->show_popup;
|
ci->show_popup = cfdata->show_popup;
|
||||||
ci->show_popup_empty = cfdata->show_popup_empty;
|
ci->show_popup_empty = cfdata->show_popup_empty;
|
||||||
e_config_save_queue ();
|
e_config_save_queue ();
|
||||||
_mail_config_updated (ci->id);
|
_mail_config_updated (ci);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -354,7 +354,7 @@ _cb_del_box (void *data, void *data2)
|
||||||
continue;
|
continue;
|
||||||
if (!strcmp (s, cb->name))
|
if (!strcmp (s, cb->name))
|
||||||
{
|
{
|
||||||
_mail_box_deleted (ci->id, cb->name);
|
_mail_box_deleted (ci, cb->name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -353,7 +353,7 @@ _basic_apply_data (E_Config_Dialog * cfd, E_Config_Dialog_Data * cfdata)
|
||||||
/* cfd->data = cb; */
|
/* cfd->data = cb; */
|
||||||
mail_ci->boxes = evas_list_append (mail_ci->boxes, cb);
|
mail_ci->boxes = evas_list_append (mail_ci->boxes, cb);
|
||||||
e_config_save_queue ();
|
e_config_save_queue ();
|
||||||
_mail_box_added (mail_ci->id, cb->name);
|
_mail_box_added (mail_ci, cb->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
_mail_box_config_updated (prev_dlg);
|
_mail_box_config_updated (prev_dlg);
|
||||||
|
|
102
e_mod_main.c
102
e_mod_main.c
|
@ -78,14 +78,13 @@ _gc_init (E_Gadcon * gc, const char *name, const char *id, const char *style)
|
||||||
E_Gadcon_Client *gcc;
|
E_Gadcon_Client *gcc;
|
||||||
Instance *inst;
|
Instance *inst;
|
||||||
Mail *mail;
|
Mail *mail;
|
||||||
Config_Item *ci;
|
|
||||||
Evas_List *l;
|
Evas_List *l;
|
||||||
int have_pop = 0, have_imap = 0, have_mbox = 0;
|
int have_pop = 0, have_imap = 0, have_mbox = 0;
|
||||||
|
|
||||||
inst = E_NEW (Instance, 1);
|
inst = E_NEW (Instance, 1);
|
||||||
ci = _mail_config_item_get (id);
|
inst->ci = _mail_config_item_get (id);
|
||||||
if (!ci->id)
|
if (!inst->ci->id)
|
||||||
ci->id = evas_stringshare_add (id);
|
inst->ci->id = evas_stringshare_add (id);
|
||||||
|
|
||||||
mail = _mail_new (gc->evas);
|
mail = _mail_new (gc->evas);
|
||||||
mail->inst = inst;
|
mail->inst = inst;
|
||||||
|
@ -103,13 +102,13 @@ _gc_init (E_Gadcon * gc, const char *name, const char *id, const char *style)
|
||||||
evas_object_event_callback_add (inst->mail_obj, EVAS_CALLBACK_MOUSE_OUT,
|
evas_object_event_callback_add (inst->mail_obj, EVAS_CALLBACK_MOUSE_OUT,
|
||||||
_mail_cb_mouse_out, inst);
|
_mail_cb_mouse_out, inst);
|
||||||
|
|
||||||
if (ci->show_label)
|
if (inst->ci->show_label)
|
||||||
edje_object_signal_emit (inst->mail_obj, "label_active", "");
|
edje_object_signal_emit (inst->mail_obj, "label_active", "");
|
||||||
else
|
else
|
||||||
edje_object_signal_emit (inst->mail_obj, "label_passive", "");
|
edje_object_signal_emit (inst->mail_obj, "label_passive", "");
|
||||||
|
|
||||||
mail_config->instances = evas_list_append (mail_config->instances, inst);
|
mail_config->instances = evas_list_append (mail_config->instances, inst);
|
||||||
for (l = ci->boxes; l; l = l->next)
|
for (l = inst->ci->boxes; l; l = l->next)
|
||||||
{
|
{
|
||||||
Config_Box *cb;
|
Config_Box *cb;
|
||||||
|
|
||||||
|
@ -121,7 +120,7 @@ _gc_init (E_Gadcon * gc, const char *name, const char *id, const char *style)
|
||||||
_mail_imap_add_mailbox (cb);
|
_mail_imap_add_mailbox (cb);
|
||||||
if (!inst->check_timer)
|
if (!inst->check_timer)
|
||||||
inst->check_timer =
|
inst->check_timer =
|
||||||
ecore_timer_add ((ci->check_time * 60.0), _mail_cb_check,
|
ecore_timer_add ((inst->ci->check_time * 60.0), _mail_cb_check,
|
||||||
inst);
|
inst);
|
||||||
break;
|
break;
|
||||||
case MAIL_TYPE_POP:
|
case MAIL_TYPE_POP:
|
||||||
|
@ -129,7 +128,7 @@ _gc_init (E_Gadcon * gc, const char *name, const char *id, const char *style)
|
||||||
_mail_pop_add_mailbox (cb);
|
_mail_pop_add_mailbox (cb);
|
||||||
if (!inst->check_timer)
|
if (!inst->check_timer)
|
||||||
inst->check_timer =
|
inst->check_timer =
|
||||||
ecore_timer_add ((ci->check_time * 60.0), _mail_cb_check,
|
ecore_timer_add ((inst->ci->check_time * 60.0), _mail_cb_check,
|
||||||
inst);
|
inst);
|
||||||
break;
|
break;
|
||||||
case MAIL_TYPE_MDIR:
|
case MAIL_TYPE_MDIR:
|
||||||
|
@ -140,7 +139,7 @@ _gc_init (E_Gadcon * gc, const char *name, const char *id, const char *style)
|
||||||
_mail_mbox_add_mailbox (inst, cb);
|
_mail_mbox_add_mailbox (inst, cb);
|
||||||
if (!inst->check_timer)
|
if (!inst->check_timer)
|
||||||
inst->check_timer =
|
inst->check_timer =
|
||||||
ecore_timer_add ((ci->check_time * 60.0), _mail_cb_check,
|
ecore_timer_add ((inst->ci->check_time * 60.0), _mail_cb_check,
|
||||||
inst);
|
inst);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -209,7 +208,6 @@ _mail_cb_mouse_down (void *data, Evas * e, Evas_Object * obj,
|
||||||
void *event_info)
|
void *event_info)
|
||||||
{
|
{
|
||||||
Instance *inst = data;
|
Instance *inst = data;
|
||||||
Config_Item *ci;
|
|
||||||
Evas_Event_Mouse_Down *ev = event_info;
|
Evas_Event_Mouse_Down *ev = event_info;
|
||||||
Evas_List *l;
|
Evas_List *l;
|
||||||
|
|
||||||
|
@ -226,8 +224,7 @@ _mail_cb_mouse_down (void *data, Evas * e, Evas_Object * obj,
|
||||||
e_menu_post_deactivate_callback_set (mn, _mail_menu_cb_post, inst);
|
e_menu_post_deactivate_callback_set (mn, _mail_menu_cb_post, inst);
|
||||||
mail_config->menu = mn;
|
mail_config->menu = mn;
|
||||||
|
|
||||||
ci = _mail_config_item_get (inst->gcc->id);
|
if ((inst->ci->boxes) && (evas_list_count (inst->ci->boxes) > 0))
|
||||||
if ((ci->boxes) && (evas_list_count (ci->boxes) > 0))
|
|
||||||
{
|
{
|
||||||
E_Menu_Item *mm;
|
E_Menu_Item *mm;
|
||||||
|
|
||||||
|
@ -238,7 +235,7 @@ _mail_cb_mouse_down (void *data, Evas * e, Evas_Object * obj,
|
||||||
e_menu_item_icon_edje_set (mm, buf, "icon");
|
e_menu_item_icon_edje_set (mm, buf, "icon");
|
||||||
|
|
||||||
sn = e_menu_new ();
|
sn = e_menu_new ();
|
||||||
for (l = ci->boxes; l; l = l->next)
|
for (l = inst->ci->boxes; l; l = l->next)
|
||||||
{
|
{
|
||||||
Config_Box *cb;
|
Config_Box *cb;
|
||||||
|
|
||||||
|
@ -283,7 +280,6 @@ static void
|
||||||
_mail_cb_mouse_in (void *data, Evas * e, Evas_Object * obj, void *event_info)
|
_mail_cb_mouse_in (void *data, Evas * e, Evas_Object * obj, void *event_info)
|
||||||
{
|
{
|
||||||
Instance *inst = data;
|
Instance *inst = data;
|
||||||
Config_Item *ci;
|
|
||||||
Evas_Object *list;
|
Evas_Object *list;
|
||||||
Evas_List *l;
|
Evas_List *l;
|
||||||
char buf[256];
|
char buf[256];
|
||||||
|
@ -294,20 +290,19 @@ _mail_cb_mouse_in (void *data, Evas * e, Evas_Object * obj, void *event_info)
|
||||||
edje_object_signal_emit (inst->mail_obj, "label_active", "");
|
edje_object_signal_emit (inst->mail_obj, "label_active", "");
|
||||||
|
|
||||||
if (inst->popup) return;
|
if (inst->popup) return;
|
||||||
ci = _mail_config_item_get (inst->gcc->id);
|
if ((!inst->ci->show_popup) || (!inst->ci->boxes)) return;
|
||||||
if ((!ci->show_popup) || (!ci->boxes)) return;
|
|
||||||
|
|
||||||
inst->popup = e_gadcon_popup_new (inst->gcc, _mail_popup_resize);
|
inst->popup = e_gadcon_popup_new (inst->gcc, _mail_popup_resize);
|
||||||
snprintf (path, sizeof (path), "%s/mail.edj",
|
snprintf (path, sizeof (path), "%s/mail.edj",
|
||||||
e_module_dir_get (mail_config->module));
|
e_module_dir_get (mail_config->module));
|
||||||
list = e_tlist_add (inst->popup->win->evas);
|
list = e_tlist_add (inst->popup->win->evas);
|
||||||
for (l = ci->boxes; l; l = l->next)
|
for (l = inst->ci->boxes; l; l = l->next)
|
||||||
{
|
{
|
||||||
Config_Box *cb;
|
Config_Box *cb;
|
||||||
|
|
||||||
cb = l->data;
|
cb = l->data;
|
||||||
if (!cb) continue;
|
if (!cb) continue;
|
||||||
if ((!ci->show_popup_empty) && (!cb->num_new)) continue;
|
if ((!inst->ci->show_popup_empty) && (!cb->num_new)) continue;
|
||||||
snprintf (buf, sizeof (buf), "%s: %d/%d", cb->name, cb->num_new,
|
snprintf (buf, sizeof (buf), "%s: %d/%d", cb->name, cb->num_new,
|
||||||
cb->num_total);
|
cb->num_total);
|
||||||
e_tlist_append (list, buf, NULL, NULL, NULL, NULL);
|
e_tlist_append (list, buf, NULL, NULL, NULL, NULL);
|
||||||
|
@ -328,12 +323,10 @@ static void
|
||||||
_mail_cb_mouse_out (void *data, Evas * e, Evas_Object * obj, void *event_info)
|
_mail_cb_mouse_out (void *data, Evas * e, Evas_Object * obj, void *event_info)
|
||||||
{
|
{
|
||||||
Instance *inst = data;
|
Instance *inst = data;
|
||||||
Config_Item *ci;
|
|
||||||
|
|
||||||
if (!inst)
|
if (!inst)
|
||||||
return;
|
return;
|
||||||
ci = _mail_config_item_get (inst->gcc->id);
|
if (!inst->ci->show_label)
|
||||||
if (!ci->show_label)
|
|
||||||
edje_object_signal_emit (inst->mail_obj, "label_passive", "");
|
edje_object_signal_emit (inst->mail_obj, "label_passive", "");
|
||||||
|
|
||||||
if (inst->popup)
|
if (inst->popup)
|
||||||
|
@ -356,12 +349,10 @@ static void
|
||||||
_mail_menu_cb_configure (void *data, E_Menu * m, E_Menu_Item * mi)
|
_mail_menu_cb_configure (void *data, E_Menu * m, E_Menu_Item * mi)
|
||||||
{
|
{
|
||||||
Instance *inst = data;
|
Instance *inst = data;
|
||||||
Config_Item *ci;
|
|
||||||
|
|
||||||
if (!inst)
|
if (!inst)
|
||||||
return;
|
return;
|
||||||
ci = _mail_config_item_get (inst->gcc->id);
|
_config_mail_module (inst->ci);
|
||||||
_config_mail_module (ci);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Config_Item *
|
static Config_Item *
|
||||||
|
@ -544,19 +535,6 @@ e_modapi_shutdown (E_Module * m)
|
||||||
EAPI int
|
EAPI int
|
||||||
e_modapi_save (E_Module * m)
|
e_modapi_save (E_Module * m)
|
||||||
{
|
{
|
||||||
Evas_List *l;
|
|
||||||
|
|
||||||
for (l = mail_config->instances; l; l = l->next)
|
|
||||||
{
|
|
||||||
Instance *inst;
|
|
||||||
Config_Item *ci;
|
|
||||||
|
|
||||||
inst = l->data;
|
|
||||||
ci = _mail_config_item_get (inst->gcc->id);
|
|
||||||
if (ci->id)
|
|
||||||
evas_stringshare_del (ci->id);
|
|
||||||
ci->id = evas_stringshare_add (inst->gcc->id);
|
|
||||||
}
|
|
||||||
e_config_domain_save ("module.mail", conf_edd, mail_config);
|
e_config_domain_save ("module.mail", conf_edd, mail_config);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -600,18 +578,13 @@ static int
|
||||||
_mail_cb_check (void *data)
|
_mail_cb_check (void *data)
|
||||||
{
|
{
|
||||||
Instance *inst = data;
|
Instance *inst = data;
|
||||||
Config_Item *ci;
|
|
||||||
Evas_List *l;
|
Evas_List *l;
|
||||||
int have_imap = 0, have_pop = 0, have_mbox = 0;
|
int have_imap = 0, have_pop = 0, have_mbox = 0;
|
||||||
|
|
||||||
if (!inst)
|
if (!inst)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
ci = _mail_config_item_get (inst->gcc->id);
|
for (l = inst->ci->boxes; l; l = l->next)
|
||||||
if (!ci->boxes)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
for (l = ci->boxes; l; l = l->next)
|
|
||||||
{
|
{
|
||||||
Config_Box *cb;
|
Config_Box *cb;
|
||||||
|
|
||||||
|
@ -650,7 +623,6 @@ void
|
||||||
_mail_set_text (void *data)
|
_mail_set_text (void *data)
|
||||||
{
|
{
|
||||||
Instance *inst = data;
|
Instance *inst = data;
|
||||||
Config_Item *ci;
|
|
||||||
Evas_List *l;
|
Evas_List *l;
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
@ -658,13 +630,7 @@ _mail_set_text (void *data)
|
||||||
if (!inst)
|
if (!inst)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ci = _mail_config_item_get (inst->gcc->id);
|
for (l = inst->ci->boxes; l; l = l->next)
|
||||||
if (!ci)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (ci->boxes)
|
|
||||||
{
|
|
||||||
for (l = ci->boxes; l; l = l->next)
|
|
||||||
{
|
{
|
||||||
Config_Box *cb;
|
Config_Box *cb;
|
||||||
|
|
||||||
|
@ -673,7 +639,6 @@ _mail_set_text (void *data)
|
||||||
continue;
|
continue;
|
||||||
count += cb->num_new;
|
count += cb->num_new;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (count > 0)
|
if (count > 0)
|
||||||
{
|
{
|
||||||
|
@ -716,19 +681,16 @@ _mail_cb_exe_exit (void *data, int type, void *event)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_mail_box_added (const char *ci_name, const char *box_name)
|
_mail_box_added (Config_Item *ci, const char *box_name)
|
||||||
{
|
{
|
||||||
Evas_List *l, *b;
|
Evas_List *l, *b;
|
||||||
|
|
||||||
for (l = mail_config->instances; l; l = l->next)
|
for (l = mail_config->instances; l; l = l->next)
|
||||||
{
|
{
|
||||||
Instance *inst;
|
Instance *inst;
|
||||||
Config_Item *ci;
|
|
||||||
|
|
||||||
inst = l->data;
|
inst = l->data;
|
||||||
ci = _mail_config_item_get (inst->gcc->id);
|
if (inst->ci != ci) continue;
|
||||||
if ((ci->id) && (!strcmp (ci->id, ci_name)))
|
|
||||||
{
|
|
||||||
for (b = ci->boxes; b; b = b->next)
|
for (b = ci->boxes; b; b = b->next)
|
||||||
{
|
{
|
||||||
Config_Box *cb;
|
Config_Box *cb;
|
||||||
|
@ -754,30 +716,22 @@ _mail_box_added (const char *ci_name, const char *box_name)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_mail_box_deleted (const char *ci_name, const char *box_name)
|
_mail_box_deleted (Config_Item *ci, const char *box_name)
|
||||||
{
|
{
|
||||||
Evas_List *d, *i;
|
Evas_List *d, *i;
|
||||||
Config_Box *cb;
|
Config_Box *cb;
|
||||||
int found = 0;
|
|
||||||
|
|
||||||
for (i = mail_config->instances; i; i = i->next)
|
for (i = mail_config->instances; i; i = i->next)
|
||||||
{
|
{
|
||||||
Instance *inst;
|
Instance *inst;
|
||||||
|
int found = 0;
|
||||||
|
|
||||||
inst = i->data;
|
inst = i->data;
|
||||||
if (!inst->gcc->id)
|
if (inst->ci != ci) continue;
|
||||||
continue;
|
|
||||||
if (!strcmp (inst->gcc->id, ci_name))
|
|
||||||
{
|
|
||||||
Config_Item *ci;
|
|
||||||
|
|
||||||
ci = _mail_config_item_get (inst->gcc->id);
|
|
||||||
for (d = ci->boxes; d; d = d->next)
|
for (d = ci->boxes; d; d = d->next)
|
||||||
{
|
{
|
||||||
cb = d->data;
|
cb = d->data;
|
||||||
|
@ -811,30 +765,23 @@ _mail_box_deleted (const char *ci_name, const char *box_name)
|
||||||
e_config_save_queue ();
|
e_config_save_queue ();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_mail_config_updated (const char *id)
|
_mail_config_updated (Config_Item *ci)
|
||||||
{
|
{
|
||||||
Evas_List *l;
|
Evas_List *l;
|
||||||
Config_Item *ci;
|
|
||||||
|
|
||||||
if (!mail_config)
|
if (!mail_config)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ci = _mail_config_item_get (id);
|
|
||||||
for (l = mail_config->instances; l; l = l->next)
|
for (l = mail_config->instances; l; l = l->next)
|
||||||
{
|
{
|
||||||
Instance *inst;
|
Instance *inst;
|
||||||
|
|
||||||
inst = l->data;
|
inst = l->data;
|
||||||
if (!inst->gcc->id)
|
if (inst->ci != ci) continue;
|
||||||
continue;
|
|
||||||
if (!strcmp (inst->gcc->id, ci->id))
|
|
||||||
{
|
|
||||||
if (inst->check_timer)
|
if (inst->check_timer)
|
||||||
{
|
{
|
||||||
ecore_timer_del (inst->check_timer);
|
ecore_timer_del (inst->check_timer);
|
||||||
|
@ -850,7 +797,6 @@ _mail_config_updated (const char *id)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mail_menu_cb_exec (void *data, E_Menu * m, E_Menu_Item * mi)
|
_mail_menu_cb_exec (void *data, E_Menu * m, E_Menu_Item * mi)
|
||||||
|
|
|
@ -28,6 +28,7 @@ struct _Instance
|
||||||
Ecore_Exe *exe;
|
Ecore_Exe *exe;
|
||||||
Ecore_Timer *check_timer;
|
Ecore_Timer *check_timer;
|
||||||
int count;
|
int count;
|
||||||
|
Config_Item *ci;
|
||||||
|
|
||||||
E_Gadcon_Popup *popup;
|
E_Gadcon_Popup *popup;
|
||||||
};
|
};
|
||||||
|
@ -90,10 +91,10 @@ EAPI int e_modapi_save(E_Module *m);
|
||||||
EAPI int e_modapi_about(E_Module *m);
|
EAPI int e_modapi_about(E_Module *m);
|
||||||
|
|
||||||
void _config_mail_module(Config_Item *ci);
|
void _config_mail_module(Config_Item *ci);
|
||||||
void _mail_config_updated(const char *id);
|
void _mail_config_updated(Config_Item *ci);
|
||||||
void _mail_box_config_updated(E_Config_Dialog *cfd);
|
void _mail_box_config_updated(E_Config_Dialog *cfd);
|
||||||
void _mail_box_deleted(const char *ci_name, const char *box_name);
|
void _mail_box_deleted(Config_Item *ci, const char *box_name);
|
||||||
void _mail_box_added(const char *ci_name, const char *box_name);
|
void _mail_box_added(Config_Item *ci, const char *box_name);
|
||||||
void _mail_set_text(void *data);
|
void _mail_set_text(void *data);
|
||||||
void _mail_start_exe(void *data);
|
void _mail_start_exe(void *data);
|
||||||
|
|
||||||
|
|
31
imap2.c
31
imap2.c
|
@ -5,6 +5,12 @@
|
||||||
#include "e_mod_main.h"
|
#include "e_mod_main.h"
|
||||||
#include "imap2.h"
|
#include "imap2.h"
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
#define D(args...) printf(##args)
|
||||||
|
#else
|
||||||
|
#define D(args...)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO:
|
* TODO:
|
||||||
* * Let the user select between Unseen, Recent and New mail
|
* * Let the user select between Unseen, Recent and New mail
|
||||||
|
@ -38,6 +44,7 @@ _mail_imap_check_mail (void *data)
|
||||||
|
|
||||||
ic = l->data;
|
ic = l->data;
|
||||||
ic->data = data;
|
ic->data = data;
|
||||||
|
D ("Checking (%s:%s): %p\n", ic->config->host, ic->config->new_path, ic->server);
|
||||||
if (!ic->server)
|
if (!ic->server)
|
||||||
{
|
{
|
||||||
if (!ic->add_handler)
|
if (!ic->add_handler)
|
||||||
|
@ -233,6 +240,8 @@ _mail_imap_server_data (void *data, int type, void *event)
|
||||||
if (ic->state == IMAP_STATE_DISCONNECTED)
|
if (ic->state == IMAP_STATE_DISCONNECTED)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
D ("Data from %s:%s\n", ic->config->host, ic->config->new_path);
|
||||||
|
|
||||||
/* Hijack server data.
|
/* Hijack server data.
|
||||||
* We require minimum 2 characters, as the minimum server data is '\r\n' */
|
* We require minimum 2 characters, as the minimum server data is '\r\n' */
|
||||||
if ((ic->prev.data) || (ev->size < 2))
|
if ((ic->prev.data) || (ev->size < 2))
|
||||||
|
@ -258,6 +267,7 @@ _mail_imap_server_data (void *data, int type, void *event)
|
||||||
/* Check for correct EOD */
|
/* Check for correct EOD */
|
||||||
if ((*(reply + size - 2) != '\r') && (*(reply + size - 1) != '\n'))
|
if ((*(reply + size - 2) != '\r') && (*(reply + size - 1) != '\n'))
|
||||||
{
|
{
|
||||||
|
D ("Wrong eod %s:%s\n", ic->config->host, ic->config->new_path);
|
||||||
/* We got incomplete data, search for last EOD */
|
/* We got incomplete data, search for last EOD */
|
||||||
unsigned int pos = 0;
|
unsigned int pos = 0;
|
||||||
char *data;
|
char *data;
|
||||||
|
@ -342,7 +352,7 @@ _mail_imap_server_data (void *data, int type, void *event)
|
||||||
case IMAP_STATE_IDLING:
|
case IMAP_STATE_IDLING:
|
||||||
if ((ic->idle == 1) && (!ic->idling))
|
if ((ic->idle == 1) && (!ic->idling))
|
||||||
{
|
{
|
||||||
printf ("Begin idle\n");
|
D ("Begin idle\n");
|
||||||
len = snprintf (out, sizeof (out), "A%04i IDLE\r\n", ic->cmd++);
|
len = snprintf (out, sizeof (out), "A%04i IDLE\r\n", ic->cmd++);
|
||||||
ecore_con_server_send (ic->server, out, len);
|
ecore_con_server_send (ic->server, out, len);
|
||||||
ic->idling = 1;
|
ic->idling = 1;
|
||||||
|
@ -370,6 +380,7 @@ _mail_imap_server_data (void *data, int type, void *event)
|
||||||
if (ic->cmd > 9999)
|
if (ic->cmd > 9999)
|
||||||
ic->cmd = 1;
|
ic->cmd = 1;
|
||||||
_mail_set_text (ic->data);
|
_mail_set_text (ic->data);
|
||||||
|
D ("\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -408,7 +419,7 @@ _mail_imap_server_data_parse (ImapClient *ic, char *line)
|
||||||
}
|
}
|
||||||
else if (!strcmp (result, "OK"))
|
else if (!strcmp (result, "OK"))
|
||||||
{
|
{
|
||||||
printf ("Reply ok: %s\n", value);
|
D ("Reply ok: %s\n", value);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -446,7 +457,7 @@ _mail_imap_server_data_parse (ImapClient *ic, char *line)
|
||||||
if (pp) *pp = '\0';
|
if (pp) *pp = '\0';
|
||||||
if (!strcmp (p, "IDLE"))
|
if (!strcmp (p, "IDLE"))
|
||||||
{
|
{
|
||||||
printf ("Server supports idle\n");
|
D ("Server supports idle\n");
|
||||||
ic->idle = 1;
|
ic->idle = 1;
|
||||||
}
|
}
|
||||||
if (pp)
|
if (pp)
|
||||||
|
@ -461,16 +472,16 @@ _mail_imap_server_data_parse (ImapClient *ic, char *line)
|
||||||
}
|
}
|
||||||
else if (!strcmp (result, "OK"))
|
else if (!strcmp (result, "OK"))
|
||||||
{
|
{
|
||||||
printf ("Result OK: %s\n", value);
|
D ("Result OK: %s\n", value);
|
||||||
}
|
}
|
||||||
else if (!strcmp (result, "FLAGS"))
|
else if (!strcmp (result, "FLAGS"))
|
||||||
{
|
{
|
||||||
printf ("Flags: %s\n", value);
|
D ("Flags: %s\n", value);
|
||||||
}
|
}
|
||||||
else if (!strcmp (result, "SEARCH"))
|
else if (!strcmp (result, "SEARCH"))
|
||||||
{
|
{
|
||||||
ic->config->num_new = elements (value);
|
ic->config->num_new = elements (value);
|
||||||
printf ("New mail (%s:%s): %d\n", ic->config->host, ic->config->new_path, ic->config->num_new);
|
D ("New mail (%s:%s): %d\n", ic->config->host, ic->config->new_path, ic->config->num_new);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -481,26 +492,26 @@ _mail_imap_server_data_parse (ImapClient *ic, char *line)
|
||||||
if (p) *p = '\0';
|
if (p) *p = '\0';
|
||||||
if (!strcmp (value, "RECENT"))
|
if (!strcmp (value, "RECENT"))
|
||||||
{
|
{
|
||||||
printf ("Recent mails: %d\n", atoi (result));
|
D ("Recent mails: %d\n", atoi (result));
|
||||||
//ic->state = IMAP_STATE_SEARCH_UNSEEN;
|
//ic->state = IMAP_STATE_SEARCH_UNSEEN;
|
||||||
//ic->state = IMAP_STATE_SEARCH_RECENT;
|
//ic->state = IMAP_STATE_SEARCH_RECENT;
|
||||||
ic->state = IMAP_STATE_SEARCH_NEW;
|
ic->state = IMAP_STATE_SEARCH_NEW;
|
||||||
}
|
}
|
||||||
else if (!strcmp (value, "EXISTS"))
|
else if (!strcmp (value, "EXISTS"))
|
||||||
{
|
{
|
||||||
printf ("Existing mails: %d\n", atoi (result));
|
D ("Existing mails: %d\n", atoi (result));
|
||||||
ic->config->num_total = atoi (result);
|
ic->config->num_total = atoi (result);
|
||||||
}
|
}
|
||||||
else if (!strcmp (value, "FETCH"))
|
else if (!strcmp (value, "FETCH"))
|
||||||
{
|
{
|
||||||
printf ("Reading mail: %d\n", atoi (result));
|
D ("Reading mail: %d\n", atoi (result));
|
||||||
//ic->state = IMAP_STATE_SEARCH_UNSEEN;
|
//ic->state = IMAP_STATE_SEARCH_UNSEEN;
|
||||||
//ic->state = IMAP_STATE_SEARCH_RECENT;
|
//ic->state = IMAP_STATE_SEARCH_RECENT;
|
||||||
ic->state = IMAP_STATE_SEARCH_NEW;
|
ic->state = IMAP_STATE_SEARCH_NEW;
|
||||||
}
|
}
|
||||||
else if (!strcmp (value, "EXPUNGE"))
|
else if (!strcmp (value, "EXPUNGE"))
|
||||||
{
|
{
|
||||||
printf ("Deleting mail: %d\n", atoi (result));
|
D ("Deleting mail: %d\n", atoi (result));
|
||||||
//ic->state = IMAP_STATE_SEARCH_UNSEEN;
|
//ic->state = IMAP_STATE_SEARCH_UNSEEN;
|
||||||
//ic->state = IMAP_STATE_SEARCH_RECENT;
|
//ic->state = IMAP_STATE_SEARCH_RECENT;
|
||||||
ic->state = IMAP_STATE_SEARCH_NEW;
|
ic->state = IMAP_STATE_SEARCH_NEW;
|
||||||
|
|
Loading…
Reference in New Issue