Add a test for issue #60
This commit is contained in:
12
router.go
12
router.go
@@ -33,6 +33,7 @@ func (rl *rushlink) recoveryMiddleware(next http.Handler) http.Handler {
|
||||
defer func() {
|
||||
defer func() {
|
||||
if err := recover(); err != nil {
|
||||
w.WriteHeader(500)
|
||||
log.Printf("error: panic while recovering from another panic: %v\n", err)
|
||||
debug.PrintStack()
|
||||
fmt.Fprintf(w, "internal server error: %v\n", err)
|
||||
@@ -40,6 +41,7 @@ func (rl *rushlink) recoveryMiddleware(next http.Handler) http.Handler {
|
||||
}()
|
||||
|
||||
if err := recover(); err != nil {
|
||||
w.WriteHeader(500)
|
||||
log.Printf("error: %v\n", err)
|
||||
debug.PrintStack()
|
||||
rl.renderInternalServerError(w, r, err)
|
||||
@@ -80,10 +82,12 @@ func (w *statusResponseWriter) WriteHeader(statusCode int) {
|
||||
}
|
||||
|
||||
// CreateMainRouter creates the main Gorilla router for the application.
|
||||
func CreateMainRouter(rl *rushlink) *mux.Router {
|
||||
func CreateMainRouter(rl *rushlink, debug bool) *mux.Router {
|
||||
router := mux.NewRouter()
|
||||
router.Use(rl.recoveryMiddleware)
|
||||
router.Use(rl.metricsMiddleware)
|
||||
if !debug {
|
||||
router.Use(rl.recoveryMiddleware)
|
||||
router.Use(rl.metricsMiddleware)
|
||||
}
|
||||
router.HandleFunc("/{path:img/"+staticFilenameExpr+"}", rl.staticGetHandler).Methods("GET", "HEAD")
|
||||
router.HandleFunc("/{path:css/"+staticFilenameExpr+"}", rl.staticGetHandler).Methods("GET", "HEAD")
|
||||
router.HandleFunc("/{path:js/"+staticFilenameExpr+"}", rl.staticGetHandler).Methods("GET", "HEAD")
|
||||
@@ -119,7 +123,7 @@ func StartMainServer(addr string, db *db.Database, fs *db.FileStore, rawRootURL
|
||||
}
|
||||
|
||||
srv := &http.Server{
|
||||
Handler: CreateMainRouter(&rl),
|
||||
Handler: CreateMainRouter(&rl, false),
|
||||
Addr: addr,
|
||||
WriteTimeout: 15 * time.Second,
|
||||
ReadTimeout: 15 * time.Second,
|
||||
|
||||
Reference in New Issue
Block a user