version 1.129, 2018/05/25 04:25:46 |
version 1.130, 2018/07/31 03:07:24 |
|
|
{ |
{ |
int i, ret = 0; |
int i, ret = 0; |
SFTP_DIRENT **dir_entries; |
SFTP_DIRENT **dir_entries; |
char *filename, *new_src, *new_dst; |
char *filename, *new_src = NULL, *new_dst = NULL; |
mode_t mode = 0777; |
mode_t mode = 0777; |
|
|
if (depth >= MAX_DIR_DEPTH) { |
if (depth >= MAX_DIR_DEPTH) { |
|
|
} |
} |
|
|
for (i = 0; dir_entries[i] != NULL && !interrupted; i++) { |
for (i = 0; dir_entries[i] != NULL && !interrupted; i++) { |
filename = dir_entries[i]->filename; |
free(new_dst); |
|
free(new_src); |
|
|
|
filename = dir_entries[i]->filename; |
new_dst = path_append(dst, filename); |
new_dst = path_append(dst, filename); |
new_src = path_append(src, filename); |
new_src = path_append(src, filename); |
|
|
|
|
} else |
} else |
logit("%s: not a regular file\n", new_src); |
logit("%s: not a regular file\n", new_src); |
|
|
free(new_dst); |
|
free(new_src); |
|
} |
} |
|
free(new_dst); |
|
free(new_src); |
|
|
if (preserve_flag) { |
if (preserve_flag) { |
if (dirattrib->flags & SSH2_FILEXFER_ATTR_ACMODTIME) { |
if (dirattrib->flags & SSH2_FILEXFER_ATTR_ACMODTIME) { |
|
|
int ret = 0; |
int ret = 0; |
DIR *dirp; |
DIR *dirp; |
struct dirent *dp; |
struct dirent *dp; |
char *filename, *new_src, *new_dst; |
char *filename, *new_src = NULL, *new_dst = NULL; |
struct stat sb; |
struct stat sb; |
Attrib a, *dirattrib; |
Attrib a, *dirattrib; |
|
|
|
|
while (((dp = readdir(dirp)) != NULL) && !interrupted) { |
while (((dp = readdir(dirp)) != NULL) && !interrupted) { |
if (dp->d_ino == 0) |
if (dp->d_ino == 0) |
continue; |
continue; |
|
free(new_dst); |
|
free(new_src); |
filename = dp->d_name; |
filename = dp->d_name; |
new_dst = path_append(dst, filename); |
new_dst = path_append(dst, filename); |
new_src = path_append(src, filename); |
new_src = path_append(src, filename); |
|
|
} |
} |
} else |
} else |
logit("%s: not a regular file\n", filename); |
logit("%s: not a regular file\n", filename); |
free(new_dst); |
|
free(new_src); |
|
} |
} |
|
free(new_dst); |
|
free(new_src); |
|
|
do_setstat(conn, dst, &a); |
do_setstat(conn, dst, &a); |
|
|