httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Jagielski <...@jaguNET.com>
Subject Re: svn commit: r759711 - /httpd/httpd/trunk/os/unix/unixd.c
Date Mon, 30 Mar 2009 14:57:55 GMT
FWIW, this means that apr-1.4 is no longer viable for httpd-trunk.
As of a few days ago, I could build with 1.4.x.... no longer.

Are we *sure* we want to do that?

Just asking :)

On Mar 29, 2009, at 12:05 PM, mturk@apache.org wrote:

> Author: mturk
> Date: Sun Mar 29 16:05:53 2009
> New Revision: 759711
>
> URL: http://svn.apache.org/viewvc?rev=759711&view=rev
> Log:
> Use apr-2 object perms setter
>
> Modified:
>    httpd/httpd/trunk/os/unix/unixd.c
>
> Modified: httpd/httpd/trunk/os/unix/unixd.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/os/unix/unixd.c?rev=759711&r1=759710&r2=759711&view=diff
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- httpd/httpd/trunk/os/unix/unixd.c (original)
> +++ httpd/httpd/trunk/os/unix/unixd.c Sun Mar 29 16:05:53 2009
> @@ -26,6 +26,7 @@
> #include "apr_thread_proc.h"
> #include "apr_strings.h"
> #include "apr_portable.h"
> +#include "apr_perms_set.h"
> #ifdef HAVE_PWD_H
> #include <pwd.h>
> #endif
> @@ -208,71 +209,19 @@
>                                               attr, ugid, p);
> }
>
> -/* XXX move to APR and externalize (but implement differently :) ) */
> -static apr_lockmech_e proc_mutex_mech(apr_proc_mutex_t *pmutex)
> -{
> -    const char *mechname = apr_proc_mutex_name(pmutex);
> -
> -    if (!strcmp(mechname, "sysvsem")) {
> -        return APR_LOCK_SYSVSEM;
> -    }
> -    else if (!strcmp(mechname, "flock")) {
> -        return APR_LOCK_FLOCK;
> -    }
> -    return APR_LOCK_DEFAULT;
> -}
> -
> AP_DECLARE(apr_status_t)  
> ap_unixd_set_proc_mutex_perms(apr_proc_mutex_t *pmutex)
> {
> +    apr_status_t rv = APR_SUCCESS;
>     if (!geteuid()) {
> -        apr_lockmech_e mech = proc_mutex_mech(pmutex);
> -
> -        switch(mech) {
> -#if APR_HAS_SYSVSEM_SERIALIZE
> -        case APR_LOCK_SYSVSEM:
> -        {
> -            apr_os_proc_mutex_t ospmutex;
> -#if !APR_HAVE_UNION_SEMUN
> -            union semun {
> -                long val;
> -                struct semid_ds *buf;
> -                unsigned short *array;
> -            };
> -#endif
> -            union semun ick;
> -            struct semid_ds buf;
> -
> -            apr_os_proc_mutex_get(&ospmutex, pmutex);
> -            buf.sem_perm.uid = ap_unixd_config.user_id;
> -            buf.sem_perm.gid = ap_unixd_config.group_id;
> -            buf.sem_perm.mode = 0600;
> -            ick.buf = &buf;
> -            if (semctl(ospmutex.crossproc, 0, IPC_SET, ick) < 0) {
> -                return errno;
> -            }
> -        }
> -        break;
> -#endif
> -#if APR_HAS_FLOCK_SERIALIZE
> -        case APR_LOCK_FLOCK:
> -        {
> -            const char *lockfile = apr_proc_mutex_lockfile(pmutex);
> -
> -            if (lockfile) {
> -                if (chown(lockfile, ap_unixd_config.user_id,
> -                          -1 /* no gid change */) < 0) {
> -                    return errno;
> -                }
> -            }
> -        }
> -        break;
> -#endif
> -        default:
> -            /* do nothing */
> -            break;
> +        rv = APR_PERMS_SET_FN(proc_mutex)(pmutex,
> +                                          APR_FPROT_GWRITE |  
> APR_FPROT_UWRITE,
> +                                          ap_unixd_config.user_id,
> +                                          ap_unixd_config.group_id);
> +        if (rv == APR_ENOTIMPL) {
> +            rv = APR_SUCCESS;
>         }
>     }
> -    return APR_SUCCESS;
> +    return rv;
> }
>
> AP_DECLARE(apr_status_t)  
> ap_unixd_set_global_mutex_perms(apr_global_mutex_t *gmutex)
>
>


Mime
View raw message