/* Find Apache HtPasswd */ /* Copyright (C) 2007-2017 Herwig Bauernfeind for bww bitwise works GmbH. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /*:VRX _FindHtpasswd */ _FindHtpasswd: IF options.!debug == 1 THEN say time()' _FindHtpasswd() started' /* htpasswd.exe - required for SWAT but not really part of Samba */ samba.!htpasswdexe = "" if samba.!htpasswdexe = "" then do /* INI entry */ call charout , " Do we have an INI entry for Apache? " apachepath = VRGetIni( "Apache", "Path", samba.!bin'\sscc.ini' ) say apachepath samba.!htpasswdexe = apachepath'\htpasswd.exe' if \VRFileExists(samba.!htpasswdexe) then do /* It is invalid! */ samba.!htpasswdexe = "" ok = VRDelIni( "Apache", "Path", samba.!bin'\sscc.ini' ) end end if samba.!htpasswdexe = "" then do /* wellknown locations */ WellKnown = SysBootdrive()"\ecs\system\apache2\bin;"SysBootdrive()"\apache2\bin" Programs = value("PROGRAMS",,'OS2ENVIRONMENT') if Programs <> "" then WellKnown = Wellknown';'Programs'\apache2\bin' Tools = value("TOOLS",,'OS2ENVIRONMENT') if Tools <> "" then WellKnown = Wellknown';'Tools'\apache2\bin' call charout , " Are binaries in wellknown locations? " ok = VRFindFile("htpasswdexe.exe",WellKnown) if ok <> "" then say "Yes."; else say "No." if ok <> "" then samba.!htpasswdexe = ok drop Wellknown Tools Programs end if samba.!htpasswdexe = "" then do /* in current directory? */ call charout , " Is htpasswd.exe in current directory? " ok = SysFileTree('.\htpasswd.exe', exist.,'FO') if exist.0 = 1 then say "Yes."; else say "No." if exist.0 = 1 then samba.!htpasswdexe = exist.1 end if samba.!htpasswdexe = "" then do /* in parent directory? */ call charout , " Is htpasswd.exe in parent directory? " ok = SysFileTree('..\htpasswd.exe', exist.,'FO') if exist.0 = 1 then say "Yes."; else say "No." if exist.0 = 1 then samba.!htpasswdexe = exist.1 end if samba.!htpasswdexe = "" then do /* in ..\BIN directory? */ call charout , " Is htpasswd.exe in ..\BIN directory? " ok = SysFileTree('..\bin\htpasswd.exe', exist.,'FO') if exist.0 = 1 then say "Yes."; else say "No." if exist.0 = 1 then samba.!htpasswdexe = exist.1 end if samba.!htpasswdexe = "" then do /* in \apache2\bin */ call charout , " Is htpasswd.exe in "SysBootDrive()"\apache2\bin path? " ok = SysFileTree(SysBootDrive()'\apache2\bin\htpasswd.exe', exist.,'FO') if exist.0 = 1 then say "Yes."; else say "No." if exist.0 = 1 then samba.!htpasswdexe = exist.1 end if samba.!htpasswdexe = "" then do /* in ..\..\apache2\bin */ call charout , " Is htpasswd.exe in ..\..\apache2\bin path? " ok = SysFileTree('..\..\apache2\bin\htpasswd.exe', exist.,'FO') if exist.0 = 1 then say "Yes."; else say "No." if exist.0 = 1 then samba.!htpasswdexe = exist.1 end if samba.!htpasswdexe = "" then do /* in PATH ? */ call charout , " Is htpasswd.exe in PATH? " samba.!htpasswdexe = SysSearchPath("PATH","htpasswd.exe") if samba.!htpasswdexe = "" then say "No."; else say "Yes." end if samba.!htpasswdexe = "" then do swatauth = 0 swatusers = "" end else do swatauth = 1 swatusers = ETC'\samba\private\swatusers' end IF options.!debug == 1 THEN say time()' _FindHtpasswd() done' return