On Sat, Jan 25, 2014 at 3:11 PM, <j...@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/