r18315: Implement netSrvGetInfo level 102
authorSimo Sorce <idra@samba.org>
Sun, 10 Sep 2006 00:41:15 +0000 (00:41 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:18:07 +0000 (14:18 -0500)
fix names to be consistent between level 101 and 102 and typo in idl
(This used to be commit 1962fb92d706962544c293770718294e595f9fc4)

source4/librpc/idl/srvsvc.idl
source4/rpc_server/common/server_info.c
source4/rpc_server/srvsvc/dcesrv_srvsvc.c

index f253178d9a58578e6af1bb6068bec4c2f8526b35..e33b0da3e5b3e4758ac08d880cf298af9790f9a9 100644 (file)
        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;
                uint32 hidden;
                uint32 announce;
                uint32 anndelta;
-               uint32 licences;
+               uint32 licenses;
                [string,charset(UTF16)] uint16 *userpath;
        } srvsvc_NetSrvInfo102;
 
index 3277de8ac666de9d254f296ceece92a969de4893..cd8106c03a9e970e1339fe7e0c7561055a8215a7 100644 (file)
@@ -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:\\");
+}
+
+
index fbff1d6cf873e4d32ccbaa0b238dc77d8fcdec72..d852f7a40cd6093e0708a438f2d6c5d8f4c960ab 100644 (file)
@@ -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;
        }