Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/csync
diff options
context:
space:
mode:
authorChristian Kamm <kamm@incasoftware.de>2015-02-27 13:25:03 +0300
committerChristian Kamm <kamm@incasoftware.de>2015-02-27 14:12:39 +0300
commitb03209ccef115eaee505d75648197bf1f0666474 (patch)
treea0e27f8be06d0aff8a8a17d5c72f26250f5fc4b8 /csync
parentec03ebd69fc461054bc96af2d86b82f9b629a518 (diff)
Inform user about ignored long files. #2882
Diffstat (limited to 'csync')
-rw-r--r--csync/src/csync.h1
-rw-r--r--csync/src/csync_exclude.c11
-rw-r--r--csync/src/csync_exclude.h3
-rw-r--r--csync/src/csync_update.c2
4 files changed, 14 insertions, 3 deletions
diff --git a/csync/src/csync.h b/csync/src/csync.h
index 5bca3c942..a3c490e13 100644
--- a/csync/src/csync.h
+++ b/csync/src/csync.h
@@ -105,6 +105,7 @@ enum csync_status_codes_e {
CSYNC_STATUS_INDIVIDUAL_IS_HARDLINK,
CSYNC_STATUS_INDIVIDUAL_IGNORE_LIST,
CSYNC_STATUS_INDIVIDUAL_IS_INVALID_CHARS,
+ CSYNC_STATUS_INDIVIDUAL_EXCLUDE_LONG_FILENAME,
CYSNC_STATUS_FILE_LOCKED_OR_OPEN
};
diff --git a/csync/src/csync_exclude.c b/csync/src/csync_exclude.c
index 583aebed1..198389ac7 100644
--- a/csync/src/csync_exclude.c
+++ b/csync/src/csync_exclude.c
@@ -224,14 +224,21 @@ CSYNC_EXCLUDE_TYPE csync_excluded_no_ctx(c_strlist_t *excludes, const char *path
}
rc = csync_fnmatch(".csync_journal.db*", bname, 0);
- // check the strlen and ignore the file silently if its name is longer than 254 chars.
- if (strlen(bname) > 254 || rc == 0) {
+ if (rc == 0) {
match = CSYNC_FILE_SILENTLY_EXCLUDED;
SAFE_FREE(bname);
SAFE_FREE(dname);
goto out;
}
+ // check the strlen and ignore the file if its name is longer than 254 chars.
+ if (strlen(bname) > 254) {
+ match = CSYNC_FILE_EXCLUDE_LONG_FILENAME;
+ SAFE_FREE(bname);
+ SAFE_FREE(dname);
+ goto out;
+ }
+
#ifdef _WIN32
// Windows cannot sync files ending in spaces (#2176). It also cannot
// distinguish files ending in '.' from files without an ending,
diff --git a/csync/src/csync_exclude.h b/csync/src/csync_exclude.h
index efc809f74..329d95763 100644
--- a/csync/src/csync_exclude.h
+++ b/csync/src/csync_exclude.h
@@ -26,7 +26,8 @@ enum csync_exclude_type_e {
CSYNC_FILE_SILENTLY_EXCLUDED,
CSYNC_FILE_EXCLUDE_AND_REMOVE,
CSYNC_FILE_EXCLUDE_LIST,
- CSYNC_FILE_EXCLUDE_INVALID_CHAR
+ CSYNC_FILE_EXCLUDE_INVALID_CHAR,
+ CSYNC_FILE_EXCLUDE_LONG_FILENAME
};
typedef enum csync_exclude_type_e CSYNC_EXCLUDE_TYPE;
diff --git a/csync/src/csync_update.c b/csync/src/csync_update.c
index f966309cb..fdb6df911 100644
--- a/csync/src/csync_update.c
+++ b/csync/src/csync_update.c
@@ -416,6 +416,8 @@ out:
st->error_status = CSYNC_STATUS_INDIVIDUAL_IGNORE_LIST; /* File listed on ignore list. */
} else if (excluded == CSYNC_FILE_EXCLUDE_INVALID_CHAR) {
st->error_status = CSYNC_STATUS_INDIVIDUAL_IS_INVALID_CHARS; /* File contains invalid characters. */
+ } else if (excluded == CSYNC_FILE_EXCLUDE_LONG_FILENAME) {
+ st->error_status = CSYNC_STATUS_INDIVIDUAL_EXCLUDE_LONG_FILENAME; /* File name is too long. */
}
}
if (st->instruction != CSYNC_INSTRUCTION_NONE && st->instruction != CSYNC_INSTRUCTION_IGNORE