Skip to content

Commit c654a3e

Browse files
authored
dont prematurely detach client session from broker on goodbye (#266)
1 parent 1bd7da7 commit c654a3e

File tree

2 files changed

+6
-11
lines changed

2 files changed

+6
-11
lines changed

parser.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ func (v Value) UInt64() (uint64, error) {
123123
return val, nil
124124
case uint:
125125
return uint64(val), nil
126+
case uint8:
127+
return uint64(val), nil
128+
case uint16:
129+
return uint64(val), nil
126130
case uint32:
127131
return uint64(val), nil
128132
case int64:

realm.go

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -284,17 +284,8 @@ func (r *Realm) ReceiveMessage(baseSession BaseSession, msg messages.Message) er
284284

285285
return nil
286286
case messages.MessageTypeGoodbye:
287-
if err := r.dealer.RemoveSession(baseSession.ID()); err != nil {
288-
return err
289-
}
290-
291-
client, exists := r.clients.LoadAndDelete(baseSession.ID())
292-
if !exists {
293-
return fmt.Errorf("goodbye: client does not exist")
294-
}
295-
296287
goodbye := messages.NewGoodBye(CloseGoodByeAndOut, nil)
297-
success, err := client.TryWriteMessage(goodbye)
288+
success, err := baseSession.TryWriteMessage(goodbye)
298289
if err != nil {
299290
return err
300291
}
@@ -303,7 +294,7 @@ func (r *Realm) ReceiveMessage(baseSession BaseSession, msg messages.Message) er
303294
log.Debugf("dropped GOODBYE message for blocked peer: %d", baseSession.ID())
304295
}
305296

306-
_ = client.Close()
297+
_ = baseSession.Close()
307298
return nil
308299
default:
309300
return fmt.Errorf("unknown message type: %v", msg.Type())

0 commit comments

Comments
 (0)