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 18:21:48 GMT
It's also worth noting that we don't actually *do*
an attach()...
On Jan 29, 2014, at 10:02 AM, Jim Jagielski <jim@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 <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