A couple of questions regarding quitting web apps,
1. I start up a servlet so:
(serve/servlet my-dispatch #:quit? #t ...)
Now, how come if I use a program like curl/wget to access the "/quit" URL,
the server doesn't shut down, but accessing the same URL via a web browser
does? Here's the terminal interaction with curl:
$ curl http://localhost:8000/quit
<html><head><title>Server Stopped</title><link rel="stylesheet"
href="/error.css" /></head><body><div class="section"><div class="title">Server
Stopped</div><p>Return to DrRacket.</p></div></body></html>
... The server continues running. Now if I visit the same url in a browser, it
stops after displaying the same HTML above. Here's the log file for the servlet
(the two requests look identical):
127.0.0.1 - - [23/Jun/2010:15:25:29 -0400] "GET /quit HTTP/1.1" 200 512
127.0.0.1 - - [23/Jun/2010:15:25:37 -0400] "GET /quit HTTP/1.1" 200 512
2. In general, is there a good way to set up a different URL to stop the
server? E.g. suppose I want to set up a "/shutdown" URL that determines first
if the current user is properly authenticated, and then shuts down the server.
I was playing around putting in a request to "/quit" in the handler for the
/shutdown URL: "(get-pure-port (string->url "http://localhost:8000/quit")) ...
" but this, like with curl, returns the "Server Stopped" page but doesn't
actually stop the server. How does the DrRacket "Stop" button stop a running
web server nicely? I tried doing (break-thread (current-thread)) in the handler
for /shutdown, but that didn't quit work either.
Thanks in advance,
--- nadeem
_________________________________________________
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users