progress callback on pop3
parent
9b26ecc3a8
commit
77fa37dd39
|
@ -135,7 +135,8 @@ char * mailstream_read_multiline(mailstream * s, size_t size,
|
|||
MMAPString * stream_buffer,
|
||||
MMAPString * multiline_buffer,
|
||||
size_t progr_rate,
|
||||
progress_function * progr_fun)
|
||||
progress_function * progr_fun,
|
||||
mailprogress_function * body_progr_fun, void * context)
|
||||
{
|
||||
size_t count;
|
||||
char * line;
|
||||
|
@ -165,8 +166,13 @@ char * mailstream_read_multiline(mailstream * s, size_t size,
|
|||
count += strlen(line);
|
||||
if ((size != 0) && (progr_rate != 0) && (progr_fun != NULL))
|
||||
if (count - last >= progr_rate) {
|
||||
(* progr_fun)(count, size);
|
||||
last = count;
|
||||
if (progr_fun != NULL) {
|
||||
(* progr_fun)(count, size);
|
||||
}
|
||||
if (body_progr_fun != NULL) {
|
||||
body_progr_fun(count, size, context);
|
||||
}
|
||||
last = count;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -54,7 +54,8 @@ char * mailstream_read_multiline(mailstream * s, size_t size,
|
|||
MMAPString * stream_buffer,
|
||||
MMAPString * multiline_buffer,
|
||||
size_t progr_rate,
|
||||
progress_function * progr_fun);
|
||||
progress_function * progr_fun,
|
||||
mailprogress_function * body_progr_fun, void * context);
|
||||
|
||||
int mailstream_is_end_multiline(const char * line);
|
||||
|
||||
|
|
|
@ -1834,7 +1834,7 @@ static char * read_multiline(newsnntp * f, size_t size,
|
|||
{
|
||||
return mailstream_read_multiline(f->nntp_stream, size,
|
||||
f->nntp_stream_buffer, multiline_buffer,
|
||||
f->nntp_progr_rate, f->nntp_progr_fun);
|
||||
f->nntp_progr_rate, f->nntp_progr_fun, NULL, NULL);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -227,6 +227,8 @@ mailpop3 * mailpop3_new(size_t progr_rate, progress_function * progr_fun)
|
|||
#endif
|
||||
|
||||
f->pop3_timeout = 0;
|
||||
f->pop3_progress_fun = NULL;
|
||||
f->pop3_progress_context = NULL;
|
||||
|
||||
return f;
|
||||
|
||||
|
@ -1285,7 +1287,7 @@ static char * read_multiline(mailpop3 * f, size_t size,
|
|||
{
|
||||
return mailstream_read_multiline(f->pop3_stream, size,
|
||||
f->pop3_stream_buffer, multiline_buffer,
|
||||
f->pop3_progr_rate, f->pop3_progr_fun);
|
||||
f->pop3_progr_rate, f->pop3_progr_fun, f->pop3_progress_fun, f->pop3_progress_context);
|
||||
}
|
||||
|
||||
static int send_command(mailpop3 * f, char * command)
|
||||
|
@ -1581,3 +1583,10 @@ time_t mailpop3_get_timeout(mailpop3 * f)
|
|||
{
|
||||
return f->pop3_timeout;
|
||||
}
|
||||
|
||||
void mailpop3_set_progress_callback(mailpop3 * f, mailprogress_function * progr_fun, void * context)
|
||||
{
|
||||
f->pop3_progress_fun = progr_fun;
|
||||
f->pop3_progress_context = context;
|
||||
}
|
||||
|
||||
|
|
|
@ -64,6 +64,7 @@ LIBETPAN_EXPORT
|
|||
time_t mailpop3_get_timeout(mailpop3 * f);
|
||||
|
||||
LIBETPAN_EXPORT
|
||||
void mailpop3_set_progress_callback(mailpop3 * f, mailprogress_function * progr_fun, void * context);
|
||||
|
||||
LIBETPAN_EXPORT
|
||||
int mailpop3_connect(mailpop3 * f, mailstream * s);
|
||||
|
|
|
@ -95,6 +95,8 @@ struct mailpop3
|
|||
} pop3_sasl;
|
||||
|
||||
time_t pop3_timeout;
|
||||
mailprogress_function * pop3_progress_fun;
|
||||
void * pop3_progress_context;
|
||||
};
|
||||
|
||||
typedef struct mailpop3 mailpop3;
|
||||
|
|
Loading…
Reference in New Issue