endpoint = dcerpc_binding_get_string_option(pc.binding,
"endpoint");
if (endpoint != NULL) {
- pc.smb.conn = dcerpc_binding_get_pointer_option(pc.binding,
- "connection",
- struct smbXcli_conn);
- pc.smb.session = dcerpc_binding_get_pointer_option(pc.binding,
- "connection",
- struct smbXcli_session);
- pc.smb.tcon = dcerpc_binding_get_pointer_option(pc.binding,
- "connection",
- struct smbXcli_tcon);
+ NTSTATUS status;
+
pc.smb.pipe_name = endpoint;
- }
- if (!smbXcli_conn_is_connected(pc.smb.conn)) {
- ZERO_STRUCT(pc.smb);
+ status = dcerpc_binding_get_smbXcli_pointers(pc.binding,
+ &pc.smb.conn,
+ &pc.smb.session,
+ &pc.smb.tcon);
+ if (!NT_STATUS_IS_OK(status)) {
+ ZERO_STRUCT(pc.smb);
+ }
}
ncacn_np_smb_req = dcerpc_pipe_connect_ncacn_np_smb_send(c, &pc, s->lp_ctx);