sq dcerpc_binding_set_smbXcli_pointers s4:librpc/rpc: avoid using dcerpc_secondary_sm...
authorStefan Metzmacher <metze@samba.org>
Tue, 11 Mar 2014 11:37:40 +0000 (12:37 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 4 Jun 2019 10:43:20 +0000 (12:43 +0200)
source4/librpc/rpc/dcerpc_secondary.c

index 41c6b8f3499b026b42c1f07a23efc0a745964bff..8125bd3c8e9c49cbb450db9816f079049411fe23 100644 (file)
@@ -122,17 +122,11 @@ _PUBLIC_ struct composite_context* dcerpc_secondary_connection_send(struct dcerp
        /* open second dcerpc pipe using the same transport as for primary pipe */
        switch (s->pipe->conn->transport.transport) {
        case NCACN_NP:
-               s->smb.conn = dcerpc_binding_get_pointer_option(s->pipe->binding,
-                                                       "connection",
-                                                       struct smbXcli_conn);
-               s->smb.session = dcerpc_binding_get_pointer_option(s->pipe->binding,
-                                                       "connection",
-                                                       struct smbXcli_session);
-               s->smb.tcon = dcerpc_binding_get_pointer_option(s->pipe->binding,
-                                                       "connection",
-                                                       struct smbXcli_tcon);
-
-               if (!smbXcli_conn_is_connected(s->smb.conn)) {
+               c->status = dcerpc_binding_get_smbXcli_pointers(s->pipe->binding,
+                                                               &s->smb.conn,
+                                                               &s->smb.session,
+                                                               &s->smb.tcon);
+               if (!NT_STATUS_IS_OK(c->status)) {
                        composite_error(c, NT_STATUS_INVALID_PARAMETER_MIX);
                        return c;
                }
@@ -233,22 +227,10 @@ static void continue_open_smb(struct composite_context *ctx)
        c->status = dcerpc_pipe_open_smb_recv(ctx);
        if (!composite_is_ok(c)) return;
 
-       c->status = dcerpc_binding_set_pointer_option(s->binding,
-                                                     "connection",
-                                                     struct smbXcli_conn,
-                                                     s->smb.conn);
-       if (!composite_is_ok(c)) return;
-
-       c->status = dcerpc_binding_set_pointer_option(s->binding,
-                                                     "connection",
-                                                     struct smbXcli_session,
-                                                     s->smb.session);
-       if (!composite_is_ok(c)) return;
-
-       c->status = dcerpc_binding_set_pointer_option(s->binding,
-                                                     "connection",
-                                                     struct smbXcli_tcon,
-                                                     s->smb.tcon);
+       c->status = dcerpc_binding_set_smbXcli_pointers(s->binding,
+                                                       s->smb.conn,
+                                                       s->smb.session,
+                                                       s->smb.tcon);
        if (!composite_is_ok(c)) return;
 
        continue_pipe_open(c);