#include "http_main.h"
#include "http_log.h"
#include "unixd.h"
-#include "apr_lock.h"
#include "mpm_common.h"
#include "os.h"
#include "ap_mpm.h"
attr, ugid, p);
}
-AP_DECLARE(apr_status_t) unixd_set_lock_perms(apr_lock_t *lock)
-{
-/* MPM shouldn't call us unless we're actually using a SysV sem;
- * this is just to avoid compile issues on systems without that
- * feature
- */
-#if APR_HAS_SYSVSEM_SERIALIZE
- apr_os_lock_t oslock;
-#if !APR_HAVE_UNION_SEMUN
- union semun {
- long val;
- struct semid_ds *buf;
- ushort *array;
- };
-#endif
- union semun ick;
- struct semid_ds buf;
-
- if (!geteuid()) {
- apr_os_lock_get(&oslock, lock);
- buf.sem_perm.uid = unixd_config.user_id;
- buf.sem_perm.gid = unixd_config.group_id;
- buf.sem_perm.mode = 0600;
- ick.buf = &buf;
- if (semctl(oslock.crossproc, 0, IPC_SET, ick) < 0) {
- return errno;
- }
- }
-#endif
- return APR_SUCCESS;
-}
-
AP_DECLARE(apr_status_t) unixd_set_proc_mutex_perms(apr_proc_mutex_t *pmutex)
{
/* MPM shouldn't call us unless we're actually using a SysV sem;
#endif
#include "apr_hooks.h"
#include "apr_thread_proc.h"
-#include "apr_lock.h"
#include "apr_proc_mutex.h"
#include <pwd.h>
AP_DECLARE(void) unixd_set_rlimit(cmd_parms *cmd, struct rlimit **plimit,
const char *arg, const char * arg2, int type);
#endif
-AP_DECLARE(apr_status_t) unixd_set_lock_perms(apr_lock_t *lock);
AP_DECLARE(apr_status_t) unixd_set_proc_mutex_perms(apr_proc_mutex_t *pmutex);
AP_DECLARE(apr_status_t) unixd_accept(void **accepted, ap_listen_rec *lr, apr_pool_t *ptrans);