diff --git a/server/db/pg/schema.ts b/server/db/pg/schema.ts index 1b8542d1..93090d42 100644 --- a/server/db/pg/schema.ts +++ b/server/db/pg/schema.ts @@ -113,7 +113,8 @@ export const exitNodes = pgTable("exitNodes", { endpoint: varchar("endpoint").notNull(), publicKey: varchar("publicKey").notNull(), listenPort: integer("listenPort").notNull(), - reachableAt: varchar("reachableAt") + reachableAt: varchar("reachableAt"), + maxConnections: integer("maxConnections") }); export const users = pgTable("user", { diff --git a/server/db/sqlite/schema.ts b/server/db/sqlite/schema.ts index 3398cc6d..0198afd8 100644 --- a/server/db/sqlite/schema.ts +++ b/server/db/sqlite/schema.ts @@ -117,7 +117,8 @@ export const exitNodes = sqliteTable("exitNodes", { endpoint: text("endpoint").notNull(), // this is how to reach gerbil externally - gets put into the wireguard config publicKey: text("publicKey").notNull(), listenPort: integer("listenPort").notNull(), - reachableAt: text("reachableAt") // this is the internal address of the gerbil http server for command control + reachableAt: text("reachableAt"), // this is the internal address of the gerbil http server for command control + maxConnections: integer("maxConnections") }); export const users = sqliteTable("user", { diff --git a/server/lib/readConfigFile.ts b/server/lib/readConfigFile.ts index 5d8500b4..b9f90d46 100644 --- a/server/lib/readConfigFile.ts +++ b/server/lib/readConfigFile.ts @@ -162,7 +162,6 @@ export const configSchema = z gerbil: z .object({ exit_node_name: z.string().optional(), - max_connections: z.number().positive().gt(0).optional(), start_port: portSchema .optional() .default(51820) diff --git a/server/routers/newt/handleNewtPingRequestMessage.ts b/server/routers/newt/handleNewtPingRequestMessage.ts index 946152a8..e0cdb83d 100644 --- a/server/routers/newt/handleNewtPingRequestMessage.ts +++ b/server/routers/newt/handleNewtPingRequestMessage.ts @@ -25,8 +25,8 @@ export const handleNewtPingRequestMessage: MessageHandler = async (context) => { // higher = more desirable let weight = 1; - const maxConnections = config.getRawConfig().gerbil.max_connections; - if (maxConnections !== undefined) { + const maxConnections = node.maxConnections; + if (maxConnections !== null && maxConnections !== undefined) { const [currentConnections] = await db .select({ count: count()