]> git.ipfire.org Git - zone-sync.git/commitdiff
main: Choose the correct port to connect to
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 11 May 2026 15:43:17 +0000 (15:43 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 11 May 2026 15:43:17 +0000 (15:43 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
main.c

diff --git a/main.c b/main.c
index 381fc32288a15a80418c5b95a67d34c3d0245733..c9ee5c4128043f5380da8f43834b696fa6934116 100644 (file)
--- 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;