mirror of
https://bitbucket.org/jsuto/piler.git
synced 2024-12-24 19:40:13 +01:00
imap fix
This commit is contained in:
parent
a303b66717
commit
4c352efb76
@ -14,7 +14,7 @@
|
||||
|
||||
#define VERSION "0.1.25-rc3"
|
||||
|
||||
#define BUILD 879
|
||||
#define BUILD 880
|
||||
|
||||
#define HOSTID "mailarchiver"
|
||||
|
||||
|
@ -271,6 +271,7 @@ struct import {
|
||||
int import_job_id;
|
||||
int remove_after_import;
|
||||
int keep_eml;
|
||||
long total_size;
|
||||
time_t started, updated, finished;
|
||||
};
|
||||
|
||||
|
18
src/imap.c
18
src/imap.c
@ -163,10 +163,26 @@ int process_imap_folder(int sd, int *seq, char *folder, struct session_data *sda
|
||||
len = strlen(puf);
|
||||
|
||||
if(nreads == 1){
|
||||
|
||||
if(strcasestr(puf, " FETCH ")){
|
||||
msglen = get_message_length_from_imap_answer(puf);
|
||||
|
||||
if(msglen == 0){
|
||||
finished = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if(strcasestr(puf, " BYE")){
|
||||
printf("imap server sent BYE response: '%s'\n", puf);
|
||||
close(fd);
|
||||
unlink(filename);
|
||||
return ERR;
|
||||
}
|
||||
}
|
||||
|
||||
if(len > 0){
|
||||
if(msg_written_len < msglen){
|
||||
write(fd, puf, len);
|
||||
@ -199,7 +215,7 @@ int process_imap_folder(int sd, int *seq, char *folder, struct session_data *sda
|
||||
|
||||
close(fd);
|
||||
|
||||
if(dryrun == 0) rc = import_message(filename, sdata, data, cfg);
|
||||
if(dryrun == 0 && msglen > 10) rc = import_message(filename, sdata, data, cfg);
|
||||
else rc = OK;
|
||||
|
||||
|
||||
|
@ -67,6 +67,8 @@ int import_message(char *filename, struct session_data *sdata, struct __data *da
|
||||
snprintf(sdata->filename, SMALLBUFSIZE-1, "%s", filename);
|
||||
|
||||
sdata->tot_len = st.st_size;
|
||||
|
||||
data->import->total_size += st.st_size;
|
||||
}
|
||||
|
||||
|
||||
|
@ -484,7 +484,7 @@ int main(int argc, char **argv){
|
||||
data.recursive_folder_names = 0;
|
||||
data.quiet = 0;
|
||||
|
||||
import.import_job_id = import.total_messages = import.processed_messages = 0;
|
||||
import.import_job_id = import.total_messages = import.total_size = import.processed_messages = 0;
|
||||
import.started = import.updated = import.finished = import.remove_after_import = 0;
|
||||
import.extra_recipient = NULL;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user