mirror of https://github.com/oxen-io/session-ios
Added LokiP2PMessageHandler.
Moved wrapping and unwrapping of proto envelopes to LokiMessageWrapper.pull/18/head
parent
748b7eff12
commit
865bb1932f
@ -1 +1 @@
|
|||||||
Subproject commit 077f345d2993bf2a7dab8df935986e6495e764c7
|
Subproject commit 32ca94b0b45a1f55059ee500c5e217a0f55a0313
|
@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
public class LokiP2PMessageHandler {
|
||||||
|
public static let shared = LokiP2PMessageHandler()
|
||||||
|
|
||||||
|
private var messageReceiver: OWSMessageReceiver {
|
||||||
|
return SSKEnvironment.shared.messageReceiver
|
||||||
|
}
|
||||||
|
|
||||||
|
private init() {}
|
||||||
|
|
||||||
|
public func handleReceivedMessage(base64EncodedData: String) {
|
||||||
|
guard let data = Data(base64Encoded: base64EncodedData) else {
|
||||||
|
Logger.warn("[LokiP2PMessageHandler] Failed to decode p2p message data")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
guard let envelope = try? LokiMessageWrapper.unwrap(data: data) else {
|
||||||
|
Logger.warn("[LokiP2PMessageHandler] Failed to unwrap p2p data")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// We need to set the p2p field on the envelope
|
||||||
|
let builder = envelope.asBuilder()
|
||||||
|
builder.setIsPtpMessage(true)
|
||||||
|
|
||||||
|
// Send it to message receiver
|
||||||
|
do {
|
||||||
|
let newEnvelope = try builder.build()
|
||||||
|
let envelopeData = try newEnvelope.serializedData()
|
||||||
|
messageReceiver.handleReceivedEnvelopeData(envelopeData)
|
||||||
|
} catch let error {
|
||||||
|
Logger.warn("[LokiP2PMessageHandler] Something went wrong while converting proto: \(error)")
|
||||||
|
owsFailDebug("Failed to build envelope")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue