summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorDerrell Lipman <derrell@samba.org>2006-09-03 02:10:24 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:39:48 -0500
commit315f4162111d210d0f65123c8c7fe7084a12121c (patch)
treee73633c908b99856adb9e423fbe2f5bb243e734e /source3/include
parent44c1504c032ffa0f0b9cc2333fa0e3a05a03bf48 (diff)
downloadsamba-315f4162111d210d0f65123c8c7fe7084a12121c.tar.gz
samba-315f4162111d210d0f65123c8c7fe7084a12121c.tar.bz2
samba-315f4162111d210d0f65123c8c7fe7084a12121c.zip
r18013: Fix for "bug" (enhancement) 3684.
Provide a new option to specify the share mode to be used when opening a file. (This used to be commit 9b6fee5f6f60638ed80fdedcce4b3d29b091f7aa)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/libsmb_internal.h6
-rw-r--r--source3/include/libsmbclient.h14
2 files changed, 20 insertions, 0 deletions
diff --git a/source3/include/libsmb_internal.h b/source3/include/libsmb_internal.h
index ce7a90747f..41f72d5fb3 100644
--- a/source3/include/libsmb_internal.h
+++ b/source3/include/libsmb_internal.h
@@ -90,6 +90,12 @@ struct smbc_internal_data {
BOOL _full_time_names;
/*
+ * The share mode of a file being opened. To match POSIX semantics
+ * (and maintain backward compatibility), DENY_NONE is the default.
+ */
+ smbc_share_mode _share_mode;
+
+ /*
* Authentication function which includes the context. This will be
* used if set; otherwise context->callbacks.auth_fn() will be used.
*/
diff --git a/source3/include/libsmbclient.h b/source3/include/libsmbclient.h
index 66a567a0d5..45f2a41b08 100644
--- a/source3/include/libsmbclient.h
+++ b/source3/include/libsmbclient.h
@@ -141,6 +141,20 @@ struct smbc_dirent
#define SMBC_DOS_MODE_DIRECTORY 0x10
#define SMBC_DOS_MODE_ARCHIVE 0x20
+/*
+ * Valid values for the option "open_share_mode", when calling
+ * smbc_option_set()
+ */
+typedef enum smbc_share_mode
+{
+ SMBC_SHAREMODE_DENY_DOS = 0,
+ SMBC_SHAREMODE_DENY_ALL = 1,
+ SMBC_SHAREMODE_DENY_WRITE = 2,
+ SMBC_SHAREMODE_DENY_READ = 3,
+ SMBC_SHAREMODE_DENY_NONE = 4,
+ SMBC_SHAREMODE_DENY_FCB = 7
+} smbc_share_mode;
+
#ifndef ENOATTR
# define ENOATTR ENOENT /* No such attribute */