summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2011-04-11 10:13:48 +0200
committerAndy Wingo <wingo@pobox.com>2011-04-11 10:13:48 +0200
commitadf43b3f081878860ed1d4d5091b9a432b44da90 (patch)
treec6ec362e0c004ff66df609313c215647afb08f9c
parent882c89636a2a4afa26cff17c7cdbc1d8c1cb2745 (diff)
downloadguile-adf43b3f081878860ed1d4d5091b9a432b44da90.tar.gz
ignore SIGPIPE in (system repl server)
* module/system/repl/server.scm (run-server): Ignore SIGPIPE when we run a server, as otherwise a rudely disconnected client could cause the server to quit. Thanks to John Proctor for the report, and Detlev Zundel for the debugging.
-rw-r--r--module/system/repl/server.scm3
1 files changed, 2 insertions, 1 deletions
diff --git a/module/system/repl/server.scm b/module/system/repl/server.scm
index 132ea81aa..ec9067745 100644
--- a/module/system/repl/server.scm
+++ b/module/system/repl/server.scm
@@ -1,6 +1,6 @@
;;; Repl server
-;; Copyright (C) 2003, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2010, 2011 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
@@ -103,6 +103,7 @@
(sleep 1)
(accept-new-client))))))
+ (sigaction SIGPIPE SIG_IGN)
(add-open-socket! server-socket)
(listen server-socket 5)
(let lp ((client (accept-new-client)))