func CreateTestHomeServerConn(dename string, denameClient *client.Client, secretConfig *proto.LocalAccountConfig, t testing.TB) *transport.Conn { profile, err := denameClient.Lookup(dename) if err != nil { t.Fatal(err) } chatProfileBytes, err := client.GetProfileField(profile, PROFILE_FIELD_ID) if err != nil { t.Fatal(err) } chatProfile := new(proto.Profile) if err := chatProfile.Unmarshal(chatProfileBytes); err != nil { t.Fatal(err) } addr := chatProfile.ServerAddressTCP port := chatProfile.ServerPortTCP pkTransport := ([32]byte)(chatProfile.ServerTransportPK) pkp := (*[32]byte)(&chatProfile.UserIDAtServer) oldConn, err := net.Dial("tcp", net.JoinHostPort(addr, fmt.Sprint(port))) if err != nil { t.Fatal(err) } skp := (*[32]byte)(&secretConfig.TransportSecretKeyForServer) conn, _, err := transport.Handshake(oldConn, pkp, skp, &pkTransport, proto.SERVER_MESSAGE_SIZE) if err != nil { t.Fatal(err) } return conn }
func noProfileRatchet(c *client.Client) func(name string, reply *dename.ClientReply) (*dename.Profile, error) { return func(name string, reply *dename.ClientReply) (*dename.Profile, error) { if reply != nil { if profile, err := c.LookupFromReply(name, reply); err == nil { return profile, nil } } return c.Lookup(name) } }