#define PIPE_EPM "\\PIPE\\epmapper"
#define PIPE_SVCCTL "\\PIPE\\svcctl"
#define PIPE_EVENTLOG "\\PIPE\\eventlog"
+#define PIPE_EPMAPPER "\\PIPE\\epmapper"
+#define PIPE_DRSUAPI "\\PIPE\\drsuapi"
#define PIPE_NETLOGON_PLAIN "\\NETLOGON"
#define PI_SVCCTL 11
#define PI_EVENTLOG 12
#define PI_NTSVCS 13
-#define PI_MAX_PIPES 14
+#define PI_EPMAPPER 14
+#define PI_DRSUAPI 15
+#define PI_MAX_PIPES 16
/* 64 bit time (100usec) since ????? - cifs6.txt, section 3.5, page 30 */
typedef uint64_t NTTIME;
#include "librpc/gen_ndr/netlogon.h"
#include "librpc/gen_ndr/samr.h"
#include "librpc/gen_ndr/dssetup.h"
+#include "librpc/gen_ndr/epmapper.h"
#include "librpc/gen_ndr/libnet_join.h"
#include "librpc/gen_ndr/krb5pac.h"
#include "librpc/gen_ndr/ntsvcs.h"
#include "librpc/gen_ndr/nbt.h"
+#include "librpc/gen_ndr/drsuapi.h"
struct lsa_dom_info {
bool valid;
SE_PRIV privileges;
} NT_USER_TOKEN;
-typedef struct _unix_token {
+typedef struct unix_user_token {
uid_t uid;
gid_t gid;
- int ngroups;
+ size_t ngroups;
gid_t *groups;
} UNIX_USER_TOKEN;
char *fsp_name;
struct vfs_fsp_data *vfs_extension;
- FAKE_FILE_HANDLE *fake_file_handle;
+ struct fake_file_handle *fake_file_handle;
struct notify_change_buf *notify;
struct vuid_cache_entry {
uint16 vuid;
+ struct auth_serversupplied_info *server_info;
bool read_only;
bool admin_user;
};
struct vuid_cache {
- unsigned int entries;
+ unsigned int next_entry;
struct vuid_cache_entry array[VUID_CACHE_SIZE];
};
unsigned cnum; /* an index passed over the wire */
struct share_params *params;
bool force_user;
- bool force_group;
struct vuid_cache vuid_cache;
struct dptr_struct *dirptr;
bool printer;
struct vfs_ops vfs_opaque; /* OPAQUE Filesystem operations */
struct vfs_handle_struct *vfs_handles; /* for the new plugins */
- char *user; /* name of user who *opened* this connection */
- uid_t uid; /* uid of user who *opened* this connection */
- gid_t gid; /* gid of user who *opened* this connection */
+ /*
+ * This represents the user information on this connection. Depending
+ * on the vuid using this tid, this might change per SMB request.
+ */
+ struct auth_serversupplied_info *server_info;
+
char client_address[INET6_ADDRSTRLEN]; /* String version of client IP address. */
uint16 vuid; /* vuid of user who *opened* this connection, or UID_FIELD_INVALID */
- /* following groups stuff added by ih */
-
- /* This groups info is valid for the user that *opened* the connection */
- size_t ngroups;
- gid_t *groups;
- NT_USER_TOKEN *nt_user_token;
-
time_t lastused;
time_t lastused_count;
bool used;
enum smbd_capability {
KERNEL_OPLOCK_CAPABILITY,
- DMAPI_ACCESS_CAPABILITY
+ DMAPI_ACCESS_CAPABILITY,
+ LEASE_CAPABILITY
};
/* if a kernel does support oplocks then a structure of the following