From 6b24eeb84c2e633862bb28f798c56266700d805d Mon Sep 17 00:00:00 2001 From: akwizgran Date: Wed, 17 Apr 2019 09:58:36 +0100 Subject: [PATCH] Add method to set reordering window for static keys. --- .../org/briarproject/bramble/db/Database.java | 8 +++++++ .../briarproject/bramble/db/JdbcDatabase.java | 24 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/Database.java b/bramble-core/src/main/java/org/briarproject/bramble/db/Database.java index 3db95d1c8..6643419e0 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/db/Database.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/db/Database.java @@ -691,6 +691,14 @@ interface Database { void setReorderingWindow(T txn, TransportKeySetId k, TransportId t, long timePeriod, long base, byte[] bitmap) throws DbException; + /** + * Sets the reordering window for the given static key set and transport in + * the given time period. + */ + void setStaticReorderingWindow(T txn, StaticTransportKeySetId k, + TransportId t, long timePeriod, long base, byte[] bitmap) + throws DbException; + /** * Marks the given transport keys as usable for outgoing streams. */ diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java b/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java index 56978f1ba..d38dfb101 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java @@ -3222,6 +3222,30 @@ abstract class JdbcDatabase implements Database { } } + @Override + public void setStaticReorderingWindow(Connection txn, + StaticTransportKeySetId k, TransportId t, long timePeriod, + long base, byte[] bitmap) throws DbException { + PreparedStatement ps = null; + try { + String sql = "UPDATE incomingStaticKeys SET base = ?, bitmap = ?" + + " WHERE transportId = ? AND keySetId = ?" + + " AND timePeriod = ?"; + ps = txn.prepareStatement(sql); + ps.setLong(1, base); + ps.setBytes(2, bitmap); + ps.setString(3, t.getString()); + ps.setInt(4, k.getInt()); + ps.setLong(5, timePeriod); + int affected = ps.executeUpdate(); + if (affected < 0 || affected > 1) throw new DbStateException(); + ps.close(); + } catch (SQLException e) { + tryToClose(ps, LOG, WARNING); + throw new DbException(e); + } + } + @Override public void setTransportKeysActive(Connection txn, TransportId t, TransportKeySetId k) throws DbException {