struct composite_context *ncacn_unix_req;
struct composite_context *ncalrpc_req;
enum dcerpc_transport_t transport;
+ const char *endpoint = NULL;
/* dcerpc pipe connect input parameters */
ZERO_STRUCT(pc);
/*
* SMB1/2/3...
*/
+
+ 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);
+ pc.smb.pipe_name = endpoint;
+ }
+
+ if (!smbXcli_conn_is_connected(pc.smb.conn)) {
+ ZERO_STRUCT(pc.smb);
+ }
+
ncacn_np_smb_req = dcerpc_pipe_connect_ncacn_np_smb_send(c, &pc, s->lp_ctx);
composite_continue(c, ncacn_np_smb_req, continue_pipe_connect_ncacn_np_smb, c);
return;