Re: WIndows variant file for php-src/ext/session/mod_files.sh

From: Date: Fri, 12 Dec 2008 09:32:52 +0000
Subject: Re: WIndows variant file for php-src/ext/session/mod_files.sh
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-42223@lists.php.net to get a copy of this message
2008/12/11 Johannes Schlüter <johannes@php.net>: > On Wed, 2008-12-10 at 15:56 +0000, Richard Quadling wrote: >> I've been playing with the session.save_path=n;path setting. >> >> The documentation says that there is a mod_files.sh file to help >> create the folder structure (which there is). >> >> But this won't run natively on windows. >> >> I've attached this patch below to create a windows variant >> (mod_files.bat) which works quite nicely. > > Can't we use a platform independent PHP version? I assume that PHP > should be installed when using PHP sessions (yeah one might have the > server module -> own fault) > > johannes > > I suppose there would be a performance hit if the core dealt with it? I would guess that in php-src/ext/session/mod_files.c, a ... mkdir(buf); between lines 117 and 118 ... for (i = 0; i < (int)data->dirdepth; i++) { buf[n++] = *p++; buf[n++] = PHP_DIR_SEPARATOR; } mkdir(buf); memcpy(buf + n, FILE_PREFIX, sizeof(FILE_PREFIX) - 1); n += sizeof(FILE_PREFIX) - 1; should theoretically fix the problem. It only needs to create the folders if it doesn't exist, but mkdir() won't result in a crash if the directory already exists. I don't know if mkdir() is recursive, adding a few more mkdir()'s (before and during the for() loop, should fix that. Of course, being able to call PHP's internal version of mkdir(buf, 0x777, true); would be ideal. I've attached a patch to for both the .BAT and .PHP versions. The PHP version doesn't require any parameters simply because it can easily read the INI file. I suppose doing some checking to make sure the Depth doesn't exceed the number of available characters (depending upon the hash algorithm and the SESS prefix, etc. would be more complete, but ... Richard. -- ----- Richard Quadling Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 "Standing on the shoulders of some very clever giants!"

« previous php.internals (#42223) next »