The branch, master has been updated via 02729863 selftest: Remove unsued variables WINBINDD_PRIV_PIPE_DIR and wbsockprivdir via bd8d955 param: Remove winbindd privileged socket directory option via a551d38 lib/util: Avoid a talloc in ms_fnmatch_protocol via b4ed72a s3/lib: Use ms_fnmatch_protocol in mask_match via f969be5 lib: Add "is_case_sensitive" to ms_fnmatch_protocol via 07d9a90 lib/util/charset: Optimize next_codepoint for the ascii case via 66cba99 s3/locking: Avoid a talloc for nonexisting fetch_share_mode_unlocked via 27daed8 smbd: Streamline get_ea_names_from_file via f827650 smbd: Fix an indentation via c687924 smbd: Fix a few signed/unsigned hickups via 1395823 lib: Avoid a "includes.h" via 6faf30b smbd: Fix a typo via 9bed3e3 lib: Avoid an includes.h via 9af73f6 lib: Add lib/util/server_id.h from 5059c8e vfs_default: unlock the right file in copy chunk
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 0272986377aecf06f00b7730379fd32b7066dc91 Author: Andrew Bartlett <abart...@samba.org> Date: Wed Jan 4 07:58:15 2017 +1300 selftest: Remove unsued variables WINBINDD_PRIV_PIPE_DIR and wbsockprivdir I can not find anything that uses these in the testsuite Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> Autobuild-User(master): Ralph Böhme <s...@samba.org> Autobuild-Date(master): Sun Jan 22 22:15:01 CET 2017 on sn-devel-144 commit bd8d9559bf8e6cdbf080902bc2460dbc12848054 Author: Andrew Bartlett <abart...@samba.org> Date: Tue Jan 3 20:46:59 2017 +1300 param: Remove winbindd privileged socket directory option This option is unused and has not been used since before Samba 4.3 when the source4/ winbindd code went away. The associated dynconfig parameters used for the default are also removed. BUG: https://bugzilla.samba.org/show_bug.cgi?id=10066 Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit a551d3826d885f22eed33aac56df697f32f854d4 Author: Volker Lendecke <v...@samba.org> Date: Tue Oct 25 12:46:00 2016 +0200 lib/util: Avoid a talloc in ms_fnmatch_protocol Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit b4ed72a2d3b08128ee03202512914cfbe21b6c91 Author: Volker Lendecke <v...@samba.org> Date: Tue Oct 25 12:28:44 2016 +0200 s3/lib: Use ms_fnmatch_protocol in mask_match This avoids the talloc/free through push_ucs2_talloc Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit f969be54417a0d4d2bab0f854ce1c9f9d4639711 Author: Volker Lendecke <v...@samba.org> Date: Tue Oct 25 11:53:53 2016 +0200 lib: Add "is_case_sensitive" to ms_fnmatch_protocol Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 07d9a909ba6853fb0b96f6d86e4cf0d5d1b35b28 Author: Volker Lendecke <v...@samba.org> Date: Tue Oct 25 12:28:12 2016 +0200 lib/util/charset: Optimize next_codepoint for the ascii case Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 66cba9939b76fbfad91a6fe7156feb898b51b2ad Author: Volker Lendecke <v...@samba.org> Date: Mon Oct 24 17:32:17 2016 +0200 s3/locking: Avoid a talloc for nonexisting fetch_share_mode_unlocked Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 27daed8fcf95eed2df112dc1c30c3a40b5c9565b Author: Volker Lendecke <v...@samba.org> Date: Thu Oct 20 16:33:55 2016 +0200 smbd: Streamline get_ea_names_from_file Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit f827650c65e36526abe9d87a52966fec5be1a2dd Author: Volker Lendecke <v...@samba.org> Date: Wed Oct 26 12:20:39 2016 +0200 smbd: Fix an indentation Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit c687924eed221b800bb29a7a3e00393b0e7876a4 Author: Volker Lendecke <v...@samba.org> Date: Wed Oct 26 12:56:53 2016 +0200 smbd: Fix a few signed/unsigned hickups Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 13958236a983531fc04a7143daf32b11745f813f Author: Volker Lendecke <v...@samba.org> Date: Tue Oct 25 15:42:28 2016 +0200 lib: Avoid a "includes.h" Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 6faf30b31cc7394360a6d3dafbf6a1f16842f6ad Author: Volker Lendecke <v...@samba.org> Date: Thu Oct 20 16:48:12 2016 +0200 smbd: Fix a typo Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 9bed3e3043a8a96c69669a6733c86ba63037a022 Author: Volker Lendecke <v...@samba.org> Date: Sun Jan 1 20:05:12 2017 +0000 lib: Avoid an includes.h Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 9af73f62ce87cb5d1e050a58a581dee3d790d848 Author: Volker Lendecke <v...@samba.org> Date: Sun Jan 1 20:00:55 2017 +0000 lib: Add lib/util/server_id.h Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> ----------------------------------------------------------------------- Summary of changes: docs-xml/smbdotconf/generate-file-list.sh | 1 - .../winbind/winbinddprivilegedsocketdirectory.xml | 14 ---- .../smbdotconf/winbind/winbinddsocketdirectory.xml | 2 - dynconfig/dynconfig.c | 1 - dynconfig/dynconfig.h | 1 - dynconfig/wscript | 5 -- lib/param/loadparm.c | 1 - lib/util/charset/codepoints.c | 4 + lib/util/debug_s3.c | 1 + lib/util/ms_fnmatch.c | 39 +++++---- lib/util/samba_util.h | 33 +------- lib/util/server_id.c | 6 +- lib/util/server_id.h | 56 +++++++++++++ lib/util/server_id_db.c | 1 + selftest/selftest.pl | 1 - selftest/target/Samba3.pm | 2 - selftest/target/Samba4.pm | 2 - source3/lib/dbwrap/dbwrap_watch.c | 1 + source3/lib/g_lock.c | 1 + source3/lib/messages.c | 1 + source3/lib/messages_ctdbd.c | 1 + source3/lib/messages_util.c | 1 + source3/lib/ms_fnmatch.c | 2 +- source3/lib/server_id_db_util.c | 1 + source3/lib/serverid.c | 1 + source3/lib/tevent_barrier.c | 2 +- source3/lib/util.c | 3 +- source3/locking/brlock.c | 1 + source3/locking/locking.c | 1 + source3/locking/posix.c | 1 + source3/locking/share_mode_lock.c | 33 ++++---- source3/param/loadparm.c | 4 - source3/rpc_server/srvsvc/srv_srvsvc_nt.c | 1 + source3/smbd/close.c | 1 + source3/smbd/durable.c | 1 + source3/smbd/notify_msg.c | 1 + source3/smbd/notifyd/notifyd.c | 1 + source3/smbd/open.c | 1 + source3/smbd/oplock.c | 1 + source3/smbd/posix_acls.c | 18 ++-- source3/smbd/scavenger.c | 2 +- source3/smbd/server.c | 1 + source3/smbd/sesssetup.c | 1 + source3/smbd/smbXsrv_client.c | 1 + source3/smbd/smbXsrv_open.c | 1 + source3/smbd/smbXsrv_session.c | 1 + source3/smbd/smbXsrv_tcon.c | 1 + source3/smbd/trans2.c | 96 ++++++++++++---------- source3/torture/msg_sink.c | 1 + source3/torture/msg_source.c | 1 + source3/utils/net_g_lock.c | 1 + source3/utils/net_notify.c | 1 + source3/utils/net_serverid.c | 1 + source3/utils/net_status.c | 1 + source3/utils/smbcontrol.c | 1 + source3/utils/status.c | 1 + source4/client/client.c | 8 +- source4/dsdb/samdb/ldb_modules/ridalloc.c | 1 + source4/lib/messaging/messaging.c | 1 + source4/ntvfs/cifs_posix_cli/svfs_util.c | 3 +- source4/ntvfs/posix/pvfs_dirlist.c | 12 ++- source4/ntvfs/simple/svfs_util.c | 3 +- source4/scripting/devel/config_base | 1 - source4/smb_server/smb/receive.c | 1 + source4/smbd/server.c | 1 - source4/smbd/service_stream.c | 1 + source4/torture/masktest.c | 3 +- 67 files changed, 233 insertions(+), 163 deletions(-) delete mode 100644 docs-xml/smbdotconf/winbind/winbinddprivilegedsocketdirectory.xml create mode 100644 lib/util/server_id.h Changeset truncated at 500 lines: diff --git a/docs-xml/smbdotconf/generate-file-list.sh b/docs-xml/smbdotconf/generate-file-list.sh index 6125908..9cfcd42 100755 --- a/docs-xml/smbdotconf/generate-file-list.sh +++ b/docs-xml/smbdotconf/generate-file-list.sh @@ -13,7 +13,6 @@ echo "<!DOCTYPE section [ <!ENTITY pathconfig.PRIVATE_DIR '\${prefix}/private'> <!ENTITY pathconfig.SMB_PASSWD_FILE '\${prefix}/private/smbpasswd'> <!ENTITY pathconfig.WINBINDD_SOCKET_DIR '\${prefix}/var/run/winbindd'> -<!ENTITY pathconfig.WINBINDD_PRIVILEGED_SOCKET_DIR '\${prefix}/var/lib/winbindd_privileged'> <!ENTITY pathconfig.CACHEDIR '\${prefix}/var/cache'> <!ENTITY pathconfig.NTP_SIGND_SOCKET_DIR '\${prefix}/var/lib/ntp_signd'> ]>" diff --git a/docs-xml/smbdotconf/winbind/winbinddprivilegedsocketdirectory.xml b/docs-xml/smbdotconf/winbind/winbinddprivilegedsocketdirectory.xml deleted file mode 100644 index e8be177..0000000 --- a/docs-xml/smbdotconf/winbind/winbinddprivilegedsocketdirectory.xml +++ /dev/null @@ -1,14 +0,0 @@ -<samba:parameter name="winbindd privileged socket directory" - context="G" - type="string" - constant="1" - xmlns:samba="http://www.samba.org/samba/DTD/samba-doc"> -<description> - <para>This setting controls the location of the winbind daemon's privileged - socket.</para> -</description> - -<related>winbindd socket directory</related> - -<value type="default">&pathconfig.WINBINDD_PRIVILEGED_SOCKET_DIR;</value> -</samba:parameter> diff --git a/docs-xml/smbdotconf/winbind/winbinddsocketdirectory.xml b/docs-xml/smbdotconf/winbind/winbinddsocketdirectory.xml index 9b20fbe..e88cc2a 100644 --- a/docs-xml/smbdotconf/winbind/winbinddsocketdirectory.xml +++ b/docs-xml/smbdotconf/winbind/winbinddsocketdirectory.xml @@ -12,7 +12,5 @@ varaible.</para> </description> -<related>winbindd privileged socket directory</related> - <value type="default">&pathconfig.WINBINDD_SOCKET_DIR;</value> </samba:parameter> diff --git a/dynconfig/dynconfig.c b/dynconfig/dynconfig.c index 9614152..e75d7db 100644 --- a/dynconfig/dynconfig.c +++ b/dynconfig/dynconfig.c @@ -100,7 +100,6 @@ DEFINE_DYN_CONFIG_PARAM(NMBDSOCKETDIR) DEFINE_DYN_CONFIG_PARAM(DATADIR) DEFINE_DYN_CONFIG_PARAM(SETUPDIR) DEFINE_DYN_CONFIG_PARAM(WINBINDD_SOCKET_DIR) /* from winbind_struct_protocol.h in s3 autoconf */ -DEFINE_DYN_CONFIG_PARAM(WINBINDD_PRIVILEGED_SOCKET_DIR) DEFINE_DYN_CONFIG_PARAM(NTP_SIGND_SOCKET_DIR) DEFINE_DYN_CONFIG_PARAM(PYTHONDIR) DEFINE_DYN_CONFIG_PARAM(PYTHONARCHDIR) diff --git a/dynconfig/dynconfig.h b/dynconfig/dynconfig.h index 2a45f1f..4d07c10 100644 --- a/dynconfig/dynconfig.h +++ b/dynconfig/dynconfig.h @@ -51,7 +51,6 @@ DEFINE_DYN_CONFIG_PROTO(NMBDSOCKETDIR) DEFINE_DYN_CONFIG_PROTO(DATADIR) DEFINE_DYN_CONFIG_PROTO(SETUPDIR) DEFINE_DYN_CONFIG_PROTO(WINBINDD_SOCKET_DIR) -DEFINE_DYN_CONFIG_PROTO(WINBINDD_PRIVILEGED_SOCKET_DIR) DEFINE_DYN_CONFIG_PROTO(NTP_SIGND_SOCKET_DIR) DEFINE_DYN_CONFIG_PROTO(PYTHONDIR) DEFINE_DYN_CONFIG_PROTO(PYTHONARCHDIR) diff --git a/dynconfig/wscript b/dynconfig/wscript index 2d17e7c..4eaa4c0 100644 --- a/dynconfig/wscript +++ b/dynconfig/wscript @@ -221,11 +221,6 @@ dynconfig = { 'FHS-PATH': '${SOCKET_DIR}/winbindd', 'DELAY': True, }, - 'WINBINDD_PRIVILEGED_SOCKET_DIR' : { - 'STD-PATH': '${PRIVILEGED_SOCKET_DIR}/winbindd_privileged', - 'FHS-PATH': '${PRIVILEGED_SOCKET_DIR}/winbindd_privileged', - 'DELAY': True, - }, 'NMBDSOCKETDIR' : { 'STD-PATH': '${SOCKET_DIR}/nmbd', 'FHS-PATH': '${SOCKET_DIR}/nmbd', diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c index 6aa757f..a056101 100644 --- a/lib/param/loadparm.c +++ b/lib/param/loadparm.c @@ -2648,7 +2648,6 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx) lpcfg_do_global_parameter(lp_ctx, "winbind sealed pipes", "True"); lpcfg_do_global_parameter(lp_ctx, "require strong key", "True"); lpcfg_do_global_parameter(lp_ctx, "winbindd socket directory", dyn_WINBINDD_SOCKET_DIR); - lpcfg_do_global_parameter(lp_ctx, "winbindd privileged socket directory", dyn_WINBINDD_PRIVILEGED_SOCKET_DIR); lpcfg_do_global_parameter(lp_ctx, "ntp signd socket directory", dyn_NTP_SIGND_SOCKET_DIR); lpcfg_do_global_parameter_var(lp_ctx, "dns update command", "%s/samba_dnsupdate", dyn_SCRIPTSBINDIR); lpcfg_do_global_parameter_var(lp_ctx, "spn update command", "%s/samba_spnupdate", dyn_SCRIPTSBINDIR); diff --git a/lib/util/charset/codepoints.c b/lib/util/charset/codepoints.c index 3d444a6..2c9a9c4 100644 --- a/lib/util/charset/codepoints.c +++ b/lib/util/charset/codepoints.c @@ -16817,6 +16817,10 @@ _PUBLIC_ codepoint_t next_codepoint_ext(const char *str, size_t len, _PUBLIC_ codepoint_t next_codepoint(const char *str, size_t *size) { + if ((str[0] & 0x80) == 0) { + *size = 1; + return str[0]; + } return next_codepoint_handle(get_iconv_handle(), str, size); } diff --git a/lib/util/debug_s3.c b/lib/util/debug_s3.c index b05d422..99ba2e7 100644 --- a/lib/util/debug_s3.c +++ b/lib/util/debug_s3.c @@ -19,6 +19,7 @@ */ #include "includes.h" +#include "lib/util/server_id.h" #include "librpc/gen_ndr/messaging.h" #include "messages.h" #include "lib/util/memory.h" diff --git a/lib/util/ms_fnmatch.c b/lib/util/ms_fnmatch.c index ede9eff..c0f61ab 100644 --- a/lib/util/ms_fnmatch.c +++ b/lib/util/ms_fnmatch.c @@ -59,7 +59,8 @@ struct max_n { not contain a '.', otherwise it points at the last dot in 'n'. */ static int ms_fnmatch_core(const char *p, const char *n, - struct max_n *max_n, const char *ldot) + struct max_n *max_n, const char *ldot, + bool is_case_sensitive) { codepoint_t c, c2; int i; @@ -76,7 +77,7 @@ static int ms_fnmatch_core(const char *p, const char *n, } for (i=0; n[i]; i += size_n) { next_codepoint(n+i, &size_n); - if (ms_fnmatch_core(p, n+i, max_n+1, ldot) == 0) { + if (ms_fnmatch_core(p, n+i, max_n+1, ldot, is_case_sensitive) == 0) { return 0; } } @@ -95,9 +96,9 @@ static int ms_fnmatch_core(const char *p, const char *n, } for (i=0; n[i]; i += size_n) { next_codepoint(n+i, &size_n); - if (ms_fnmatch_core(p, n+i, max_n+1, ldot) == 0) return 0; + if (ms_fnmatch_core(p, n+i, max_n+1, ldot, is_case_sensitive) == 0) return 0; if (n+i == ldot) { - if (ms_fnmatch_core(p, n+i+size_n, max_n+1, ldot) == 0) return 0; + if (ms_fnmatch_core(p, n+i+size_n, max_n+1, ldot, is_case_sensitive) == 0) return 0; if (!max_n->postdot || max_n->postdot > n) max_n->postdot = n; return -1; } @@ -140,8 +141,13 @@ static int ms_fnmatch_core(const char *p, const char *n, default: c2 = next_codepoint(n, &size_n); - if (c != c2 && codepoint_cmpi(c, c2) != 0) { - return -1; + if (c != c2) { + if (is_case_sensitive) { + return -1; + } + if (codepoint_cmpi(c, c2) != 0) { + return -1; + } } n += size_n; break; @@ -155,10 +161,10 @@ static int ms_fnmatch_core(const char *p, const char *n, return -1; } -int ms_fnmatch_protocol(const char *pattern, const char *string, int protocol) +int ms_fnmatch_protocol(const char *pattern, const char *string, int protocol, + bool is_case_sensitive) { int ret, count, i; - struct max_n *max_n = NULL; if (strcmp(string, "..") == 0) { string = "."; @@ -193,7 +199,8 @@ int ms_fnmatch_protocol(const char *pattern, const char *string, int protocol) p[i] = '<'; } } - ret = ms_fnmatch_protocol(p, string, PROTOCOL_NT1); + ret = ms_fnmatch_protocol(p, string, PROTOCOL_NT1, + is_case_sensitive); talloc_free(p); return ret; } @@ -202,14 +209,14 @@ int ms_fnmatch_protocol(const char *pattern, const char *string, int protocol) if (pattern[i] == '*' || pattern[i] == '<') count++; } - max_n = talloc_zero_array(NULL, struct max_n, count); - if (max_n == NULL) { - return -1; - } + { + struct max_n max_n[count]; - ret = ms_fnmatch_core(pattern, string, max_n, strrchr(string, '.')); + memset(max_n, 0, sizeof(struct max_n) * count); - talloc_free(max_n); + ret = ms_fnmatch_core(pattern, string, max_n, strrchr(string, '.'), + is_case_sensitive); + } return ret; } @@ -218,5 +225,5 @@ int ms_fnmatch_protocol(const char *pattern, const char *string, int protocol) /** a generic fnmatch function - uses for non-CIFS pattern matching */ int gen_fnmatch(const char *pattern, const char *string) { - return ms_fnmatch_protocol(pattern, string, PROTOCOL_NT1); + return ms_fnmatch_protocol(pattern, string, PROTOCOL_NT1, false); } diff --git a/lib/util/samba_util.h b/lib/util/samba_util.h index c19e246..aad44dc 100644 --- a/lib/util/samba_util.h +++ b/lib/util/samba_util.h @@ -526,7 +526,8 @@ _PUBLIC_ int sys_fsusage(const char *path, uint64_t *dfree, uint64_t *dsize); * @brief MS-style Filename matching */ -int ms_fnmatch_protocol(const char *pattern, const char *string, int protocol); +int ms_fnmatch_protocol(const char *pattern, const char *string, int protocol, + bool is_case_sensitive); /** a generic fnmatch function - uses for non-CIFS pattern matching */ int gen_fnmatch(const char *pattern, const char *string); @@ -688,36 +689,6 @@ char *data_path(TALLOC_CTX *mem_ctx, const char *name); **/ const char *shlib_ext(void); -struct server_id; - -struct server_id_buf { char buf[48]; }; /* probably a bit too large ... */ -char *server_id_str_buf(struct server_id id, struct server_id_buf *dst); -size_t server_id_str_buf_unique(struct server_id id, char *buf, size_t buflen); - -bool server_id_same_process(const struct server_id *p1, - const struct server_id *p2); -bool server_id_equal(const struct server_id *p1, const struct server_id *p2); -struct server_id server_id_from_string(uint32_t local_vnn, - const char *pid_string); - -/** - * Set the serverid to the special value that represents a disconnected - * client for (e.g.) durable handles. - */ -void server_id_set_disconnected(struct server_id *id); - -/** - * check whether a serverid is the special placeholder for - * a disconnected client - */ -bool server_id_is_disconnected(const struct server_id *id); - -#define SERVER_ID_BUF_LENGTH 24 -void server_id_put(uint8_t buf[SERVER_ID_BUF_LENGTH], - const struct server_id id); -void server_id_get(struct server_id *id, - const uint8_t buf[SERVER_ID_BUF_LENGTH]); - /* * Samba code should use samba_tevent_context_init() instead of * tevent_context_init() in order to get the debug output. diff --git a/lib/util/server_id.c b/lib/util/server_id.c index 77c5ee1..2904e80 100644 --- a/lib/util/server_id.c +++ b/lib/util/server_id.c @@ -17,7 +17,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "includes.h" +#include "replace.h" +#include "lib/util/debug.h" +#include "lib/util/fault.h" +#include "lib/util/server_id.h" +#include "lib/util/byteorder.h" #include "librpc/gen_ndr/server_id.h" bool server_id_same_process(const struct server_id *p1, diff --git a/lib/util/server_id.h b/lib/util/server_id.h new file mode 100644 index 0000000..6dda86c --- /dev/null +++ b/lib/util/server_id.h @@ -0,0 +1,56 @@ +/* + Unix SMB/CIFS implementation. + Samba utility functions + Copyright (C) Andrew Bartlett 2011 + + 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 3 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, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef __LIB_UTIL_SERVER_ID_H__ +#define __LIB_UTIL_SERVER_ID_H__ + +#include "replace.h" + +struct server_id; + +struct server_id_buf { char buf[48]; }; /* probably a bit too large ... */ + +bool server_id_same_process(const struct server_id *p1, + const struct server_id *p2); +bool server_id_equal(const struct server_id *p1, const struct server_id *p2); +char *server_id_str_buf(struct server_id id, struct server_id_buf *dst); +size_t server_id_str_buf_unique(struct server_id id, char *buf, size_t buflen); + +struct server_id server_id_from_string(uint32_t local_vnn, + const char *pid_string); + +/** + * Set the serverid to the special value that represents a disconnected + * client for (e.g.) durable handles. + */ +void server_id_set_disconnected(struct server_id *id); + +/** + * check whether a serverid is the special placeholder for + * a disconnected client + */ +bool server_id_is_disconnected(const struct server_id *id); + +#define SERVER_ID_BUF_LENGTH 24 +void server_id_put(uint8_t buf[SERVER_ID_BUF_LENGTH], + const struct server_id id); +void server_id_get(struct server_id *id, + const uint8_t buf[SERVER_ID_BUF_LENGTH]); + +#endif diff --git a/lib/util/server_id_db.c b/lib/util/server_id_db.c index 1e65ce2..e0b8476 100644 --- a/lib/util/server_id_db.c +++ b/lib/util/server_id_db.c @@ -19,6 +19,7 @@ #include "replace.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "lib/util/server_id_db.h" #include "lib/tdb_wrap/tdb_wrap.h" #include "lib/util/strv.h" diff --git a/selftest/selftest.pl b/selftest/selftest.pl index e1c3429..14ac58f 100755 --- a/selftest/selftest.pl +++ b/selftest/selftest.pl @@ -839,7 +839,6 @@ my @exported_envvars = ( "KRB5_CONFIG", "KRB5CCNAME", "SELFTEST_WINBINDD_SOCKET_DIR", - "WINBINDD_PRIV_PIPE_DIR", "NMBD_SOCKET_DIR", "LOCAL_PATH", "DNS_FORWARDER1", diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 1d77c97..1ae270a 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -1239,7 +1239,6 @@ sub provision($$$$$$$$) # this gets autocreated by winbindd my $wbsockdir="$prefix_abs/winbindd"; - my $wbsockprivdir="$lockdir/winbindd_privileged"; my $nmbdsockdir="$prefix_abs/nmbd"; unlink($nmbdsockdir); @@ -1963,7 +1962,6 @@ force_user:x:$gid_force_user: $ret{PASSWORD} = $password; $ret{PIDDIR} = $piddir; $ret{SELFTEST_WINBINDD_SOCKET_DIR} = $wbsockdir; - $ret{WINBINDD_PRIV_PIPE_DIR} = $wbsockprivdir; $ret{NMBD_SOCKET_DIR} = $nmbdsockdir; $ret{SOCKET_WRAPPER_DEFAULT_IFACE} = $swiface; $ret{NSS_WRAPPER_PASSWD} = $nss_wrapper_passwd; diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm index 8855135..dacdab4 100755 --- a/selftest/target/Samba4.pm +++ b/selftest/target/Samba4.pm @@ -442,7 +442,6 @@ sub provision_raw_prepare($$$$$$$$$$$) $ctx->{statedir} = "$prefix_abs/statedir"; $ctx->{cachedir} = "$prefix_abs/cachedir"; $ctx->{winbindd_socket_dir} = "$prefix_abs/winbindd_socket"; - $ctx->{winbindd_privileged_socket_dir} = "$prefix_abs/winbindd_privileged_socket"; $ctx->{ntp_signd_socket_dir} = "$prefix_abs/ntp_signd_socket"; $ctx->{nsswrap_passwd} = "$ctx->{etcdir}/passwd"; $ctx->{nsswrap_group} = "$ctx->{etcdir}/group"; @@ -560,7 +559,6 @@ sub provision_raw_step1($$) state directory = $ctx->{statedir} cache directory = $ctx->{cachedir} winbindd socket directory = $ctx->{winbindd_socket_dir} - winbindd privileged socket directory = $ctx->{winbindd_privileged_socket_dir} ntp signd socket directory = $ctx->{ntp_signd_socket_dir} winbind separator = / interfaces = $ctx->{interfaces} diff --git a/source3/lib/dbwrap/dbwrap_watch.c b/source3/lib/dbwrap/dbwrap_watch.c index a44f6f1..842ab86 100644 --- a/source3/lib/dbwrap/dbwrap_watch.c +++ b/source3/lib/dbwrap/dbwrap_watch.c @@ -19,6 +19,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "dbwrap/dbwrap.h" #include "dbwrap_watch.h" #include "dbwrap_open.h" diff --git a/source3/lib/g_lock.c b/source3/lib/g_lock.c index f954978..1815796 100644 --- a/source3/lib/g_lock.c +++ b/source3/lib/g_lock.c @@ -19,6 +19,7 @@ #include "includes.h" #include "system/filesys.h" +#include "lib/util/server_id.h" #include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_open.h" #include "dbwrap/dbwrap_watch.h" diff --git a/source3/lib/messages.c b/source3/lib/messages.c index 533e869..d7ad49d 100644 --- a/source3/lib/messages.c +++ b/source3/lib/messages.c @@ -46,6 +46,7 @@ */ #include "includes.h" +#include "lib/util/server_id.h" #include "dbwrap/dbwrap.h" #include "serverid.h" #include "messages.h" diff --git a/source3/lib/messages_ctdbd.c b/source3/lib/messages_ctdbd.c index bee2685..a32a80d 100644 --- a/source3/lib/messages_ctdbd.c +++ b/source3/lib/messages_ctdbd.c @@ -18,6 +18,7 @@ */ #include "includes.h" +#include "lib/util/server_id.h" #include "messages.h" #include "util_tdb.h" #include "lib/util/iov_buf.h" diff --git a/source3/lib/messages_util.c b/source3/lib/messages_util.c index 7c11ecf..d712dfe 100644 --- a/source3/lib/messages_util.c +++ b/source3/lib/messages_util.c @@ -18,6 +18,7 @@ */ #include "replace.h" +#include "lib/util/server_id.h" #include "lib/util/samba_util.h" #include "librpc/gen_ndr/server_id.h" #include "lib/util/byteorder.h" diff --git a/source3/lib/ms_fnmatch.c b/source3/lib/ms_fnmatch.c index e32d094..9763afe 100644 --- a/source3/lib/ms_fnmatch.c +++ b/source3/lib/ms_fnmatch.c @@ -161,7 +161,7 @@ int ms_fnmatch(const char *pattern, const char *string, bool translate_pattern, } if (strpbrk(pattern, "<>*?\"") == NULL) { - /* this is not just an optmisation - it is essential + /* this is not just an optimisation - it is essential for LANMAN1 correctness */ if (is_case_sensitive) { return strcmp(pattern, string); diff --git a/source3/lib/server_id_db_util.c b/source3/lib/server_id_db_util.c index 6c6d8ed..e73af24 100644 --- a/source3/lib/server_id_db_util.c +++ b/source3/lib/server_id_db_util.c @@ -19,6 +19,7 @@ #include "replace.h" #include "server_id_db_util.h" -- Samba Shared Repository