Hallo,
und da wollt' ich gerade zu Bette gehen ;-)
Wie wäre es mit einer Environment Variablen?
In der Tat setzt SetEnv eine AllowOverride-Einstellung
voraus - und zwar die vom Typ "FileInfo".
Das ist aber kein Problem - denn die braucht gzip_cnc
sowieso, weil es sonst nicht via "Action" als Handler
eingebunden werden kann!
Aha!
Na, dannn: nix wie reingebaut und schon wieder ein malloc() und ein komplettes Filehandling gespart ;-)
...
done ;-)
Händisches Diff:
Ab 655:
- char *file = getenv("PATH_TRANSLATED"), *cfgname;
- char *file = getenv("PATH_TRANSLATED"), *cfgname, *cpname;
struct stat gz, org;
FILE *base;
size_t rlen;
/*
* find my config file
*/
/*CZ may have been set as en environment variable */
cpname = getenv("GZIP_CNCC_CACHE_PATH");
if(!cpname) {
[...]
[ das ganze Geraffel bis ]
if (CACHE_PATH[rlen - 1] == '\n') {
CACHE_PATH[rlen - 1] = '\0';
}
} /* if(!cpname) */
/*CZ2CK CACHE_PATH is limited to 255 chars. is that really sufficient?
*CZ2CK CACHE_PATH should also be a pointer. snprintf() is much ado for
*CZ2CK a simple pathname ;-) */
snprintf(CACHE_PATH, (size_t)(256),"%s",cpname);
Vorsicht: noch nicht getestet!
Die Konfigurationsdatei scheint also entbehrlich zu
sein ... hm - da muß ich mir ja fast überlegen, ob ich
das nicht auch für die Perl-Version nutzen sollte,
wenn man auf diese Weise den Perl-Code unangetastet
lassen kann ... mod_env selbst dürfte ja praktisch
überall installiert sein ...
Geh ich mal von aus. Ist einfach _zu_ praktisch sowas.
so short
Christoph Zurnieden