diff options
-rw-r--r-- | source3/Makefile.in | 4 | ||||
-rw-r--r-- | source3/configure.in | 6 | ||||
-rw-r--r-- | source3/include/includes.h | 1 | ||||
-rw-r--r-- | source3/include/rpc_srvsvc.h | 52 | ||||
-rw-r--r-- | source3/rpc_parse/parse_srv.c | 31 | ||||
-rw-r--r-- | source3/rpc_server/srv_pipe.c | 2 | ||||
-rw-r--r-- | source3/rpc_server/srv_srvsvc.c | 257 |
7 files changed, 6 insertions, 347 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in index e478a1e51d..0abe3fdf8f 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -302,7 +302,7 @@ RPC_PARSE_OBJ0 = rpc_parse/parse_prs.o rpc_parse/parse_misc.o # that requires knowledge of security contexts RPC_PARSE_OBJ1 = $(RPC_PARSE_OBJ0) rpc_parse/parse_sec.o -RPC_PARSE_OBJ2 = rpc_parse/parse_rpc.o rpc_parse/parse_srv.o \ +RPC_PARSE_OBJ2 = rpc_parse/parse_rpc.o \ rpc_client/init_netlogon.o \ rpc_client/init_lsa.o \ rpc_client/init_srvsvc.o @@ -509,7 +509,7 @@ RPC_REG_OBJ = rpc_server/srv_winreg_nt.o \ RPC_DSSETUP_OBJ = rpc_server/srv_dssetup_nt.o librpc/gen_ndr/srv_dssetup.o -RPC_SVC_OBJ = rpc_server/srv_srvsvc.o rpc_server/srv_srvsvc_nt.o \ +RPC_SVC_OBJ = rpc_server/srv_srvsvc_nt.o \ librpc/gen_ndr/srv_srvsvc.o RPC_WKS_OBJ = librpc/gen_ndr/srv_wkssvc.o rpc_server/srv_wkssvc_nt.o diff --git a/source3/configure.in b/source3/configure.in index 2e6c109311..8b227d0142 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -400,7 +400,7 @@ AC_SUBST(DYNEXP) dnl Add modules that have to be built by default here dnl These have to be built static: -default_static_modules="pdb_smbpasswd pdb_tdbsam rpc_lsarpc rpc_samr rpc_winreg rpc_initshutdown rpc_dssetup rpc_wkssvc rpc_svcctl2 rpc_ntsvcs2 rpc_netlogon rpc_netdfs rpc_srvsvc2 rpc_spoolss rpc_eventlog2 auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin vfs_default nss_info_template" +default_static_modules="pdb_smbpasswd pdb_tdbsam rpc_lsarpc rpc_samr rpc_winreg rpc_initshutdown rpc_dssetup rpc_wkssvc rpc_svcctl2 rpc_ntsvcs2 rpc_netlogon rpc_netdfs rpc_srvsvc rpc_spoolss rpc_eventlog2 auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin vfs_default nss_info_template" dnl These are preferably build shared, and static if dlopen() is not available default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_expand_msdfs vfs_shadow_copy vfs_shadow_copy2 charset_CP850 charset_CP437 auth_script vfs_readahead vfs_xattr_tdb vfs_streams_xattr" @@ -5998,7 +5998,7 @@ done dnl Always build these modules static MODULE_rpc_spoolss=STATIC -MODULE_rpc_srvsvc2=STATIC +MODULE_rpc_srvsvc=STATIC MODULE_idmap_tdb=STATIC MODULE_idmap_passdb=STATIC MODULE_idmap_nss=STATIC @@ -6039,7 +6039,7 @@ SMB_MODULE(rpc_svcctl2, \$(RPC_SVCCTL_OBJ), "bin/librpc_svcctl2.$SHLIBEXT", RPC) SMB_MODULE(rpc_ntsvcs2, \$(RPC_NTSVCS_OBJ), "bin/librpc_ntsvcs2.$SHLIBEXT", RPC) SMB_MODULE(rpc_netlogon, \$(RPC_NETLOG_OBJ), "bin/librpc_NETLOGON.$SHLIBEXT", RPC) SMB_MODULE(rpc_netdfs, \$(RPC_DFS_OBJ), "bin/librpc_netdfs.$SHLIBEXT", RPC) -SMB_MODULE(rpc_srvsvc2, \$(RPC_SVC_OBJ), "bin/librpc_svcsvc2.$SHLIBEXT", RPC) +SMB_MODULE(rpc_srvsvc, \$(RPC_SVC_OBJ), "bin/librpc_svcsvc.$SHLIBEXT", RPC) SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), "bin/librpc_spoolss.$SHLIBEXT", RPC) SMB_MODULE(rpc_eventlog2, \$(RPC_EVENTLOG_OBJ), "bin/librpc_eventlog2.$SHLIBEXT", RPC) SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), "bin/librpc_samr.$SHLIBEXT", RPC) diff --git a/source3/include/includes.h b/source3/include/includes.h index c56c3cfd18..15a74849a9 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -698,7 +698,6 @@ typedef char fstring[FSTRING_LEN]; #include "rpc_netlogon.h" #include "reg_objects.h" #include "reg_db.h" -#include "rpc_srvsvc.h" #include "rpc_spoolss.h" #include "rpc_eventlog.h" #include "rpc_perfcount.h" diff --git a/source3/include/rpc_srvsvc.h b/source3/include/rpc_srvsvc.h deleted file mode 100644 index 0f6fabe774..0000000000 --- a/source3/include/rpc_srvsvc.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Unix SMB/CIFS implementation. - SMB parameters and setup - Copyright (C) Andrew Tridgell 1992-1997 - Copyright (C) Luke Kenneth Casson Leighton 1996-1997 - Copyright (C) Paul Ashton 1997 - Copyright (C) Nigel Williams 2001 - Copyright (C) Gerald (Jerry) Carter 2006. - - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef _RPC_SRVSVC_H /* _RPC_SRVSVC_H */ -#define _RPC_SRVSVC_H - -/* srvsvc pipe */ -#define SRV_NET_CONN_ENUM 0x08 -#define SRV_NET_FILE_ENUM 0x09 -#define SRV_NET_FILE_CLOSE 0x0b -#define SRV_NET_SESS_ENUM 0x0c -#define SRV_NET_SESS_DEL 0x0d -#define SRV_NET_SHARE_ADD 0x0e -#define SRV_NET_SHARE_ENUM_ALL 0x0f -#define SRV_NET_SHARE_GET_INFO 0x10 -#define SRV_NET_SHARE_SET_INFO 0x11 -#define SRV_NET_SHARE_DEL 0x12 -#define SRV_NET_SHARE_DEL_STICKY 0x13 -#define SRV_NET_SRV_GET_INFO 0x15 -#define SRV_NET_SRV_SET_INFO 0x16 -#define SRV_NET_DISK_ENUM 0x17 -#define SRV_NET_REMOTE_TOD 0x1c -#define SRV_NET_NAME_VALIDATE 0x21 -#define SRV_NET_SHARE_ENUM 0x24 -#define SRV_NET_FILE_QUERY_SECDESC 0x27 -#define SRV_NET_FILE_SET_SECDESC 0x28 - - -/***************************/ - -#endif /* _RPC_SRVSVC_H */ diff --git a/source3/rpc_parse/parse_srv.c b/source3/rpc_parse/parse_srv.c deleted file mode 100644 index 2dce494b69..0000000000 --- a/source3/rpc_parse/parse_srv.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Unix SMB/CIFS implementation. - * RPC Pipe client / server routines - * Copyright (C) Andrew Tridgell 1992-1997, - * Copyright (C) Luke Kenneth Casson Leighton 1996-1997, - * Copyright (C) Paul Ashton 1997, - * Copyright (C) Jeremy Allison 1999, - * Copyright (C) Nigel Williams 2001, - * Copyright (C) Jim McDonough (jmcd@us.ibm.com) 2002. - * Copyright (C) Gerald (Jerry) Carter 2006. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses/>. - */ - -#include "includes.h" - -#undef DBGC_CLASS -#define DBGC_CLASS DBGC_RPC_PARSE - - diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c index 6c1b65b858..f33ee88aec 100644 --- a/source3/rpc_server/srv_pipe.c +++ b/source3/rpc_server/srv_pipe.c @@ -2388,7 +2388,7 @@ void get_pipe_fns( int idx, struct api_struct **fns, int *n_fns ) netlogon_get_pipe_fns( &cmds, &n_cmds ); break; case PI_SRVSVC: - srvsvc2_get_pipe_fns( &cmds, &n_cmds ); + srvsvc_get_pipe_fns( &cmds, &n_cmds ); break; case PI_WKSSVC: wkssvc_get_pipe_fns( &cmds, &n_cmds ); diff --git a/source3/rpc_server/srv_srvsvc.c b/source3/rpc_server/srv_srvsvc.c deleted file mode 100644 index 3a7340c0fa..0000000000 --- a/source3/rpc_server/srv_srvsvc.c +++ /dev/null @@ -1,257 +0,0 @@ -/* - * Unix SMB/CIFS implementation. - * RPC Pipe client / server routines - * Copyright (C) Andrew Tridgell 1992-1997, - * Copyright (C) Luke Kenneth Casson Leighton 1996-1997, - * Copyright (C) Paul Ashton 1997, - * Copyright (C) Jeremy Allison 2001, - * Copyright (C) Jim McDonough <jmcd@us.ibm.com> 2003. - * Copyright (C) Gera;d (Jerry) Carter 2006. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses/>. - */ - -/* This is the interface to the srvsvc pipe. */ - -#include "includes.h" - -#undef DBGC_CLASS -#define DBGC_CLASS DBGC_RPC_SRV - -static bool proxy_srvsvc_call(pipes_struct *p, uint8 opnum) -{ - struct api_struct *fns; - int n_fns; - - srvsvc_get_pipe_fns(&fns, &n_fns); - - if (opnum >= n_fns) - return False; - - if (fns[opnum].opnum != opnum) { - smb_panic("SRVSVC function table not sorted\n"); - } - - return fns[opnum].fn(p); -} - -/******************************************************************* - api_srv_net_srv_get_info -********************************************************************/ - -static bool api_srv_net_srv_get_info(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETSRVGETINFO); -} - -/******************************************************************* - api_srv_net_srv_get_info -********************************************************************/ - -static bool api_srv_net_srv_set_info(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETSRVSETINFO); -} - -/******************************************************************* - api_srv_net_file_enum -********************************************************************/ - -static bool api_srv_net_file_enum(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETFILEENUM); -} - -/******************************************************************* - api_srv_net_conn_enum -********************************************************************/ - -static bool api_srv_net_conn_enum(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETCONNENUM); -} - -/******************************************************************* - Enumerate sessions. -********************************************************************/ - -static bool api_srv_net_sess_enum(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETSESSENUM); -} - -/******************************************************************* - Delete session. -********************************************************************/ - -static bool api_srv_net_sess_del(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETSESSDEL); -} - -/******************************************************************* - RPC to enumerate shares. -********************************************************************/ - -static bool api_srv_net_share_enum_all(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETSHAREENUMALL); -} - -/******************************************************************* - RPC to enumerate shares. -********************************************************************/ - -static bool api_srv_net_share_enum(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETSHAREENUM); -} - -/******************************************************************* - RPC to return share information. -********************************************************************/ - -static bool api_srv_net_share_get_info(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETSHAREGETINFO); -} - -/******************************************************************* - RPC to set share information. -********************************************************************/ - -static bool api_srv_net_share_set_info(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETSHARESETINFO); -} - -/******************************************************************* - RPC to add share information. -********************************************************************/ - -static bool api_srv_net_share_add(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETSHAREADD); -} - -/******************************************************************* - RPC to delete share information. -********************************************************************/ - -static bool api_srv_net_share_del(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETSHAREDEL); -} - -/******************************************************************* - RPC to delete share information. -********************************************************************/ - -static bool api_srv_net_share_del_sticky(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETSHAREDELSTICKY); -} - -/******************************************************************* - api_srv_net_remote_tod -********************************************************************/ - -static bool api_srv_net_remote_tod(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETREMOTETOD); -} - -/******************************************************************* - RPC to enumerate disks available on a server e.g. C:, D: ... -*******************************************************************/ - -static bool api_srv_net_disk_enum(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETDISKENUM); -} - -/******************************************************************* - NetValidateName (opnum 0x21) -*******************************************************************/ - -static bool api_srv_net_name_validate(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETNAMEVALIDATE); -} - -/******************************************************************* - NetFileQuerySecdesc (opnum 0x27) -*******************************************************************/ - -static bool api_srv_net_file_query_secdesc(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETGETFILESECURITY); -} - -/******************************************************************* - NetFileSetSecdesc (opnum 0x28) -*******************************************************************/ - -static bool api_srv_net_file_set_secdesc(pipes_struct *p) -{ - return proxy_srvsvc_call(p, NDR_SRVSVC_NETSETFILESECURITY); -} - -/******************************************************************* -*******************************************************************/ - -static bool api_srv_net_file_close(pipes_struct *p) -{ - return proxy_srvsvc_call( p, NDR_SRVSVC_NETFILECLOSE ); -} - -/******************************************************************* -\PIPE\srvsvc commands -********************************************************************/ - -static struct api_struct api_srv_cmds[] = -{ - { "SRV_NET_CONN_ENUM" , SRV_NET_CONN_ENUM , api_srv_net_conn_enum }, - { "SRV_NET_SESS_ENUM" , SRV_NET_SESS_ENUM , api_srv_net_sess_enum }, - { "SRV_NET_SESS_DEL" , SRV_NET_SESS_DEL , api_srv_net_sess_del }, - { "SRV_NET_SHARE_ENUM_ALL" , SRV_NET_SHARE_ENUM_ALL , api_srv_net_share_enum_all }, - { "SRV_NET_SHARE_ENUM" , SRV_NET_SHARE_ENUM , api_srv_net_share_enum }, - { "SRV_NET_SHARE_ADD" , SRV_NET_SHARE_ADD , api_srv_net_share_add }, - { "SRV_NET_SHARE_DEL" , SRV_NET_SHARE_DEL , api_srv_net_share_del }, - { "SRV_NET_SHARE_DEL_STICKY" , SRV_NET_SHARE_DEL_STICKY , api_srv_net_share_del_sticky }, - { "SRV_NET_SHARE_GET_INFO" , SRV_NET_SHARE_GET_INFO , api_srv_net_share_get_info }, - { "SRV_NET_SHARE_SET_INFO" , SRV_NET_SHARE_SET_INFO , api_srv_net_share_set_info }, - { "SRV_NET_FILE_ENUM" , SRV_NET_FILE_ENUM , api_srv_net_file_enum }, - { "SRV_NET_SRV_GET_INFO" , SRV_NET_SRV_GET_INFO , api_srv_net_srv_get_info }, - { "SRV_NET_SRV_SET_INFO" , SRV_NET_SRV_SET_INFO , api_srv_net_srv_set_info }, - { "SRV_NET_REMOTE_TOD" , SRV_NET_REMOTE_TOD , api_srv_net_remote_tod }, - { "SRV_NET_DISK_ENUM" , SRV_NET_DISK_ENUM , api_srv_net_disk_enum }, - { "SRV_NET_NAME_VALIDATE" , SRV_NET_NAME_VALIDATE , api_srv_net_name_validate }, - { "SRV_NET_FILE_QUERY_SECDESC", SRV_NET_FILE_QUERY_SECDESC, api_srv_net_file_query_secdesc }, - { "SRV_NET_FILE_SET_SECDESC" , SRV_NET_FILE_SET_SECDESC , api_srv_net_file_set_secdesc }, - { "SRV_NET_FILE_CLOSE" , SRV_NET_FILE_CLOSE , api_srv_net_file_close } -}; - -void srvsvc2_get_pipe_fns( struct api_struct **fns, int *n_fns ) -{ - *fns = api_srv_cmds; - *n_fns = sizeof(api_srv_cmds) / sizeof(struct api_struct); -} - - -NTSTATUS rpc_srvsvc2_init(void) -{ - return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "srvsvc", "ntsvcs", api_srv_cmds, - sizeof(api_srv_cmds) / sizeof(struct api_struct)); -} |