You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Jeff Trawick <tr...@gmail.com> on 2014/01/28 18:48:51 UTC

Re: svn commit: r1561385 - /httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c

On Sat, Jan 25, 2014 at 3:11 PM, <ji...@apache.org> wrote:

> Author: jim
> Date: Sat Jan 25 20:11:50 2014
> New Revision: 1561385
>
> URL: http://svn.apache.org/r1561385
> Log:
> Remove wonky and unneeded code. We have access
> cross forks, so child processes have access.
>

I see that you are saying it is okay, but I have to ask anyway:  For SysV
shared memory specifically, apr_shm_attach() in the child still works when
parent is root and child is not root?


>
> When we need true external access, this is something
> that APR shm must provide. We should have no
> knowledge of APR internals.
>
> Modified:
>     httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
>
> Modified: httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
> URL:
> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c?rev=1561385&r1=1561384&r2=1561385&view=diff
>
> ==============================================================================
> --- httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c (original)
> +++ httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c Sat Jan 25
> 20:11:50 2014
> @@ -88,40 +88,6 @@ static apr_pool_t *gpool = NULL;
>  #define DEFAULT_SLOTMEM_SUFFIX ".shm"
>  #define DEFAULT_SLOTMEM_PERSIST_SUFFIX ".persist"
>
> -/* apr:shmem/unix/shm.c */
> -static apr_status_t unixd_set_shm_perms(const char *fname)
> -{
> -#ifdef AP_NEED_SET_MUTEX_PERMS
> -#if APR_USE_SHMEM_SHMGET || APR_USE_SHMEM_SHMGET_ANON
> -    struct shmid_ds shmbuf = { { 0 } };
> -    key_t shmkey;
> -    int shmid;
> -
> -    shmkey = ftok(fname, 1);
> -    if (shmkey == (key_t)-1) {
> -        return errno;
> -    }
> -    if ((shmid = shmget(shmkey, 0, SHM_R | SHM_W)) == -1) {
> -        return errno;
> -    }
> -#if MODULE_MAGIC_NUMBER_MAJOR <= 20081212
> -#define ap_unixd_config unixd_config
> -#endif
> -    shmbuf.shm_perm.uid  = ap_unixd_config.user_id;
> -    shmbuf.shm_perm.gid  = ap_unixd_config.group_id;
> -    shmbuf.shm_perm.mode = 0600;
> -    if (shmctl(shmid, IPC_SET, &shmbuf) == -1) {
> -        return errno;
> -    }
> -    return APR_SUCCESS;
> -#else
> -    return APR_ENOTIMPL;
> -#endif
> -#else
> -    return APR_ENOTIMPL;
> -#endif
> -}
> -
>  /*
>   * Persist the slotmem in a file
>   * slotmem name and file name.
> @@ -413,15 +379,6 @@ static apr_status_t slotmem_create(ap_sl
>          if (rv != APR_SUCCESS) {
>              return rv;
>          }
> -        if (fbased) {
> -            /* Set permissions to shared memory
> -             * so it can be attached by child process
> -             * having different user credentials
> -             *
> -             * See apr:shmem/unix/shm.c
> -             */
> -            unixd_set_shm_perms(fname);
> -        }
>          ptr = (char *)apr_shm_baseaddr_get(shm);
>          desc.size = item_size;
>          desc.num = item_num;
>
>
>


-- 
Born in Roswell... married an alien...
http://emptyhammock.com/

Re: svn commit: r1561385 - /httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c

Posted by Jim Jagielski <ji...@jaguNET.com>.
It's also worth noting that we don't actually *do*
an attach()...
On Jan 29, 2014, at 10:02 AM, Jim Jagielski <ji...@jaguNET.com> wrote:

> But I would prefer others testing as well...
> 
> It's worth noting that it's just slotmem which did
> this and so, if it was "required" any other use of
> shared mem which child processes needed to have access
> to cross forks would be broken. And it was just the SysV
> shm which did this.
> 
> I *still* think that APR should backport the set_perm stuff
> from trunk to 1.5, but I think that breaks ABI. But *that's*
> where it belongs (in apr, not httpd).
> 
> On Jan 29, 2014, at 7:33 AM, Jim Jagielski <ji...@jaguNET.com> wrote:
> 
>> Yes, it still works (at least in all my testing) :)
>> 
>> On Jan 28, 2014, at 12:48 PM, Jeff Trawick <tr...@gmail.com> wrote:
>> 
>>> On Sat, Jan 25, 2014 at 3:11 PM, <ji...@apache.org> wrote:
>>> Author: jim
>>> Date: Sat Jan 25 20:11:50 2014
>>> New Revision: 1561385
>>> 
>>> URL: http://svn.apache.org/r1561385
>>> Log:
>>> Remove wonky and unneeded code. We have access
>>> cross forks, so child processes have access.
>>> 
>>> I see that you are saying it is okay, but I have to ask anyway:  For SysV shared memory specifically, apr_shm_attach() in the child still works when parent is root and child is not root?
>>> 
>>> 
>>> When we need true external access, this is something
>>> that APR shm must provide. We should have no
>>> knowledge of APR internals.
>>> 
>>> Modified:
>>>   httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
>>> 
>>> Modified: httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
>>> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c?rev=1561385&r1=1561384&r2=1561385&view=diff
>>> ==============================================================================
>>> --- httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c (original)
>>> +++ httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c Sat Jan 25 20:11:50 2014
>>> @@ -88,40 +88,6 @@ static apr_pool_t *gpool = NULL;
>>> #define DEFAULT_SLOTMEM_SUFFIX ".shm"
>>> #define DEFAULT_SLOTMEM_PERSIST_SUFFIX ".persist"
>>> 
>>> -/* apr:shmem/unix/shm.c */
>>> -static apr_status_t unixd_set_shm_perms(const char *fname)
>>> -{
>>> -#ifdef AP_NEED_SET_MUTEX_PERMS
>>> -#if APR_USE_SHMEM_SHMGET || APR_USE_SHMEM_SHMGET_ANON
>>> -    struct shmid_ds shmbuf = { { 0 } };
>>> -    key_t shmkey;
>>> -    int shmid;
>>> -
>>> -    shmkey = ftok(fname, 1);
>>> -    if (shmkey == (key_t)-1) {
>>> -        return errno;
>>> -    }
>>> -    if ((shmid = shmget(shmkey, 0, SHM_R | SHM_W)) == -1) {
>>> -        return errno;
>>> -    }
>>> -#if MODULE_MAGIC_NUMBER_MAJOR <= 20081212
>>> -#define ap_unixd_config unixd_config
>>> -#endif
>>> -    shmbuf.shm_perm.uid  = ap_unixd_config.user_id;
>>> -    shmbuf.shm_perm.gid  = ap_unixd_config.group_id;
>>> -    shmbuf.shm_perm.mode = 0600;
>>> -    if (shmctl(shmid, IPC_SET, &shmbuf) == -1) {
>>> -        return errno;
>>> -    }
>>> -    return APR_SUCCESS;
>>> -#else
>>> -    return APR_ENOTIMPL;
>>> -#endif
>>> -#else
>>> -    return APR_ENOTIMPL;
>>> -#endif
>>> -}
>>> -
>>> /*
>>> * Persist the slotmem in a file
>>> * slotmem name and file name.
>>> @@ -413,15 +379,6 @@ static apr_status_t slotmem_create(ap_sl
>>>        if (rv != APR_SUCCESS) {
>>>            return rv;
>>>        }
>>> -        if (fbased) {
>>> -            /* Set permissions to shared memory
>>> -             * so it can be attached by child process
>>> -             * having different user credentials
>>> -             *
>>> -             * See apr:shmem/unix/shm.c
>>> -             */
>>> -            unixd_set_shm_perms(fname);
>>> -        }
>>>        ptr = (char *)apr_shm_baseaddr_get(shm);
>>>        desc.size = item_size;
>>>        desc.num = item_num;
>>> 
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Born in Roswell... married an alien...
>>> http://emptyhammock.com/
>> 
> 


Re: svn commit: r1561385 - /httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c

Posted by Jim Jagielski <ji...@jaguNET.com>.
It's also worth noting that we don't actually *do*
an attach()...
On Jan 29, 2014, at 10:02 AM, Jim Jagielski <ji...@jaguNET.com> wrote:

> But I would prefer others testing as well...
> 
> It's worth noting that it's just slotmem which did
> this and so, if it was "required" any other use of
> shared mem which child processes needed to have access
> to cross forks would be broken. And it was just the SysV
> shm which did this.
> 
> I *still* think that APR should backport the set_perm stuff
> from trunk to 1.5, but I think that breaks ABI. But *that's*
> where it belongs (in apr, not httpd).
> 
> On Jan 29, 2014, at 7:33 AM, Jim Jagielski <ji...@jaguNET.com> wrote:
> 
>> Yes, it still works (at least in all my testing) :)
>> 
>> On Jan 28, 2014, at 12:48 PM, Jeff Trawick <tr...@gmail.com> wrote:
>> 
>>> On Sat, Jan 25, 2014 at 3:11 PM, <ji...@apache.org> wrote:
>>> Author: jim
>>> Date: Sat Jan 25 20:11:50 2014
>>> New Revision: 1561385
>>> 
>>> URL: http://svn.apache.org/r1561385
>>> Log:
>>> Remove wonky and unneeded code. We have access
>>> cross forks, so child processes have access.
>>> 
>>> I see that you are saying it is okay, but I have to ask anyway:  For SysV shared memory specifically, apr_shm_attach() in the child still works when parent is root and child is not root?
>>> 
>>> 
>>> When we need true external access, this is something
>>> that APR shm must provide. We should have no
>>> knowledge of APR internals.
>>> 
>>> Modified:
>>>   httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
>>> 
>>> Modified: httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
>>> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c?rev=1561385&r1=1561384&r2=1561385&view=diff
>>> ==============================================================================
>>> --- httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c (original)
>>> +++ httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c Sat Jan 25 20:11:50 2014
>>> @@ -88,40 +88,6 @@ static apr_pool_t *gpool = NULL;
>>> #define DEFAULT_SLOTMEM_SUFFIX ".shm"
>>> #define DEFAULT_SLOTMEM_PERSIST_SUFFIX ".persist"
>>> 
>>> -/* apr:shmem/unix/shm.c */
>>> -static apr_status_t unixd_set_shm_perms(const char *fname)
>>> -{
>>> -#ifdef AP_NEED_SET_MUTEX_PERMS
>>> -#if APR_USE_SHMEM_SHMGET || APR_USE_SHMEM_SHMGET_ANON
>>> -    struct shmid_ds shmbuf = { { 0 } };
>>> -    key_t shmkey;
>>> -    int shmid;
>>> -
>>> -    shmkey = ftok(fname, 1);
>>> -    if (shmkey == (key_t)-1) {
>>> -        return errno;
>>> -    }
>>> -    if ((shmid = shmget(shmkey, 0, SHM_R | SHM_W)) == -1) {
>>> -        return errno;
>>> -    }
>>> -#if MODULE_MAGIC_NUMBER_MAJOR <= 20081212
>>> -#define ap_unixd_config unixd_config
>>> -#endif
>>> -    shmbuf.shm_perm.uid  = ap_unixd_config.user_id;
>>> -    shmbuf.shm_perm.gid  = ap_unixd_config.group_id;
>>> -    shmbuf.shm_perm.mode = 0600;
>>> -    if (shmctl(shmid, IPC_SET, &shmbuf) == -1) {
>>> -        return errno;
>>> -    }
>>> -    return APR_SUCCESS;
>>> -#else
>>> -    return APR_ENOTIMPL;
>>> -#endif
>>> -#else
>>> -    return APR_ENOTIMPL;
>>> -#endif
>>> -}
>>> -
>>> /*
>>> * Persist the slotmem in a file
>>> * slotmem name and file name.
>>> @@ -413,15 +379,6 @@ static apr_status_t slotmem_create(ap_sl
>>>        if (rv != APR_SUCCESS) {
>>>            return rv;
>>>        }
>>> -        if (fbased) {
>>> -            /* Set permissions to shared memory
>>> -             * so it can be attached by child process
>>> -             * having different user credentials
>>> -             *
>>> -             * See apr:shmem/unix/shm.c
>>> -             */
>>> -            unixd_set_shm_perms(fname);
>>> -        }
>>>        ptr = (char *)apr_shm_baseaddr_get(shm);
>>>        desc.size = item_size;
>>>        desc.num = item_num;
>>> 
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Born in Roswell... married an alien...
>>> http://emptyhammock.com/
>> 
> 


Re: svn commit: r1561385 - /httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c

Posted by Jim Jagielski <ji...@jaguNET.com>.
But I would prefer others testing as well...

It's worth noting that it's just slotmem which did
this and so, if it was "required" any other use of
shared mem which child processes needed to have access
to cross forks would be broken. And it was just the SysV
shm which did this.

I *still* think that APR should backport the set_perm stuff
from trunk to 1.5, but I think that breaks ABI. But *that's*
where it belongs (in apr, not httpd).

On Jan 29, 2014, at 7:33 AM, Jim Jagielski <ji...@jaguNET.com> wrote:

> Yes, it still works (at least in all my testing) :)
> 
> On Jan 28, 2014, at 12:48 PM, Jeff Trawick <tr...@gmail.com> wrote:
> 
>> On Sat, Jan 25, 2014 at 3:11 PM, <ji...@apache.org> wrote:
>> Author: jim
>> Date: Sat Jan 25 20:11:50 2014
>> New Revision: 1561385
>> 
>> URL: http://svn.apache.org/r1561385
>> Log:
>> Remove wonky and unneeded code. We have access
>> cross forks, so child processes have access.
>> 
>> I see that you are saying it is okay, but I have to ask anyway:  For SysV shared memory specifically, apr_shm_attach() in the child still works when parent is root and child is not root?
>> 
>> 
>> When we need true external access, this is something
>> that APR shm must provide. We should have no
>> knowledge of APR internals.
>> 
>> Modified:
>>    httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
>> 
>> Modified: httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
>> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c?rev=1561385&r1=1561384&r2=1561385&view=diff
>> ==============================================================================
>> --- httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c (original)
>> +++ httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c Sat Jan 25 20:11:50 2014
>> @@ -88,40 +88,6 @@ static apr_pool_t *gpool = NULL;
>> #define DEFAULT_SLOTMEM_SUFFIX ".shm"
>> #define DEFAULT_SLOTMEM_PERSIST_SUFFIX ".persist"
>> 
>> -/* apr:shmem/unix/shm.c */
>> -static apr_status_t unixd_set_shm_perms(const char *fname)
>> -{
>> -#ifdef AP_NEED_SET_MUTEX_PERMS
>> -#if APR_USE_SHMEM_SHMGET || APR_USE_SHMEM_SHMGET_ANON
>> -    struct shmid_ds shmbuf = { { 0 } };
>> -    key_t shmkey;
>> -    int shmid;
>> -
>> -    shmkey = ftok(fname, 1);
>> -    if (shmkey == (key_t)-1) {
>> -        return errno;
>> -    }
>> -    if ((shmid = shmget(shmkey, 0, SHM_R | SHM_W)) == -1) {
>> -        return errno;
>> -    }
>> -#if MODULE_MAGIC_NUMBER_MAJOR <= 20081212
>> -#define ap_unixd_config unixd_config
>> -#endif
>> -    shmbuf.shm_perm.uid  = ap_unixd_config.user_id;
>> -    shmbuf.shm_perm.gid  = ap_unixd_config.group_id;
>> -    shmbuf.shm_perm.mode = 0600;
>> -    if (shmctl(shmid, IPC_SET, &shmbuf) == -1) {
>> -        return errno;
>> -    }
>> -    return APR_SUCCESS;
>> -#else
>> -    return APR_ENOTIMPL;
>> -#endif
>> -#else
>> -    return APR_ENOTIMPL;
>> -#endif
>> -}
>> -
>> /*
>>  * Persist the slotmem in a file
>>  * slotmem name and file name.
>> @@ -413,15 +379,6 @@ static apr_status_t slotmem_create(ap_sl
>>         if (rv != APR_SUCCESS) {
>>             return rv;
>>         }
>> -        if (fbased) {
>> -            /* Set permissions to shared memory
>> -             * so it can be attached by child process
>> -             * having different user credentials
>> -             *
>> -             * See apr:shmem/unix/shm.c
>> -             */
>> -            unixd_set_shm_perms(fname);
>> -        }
>>         ptr = (char *)apr_shm_baseaddr_get(shm);
>>         desc.size = item_size;
>>         desc.num = item_num;
>> 
>> 
>> 
>> 
>> 
>> -- 
>> Born in Roswell... married an alien...
>> http://emptyhammock.com/
> 


Re: svn commit: r1561385 - /httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c

Posted by Jim Jagielski <ji...@jaguNET.com>.
But I would prefer others testing as well...

It's worth noting that it's just slotmem which did
this and so, if it was "required" any other use of
shared mem which child processes needed to have access
to cross forks would be broken. And it was just the SysV
shm which did this.

I *still* think that APR should backport the set_perm stuff
from trunk to 1.5, but I think that breaks ABI. But *that's*
where it belongs (in apr, not httpd).

On Jan 29, 2014, at 7:33 AM, Jim Jagielski <ji...@jaguNET.com> wrote:

> Yes, it still works (at least in all my testing) :)
> 
> On Jan 28, 2014, at 12:48 PM, Jeff Trawick <tr...@gmail.com> wrote:
> 
>> On Sat, Jan 25, 2014 at 3:11 PM, <ji...@apache.org> wrote:
>> Author: jim
>> Date: Sat Jan 25 20:11:50 2014
>> New Revision: 1561385
>> 
>> URL: http://svn.apache.org/r1561385
>> Log:
>> Remove wonky and unneeded code. We have access
>> cross forks, so child processes have access.
>> 
>> I see that you are saying it is okay, but I have to ask anyway:  For SysV shared memory specifically, apr_shm_attach() in the child still works when parent is root and child is not root?
>> 
>> 
>> When we need true external access, this is something
>> that APR shm must provide. We should have no
>> knowledge of APR internals.
>> 
>> Modified:
>>    httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
>> 
>> Modified: httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
>> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c?rev=1561385&r1=1561384&r2=1561385&view=diff
>> ==============================================================================
>> --- httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c (original)
>> +++ httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c Sat Jan 25 20:11:50 2014
>> @@ -88,40 +88,6 @@ static apr_pool_t *gpool = NULL;
>> #define DEFAULT_SLOTMEM_SUFFIX ".shm"
>> #define DEFAULT_SLOTMEM_PERSIST_SUFFIX ".persist"
>> 
>> -/* apr:shmem/unix/shm.c */
>> -static apr_status_t unixd_set_shm_perms(const char *fname)
>> -{
>> -#ifdef AP_NEED_SET_MUTEX_PERMS
>> -#if APR_USE_SHMEM_SHMGET || APR_USE_SHMEM_SHMGET_ANON
>> -    struct shmid_ds shmbuf = { { 0 } };
>> -    key_t shmkey;
>> -    int shmid;
>> -
>> -    shmkey = ftok(fname, 1);
>> -    if (shmkey == (key_t)-1) {
>> -        return errno;
>> -    }
>> -    if ((shmid = shmget(shmkey, 0, SHM_R | SHM_W)) == -1) {
>> -        return errno;
>> -    }
>> -#if MODULE_MAGIC_NUMBER_MAJOR <= 20081212
>> -#define ap_unixd_config unixd_config
>> -#endif
>> -    shmbuf.shm_perm.uid  = ap_unixd_config.user_id;
>> -    shmbuf.shm_perm.gid  = ap_unixd_config.group_id;
>> -    shmbuf.shm_perm.mode = 0600;
>> -    if (shmctl(shmid, IPC_SET, &shmbuf) == -1) {
>> -        return errno;
>> -    }
>> -    return APR_SUCCESS;
>> -#else
>> -    return APR_ENOTIMPL;
>> -#endif
>> -#else
>> -    return APR_ENOTIMPL;
>> -#endif
>> -}
>> -
>> /*
>>  * Persist the slotmem in a file
>>  * slotmem name and file name.
>> @@ -413,15 +379,6 @@ static apr_status_t slotmem_create(ap_sl
>>         if (rv != APR_SUCCESS) {
>>             return rv;
>>         }
>> -        if (fbased) {
>> -            /* Set permissions to shared memory
>> -             * so it can be attached by child process
>> -             * having different user credentials
>> -             *
>> -             * See apr:shmem/unix/shm.c
>> -             */
>> -            unixd_set_shm_perms(fname);
>> -        }
>>         ptr = (char *)apr_shm_baseaddr_get(shm);
>>         desc.size = item_size;
>>         desc.num = item_num;
>> 
>> 
>> 
>> 
>> 
>> -- 
>> Born in Roswell... married an alien...
>> http://emptyhammock.com/
> 


Re: svn commit: r1561385 - /httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c

Posted by Jim Jagielski <ji...@jaguNET.com>.
Yes, it still works (at least in all my testing) :)

On Jan 28, 2014, at 12:48 PM, Jeff Trawick <tr...@gmail.com> wrote:

> On Sat, Jan 25, 2014 at 3:11 PM, <ji...@apache.org> wrote:
> Author: jim
> Date: Sat Jan 25 20:11:50 2014
> New Revision: 1561385
> 
> URL: http://svn.apache.org/r1561385
> Log:
> Remove wonky and unneeded code. We have access
> cross forks, so child processes have access.
> 
> I see that you are saying it is okay, but I have to ask anyway:  For SysV shared memory specifically, apr_shm_attach() in the child still works when parent is root and child is not root?
>  
> 
> When we need true external access, this is something
> that APR shm must provide. We should have no
> knowledge of APR internals.
> 
> Modified:
>     httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
> 
> Modified: httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c?rev=1561385&r1=1561384&r2=1561385&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c (original)
> +++ httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c Sat Jan 25 20:11:50 2014
> @@ -88,40 +88,6 @@ static apr_pool_t *gpool = NULL;
>  #define DEFAULT_SLOTMEM_SUFFIX ".shm"
>  #define DEFAULT_SLOTMEM_PERSIST_SUFFIX ".persist"
> 
> -/* apr:shmem/unix/shm.c */
> -static apr_status_t unixd_set_shm_perms(const char *fname)
> -{
> -#ifdef AP_NEED_SET_MUTEX_PERMS
> -#if APR_USE_SHMEM_SHMGET || APR_USE_SHMEM_SHMGET_ANON
> -    struct shmid_ds shmbuf = { { 0 } };
> -    key_t shmkey;
> -    int shmid;
> -
> -    shmkey = ftok(fname, 1);
> -    if (shmkey == (key_t)-1) {
> -        return errno;
> -    }
> -    if ((shmid = shmget(shmkey, 0, SHM_R | SHM_W)) == -1) {
> -        return errno;
> -    }
> -#if MODULE_MAGIC_NUMBER_MAJOR <= 20081212
> -#define ap_unixd_config unixd_config
> -#endif
> -    shmbuf.shm_perm.uid  = ap_unixd_config.user_id;
> -    shmbuf.shm_perm.gid  = ap_unixd_config.group_id;
> -    shmbuf.shm_perm.mode = 0600;
> -    if (shmctl(shmid, IPC_SET, &shmbuf) == -1) {
> -        return errno;
> -    }
> -    return APR_SUCCESS;
> -#else
> -    return APR_ENOTIMPL;
> -#endif
> -#else
> -    return APR_ENOTIMPL;
> -#endif
> -}
> -
>  /*
>   * Persist the slotmem in a file
>   * slotmem name and file name.
> @@ -413,15 +379,6 @@ static apr_status_t slotmem_create(ap_sl
>          if (rv != APR_SUCCESS) {
>              return rv;
>          }
> -        if (fbased) {
> -            /* Set permissions to shared memory
> -             * so it can be attached by child process
> -             * having different user credentials
> -             *
> -             * See apr:shmem/unix/shm.c
> -             */
> -            unixd_set_shm_perms(fname);
> -        }
>          ptr = (char *)apr_shm_baseaddr_get(shm);
>          desc.size = item_size;
>          desc.num = item_num;
> 
> 
> 
> 
> 
> -- 
> Born in Roswell... married an alien...
> http://emptyhammock.com/