%script_name([],_) -> % not_an_executable; %script_name([""|Rest],SoFar) -> % script_name(Rest,SoFar); %script_name([First|Rest],SoFar) -> % NewSoFar=SoFar++"/"++First, % case file:read_file_info(NewSoFar) of % %% Do the script exists and is it executable? To be done! % {ok,FileInfo} when FileInfo#file_info.type == regular -> % {yes,NewSoFar,[$/|Rest]}; % {ok,FileInfo} -> % script_name(Rest,NewSoFar); % {error,Reason} -> % script_name(Rest,NewSoFar) % end. case httpd_util:key1search(Info#mod.data,real_name) of undefined -> DocumentRoot= httpd_util:lookup(Info#mod.config_db,document_root,""), DocumentRoot++"/"++httpd_util:decode_hex(Info#mod.request_uri); RealName -> RealName end, test() -> disk_log:open({name,"/var/tmp/server_root/logs/access_disk_log"}, {file,"/var/tmp/server_root/logs/access_disk_log"}, {linkto,Pid}, {format,external}, {type,Type} {size,{MaxBytes,MaxFiles}}, {head,{M,F,A}}, %% order parse_directory(Stream,ConfigDB,Directory,[$o,$r,$d,$e,$r|Order]) -> case regexp:split(Order,",") of {ok,[First,Second]} -> CleanSecond=clean(Second), case clean(First) of "allow" when CleanSecond == "deny" -> ets:insert(ConfigDB,{{directory,Directory},{"order",allow_deny}}), parse_directory(Stream,ConfigDB,Directory); "deny" when CleanSecond == "allow" -> ets:insert(ConfigDB,{{directory,Directory},{"order",deny_allow}}), parse_directory(Stream,ConfigDB,Directory); _ -> {error,atom_to_list(?MODULE)++": "++clean(Order)++ " is an invalid order!"} end; {ok,_} -> {error,atom_to_list(?MODULE)++": "++clean(Order)++ " is an invalid order!"} end; %% Redirect parse(Stream,ConfigDB,[$R,$e,$d,$i,$r,$e,$c,$t|Redirect]) -> case regexp:split(Redirect," ") of {ok,[FakeName,URL]} -> ets:insert(ConfigDB,{"Redirect",{FakeName,URL}}), parse(Stream,ConfigDB); {ok,_} -> {error,atom_to_list(?MODULE)++": "++clean(Redirect)++ " is an invalid Redirect!"} end; %% deny parse_directory(Stream,ConfigDB,Directory,[$d,$e,$n,$y|Deny]) -> case regexp:split(Deny," ") of {ok,["from","all"]} -> ets:insert(ConfigDB,{{directory,Directory},{"deny",all}}), parse_directory(Stream,ConfigDB,Directory); {ok,["from"|Hosts]} -> ets:insert(ConfigDB,{{directory,Directory},{"deny",Hosts}}), parse_directory(Stream,ConfigDB,Directory); {ok,_} -> {error,atom_to_list(?MODULE)++": "++clean(Deny)++ " is an invalid deny!"} end;