r127: NetWkstaGetInfo level 101
authorStefan Metzmacher <metze@samba.org>
Thu, 8 Apr 2004 19:59:24 +0000 (19:59 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:51:09 +0000 (12:51 -0500)
and return WERR_ACCESS_DENIED for level 102, 502 so does my winXP box
for a non-admin user

metze

source/rpc_server/common/server_info.c
source/rpc_server/common/share_info.c
source/rpc_server/wkssvc/dcesrv_wkssvc.c

index 9c57d819e162185e3b78b06df9b2730429bd4653..fc86e0f8c1a7b5219828cc23bf04547ccb15ebe7 100644 (file)
@@ -53,3 +53,9 @@ uint32 dcesrv_common_get_version_minor(TALLOC_CTX *mem_ctx, struct dcesrv_contex
 {
        return 2;
 }
+
+/* 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 "";
+}
index 68b770437d2710998388d93023837816e611e265..8cf130ab51d586b0bb83408dac71d7f636131813 100644 (file)
@@ -64,11 +64,12 @@ uint32 dcesrv_common_get_share_current_users(TALLOC_CTX *mem_ctx, struct dcesrv_
 /* This hardcoded value should go into a ldb database! */
 uint32 dcesrv_common_get_share_type(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx, int snum)
 {
-       /* for disk share 0x00000000
-        * for IPC$ share 0x00000003
+       /* for disk share       0x00000000
+        * for print share      0x00000001
+        * for IPC$ share       0x00000003 
         *
         * administrative shares:
-        * ADMIN$, C$ and IPC$ are type |= 0x80000000
+        * ADMIN$, IPC$, C$, D$, E$ ...  are type |= 0x80000000
         * this ones are hidden in NetShareEnum, but shown in NetShareEnumAll
         */
        return 0;
index f114dda1c069d8f1b4d4a06405a260390e08581a..39bd6bfea83ae9a878e42390cc4506ad4e173472 100644 (file)
@@ -47,21 +47,27 @@ static NTSTATUS wkssvc_NetWkstaGetInfo(struct dcesrv_call_state *dce_call, TALLO
                        break;
                }
        case 101: {
-                       r->out.info.info101 = NULL;
-
-                       r->out.result = WERR_NOT_SUPPORTED;
+                       r->out.info.info101 = talloc_p(mem_ctx, struct wkssvc_NetWkstaInfo101);
+                       WERR_TALLOC_CHECK(r->out.info.info101);
+
+                       r->out.info.info101->platform_id = dcesrv_common_get_platform_id(mem_ctx, dce_ctx);
+                       r->out.info.info101->server = dcesrv_common_get_server_name(mem_ctx, dce_ctx);
+                       r->out.info.info101->domain = dcesrv_common_get_domain_name(mem_ctx, dce_ctx);
+                       r->out.info.info101->ver_major = dcesrv_common_get_version_major(mem_ctx, dce_ctx);
+                       r->out.info.info101->ver_minor = dcesrv_common_get_version_minor(mem_ctx, dce_ctx);
+                       r->out.info.info101->lan_root = dcesrv_common_get_lan_root(mem_ctx, dce_ctx);
                        break;
                }
        case 102: {
                        r->out.info.info102 = NULL;
 
-                       r->out.result = WERR_NOT_SUPPORTED;
+                       r->out.result = WERR_ACCESS_DENIED;
                        break;
                }
        case 502: {     
                        r->out.info.info502 = NULL;
 
-                       r->out.result = WERR_NOT_SUPPORTED;
+                       r->out.result = WERR_ACCESS_DENIED;
                        break;
                }
        default: {