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(), olmId: varchar("id").primaryKey(),
secretHash: varchar("secretHash").notNull(), secretHash: varchar("secretHash").notNull(),
dateCreated: varchar("dateCreated").notNull(), dateCreated: varchar("dateCreated").notNull(),
version: text("version").notNull(),
clientId: integer("clientId").references(() => clients.clientId, { clientId: integer("clientId").references(() => clients.clientId, {
onDelete: "cascade" onDelete: "cascade"
}) })

View file

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

View file

@ -21,7 +21,7 @@ export const handleOlmRegisterMessage: MessageHandler = async (context) => {
return; return;
} }
const clientId = olm.clientId; const clientId = olm.clientId;
const { publicKey, relay } = message.data; const { publicKey, relay, olmVersion } = message.data;
logger.debug( logger.debug(
`Olm client ID: ${clientId}, Public Key: ${publicKey}, Relay: ${relay}` `Olm client ID: ${clientId}, Public Key: ${publicKey}, Relay: ${relay}`
@ -65,14 +65,26 @@ export const handleOlmRegisterMessage: MessageHandler = async (context) => {
} }
}); });
// THIS IS FOR BACKWARDS COMPATIBILITY if (!olmVersion) {
await sendToClient(olm.olmId, { // THIS IS FOR BACKWARDS COMPATIBILITY
type: "olm/wg/holepunch", // THE OLDER CLIENTS DID NOT SEND THE VERSION
data: { await sendToClient(olm.olmId, {
serverPubKey: allExitNodes[0].publicKey, type: "olm/wg/holepunch",
endpoint: allExitNodes[0].endpoint data: {
} serverPubKey: allExitNodes[0].publicKey,
}); endpoint: allExitNodes[0].endpoint
}
});
}
}
if (olmVersion) {
await db
.update(olms)
.set({
version: olmVersion
})
.where(eq(olms.olmId, olm.olmId));
} }
if (now - (client.lastHolePunch || 0) > 6) { if (now - (client.lastHolePunch || 0) > 6) {