summaryrefslogtreecommitdiffstats
path: root/src/libbbsutil/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libbbsutil/file.c')
-rw-r--r--src/libbbsutil/file.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libbbsutil/file.c b/src/libbbsutil/file.c
index 5cc0b541..21313283 100644
--- a/src/libbbsutil/file.c
+++ b/src/libbbsutil/file.c
@@ -203,7 +203,11 @@ Rename(const char *src, const char *dst)
if (pid == 0)
execl("/bin/mv", "mv", "-f", src, dst, (char *)NULL);
else if (pid > 0)
- waitpid(pid, NULL, 0);
+ {
+ int status = -1;
+ waitpid(pid, &status, 0);
+ return WEXITSTATUS(status) == 0 ? 0 : -1;
+ }
else
return -1;
}
@@ -262,6 +266,7 @@ AppendTail(const char *src, const char *dst, int off)
fo=open(dst, O_WRONLY | O_APPEND | O_CREAT, 0600);
if(fo<0) {close(fi); return -1;}
+ // flock(dst, LOCK_SH);
if(off > 0)
lseek(fi, (off_t)off, SEEK_SET);
@@ -270,6 +275,7 @@ AppendTail(const char *src, const char *dst, int off)
{
write(fo, buf, bytes);
}
+ // flock(dst, LOCK_UN);
close(fo);
close(fi);
return 0;