{
struct dcerpc_binding *binding;
struct dcerpc_pipe *p;
+ NTSTATUS status;
const uint32_t *flags = (const uint32_t *)private_data;
torture_assert_ntstatus_ok(tctx,
torture_rpc_binding(tctx, &binding),
"failed to parse binding string");
- binding->flags &= ~DCERPC_AUTH_OPTIONS;
- binding->flags |= *flags;
+ status = dcerpc_binding_set_flags(binding, *flags, DCERPC_AUTH_OPTIONS);
+ torture_assert_ntstatus_ok(tctx, status, "set flags");
torture_assert_ntstatus_ok(tctx,
dcerpc_pipe_connect_b(tctx, &p, binding,
struct dcerpc_pipe **p)
{
struct dcerpc_binding *b;
+ NTSTATUS status;
torture_assert_ntstatus_ok(tctx, torture_rpc_binding(tctx, &b),
"failed to get rpc binding");
/* We have to use schannel, otherwise the SamLogonEx fails
* with INTERNAL_ERROR */
- b->flags &= ~DCERPC_AUTH_OPTIONS;
- b->flags |= DCERPC_SCHANNEL | DCERPC_SIGN | DCERPC_SCHANNEL_AUTO;
+ status = dcerpc_binding_set_flags(b,
+ DCERPC_SCHANNEL | DCERPC_SIGN |
+ DCERPC_SCHANNEL_AUTO,
+ DCERPC_AUTH_OPTIONS);
+ torture_assert_ntstatus_ok(tctx, status, "set flags");
torture_assert_ntstatus_ok(tctx,
dcerpc_pipe_connect_b(tctx, p, b, &ndr_table_netlogon,
goto failed;
}
- b->flags &= ~DCERPC_AUTH_OPTIONS;
- b->flags |= DCERPC_SCHANNEL | DCERPC_SIGN;
+ status = dcerpc_binding_set_flags(b,
+ DCERPC_SCHANNEL | DCERPC_SIGN,
+ DCERPC_AUTH_OPTIONS);
+ torture_assert_ntstatus_ok(torture, status, "set flags");
credentials = cli_credentials_init(mem_ctx);
goto failed;
}
- b_netlogon_wksta->flags &= ~DCERPC_AUTH_OPTIONS;
- b_netlogon_wksta->flags |= DCERPC_SCHANNEL | DCERPC_SIGN;
+ status = dcerpc_binding_set_flags(b_netlogon_wksta,
+ DCERPC_SCHANNEL | DCERPC_SIGN,
+ DCERPC_AUTH_OPTIONS);
+ torture_assert_ntstatus_ok(torture, status, "set flags");
credentials_wksta = cli_credentials_init(mem_ctx);
status = dcerpc_parse_binding(tctx, binding, &b);
torture_assert_ntstatus_ok(tctx, status, "Bad binding string");
- b->flags &= ~DCERPC_AUTH_OPTIONS;
- b->flags |= dcerpc_flags;
+ status = dcerpc_binding_set_flags(b, dcerpc_flags, DCERPC_AUTH_OPTIONS);
+ torture_assert_ntstatus_ok(tctx, status, "set flags");
status = dcerpc_pipe_connect_b(tctx, &p, b, &ndr_table_samr,
credentials, tctx->ev, tctx->lp_ctx);
status = dcerpc_parse_binding(tctx, binding, &b);
torture_assert_ntstatus_ok(tctx, status, "Bad binding string");
- b->flags &= ~DCERPC_AUTH_OPTIONS;
- b->flags |= dcerpc_flags;
+ status = dcerpc_binding_set_flags(b, dcerpc_flags, DCERPC_AUTH_OPTIONS);
+ torture_assert_ntstatus_ok(tctx, status, "set flags");
status = dcerpc_pipe_connect_b(tctx, &p_samr2, b, &ndr_table_samr,
credentials, tctx->ev, tctx->lp_ctx);
talloc_free(p_samr2);
/* We don't want schannel for this test */
- b->flags &= ~DCERPC_AUTH_OPTIONS;
+ status = dcerpc_binding_set_flags(b, 0, DCERPC_AUTH_OPTIONS);
+ torture_assert_ntstatus_ok(tctx, status, "set flags");
status = dcerpc_pipe_connect_b(tctx, &p_netlogon3, b, &ndr_table_netlogon,
credentials, tctx->ev, tctx->lp_ctx);
status = dcerpc_parse_binding(torture, binding, &b);
torture_assert_ntstatus_ok(torture, status, "Bad binding string");
- b->flags &= ~DCERPC_AUTH_OPTIONS;
- b->flags |= dcerpc_flags;
+ status = dcerpc_binding_set_flags(b, dcerpc_flags, DCERPC_AUTH_OPTIONS);
+ torture_assert_ntstatus_ok(torture, status, "set flags");
torture_comment(torture, "Opening first connection\n");
status = dcerpc_pipe_connect_b(torture, &p1, b, &ndr_table_netlogon,
status = dcerpc_parse_binding(s, binding, &s->b);
torture_assert_ntstatus_ok(torture, status, "Bad binding string");
- s->b->flags &= ~DCERPC_AUTH_OPTIONS;
- s->b->flags |= DCERPC_SCHANNEL | DCERPC_SIGN;
+
+ status = dcerpc_binding_set_flags(s->b, DCERPC_SCHANNEL | DCERPC_SIGN,
+ DCERPC_AUTH_OPTIONS);
+ torture_assert_ntstatus_ok(torture, status, "set flags");
torture_comment(torture, "Opening %d connections in parallel\n", s->nprocs);
for (i=0; i < s->nprocs; i++) {