summaryrefslogtreecommitdiffstats
path: root/source/include
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1998-12-08 00:25:04 +0000
committerLuke Leighton <lkcl@samba.org>1998-12-08 00:25:04 +0000
commitd06d6369942828ec89e90f99bd0d0d3f91d61d13 (patch)
treed05f0455828766cdee3f044a8180b5bc5731c3d0 /source/include
parent2bc031e8fafeafdc58c6a8056597b647d00657ae (diff)
downloadsamba-d06d6369942828ec89e90f99bd0d0d3f91d61d13.tar.gz
samba-d06d6369942828ec89e90f99bd0d0d3f91d61d13.tar.xz
samba-d06d6369942828ec89e90f99bd0d0d3f91d61d13.zip
adding srvsvc pipe.
Diffstat (limited to 'source/include')
-rw-r--r--source/include/ntdomain.h1
-rw-r--r--source/include/proto.h56
-rw-r--r--source/include/rpc_samr.h19
-rw-r--r--source/include/rpc_svcctl.h71
-rw-r--r--source/include/smb.h1
5 files changed, 143 insertions, 5 deletions
diff --git a/source/include/ntdomain.h b/source/include/ntdomain.h
index d03b1e0a3ea..75b9ae86298 100644
--- a/source/include/ntdomain.h
+++ b/source/include/ntdomain.h
@@ -40,6 +40,7 @@
#include "rpc_reg.h"
#include "rpc_samr.h"
#include "rpc_srvsvc.h"
+#include "rpc_svcctl.h"
#include "rpc_wkssvc.h"
/*
diff --git a/source/include/proto.h b/source/include/proto.h
index 7f170aaad58..f237c08999b 100644
--- a/source/include/proto.h
+++ b/source/include/proto.h
@@ -47,6 +47,10 @@ BOOL make_alias_line(char *p, int max_len,
struct aliasdb_ops *file_initialise_alias_db(void);
+/*The following definitions come from groupdb/aliasldap.c */
+
+struct aliasdb_ops *ldap_initialise_alias_db(void);
+
/*The following definitions come from groupdb/aliasunix.c */
BOOL get_unixalias_members(struct group *grp,
@@ -78,6 +82,10 @@ BOOL make_builtin_line(char *p, int max_len,
LOCAL_GRP *blt,
LOCAL_GRP_MEMBER **mem, int *num_mem);
+/*The following definitions come from groupdb/builtinldap.c */
+
+struct aliasdb_ops *ldap_initialise_builtin_db(void);
+
/*The following definitions come from groupdb/builtinunix.c */
BOOL get_unixbuiltin_members(struct group *grp,
@@ -114,6 +122,10 @@ BOOL make_group_line(char *p, int max_len,
struct groupdb_ops *file_initialise_group_db(void);
+/*The following definitions come from groupdb/groupldap.c */
+
+struct groupdb_ops *ldap_initialise_group_db(void);
+
/*The following definitions come from groupdb/groupunix.c */
BOOL get_unixgroup_members(struct group *grp,
@@ -1174,9 +1186,8 @@ char *lp_driverfile(void);
char *lp_panic_action(void);
char *lp_ldap_server(void);
char *lp_ldap_suffix(void);
-char *lp_ldap_filter(void);
-char *lp_ldap_root(void);
-char *lp_ldap_rootpasswd(void);
+char *lp_ldap_bind_as(void);
+char *lp_ldap_passwd_file(void);
int lp_ssl_version(void);
char *lp_ssl_hosts(void);
char *lp_ssl_hosts_resign(void);
@@ -1361,7 +1372,14 @@ BOOL pm_process( char *FileName,
/*The following definitions come from passdb/ldap.c */
-struct passdb_ops *ldap_initialise_password_db(void);
+BOOL ldap_open_connection(BOOL modify);
+void ldap_close_connection();
+BOOL ldap_search_for(char *filter);
+BOOL ldap_search_by_name(const char *user);
+BOOL ldap_search_by_uid(int uid);
+BOOL ldap_get_attribute(char *attribute, char *value);
+struct smb_passwd *ldap_getpw();
+struct smb_passdb_ops *ldap_initialise_password_db(void);
/*The following definitions come from passdb/nispass.c */
@@ -1417,6 +1435,10 @@ struct smb_passwd *getsmbgrpuid(uid_t unix_uid,
uint32 **grps, int *num_grps,
uint32 **alss, int *num_alss);
+/*The following definitions come from passdb/passgrpldap.c */
+
+struct passgrp_ops *ldap_initialise_password_grp(void);
+
/*The following definitions come from passdb/sampass.c */
void *startsamfilepwent(BOOL update);
@@ -1443,6 +1465,12 @@ struct smb_passwd *pwdb_sam_to_smb(struct sam_passwd *user);
struct sam_passwd *pwdb_smb_to_sam(struct smb_passwd *user);
struct sam_passwd *pwdb_sam_map_names(struct sam_passwd *sam);
+/*The following definitions come from passdb/sampassldap.c */
+
+BOOL ldap_search_by_rid(uint32 rid);
+BOOL ldap_search_by_ntname(const char *ntname);
+struct sam_passdb_ops *ldap_initialise_sam_password_db(void);
+
/*The following definitions come from passdb/smbpass.c */
struct smb_passdb_ops *file_initialise_password_db(void);
@@ -2105,6 +2133,10 @@ void samr_io_q_unknown_3(char *desc, SAMR_Q_UNKNOWN_3 *q_u, prs_struct *ps, int
void make_samr_q_query_dom_info(SAMR_Q_QUERY_DOMAIN_INFO *q_u,
POLICY_HND *domain_pol, uint16 switch_value);
void samr_io_q_query_dom_info(char *desc, SAMR_Q_QUERY_DOMAIN_INFO *q_u, prs_struct *ps, int depth);
+void make_unk_info6(SAM_UNK_INFO_6 *u_6);
+void sam_io_unk_info6(char *desc, SAM_UNK_INFO_6 *u_6, prs_struct *ps, int depth);
+void make_unk_info7(SAM_UNK_INFO_7 *u_7);
+void sam_io_unk_info7(char *desc, SAM_UNK_INFO_7 *u_7, prs_struct *ps, int depth);
void make_unk_info2(SAM_UNK_INFO_2 *u_2, char *domain, char *server);
void sam_io_unk_info2(char *desc, SAM_UNK_INFO_2 *u_2, prs_struct *ps, int depth);
void make_samr_r_query_dom_info(SAMR_R_QUERY_DOMAIN_INFO *r_u,
@@ -2448,6 +2480,18 @@ void make_time_of_day_info(TIME_OF_DAY_INFO *tod, uint32 elapsedt, uint32 msecs,
uint32 month, uint32 year, uint32 weekday);
void srv_io_r_net_remote_tod(char *desc, SRV_R_NET_REMOTE_TOD *r_n, prs_struct *ps, int depth);
+/*The following definitions come from rpc_parse/parse_svc.c */
+
+void make_svc_q_open_policy(SVC_Q_OPEN_POLICY *q_u,
+ char *server, uint16 unknown) ;
+void svc_io_q_open_policy(char *desc, SVC_Q_OPEN_POLICY *q_u, prs_struct *ps, int depth);
+void make_svc_r_open_policy(SVC_R_OPEN_POLICY *r_u, POLICY_HND *hnd,
+ uint32 status) ;
+void svc_io_r_open_policy(char *desc, SVC_R_OPEN_POLICY *r_u, prs_struct *ps, int depth);
+void make_svc_q_close(SVC_Q_CLOSE *q_c, POLICY_HND *hnd);
+void svc_io_q_close(char *desc, SVC_Q_CLOSE *q_u, prs_struct *ps, int depth);
+void svc_io_r_close(char *desc, SVC_R_CLOSE *r_u, prs_struct *ps, int depth);
+
/*The following definitions come from rpc_parse/parse_wks.c */
void make_wks_q_query_info(WKS_Q_QUERY_INFO *q_u,
@@ -2538,6 +2582,10 @@ BOOL api_samr_rpc(pipes_struct *p, prs_struct *data);
BOOL api_srvsvc_rpc(pipes_struct *p, prs_struct *data);
+/*The following definitions come from rpc_server/srv_svcctl.c */
+
+BOOL api_svcctl_rpc(pipes_struct *p, prs_struct *data);
+
/*The following definitions come from rpc_server/srv_wkssvc.c */
BOOL api_wkssvc_rpc(pipes_struct *p, prs_struct *data);
diff --git a/source/include/rpc_samr.h b/source/include/rpc_samr.h
index bfa0218fd35..07ae0301d43 100644
--- a/source/include/rpc_samr.h
+++ b/source/include/rpc_samr.h
@@ -373,7 +373,22 @@ typedef struct q_samr_query_domain_info
} SAMR_Q_QUERY_DOMAIN_INFO;
-typedef struct sam_unkown_info_2_info
+typedef struct sam_unknown_info_6_info
+{
+ uint32 unknown_0; /* 0x0000 0000 */
+
+ uint32 ptr_0; /* pointer to unknown structure */
+ uint8 padding[12]; /* 12 bytes zeros */
+
+} SAM_UNK_INFO_6;
+
+typedef struct sam_unknown_info_7_info
+{
+ uint16 unknown_0; /* 0x0003 */
+
+} SAM_UNK_INFO_7;
+
+typedef struct sam_unknown_info_2_info
{
uint32 unknown_0; /* 0x0000 0000 */
uint32 unknown_1; /* 0x8000 0000 */
@@ -410,6 +425,8 @@ typedef struct sam_unknown_ctr_info
union
{
SAM_UNK_INFO_2 inf2;
+ SAM_UNK_INFO_6 inf6;
+ SAM_UNK_INFO_7 inf7;
} info;
diff --git a/source/include/rpc_svcctl.h b/source/include/rpc_svcctl.h
new file mode 100644
index 00000000000..0a98496c799
--- /dev/null
+++ b/source/include/rpc_svcctl.h
@@ -0,0 +1,71 @@
+/*
+ Unix SMB/Netbios implementation.
+ Version 1.9.
+ SMB parameters and setup
+ Copyright (C) Andrew Tridgell 1992-1997
+ Copyright (C) Luke Kenneth Casson Leighton 1996-1997
+ Copyright (C) Paul Ashton 1997
+
+ 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 2 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, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#ifndef _RPC_SVCCTL_H /* _RPC_SVCCTL_H */
+#define _RPC_SVCCTL_H
+
+
+/* svcctl pipe */
+#define SVC_OPEN_POLICY 0x0f
+#define SVC_CLOSE 0x00
+
+
+/* SVC_Q_OPEN_POLICY */
+typedef struct q_svc_open_pol_info
+{
+ uint32 ptr_srv_name; /* pointer (to server name?) */
+ UNISTR2 uni_srv_name; /* unicode server name starting with '\\' */
+
+ uint32 unknown; /* unknown */
+
+} SVC_Q_OPEN_POLICY;
+
+/* SVC_R_OPEN_POLICY */
+typedef struct r_svc_open_pol_info
+{
+ POLICY_HND pol;
+ uint32 status; /* return status */
+
+} SVC_R_OPEN_POLICY;
+
+
+/* SVC_Q_CLOSE */
+typedef struct q_svc_close_info
+{
+ POLICY_HND pol;
+
+} SVC_Q_CLOSE;
+
+
+
+/* SVC_R_CLOSE */
+typedef struct r_svc_close_info
+{
+ POLICY_HND pol;
+ uint32 status; /* return status */
+
+} SVC_R_CLOSE;
+
+
+#endif /* _RPC_SVCCTL_H */
+
diff --git a/source/include/smb.h b/source/include/smb.h
index 1ed4ea70890..9c699fc4231 100644
--- a/source/include/smb.h
+++ b/source/include/smb.h
@@ -326,6 +326,7 @@ typedef char fstring[128];
#define PIPE_WINREG "\\PIPE\\winreg"
#define PIPE_WKSSVC "\\PIPE\\wkssvc"
#define PIPE_NETLOGON "\\PIPE\\NETLOGON"
+#define PIPE_SVCCTL "\\PIPE\\SVCCTL"
#define PIPE_NTLSA "\\PIPE\\ntlsa"
#define PIPE_NTSVCS "\\PIPE\\ntsvcs"
#define PIPE_LSASS "\\PIPE\\lsass"