Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:licehunter:staging
eopenid
strip-parsers.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File strip-parsers.patch of Package eopenid
Remove all but YAWS based parsers From: Gregory Haskins <ghaskins@novell.com> Signed-off-by: Gregory Haskins <ghaskins@novell.com> --- src/eopenid_lib.erl | 33 +++++++++------------------------ src/eopenid_v1.erl | 37 ++----------------------------------- 2 files changed, 11 insertions(+), 59 deletions(-) diff --git a/src/eopenid_lib.erl b/src/eopenid_lib.erl index c2d0a3d..58f078d 100644 --- a/src/eopenid_lib.erl +++ b/src/eopenid_lib.erl @@ -148,32 +148,17 @@ l2i(L) when is_list(L) -> list_to_integer(L); l2i(I) when is_integer(I) -> I. urlenc(X) -> - try mochiweb_util:urlencode(X) - catch _:_ -> - S = [K++"="++url_encode(V) || {K,V} <- X], - string:join(S,"&") - end. + S = [K++"="++yaws_api:url_encode(V) || {K,V} <- X], + string:join(S,"&"). -url_encode(X) -> - try yaws_api:url_encode(X) - catch _:_ -> wf:url_encode(X) end. - -url_decode(X) -> - try yaws_api:url_decode(X) - catch _:_ -> wf:url_decode(X) end. - parseq(X) -> - try mochiweb_util:parse_qs(X) - catch _:_ -> - Filter = fun(S,Acc) -> - case string:tokens(S,"=") of - [K,V] -> [{K,url_decode(V)}|Acc]; - _ -> Acc - end - end, - lists:foldr(Filter, [], string:tokens(X,"&")) - end. - + Filter = fun(S,Acc) -> + case string:tokens(S,"=") of + [K,V] -> [{K,yaws_api:url_decode(V)}|Acc]; + _ -> Acc + end + end, + lists:foldr(Filter, [], string:tokens(X,"&")). content_type() -> "application/x-www-form-urlencoded; charset=UTF-8". diff --git a/src/eopenid_v1.erl b/src/eopenid_v1.erl index c50ab9b..4b105a6 100644 --- a/src/eopenid_v1.erl +++ b/src/eopenid_v1.erl @@ -256,45 +256,12 @@ discover(ClaimedId, Dict0) when is_list(ClaimedId) -> NormId = http_path_norm(ClaimedId), Dict = in("openid.claimed_id", ClaimedId, Dict0), {ok, {_Rc, _Hdrs, Body}} = http_get(NormId), - try - {Xml,_} = xmerl_scan:string(Body), - L = [?XAttrs(X) || X <- xmerl_xpath:string("//link", Xml)], - Fs = [in(K,V) || [{rel,K},{href,V}] <- L], - {ok, foldf(Fs, Dict)} - catch - _Type:_Error -> - try - Fs2 = [in(K,V) || {tag,"link",[{"rel","openid"++_=K},{"href",V}|_]} - <- trane:sax(Body,fun(T,A)-> A++[T] end, [])], - {ok, foldf(Fs2, Dict)} - catch - _:_ -> - try - A = mochiweb_html:parse(Body), - {ok, hvals(Dict, gelems([<<"html">>,<<"head">>,<<"link">>], A))} - catch - _Type2:_Error2 -> - try - Y = yaws_html:h2e(Body), - {ok, hvals(Dict, gelems([ehtml,html,head,link], Y))} - catch - Type3:Error3 -> - %% FIXME try doing the parsing in some other way - ?edbg("discover failed: ~p, Body=~p~n", - [erlang:get_stacktrace(),Body]), - {Type3, Error3} - end - end - end - end. - - + Y = yaws_html:h2e(Body), + {ok, hvals(Dict, gelems([ehtml,html,head,link], Y))}. %%% Header values -spec hvals( dict(), list() ) -> dict(). -hvals(S, [{<<"link">>,[{<<"rel">>,R},{<<"href">>,H}],_} | T]) -> % Mochiweb - hvals(pick(S,R,H), T); hvals(S, [{link,[{rel,R},{href,H}|_]} | T]) -> % Yaws hvals(pick(S,R,H), T); hvals(S, [_|T]) ->
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor