From: Michael Tremer Date: Mon, 11 May 2026 15:43:17 +0000 (+0000) Subject: main: Choose the correct port to connect to X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d646cfa3e29541455ec929a4ee6e107fbb275f78;p=zone-sync.git main: Choose the correct port to connect to Signed-off-by: Michael Tremer --- diff --git a/main.c b/main.c index 381fc32..c9ee5c4 100644 --- a/main.c +++ b/main.c @@ -57,6 +57,7 @@ typedef struct ctx { // Transport dns_transport_type_t transport; + uint32_t port; // Zones const char** zones; @@ -94,6 +95,7 @@ typedef struct ctx { static ctx_t ctx = { .path = DEFAULT_PATH, .transport = DNS_TRANSPORT_NONE, + .port = 53, }; static dns_fixedname_t fixed = {}; @@ -215,7 +217,7 @@ static void zone_done(dns_zone_t* zone) { isc_loopmgr_shutdown(ctx.loopmgr); } -static void transfer_done(dns_zone_t* zone, uint32_t* serial, isc_result_t result) { +static void transfer_done(dns_zone_t* zone, uint32_t* expireopt, isc_result_t result) { int r; switch (result) { @@ -465,12 +467,12 @@ static int resolve_primary(void) { switch (res->ai_family) { case AF_INET6: isc_sockaddr_fromin6(&ctx.primary_address, - &((struct sockaddr_in6*)res->ai_addr)->sin6_addr, 53); + &((struct sockaddr_in6*)res->ai_addr)->sin6_addr, ctx.port); break; case AF_INET: isc_sockaddr_fromin(&ctx.primary_address, - &((struct sockaddr_in*)res->ai_addr)->sin_addr, 53); + &((struct sockaddr_in*)res->ai_addr)->sin_addr, ctx.port); break; default: @@ -503,16 +505,19 @@ static error_t parse(int key, char* arg, struct argp_state* state) { case OPT_TRANSPORT: // TCP - if (strcmp(arg, "TCP") == 0) + if (strcmp(arg, "TCP") == 0) { ctx.transport = DNS_TRANSPORT_TCP; + ctx.port = 53; // TLS - else if (strcmp(arg, "TLS") == 0) + } else if (strcmp(arg, "TLS") == 0) { ctx.transport = DNS_TRANSPORT_TLS; + ctx.port = 853; // Fail on unknown transport - else + } else { argp_failure(state, EXIT_FAILURE, 0, "Unknown transport: %s", arg); + } break;