Skip to content

Commit ef6de60

Browse files
authoredMar 16, 2020
Merge pull request FluuxIO#159 from remicorniere/close_keepalive
Close keepalive when recv() ends in client.go
2 parents 64e5413 + d4960af commit ef6de60

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed
 

‎client.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -379,11 +379,12 @@ func (c *Client) sendWithWriter(writer io.Writer, packet []byte) error {
379379

380380
// Loop: Receive data from server
381381
func (c *Client) recv(keepaliveQuit chan<- struct{}) {
382+
defer close(keepaliveQuit)
383+
382384
for {
383385
val, err := stanza.NextPacket(c.transport.GetDecoder())
384386
if err != nil {
385387
c.ErrorHandler(err)
386-
close(keepaliveQuit)
387388
c.disconnected(c.Session.SMState)
388389
return
389390
}
@@ -392,7 +393,6 @@ func (c *Client) recv(keepaliveQuit chan<- struct{}) {
392393
switch packet := val.(type) {
393394
case stanza.StreamError:
394395
c.router.route(c, val)
395-
close(keepaliveQuit)
396396
c.streamError(packet.Error.Local, packet.Text)
397397
c.ErrorHandler(errors.New("stream error: " + packet.Error.Local))
398398
// We don't return here, because we want to wait for the stream close tag from the server, or timeout.

0 commit comments

Comments
 (0)
Please sign in to comment.