fix: properly send inbandregistration requests
This commit is contained in:
parent
4e4a290813
commit
b99b412692
3 changed files with 117 additions and 114 deletions
|
@ -367,47 +367,3 @@ func (u *User) GetJID() string {
|
|||
func (u *User) GetClient() *xmppClient.Client {
|
||||
return u.client
|
||||
}
|
||||
|
||||
// UpdateCredentials updates the user's JID and password for ghost user mode
|
||||
// This creates a new XMPP client with the updated credentials
|
||||
func (u *User) UpdateCredentials(newJID, newPassword string) error {
|
||||
u.logger.LogDebug("Updating XMPP user credentials", "user_id", u.id, "old_jid", u.jid, "new_jid", newJID)
|
||||
|
||||
// Disconnect existing client if connected
|
||||
wasConnected := u.IsConnected()
|
||||
if wasConnected {
|
||||
if err := u.Disconnect(); err != nil {
|
||||
u.logger.LogWarn("Error disconnecting before credential update", "user_id", u.id, "error", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Create TLS config based on certificate verification setting
|
||||
tlsConfig := &tls.Config{
|
||||
InsecureSkipVerify: u.config.XMPPInsecureSkipVerify, //nolint:gosec // Allow insecure TLS for testing environments
|
||||
}
|
||||
|
||||
// Create new XMPP client with updated credentials
|
||||
newClient := xmppClient.NewClientWithTLS(
|
||||
u.config.XMPPServerURL,
|
||||
newJID,
|
||||
newPassword,
|
||||
u.config.GetXMPPResource(),
|
||||
u.id, // Use user ID as remote ID
|
||||
tlsConfig,
|
||||
u.logger,
|
||||
)
|
||||
|
||||
// Update user fields
|
||||
u.jid = newJID
|
||||
u.client = newClient
|
||||
|
||||
// Reconnect if we were previously connected
|
||||
if wasConnected {
|
||||
if err := u.Connect(); err != nil {
|
||||
return fmt.Errorf("failed to reconnect after credential update: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
u.logger.LogInfo("XMPP user credentials updated successfully", "user_id", u.id, "new_jid", newJID)
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue