X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fpersistence.rs;fp=src%2Fpersistence.rs;h=4ede02f5258cac98cc977f71853f120d17e7aadf;hb=552226b489dc26366c2da87a9b7223821e19a204;hp=7b451b7ec252970050d908f231603730b13fd50a;hpb=86ebd80028d866d52ff5c2f79491a23dae5a1763;p=rapid-gossip-sync-server diff --git a/src/persistence.rs b/src/persistence.rs index 7b451b7..4ede02f 100644 --- a/src/persistence.rs +++ b/src/persistence.rs @@ -111,21 +111,34 @@ impl GossipPersister where L::Target: Logger { } match &gossip_message { - GossipMessage::ChannelAnnouncement(announcement, _) => { + GossipMessage::ChannelAnnouncement(announcement, seen_override) => { let scid = announcement.contents.short_channel_id as i64; // start with the type prefix, which is already known a priori let mut announcement_signed = Vec::new(); announcement.write(&mut announcement_signed).unwrap(); - tokio::time::timeout(POSTGRES_INSERT_TIMEOUT, client - .execute("INSERT INTO channel_announcements (\ + if cfg!(test) && seen_override.is_some() { + tokio::time::timeout(POSTGRES_INSERT_TIMEOUT, client + .execute("INSERT INTO channel_announcements (\ + short_channel_id, \ + announcement_signed, \ + seen \ + ) VALUES ($1, $2, TO_TIMESTAMP($3)) ON CONFLICT (short_channel_id) DO NOTHING", &[ + &scid, + &announcement_signed, + &(seen_override.unwrap() as f64) + ])).await.unwrap().unwrap(); + } else { + tokio::time::timeout(POSTGRES_INSERT_TIMEOUT, client + .execute("INSERT INTO channel_announcements (\ short_channel_id, \ announcement_signed \ ) VALUES ($1, $2) ON CONFLICT (short_channel_id) DO NOTHING", &[ - &scid, - &announcement_signed - ])).await.unwrap().unwrap(); + &scid, + &announcement_signed + ])).await.unwrap().unwrap(); + } } GossipMessage::ChannelUpdate(update, seen_override) => { let scid = update.contents.short_channel_id as i64;