1
0
Fork 0
mirror of https://github.com/ACINQ/eclair.git synced 2025-03-13 19:37:35 +01:00

Add message to unset FCM token from peer

This commit is contained in:
dpad85 2020-10-07 16:54:02 +02:00
parent d0b405fa62
commit 0850b084ce
No known key found for this signature in database
GPG key ID: 574C8C6A1673E987
4 changed files with 24 additions and 10 deletions

View file

@ -146,9 +146,12 @@ class Peer(val nodeParams: NodeParams, remoteNodeId: PublicKey, watcher: ActorRe
context.system.eventStream.publish(swapOutResponse)
stay
case Event(f: SendFCMToken, d: ConnectedData) =>
log.info(s"peer forwarding $f to peerConnection")
d.peerConnection ! FCMToken(f.token)
case Event(f: SendSetFCMToken, d: ConnectedData) =>
d.peerConnection ! SetFCMToken(f.token)
stay
case Event(f: SendUnsetFCMToken, d: ConnectedData) =>
d.peerConnection ! UnsetFCMToken
stay
case Event(c: Peer.OpenChannel, d: ConnectedData) =>
@ -491,7 +494,8 @@ object Peer {
case class SendSwapOutRequest(nodeId: PublicKey, amountSatoshis: Satoshi, bitcoinAddress: String, feeratePerKw: Long)
case class SendSwapInRequest(nodeId: PublicKey)
case class SendFCMToken(nodeId: PublicKey, token: String)
case class SendSetFCMToken(nodeId: PublicKey, token: String)
case class SendUnsetFCMToken(nodeId: PublicKey)
// @formatter:on
def makeChannelParams(nodeParams: NodeParams, defaultFinalScriptPubkey: ByteVector, localPaymentBasepoint: Option[PublicKey], isFunder: Boolean, fundingAmount: Satoshi): LocalParams = {

View file

@ -81,10 +81,16 @@ class Switchboard(nodeParams: NodeParams, watcher: ActorRef, relayer: ActorRef,
case None => sender ! Status.Failure(new RuntimeException("no connection to peer"))
}
case f: Peer.SendFCMToken =>
case f: Peer.SendSetFCMToken =>
getPeer(f.nodeId) match {
case Some(peer) => peer forward f
case None => log.error(s"could not register fcm token=${f.token} with unknown peer=${f.nodeId}")
case None => log.error(s"could not register fcm token=${f.token} to unknown peer=${f.nodeId}")
}
case f: Peer.SendUnsetFCMToken =>
getPeer(f.nodeId) match {
case Some(peer) => peer forward f
case None => log.error(s"could not discard fcm token to unknown peer=${f.nodeId}")
}
case authenticated: PeerConnection.Authenticated =>

View file

@ -347,8 +347,10 @@ object LightningMessageCodecs {
//
val fcmTokenCodec: Codec[FCMToken] =
("fcmToken" | variableSizeBytes(uint16, utf8)).as[FCMToken]
val setFcmTokenCodec: Codec[SetFCMToken] =
("fcmToken" | variableSizeBytes(uint16, utf8)).as[SetFCMToken]
val unsetFcmToken: Codec[UnsetFCMToken.type ] = provide(UnsetFCMToken)
val lightningMessageCodec = discriminated[LightningMessage].by(uint16)
.typecase(16, initCodec)
@ -396,7 +398,8 @@ object LightningMessageCodecs {
//
.typecase(35017, fcmTokenCodec)
.typecase(35017, setFcmTokenCodec)
.typecase(35019, unsetFcmToken)
val meteredLightningMessageCodec = Codec[LightningMessage](
(msg: LightningMessage) => KamonExt.time(Metrics.EncodeDuration.withTag(Tags.MessageType, msg.getClass.getSimpleName))(lightningMessageCodec.encode(msg)),

View file

@ -376,4 +376,5 @@ case class SwapOutResponse(chainHash: ByteVector32,
//
case class FCMToken(token: String) extends LightningMessage
case class SetFCMToken(token: String) extends LightningMessage
case object UnsetFCMToken extends LightningMessage