<dl>
<dt><code>"none"</code></dt>
<dd><code>Does not persist shared memory in file.</code></dd>
- <dt><code>"anonymous"</code></dt>
- <dd><code>$server_root/logs/anonymous.slotmem</code></dd>
- <dt><code>":file-name"</code></dt>
- <dd><code>$server_root/logs/file-name.slotmem</code></dd>
- <dt><code>"absolute-file-name"</code></dt>
- <dd><code>$absolute-file-name.slotmem</code></dd>
+ <dt><code>"file-name"</code></dt>
+ <dd><code>$server_root/file-name</code></dd>
+ <dt><code>"/absolute-file-name"</code></dt>
+ <dd><code>$absolute-file-name</code></dd>
</dl></dd>
<dt>apr_status_t attach(ap_slotmem_instance_t **new, const char *name, apr_size_t *item_size, unsigned int *item_num, apr_pool_t *pool)</dt>
* Persist the slotmem in a file
* slotmem name and file name.
* none : no persistent data
- * anonymous : $server_root/logs/anonymous.slotmem
- * :rel_name : $server_root/logs/rel_name.slotmem
- * abs_name : $abs_name.slotmem
+ * rel_name : $server_root/rel_name
+ * /abs_name : $abs_name
*
*/
static const char *store_filename(apr_pool_t *pool, const char *slotmemname)
{
const char *storename;
const char *fname;
- if (strcasecmp(slotmemname, "none") == 0)
+ if (strcasecmp(slotmemname, "none") == 0) {
return NULL;
- else if (strcasecmp(slotmemname, "anonymous") == 0)
- fname = ap_server_root_relative(pool, "logs/anonymous");
- else if (slotmemname[0] == ':') {
- const char *tmpname;
- tmpname = apr_pstrcat(pool, "logs/", &slotmemname[1], NULL);
- fname = ap_server_root_relative(pool, tmpname);
+ }
+ else if (slotmemname[0] != '/') {
+ fname = ap_server_root_relative(pool, slotmemname);
}
else {
fname = slotmemname;
}
- storename = apr_pstrcat(pool, fname, ".slotmem", NULL);
- return storename;
+ return fname;
}
static void store_slotmem(ap_slotmem_instance_t *slotmem)
(item_num * sizeof(char)) + basesize;
apr_status_t rv;
- if (gpool == NULL)
+ if (gpool == NULL) {
return APR_ENOSHMAVAIL;
+ }
if (name) {
- if (name[0] == ':') {
- fname = name;
+ if (name[0] != '/') {
+ fname = ap_server_root_relative(pool, name);
}
else {
- fname = ap_server_root_relative(pool, name);
+ fname = name;
}
/* first try to attach to existing slotmem */
}
}
else {
- fname = "anonymous";
+ fname = "none";
}
/* first try to attach to existing shared memory */
- fbased = (name && name[0] != ':');
+ fbased = (name != NULL);
if (fbased) {
rv = apr_shm_attach(&shm, fname, gpool);
}