diff --git a/bin/named/builtin.c b/bin/named/builtin.c index cf18030d1e..26348fd647 100644 --- a/bin/named/builtin.c +++ b/bin/named/builtin.c @@ -380,9 +380,8 @@ do_hostname_lookup(dns_sdblookup_t *lookup) { } } else { char buf[256]; - isc_result_t result = named_os_gethostname(buf, sizeof(buf)); - if (result != ISC_R_SUCCESS) { - return (result); + if (gethostname(buf, sizeof(buf)) != 0) { + return (ISC_R_FAILURE); } return (put_txt(lookup, buf)); } @@ -420,13 +419,10 @@ do_authors_lookup(dns_sdblookup_t *lookup) { static isc_result_t do_id_lookup(dns_sdblookup_t *lookup) { - if (named_g_server->sctx->gethostname != NULL) { + if (named_g_server->sctx->usehostname) { char buf[256]; - isc_result_t result; - - result = named_g_server->sctx->gethostname(buf, sizeof(buf)); - if (result != ISC_R_SUCCESS) { - return (result); + if (gethostname(buf, sizeof(buf)) != 0) { + return (ISC_R_FAILURE); } return (put_txt(lookup, buf)); } else if (named_g_server->sctx->server_id != NULL) { diff --git a/bin/named/include/named/os.h b/bin/named/include/named/os.h index 4a3a5f2374..0f7c1c5385 100644 --- a/bin/named/include/named/os.h +++ b/bin/named/include/named/os.h @@ -62,9 +62,6 @@ named_os_issingleton(const char *filename); void named_os_shutdown(void); -isc_result_t -named_os_gethostname(char *buf, size_t len); - void named_os_shutdownmsg(char *command, isc_buffer_t *text); diff --git a/bin/named/os.c b/bin/named/os.c index e984b4b6d4..7af47294ba 100644 --- a/bin/named/os.c +++ b/bin/named/os.c @@ -869,14 +869,6 @@ named_os_shutdown(void) { cleanup_lockfile(); } -isc_result_t -named_os_gethostname(char *buf, size_t len) { - int n; - - n = gethostname(buf, len); - return ((n == 0) ? ISC_R_SUCCESS : ISC_R_FAILURE); -} - void named_os_shutdownmsg(char *command, isc_buffer_t *text) { char *last, *ptr; diff --git a/bin/named/server.c b/bin/named/server.c index 77382b2862..9de935a67a 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -3921,8 +3921,7 @@ configure_dnstap(const cfg_obj_t **maps, dns_view_t *view) { if (result == ISC_R_SUCCESS && cfg_obj_isboolean(obj)) { /* "hostname" is interpreted as boolean true */ char buf[256]; - result = named_os_gethostname(buf, sizeof(buf)); - if (result == ISC_R_SUCCESS) { + if (gethostname(buf, sizeof(buf)) == 0) { dns_dt_setidentity(named_g_server->dtenv, buf); } } else if (result == ISC_R_SUCCESS && !cfg_obj_isvoid(obj)) { @@ -9605,10 +9604,10 @@ load_configuration(const char *filename, named_server_t *server, obj = NULL; result = named_config_get(maps, "server-id", &obj); - server->sctx->gethostname = NULL; + server->sctx->usehostname = false; if (result == ISC_R_SUCCESS && cfg_obj_isboolean(obj)) { /* The parser translates "hostname" to true */ - server->sctx->gethostname = named_os_gethostname; + server->sctx->usehostname = true; result = ns_server_setserverid(server->sctx, NULL); } else if (result == ISC_R_SUCCESS && !cfg_obj_isvoid(obj)) { /* Found a quoted string */ @@ -12331,8 +12330,7 @@ named_server_status(named_server_t *server, isc_buffer_t **text) { cb); CHECK(putstr(text, line)); - result = named_os_gethostname(hostname, sizeof(hostname)); - if (result != ISC_R_SUCCESS) { + if (gethostname(hostname, sizeof(hostname)) == 0) { strlcpy(hostname, "localhost", sizeof(hostname)); } snprintf(line, sizeof(line), "running on %s: %s\n", hostname, diff --git a/lib/ns/client.c b/lib/ns/client.c index 8dc1abe3f8..368a9fd77f 100644 --- a/lib/ns/client.c +++ b/lib/ns/client.c @@ -988,8 +988,8 @@ ns_client_addopt(ns_client_t *client, dns_message_t *message, if (WANTNSID(client)) { if (client->sctx->server_id != NULL) { nsidp = client->sctx->server_id; - } else if (client->sctx->gethostname != NULL) { - result = client->sctx->gethostname(nsid, sizeof(nsid)); + } else if (client->sctx->usehostname) { + result = gethostname(nsid, sizeof(nsid)); if (result != ISC_R_SUCCESS) { goto no_nsid; } diff --git a/lib/ns/include/ns/server.h b/lib/ns/include/ns/server.h index 4393e9798c..4ea7a8bb47 100644 --- a/lib/ns/include/ns/server.h +++ b/lib/ns/include/ns/server.h @@ -99,8 +99,8 @@ struct ns_server { dns_tkeyctx_t *tkeyctx; /*% Server id for NSID */ - char *server_id; - ns_hostnamecb_t gethostname; + char *server_id; + bool usehostname; /*% Fuzzer callback */ isc_fuzztype_t fuzztype; diff --git a/lib/ns/server.c b/lib/ns/server.c index ce46aad2be..7027b52638 100644 --- a/lib/ns/server.c +++ b/lib/ns/server.c @@ -97,7 +97,6 @@ ns_server_create(isc_mem_t *mctx, ns_matchview_t matchingview, sctx->fuzztype = isc_fuzz_none; sctx->fuzznotify = NULL; - sctx->gethostname = NULL; sctx->matchingview = matchingview; sctx->answercookie = true;