aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client.go5
-rw-r--r--request.go9
2 files changed, 6 insertions, 8 deletions
diff --git a/client.go b/client.go
index a2e53f0..155dd8b 100644
--- a/client.go
+++ b/client.go
@@ -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)
}
diff --git a/request.go b/request.go
index 72fb2cb..b111388 100644
--- a/request.go
+++ b/request.go
@@ -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()
}