diff options
Diffstat (limited to 'source4/rpc_server/spoolss/dcesrv_spoolss.c')
-rw-r--r-- | source4/rpc_server/spoolss/dcesrv_spoolss.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/source4/rpc_server/spoolss/dcesrv_spoolss.c b/source4/rpc_server/spoolss/dcesrv_spoolss.c index 6936866fcc..e5bcc35081 100644 --- a/source4/rpc_server/spoolss/dcesrv_spoolss.c +++ b/source4/rpc_server/spoolss/dcesrv_spoolss.c @@ -144,7 +144,7 @@ static WERROR spoolss_check_server_name(struct dcesrv_call_state *dce_call, const char *server_name) { BOOL ret; - char *str; + struct socket_address *myaddr; /* NULL is ok */ if (!server_name) return WERR_OK; @@ -173,6 +173,8 @@ static WERROR spoolss_check_server_name(struct dcesrv_call_state *dce_call, * TODO: we need to check if aliases are also ok */ if (lp_realm()) { + char *str; + str = talloc_asprintf(mem_ctx, "%s.%s", lp_netbios_name(), lp_realm()); @@ -183,11 +185,11 @@ static WERROR spoolss_check_server_name(struct dcesrv_call_state *dce_call, if (ret) return WERR_OK; } - str = socket_get_my_addr(dce_call->conn->srv_conn->socket, mem_ctx); - W_ERROR_HAVE_NO_MEMORY(str); + myaddr = socket_get_my_addr(dce_call->conn->srv_conn->socket, mem_ctx); + W_ERROR_HAVE_NO_MEMORY(myaddr); - ret = strequal(str, server_name); - talloc_free(str); + ret = strequal(myaddr->addr, server_name); + talloc_free(myaddr); if (ret) return WERR_OK; return WERR_INVALID_PRINTER_NAME; |