From f81b6c8fd0993a86de62fb164693a033e94bf9a4 Mon Sep 17 00:00:00 2001 From: SJ Date: Sun, 14 May 2017 17:48:47 +0200 Subject: [PATCH] rename path fix Change-Id: Ib46c6e869fb0ce31ff90f3bc33f60ef2bfcbaddb Signed-off-by: SJ --- src/import.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/import.c b/src/import.c index 864b3a4d..1b973f0a 100644 --- a/src/import.c +++ b/src/import.c @@ -20,7 +20,7 @@ int import_message(char *filename, struct session_data *sdata, struct __data *data, struct __config *cfg){ int rc=ERR; - char *rule, newpath[SMALLBUFSIZE]; + char *p, *rule, newpath[SMALLBUFSIZE]; struct stat st; struct parser_state state; struct counters counters; @@ -127,8 +127,16 @@ int import_message(char *filename, struct session_data *sdata, struct __data *da } if(rc != OK && data->import->failed_folder){ - snprintf(newpath, sizeof(newpath)-2, "%s/%s", data->import->failed_folder, filename); - rename(filename, newpath); + p = strrchr(filename, '/'); + if(p) + p++; + else + p = filename; + + snprintf(newpath, sizeof(newpath)-2, "%s/%s", data->import->failed_folder, p); + + if(rename(filename, newpath)) + printf("cannot move %s to %s\n", filename, newpath); } return rc;