diff options
author | Simo Sorce <idra@samba.org> | 2006-09-10 00:41:15 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:18:07 -0500 |
commit | 92689d180502896cbb07ada29c7349733af4a4b1 (patch) | |
tree | 9c762d961a9847643a85febc1d439bf8f654377e | |
parent | b0f6a94d9aab979b277c7dbd82b03aa0ce3d1a2f (diff) | |
download | samba-92689d180502896cbb07ada29c7349733af4a4b1.tar.gz samba-92689d180502896cbb07ada29c7349733af4a4b1.tar.bz2 samba-92689d180502896cbb07ada29c7349733af4a4b1.zip |
r18315: Implement netSrvGetInfo level 102
fix names to be consistent between level 101 and 102 and typo in idl
(This used to be commit 1962fb92d706962544c293770718294e595f9fc4)
-rw-r--r-- | source4/librpc/idl/srvsvc.idl | 6 | ||||
-rw-r--r-- | source4/rpc_server/common/server_info.c | 44 | ||||
-rw-r--r-- | source4/rpc_server/srvsvc/dcesrv_srvsvc.c | 29 |
3 files changed, 76 insertions, 3 deletions
diff --git a/source4/librpc/idl/srvsvc.idl b/source4/librpc/idl/srvsvc.idl index f253178d9a..e33b0da3e5 100644 --- a/source4/librpc/idl/srvsvc.idl +++ b/source4/librpc/idl/srvsvc.idl @@ -626,8 +626,8 @@ typedef struct { srvsvc_PlatformId platform_id; [string,charset(UTF16)] uint16 *server_name; - uint32 ver_major; - uint32 ver_minor; + uint32 version_major; + uint32 version_minor; svcctl_ServerType server_type; [string,charset(UTF16)] uint16 *comment; uint32 users; @@ -635,7 +635,7 @@ uint32 hidden; uint32 announce; uint32 anndelta; - uint32 licences; + uint32 licenses; [string,charset(UTF16)] uint16 *userpath; } srvsvc_NetSrvInfo102; diff --git a/source4/rpc_server/common/server_info.c b/source4/rpc_server/common/server_info.c index 3277de8ac6..cd8106c03a 100644 --- a/source4/rpc_server/common/server_info.c +++ b/source4/rpc_server/common/server_info.c @@ -89,3 +89,47 @@ _PUBLIC_ const char *dcesrv_common_get_lan_root(TALLOC_CTX *mem_ctx, struct dces { return talloc_strdup(mem_ctx, ""); } + +/* This hardcoded value should go into a ldb database! */ +_PUBLIC_ uint32_t dcesrv_common_get_users(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) +{ + return -1; +} + +/* This hardcoded value should go into a ldb database! */ +_PUBLIC_ uint32_t dcesrv_common_get_disc(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) +{ + return 15; +} + +/* This hardcoded value should go into a ldb database! */ +_PUBLIC_ uint32_t dcesrv_common_get_hidden(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) +{ + return 0; +} + +/* This hardcoded value should go into a ldb database! */ +_PUBLIC_ uint32_t dcesrv_common_get_announce(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) +{ + return 240; +} + +/* This hardcoded value should go into a ldb database! */ +_PUBLIC_ uint32_t dcesrv_common_get_anndelta(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) +{ + return 3000; +} + +/* This hardcoded value should go into a ldb database! */ +_PUBLIC_ uint32_t dcesrv_common_get_licenses(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) +{ + return 0; +} + +/* This hardcoded value should go into a ldb database! */ +_PUBLIC_ const char *dcesrv_common_get_userpath(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx) +{ + return talloc_strdup(mem_ctx, "c:\\"); +} + + diff --git a/source4/rpc_server/srvsvc/dcesrv_srvsvc.c b/source4/rpc_server/srvsvc/dcesrv_srvsvc.c index fbff1d6cf8..d852f7a40c 100644 --- a/source4/rpc_server/srvsvc/dcesrv_srvsvc.c +++ b/source4/rpc_server/srvsvc/dcesrv_srvsvc.c @@ -1025,6 +1025,35 @@ static WERROR srvsvc_NetSrvGetInfo(struct dcesrv_call_state *dce_call, TALLOC_CT r->out.info.info101 = info101; return WERR_OK; } + case 102: + { + struct srvsvc_NetSrvInfo102 *info102; + + info102 = talloc(mem_ctx, struct srvsvc_NetSrvInfo102); + W_ERROR_HAVE_NO_MEMORY(info102); + + info102->platform_id = dcesrv_common_get_platform_id(mem_ctx, dce_ctx); + info102->server_name = dcesrv_common_get_server_name(mem_ctx, dce_ctx, r->in.server_unc); + W_ERROR_HAVE_NO_MEMORY(info102->server_name); + + info102->version_major = dcesrv_common_get_version_major(mem_ctx, dce_ctx); + info102->version_minor = dcesrv_common_get_version_minor(mem_ctx, dce_ctx); + info102->server_type = dcesrv_common_get_server_type(mem_ctx, dce_ctx); + info102->comment = talloc_strdup(mem_ctx, lp_serverstring()); + W_ERROR_HAVE_NO_MEMORY(info102->comment); + + info102->users = dcesrv_common_get_users(mem_ctx, dce_ctx); + info102->disc = dcesrv_common_get_disc(mem_ctx, dce_ctx); + info102->hidden = dcesrv_common_get_hidden(mem_ctx, dce_ctx); + info102->announce = dcesrv_common_get_announce(mem_ctx, dce_ctx); + info102->anndelta = dcesrv_common_get_anndelta(mem_ctx, dce_ctx); + info102->licenses = dcesrv_common_get_licenses(mem_ctx, dce_ctx); + info102->userpath = dcesrv_common_get_userpath(mem_ctx, dce_ctx); + W_ERROR_HAVE_NO_MEMORY(info102->userpath); + + r->out.info.info102 = info102; + return WERR_OK; + } default: return WERR_UNKNOWN_LEVEL; } |