* server/XSPApplicationHost.cs: redirect on directories that are not
the root virtual directory when the path does not end in '/'. Fixes bug
#68082.
svn path=/trunk/xsp/; revision=35429
* server/LingeringNetworkStream.cs: make the byte [] buffer
static here. It is not of consequence what we write to the buffer
so we may as well cache it.
* server/XSPWorkerRequest.cs: Avoid String.Format related stuff,
just append to the stringbuilder.
svn path=/trunk/xsp/; revision=34535
* server/XSPApplicationHost.cs: rather than pass an ip addr
across appdomains as a string, pass it as a long. this avoids
the cost of making it into a string, and related allocations.
svn path=/trunk/xsp/; revision=34501
* configure.in: 1.0.2.99
* server/ApplicationServer.cs: allow unloading applications. Fixed
warnings.
* server/BaseApplicationHost.cs: when the domain is unloaded, tell
the application server we don't exist any more.
* server/BaseRequestBroker.cs: added some sanity checks.
* server/IApplicationHost.cs: added Server to the interface.
* server/ModMonoRequest.cs:
* server/ModMonoWorkerRequest.cs:
* server/ModMonoApplicationHost.cs: if apache is stopping, tell the
application server to finish everything off.
* server/XSPWorkerRequest.cs:
* server/XSPApplicationHost.cs: fixed warnings.
* server/server.cs: if running interactive, unload all applications
before exiting.
svn path=/trunk/xsp/; revision=34317
* server/ApplicationServer.cs: don't set the socket timeout for
mod-mono-server. Apache should take care of that.
* server/BaseApplicationHost.cs:
* server/BaseRequestBroker.cs:
* server/ModMonoApplicationHost.cs: unregister the request in
EndOfRequest event because under heavy load HttpRuntime.ProcessRequest
might return immediately and queue the request for later processing.
* server/XSPApplicationHost.cs: unregister the request when redirecting
* server/MonoWorkerRequest.cs:
* server/ModMonoWorkerRequest.cs:
* server/XSPWorkerRequest.cs: RequestId is not part of
MonoWorkerRequest interface.
svn path=/trunk/xsp/; revision=33112
* server/ApplicationServer.cs: ignore exceptions when setting socket
options as there are systems that don't support them. Fixes bug #63031.
svn path=/trunk/xsp/; revision=32438
* nunit-tests/standalone/Makefile.am:
* tools/nunitasp/source/NUnitAspTest/Makefile.am: fix distcheck on a
clean system and remove warnings.
svn path=/trunk/xsp/; revision=31893
* server/ApplicationServer.cs: fix host matching in presence of *.
Closes bug #61275.
* server/ModMonoWorkerRequest.cs: don't duplicate the slash when setting
a default file name that we know is not present.
svn path=/trunk/xsp/; revision=31661
* configure.in: 1.0.1.
* server/ApplicationServer.cs: don't timeout in Select when we only have
the listener socket. Use real times for timeout.
svn path=/trunk/xsp/; revision=31618
* server/ApplicationServer.cs: increased the backlog for listen, set
accepted sockets read/write timeout to 15s and handle timeouts when
reading request data before submitting the work item to the threadpool.
* server/XSPApplicationHost.cs: don't write a 500 error response if
we got an IOException when reading from the network stream.
* server/XSPWorkerRequest.cs: if there's an IOException when reading
the headers, just rethrow it.
svn path=/trunk/xsp/; revision=31587
* server/ModMonoApplicationHost.cs: don't write the 50x error response
to the stream. Just closing works and doesn't drive mod_mono crazy.
svn path=/trunk/xsp/; revision=31286
* test/Makefile.am:
* test/chunked.ashx: the output of this handler should be chunked for
1.1 clients and 1.0 clients that send the Accept-Encoding to 'chunked'.
svn path=/trunk/xsp/; revision=31105
* server/ModMonoApplicationHost.cs:
* server/ModMonoRequest.cs:
* server/ModMonoWorkerRequest.cs: when we can't find a suitable
application, return NOT_FOUND to mod_mono.
svn path=/trunk/xsp/; revision=31061
* server/Makefile.am: added ModMonoTCPWebSource.
* server/ModMonoApplicationHost.cs: in ModMonoWebSource, CreateSocket is now
virtual and the .ctor receives the file name as parameter.
* server/ModMonoRequest.cs: prevent absurd string sizes if the socket is not
in a expected state.
* server/ModMonoTCPWebSource.cs: supports mod_mono communication over a TCP
socket.
* server/XSPApplicationHost.cs: XSPWebSource .ctor receives address and port as
parameters.
* server/server.cs: updated help, handle address and port in mod-mono-server.
Choose TCP or unix socket IWebSource depending on the arguments.
svn path=/trunk/xsp/; revision=30976
* server/BaseRequestBroker.cs: Modified file.
* server/ModMonoRequest.cs: more data cached on first read.
* server/ModMonoWorkerRequest.cs: use Buffer.BlockCopy instead of
Array.Copy.
svn path=/trunk/xsp/; revision=30864
* server/ModMonoApplicationHost.cs:
* server/ModMonoWorkerRequest.cs:
* server/ModMonoRequest.cs: removed unused method/options and the
ack sent back after writing something. Unified setting status code
and message into 1 single command.
svn path=/trunk/xsp/; revision=30806
* configure.in: 0.15.99.
* server/ApplicationServer.cs: added method in VPathToHost that tells
if we're trying /xxx where xxx is a directory (ie, we need to redirec).
* server/InitialWorkerRequest.cs: don't remove trailing '/' in
GetSafePath ().
* server/XSPApplicationHost.cs: handle redirects and fixed nullref.
Closes bug #60478.
* ChangeLog: style.
* server/ModMonoApplicationHost.cs: splitted long lines.
* server/MonoWorkerRequest.cs: style.
svn path=/trunk/xsp/; revision=30324
The application host will query for information through this object,
which lives in the main domain.
* Makefile.am: Added new files.
* ModMonoRequest.cs: Added position parameter in SendResponseFromMemory, so
we can send partially filled buffers.
GetClientBlock(): Some checks that where done in ModMonoWorkerRequest
have been moved here. We can avoid two cross-app domain calls in this
way.
Merged SetStatusCode and SetStatusLine into SetStatusCodeLine. We avoid
another cross-app domain call.
* ModMonoWorkerRequest.cs: Renamed to ModMonoWorkerRequest, to make things
more understandable.
Removed all references to ModMonoRequest. All request information is
now available as input parameters or through the IRequestBroker.
Some old calls to ModMonoRequest have been merged into a single
IRequestBroker call, to avoid the overhead of a cross-app domain call.
* XSPApplicationHost.cs: Most of the code has been moved to other classes:
ApplicationServer, WebSource, XSPWebSource, ModMonoWebSource...
* XSPWorkerRequest.cs: Removed dependency to RequestData, since passing it
through the cross-app domain channel requires serialization support.
The same information is passed as primitive parameters.
In general, calls to the network stream are now done through the
IRequestBroker.
* server.cs: Create the ApplicationServer by providing a ModMonoWebSource
or a XSPWebSource instance.
* ApplicationServer.cs: New file. Moved here the old XSPApplicationServer.
Almost all code is now shared between XSP and mod_mono. Specific behavior
is now encapsulated in an IWebSource object.
* LingeringNetworkStream.cs: New file. Moved here the old MyNetworkStream.
* BaseApplicationHost.cs: New file. Moved here the old XSPApplicationHost.
* WebSource.cs: New file. Defines the IWebSource and IWorker interfaces.
* XSPApplicationHost.cs: New file. Provides an implementation for XSP
of a IWebSource, an IRequestBroker, an IApplicationHost and an IWorker.
* ModMonoApplicationHost.cs: New file. Provides an implementation for
mod_mono of a IWebSource, an IRequestBroker, an IApplicationHost and an
IWorker.
svn path=/trunk/xsp/; revision=29988