
<erl>

out(A) -> 
    yaws_api:ssi(A#arg.docroot, ["/HEAD", "/TOPTAB"]).
            
</erl>


<H2>History</h2>

<table border="2">



<tr><td> <p>    </td></tr>

<tr><td> <p>Jun 28 by Johan, added support for generating server local redirect
by returning {redirect_local, Path}. I also added {redirect, Url}
for consistency.

<p>Fixed problem with url decoding of paths. get_path/1 now performs
yaws_api:url_decode/1 for all paths. I'm not completely sure this is
the right place to do this but it appears to work. Without this fix
yaws could not handle filenames with spaces (and I'm pretty sure other
things were broken as well).

<p>It looks like IE and Netscape has different formats for the 
<tt> Host </tt>  header. IE sends <tt> Host: hostname:port </tt>
when port != 80, while Netscape always sends <tt> Host: hostname </tt>.
This caused the 303 redirect code to break. Now fixed. I suspect
that there are other instances of this problem.

<p>Added <tt> fullpath </tt> to the arg record. It contains the
absolute file path of the requested file.

<p>I've added my ported and modified version of Joe's Wiki code to the
applications directory.

</td></tr>


<tr><td> <p>Jun 18, return status 303 when browser asks for a dir URL
without a trailing / in the http request. I've always wondered why apache
does this. Now I know ... otherwise the relative URLs in /dir/index.html
will be wrong when the browser tries to get them.   Utilize this feature
when listing dirs now, generate relative urls instead of absolute.


<p>Removed the default_server_on_this_ip option, the first virthosted server 
in the config will be default if no Host: header is present
<p> Made the Host: check to check for Host: host:port instead of just host
when a server is run on a non-standar port. The browsers seem to
set the Host: filed to host:port then Dunno if this is HTTP compliant ...


<p>Tobbe added the -r flag to the startscript.

<p>Changed yaws_api:parse_post_data/1 so that it takes an arg struct
as argument instead of querydata and added support for multipart
form data in the process.


</td></tr>


<tr><td> <p>Jun 17, fixed yet another chunked encoding bug   </td></tr>


<tr><td> <p>Jun 16, wrote a proper /etc/init.d start/stop/reload/status script, new flag cmdline -S which query the daemon status   </td></tr>


<tr><td> <p>Jun 15, fixed abug in the cache load machanism, pages were cached indefinitely. A bug in the new code in 0.48 didn't ship any content on 401 's   </td></tr>


<tr><td><p>Jun 12 Redid the out/1 structure completely removed some/all headers and made
it possible to return headers as well as new status code inside any out/1 function. This makes it much easier to write apps in yaws.   Also accumulated output into larger write chunks. Performnce enhancer.</td></tr>


<tr><td> <p>Jun 11, fixed Etag: and Last-Modified: headers for static content.
Fixed the Cache-Contol: headers for generated content.
The <erl> tag must
no longer be first on each line   </td></tr>

<tr><td> <p>Jun 10, use prim_file: instead of file: calls, fix a bug
with iso 8859 chars in urls, virthost bug with multiple IP addresses  </td></tr>


<tr><td> <p>May 26, added SSL support  0.40 </td> </tr>

 <tr><td> <p>Mar 29, fixed a bug in the log wrapping which restarted the server</td></tr>
<tr><td> <p>Mar 26, released 0.32 </tr>
<tr> <td> <p>Mar 26, 2002. Fixed a bug where chunked encodings were
missing a CRNL which made all yaws pages not render in IE </td> </tr>

<tr> <td> <p>Mar 25 2002 Fixed a bug with empty initial lines in yaws files.
<br>Made access log files per virt host.
<br>Made the access log as well as the info/err log a wrap log, wraps at 50k.

<tr><td> <p>Mar 17 2002, buxfix in cache + added -T flag to yaws, which is
http protocol trace in log file

<tr><td> <p>Mar4 4   2002 made release 0.30 <td><tr>

<tr><td> <p>Feb 28, 2002 Added traffic trace -t flag and ~/public_html support.

<tr><td> <p>Feb 26, 2002 Cought I/O from the erlang compiler when compiling.
The compiler will (wrongly) produce some errors plainly to the tty.
The RightThing would be to fix that, but .....

<tr><td> <p>Feb 22, 2002 yaws_api:set_cookie + examples    </td></tr>

<tr><td> <p>Feb 14, 2002 redid HTML tables for top docs    </td></tr>

<tr><td> <p>Feb 13, 2002 released first version to the net 0.20    </td></tr>

<tr><td> <p>Feb 12, 2002 cached pages in RAM (ets tables)    </td></tr>

<tr><td> <p>Feb 7, 2002 added virtual hosting capabilities    </td></tr>

<tr><td> <p>Feb 6, added query strings in URLs passed in #arg{}    </td></tr>

<tr><td> <p>Feb 5, 2002 added directory listings    </td></tr>

<tr><td> <p>Jan 15, 2002. Started to hack the thing </td></tr>
</table>

<erl>
out(A) -> yaws_api:ssi(A#arg.docroot, ["/END"]).
</erl>

