diff --git a/src/config.h b/src/config.h index af0612fc..cd9f7cfc 100644 --- a/src/config.h +++ b/src/config.h @@ -12,9 +12,9 @@ #define PROGNAME "piler" #define PILERGETD_PROGNAME "pilergetd" -#define VERSION "1.1.1-rc1" +#define VERSION "1.2.0-pre" -#define BUILD 886 +#define BUILD 887 #define HOSTID "mailarchiver" diff --git a/src/defs.h b/src/defs.h index 4faef028..90c86a40 100644 --- a/src/defs.h +++ b/src/defs.h @@ -270,6 +270,7 @@ struct import { int total_messages; int processed_messages; int batch_processing_limit; + int start_position; int import_job_id; int remove_after_import; int keep_eml; diff --git a/src/pilerimport.c b/src/pilerimport.c index f965589b..0e8ec802 100644 --- a/src/pilerimport.c +++ b/src/pilerimport.c @@ -488,6 +488,7 @@ int main(int argc, char **argv){ import.import_job_id = import.total_messages = import.total_size = import.processed_messages = import.batch_processing_limit = 0; import.started = import.updated = import.finished = import.remove_after_import = 0; import.extra_recipient = NULL; + import.start_position = 1; data.import = &import; @@ -515,6 +516,7 @@ int main(int argc, char **argv){ {"folder_imap", required_argument, 0, 'f' }, {"add-recipient",required_argument, 0, 'a' }, {"batch-limit", required_argument, 0, 'b' }, + {"start-position",required_argument, 0, 's' }, {"quiet", no_argument, 0, 'q' }, {"recursive", required_argument, 0, 'R' }, {"remove-after-import",no_argument, 0, 'r' }, @@ -526,9 +528,9 @@ int main(int argc, char **argv){ int option_index = 0; - c = getopt_long(argc, argv, "c:m:M:e:d:i:K:u:p:P:x:F:f:a:b:GDRrqh?", long_options, &option_index); + c = getopt_long(argc, argv, "c:m:M:e:d:i:K:u:p:P:x:F:f:a:b:s:GDRrqh?", long_options, &option_index); #else - c = getopt(argc, argv, "c:m:M:e:d:i:K:u:p:P:x:F:f:a:b:GDRrqh?"); + c = getopt(argc, argv, "c:m:M:e:d:i:K:u:p:P:x:F:f:a:b:s:GDRrqh?"); #endif if(c == -1) break; @@ -605,6 +607,15 @@ int main(int argc, char **argv){ data.import->batch_processing_limit = atoi(optarg); break; + case 's' : + if(atoi(optarg) < 1){ + printf("invalid start position: %s\n", optarg); + return -1; + } + + data.import->start_position = atoi(optarg); + break; + case 'a' : data.import->extra_recipient = optarg; break; diff --git a/src/pop3.c b/src/pop3.c index 2909451b..ebed017f 100644 --- a/src/pop3.c +++ b/src/pop3.c @@ -120,7 +120,7 @@ int process_pop3_emails(int sd, struct session_data *sdata, struct __data *data, if(data->import->total_messages <= 0) return OK; - for(i=1; i<=data->import->total_messages; i++){ + for(i=data->import->start_position; i<=data->import->total_messages; i++){ data->import->processed_messages++; printf("processed: %7d\r", data->import->processed_messages); fflush(stdout);