r18565: Fix echo.idl to be Samba3-, MIDL and midlc compatible
authorJelmer Vernooij <jelmer@samba.org>
Fri, 15 Sep 2006 20:07:55 +0000 (20:07 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:18:47 +0000 (14:18 -0500)
(This used to be commit ab0a798c57564901f0adcd8aedc1ef0928e79edd)

source4/librpc/config.mk
source4/librpc/idl/echo.idl
source4/pidl/TODO
source4/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
source4/rpc_server/echo/rpc_echo.c
source4/torture/rpc/echo.c

index b1c45e47da8833d5829317a1eb2bedeb377cc498..a1bac05e01f02e9801dafec4577d65fea8dc00e6 100644 (file)
@@ -618,11 +618,11 @@ PRIVATE_DEPENDENCIES = \
 # End SUBSYSTEM dcerpc
 ################################################
 
-[MODULE::RPC_EJS_ECHO]
-INIT_FUNCTION = ejs_init_rpcecho
-OBJ_FILES = gen_ndr/ndr_echo_ejs.o
-SUBSYSTEM = smbcalls
-PUBLIC_DEPENDENCIES = dcerpc NDR_ECHO EJSRPC
+#[MODULE::RPC_EJS_ECHO]
+#INIT_FUNCTION = ejs_init_rpcecho
+#OBJ_FILES = gen_ndr/ndr_echo_ejs.o
+#SUBSYSTEM = smbcalls
+#PUBLIC_DEPENDENCIES = dcerpc NDR_ECHO EJSRPC
 
 [MODULE::RPC_EJS_MISC]
 INIT_FUNCTION = ejs_init_misc
index cda29685a1823f7004168fe90d3c5c90183700b8..80123f992246e2935e4695431848d5f0e2ce2967 100644 (file)
@@ -34,7 +34,7 @@ interface rpcecho
        /* test strings */
        void echo_TestCall (
                [in,string,charset(UTF16)]       uint16 *s1,
-               [out,string,charset(UTF16)]      uint16 *s2
+               [out,string,charset(UTF16)]      uint16 **s2
                );
 
 
index e51c205f917cc9c0e9e03c8d5317490766bc785d..5b3610232c20c73691bcf16fe60b0563cbc70b21 100644 (file)
@@ -1,3 +1,6 @@
+- EJS output backend shouldn't use the NDR levels stuff but instead 
+  as the "C levels" and NDR levels don't necessarily match.
+
 - warn about [out] attributes on pointers (midl/samba3 compatibility)
 
 - true multiple dimension array / strings in arrays support
index 9e4388e28d7805f6c34c156b172f0253707afd0c..bbcc9f884e54e4e3e71e73e4f63dfaa0d917f024 100644 (file)
@@ -7,6 +7,10 @@
 
 package Parse::Pidl::Samba4::NDR::Parser;
 
+require Exporter;
+@ISA = qw(Exporter);
+@EXPORT = qw(is_charset_array);
+
 use strict;
 use Parse::Pidl::Typelist qw(hasType getType mapType);
 use Parse::Pidl::Util qw(has_property ParseExpr print_uuid);
index d7d7ef31c2024d5c7b2f0b1de6c6e4a473c0f3a6..3de24fb3668a0eb74a8b287fcb1e806c6517a6cc 100644 (file)
@@ -68,7 +68,7 @@ static NTSTATUS echo_SourceData(struct dcesrv_call_state *dce_call, TALLOC_CTX *
 
 static NTSTATUS echo_TestCall(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct echo_TestCall *r)
 {
-       r->out.s2 = talloc_strdup(mem_ctx, "this is a test string");
+       *r->out.s2 = talloc_strdup(mem_ctx, "this is a test string");
        
        return NT_STATUS_OK;
 }
index 5752b90ccf27ee3fee38014cd8b88066ab2f9cac..02f255e5f80b2897c8fc64b81a1884ade51d43e6 100644 (file)
@@ -209,8 +209,10 @@ static BOOL test_testcall(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
        struct echo_TestCall r;
+       char *s = NULL;
 
        r.in.s1 = "input string";
+       r.out.s2 = &s;
 
        printf("\nTesting TestCall\n");
        status = dcerpc_echo_TestCall(p, mem_ctx, &r);
@@ -219,6 +221,11 @@ static BOOL test_testcall(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
                return False;
        }
 
+       if (!strcmp(s, "input string")) {
+               printf("Didn't receive back same string\n");
+               return False;
+       }
+
        return True;
 }