Good to know.
I am planning an upgrade of the soap related code (mainly to get rid of some of the issues related to imports in axis WSDLs). I'll have a look at this as well.
I'll need some support from other people (Tobbe?) to get everything checked in etc. It will probably take a couple of weeks, since I need to finalise a new release of Erlsom first (and I am doing this in my spare time).

On 10/13/07, Andreas Hellström <> wrote:
(Sorry if this is a re-post. Since some people reportedly did not see
it when I sent it some 10 days ago I don't think it got through ok.)

Hello all,

I'm an Erlang newbie, so please don't hit me too hard if I fail in my
beginning, baby steps into this wonderful new world. :-)

I'm developing web services with Yaws, and I've found some code in the
soap server module that can be (mis-) used to crash the web server. If
a soap client sends a request for a web service that's not started on
the server, yaws will crash instead of returning a nice error message.

The functions involved are request/5 and handle_call/3 in
yaws_soap_srv module. I've written my own code to handle this. My code
might not be the perfect solution, but anyway, the problem perhaps
should be fixed in the next version of Yaws?

My code (original code are commented out):

handle_call( {request, Id, Payload, SessionValue, SoapAction}, _From, State) ->
  % Reply = request(State, Id, Payload, SessionValue, SoapAction),
  % {reply, Reply, State}.

  try request(State, Id, Payload, SessionValue, SoapAction) of
      Reply -> {reply, Reply, State}
      throw: model_error ->
          {reply, cli_error("Model error."), State};
      throw: _ ->
          {reply, srv_error("Unknown server error."), State}

request(State, {M,F} = Id, Payload, SessionValue, Action) ->
  % {ok, Model} = get_model(State, Id),

  {Status, Model} = get_model(State, Id),
  case Status of
      ok -> ok;
      error -> throw(model_error);
      _ -> throw(other_error)
  [remaining code left out]


This email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>
Erlyaws-list mailing list