s4:torture/rpc: concurrent dcerpc_echo_TestSleep requests require a connection with...
authorStefan Metzmacher <metze@samba.org>
Thu, 15 Sep 2016 06:45:51 +0000 (08:45 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Wed, 26 Oct 2016 09:20:17 +0000 (11:20 +0200)
Concurrent requests are only allowed if the client asked for
DCERPC_PFC_FLAG_CONC_MPX in the DCERPC_BIND.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
source4/torture/rpc/echo.c

index 45a41d30b89929c1d72d5f6009b94fa4090f94dc..93fd408afcd0a151a7fcf9aea08403cf2880d258 100644 (file)
@@ -238,12 +238,29 @@ static bool test_sleep(struct torture_context *tctx,
        struct timeval diff[ASYNC_COUNT];
        int total_done = 0;
        struct dcerpc_binding_handle *b = p->binding_handle;
+       enum dcerpc_transport_t transport;
+       uint32_t assoc_group_id;
+       struct dcerpc_pipe *p2 = NULL;
+       NTSTATUS status;
 
        if (torture_setting_bool(tctx, "quick", false)) {
                torture_skip(tctx, "TestSleep disabled - use \"torture:quick=no\" to enable\n");
        }
        torture_comment(tctx, "Testing TestSleep - use \"torture:quick=yes\" to disable\n");
 
+       transport       = dcerpc_binding_get_transport(p->binding);
+       assoc_group_id  = dcerpc_binding_get_assoc_group_id(p->binding);
+
+       torture_comment(tctx, "connect echo connection 2 with "
+                       "DCERPC_CONCURRENT_MULTIPLEX\n");
+       status = torture_rpc_connection_transport(tctx, &p2,
+                                                 &ndr_table_rpcecho,
+                                                 transport,
+                                                 assoc_group_id,
+                                                 DCERPC_CONCURRENT_MULTIPLEX);
+       torture_assert_ntstatus_ok(tctx, status, "opening echo connection 2");
+       b = p2->binding_handle;
+
        for (i=0;i<ASYNC_COUNT;i++) {
                done1[i]        = false;
                done2[i]        = false;