From 2f43c191cc7e0f07ef9cbc243e6a073793f3dddb Mon Sep 17 00:00:00 2001 From: adnano Date: Fri, 25 Sep 2020 19:09:49 -0400 Subject: [PATCH] Reorganize --- client.go | 41 ++--------------------------------------- gemini.go | 37 +++++++++++++++++++++++++++++++++++++ server.go | 6 ++++++ tofu.go | 1 + 4 files changed, 46 insertions(+), 39 deletions(-) create mode 100644 gemini.go diff --git a/client.go b/client.go index 941969d..d12f51c 100644 --- a/client.go +++ b/client.go @@ -11,47 +11,10 @@ import ( "strconv" ) -// Status codes. -const ( - StatusInput = 10 - StatusSensitiveInput = 11 - StatusSuccess = 20 - StatusRedirectTemporary = 30 - StatusRedirectPermanent = 31 - StatusTemporaryFailure = 40 - StatusServerUnavailable = 41 - StatusCGIError = 42 - StatusProxyError = 43 - StatusSlowDown = 44 - StatusPermanentFailure = 50 - StatusNotFound = 51 - StatusGone = 52 - StatusProxyRequestRefused = 53 - StatusBadRequest = 59 - StatusClientCertificateRequired = 60 - StatusCertificateNotAuthorised = 61 - StatusCertificateNotValid = 62 -) - -// Status code categories. -const ( - StatusClassInput = 1 - StatusClassSuccess = 2 - StatusClassRedirect = 3 - StatusClassTemporaryFailure = 4 - StatusClassPermanentFailure = 5 - StatusClassClientCertificateRequired = 6 -) - // Errors. var ( - ErrProtocol = errors.New("gemini: protocol error") - ErrInvalidURL = errors.New("gemini: requested URL is invalid") - ErrBodyNotAllowed = errors.New("gemini: response status code does not allow for body") -) - -var ( - crlf = []byte("\r\n") + ErrProtocol = errors.New("gemini: protocol error") + ErrInvalidURL = errors.New("gemini: requested URL is invalid") ) // Request is a Gemini request. diff --git a/gemini.go b/gemini.go new file mode 100644 index 0000000..ccdb5df --- /dev/null +++ b/gemini.go @@ -0,0 +1,37 @@ +package gemini + +// Status codes. +const ( + StatusInput = 10 + StatusSensitiveInput = 11 + StatusSuccess = 20 + StatusRedirectTemporary = 30 + StatusRedirectPermanent = 31 + StatusTemporaryFailure = 40 + StatusServerUnavailable = 41 + StatusCGIError = 42 + StatusProxyError = 43 + StatusSlowDown = 44 + StatusPermanentFailure = 50 + StatusNotFound = 51 + StatusGone = 52 + StatusProxyRequestRefused = 53 + StatusBadRequest = 59 + StatusClientCertificateRequired = 60 + StatusCertificateNotAuthorised = 61 + StatusCertificateNotValid = 62 +) + +// Status code categories. +const ( + StatusClassInput = 1 + StatusClassSuccess = 2 + StatusClassRedirect = 3 + StatusClassTemporaryFailure = 4 + StatusClassPermanentFailure = 5 + StatusClassClientCertificateRequired = 6 +) + +var ( + crlf = []byte("\r\n") +) diff --git a/server.go b/server.go index cb3782a..5eb685d 100644 --- a/server.go +++ b/server.go @@ -3,6 +3,7 @@ package gemini import ( "bufio" "crypto/tls" + "errors" "log" "net" "net/url" @@ -12,6 +13,11 @@ import ( "time" ) +// Errors. +var ( + ErrBodyNotAllowed = errors.New("gemini: response status code does not allow for body") +) + // Server is a Gemini server. type Server struct { // Addr specifies the address that the server should listen on. diff --git a/tofu.go b/tofu.go index e4ff39f..a40ae38 100644 --- a/tofu.go +++ b/tofu.go @@ -12,6 +12,7 @@ import ( "strings" ) +// Errors. var ( ErrInvalidKnownHosts = errors.New("gemini: invalid known hosts") )