diff options
| author | Adnan Maolood <[email protected]> | 2021-02-18 21:58:35 -0500 |
|---|---|---|
| committer | Adnan Maolood <[email protected]> | 2021-02-18 21:58:37 -0500 |
| commit | 229ebb410652f43da1a7e03db7e198df55d7ec3b (patch) | |
| tree | be81d957991d838f9d29b41eba65835ddef7e67e | |
| parent | client: Remove superfluous call to Flush (diff) | |
| download | go-gemini-229ebb410652f43da1a7e03db7e198df55d7ec3b.tar.xz go-gemini-229ebb410652f43da1a7e03db7e198df55d7ec3b.zip | |
request.Write: Accept an io.Writer
| -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() } |