Remove StatusClass* constants
Re-use the existing Status* constants and adjust StatusClass to return a valid Status.
This commit is contained in:
parent
7c703e95de
commit
37e5686764
|
@ -47,7 +47,7 @@ func ReadResponse(rc io.ReadCloser) (*Response, error) {
|
||||||
|
|
||||||
// Disregard invalid status codes
|
// Disregard invalid status codes
|
||||||
const minStatus, maxStatus = 1, 6
|
const minStatus, maxStatus = 1, 6
|
||||||
statusClass := resp.Status / 10
|
statusClass := StatusClass(status)
|
||||||
if statusClass < minStatus || statusClass > maxStatus {
|
if statusClass < minStatus || statusClass > maxStatus {
|
||||||
return nil, ErrInvalidResponse
|
return nil, ErrInvalidResponse
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ func ReadResponse(rc io.ReadCloser) (*Response, error) {
|
||||||
return nil, ErrInvalidResponse
|
return nil, ErrInvalidResponse
|
||||||
}
|
}
|
||||||
// Default mime type of text/gemini; charset=utf-8
|
// Default mime type of text/gemini; charset=utf-8
|
||||||
if statusClass == StatusClassSuccess && meta == "" {
|
if statusClass == StatusSuccess && meta == "" {
|
||||||
meta = "text/gemini; charset=utf-8"
|
meta = "text/gemini; charset=utf-8"
|
||||||
}
|
}
|
||||||
resp.Meta = meta
|
resp.Meta = meta
|
||||||
|
@ -83,7 +83,7 @@ func ReadResponse(rc io.ReadCloser) (*Response, error) {
|
||||||
return nil, ErrInvalidResponse
|
return nil, ErrInvalidResponse
|
||||||
}
|
}
|
||||||
|
|
||||||
if resp.Status/10 == StatusClassSuccess {
|
if statusClass == StatusSuccess {
|
||||||
resp.Body = newReadCloserBody(br, rc)
|
resp.Body = newReadCloserBody(br, rc)
|
||||||
} else {
|
} else {
|
||||||
resp.Body = nopReadCloser{}
|
resp.Body = nopReadCloser{}
|
||||||
|
@ -207,7 +207,7 @@ func (w *responseWriter) writeHeader(defaultStatus int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
meta := w.meta
|
meta := w.meta
|
||||||
if status/10 == StatusClassSuccess {
|
if StatusClass(status) == StatusSuccess {
|
||||||
w.bodyAllowed = true
|
w.bodyAllowed = true
|
||||||
|
|
||||||
if meta == "" {
|
if meta == "" {
|
||||||
|
|
13
status.go
13
status.go
|
@ -22,19 +22,10 @@ const (
|
||||||
StatusCertificateNotValid = 62
|
StatusCertificateNotValid = 62
|
||||||
)
|
)
|
||||||
|
|
||||||
// Status code categories.
|
|
||||||
const (
|
|
||||||
StatusClassInput = 1
|
|
||||||
StatusClassSuccess = 2
|
|
||||||
StatusClassRedirect = 3
|
|
||||||
StatusClassTemporaryFailure = 4
|
|
||||||
StatusClassPermanentFailure = 5
|
|
||||||
StatusClassCertificateRequired = 6
|
|
||||||
)
|
|
||||||
|
|
||||||
// StatusClass returns the status class for this status code.
|
// StatusClass returns the status class for this status code.
|
||||||
|
// 1x becomes 10, 2x becomes 20, etc.
|
||||||
func StatusClass(status int) int {
|
func StatusClass(status int) int {
|
||||||
return status / 10
|
return (status / 10) * 10
|
||||||
}
|
}
|
||||||
|
|
||||||
// Meta returns a description of the status code appropriate for use in a response.
|
// Meta returns a description of the status code appropriate for use in a response.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user