Skip to content

Commit 6659865

Browse files
committed
Unregistering sessions on initiator close
1 parent b7e2597 commit 6659865

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

initiator.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,14 @@ func (i *Initiator) Stop() {
7373
default:
7474
}
7575
close(i.stopChan)
76+
77+
for sessionID := range i.sessionSettings {
78+
err := UnregisterSession(sessionID)
79+
if err != nil {
80+
return
81+
}
82+
}
83+
7684
i.wg.Wait()
7785
}
7886

session_factory_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,23 @@ func (s *SessionFactorySuite) TestNewSessionBuildInitiators() {
472472
s.Equal("127.0.0.1:5000", session.SocketConnectAddress[0])
473473
}
474474

475+
func (s *SessionFactorySuite) TestDuplicateSession() {
476+
s.sessionFactory.BuildInitiators = true
477+
s.SessionSettings.Set(config.HeartBtInt, "34")
478+
s.SessionSettings.Set(config.SocketConnectHost, "127.0.0.1")
479+
s.SessionSettings.Set(config.SocketConnectPort, "5000")
480+
481+
session, err := s.createSession(s.SessionID, s.MessageStoreFactory, s.SessionSettings, s.LogFactory, s.App)
482+
s.Nil(err)
483+
s.True(session.InitiateLogon)
484+
_, err = s.createSession(s.SessionID, s.MessageStoreFactory, s.SessionSettings, s.LogFactory, s.App)
485+
s.NotNil(err)
486+
s.Equal("Duplicate SessionID", err.Error())
487+
UnregisterSession(s.SessionID)
488+
_, err = s.createSession(s.SessionID, s.MessageStoreFactory, s.SessionSettings, s.LogFactory, s.App)
489+
s.Nil(err)
490+
}
491+
475492
func (s *SessionFactorySuite) TestNewSessionBuildAcceptors() {
476493
s.sessionFactory.BuildInitiators = false
477494
s.SessionSettings.Set(config.HeartBtInt, "34")

0 commit comments

Comments
 (0)