Skip to content

Commit a891426

Browse files
Refresh Semantic DNS heartbeat on idempotent registration
1 parent 7122465 commit a891426

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

  • extension/src/core/introspection/semantic_dns/service_registry

extension/src/core/introspection/semantic_dns/service_registry/register.inc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,21 @@ PHP_FUNCTION(king_semantic_dns_register_service)
4242

4343
existing_service = king_semantic_dns_registry_get_service(service->service_id);
4444
if (existing_service != NULL && king_semantic_dns_service_equals(existing_service, service)) {
45+
existing_service->last_health_check = service->last_health_check;
4546
king_semantic_dns_service_free(service);
47+
if (use_state_transaction
48+
&& !king_semantic_dns_state_persist_locked_or_throw(
49+
"king_semantic_dns_register_service"
50+
)) {
51+
king_semantic_dns_state_transaction_end(lock_fd);
52+
RETURN_THROWS();
53+
}
4654
if (use_state_transaction) {
4755
king_semantic_dns_state_transaction_end(lock_fd);
4856
}
57+
if (!king_semantic_dns_listener_snapshot_or_throw("king_semantic_dns_register_service")) {
58+
RETURN_THROWS();
59+
}
4960
RETURN_TRUE;
5061
}
5162

0 commit comments

Comments
 (0)