diff -urp mod_frontpage_mirfak-1.6.2.orig/fpstatic.c mod_frontpage_mirfak-1.6.2/fpstatic.c --- mod_frontpage_mirfak-1.6.2.orig/fpstatic.c 2002-03-12 17:07:07.000000000 -0400 +++ mod_frontpage_mirfak-1.6.2/fpstatic.c 2002-11-08 02:00:49.000000000 -0400 @@ -434,16 +434,42 @@ int translate (const char * uri) { pos = strrchr((char *)uri, '/'); snprintf((char *)fnbuf, sizeof(fnbuf), "%s%s%s%s%s", FPBASE, _EXES, _VTI_ADM, _IMAGES, pos); + /* + * Check to see if the user is changing the password, + * which has a URL like _vti_bin/_vti_aut/passwd.htm. + * It's different from other ".htm" files because it + * goes through _VTI_AUT instead of _VTI_ADM and it + * may not have the Lcid in the URL. If it's missing + * the Lcid, hard-code it to 1033 like the rtr patches. + */ + } else if (((pos = strstr(uri, _FPPASSWD)) != NULL)) { + pos = strstr(uri, _VTI_AUT); + pos = pos + 19; + Lcid = (int)strtol(pos, &pos, 10); + if (Lcid == 0) { + Lcid = 1033; + } + pos = strrchr((char *)uri, '/'); + snprintf((char *)fnbuf, sizeof(fnbuf), "%s%s%c%04d%s", + FPBASE, _ADMIN, '/', Lcid, pos); + /* * If we still have .htm or .css, we end up * with the admin dir. If we match, we calculate * the Lcid from the string. */ - } else if (((pos = strstr(uri, ".htm")) != NULL) - || ((pos = strstr(uri, ".css")) != NULL)) { + } else if (((pos = strstr(uri, ".css")) != NULL)) { + if (((pos = strstr(uri, _VTI_ADM)) != NULL)) { pos = strstr(uri, _VTI_ADM); + } else { + pos = strstr(uri, _VTI_AUT); + } pos = pos + 19; Lcid = (int)strtol(pos, &pos, 10); + if (Lcid == 0) { + Lcid = 1033; + } + pos = strrchr((char *)uri, '/'); snprintf((char *)fnbuf, sizeof(fnbuf), "%s%s%c%04d%s", FPBASE, _ADMIN, '/', Lcid, pos); } diff -urp mod_frontpage_mirfak-1.6.2.orig/Makefile.in mod_frontpage_mirfak-1.6.2/Makefile.in --- mod_frontpage_mirfak-1.6.2.orig/Makefile.in 2002-03-12 17:07:06.000000000 -0400 +++ mod_frontpage_mirfak-1.6.2/Makefile.in 2002-11-08 01:46:36.000000000 -0400 @@ -37,7 +37,7 @@ all: mod_frontpage.so fpexec fpstatic # compile the DSO file mod_frontpage.so: mod_frontpage.c - $(APXS) -Wall -c $(DEF) $(INC) $(LIB) mod_frontpage.c + $(APXS) -Wall -c $(DEF) $(DEF2) $(INC) $(LIB) mod_frontpage.c fpexec: fpexec.c $(cc) $(CFLAGS) $(DEF2) $(INC) $(LIB) -o fpexec fpexec.c diff -urp mod_frontpage_mirfak-1.6.2.orig/Makefile.PL mod_frontpage_mirfak-1.6.2/Makefile.PL --- mod_frontpage_mirfak-1.6.2.orig/Makefile.PL 2002-03-12 17:07:07.000000000 -0400 +++ mod_frontpage_mirfak-1.6.2/Makefile.PL 2002-11-08 02:01:41.000000000 -0400 @@ -11,9 +11,11 @@ $flavor=`uname`; if (-e "/etc/mandrake-release") {$flavor="Mandrake";} +if (-e "/etc/debian_version") {$flavor="Debian";} if ($flavor eq "FreeBSD") { $thechoice="/usr/local/sbin/httpd"; } elsif ($flavor eq "Mandrake") { $thechoice="/usr/sbin/httpd"; +} elsif ($flavor eq "Debian") { $thechoice="/usr/sbin/apache"; } else { print "Enter the path of your httpd binary.\n"; print "It should be something like /usr/local/apache/bin).\n"; @@ -43,7 +45,10 @@ if (/Server version:/) { print " YES!\n" } else { die "\n\nSorry, can't find Apache version!\n"; } $httpd=$thechoice; -$thechoice=~s|/httpd||; + +if ($flavor eq "Debian") { $thechoice=~s|sbin/apache|bin/|; +} else { +$thechoice=~s|/httpd||; } print "sbindir is $thechoice, trying to find apxs..."; @@ -74,10 +79,10 @@ $tmpfile="/tmp/frontpage.$$"; open(FILE,"$tmpfile") or die "Can't find $tmpfile!\n"; print "Reading httpd.conf...\n"; while() { - if (!$user && /^\s*User (\w*)/i) { + if (!$user && /^\s*User ([\w-]*)/i) { $user=$1; } - if (!$group && /^\s*Group (\w*)/i) { + if (!$group && /^\s*Group ([\w-]*)/i) { $group=$1; } if (!$userdir && /^\s*UserDir (\w*)/i) { @@ -123,6 +128,7 @@ if (/^(\d*)(\s*)(\d*)/) { if ($flavor eq "FreeBSD") { $defaultid=80; } elsif ($flavor eq "Mandrake") { $defaultid=48; +} elsif ($flavor eq "Debian") { $defaultid=33; } else { $defaultid=99; } if ($uid < $defaultid) { diff -urp mod_frontpage_mirfak-1.6.2.orig/path.h mod_frontpage_mirfak-1.6.2/path.h --- mod_frontpage_mirfak-1.6.2.orig/path.h 2002-03-12 17:07:07.000000000 -0400 +++ mod_frontpage_mirfak-1.6.2/path.h 2002-11-08 01:52:01.000000000 -0400 @@ -67,6 +67,7 @@ #define _HELP "/help" #define _EXES "/exes" #define _ADMIN "/admin" +#define _FPPASSWD "/passwd.htm" #define VTIHELP _VTI_BIN "/_vti_adm/help" #define SHTMLDLL _VTI_BIN "/shtml.dll"