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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user