diff --git a/response.go b/response.go index 4b71855..d97740a 100644 --- a/response.go +++ b/response.go @@ -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 == "" { diff --git a/status.go b/status.go index 99dbc30..fcf1686 100644 --- a/status.go +++ b/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.