diff options
| author | Andrew Tridgell <tridge@samba.org> | 1998-03-23 13:25:30 +0000 |
|---|---|---|
| committer | Andrew Tridgell <tridge@samba.org> | 1998-03-23 13:25:30 +0000 |
| commit | 31e125226d429c2f6df010a9277bb9ebfdc2cf54 (patch) | |
| tree | 6a8a14df7dbb99058b5930d1fd3bdc654fcbcfe6 /syscall.c | |
| parent | 3a6a366fc5ac1f418446128de50b4f2a174399fc (diff) | |
| download | android_external_rsync-31e125226d429c2f6df010a9277bb9ebfdc2cf54.tar.gz android_external_rsync-31e125226d429c2f6df010a9277bb9ebfdc2cf54.tar.bz2 android_external_rsync-31e125226d429c2f6df010a9277bb9ebfdc2cf54.zip | |
added wrappers around all the system calls that can change what is on
disk. The wrappers check for dry_run.
Diffstat (limited to 'syscall.c')
| -rw-r--r-- | syscall.c | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/syscall.c b/syscall.c new file mode 100644 index 00000000..d92cb314 --- /dev/null +++ b/syscall.c @@ -0,0 +1,61 @@ +/* + Copyright (C) Andrew Tridgell 1998 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +/* + syscall wrappers to ensure that nothing gets done in dry_run mode + */ + +#include "rsync.h" + +extern int dry_run; + +int do_unlink(char *fname) +{ + if (dry_run) return 0; + return unlink(fname); +} + +int do_symlink(char *fname1, char *fname2) +{ + if (dry_run) return 0; + return symlink(fname1, fname2); +} + +int do_link(char *fname1, char *fname2) +{ + if (dry_run) return 0; + return link(fname1, fname2); +} + +int do_mknod(char *pathname, mode_t mode, dev_t dev) +{ + if (dry_run) return 0; + return mknod(pathname, mode, dev); +} + +int do_rmdir(char *pathname) +{ + if (dry_run) return 0; + return rmdir(pathname); +} + +int do_open(char *pathname, int flags, mode_t mode) +{ + if (dry_run) return -1; + return open(pathname, flags, mode); +} |
