From 09ee8ae1deec97bb1df3c1c77d73192e63df4538 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 31 Dec 2004 02:48:11 +0000 Subject: r4425: - move srvsvc and wkssvc server code to the new W_ERROR_HAVE_NO_MEMORY() macro - add parameters for server_info:platform_id = 500 /* this is PLATFORM_ID_NT */ server_info:version_major = 5 server_info:version_minor = 2 - implmented srvsvc_NetSrvGetInfo level 101 - make dcesrv_common_get_server_name() match w2k3 metze (This used to be commit 16f43207704397c6e3c0132e9f17c8a1a846ddca) --- source4/rpc_server/common/server_info.c | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'source4/rpc_server/common') diff --git a/source4/rpc_server/common/server_info.c b/source4/rpc_server/common/server_info.c index 1d16b8fe61..9212ada3da 100644 --- a/source4/rpc_server/common/server_info.c +++ b/source4/rpc_server/common/server_info.c @@ -29,33 +29,51 @@ /* This hardcoded value should go into a ldb database! */ uint32_t dcesrv_common_get_platform_id(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) { - return 500; + return lp_parm_int(-1, "server_info", "platform_id", 500); } -const char *dcesrv_common_get_server_name(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) +const char *dcesrv_common_get_server_name(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx, const char *server_unc) { - return lp_netbios_name(); + const char *p = server_unc; + + /* if there's no string return our NETBIOS name */ + if (!p) { + return talloc_strdup(mem_ctx, lp_netbios_name()); + } + + /* if there're '\\\\' in front remove them otherwise just pass the string */ + if (p[0] == '\\' && p[1] == '\\') { + p += 2; + } + + return talloc_strdup(mem_ctx, p); } const char *dcesrv_common_get_domain_name(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) { - return lp_workgroup(); + return talloc_strdup(mem_ctx, lp_workgroup()); } /* This hardcoded value should go into a ldb database! */ uint32_t dcesrv_common_get_version_major(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) { - return 5; + return lp_parm_int(-1, "server_info", "version_major", 5); } /* This hardcoded value should go into a ldb database! */ uint32_t dcesrv_common_get_version_minor(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) { - return 2; + return lp_parm_int(-1, "server_info", "version_minor", 2); +} + +/* This hardcoded value should go into a ldb database! */ +uint32_t dcesrv_common_get_server_type(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) +{ + return lp_default_server_announce(); } /* This hardcoded value should go into a ldb database! */ const char *dcesrv_common_get_lan_root(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) { - return ""; + return talloc_strdup(mem_ctx, ""); } -- cgit