@@ -119,6 +119,7 @@ static DnsServer* dns_server_free(DnsServer *s) {
119119#endif
120120
121121 free (s -> server_string );
122+ free (s -> server_string_full );
122123 free (s -> server_name );
123124 return mfree (s );
124125}
@@ -225,7 +226,7 @@ static void dns_server_verified(DnsServer *s, DnsServerFeatureLevel level) {
225226 if (s -> verified_feature_level != level ) {
226227 log_debug ("Verified we get a response at feature level %s from DNS server %s." ,
227228 dns_server_feature_level_to_string (level ),
228- dns_server_string ( s ));
229+ strna ( dns_server_string_full ( s ) ));
229230 s -> verified_feature_level = level ;
230231 }
231232
@@ -362,7 +363,7 @@ void dns_server_packet_rcode_downgrade(DnsServer *s, DnsServerFeatureLevel level
362363 dns_server_reset_counters (s );
363364 }
364365
365- log_debug ("Downgrading transaction feature level fixed an RCODE error, downgrading server %s too." , dns_server_string ( s ));
366+ log_debug ("Downgrading transaction feature level fixed an RCODE error, downgrading server %s too." , strna ( dns_server_string_full ( s ) ));
366367}
367368
368369static bool dns_server_grace_period_expired (DnsServer * s ) {
@@ -416,7 +417,7 @@ DnsServerFeatureLevel dns_server_possible_feature_level(DnsServer *s) {
416417
417418 log_info ("Grace period over, resuming full feature set (%s) for DNS server %s." ,
418419 dns_server_feature_level_to_string (s -> possible_feature_level ),
419- dns_server_string ( s ));
420+ strna ( dns_server_string_full ( s ) ));
420421
421422 dns_server_flush_cache (s );
422423
@@ -502,7 +503,7 @@ DnsServerFeatureLevel dns_server_possible_feature_level(DnsServer *s) {
502503
503504 log_full (log_level , "Using degraded feature set %s instead of %s for DNS server %s." ,
504505 dns_server_feature_level_to_string (s -> possible_feature_level ),
505- dns_server_feature_level_to_string (p ), dns_server_string ( s ));
506+ dns_server_feature_level_to_string (p ), strna ( dns_server_string_full ( s ) ));
506507 }
507508 }
508509
@@ -565,7 +566,22 @@ const char *dns_server_string(DnsServer *server) {
565566 if (!server -> server_string )
566567 (void ) in_addr_ifindex_to_string (server -> family , & server -> address , dns_server_ifindex (server ), & server -> server_string );
567568
568- return strna (server -> server_string );
569+ return server -> server_string ;
570+ }
571+
572+ const char * dns_server_string_full (DnsServer * server ) {
573+ assert (server );
574+
575+ if (!server -> server_string_full )
576+ (void ) in_addr_port_ifindex_name_to_string (
577+ server -> family ,
578+ & server -> address ,
579+ server -> port ,
580+ dns_server_ifindex (server ),
581+ server -> server_name ,
582+ & server -> server_string_full );
583+
584+ return server -> server_string_full ;
569585}
570586
571587bool dns_server_dnssec_supported (DnsServer * server ) {
@@ -597,8 +613,8 @@ void dns_server_warn_downgrade(DnsServer *server) {
597613
598614 log_struct (LOG_NOTICE ,
599615 "MESSAGE_ID=" SD_MESSAGE_DNSSEC_DOWNGRADE_STR ,
600- LOG_MESSAGE ("Server %s does not support DNSSEC, downgrading to non-DNSSEC mode." , dns_server_string ( server )),
601- "DNS_SERVER=%s" , dns_server_string ( server ),
616+ LOG_MESSAGE ("Server %s does not support DNSSEC, downgrading to non-DNSSEC mode." , strna ( dns_server_string_full ( server ) )),
617+ "DNS_SERVER=%s" , strna ( dns_server_string_full ( server ) ),
602618 "DNS_SERVER_FEATURE_LEVEL=%s" , dns_server_feature_level_to_string (server -> possible_feature_level ));
603619
604620 server -> warned_downgrade = true;
@@ -712,7 +728,7 @@ DnsServer *manager_set_dns_server(Manager *m, DnsServer *s) {
712728 if (s )
713729 log_debug ("Switching to %s DNS server %s." ,
714730 dns_server_type_to_string (s -> type ),
715- dns_server_string ( s ));
731+ strna ( dns_server_string_full ( s ) ));
716732
717733 dns_server_unref (m -> current_dns_server );
718734 m -> current_dns_server = dns_server_ref (s );
@@ -852,7 +868,7 @@ void dns_server_dump(DnsServer *s, FILE *f) {
852868 f = stdout ;
853869
854870 fputs ("[Server " , f );
855- fputs (dns_server_string ( s ), f );
871+ fputs (strna ( dns_server_string_full ( s ) ), f );
856872 fputs (" type=" , f );
857873 fputs (dns_server_type_to_string (s -> type ), f );
858874
0 commit comments