Skip to content

Commit 9aec7aa

Browse files
committed
Reconnecting channel shouldn't allow changing ids. Fixes #242
1 parent ede03a5 commit 9aec7aa

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

reconnecting_dialer.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,11 +168,16 @@ func (dialer *reconnectingDialer) sendHello(impl *reconnectingImpl) error {
168168
if !result.Success {
169169
return errors.New(result.Message)
170170
}
171-
impl.connectionId = string(response.Headers[ConnectionIdHeader])
172-
173-
if id, ok := response.GetStringHeader(IdHeader); ok {
174-
impl.id = &identity.TokenId{Token: id}
171+
if impl.connectionId == "" {
172+
if id, ok := response.GetStringHeader(IdHeader); ok {
173+
impl.id = &identity.TokenId{Token: id}
174+
}
175+
} else {
176+
if id, ok := response.GetStringHeader(IdHeader); ok && id != impl.id.Token {
177+
log.Warnf("reconnected underlay has different id [%s] than expected [%s]", id, impl.id.Token)
178+
}
175179
}
180+
impl.connectionId = string(response.Headers[ConnectionIdHeader])
176181

177182
impl.headers.Store(response.Headers)
178183

0 commit comments

Comments
 (0)