From 9c6b8d1867e30bbd5e8cf621f991050bfa8cf051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ask=20Bj=C3=B8rn=20Hansen?= Date: Mon, 4 Aug 2025 20:43:53 -0700 Subject: [PATCH] fix(api): handle score monitors in name-based lookups Score monitors have type='score' and ip_version=NULL, but the GetMonitorByNameAndIPVersion query required ip_version to match. This broke monitor lookups by name for score monitors. Modified query to match either: - Regular monitors with specified ip_version - Score monitors with NULL ip_version Fixes issue reported by Ben Harris at: https://community.ntppool.org/t/monitor-recentmedian-no-longer-works/4002 --- ntpdb/query.sql.go | 2 +- query.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ntpdb/query.sql.go b/ntpdb/query.sql.go index fe70f75..a57cd39 100644 --- a/ntpdb/query.sql.go +++ b/ntpdb/query.sql.go @@ -16,7 +16,7 @@ const getMonitorByNameAndIPVersion = `-- name: GetMonitorByNameAndIPVersion :one select id, id_token, type, user_id, account_id, hostname, location, ip, ip_version, tls_name, api_key, status, config, client_version, last_seen, last_submit, created_on, deleted_on, is_current from monitors where tls_name like ? AND - ip_version = ? AND + (ip_version = ? OR (type = 'score' AND ip_version IS NULL)) AND is_current = 1 AND status != 'deleted' order by id diff --git a/query.sql b/query.sql index c9e2156..f05dd76 100644 --- a/query.sql +++ b/query.sql @@ -51,7 +51,7 @@ where select * from monitors where tls_name like sqlc.arg('tls_name') AND - ip_version = sqlc.arg('ip_version') AND + (ip_version = sqlc.arg('ip_version') OR (type = 'score' AND ip_version IS NULL)) AND is_current = 1 AND status != 'deleted' order by id