@ -37819,18 +37819,11 @@ window.axolotl.sessions = {
}
} ;
var wipeIdentityAndTryMessageAgain = function ( from , encodedMessage , message _id ) {
var wipeIdentityAndTryMessageAgain = function ( from , encodedMessage ) {
// Wipe identity key!
textsecure . storage . devices . removeIdentityKeyForNumber ( from . split ( '.' ) [ 0 ] ) ;
//TODO: Probably breaks with a devicecontrol message
return textsecure . protocol _wrapper . handlePreKeyWhisperMessage ( from , encodedMessage ) . then ( decodeMessageContents ) . then (
function ( pushMessageContent ) {
extension . trigger ( 'message:decrypted' , {
message _id : message _id ,
data : pushMessageContent
} ) ;
}
) ;
return textsecure . protocol _wrapper . handlePreKeyWhisperMessage ( from , encodedMessage ) . then ( decodeMessageContents ) ;
}
textsecure . replay . registerFunction ( wipeIdentityAndTryMessageAgain , textsecure . replay . Type . INIT _SESSION ) ;
} ) ( ) ;
@ -39451,20 +39444,15 @@ window.textsecure.messaging = function() {
}
}
var tryMessageAgain = function ( number , encodedMessage , message _id ) {
var message = new Whisper . MessageCollection ( ) . add ( { id : message _id } ) ;
message . fetch ( ) . then ( function ( ) {
//TODO: Encapsuate with the rest of textsecure.storage.devices
textsecure . storage . devices . removeIdentityKeyForNumber ( number ) ;
var proto = textsecure . protobuf . PushMessageContent . decode ( encodedMessage , 'binary' ) ;
sendMessageProto ( message . get ( 'sent_at' ) , [ number ] , proto , function ( res ) {
var tryMessageAgain = function ( number , encodedMessage , timestamp ) {
textsecure . storage . devices . removeIdentityKeyForNumber ( number ) ;
var proto = textsecure . protobuf . PushMessageContent . decode ( encodedMessage , 'binary' ) ;
return new Promise ( function ( resolve , reject ) {
sendMessageProto ( timestamp , [ number ] , proto , function ( res ) {
if ( res . failure . length > 0 )
message. set ( 'errors' , res . failure ) ;
reject ( res . failure ) ;
else
message . set ( 'errors' , [ ] ) ;
message . save ( ) . then ( function ( ) {
extension . trigger ( 'message' , message ) ; // notify frontend listeners
} ) ;
resolve ( ) ;
} ) ;
} ) ;
} ;
@ -39525,7 +39513,7 @@ window.textsecure.messaging = function() {
if ( error . message !== "Identity key changed" )
registerError ( number , "Failed to reload device keys" , error ) ;
else {
error = new textsecure . OutgoingIdentityKeyError ( number , getString ( message . encode ( ) ) );
error = new textsecure . OutgoingIdentityKeyError ( number , getString ( message . encode ( ) ) , timestamp );
registerError ( number , "Identity key changed" , error ) ;
}
} ) ;