+ 797. [func] Issue a warning if the 'directory' option contains
+ a relative path. [RT #269]
796. [func] When a size limit is associated with a log file,
only roll it when the size is reached, not every
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: server.c,v 1.313 2001/03/27 18:17:09 gson Exp $ */
+/* $Id: server.c,v 1.314 2001/03/29 02:33:43 bwelling Exp $ */
#include <config.h>
* Change directory.
*/
directory = cfg_obj_asstring(obj);
+
+ if (!isc_file_isabsolute(directory) &&
+ !isc_file_iscurrentdir(directory))
+ cfg_obj_log(obj, ns_g_lctx, ISC_LOG_WARNING,
+ "directory '%s' contains a relative path",
+ directory);
+
result = isc_dir_chdir(directory);
if (result != ISC_R_SUCCESS) {
cfg_obj_log(obj, ns_g_lctx, ISC_LOG_ERROR,
- "change directory to '%s' failed: %s",
- directory, isc_result_totext(result));
+ "change directory to '%s' failed: %s",
+ directory, isc_result_totext(result));
return (result);
}
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: file.h,v 1.14 2001/01/09 21:56:54 bwelling Exp $ */
+/* $Id: file.h,v 1.15 2001/03/29 02:33:47 bwelling Exp $ */
#ifndef ISC_FILE_H
#define ISC_FILE_H 1
* Return ISC_TRUE iff the given file name is absolute.
*/
+isc_boolean_t
+isc_file_iscurrentdir(const char *filename);
+/*
+ * Return ISC_TRUE iff the given file name is the current directory (".").
+ */
+
isc_result_t
isc_file_template(const char *path, const char *templet, char *buf,
size_t buflen);
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: file.c,v 1.28 2001/01/09 21:58:17 bwelling Exp $ */
+/* $Id: file.c,v 1.29 2001/03/29 02:33:48 bwelling Exp $ */
#include <config.h>
isc_file_isabsolute(const char *filename) {
return (ISC_TF(filename[0] == '/'));
}
+
+isc_boolean_t
+isc_file_iscurrentdir(const char *filename) {
+ return (ISC_TF(filename[0] == '.' && filename[1] == '\0'));
+}