@@ -27,7 +27,7 @@ type ServerInstance struct {
27
27
xor uint32
28
28
minutes time.Duration
29
29
sessions map [[21 ]byte ]* ServerSession
30
- stop bool
30
+ closed bool
31
31
}
32
32
33
33
type ServerConn struct {
@@ -57,7 +57,8 @@ func (i *ServerInstance) Init(nfsDKeySeed []byte, xor uint32, minutes time.Durat
57
57
time .Sleep (time .Minute )
58
58
now := time .Now ()
59
59
i .Lock ()
60
- if i .stop {
60
+ if i .closed {
61
+ i .Unlock ()
61
62
return
62
63
}
63
64
for ticket , session := range i .sessions {
@@ -74,8 +75,8 @@ func (i *ServerInstance) Init(nfsDKeySeed []byte, xor uint32, minutes time.Durat
74
75
75
76
func (i * ServerInstance ) Close () (err error ) {
76
77
i .Lock ()
77
- defer i . Unlock ()
78
- i .stop = true
78
+ i . closed = true
79
+ i .Unlock ()
79
80
return
80
81
}
81
82
@@ -225,7 +226,7 @@ func (c *ServerConn) Read(b []byte) (int, error) {
225
226
}
226
227
var peerAead cipher.AEAD
227
228
if bytes .Equal (c .peerNonce , MaxNonce ) {
228
- peerAead = NewAead (ClientCipher , c .baseKey , peerData , peerHeader )
229
+ peerAead = NewAead (c . cipher , c .baseKey , peerData , peerHeader )
229
230
}
230
231
_ , err = c .peerAead .Open (dst [:0 ], c .peerNonce , peerData , peerHeader )
231
232
if peerAead != nil {
@@ -268,7 +269,7 @@ func (c *ServerConn) Write(b []byte) (int, error) {
268
269
EncodeHeader (data , len (b )+ 16 )
269
270
c .aead .Seal (data [:5 ], c .nonce , b , data [:5 ])
270
271
if bytes .Equal (c .nonce , MaxNonce ) {
271
- c .aead = NewAead (ClientCipher , c .baseKey , data [5 :], data [:5 ])
272
+ c .aead = NewAead (c . cipher , c .baseKey , data [5 :], data [:5 ])
272
273
}
273
274
}
274
275
IncreaseNonce (c .nonce )
0 commit comments