fix: Fix wrong XML serialisation
This commit is contained in:
		
							parent
							
								
									637e1e25a6
								
							
						
					
					
						commit
						ca85c94fe5
					
				@ -41,9 +41,6 @@ const _doNotEncryptList = [
 | 
				
			|||||||
];
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
abstract class BaseOmemoManager extends XmppManagerBase {
 | 
					abstract class BaseOmemoManager extends XmppManagerBase {
 | 
				
			||||||
  // Mapping whether we already tried to subscribe to the JID's devices node
 | 
					 | 
				
			||||||
  final Map<JID, bool> _subscriptionMap = {};
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  String getId() => omemoManager;
 | 
					  String getId() => omemoManager;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -205,7 +202,7 @@ abstract class BaseOmemoManager extends XmppManagerBase {
 | 
				
			|||||||
      ],
 | 
					      ],
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return payload.toString();
 | 
					    return payload.toXml();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  XMLNode _buildEncryptedElement(EncryptionResult result, String recipientJid, int deviceId) {
 | 
					  XMLNode _buildEncryptedElement(EncryptionResult result, String recipientJid, int deviceId) {
 | 
				
			||||||
@ -317,17 +314,11 @@ abstract class BaseOmemoManager extends XmppManagerBase {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if (stanza.to == null) {
 | 
					    if (stanza.to == null) {
 | 
				
			||||||
      // We cannot encrypt in this case.
 | 
					      // We cannot encrypt in this case.
 | 
				
			||||||
 | 
					      logger.finest('Not encrypting since stanza.to is null');
 | 
				
			||||||
      return state;
 | 
					      return state;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    final toJid = JID.fromString(stanza.to!).toBare();
 | 
					    final toJid = JID.fromString(stanza.to!).toBare();
 | 
				
			||||||
    if (_subscriptionMap[toJid] != true) {
 | 
					 | 
				
			||||||
      unawaited(
 | 
					 | 
				
			||||||
        subscribeToDeviceList(toJid),
 | 
					 | 
				
			||||||
      );
 | 
					 | 
				
			||||||
      _subscriptionMap[toJid] = true;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    if (!(await shouldEncryptStanza(toJid, stanza))) {
 | 
					    if (!(await shouldEncryptStanza(toJid, stanza))) {
 | 
				
			||||||
      logger.finest('shouldEncryptStanza returned false for message to $toJid. Not encrypting.');
 | 
					      logger.finest('shouldEncryptStanza returned false for message to $toJid. Not encrypting.');
 | 
				
			||||||
      return state;
 | 
					      return state;
 | 
				
			||||||
@ -345,6 +336,7 @@ abstract class BaseOmemoManager extends XmppManagerBase {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    logger.finest('Beginning encryption');
 | 
				
			||||||
    final om = await getOmemoManager();
 | 
					    final om = await getOmemoManager();
 | 
				
			||||||
    final result = await om.onOutgoingStanza(
 | 
					    final result = await om.onOutgoingStanza(
 | 
				
			||||||
      OmemoOutgoingStanza(
 | 
					      OmemoOutgoingStanza(
 | 
				
			||||||
@ -352,6 +344,7 @@ abstract class BaseOmemoManager extends XmppManagerBase {
 | 
				
			|||||||
        _buildEnvelope(toEncrypt, toJid.toString()),
 | 
					        _buildEnvelope(toEncrypt, toJid.toString()),
 | 
				
			||||||
      ),
 | 
					      ),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
					    logger.finest('Encryption done');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    final encrypted = _buildEncryptedElement(
 | 
					    final encrypted = _buildEncryptedElement(
 | 
				
			||||||
      result,
 | 
					      result,
 | 
				
			||||||
@ -572,13 +565,9 @@ abstract class BaseOmemoManager extends XmppManagerBase {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Subscribes to the device list PubSub node of [jid].
 | 
					  /// Subscribes to the device list PubSub node of [jid].
 | 
				
			||||||
  Future<void> subscribeToDeviceList(JID jid) async {
 | 
					  Future<void> subscribeToDeviceListImpl(String jid) async {
 | 
				
			||||||
    final pm = getAttributes().getManagerById<PubSubManager>(pubsubManager)!;
 | 
					    final pm = getAttributes().getManagerById<PubSubManager>(pubsubManager)!;
 | 
				
			||||||
    final result = await pm.subscribe(jid.toString(), omemoDevicesXmlns);
 | 
					    await pm.subscribe(jid, omemoDevicesXmlns);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!result.isType<PubSubError>()) {
 | 
					 | 
				
			||||||
      _subscriptionMap[jid] = true;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Attempts to find out if [jid] supports omemo:2.
 | 
					  /// Attempts to find out if [jid] supports omemo:2.
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user