int run_rpc_command(struct net_context *c,
struct cli_state *cli_arg,
- const int pipe_idx,
+ const struct ndr_syntax_id *interface,
int conn_flags,
rpc_command_fn fn,
int argc,
}
if (!(conn_flags & NET_FLAGS_NO_PIPE)) {
- if (lp_client_schannel() && (pipe_idx == PI_NETLOGON)) {
+ if (lp_client_schannel()
+ && (ndr_syntax_id_equal(interface,
+ &ndr_table_netlogon.syntax_id))) {
/* Always try and create an schannel netlogon pipe. */
nt_status = cli_rpc_pipe_open_schannel(
- cli, cli_get_iface(pipe_idx),
+ cli, interface,
PIPE_AUTH_LEVEL_PRIVACY, domain_name,
&pipe_hnd);
if (!NT_STATUS_IS_OK(nt_status)) {
} else {
if (conn_flags & NET_FLAGS_SEAL) {
nt_status = cli_rpc_pipe_open_ntlmssp(
- cli, cli_get_iface(pipe_idx),
+ cli, interface,
PIPE_AUTH_LEVEL_PRIVACY,
lp_workgroup(), c->opt_user_name,
c->opt_password, &pipe_hnd);
} else {
nt_status = cli_rpc_pipe_open_noauth(
- cli, cli_get_iface(pipe_idx),
+ cli, interface,
&pipe_hnd);
}
if (!NT_STATUS_IS_OK(nt_status)) {
DEBUG(0, ("Could not initialise pipe %s. Error was %s\n",
- cli_get_pipe_name(pipe_idx),
+ cli_get_pipe_name_from_iface(
+ debug_ctx(), cli, interface),
nt_errstr(nt_status) ));
cli_shutdown(cli);
return -1;
return 0;
}
- return run_rpc_command(c, NULL, PI_NETLOGON, NET_FLAGS_ANONYMOUS | NET_FLAGS_PDC,
+ return run_rpc_command(c, NULL, &ndr_table_netlogon.syntax_id,
+ NET_FLAGS_ANONYMOUS | NET_FLAGS_PDC,
rpc_changetrustpw_internals,
argc, argv);
}
static int net_rpc_perform_oldjoin(struct net_context *c, int argc, const char **argv)
{
- return run_rpc_command(c, NULL, PI_NETLOGON,
+ return run_rpc_command(c, NULL, &ndr_table_netlogon.syntax_id,
NET_FLAGS_NO_PIPE | NET_FLAGS_ANONYMOUS | NET_FLAGS_PDC,
rpc_oldjoin_internals,
argc, argv);
return 0;
}
- return run_rpc_command(c, NULL, PI_SAMR, NET_FLAGS_PDC,
- rpc_info_internals,
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id,
+ NET_FLAGS_PDC, rpc_info_internals,
argc, argv);
}
return 0;
}
- return run_rpc_command(c, NULL, PI_SAMR,
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id,
NET_FLAGS_ANONYMOUS | NET_FLAGS_PDC,
rpc_getsid_internals,
argc, argv);
static int rpc_user_rename(struct net_context *c, int argc, const char **argv)
{
- return run_rpc_command(c, NULL, PI_SAMR, 0, rpc_user_rename_internals,
- argc, argv);
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
+ rpc_user_rename_internals, argc, argv);
}
/**
static int rpc_user_password(struct net_context *c, int argc, const char **argv)
{
- return run_rpc_command(c, NULL, PI_SAMR, 0, rpc_user_password_internals,
- argc, argv);
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
+ rpc_user_password_internals, argc, argv);
}
/**
static int rpc_user_info(struct net_context *c, int argc, const char **argv)
{
- return run_rpc_command(c, NULL, PI_SAMR, 0, rpc_user_info_internals,
- argc, argv);
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
+ rpc_user_info_internals, argc, argv);
}
/**
return 0;
}
- return run_rpc_command(c, NULL,PI_SAMR, 0,
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
rpc_user_list_internals,
argc, argv);
}
static int rpc_group_delete(struct net_context *c, int argc, const char **argv)
{
- return run_rpc_command(c, NULL, PI_SAMR, 0, rpc_group_delete_internals,
- argc,argv);
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
+ rpc_group_delete_internals, argc,argv);
}
static int rpc_group_add_internals(struct net_context *c, int argc, const char **argv)
static int rpc_group_add(struct net_context *c, int argc, const char **argv)
{
if (c->opt_localgroup)
- return run_rpc_command(c, NULL, PI_SAMR, 0,
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
rpc_alias_add_internals,
argc, argv);
static int rpc_group_addmem(struct net_context *c, int argc, const char **argv)
{
- return run_rpc_command(c, NULL, PI_SAMR, 0,
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
rpc_group_addmem_internals,
argc, argv);
}
static int rpc_group_delmem(struct net_context *c, int argc, const char **argv)
{
- return run_rpc_command(c, NULL, PI_SAMR, 0,
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
rpc_group_delmem_internals,
argc, argv);
}
static int rpc_group_list(struct net_context *c, int argc, const char **argv)
{
- return run_rpc_command(c, NULL, PI_SAMR, 0,
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
rpc_group_list_internals,
argc, argv);
}
return rpc_group_usage(c, argc, argv);
}
- return run_rpc_command(c, NULL, PI_SAMR, 0,
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
rpc_group_members_internals,
argc, argv);
}
return 0;
}
- return run_rpc_command(c, NULL, PI_SAMR, 0,
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
rpc_group_list_internals,
argc, argv);
}
if ((argc < 1) || !strchr(argv[0], '=') || c->display_usage) {
return rpc_share_usage(c, argc, argv);
}
- return run_rpc_command(c, NULL, PI_SRVSVC, 0,
+ return run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
rpc_share_add_internals,
argc, argv);
}
if (argc < 1 || c->display_usage) {
return rpc_share_usage(c, argc, argv);
}
- return run_rpc_command(c, NULL, PI_SRVSVC, 0,
+ return run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
rpc_share_del_internals,
argc, argv);
}
return 0;
}
- return run_rpc_command(c, NULL, PI_SRVSVC, 0, rpc_share_list_internals,
- argc, argv);
+ return run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
+ rpc_share_list_internals, argc, argv);
}
static bool check_share_availability(struct cli_state *cli, const char *netname)
return -1;
}
- return run_rpc_command(c, NULL, PI_SRVSVC, 0,
+ return run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
rpc_share_migrate_shares_internals,
argc, argv);
}
return -1;
}
- return run_rpc_command(c, NULL, PI_SRVSVC, 0,
+ return run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
rpc_share_migrate_files_internals,
argc, argv);
}
return -1;
}
- return run_rpc_command(c, NULL, PI_SRVSVC, 0,
+ return run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
rpc_share_migrate_security_internals,
argc, argv);
}
/* order is important. we don't want to be locked out by the share-acl
* before copying files - gd */
- ret = run_rpc_command(c, NULL, PI_SRVSVC, 0,
+ ret = run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
rpc_share_migrate_shares_internals, argc, argv);
if (ret)
return ret;
- ret = run_rpc_command(c, NULL, PI_SRVSVC, 0,
+ ret = run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
rpc_share_migrate_files_internals, argc, argv);
if (ret)
return ret;
- return run_rpc_command(c, NULL, PI_SRVSVC, 0,
+ return run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
rpc_share_migrate_security_internals, argc,
argv);
}
return 0;
}
- result = run_rpc_command(c, NULL, PI_SAMR, 0,
+ result = run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
rpc_aliaslist_internals,
argc, argv);
if (result != 0)
return result;
- result = run_rpc_command(c, NULL, PI_LSARPC, 0,
+ result = run_rpc_command(c, NULL, &ndr_table_lsarpc.syntax_id, 0,
rpc_aliaslist_dump,
argc, argv);
if (result != 0)
return result;
- return run_rpc_command(c, NULL, PI_SRVSVC, 0,
+ return run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
rpc_share_allowedusers_internals,
argc, argv);
}
return 0;
}
- return run_rpc_command(c, NULL, PI_SRVSVC, 0,
+ return run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
rpc_share_list_internals,
argc, argv);
}
return rpc_file_usage(c, argc, argv);
}
- return run_rpc_command(c, NULL, PI_SRVSVC, 0,
+ return run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
rpc_file_close_internals,
argc, argv);
}
return rpc_file_usage(c, argc, argv);
}
- return run_rpc_command(c, NULL, PI_SRVSVC, 0,
+ return run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
rpc_file_list_internals,
argc, argv);
}
return 0;
}
- return run_rpc_command(c, NULL, PI_SRVSVC, 0,
+ return run_rpc_command(c, NULL, &ndr_table_srvsvc.syntax_id, 0,
rpc_file_list_internals,
argc, argv);
}
return 0;
}
- rc = run_rpc_command(c, NULL, PI_INITSHUTDOWN, 0,
+ rc = run_rpc_command(c, NULL, &ndr_table_initshutdown.syntax_id, 0,
rpc_shutdown_abort_internals, argc, argv);
if (rc == 0)
DEBUG(1, ("initshutdown pipe didn't work, trying winreg pipe\n"));
- return run_rpc_command(c, NULL, PI_WINREG, 0,
+ return run_rpc_command(c, NULL, &ndr_table_winreg.syntax_id, 0,
rpc_reg_shutdown_abort_internals,
argc, argv);
}
return 0;
}
- rc = run_rpc_command(c, NULL, PI_INITSHUTDOWN, 0,
+ rc = run_rpc_command(c, NULL, &ndr_table_initshutdown.syntax_id, 0,
rpc_init_shutdown_internals, argc, argv);
if (rc) {
DEBUG(1, ("initshutdown pipe failed, trying winreg pipe\n"));
- rc = run_rpc_command(c, NULL, PI_WINREG, 0,
+ rc = run_rpc_command(c, NULL, &ndr_table_winreg.syntax_id, 0,
rpc_reg_shutdown_internals, argc, argv);
}
static int rpc_trustdom_add(struct net_context *c, int argc, const char **argv)
{
if (argc > 0 && !c->display_usage) {
- return run_rpc_command(c, NULL, PI_SAMR, 0,
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
rpc_trustdom_add_internals, argc, argv);
} else {
d_printf("Usage:\n"
static int rpc_trustdom_del(struct net_context *c, int argc, const char **argv)
{
if (argc > 0 && !c->display_usage) {
- return run_rpc_command(c, NULL, PI_SAMR, 0,
+ return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
rpc_trustdom_del_internals, argc, argv);
} else {
d_printf("Usage:\n"
&remote_cli);
if (NT_STATUS_IS_OK(nt_status)) {
/* query for domain's sid */
- if (run_rpc_command(c, remote_cli, PI_LSARPC, 0,
- rpc_query_domain_sid, argc,
- argv))
+ if (run_rpc_command(
+ c, remote_cli,
+ &ndr_table_lsarpc.syntax_id, 0,
+ rpc_query_domain_sid, argc,
+ argv))
d_fprintf(stderr, "couldn't get domain's sid\n");
cli_shutdown(remote_cli);
return 0;
}
- return run_rpc_command(c, NULL, PI_NETLOGON, NET_FLAGS_ANONYMOUS,
+ return run_rpc_command(c, NULL, &ndr_table_netlogon.syntax_id,
+ NET_FLAGS_ANONYMOUS,
rpc_samdump_internals, argc, argv);
}
return 0;
}
- return run_rpc_command(c, NULL, PI_NETLOGON, NET_FLAGS_ANONYMOUS,
+ return run_rpc_command(c, NULL, &ndr_table_netlogon.syntax_id,
+ NET_FLAGS_ANONYMOUS,
rpc_vampire_internals,
argc, argv);
}
return -1;
}
- ret = run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ ret = run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_migrate_printers_internals, argc,
argv);
if (ret)
return ret;
- ret = run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ ret = run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_migrate_drivers_internals, argc,
argv);
if (ret)
return ret;
- ret = run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ ret = run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_migrate_forms_internals, argc, argv);
if (ret)
return ret;
- ret = run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ ret = run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_migrate_settings_internals, argc,
argv);
if (ret)
return ret;
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_migrate_security_internals, argc,
argv);
return -1;
}
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_migrate_drivers_internals,
argc, argv);
}
return -1;
}
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_migrate_forms_internals,
argc, argv);
}
return -1;
}
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_migrate_printers_internals,
argc, argv);
}
return -1;
}
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_migrate_security_internals,
argc, argv);
}
return -1;
}
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_migrate_settings_internals,
argc, argv);
}
return 0;
}
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_list_internals,
argc, argv);
}
return 0;
}
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_driver_list_internals,
argc, argv);
}
return 0;
}
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_publish_publish_internals,
argc, argv);
}
return 0;
}
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_publish_update_internals,
argc, argv);
}
return 0;
}
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_publish_unpublish_internals,
argc, argv);
}
return 0;
}
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_publish_list_internals,
argc, argv);
}
net_display_usage_from_functable(func);
return 0;
}
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_publish_list_internals,
argc, argv);
}
net_display_usage_from_functable(func);
return 0;
}
- return run_rpc_command(c, NULL, PI_SPOOLSS, 0,
+ return run_rpc_command(c, NULL, &syntax_spoolss, 0,
rpc_printer_list_internals,
argc, argv);
}