Base URL for server modules

Hi,

I have a question about the URL reservations used in Sparkle.  My understanding was that when creating a server module with a '+' in the base URL, this acts as a wildcard for the hostname specified in the incoming request.  For example :

TServerModule.Create('http://+:2001/'); 

would create a server module to respond to any request that hits the server on port 2001.  But if I wanted to only respond to requests for a specific hostname then I should be able to specify it in the reservation.  For example :

TServerModule.Create('http://127.0.0.1:2001/') 

should only respond to requests for the IP address, and would ignore requests such as http://localhost:2001.  However this is not working, and requests for http://localhost:2001 are also being processed.

What I am finding with Sparkle is that it seems to ignore specific hostnames in the base URL specified, and always effectively uses the '+' wildcard.  So the server module responds to any hostname, as long as the segments path matches.

Am I doing something wrong?

Thanks,
Jonathan

Yes, that's how it behaves right now. The host name is being ignored and it always use + to respond to requests. 

Hi, many thanks for your prompt reply!  Are there are plans to change this behaviour in a future version?

The main issue here is that a TServerModule is used not only by http.sys but also by other systems (like Apache) which behave differently. So we tried to make a common simpler behavior for any situation.

We might investigate it, yes. But I wonder if using that prefix when doing the URL reservation doesn't solve your issue?