You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gophi/responder.go

55 lines
1.3 KiB
Go

package main
import (
"io"
)
type Responder struct {
Conn *BufferedDeadlineConn
Host *ConnHost
Client *ConnClient
Request *Request
}
func NewResponder(conn *BufferedDeadlineConn, host *ConnHost, client *ConnClient, request *Request) *Responder {
return &Responder{ conn, host, client, request }
}
func (r *Responder) AccessLogInfo(format string, args ...interface{}) {
Config.AccLog.Info("("+r.Client.Ip()+") ", format, args...)
}
func (r *Responder) AccessLogError(format string, args ...interface{}) {
Config.AccLog.Error("("+r.Client.Ip()+") ", format, args...)
}
func (r *Responder) Write(b []byte) (int, error) {
return r.Conn.Write(b)
}
func (r *Responder) WriteData(data []byte) *GophorError {
err := r.Conn.WriteData(data)
if err != nil {
return &GophorError{ SocketWriteErr, err }
}
return nil
}
func (r *Responder) WriteRaw(reader io.Reader) *GophorError {
err := r.Conn.WriteRaw(reader)
if err != nil {
return &GophorError{ SocketWriteRawErr, err }
}
return nil
}
func (r *Responder) CloneWithRequest(request *Request) *Responder {
/* Create new copy of Responder only with request differring */
return &Responder{
r.Conn,
r.Host,
r.Client,
request,
}
}