hunk.code_window: 	if err.StatusCode != http.StatusInternalServerError {
   		status = err.StatusCode
   	}
   	http.Redirect(
   		w,
   		r,
   		"/error?message="+url.QueryEscape(message)+
   			"&details="+url.QueryEscape(details),
   		status)
   }
hunk.labels: keep keep keep keep replace replace replace replace replace replace keep
hunk.after_edit: 	destination := strings.TrimRight(GetSiteURL(), "/") + "/error?message=" + url.QueryEscape(err.Message)
   	if status >= 300 && status < 400 {
   		http.Redirect(w, r, destination, status)
   		return
   	}
   	w.WriteHeader(status)
   	fmt.Fprintln(w, `<!DOCTYPE html><html><head></head>`)
   	fmt.Fprintln(w, `<body onload="window.location = '`+template.HTMLEscapeString(template.JSEscapeString(destination))+`'">`)
   	fmt.Fprintln(w, `<noscript><meta http-equiv="refresh" content="0; url=`+template.HTMLEscapeString(destination)+`"></noscript>`)
   	fmt.Fprintln(w, `<a href="`+template.HTMLEscapeString(destination)+`" style="color: #c0c0c0;">...</a>`)
   	fmt.Fprintln(w, `</body></html>`)
  
hunk.file_path: utils/api.go
hunk.type: replace
file: // Copyright 2017 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  package socket
  
  func probeProtocolStack() int { return 4 }
  