File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 66 [clojure.string :as str]
77 [io.pedestal.http :as http]
88 [ring.util.response :as response]
9+ [clojure.stacktrace :as stacktrace]
910 [io.pedestal.interceptor :as interceptor]
1011 [com.stuartsierra.component :as component]
1112 [io.pedestal.http.ring-middlewares :as middlewares]
1617 [grumpy.routes :as routes]
1718 [grumpy.authors :as authors])
1819 (:import
19- [java.util Date]))
20+ [java.util Date]
21+ [java.io IOException]))
2022
2123
2224(def page-size 5 )
149151 :body (grumpy/resource " robots.txt" )})]))
150152
151153
154+ (defn suppress-error [name class message-re]
155+ (interceptor/interceptor
156+ {:name name
157+ :error
158+ (fn [ctx ^Throwable e]
159+ (let [cause (stacktrace/root-cause e)
160+ message (.getMessage cause)]
161+ (if (and (instance? class cause) (re-matches message-re message))
162+ (do
163+ (println " Ignoring" (type cause) " -" message)
164+ ctx)
165+ (assoc ctx :io.pedestal.interceptor.chain/error e))))}))
166+
167+
152168(defrecord Server [opts crux server]
153169 component /Lifecycle
154170 (start [this]
161177 ::http/secure-headers {:content-security-policy-settings " object-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-eval'" }}
162178 (http/default-interceptors )
163179 (update ::http/interceptors conj no-cache)
180+ (update ::http/interceptors #(cons (suppress-error ::suppress-broken-pipe java.io.IOException #"Broken pipe" ) %))
164181 (http/create-server )
165182 (http/start ))]
166183 (assoc this :server server)))
You can’t perform that action at this time.
0 commit comments