mirror of https://github.com/pkg/sftp.git
Don't copy Server struct in sendPacket/sendError
Server struct contains Mutex which might be copied in inconsistent state. Avoid this by declaring methods on pointer receiver. This calms down go race detector. Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com>
This commit is contained in:
parent
1d032678cc
commit
9aa225fc15
|
@ -186,7 +186,7 @@ func (rs *RequestServer) handle(request Request, pkt requestPacket) responsePack
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wrap underlying connection methods to use packetManager
|
// Wrap underlying connection methods to use packetManager
|
||||||
func (rs RequestServer) sendPacket(m encoding.BinaryMarshaler) error {
|
func (rs *RequestServer) sendPacket(m encoding.BinaryMarshaler) error {
|
||||||
if pkt, ok := m.(responsePacket); ok {
|
if pkt, ok := m.(responsePacket); ok {
|
||||||
rs.pktMgr.readyPacket(pkt)
|
rs.pktMgr.readyPacket(pkt)
|
||||||
} else {
|
} else {
|
||||||
|
@ -195,7 +195,7 @@ func (rs RequestServer) sendPacket(m encoding.BinaryMarshaler) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rs RequestServer) sendError(p ider, err error) error {
|
func (rs *RequestServer) sendError(p ider, err error) error {
|
||||||
return rs.sendPacket(statusFromError(p, err))
|
return rs.sendPacket(statusFromError(p, err))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -328,7 +328,7 @@ func (svr *Server) Serve() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wrap underlying connection methods to use packetManager
|
// Wrap underlying connection methods to use packetManager
|
||||||
func (svr Server) sendPacket(m encoding.BinaryMarshaler) error {
|
func (svr *Server) sendPacket(m encoding.BinaryMarshaler) error {
|
||||||
if pkt, ok := m.(responsePacket); ok {
|
if pkt, ok := m.(responsePacket); ok {
|
||||||
svr.pktMgr.readyPacket(pkt)
|
svr.pktMgr.readyPacket(pkt)
|
||||||
} else {
|
} else {
|
||||||
|
@ -337,7 +337,7 @@ func (svr Server) sendPacket(m encoding.BinaryMarshaler) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (svr Server) sendError(p ider, err error) error {
|
func (svr *Server) sendError(p ider, err error) error {
|
||||||
return svr.sendPacket(statusFromError(p, err))
|
return svr.sendPacket(statusFromError(p, err))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue