Add olm version

This commit is contained in:
Owen 2025-08-13 12:35:09 -07:00
parent e7df29104e
commit 1f4a7a7f6f
No known key found for this signature in database
GPG key ID: 8271FDFFD9E0CCBD
3 changed files with 23 additions and 9 deletions

View file

@ -536,6 +536,7 @@ export const olms = pgTable("olms", {
olmId: varchar("id").primaryKey(),
secretHash: varchar("secretHash").notNull(),
dateCreated: varchar("dateCreated").notNull(),
version: text("version").notNull(),
clientId: integer("clientId").references(() => clients.clientId, {
onDelete: "cascade"
})

View file

@ -243,6 +243,7 @@ export const olms = sqliteTable("olms", {
olmId: text("id").primaryKey(),
secretHash: text("secretHash").notNull(),
dateCreated: text("dateCreated").notNull(),
version: text("version").notNull(),
clientId: integer("clientId").references(() => clients.clientId, {
onDelete: "cascade"
})

View file

@ -21,7 +21,7 @@ export const handleOlmRegisterMessage: MessageHandler = async (context) => {
return;
}
const clientId = olm.clientId;
const { publicKey, relay } = message.data;
const { publicKey, relay, olmVersion } = message.data;
logger.debug(
`Olm client ID: ${clientId}, Public Key: ${publicKey}, Relay: ${relay}`
@ -65,7 +65,9 @@ export const handleOlmRegisterMessage: MessageHandler = async (context) => {
}
});
if (!olmVersion) {
// THIS IS FOR BACKWARDS COMPATIBILITY
// THE OLDER CLIENTS DID NOT SEND THE VERSION
await sendToClient(olm.olmId, {
type: "olm/wg/holepunch",
data: {
@ -74,6 +76,16 @@ export const handleOlmRegisterMessage: MessageHandler = async (context) => {
}
});
}
}
if (olmVersion) {
await db
.update(olms)
.set({
version: olmVersion
})
.where(eq(olms.olmId, olm.olmId));
}
if (now - (client.lastHolePunch || 0) > 6) {
logger.warn("Client last hole punch is too old, skipping all sites");