diff options
| -rw-r--r-- | client.go | 5 | ||||
| -rw-r--r-- | request.go | 9 |
2 files changed, 6 insertions, 8 deletions
@@ -1,7 +1,6 @@ package gemini import ( - "bufio" "context" "crypto/tls" "crypto/x509" @@ -157,9 +156,7 @@ func (c *Client) Do(req *Request) (*Response, error) { func (c *Client) do(conn *tls.Conn, req *Request) (*Response, error) { // Write the request - w := bufio.NewWriter(conn) - - err := req.Write(w) + err := req.Write(conn) if err != nil { return nil, fmt.Errorf("failed to write request: %w", err) } @@ -107,16 +107,17 @@ func ReadRequest(r io.Reader) (*Request, error) { // Write writes a Gemini request in wire format. // This method consults the request URL only. -func (r *Request) Write(w *bufio.Writer) error { +func (r *Request) Write(w io.Writer) error { + bw := bufio.NewWriterSize(w, 1026) url := r.URL.String() if len(url) > 1024 { return ErrInvalidRequest } - if _, err := w.WriteString(url); err != nil { + if _, err := bw.WriteString(url); err != nil { return err } - if _, err := w.Write(crlf); err != nil { + if _, err := bw.Write(crlf); err != nil { return err } - return w.Flush() + return bw.Flush() } |