summaryrefslogtreecommitdiff
path: root/source4/rpc_server/common/server_info.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2004-12-31 02:48:11 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:07:48 -0500
commit09ee8ae1deec97bb1df3c1c77d73192e63df4538 (patch)
tree6024f33b725d4598e188aca5171255e2e09cb598 /source4/rpc_server/common/server_info.c
parentc5fa6f7516dca066359f73b1c4aba3e0d8a4c850 (diff)
downloadsamba-09ee8ae1deec97bb1df3c1c77d73192e63df4538.tar.gz
samba-09ee8ae1deec97bb1df3c1c77d73192e63df4538.tar.bz2
samba-09ee8ae1deec97bb1df3c1c77d73192e63df4538.zip
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)
Diffstat (limited to 'source4/rpc_server/common/server_info.c')
-rw-r--r--source4/rpc_server/common/server_info.c32
1 files changed, 25 insertions, 7 deletions
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, "");
}