summaryrefslogtreecommitdiff
path: root/modules/ssl/ssl_engine_mutex.c
diff options
context:
space:
mode:
authorJeff Trawick <trawick@apache.org>2003-06-07 19:50:01 +0000
committerJeff Trawick <trawick@apache.org>2003-06-07 19:50:01 +0000
commit8f0cd048e0b367e4067e3cb3f26aa165e7fcef3c (patch)
tree70891727fda05c5dcb6351a1a4fe3ccceb212eae /modules/ssl/ssl_engine_mutex.c
parentd7d7c6a73e974374ee88a425d4cc2a153c3600b7 (diff)
downloadhttpd-8f0cd048e0b367e4067e3cb3f26aa165e7fcef3c.tar.gz
Unix: Handle permissions settings for flock-based mutexes in
unixd_set_global|proc_mutex_perms(). Allow the functions to be called for any type of mutex. This resolves a fatal problem with mod_rewrite on systems where APR uses flock-based mutex. It simplifies mod_ssl as well, which had special logic to perform the chown(). It fixed an init error with mod_ssl on systems where flock is used when the user had no SSLMutex directive. The Unix MPMs continue to call unixd_set_global|proc_mutex_perms() only for SysV sems. There is no permission problem with flock-based accept mutexes since the child init logic for the MPMs is done prior to switching identity. PR: 20312 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100189 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/ssl/ssl_engine_mutex.c')
-rw-r--r--modules/ssl/ssl_engine_mutex.c26
1 files changed, 8 insertions, 18 deletions
diff --git a/modules/ssl/ssl_engine_mutex.c b/modules/ssl/ssl_engine_mutex.c
index ad029b02d7..dbb95bb262 100644
--- a/modules/ssl/ssl_engine_mutex.c
+++ b/modules/ssl/ssl_engine_mutex.c
@@ -63,6 +63,7 @@
#include "mod_ssl.h"
#if !defined(OS2) && !defined(WIN32) && !defined(BEOS) && !defined(NETWARE)
#include "unixd.h"
+#define MOD_SSL_SET_MUTEX_PERMS /* XXX Apache should define something */
#endif
int ssl_mutex_init(server_rec *s, apr_pool_t *p)
@@ -88,25 +89,14 @@ int ssl_mutex_init(server_rec *s, apr_pool_t *p)
"Cannot create SSLMutex");
return FALSE;
}
-#if !defined(OS2) && !defined(WIN32) && !defined(BEOS) && !defined(NETWARE)
- if (mc->szMutexFile && mc->ChownMutexFile == TRUE)
- chown(mc->szMutexFile, unixd_config.user_id, -1);
-#endif
-#if APR_HAS_SYSVSEM_SERIALIZE
-#if APR_USE_SYSVSEM_SERIALIZE
- if (mc->nMutexMech == APR_LOCK_DEFAULT ||
- mc->nMutexMech == APR_LOCK_SYSVSEM) {
-#else
- if (mc->nMutexMech == APR_LOCK_SYSVSEM) {
-#endif
- rv = unixd_set_global_mutex_perms(mc->pMutex);
- if (rv != APR_SUCCESS) {
- ap_log_error(APLOG_MARK, APLOG_ERR, rv, s,
- "Could not set permissions on ssl_mutex; check User "
- "and Group directives");
- return FALSE;
- }
+#ifdef MOD_SSL_SET_MUTEX_PERMS
+ rv = unixd_set_global_mutex_perms(mc->pMutex);
+ if (rv != APR_SUCCESS) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, rv, s,
+ "Could not set permissions on ssl_mutex; check User "
+ "and Group directives");
+ return FALSE;
}
#endif
return TRUE;