Prevent zombie connections due to simultaneous connect

This commit is contained in:
Jakob Borg
2014-03-23 08:45:05 +01:00
parent 804cce7ba0
commit 589244f39e
2 changed files with 90 additions and 85 deletions

View File

@@ -507,7 +507,13 @@ func (m *Model) RepoID() string {
func (m *Model) AddConnection(rawConn io.Closer, protoConn Connection) {
nodeID := protoConn.ID()
m.pmut.Lock()
if _, ok := m.protoConn[nodeID]; ok {
panic("add existing node")
}
m.protoConn[nodeID] = protoConn
if _, ok := m.rawConn[nodeID]; ok {
panic("add existing node")
}
m.rawConn[nodeID] = rawConn
m.pmut.Unlock()