mirror of
https://bitbucket.org/jsuto/piler.git
synced 2025-02-05 15:48:37 +01:00
Trim the -f imap foldername from the stored value
Change-Id: I65846535d8780cce840e1b33aab7affc0f465acc Signed-off-by: SJ <sj@acts.hu>
This commit is contained in:
parent
4eff18bbb3
commit
6d6004c9ab
@ -298,6 +298,7 @@ struct import {
|
|||||||
int keep_eml;
|
int keep_eml;
|
||||||
int timeout;
|
int timeout;
|
||||||
int cap_uidplus;
|
int cap_uidplus;
|
||||||
|
int trim_folder_name;
|
||||||
int uid;
|
int uid;
|
||||||
long total_size;
|
long total_size;
|
||||||
time_t started, updated, finished;
|
time_t started, updated, finished;
|
||||||
|
12
src/imap.c
12
src/imap.c
@ -93,7 +93,7 @@ END:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int process_imap_folder(int sd, int *seq, char *folder, struct session_data *sdata, struct __data *data, int use_ssl, int dryrun, struct __config *cfg){
|
int process_imap_folder(int sd, int *seq, char *folder, char *main_folder, struct session_data *sdata, struct __data *data, int use_ssl, int dryrun, struct __config *cfg){
|
||||||
int rc=ERR, i, n, messages=0, len, readlen, fd, nreads, readpos, finished, msglen, msg_written_len, tagoklen, tagbadlen, result;
|
int rc=ERR, i, n, messages=0, len, readlen, fd, nreads, readpos, finished, msglen, msg_written_len, tagoklen, tagbadlen, result;
|
||||||
char *p, tag[SMALLBUFSIZE], tagok[SMALLBUFSIZE], tagbad[SMALLBUFSIZE], buf[MAXBUFSIZE], puf[MAXBUFSIZE], filename[SMALLBUFSIZE];
|
char *p, tag[SMALLBUFSIZE], tagok[SMALLBUFSIZE], tagbad[SMALLBUFSIZE], buf[MAXBUFSIZE], puf[MAXBUFSIZE], filename[SMALLBUFSIZE];
|
||||||
|
|
||||||
@ -127,6 +127,12 @@ int process_imap_folder(int sd, int *seq, char *folder, struct session_data *sda
|
|||||||
|
|
||||||
|
|
||||||
if(data->recursive_folder_names == 1){
|
if(data->recursive_folder_names == 1){
|
||||||
|
|
||||||
|
// trim the main folder name from the stored value in folder table
|
||||||
|
if(data->import->trim_folder_name == 1 && main_folder){
|
||||||
|
folder += strlen(main_folder);
|
||||||
|
}
|
||||||
|
|
||||||
data->folder = get_folder_id(sdata, data, folder, 0);
|
data->folder = get_folder_id(sdata, data, folder, 0);
|
||||||
if(data->folder == ERR_FOLDER) data->folder = add_new_folder(sdata, data, folder, 0);
|
if(data->folder == ERR_FOLDER) data->folder = add_new_folder(sdata, data, folder, 0);
|
||||||
}
|
}
|
||||||
@ -410,8 +416,10 @@ int list_folders(int sd, int *seq, int use_ssl, char *folder_name, struct __data
|
|||||||
snprintf(tag, sizeof(tag)-1, "A%d", *seq); snprintf(tagok, sizeof(tagok)-1, "A%d OK", (*seq)++);
|
snprintf(tag, sizeof(tag)-1, "A%d", *seq); snprintf(tagok, sizeof(tagok)-1, "A%d OK", (*seq)++);
|
||||||
if(folder_name == NULL)
|
if(folder_name == NULL)
|
||||||
snprintf(puf, sizeof(puf)-1, "%s LIST \"\" \"*\"\r\n", tag);
|
snprintf(puf, sizeof(puf)-1, "%s LIST \"\" \"*\"\r\n", tag);
|
||||||
else
|
else {
|
||||||
|
data->import->trim_folder_name = 1;
|
||||||
snprintf(puf, sizeof(puf)-1, "%s LIST \"%s\" \"*\"\r\n", tag, folder_name);
|
snprintf(puf, sizeof(puf)-1, "%s LIST \"%s\" \"*\"\r\n", tag, folder_name);
|
||||||
|
}
|
||||||
|
|
||||||
write1(sd, puf, strlen(puf), use_ssl, data->ssl);
|
write1(sd, puf, strlen(puf), use_ssl, data->ssl);
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ int process_pop3_emails(int sd, struct session_data *sdata, struct __data *data,
|
|||||||
|
|
||||||
int connect_to_imap_server(int sd, int *seq, char *username, char *password, struct __data *data, int use_ssl);
|
int connect_to_imap_server(int sd, int *seq, char *username, char *password, struct __data *data, int use_ssl);
|
||||||
int list_folders(int sd, int *seq, int use_ssl, char *folder_name, struct __data *data);
|
int list_folders(int sd, int *seq, int use_ssl, char *folder_name, struct __data *data);
|
||||||
int process_imap_folder(int sd, int *seq, char *folder, struct session_data *sdata, struct __data *data, int use_ssl, int dryrun, struct __config *cfg);
|
int process_imap_folder(int sd, int *seq, char *folder, char *main_folder, struct session_data *sdata, struct __data *data, int use_ssl, int dryrun, struct __config *cfg);
|
||||||
void send_imap_close(int sd, int *seq, struct __data *data, int use_ssl);
|
void send_imap_close(int sd, int *seq, struct __data *data, int use_ssl);
|
||||||
|
|
||||||
#endif /* _IMPORT_H */
|
#endif /* _IMPORT_H */
|
||||||
|
@ -85,7 +85,7 @@ int import_from_imap_server(char *server, char *username, char *password, int po
|
|||||||
else {
|
else {
|
||||||
if(data->quiet == 0) printf("processing folder: %s... ", (char *)q->str);
|
if(data->quiet == 0) printf("processing folder: %s... ", (char *)q->str);
|
||||||
|
|
||||||
if(process_imap_folder(sd, &seq, q->str, sdata, data, use_ssl, dryrun, cfg) == ERR) ret = ERR;
|
if(process_imap_folder(sd, &seq, q->str, folder_imap, sdata, data, use_ssl, dryrun, cfg) == ERR) ret = ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -89,6 +89,7 @@ int main(int argc, char **argv){
|
|||||||
import.download_only = 0;
|
import.download_only = 0;
|
||||||
import.timeout = 30;
|
import.timeout = 30;
|
||||||
import.uid = 0;
|
import.uid = 0;
|
||||||
|
import.trim_folder_name = 0;
|
||||||
import.email = NULL;
|
import.email = NULL;
|
||||||
|
|
||||||
data.import = &import;
|
data.import = &import;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user