NCACN_NP,
DCERPC_AUTH_TYPE_NTLMSSP,
DCERPC_AUTH_LEVEL_PRIVACY,
+ NULL, /* target_service */
remote_machine,
remote_sockaddr,
creds,
enum dcerpc_transport_t transport,
enum dcerpc_AuthType auth_type,
enum dcerpc_AuthLevel auth_level,
- const char *server,
+ const char *target_service,
+ const char *target_hostname,
const struct sockaddr_storage *remote_sockaddr,
struct cli_credentials *creds,
struct rpc_pipe_client **presult)
{
struct rpc_pipe_client *result;
struct pipe_auth_data *auth = NULL;
- const char *target_service = table->authservices->names[0];
NTSTATUS status;
+ if (target_service == NULL) {
+ target_service = table->authservices->names[0];
+ }
+
status = cli_rpc_pipe_open(cli,
transport,
table,
- server,
+ target_hostname,
remote_sockaddr,
&result);
if (!NT_STATUS_IS_OK(status)) {
}
status = rpccli_generic_bind_data_from_creds(result,
- auth_type, auth_level,
- server, target_service,
+ auth_type,
+ auth_level,
+ target_hostname,
+ target_service,
creds,
&auth);
if (!NT_STATUS_IS_OK(status)) {
enum dcerpc_transport_t transport,
enum dcerpc_AuthType auth_type,
enum dcerpc_AuthLevel auth_level,
- const char *server,
+ const char *target_service,
+ const char *target_hostname,
const struct sockaddr_storage *remote_sockaddr,
struct cli_credentials *creds,
struct rpc_pipe_client **presult);
transport,
auth_type,
auth_level,
+ NULL, /* target_service */
remote_name,
remote_sockaddr,
creds,
NCACN_IP_TCP : NCACN_NP,
DCERPC_AUTH_TYPE_NTLMSSP,
DCERPC_AUTH_LEVEL_PRIVACY,
+ NULL, /* target_service */
smbXcli_conn_remote_name(cli->conn),
smbXcli_conn_remote_sockaddr(cli->conn),
c->creds, &pipe_hnd);
NCACN_NP,
DCERPC_AUTH_TYPE_SPNEGO,
conn->auth_level,
+ NULL, /* target_service */
remote_name,
remote_sockaddr,
creds,
(conn->cli, &ndr_table_lsarpc, NCACN_NP,
DCERPC_AUTH_TYPE_SPNEGO,
conn->auth_level,
+ NULL, /* target_service */
remote_name,
remote_sockaddr,
creds,