From 5b223c2caa98068bb51d9c15123cadfe87b13297 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Fri, 12 Jul 2013 17:33:06 -0400 Subject: [PATCH] roken: do not require use of rk_mkdir on all platforms Although rk_mkdir can be provided on all platforms there is no reason to require that it be used by unconditionally mapping mkdir -> rk_mkdir Change-Id: Ic149500037abf446434332bf6ba67dfb3906cd72 --- lib/roken/Makefile.am | 2 +- lib/roken/mkdir.c | 2 +- lib/roken/roken-common.h | 1 - lib/roken/roken.h.in | 6 ++++++ windows/NTMakefile.config | 3 +++ 5 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/roken/Makefile.am b/lib/roken/Makefile.am index 2b22d8bb5..72d02d30f 100644 --- a/lib/roken/Makefile.am +++ b/lib/roken/Makefile.am @@ -94,8 +94,8 @@ libroken_la_SOURCES = \ issuid.c \ k_getpwnam.c \ k_getpwuid.c \ - mkdir.c \ mini_inetd.c \ + mkdir.c \ net_read.c \ net_write.c \ parse_bytes.c \ diff --git a/lib/roken/mkdir.c b/lib/roken/mkdir.c index ff4531e1d..55cd8f1cf 100644 --- a/lib/roken/mkdir.c +++ b/lib/roken/mkdir.c @@ -43,7 +43,7 @@ int ROKEN_LIB_FUNCTION rk_mkdir(const char *pathname, mode_t mode) { -#ifndef _WIN32 +#ifndef MKDIR_DOES_NOT_HAVE_MODE return mkdir(pathname, mode); #else /* Windows does not provide the ability to set access permissions */ diff --git a/lib/roken/roken-common.h b/lib/roken/roken-common.h index bf3ccf425..451a01082 100644 --- a/lib/roken/roken-common.h +++ b/lib/roken/roken-common.h @@ -505,7 +505,6 @@ ct_memcmp(const void *, const void *, size_t); void ROKEN_LIB_FUNCTION rk_random_init(void); -#define mkdir rk_mkdir ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL rk_mkdir(const char *, mode_t); diff --git a/lib/roken/roken.h.in b/lib/roken/roken.h.in index 598ff241b..2cf596c4f 100644 --- a/lib/roken/roken.h.in +++ b/lib/roken/roken.h.in @@ -688,6 +688,12 @@ ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL rk_rename(const char *, const char *); #define rk_rename(__rk_rn_from,__rk_rn_to) rename(__rk_rn_from,__rk_rn_to) #endif +#ifdef MKDIR_DOES_NOT_HAVE_MODE +#define mkdir rk_mkdir +#else +#define rk_mkdir(__rk_rn_name, __rk_rn_mode) mkdir(__rk_rn_name,__rk_rn_mode) +#endif + #if !defined(HAVE_DAEMON) || defined(NEED_DAEMON_PROTO) #ifndef HAVE_DAEMON #define daemon rk_daemon diff --git a/windows/NTMakefile.config b/windows/NTMakefile.config index 7e7d454fa..a29029bc9 100644 --- a/windows/NTMakefile.config +++ b/windows/NTMakefile.config @@ -90,6 +90,9 @@ NO_LOCALNAME=1 # No entropy-gathering daemon on Windows NO_RAND_EGD_METHOD=1 +# Windows CRT mkdir does not have the mode parameter +MKDIR_DOES_NOT_HAVE_MODE=1 + # Disable build of installers !ifndef NO_INSTALLERS BUILD_INSTALLERS=1