diff --git a/collects/web-server/info.ss b/collects/web-server/info.ss index 54f53defd9..7cfabc717c 100644 --- a/collects/web-server/info.ss +++ b/collects/web-server/info.ss @@ -5,11 +5,11 @@ (list)) (define mzscheme-launcher-libraries - (list "private/text-launch.ss" "private/monitor-launch.ss" "private/setup-launch.ss" )) + (list "private/launch-text.ss" "private/setup-launch.ss" )) (define mzscheme-launcher-names - (list "PLT Web Server Text" "PLT Web Server Monitor" "PLT Web Server Setup")) + (list "PLT Web Server Text" "PLT Web Server Setup")) (define mred-launcher-libraries - (list "private/gui-launch.ss")) + (list "private/launch-gui.ss")) (define mred-launcher-names (list "PLT Web Server"))) diff --git a/collects/web-server/private/gui-launch.ss b/collects/web-server/private/launch-gui.ss similarity index 94% rename from collects/web-server/private/gui-launch.ss rename to collects/web-server/private/launch-gui.ss index 8412e8dbfb..82e031ba78 100644 --- a/collects/web-server/private/gui-launch.ss +++ b/collects/web-server/private/launch-gui.ss @@ -1,4 +1,4 @@ -(module gui-launch mzscheme +(module launch-gui mzscheme (require (lib "class.ss") (lib "mred.ss" "mred")) (require "launch.ss") diff --git a/collects/web-server/private/text-launch.ss b/collects/web-server/private/launch-text.ss similarity index 64% rename from collects/web-server/private/text-launch.ss rename to collects/web-server/private/launch-text.ss index d721f36719..c27790def1 100644 --- a/collects/web-server/private/text-launch.ss +++ b/collects/web-server/private/launch-text.ss @@ -1,4 +1,4 @@ -(module text-launch mzscheme +(module launch-text mzscheme (require "launch.ss" (only "../web-server.ss" do-not-return)) (serve) diff --git a/collects/web-server/private/monitor-emailer.ss b/collects/web-server/private/monitor-emailer.ss deleted file mode 100644 index d9b4c2ebe4..0000000000 --- a/collects/web-server/private/monitor-emailer.ss +++ /dev/null @@ -1,19 +0,0 @@ -(module monitor-emailer mzscheme - (require (lib "sendmail.ss" "net") - (lib "contract.ss")) - - (provide/contract [send-email-alert (string? ; email address - string? ; server-name - number? ; server-port - string? ; message - . -> . - void?)]) - - ; send-email-alert : send an email to the specified address informing them of the failure. - (define (send-email-alert alert-address server-name server-port message) - (send-mail-message alert-address - (format "The server ~a:~a is not responding!" server-name server-port) - (list alert-address) - null - null - (list message '("" "Fix it ASAP!!!"))))) diff --git a/collects/web-server/private/monitor-launch.ss b/collects/web-server/private/monitor-launch.ss deleted file mode 100644 index b2a1754081..0000000000 --- a/collects/web-server/private/monitor-launch.ss +++ /dev/null @@ -1,31 +0,0 @@ -; The main program of the "web-server-monitor" launcher. -(module monitor-launch mzscheme - (require "monitor-server.ss" - "util.ss" - (lib "cmdline.ss")) - - ; handle-numeric-flag : sym -> str str -> (cons sym num) - (define (handle-numeric-flag name) - (lambda (dc-flag arg) - (cons name (string->number arg)))) - - (parse-command-line - "web-server-monitor" - (current-command-line-arguments) - `((once-each - [("-p" "--port") - ,(handle-numeric-flag 'port) - ("Connects to the network port ." "port")] - [("-f" "--frequency") - ,(handle-numeric-flag 'frequency) - ("Polls every seconds." "frequency")] - [("-t" "--timeout") - ,(handle-numeric-flag 'timeout) - ("Assumes failure after seconds." "timeout")])) - (lambda (flags email-address host-name) - (monitor email-address - host-name - (extract-flag 'port flags default-server-port) - (extract-flag 'frequency flags default-poll-frequency-seconds) - (extract-flag 'timeout flags default-server-response-timeout-seconds))) - '("email-address" "host-name"))) diff --git a/collects/web-server/private/monitor-poke-web-server.ss b/collects/web-server/private/monitor-poke-web-server.ss deleted file mode 100644 index a7a80cabc9..0000000000 --- a/collects/web-server/private/monitor-poke-web-server.ss +++ /dev/null @@ -1,85 +0,0 @@ -(module monitor-poke-web-server mzscheme - (require (lib "contract.ss") - (lib "match.ss")) - - ;; this file contains functions to check whether a given host is responding to HTTP requests, - ;; specifically to a "HEAD ~a HTTP/1.0" request, where ~a is supplied by the caller. - - ;; the original code was Paul Graunke's, refactored & encontracted by John Clements - - - (define (poke-result? result) - (match result - [`(fail ,(? string? server-name) ,(? number? server-port) ,(? string? msg)) #t] - [`(timeout ,(? string? server-name) ,(? number? server-port) ,(? number? timeout-seconds)) #t] - [`(exn ,(? string? server-name) ,(? number? server-port) ,(? exn? exn)) #t] - [`(ok) #t] - [else #f])) - - (provide/contract [poke-web-server (channel? ; result-channel - string? ; server-name - number? ; server-port - number? ; timeout-seconds - . -> . - void?)] - [poke-web-server/path (string? ; path - channel? ; result-channel - string? ; server-name - number? ; server-port - number? ; timeout-seconds - . -> . - void?)] - [result->message (poke-result? . -> . string?)]) - - (define OK-REGEXP (regexp "^HTTP/[0-9]*.[0-9]* 200")) - - - ; result->message : given a poke-result?, produce a reasonable error message. - (define (result->message result) - (match result - [`(fail ,server-name ,server-port ,line) - (string-append - (format "The web server ~a:~a did not respond\n" server-name server-port) - "to a head request for its home page with an 'okay' result.\n" - (format "Received: ~a\n" line))] - [`(timeout ,server-name ,server-port ,timeout-seconds) - (string-append - (format "Attempting to send a head request to ~a:~a\n" server-name server-port) - (format "timed out after ~a seconds.\n" timeout-seconds))] - [`(exn ,server-name ,server-port ,exn) - (string-append - (format "Attempting to send a head request to ~a:~a\n" server-name server-port) - "resulted in the following exception:\n" - "\n" - (format "~a\n" (if (exn? exn) - (exn-message exn) - exn)))] - [`(ok) "no error"])) - - (define (poke-web-server result-channel server-name server-port timeout-seconds) - (poke-web-server/path "/" result-channel server-name server-port timeout-seconds)) - - (define (poke-web-server/path path result-channel server-name server-port timeout-seconds) - (let* ([cust (make-custodian)] - [blow-up-handler (lambda (exn) - (channel-put result-channel `(exn ,server-name ,server-port ,exn)) - (custodian-shutdown-all cust))]) - (parameterize ([current-custodian cust]) - (thread (lambda () - (with-handlers ([void blow-up-handler]) - (sleep timeout-seconds)) - (channel-put result-channel `(timeout ,server-name ,server-port ,timeout-seconds)) - (custodian-shutdown-all cust))) - (thread - (lambda () - (with-handlers ([void blow-up-handler]) - (let-values ([(in out) (tcp-connect server-name server-port)]) - (fprintf out "HEAD ~a HTTP/1.0\r\n" path) - (fprintf out "Host: ~a\r\n\r\n" server-name) ; what the jiminy cricket does this line do;? - (flush-output out) ;; now required for all TCP ports - (let ([line (read-line in)]) - (if (regexp-match OK-REGEXP line) - (channel-put result-channel '(ok)) - (channel-put result-channel `(fail ,server-name ,server-port ,line))) - (custodian-shutdown-all cust)))))) - (void))))) \ No newline at end of file diff --git a/collects/web-server/private/monitor-server.ss b/collects/web-server/private/monitor-server.ss deleted file mode 100644 index 3d5f97b274..0000000000 --- a/collects/web-server/private/monitor-server.ss +++ /dev/null @@ -1,38 +0,0 @@ -(module monitor-server mzscheme - (require (lib "etc.ss") - (lib "contract.ss") - (lib "match.ss")) - (require "monitor-poke-web-server.ss" - "monitor-emailer.ss") - - (define default-server-port 80) - (define default-poll-frequency-seconds 3600) - (define default-server-response-timeout-seconds 75) - - ; monitor : str str [nat] [num] [num] -> doesn't - (define monitor - (opt-lambda (email-address - server-name - [server-port default-server-port] - [poll-frequency-seconds default-poll-frequency-seconds] - [server-response-timeout-seconds default-server-response-timeout-seconds]) - - (define result-channel (make-channel)) - - (define (send-email msg) - (send-email-alert email-address server-name server-port msg)) - - (let check-server () - (poke-web-server result-channel server-name server-port server-response-timeout-seconds) - (let ([result (channel-get result-channel)]) - (match result - [`(ok) (void)] - [else (send-email (result->message result))]) - (sleep poll-frequency-seconds) - (check-server))))) - - (provide/contract - [monitor ((string? string?) (number? number? number?) . opt-> . void)] - [default-server-port number?] - [default-poll-frequency-seconds number?] - [default-server-response-timeout-seconds number?])) \ No newline at end of file