<div dir="ltr">Thanks, Ingela, your solution looks good, but I find it still a little bit misleading. You see, what was provided was actually a directory (in string format). The fact that the directory does not exist has nothing to do with its type, really. What it has to do with is validation. Maybe wrong_type would read better as validation_failed? That covers both type checks and existence checks and any other kind of checks of this sort that may come up in future.<br>
<br>Regards,<br>Edwin<br><br><div class="gmail_quote">On Tue, Jul 29, 2008 at 5:15 AM, Ingela Anderton Andin <span dir="ltr"><<a href="mailto:ingela@erix.ericsson.se">ingela@erix.ericsson.se</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Edwin!<br>
<br>
Well yes in this particular case it becomes a bit confusing I agree.  It is a type check that has fail but this is obviously<br>
a special case of failure so I changed it so it will become *{wrong_type, {non_existing, document_root,"/tmp/htdocs"}}.<br>
The type check acctualy checks if  "/tmp/htdocs" is a directory and not only that it is a string on the correct format. So the type here is "directory"<br>
and not "string". But yes I can see that people might get confused. I think this will be the best solution removing the wrong_type in this case<br>
will make the code cluttered of special cases in more than one place, now I just handle the special case where it appeares and the higer level code does not need to care about such details, and also it is logical type error, the given parameter was not a valid directory.<br>

<br>
Regards - Ingela Erlang/OTP, Ericsson<br>
<br>
<br>
*Edwin Fine wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="Wj3C7c">
Taking the example out of the document at <a href="http://www.erlang.org/doc/apps/inets/http_server.html" target="_blank">http://www.erlang.org/doc/apps/inets/http_server.html</a>:<br>
<br>
2> {ok, Pid} = inets:start(httpd, [{port, 0},<br>
2>       {server_name,"httpd_test"}, {server_root,"/tmp"},<br>
2>       {document_root,"/tmp/htdocs"}, {bind_address, "localhost"}]).<br>
<br>
=ERROR REPORT==== 30-Jun-2008::17:47:18 ===<br>
Failed initiating web server:<br>
undefined<br>
*{wrong_type,{document_root,"/tmp/htdocs"}}*<br>
<br>
** exception error: no match of right hand side value {error,{shutdown,{child,undefined,<br>
                                                                              {httpd_instance_sup,{0,0,0,0,0,0,0,1},59104},<br>
                                                                              {httpd_instance_sup,start_link,<br>
                                                                                                  [[{port,59104},<br>
                                                                                                    {bind_address,{0,0,0,0,0,0,0,1}},<br>
                                                                                                    {server_name,"httpd_test"},<br>
                                                                                                    {server_root,"/tmp"},<br>
                                                                                                    {document_root,"/tmp/htdocs"}],<br>
                                                                                                   15000,<br>
                                                                                                   {<0.50.0>,#Port<0.126>},<br>
                                                                                                   []]},<br>
                                                                              permanent,infinity,supervisor,<br>
                                                                              [httpd_instance_sup]}}}<br>
<br>
The actual problem was that the "/tmp/htdocs" directory did not exist. I find having an error message of undefined *{wrong_type,{document_root,"/tmp/htdocs"}} *to be very misleading. I read it as "the value corresponding to document_root [i.e. "/tmp/htdocs", of type string] is of the wrong type". If not a string, what should it be, I wondered?<br>

<br>
When I created the directory and tried again, the message went away. I would have expected to see something like {does_not_exist,{document_root,"/tmp/htdocs"}}.<br>
<br>
3> {ok, Pid} = inets:start(httpd, [{port, 0},                        3>       {server_name,"httpd_test"}, {server_root,"/tmp"},<br>
3>       {document_root,"/tmp/htdocs"}, {bind_address, "localhost"}]).<br>
{ok,<0.58.0>}<br>
4><br>
<br>
Regards,<br>
Edwin Fine<br>
-- <br>
The great enemy of the truth is very often not the lie -- deliberate, contrived and dishonest, but the myth, persistent, persuasive, and unrealistic. Belief in myths allows the comfort of opinion without the discomfort of thought.<br>

John F. Kennedy 35th president of US 1961-1963 (1917 - 1963)<br></div></div>
------------------------------------------------------------------------<br>
<br>
_______________________________________________<br>
erlang-bugs mailing list<br>
<a href="mailto:erlang-bugs@erlang.org" target="_blank">erlang-bugs@erlang.org</a><br>
<a href="http://www.erlang.org/mailman/listinfo/erlang-bugs" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-bugs</a><br>
</blockquote>
<br>
<br>
</blockquote></div><br><br clear="all"><br>-- <br>For every expert there is an equal and opposite expert - Arthur C. Clarke<br>
</div>