aboutsummaryrefslogtreecommitdiff
path: root/src/wydawca.h
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2020-04-13 21:50:15 +0300
committerSergey Poznyakoff <gray@gnu.org>2020-04-13 22:32:40 +0300
commit2f3ec2402f827066cb55ae562154106433d29ac2 (patch)
tree87e650e32e90da305478c17e1e9730932e4e3c50 /src/wydawca.h
parenta9d38e5de5cceb667bec3db15fed68f7e8d96a8b (diff)
downloadwydawca-2f3ec2402f827066cb55ae562154106433d29ac2.tar.gz
wydawca-2f3ec2402f827066cb55ae562154106433d29ac2.tar.bz2
Rewrite diskio function so as not to assume any particular cwd
* src/backup.c (get_backup_suffix) (find_backup_file_name): Get directory descriptor as first argument. * src/diskio.c: Rewrite using *at() functions. * src/gpg.c (rmdir_r): Silently skip ENOENT. (verify_detached_signature): push_dir/pop_dir. * src/triplet.c: Don't change to spool->source_dir. Underlying functions don't assume any specific cwd. * src/wydawca.h (find_backup_file_name) (create_hierarchy): Change signatures. All uses changed. * tests/Makefile.am: Add new tests. * tests/testsuite.at: Likewise. (AT_WYDAWCA_DAEMON): Take additional argument. * tests/inotify-rmsymlink.at: New test. * tests/inotify-symlink.at: New test. * tests/rmsymlink00.at: New test. * tests/symlink00.at: New test. * tests/symlink01.at: New test. * tests/dist/rmsymlink.directive.asc: New directive file. * tests/dist/symlink.directive.asc: New directive file.
Diffstat (limited to 'src/wydawca.h')
-rw-r--r--src/wydawca.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/wydawca.h b/src/wydawca.h
index fd0bbfb..784a30f 100644
--- a/src/wydawca.h
+++ b/src/wydawca.h
@@ -120,7 +120,7 @@ enum backup_type {
extern char const *simple_backup_suffix;
-char *find_backup_file_name(char const *, enum backup_type);
+char *find_backup_file_name(int, char const *, enum backup_type);
const char *split_filename(char const *file, char **pdir);
#define METADATA_NONE 0
@@ -375,7 +375,7 @@ size_t trim(char *str);
int test_dir(const char *name, int *ec);
char *create_directory(const char *base, const char *name);
-int create_hierarchy(char const *dir, size_t baselen);
+int create_hierarchy(int dirfd, char const *dir);
void parse_config(void);
void log_output(int prio, const char *prog, FILE * fp);
@@ -493,8 +493,9 @@ int symlink_file(struct wy_triplet *trp,
int rmsymlink_file(struct wy_triplet *trp, const char *file_name);
/* diskio.c */
-char *concat_dir(const char *base, const char *name, size_t * pbaselen);
-int copy_file(const char *file, const char *dst_file);
+char *concat_file(char const *dir, ...);
+int copy_file(int src_dirfd, const char *src_file,
+ int dst_dirfd, const char *dst_file);
int dir_test_url(wy_url_t url, grecs_locus_t * locus);
int dir_move_file(struct wy_triplet *trp, enum file_type file_id);

Return to:

Send suggestions and report system problems to the System administrator.