diff --git a/libgm/pair_google.go b/libgm/pair_google.go index 5bc4a73..6aceaeb 100644 --- a/libgm/pair_google.go +++ b/libgm/pair_google.go @@ -29,6 +29,7 @@ import ( "fmt" "io" "math/big" + "strings" "sync" "time" @@ -89,8 +90,11 @@ func (c *Client) signInGaiaGetToken(ctx context.Context) (*gmproto.SignInGaiaRes return nil, err } c.updateTachyonAuthToken(resp.GetTokenData()) - c.AuthData.Mobile = resp.GetDeviceData().GetDeviceWrapper().GetDevice() - c.AuthData.Browser = resp.GetDeviceData().GetDeviceWrapper().GetDevice() + device := resp.GetDeviceData().GetDeviceWrapper().GetDevice() + lowercaseDevice := proto.Clone(device).(*gmproto.Device) + lowercaseDevice.SourceID = strings.ToLower(device.SourceID) + c.AuthData.Mobile = lowercaseDevice + c.AuthData.Browser = device return resp, nil } diff --git a/user.go b/user.go index 40029a3..69fdd6b 100644 --- a/user.go +++ b/user.go @@ -43,6 +43,7 @@ import ( "go.mau.fi/mautrix-gmessages/libgm" "go.mau.fi/mautrix-gmessages/libgm/events" "go.mau.fi/mautrix-gmessages/libgm/gmproto" + "go.mau.fi/mautrix-gmessages/libgm/util" ) type User struct { @@ -600,6 +601,9 @@ func (user *User) Connect() bool { } user.zlog.Debug().Msg("Connecting to Google Messages") user.BridgeState.Send(status.BridgeState{StateEvent: status.StateConnecting, Error: GMConnecting}) + if user.Session.Mobile.Network == util.GoogleNetwork { + user.Session.Mobile.SourceID = strings.ToLower(user.Session.Mobile.SourceID) + } user.createClient(user.Session) err := user.Client.Connect() if err != nil {