Remove Redirect and PermanentRedirect functions

Use (*ResponseWriter).WriteHeader instead.
This commit is contained in:
Adnan Maolood 2020-10-31 16:51:10 -04:00
parent ca8e0166fc
commit 63b9b484d1
4 changed files with 6 additions and 16 deletions

View File

@ -70,7 +70,7 @@ func login(w *gemini.ResponseWriter, r *gemini.Request) {
sessions[fingerprint] = &session{ sessions[fingerprint] = &session{
username: username, username: username,
} }
gemini.Redirect(w, "/password") w.WriteHeader(gemini.StatusRedirect, "/password")
} }
func loginPassword(w *gemini.ResponseWriter, r *gemini.Request) { func loginPassword(w *gemini.ResponseWriter, r *gemini.Request) {
@ -91,7 +91,7 @@ func loginPassword(w *gemini.ResponseWriter, r *gemini.Request) {
expected := logins[session.username].password expected := logins[session.username].password
if password == expected { if password == expected {
session.authorized = true session.authorized = true
gemini.Redirect(w, "/profile") w.WriteHeader(gemini.StatusRedirect, "/profile")
} else { } else {
gemini.SensitiveInput(w, r, "Wrong password. Try again") gemini.SensitiveInput(w, r, "Wrong password. Try again")
} }

4
mux.go
View File

@ -138,14 +138,14 @@ func (mux *ServeMux) Respond(w *ResponseWriter, r *Request) {
// If the given path is /tree and its handler is not registered, // If the given path is /tree and its handler is not registered,
// redirect for /tree/. // redirect for /tree/.
if u, ok := mux.redirectToPathSlash(path, r.URL); ok { if u, ok := mux.redirectToPathSlash(path, r.URL); ok {
Redirect(w, u.String()) w.WriteHeader(StatusRedirect, u.String())
return return
} }
if path != r.URL.Path { if path != r.URL.Path {
u := *r.URL u := *r.URL
u.Path = path u.Path = path
Redirect(w, u.String()) w.WriteHeader(StatusRedirect, u.String())
return return
} }

View File

@ -319,16 +319,6 @@ func SensitiveInput(w *ResponseWriter, r *Request, prompt string) (string, bool)
return "", false return "", false
} }
// Redirect replies to the request with a redirect to the given URL.
func Redirect(w *ResponseWriter, url string) {
w.WriteHeader(StatusRedirect, url)
}
// PermanentRedirect replies to the request with a permanent redirect to the given URL.
func PermanentRedirect(w *ResponseWriter, url string) {
w.WriteHeader(StatusRedirectPermanent, url)
}
// Certificate returns the request certificate. If one is not provided, // Certificate returns the request certificate. If one is not provided,
// it returns nil and responds with StatusCertificateRequired. // it returns nil and responds with StatusCertificateRequired.
func Certificate(w *ResponseWriter, r *Request) (*x509.Certificate, bool) { func Certificate(w *ResponseWriter, r *Request) (*x509.Certificate, bool) {

View File

@ -8,7 +8,7 @@ const (
StatusSensitiveInput Status = 11 StatusSensitiveInput Status = 11
StatusSuccess Status = 20 StatusSuccess Status = 20
StatusRedirect Status = 30 StatusRedirect Status = 30
StatusRedirectPermanent Status = 31 StatusPermanentRedirect Status = 31
StatusTemporaryFailure Status = 40 StatusTemporaryFailure Status = 40
StatusServerUnavailable Status = 41 StatusServerUnavailable Status = 41
StatusCGIError Status = 42 StatusCGIError Status = 42
@ -52,7 +52,7 @@ func (s Status) Message() string {
return "Success" return "Success"
case StatusRedirect: case StatusRedirect:
return "Redirect" return "Redirect"
case StatusRedirectPermanent: case StatusPermanentRedirect:
return "Permanent redirect" return "Permanent redirect"
case StatusTemporaryFailure: case StatusTemporaryFailure:
return "Temporary failure" return "Temporary failure"