#define PIPE_NETDFS "\\PIPE\\netdfs"
#define PIPE_ECHO "\\PIPE\\rpcecho"
#define PIPE_SHUTDOWN "\\PIPE\\initshutdown"
-#define PIPE_EPM "\\PIPE\\epmapper"
+#define PIPE_EPMAPPER "\\PIPE\\epmapper"
#define PIPE_SVCCTL "\\PIPE\\svcctl"
#define PIPE_EVENTLOG "\\PIPE\\eventlog"
#define PIPE_UNIXINFO "\\PIPE\\unixinfo"
#define PI_EVENTLOG 12
#define PI_UNIXINFO 13
#define PI_NTSVCS 14
-#define PI_MAX_PIPES 15
+#define PI_EPMAPPER 15
+#define PI_MAX_PIPES 16
/* 64 bit time (100usec) since ????? - cifs6.txt, section 3.5, page 30 */
typedef uint64_t NTTIME;
#define dom_sid28 dom_sid
enum id_mapping {
- ID_UNKNOWN,
+ ID_UNKNOWN = 0,
ID_MAPPED,
- ID_UNMAPPED
+ ID_UNMAPPED,
+ ID_EXPIRED
};
enum id_type {
+ ID_TYPE_NOT_SPECIFIED = 0,
ID_TYPE_UID,
ID_TYPE_GID
};
unsigned long file_id;
};
-struct messaging_context;
struct event_context;
struct fd_event;
struct timed_event;
#include "sysquotas.h"
/* used to hold an arbitrary blob of data */
-typedef struct data_blob_ {
+typedef struct data_blob {
uint8 *data;
size_t length;
- void (*free)(struct data_blob_ *data_blob);
+ void (*free)(struct data_blob *data_blob);
} DATA_BLOB;
+extern const DATA_BLOB data_blob_null;
+
/*
* Structure used to keep directory state information around.
* Used in NT change-notify code.
};
#define SHARE_MODE_FLAG_POSIX_OPEN 0x1
+#define SHARE_MODE_ALLOW_INITIAL_DELETE_ON_CLOSE 0x2
/* struct returned by get_share_modes */
struct share_mode_entry {
- struct process_id pid;
+ struct server_id pid;
uint16 op_mid;
uint16 op_type;
uint32 access_mask; /* NTCreateX access bits (FILE_READ_DATA etc.) */
SMB_INO_T inode;
unsigned long share_file_id;
uint32 uid; /* uid of file opener. */
- uint16 flags; /* POSIX_OPEN only defined so far... */
+ uint16 flags; /* See SHARE_MODE_XX above. */
};
/* oplock break message definition - linearization of share_mode_entry.
Offset Data length.
-0 struct process_id pid 4
+0 struct server_id pid 4
4 uint16 op_mid 2
6 uint16 op_type 2
8 uint32 access_mask 4
BOOL delete_on_close;
BOOL fresh;
BOOL modified;
+ struct db_record *record;
};
/*
/* Used to store pipe open records for NetFileEnum() */
struct pipe_open_rec {
- struct process_id pid;
+ struct server_id pid;
uid_t uid;
int pnum;
fstring name;
/* key and data in the connections database - used in smbstatus and smbd */
struct connections_key {
- struct process_id pid;
+ struct server_id pid;
int cnum;
fstring name;
};
struct connections_data {
int magic;
- struct process_id pid;
+ struct server_id pid;
int cnum;
uid_t uid;
gid_t gid;
- char name[24];
+ char servicename[FSTRING_LEN];
char addr[24];
char machine[FSTRING_LEN];
time_t start;
/* Mapping of generic access rights for files to specific rights. */
+/* This maps to 0x1F01FF */
#define FILE_GENERIC_ALL (STANDARD_RIGHTS_REQUIRED_ACCESS| SYNCHRONIZE_ACCESS|FILE_ALL_ACCESS)
+/* This maps to 0x120089 */
#define FILE_GENERIC_READ (STANDARD_RIGHTS_READ_ACCESS|FILE_READ_DATA|FILE_READ_ATTRIBUTES|\
FILE_READ_EA|SYNCHRONIZE_ACCESS)
+/* This maps to 0x120116 */
#define FILE_GENERIC_WRITE (STD_RIGHT_READ_CONTROL_ACCESS|FILE_WRITE_DATA|FILE_WRITE_ATTRIBUTES|\
FILE_WRITE_EA|FILE_APPEND_DATA|SYNCHRONIZE_ACCESS)
#define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE_ACCESS|\
FILE_EXECUTE|SYNCHRONIZE_ACCESS)
+/* Share specific rights. */
+#define SHARE_ALL_ACCESS FILE_GENERIC_ALL
+#define SHARE_READ_ONLY (FILE_GENERIC_READ|FILE_EXECUTE)
+
/* Mapping of access rights to UNIX perms. */
#define UNIX_ACCESS_RWX FILE_GENERIC_ALL
#define UNIX_ACCESS_R FILE_GENERIC_READ
#define FLAGS2_WIN2K_SIGNATURE 0xC852 /* Hack alert ! For now... JRA. */
+/* TCONX Flag (smb_vwv2). */
+#define TCONX_FLAG_EXTENDED_RESPONSE 0x8
+
/* Capabilities. see ftp.microsoft.com/developr/drg/cifs/cifs/cifs4.txt */
#define CAP_RAW_MODE 0x0001
gid_t gid; /* gid of a validated user */
userdom_struct user;
- char *homedir;
- char *unix_homedir;
- char *logon_script;
+ const char *homedir;
+ const char *unix_homedir;
+ const char *logon_script;
BOOL guest;
/* Different reasons for closing a file. */
enum file_close_type {NORMAL_CLOSE=0,SHUTDOWN_CLOSE,ERROR_CLOSE};
+#include "librpc/gen_ndr/epmapper.h"
+
#endif /* _SMB_H */