#include "libds/common/roles.h"
/* logged when starting the various Samba daemons */
-#define COPYRIGHT_STARTUP_MESSAGE "Copyright Andrew Tridgell and the Samba Team 1992-2012"
+#define COPYRIGHT_STARTUP_MESSAGE "Copyright Andrew Tridgell and the Samba Team 1992-2013"
#define BUFFER_SIZE (128*1024)
struct notify_change_request;
struct sys_notify_backend;
struct sys_notify_context {
- struct event_context *ev;
+ struct tevent_context *ev;
void *private_data; /* For use by the system backend */
};
struct current_user {
struct connection_struct *conn;
- uint16 vuid;
+ uint64_t vuid; /* SMB2 compat */
struct security_unix_token ut;
struct security_token *nt_user_token;
};
-struct smbd_smb2_request;
-struct privilege_paths;
-
-struct smb_request {
- uint8_t cmd;
- uint16 flags2;
- uint16 smbpid;
- uint64_t mid; /* For compatibility with SMB2. */
- uint32_t seqnum;
- uint16 vuid;
- uint16 tid;
- uint8 wct;
- const uint16_t *vwv;
- uint16_t buflen;
- const uint8_t *buf;
- const uint8 *inbuf;
-
- /*
- * Async handling in the main smb processing loop is directed by
- * outbuf: reply_xxx routines indicate sync behaviour by putting their
- * reply into "outbuf". If they leave it as NULL, they take care of it
- * themselves, possibly later.
- *
- * If async handling is wanted, the reply_xxx routine must make sure
- * that it talloc_move()s the smb_req somewhere else.
- */
- uint8 *outbuf;
-
- size_t unread_bytes;
- bool encrypted;
- connection_struct *conn;
- struct smbd_server_connection *sconn;
- struct smb_perfcount_data pcd;
-
- /*
- * Chained request handling
- */
- struct files_struct *chain_fsp;
-
- /*
- * state information for async smb handling
- */
- void *async_priv;
-
- /*
- * Back pointer to smb2 request.
- */
- struct smbd_smb2_request *smb2req;
-
- /*
- * Pathnames used if request done
- * under privilege.
- */
- struct privilege_paths *priv_paths;
-
- /*
- * Request list for chained requests, we're part of it.
- */
- struct smb_request **chain;
-};
-
/* Defines for the sent_oplock_break field above. */
#define NO_BREAK_SENT 0
#define BREAK_TO_NONE_SENT 1
#define smb_ntcreate_ImpersonationLevel (smb_vwv0 + 43)
#define smb_ntcreate_SecurityFlags (smb_vwv0 + 47)
-/* this is used on a TConX. I'm not sure the name is very helpful though */
-#define SMB_SUPPORT_SEARCH_BITS 0x0001
-#define SMB_SHARE_IN_DFS 0x0002
-
/* Named pipe write mode flags. Used in writeX calls. */
#define PIPE_RAW_MODE 0x4
#define PIPE_START_MESSAGE 0x8
#define RENAME_FLAG_RENAME 0x104
#define RENAME_FLAG_COPY 0x105
-/* Filesystem Attributes. */
-#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
-#define FILE_CASE_PRESERVED_NAMES 0x00000002
-#define FILE_UNICODE_ON_DISK 0x00000004
-/* According to cifs9f, this is 4, not 8 */
-/* Acconding to testing, this actually sets the security attribute! */
-#define FILE_PERSISTENT_ACLS 0x00000008
-#define FILE_FILE_COMPRESSION 0x00000010
-#define FILE_VOLUME_QUOTAS 0x00000020
-#define FILE_SUPPORTS_SPARSE_FILES 0x00000040
-#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
-#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
-#define FS_LFN_APIS 0x00004000
-#define FILE_VOLUME_IS_COMPRESSED 0x00008000
-#define FILE_SUPPORTS_OBJECT_IDS 0x00010000
-#define FILE_SUPPORTS_ENCRYPTION 0x00020000
-#define FILE_NAMED_STREAMS 0x00040000
-#define FILE_READ_ONLY_VOLUME 0x00080000
-
/* ChangeNotify flags. */
#define FILE_NOTIFY_CHANGE_FILE_NAME 0x001
#define FILE_NOTIFY_CHANGE_DIR_NAME 0x002
#define NOTIFY_ACTION_REMOVED_STREAM 7
#define NOTIFY_ACTION_MODIFIED_STREAM 8
+/*
+ * Timestamp format used in "previous versions":
+ * The is the windows-level format of the @GMT- token.
+ * It is a fixed format not to be confused with the
+ * format for the POSIX-Level token of the shadow_copy2
+ * VFS module that can be configured via the "shadow:format"
+ * configuration option but defaults to the same format.
+ * See the shadow_copy2 module.
+ */
+#define GMT_NAME_LEN 24 /* length of a @GMT- name */
+#define GMT_FORMAT "@GMT-%Y.%m.%d-%H.%M.%S"
/* where to find the base of the SMB packet proper */
#define smb_base(buf) (((const char *)(buf))+4)
* Note: In the presence of NT4.X do not set above 4.9
* Setting this above 4.9 can have undesired side-effects.
* This may change again in Samba-3.0 after further testing. JHT
+ *
+ * Version 6.1 - For older smb server versions, MMC doesn't let offline
+ * settings to be configured during share creation. Changing
+ * it to 6.1 to mimic Win2K8R2.
+ *
*/
-#define SAMBA_MAJOR_NBT_ANNOUNCE_VERSION 0x04
-#define SAMBA_MINOR_NBT_ANNOUNCE_VERSION 0x09
+#define SAMBA_MAJOR_NBT_ANNOUNCE_VERSION 0x06
+#define SAMBA_MINOR_NBT_ANNOUNCE_VERSION 0x01
/* Browser Election Values */
#define BROWSER_ELECTION_VERSION 0x010f
#define BROWSER_CONSTANT 0xaa55
-/* TCONX Flag (smb_vwv2). */
-#define TCONX_FLAG_EXTENDED_RESPONSE 0x8
-
/* File Status Flags. See:
http://msdn.microsoft.com/en-us/library/cc246334(PROT.13).aspx
#define NO_SUBSTREAMS 0x2
#define NO_REPARSETAG 0x4
-/* printing types */
-enum printing_types {PRINT_BSD,PRINT_SYSV,PRINT_AIX,PRINT_HPUX,
- PRINT_QNX,PRINT_PLP,PRINT_LPRNG,PRINT_SOFTQ,
- PRINT_CUPS,PRINT_LPRNT,PRINT_LPROS2,PRINT_IPRINT
-#if defined(DEVELOPER) || defined(ENABLE_BUILD_FARM_HACKS)
-,PRINT_TEST,PRINT_VLP
-#endif /* DEVELOPER */
-};
-
-/* LDAP SSL options */
-enum ldap_ssl_types {LDAP_SSL_OFF, LDAP_SSL_START_TLS};
-
-/* LDAP PASSWD SYNC methods */
-enum ldap_passwd_sync_types {LDAP_PASSWD_SYNC_ON, LDAP_PASSWD_SYNC_OFF, LDAP_PASSWD_SYNC_ONLY};
-
-/*
- * This should be under the HAVE_KRB5 flag but since they're used
- * in lp_kerberos_method(), they ned to be always available
- * If you add any entries to KERBEROS_VERIFY defines, please modify USE.*KEYTAB macros
- * so they remain accurate.
- */
-
-#define KERBEROS_VERIFY_SECRETS 0
-#define KERBEROS_VERIFY_SYSTEM_KEYTAB 1
-#define KERBEROS_VERIFY_DEDICATED_KEYTAB 2
-#define KERBEROS_VERIFY_SECRETS_AND_KEYTAB 3
-
/* Remote architectures we know about. */
enum remote_arch_types {RA_UNKNOWN, RA_WFWG, RA_OS2, RA_WIN95, RA_WINNT,
RA_WIN2K, RA_WINXP, RA_WIN2K3, RA_VISTA,
RA_SAMBA, RA_CIFSFS, RA_WINXP64, RA_OSX};
-/* case handling */
-enum case_handling {CASE_LOWER,CASE_UPPER};
-
-/* ACL compatibility */
-enum acl_compatibility {ACL_COMPAT_AUTO, ACL_COMPAT_WINNT, ACL_COMPAT_WIN2K};
/*
- * Global value meaing that the smb_uid field should be
+ * Global value meaning that the smb_uid field should be
* ingored (in share level security and protocol level == CORE)
*/
#define UID_FIELD_INVALID 0
#define VUID_OFFSET 100 /* Amount to bias returned vuid numbers */
+#define TID_FIELD_INVALID 0
+
+#define FNUM_FIELD_INVALID 0
+
/*
* Size of buffer to use when moving files across filesystems.
*/
/* The following are Samba-private. */
#define INTERNAL_OPEN_ONLY 0x8
-#define FAKE_LEVEL_II_OPLOCK 0x10 /* Client requested no_oplock, but we have to
+/* #define FAKE_LEVEL_II_OPLOCK 0x10 */ /* Not used anymore */
+ /* Client requested no_oplock, but we have to
* inform potential level2 holders on
* write. */
-#define DEFERRED_OPEN_ENTRY 0x20
+/* #define DEFERRED_OPEN_ENTRY 0x20 */ /* Not used anymore */
/* #define UNUSED_SHARE_MODE_ENTRY 0x40 */ /* Not used anymore */
-#define FORCE_OPLOCK_BREAK_TO_NONE 0x80
+/* #define FORCE_OPLOCK_BREAK_TO_NONE 0x80 */ /* Not used anymore */
/* None of the following should ever appear in fsp->oplock_request. */
-#define SAMBA_PRIVATE_OPLOCK_MASK (INTERNAL_OPEN_ONLY|DEFERRED_OPEN_ENTRY|FORCE_OPLOCK_BREAK_TO_NONE)
+#define SAMBA_PRIVATE_OPLOCK_MASK (INTERNAL_OPEN_ONLY)
#define EXCLUSIVE_OPLOCK_TYPE(lck) ((lck) & ((unsigned int)EXCLUSIVE_OPLOCK|(unsigned int)BATCH_OPLOCK))
#define BATCH_OPLOCK_TYPE(lck) ((lck) & (unsigned int)BATCH_OPLOCK)
-#define LEVEL_II_OPLOCK_TYPE(lck) ((lck) & ((unsigned int)LEVEL_II_OPLOCK|(unsigned int)FAKE_LEVEL_II_OPLOCK))
+#define LEVEL_II_OPLOCK_TYPE(lck) ((lck) & (unsigned int)LEVEL_II_OPLOCK)
/* kernel_oplock_message definition.
/* There really is more here ... */
};
-typedef struct user_struct {
- struct user_struct *next, *prev;
- uint16 vuid; /* Tag for this entry. */
-
- char *session_keystr; /* used by utmp and pam session code.
- TDB key string */
- int homes_snum;
-
- struct auth_session_info *session_info;
-
- struct gensec_security *gensec_security;
-} user_struct;
-
-/*
- Do you want session setups at user level security with a invalid
- password to be rejected or allowed in as guest? WinNT rejects them
- but it can be a pain as it means "net view" needs to use a password
-
- You have 3 choices in the setting of map_to_guest:
-
- "NEVER_MAP_TO_GUEST" means session setups with an invalid password
- are rejected. This is the default.
-
- "MAP_TO_GUEST_ON_BAD_USER" means session setups with an invalid password
- are rejected, unless the username does not exist, in which case it
- is treated as a guest login
-
- "MAP_TO_GUEST_ON_BAD_PASSWORD" means session setups with an invalid password
- are treated as a guest login
-
- Note that map_to_guest only has an effect in user or server
- level security.
-*/
-
-#define NEVER_MAP_TO_GUEST 0
-#define MAP_TO_GUEST_ON_BAD_USER 1
-#define MAP_TO_GUEST_ON_BAD_PASSWORD 2
-#define MAP_TO_GUEST_ON_BAD_UID 3
-
#define SAFE_NETBIOS_CHARS ". -_"
/* The maximum length of a trust account password.
/* Prefix for xattrs storing streams. */
#define SAMBA_XATTR_MARKER "user.SAMBA_STREAMS"
-/* map readonly options */
-enum mapreadonly_options {MAP_READONLY_NO, MAP_READONLY_YES, MAP_READONLY_PERMISSIONS};
-
/* usershare error codes. */
enum usershare_err {
USERSHARE_OK=0,
char samba_version_string[SAMBA_EXTENDED_INFO_VERSION_STRING_LENGTH];
};
-/* Used inside aio code. */
-struct aio_extra;
-
/*
* Reasons for cache flush.
*/