summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert James Kaes <rjkaes@users.sourceforge.net>2002-11-21 21:51:34 +0000
committerRobert James Kaes <rjkaes@users.sourceforge.net>2002-11-21 21:51:34 +0000
commit820832a647cbe62ca4b473bd1a4ee33f7a2664df (patch)
tree70a3dded011c26cdf16c5c9c70b4a02268edc4ca
parent6610ad0a1ba14a7633dcab47a14bb50b79d0dd11 (diff)
downloadtinyproxy-820832a647cbe62ca4b473bd1a4ee33f7a2664df.tar.gz
tinyproxy-820832a647cbe62ca4b473bd1a4ee33f7a2664df.zip
(create_file_safely): Rather than exiting the program if there is an
error, a negative "error code" is returned to the program. The various callers then need to decide what to do. (pidfile_create): Returns an error status depending on whether the PID file was created successfully.
-rw-r--r--src/utils.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/utils.c b/src/utils.c
index 9b840f8..a26f698 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -1,4 +1,4 @@
-/* $Id: utils.c,v 1.34 2002-07-09 19:02:57 rjkaes Exp $
+/* $Id: utils.c,v 1.35 2002-11-21 21:51:34 rjkaes Exp $
*
* Misc. routines which are used by the various functions to handle strings
* and memory allocation and pretty much anything else we can think of. Also,
@@ -157,7 +157,7 @@ create_file_safely(const char *filename, bool_t truncate_file)
fprintf(stderr,
"%s: Error checking file %s: %s\n",
PACKAGE, filename, strerror(errno));
- exit(EX_IOERR);
+ return -EACCES;
}
/*
@@ -170,7 +170,7 @@ create_file_safely(const char *filename, bool_t truncate_file)
fprintf(stderr,
"%s: Could not create file %s: %s\n",
PACKAGE, filename, strerror(errno));
- exit(EX_CANTCREAT);
+ return fildes;
}
} else {
struct stat fstatinfo;
@@ -187,7 +187,7 @@ create_file_safely(const char *filename, bool_t truncate_file)
fprintf(stderr,
"%s: Could not open file %s: %s\n",
PACKAGE, filename, strerror(errno));
- exit(EX_IOERR);
+ return fildes;
}
/*
@@ -202,7 +202,7 @@ create_file_safely(const char *filename, bool_t truncate_file)
"%s: The file %s has been changed before it could be opened\n",
PACKAGE, filename);
close(fildes);
- exit(EX_IOERR);
+ return -EIO;
}
/*
@@ -217,7 +217,7 @@ create_file_safely(const char *filename, bool_t truncate_file)
"%s: The file %s has too many links, or is not a regular file: %s\n",
PACKAGE, filename, strerror(errno));
close(fildes);
- exit(EX_IOERR);
+ return -EMLINK;
}
/*
@@ -244,7 +244,7 @@ create_file_safely(const char *filename, bool_t truncate_file)
fprintf(stderr,
"%s: Could not open file %s: %s.",
PACKAGE, filename, strerror(errno));
- exit(EX_IOERR);
+ return fildes;
}
#endif /* HAVE_FTRUNCATE */
}
@@ -255,7 +255,7 @@ create_file_safely(const char *filename, bool_t truncate_file)
/*
* Write the PID of the program to the specified file.
*/
-void
+int
pidfile_create(const char *filename)
{
int fildes;
@@ -265,7 +265,7 @@ pidfile_create(const char *filename)
* Create a new file
*/
if ((fildes = create_file_safely(filename, TRUE)) < 0)
- exit(1);
+ return fildes;
/*
* Open a stdio file over the low-level one.
@@ -276,9 +276,10 @@ pidfile_create(const char *filename)
PACKAGE, filename, strerror(errno));
close(fildes);
unlink(filename);
- exit(EX_IOERR);
+ return -EIO;
}
fprintf(fd, "%ld\n", (long) getpid());
fclose(fd);
+ return 0;
}