Expose Request.Write and Response.Read functions
This commit is contained in:
parent
c329a2487e
commit
decd72cc23
@ -78,14 +78,14 @@ func (c *Client) Do(req *Request) (*Response, error) {
|
||||
|
||||
// Write the request
|
||||
w := bufio.NewWriter(conn)
|
||||
req.write(w)
|
||||
req.Write(w)
|
||||
if err := w.Flush(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Read the response
|
||||
resp := &Response{}
|
||||
if err := resp.read(conn); err != nil {
|
||||
if err := resp.Read(conn); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// Store connection state
|
||||
|
@ -65,8 +65,8 @@ func NewRequestFromURL(url *url.URL) *Request {
|
||||
}
|
||||
}
|
||||
|
||||
// write writes the Gemini request to the provided buffered writer.
|
||||
func (r *Request) write(w *bufio.Writer) error {
|
||||
// Write writes the Gemini request to the provided buffered writer.
|
||||
func (r *Request) Write(w *bufio.Writer) error {
|
||||
url := r.URL.String()
|
||||
// User is invalid
|
||||
if r.URL.User != nil || len(url) > 1024 {
|
||||
|
@ -26,8 +26,8 @@ type Response struct {
|
||||
TLS tls.ConnectionState
|
||||
}
|
||||
|
||||
// read reads a Gemini response from the provided io.ReadCloser.
|
||||
func (resp *Response) read(rc io.ReadCloser) error {
|
||||
// Read reads a Gemini response from the provided io.ReadCloser.
|
||||
func (resp *Response) Read(rc io.ReadCloser) error {
|
||||
br := bufio.NewReader(rc)
|
||||
// Read the status
|
||||
statusB := make([]byte, 2)
|
||||
|
@ -182,7 +182,7 @@ func (s *Server) respond(conn net.Conn) {
|
||||
}
|
||||
|
||||
r := bufio.NewReader(conn)
|
||||
w := newResponseWriter(conn)
|
||||
w := NewResponseWriter(conn)
|
||||
// Read requested URL
|
||||
rawurl, err := r.ReadString('\r')
|
||||
if err != nil {
|
||||
@ -264,7 +264,8 @@ type ResponseWriter struct {
|
||||
mediatype string
|
||||
}
|
||||
|
||||
func newResponseWriter(conn net.Conn) *ResponseWriter {
|
||||
// NewResponseWriter returns a ResponseWriter that will write to conn.
|
||||
func NewResponseWriter(conn net.Conn) *ResponseWriter {
|
||||
return &ResponseWriter{
|
||||
b: bufio.NewWriter(conn),
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user