diff --git a/dfssc/sign/starter.go b/dfssc/sign/starter.go index 9e8c3d320bf5644d351af5f33dfd83ac1e79d8ab..d69eb0f716630af5efdf2361f50acdc1d9c91c25 100644 --- a/dfssc/sign/starter.go +++ b/dfssc/sign/starter.go @@ -156,7 +156,6 @@ func (m *SignatureManager) addPeer(user *pAPI.User) (ready bool, err error) { // This is an certificate authentificated TLS connection conn, err = net.Connect(addrPort, m.auth.Cert, m.auth.Key, m.auth.CA, user.KeyHash) if err == nil { - break } } diff --git a/dfssp/contract/join.go b/dfssp/contract/join.go index 1f7c69cc787ed40957f02288773564c2ef98be52..3e859eab0e594766b2858cf4ff65b306e6f31b88 100644 --- a/dfssp/contract/join.go +++ b/dfssp/contract/join.go @@ -1,6 +1,7 @@ package contract import ( + n "net" "time" "dfss/auth" @@ -20,7 +21,7 @@ import ( // There is no timeout, this function will shut down on stream disconnection or on error. func JoinSignature(db *mgdb.MongoManager, rooms *common.WaitingGroupMap, in *api.JoinSignatureRequest, stream api.Platform_JoinSignatureServer) { ctx := stream.Context() - state, _, _ := net.GetTLSState(&ctx) + state, addr, _ := net.GetTLSState(&ctx) hash := auth.GetCertificateHash(state.VerifiedChains[0][0]) if !checkJoinSignatureRequest(db, &stream, in.ContractUuid, hash) { @@ -41,10 +42,11 @@ func JoinSignature(db *mgdb.MongoManager, rooms *common.WaitingGroupMap, in *api } // Broadcast self identity + host, _, _ := n.SplitHostPort(addr.String()) rooms.Broadcast(roomID, &api.User{ KeyHash: hash, Email: net.GetCN(&ctx), - Ip: in.Ip, + Ip: append(in.Ip, host), Port: in.Port, })