Remove StatusClass* constants

Re-use the existing Status* constants and adjust StatusClass to return a
valid Status.
This commit is contained in:
Adnan Maolood 2021-02-14 16:01:37 -05:00
parent 7c703e95de
commit 37e5686764
2 changed files with 6 additions and 15 deletions

View File

@ -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 == "" {

View File

@ -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.