summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2012-02-11 18:27:56 +0100
committerAndy Wingo <wingo@pobox.com>2012-02-11 18:27:56 +0100
commit2263ccb53e6017cc89ccb69556a69d3ae7c2ff3b (patch)
tree794ac7396804e9f3cdb917ef117342c2a35161af
parentc2c3bddb1d0b2180282d78262e84c3ae7a44731f (diff)
downloadguile-2263ccb53e6017cc89ccb69556a69d3ae7c2ff3b.tar.gz
web server: print backtrace on errors when run in batch mode
* module/web/server.scm (read-client, handle-request, write-client): When run in batch mode, give a full backtrace for errors.
-rw-r--r--module/web/server.scm24
1 files changed, 8 insertions, 16 deletions
diff --git a/module/web/server.scm b/module/web/server.scm
index ef6879ec3..b9bdef20c 100644
--- a/module/web/server.scm
+++ b/module/web/server.scm
@@ -1,6 +1,6 @@
;;; Web server
-;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+;; Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc.
;; This library is free software; you can redistribute it and/or
;; modify it under the terms of the GNU Lesser General Public
@@ -159,11 +159,8 @@ values."
(lambda ()
((server-impl-read impl) server))
#:pass-keys '(quit interrupt)
- #:on-error (if (batch-mode?) 'pass 'debug)
- #:post-error
- (lambda (k . args)
- (warn "Error while accepting client" k args)
- (values #f #f #f))))
+ #:on-error (if (batch-mode?) 'backtrace 'debug)
+ #:post-error (lambda _ (values #f #f #f))))
;; like call-with-output-string, but actually closes the port (doh)
(define (call-with-output-string* proc)
@@ -306,11 +303,9 @@ in, allowing the user's handler to explicitly manage its state."
(debug-elapsed 'sanitize)
(values response body state))))))
#:pass-keys '(quit interrupt)
- #:on-error (if (batch-mode?) 'pass 'debug)
- #:post-error
- (lambda (k . args)
- (warn "Error handling request" k args)
- (values (build-response #:code 500) #f state))))
+ #:on-error (if (batch-mode?) 'backtrace 'debug)
+ #:post-error (lambda _
+ (values (build-response #:code 500) #f state))))
;; -> unspecified values
(define (write-client impl server client response body)
@@ -322,11 +317,8 @@ attaching it to the @var{server} argument somehow."
(lambda ()
((server-impl-write impl) server client response body))
#:pass-keys '(quit interrupt)
- #:on-error (if (batch-mode?) 'pass 'debug)
- #:post-error
- (lambda (k . args)
- (warn "Error while writing response" k args)
- (values))))
+ #:on-error (if (batch-mode?) 'backtrace 'debug)
+ #:post-error (lambda _ (values))))
;; -> unspecified values
(define (close-server impl server)