1
0
Fork 0
mirror of https://git.sr.ht/~adnano/go-gemini synced 2024-05-18 20:36:04 +02:00

Reintroduce Response.Write method

This commit is contained in:
Adnan Maolood 2021-02-28 20:50:18 -05:00
parent cf9ab18c1f
commit 845f8e9bd1

View File

@ -3,6 +3,7 @@ package gemini
import (
"bufio"
"crypto/tls"
"fmt"
"io"
"net"
"strconv"
@ -111,6 +112,24 @@ func (r *Response) TLS() *tls.ConnectionState {
return nil
}
// Write writes r to w in the Gemini response format, including the
// header and body.
//
// This method consults the Status, Meta, and Body fields of the response.
// The Response Body is closed after it is sent.
func (r *Response) Write(w io.Writer) error {
if _, err := fmt.Fprintf(w, "%02d %s\r\n", r.Status, r.Meta); err != nil {
return err
}
if r.Body != nil {
defer r.Body.Close()
if _, err := io.Copy(w, r.Body); err != nil {
return err
}
}
return nil
}
// A ResponseWriter interface is used by a Gemini handler to construct
// a Gemini response.
//