From: Richard <ri...@bu...> - 2007-09-21 15:57:20
|
in one of my YAWS files I tried to manually expand an SSI. I tried a few different approaches. None worked. The last failed attempt was this one. It threw a {badrecord,urltype} exception. <erl> out(A) -> MyText = yaws_api:ehtml_expand({ssi,"myssifile.ssi","%%",[]}), ... some other code... . </erl> I believe the exception was generated in yaws_api.erl because get (yaws_ut) returned undefined here. ehtml_expand({ssi,File, Del, Bs}) -> UT = get(yaws_ut), ARG = get(yaws_arg), ... some more code ... I was finally able to make it work like this: <erl> -include("/usr/local/lib/yaws/include/yaws.hrl"). out(A) -> put(yaws_ut,#urltype{}), put(yaws_arg,A), MyText = yaws_api:ehtml_expand({ssi,"myssifile.ssi","%%",[]}), ... some more code ... My concern is that I'm abusing the framework. There must be a better way? Why export the API in yaws_api if: a) undocumented? b) has undocumented requirements Thanks Richard |
From: Michael F. <fi...@ma...> - 2007-09-21 20:06:48
|
Hi, Thanks for figuring out this stuff, Richard. It helped me find a patch to make crashmsg work better. Below is a patch I needed to have ssi work within a crashmsg handler. Please apply it to the latest YAWS. Thanks, -- Michael FIG <fi...@ma...>, PMP MarkeTel Multi-Line Dialing Systems, Ltd. Phone: (306) 359-6893 ext. 528 --- src/yaws_server.erl~ 2007-09-20 07:10:41.000000000 -0600 +++ src/yaws_server.erl 2007-09-21 14:02:41.000000000 -0600 @@ -2479,7 +2479,7 @@ FullPath = case File of {rel_path, FileName} -> - [Docroot, Dir,[$/|FileName]]; + [Docroot, [$/|Dir],[$/|FileName]]; {abs_path, FileName} -> [Docroot, [$/|FileName]]; [$/|_] -> @@ -2492,7 +2492,7 @@ %%relative to the Docroot and VirtualDir that correspond %% to the request. - construct_fullpath(Docroot, lists:flatten([Dir, File]), + construct_fullpath(Docroot, lists:flatten([Dir, [$/|File]]), VirtualDir) end, @@ -2596,6 +2596,8 @@ ?Debug("handle_crash(~p)~n", [L]), SC=get(sc), yaws:elog("~s", [L]), + put(yaws_ut, #urltype{}), + put(yaws_arg, ARG), case catch apply(SC#sconf.errormod_crash, crashmsg, [ARG, SC, L]) of {html, Str} -> accumulate_content(Str), ----- Original Message ----- From: "Richard" <ri...@bu...> To: erl...@li... Sent: Friday, September 21, 2007 9:57:08 AM (GMT-0600) America/Guatemala Subject: [Erlyaws-list] trying to ehtml_expand({ssi, File, Del, Bs}) throws exception in one of my YAWS files I tried to manually expand an SSI. I tried a few different approaches. None worked. The last failed attempt was this one. It threw a {badrecord,urltype} exception. <erl> out(A) -> MyText = yaws_api:ehtml_expand({ssi,"myssifile.ssi","%%",[]}), ... some other code... . </erl> I believe the exception was generated in yaws_api.erl because get (yaws_ut) returned undefined here. ehtml_expand({ssi,File, Del, Bs}) -> UT = get(yaws_ut), ARG = get(yaws_arg), ... some more code ... I was finally able to make it work like this: <erl> -include("/usr/local/lib/yaws/include/yaws.hrl"). out(A) -> put(yaws_ut,#urltype{}), put(yaws_arg,A), MyText = yaws_api:ehtml_expand({ssi,"myssifile.ssi","%%",[]}), ... some more code ... My concern is that I'm abusing the framework. There must be a better way? Why export the API in yaws_api if: a) undocumented? b) has undocumented requirements Thanks Richard ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Erlyaws-list mailing list Erl...@li... https://lists.sourceforge.net/lists/listinfo/erlyaws-list |
From: Claes W. <kl...@ta...> - 2007-09-21 21:21:09
|
Michael FIG wrote: > Hi, > > Thanks for figuring out this stuff, Richard. It helped me find a patch to make crashmsg work better. > > Below is a patch I needed to have ssi work within a crashmsg handler. Please apply it to the latest YAWS. > > Thanks, > Applied, thanks /klacke |