apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Jagielski <...@jaguNET.com>
Subject Re: svn commit: r1561385 - /httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
Date Wed, 29 Jan 2014 15:02:53 GMT
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 <jim@jaguNET.com> wrote:

> Yes, it still works (at least in all my testing) :)
> 
> On Jan 28, 2014, at 12:48 PM, Jeff Trawick <trawick@gmail.com> wrote:
> 
>> On Sat, Jan 25, 2014 at 3:11 PM, <jim@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/
> 


Mime
View raw message