Bluntly retrieving every message available
This commit is contained in:
parent
2a687e8f25
commit
c694e112ff
|
@ -34,6 +34,8 @@ typedef enum _P3Context
|
||||||
P3C_INIT = 0,
|
P3C_INIT = 0,
|
||||||
P3C_AUTHORIZATION_USER,
|
P3C_AUTHORIZATION_USER,
|
||||||
P3C_AUTHORIZATION_PASS,
|
P3C_AUTHORIZATION_PASS,
|
||||||
|
P3C_TRANSACTION_LIST,
|
||||||
|
P3C_TRANSACTION_RETR,
|
||||||
P3C_TRANSACTION_STAT
|
P3C_TRANSACTION_STAT
|
||||||
} P3Context;
|
} P3Context;
|
||||||
|
|
||||||
|
@ -259,6 +261,8 @@ static int _pop3_parse(AccountPlugin * plugin)
|
||||||
&pop3->rd_buf[j + 4], 1);
|
&pop3->rd_buf[j + 4], 1);
|
||||||
else if(strncmp("+OK", &pop3->rd_buf[j], 3) == 0)
|
else if(strncmp("+OK", &pop3->rd_buf[j], 3) == 0)
|
||||||
ret |= _parse_context(plugin, &pop3->rd_buf[j + 3]);
|
ret |= _parse_context(plugin, &pop3->rd_buf[j + 3]);
|
||||||
|
else
|
||||||
|
ret |= _parse_context(plugin, &pop3->rd_buf[j]);
|
||||||
}
|
}
|
||||||
if(j != 0)
|
if(j != 0)
|
||||||
{
|
{
|
||||||
|
@ -303,7 +307,20 @@ static int _parse_context(AccountPlugin * plugin, char const * answer)
|
||||||
case P3C_TRANSACTION_STAT:
|
case P3C_TRANSACTION_STAT:
|
||||||
if(sscanf(answer, "%u %u", &u, &v) != 2)
|
if(sscanf(answer, "%u %u", &u, &v) != 2)
|
||||||
return -1;
|
return -1;
|
||||||
return 0;
|
pop3->context = P3C_TRANSACTION_LIST;
|
||||||
|
return _pop3_command(plugin, "LIST");
|
||||||
|
case P3C_TRANSACTION_LIST:
|
||||||
|
if(strcmp(answer, ".") == 0)
|
||||||
|
{
|
||||||
|
pop3->context = P3C_TRANSACTION_RETR;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(sscanf(answer, "%u %u", &u, &v) != 2)
|
||||||
|
return -1;
|
||||||
|
q = g_strdup_printf("%s %u", "RETR", u);
|
||||||
|
ret = _pop3_command(plugin, q);
|
||||||
|
free(q);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user