Author: gd
Date: 2007-11-27 11:14:51 +0000 (Tue, 27 Nov 2007)
New Revision: 26154

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26154

Log:
Add IDL and torture test for wkssvc_NetrWorkstationStatistics(). A lot of
unknowns, I know...

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
   branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
   branches/SAMBA_4_0/source/torture/rpc/wkssvc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl     2007-11-27 11:04:51 UTC 
(rev 26153)
+++ branches/SAMBA_4_0/source/librpc/idl/wkssvc.idl     2007-11-27 11:14:51 UTC 
(rev 26154)
@@ -376,8 +376,57 @@
 
        /*****************************/
        /* Function        0x0d      */
-       WERROR WKSSVC_NETRWORKSTATIONSTATISTICSGET ();
+       typedef struct {
+               hyper unknown1;
+               hyper unknown2;
+               hyper unknown3;
+               hyper unknown4;
+               hyper unknown5;
+               hyper unknown6;
+               hyper unknown7;
+               hyper unknown8;
+               hyper unknown9;
+               hyper unknown10;
+               hyper unknown11;
+               hyper unknown12;
+               hyper unknown13;
+               uint32 unknown14;
+               uint32 unknown15;
+               uint32 unknown16;
+               uint32 unknown17;
+               uint32 unknown18;
+               uint32 unknown19;
+               uint32 unknown20;
+               uint32 unknown21;
+               uint32 unknown22;
+               uint32 unknown23;
+               uint32 unknown24;
+               uint32 unknown25;
+               uint32 unknown26;
+               uint32 unknown27;
+               uint32 unknown28;
+               uint32 unknown29;
+               uint32 unknown30;
+               uint32 unknown31;
+               uint32 unknown32;
+               uint32 unknown33;
+               uint32 unknown34;
+               uint32 unknown35;
+               uint32 unknown36;
+               uint32 unknown37;
+               uint32 unknown38;
+               uint32 unknown39;
+               uint32 unknown40;
+       } wkssvc_NetrWorkstationStatistics;
 
+       WERROR wkssvc_NetrWorkstationStatisticsGet(
+               [in] [string,charset(UTF16)] uint16 *server_name,
+               [in] [string,charset(UTF16)] uint16 *unknown2,
+               [in] uint32 unknown3,
+               [in] uint32 unknown4,
+               [out] [ref] wkssvc_NetrWorkstationStatistics **info
+               );
+
        /*****************************/
        /* Function        0x0e      */
        WERROR wkssvc_NetrLogonDomainNameAdd(

Modified: branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
11:04:51 UTC (rev 26153)
+++ branches/SAMBA_4_0/source/rpc_server/wkssvc/dcesrv_wkssvc.c 2007-11-27 
11:14:51 UTC (rev 26154)
@@ -232,11 +232,11 @@
 }
 
 
-/* 
-  WKSSVC_NETRWORKSTATIONSTATISTICSGET 
+/*
+  wkssvc_NetrWorkstationStatisticsGet
 */
-static WERROR dcesrv_WKSSVC_NETRWORKSTATIONSTATISTICSGET(struct 
dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-                      struct WKSSVC_NETRWORKSTATIONSTATISTICSGET *r)
+static WERROR dcesrv_wkssvc_NetrWorkstationStatisticsGet(struct 
dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+                      struct wkssvc_NetrWorkstationStatisticsGet *r)
 {
        DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }

Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c      2007-11-27 11:04:51 UTC 
(rev 26153)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c      2007-11-27 11:14:51 UTC 
(rev 26154)
@@ -716,6 +716,30 @@
        return true;
 }
 
+static bool test_NetrWorkstationStatisticsGet(struct torture_context *tctx,
+                                             struct dcerpc_pipe *p)
+{
+       NTSTATUS status;
+       struct wkssvc_NetrWorkstationStatisticsGet r;
+       struct wkssvc_NetrWorkstationStatistics *info;
+
+       ZERO_STRUCT(r);
+
+       info = talloc_zero(tctx, struct wkssvc_NetrWorkstationStatistics);
+
+       r.in.server_name = dcerpc_server_name(p);
+       r.out.info = &info;
+
+       torture_comment(tctx, "testing NetrWorkstationStatisticsGet\n");
+
+       status = dcerpc_wkssvc_NetrWorkstationStatisticsGet(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status,
+                                  "NetrWorkstationStatisticsGet failed");
+       torture_assert_werr_ok(tctx, r.out.result,
+                              "NetrWorkstationStatisticsGet failed");
+       return true;
+}
+
 struct torture_suite *torture_rpc_wkssvc(TALLOC_CTX *mem_ctx)
 {
        struct torture_suite *suite;
@@ -764,5 +788,8 @@
        torture_rpc_tcase_add_test(tcase, "NetrEnumerateComputerNames",
                                   test_NetrEnumerateComputerNames);
 
+       torture_rpc_tcase_add_test(tcase, "NetrWorkstationStatisticsGet",
+                                  test_NetrWorkstationStatisticsGet);
+
        return suite;
 }

Reply via email to