void request_free(REQUEST **request);
int rad_mkdir(char *directory, mode_t mode);
int rad_checkfilename(const char *filename);
+int rad_file_exists(const char *filename);
void *rad_malloc(size_t size); /* calls exit(1) on error! */
void *rad_calloc(size_t size); /* calls exit(1) on error! */
void rad_const_free(const void *ptr);
return -1;
}
+/** Check if file exists
+ *
+ * @param filename to check.
+ * @return 0 if the file does not exist, 1 if the file exists, -1 if the file
+ * exists but there was an error opening it. errno value should be usable
+ * for error messages.
+ */
+int rad_file_exists(const char *filename)
+{
+ int des;
+ int ret = 1;
+
+ if ((des = open(filename, O_RDONLY)) == -1) {
+ if (errno == ENOENT) {
+ ret = 0;
+ } else {
+ ret = -1;
+ }
+ } else {
+ close(des);
+ }
+
+ return ret;
+}
+
/*
* Create possibly many directories.
*