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
|
||||
const minStatus, maxStatus = 1, 6
|
||||
statusClass := resp.Status / 10
|
||||
statusClass := StatusClass(status)
|
||||
if statusClass < minStatus || statusClass > maxStatus {
|
||||
return nil, ErrInvalidResponse
|
||||
}
|
||||
@ -71,7 +71,7 @@ func ReadResponse(rc io.ReadCloser) (*Response, error) {
|
||||
return nil, ErrInvalidResponse
|
||||
}
|
||||
// Default mime type of text/gemini; charset=utf-8
|
||||
if statusClass == StatusClassSuccess && meta == "" {
|
||||
if statusClass == StatusSuccess && meta == "" {
|
||||
meta = "text/gemini; charset=utf-8"
|
||||
}
|
||||
resp.Meta = meta
|
||||
@ -83,7 +83,7 @@ func ReadResponse(rc io.ReadCloser) (*Response, error) {
|
||||
return nil, ErrInvalidResponse
|
||||
}
|
||||
|
||||
if resp.Status/10 == StatusClassSuccess {
|
||||
if statusClass == StatusSuccess {
|
||||
resp.Body = newReadCloserBody(br, rc)
|
||||
} else {
|
||||
resp.Body = nopReadCloser{}
|
||||
@ -207,7 +207,7 @@ func (w *responseWriter) writeHeader(defaultStatus int) {
|
||||
}
|
||||
|
||||
meta := w.meta
|
||||
if status/10 == StatusClassSuccess {
|
||||
if StatusClass(status) == StatusSuccess {
|
||||
w.bodyAllowed = true
|
||||
|
||||
if meta == "" {
|
||||
|
13
status.go
13
status.go
@ -22,19 +22,10 @@ const (
|
||||
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.
|
||||
// 1x becomes 10, 2x becomes 20, etc.
|
||||
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.
|
||||
|
Loading…
Reference in New Issue
Block a user