From bba53fab03d49e1330ca1292ed18e84bd5f5b1ef Mon Sep 17 00:00:00 2001 From: Ryo Nakamura Date: Thu, 11 Jan 2024 21:23:33 +0900 Subject: don't allocate char[PATH_MAX] for each file This commit makes struct path allocation use strndup(). It reduices the memory footprint for struct path per file (issue #8). --- src/path.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/path.h') diff --git a/src/path.h b/src/path.h index dbaa585..ffef60b 100644 --- a/src/path.h +++ b/src/path.h @@ -14,11 +14,11 @@ struct path { struct list_head list; /* mscp->path_list */ - char path[PATH_MAX]; /* file path */ - size_t size; /* size of file on this path */ - mode_t mode; /* permission */ + char *path; /* file path */ + size_t size; /* size of file on this path */ + mode_t mode; /* permission */ - char dst_path[PATH_MAX]; /* copy dst path */ + char *dst_path; /* copy dst path */ int state; lock lock; @@ -93,6 +93,9 @@ struct path_resolve_args { int walk_src_path(sftp_session src_sftp, const char *src_path, struct list_head *path_list, struct path_resolve_args *a); +/* free struct path */ +void free_path(struct path *p); + /* copy a chunk. either src_sftp or dst_sftp is not null, and another is null */ int copy_chunk(FILE *msg_fp, struct chunk *c, sftp_session src_sftp, sftp_session dst_sftp, -- cgit v1.2.3