From 65ae858c1b49efa64c759a914b09204eca14db42 Mon Sep 17 00:00:00 2001 From: Jim McDonough Date: Fri, 24 Oct 2003 13:49:25 +0000 Subject: [PATCH] Add initshutdown pipe commands to rpcclient. Second part of fix to bug #534 (This used to be commit 99f4fa54497ba1c0fc0ba39d51b3ce201a8e6cd2) --- source3/Makefile.in | 9 +++++---- source3/include/ntdomain.h | 1 + source3/include/smb.h | 6 ++++-- source3/rpc_parse/parse_rpc.c | 10 ++++++++++ source3/rpcclient/rpcclient.c | 2 ++ 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/source3/Makefile.in b/source3/Makefile.in index 8c1c65e8655..b0d9be55ec0 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -235,7 +235,7 @@ LIBMSRPC_OBJ = rpc_client/cli_lsarpc.o rpc_client/cli_samr.o \ rpc_client/cli_reg.o rpc_client/cli_pipe.o \ rpc_client/cli_spoolss.o rpc_client/cli_spoolss_notify.o \ rpc_client/cli_ds.o rpc_client/cli_echo.o \ - rpc_client/cli_epmapper.o + rpc_client/cli_shutdown.o rpc_client/cli_epmapper.o REGOBJS_OBJ = registry/reg_objects.o REGISTRY_OBJ = registry/reg_frontend.o registry/reg_cachehook.o registry/reg_printing.o \ @@ -278,8 +278,8 @@ RPC_PARSE_OBJ = rpc_parse/parse_lsa.o rpc_parse/parse_net.o \ rpc_parse/parse_samr.o rpc_parse/parse_srv.o \ rpc_parse/parse_wks.o rpc_parse/parse_ds.o \ rpc_parse/parse_spoolss.o rpc_parse/parse_dfs.o \ - rpc_parse/parse_echo.o rpc_parse/parse_epmapper.o \ - $(REGOBJS_OBJ) + rpc_parse/parse_echo.o rpc_parse/parse_shutdown.o \ + rpc_parse/parse_epmapper.o $(REGOBJS_OBJ) RPC_CLIENT_OBJ = rpc_client/cli_pipe.o @@ -448,7 +448,8 @@ RPCCLIENT_OBJ1 = rpcclient/rpcclient.o rpcclient/cmd_lsarpc.o \ rpcclient/cmd_netlogon.o rpcclient/cmd_srvsvc.o \ rpcclient/cmd_dfs.o rpcclient/cmd_reg.o \ rpcclient/display_sec.o rpcclient/cmd_ds.o \ - rpcclient/cmd_echo.o rpcclient/cmd_epmapper.o + rpcclient/cmd_echo.o rpcclient/cmd_shutdown.o \ + rpcclient/cmd_epmapper.o RPCCLIENT_OBJ = $(RPCCLIENT_OBJ1) \ $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \ diff --git a/source3/include/ntdomain.h b/source3/include/ntdomain.h index 66057424cab..5da6d86410a 100644 --- a/source3/include/ntdomain.h +++ b/source3/include/ntdomain.h @@ -403,5 +403,6 @@ struct acct_info #include "rpc_ds.h" #include "rpc_echo.h" #include "rpc_epmapper.h" +#include "rpc_shutdown.h" #endif /* _NT_DOMAIN_H */ diff --git a/source3/include/smb.h b/source3/include/smb.h index 1e4c48132ac..689e6ebe1d3 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -194,6 +194,7 @@ typedef smb_ucs2_t wfstring[FSTRING_LEN]; #define PIPE_SPOOLSS "\\PIPE\\spoolss" #define PIPE_NETDFS "\\PIPE\\netdfs" #define PIPE_ECHO "\\PIPE\\rpcecho" +#define PIPE_SHUTDOWN "\\PIPE\\initshutdown" #define PIPE_EPM "\\PIPE\\epmapper" #define PIPE_NETLOGON_PLAIN "\\NETLOGON" @@ -208,8 +209,9 @@ typedef smb_ucs2_t wfstring[FSTRING_LEN]; #define PI_SPOOLSS 7 #define PI_NETDFS 8 #define PI_ECHO 9 -#define PI_EPM 10 -#define PI_MAX_PIPES 11 +#define PI_SHUTDOWN 10 +#define PI_EPM 11 +#define PI_MAX_PIPES 12 /* 64 bit time (100usec) since ????? - cifs6.txt, section 3.5, page 30 */ typedef struct nttime_info diff --git a/source3/rpc_parse/parse_rpc.c b/source3/rpc_parse/parse_rpc.c index f053297192d..18ac37778c7 100644 --- a/source3/rpc_parse/parse_rpc.c +++ b/source3/rpc_parse/parse_rpc.c @@ -147,6 +147,15 @@ interface/version dce/rpc pipe identification }, 0x01 \ } +#define SYNT_SHUTDOWN_V1 \ +{ \ + { \ + 0x894de0c0, 0x0d55, 0x11d3, \ + { 0xa3, 0x22, 0x00, 0xc0, \ + 0x4f, 0xa3, 0x21, 0xa1 } \ + }, 0x01 \ +} + #define SYNT_EPM_V3 \ { \ { \ @@ -174,6 +183,7 @@ const struct pipe_id_info pipe_names [] = { PIPE_SPOOLSS , SYNT_SPOOLSS_V1 , PIPE_SPOOLSS , TRANS_SYNT_V2 }, { PIPE_NETDFS , SYNT_NETDFS_V3 , PIPE_NETDFS , TRANS_SYNT_V2 }, { PIPE_ECHO , SYNT_ECHO_V1 , PIPE_ECHO , TRANS_SYNT_V2 }, + { PIPE_SHUTDOWN, SYNT_SHUTDOWN_V1 , PIPE_SHUTDOWN , TRANS_SYNT_V2 }, { PIPE_EPM , SYNT_EPM_V3 , PIPE_EPM , TRANS_SYNT_V2 }, { NULL , SYNT_NONE_V0 , NULL , SYNT_NONE_V0 } }; diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c index f60cb67cba8..0b60dea2fad 100644 --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c @@ -462,6 +462,7 @@ extern struct cmd_set dfs_commands[]; extern struct cmd_set reg_commands[]; extern struct cmd_set ds_commands[]; extern struct cmd_set echo_commands[]; +extern struct cmd_set shutdown_commands[]; extern struct cmd_set epm_commands[]; static struct cmd_set *rpcclient_command_list[] = { @@ -475,6 +476,7 @@ static struct cmd_set *rpcclient_command_list[] = { dfs_commands, reg_commands, echo_commands, + shutdown_commands, epm_commands, NULL }; -- 2.34.1