mirror of https://gogs.blitter.com/RLabs/xs
Added comment wrt. mutex lock scope in WritePacket
This commit is contained in:
parent
a49a5d4cc2
commit
925e83bbba
12
hkexnet.go
12
hkexnet.go
|
@ -449,6 +449,14 @@ func (c Conn) WritePacket(b []byte, op byte) (n int, err error) {
|
||||||
var hmacOut []uint8
|
var hmacOut []uint8
|
||||||
var payloadLen uint32
|
var payloadLen uint32
|
||||||
|
|
||||||
|
// N.B. Originally this Lock() surrounded only the
|
||||||
|
// calls to binary.Write(c.c ..) however there appears
|
||||||
|
// to be some other unshareable state in the Conn
|
||||||
|
// struct that must be protected to serialize main and
|
||||||
|
// chaff data written to it.
|
||||||
|
//
|
||||||
|
// Would be nice to determine if the mutex scope
|
||||||
|
// could be tightened.
|
||||||
c.Rwmut.Lock()
|
c.Rwmut.Lock()
|
||||||
{
|
{
|
||||||
log.Printf(" :>ptext:\r\n%s\r\n", hex.Dump(b))
|
log.Printf(" :>ptext:\r\n%s\r\n", hex.Dump(b))
|
||||||
|
@ -506,8 +514,6 @@ func (c *Conn) Chaff(enable bool, msecsMin int, msecsMax int, szMax int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper routine to spawn a chaffing goroutine for each Conn
|
// Helper routine to spawn a chaffing goroutine for each Conn
|
||||||
// TODO: if/when server->client chaffing is added, server must
|
|
||||||
// todo: ensure this is turned off on client hangup
|
|
||||||
func (c *Conn) chaffHelper(szMax int) {
|
func (c *Conn) chaffHelper(szMax int) {
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
|
@ -519,7 +525,7 @@ func (c *Conn) chaffHelper(szMax int) {
|
||||||
_, _ = rand.Read(chaff)
|
_, _ = rand.Read(chaff)
|
||||||
_, err := c.WritePacket(chaff, CSOChaff)
|
_, err := c.WritePacket(chaff, CSOChaff)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("[ *** error writing chaff - end chaffing *** ]")
|
log.Println("[ *** error - chaffHelper quitting *** ]")
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue