svn commit: samba r15049 - in branches/SAMBA_4_0/source: lib/messaging torture/local
Author: tridge Date: 2006-04-12 06:08:24 + (Wed, 12 Apr 2006) New Revision: 15049 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15049 Log: for really efficient oplock handling with thousands of open files we will need a separate messaging endpoint per open file. To make this efficient extend the messaging layer to have a new registration function for temporary message types that maps via an idtree. I have updated the LOCAL-MESSAGING test to use the new function. Modified: branches/SAMBA_4_0/source/lib/messaging/irpc.h branches/SAMBA_4_0/source/lib/messaging/messaging.c branches/SAMBA_4_0/source/lib/messaging/messaging.h branches/SAMBA_4_0/source/torture/local/messaging.c Changeset: Modified: branches/SAMBA_4_0/source/lib/messaging/irpc.h === --- branches/SAMBA_4_0/source/lib/messaging/irpc.h 2006-04-12 04:42:40 UTC (rev 15048) +++ branches/SAMBA_4_0/source/lib/messaging/irpc.h 2006-04-12 06:08:24 UTC (rev 15049) @@ -76,14 +76,18 @@ } async; }; +typedef void (*msg_callback_t)(struct messaging_context *msg, void *private, + uint32_t msg_type, uint32_t server_id, DATA_BLOB *data); struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx, uint32_t server_id, struct event_context *ev); NTSTATUS messaging_send(struct messaging_context *msg, uint32_t server, uint32_t msg_type, DATA_BLOB *data); -void messaging_register(struct messaging_context *msg, void *private, - uint32_t msg_type, - void (*fn)(struct messaging_context *, void *, uint32_t, uint32_t, DATA_BLOB *)); +NTSTATUS messaging_register(struct messaging_context *msg, void *private, + uint32_t msg_type, + msg_callback_t fn); +NTSTATUS messaging_register_tmp(struct messaging_context *msg, void *private, + msg_callback_t fn, uint32_t *msg_type); struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx, uint32_t server_id, struct event_context *ev); struct messaging_context *messaging_client_init(TALLOC_CTX *mem_ctx, Modified: branches/SAMBA_4_0/source/lib/messaging/messaging.c === --- branches/SAMBA_4_0/source/lib/messaging/messaging.c 2006-04-12 04:42:40 UTC (rev 15048) +++ branches/SAMBA_4_0/source/lib/messaging/messaging.c 2006-04-12 06:08:24 UTC (rev 15049) @@ -41,7 +41,9 @@ struct socket_context *sock; const char *base_path; const char *path; - struct dispatch_fn *dispatch; + struct dispatch_fn **dispatch; + uint32_t num_types; + struct idr_context *dispatch_tree; struct messaging_rec *pending; struct irpc_list *irpc; struct idr_context *idr; @@ -54,14 +56,13 @@ } event; }; -/* we have a linked list of dispatch handlers that this messaging - server can deal with */ +/* we have a linked list of dispatch handlers for each msg_type that + this messaging server can deal with */ struct dispatch_fn { struct dispatch_fn *next, *prev; uint32_t msg_type; void *private; - void (*fn)(struct messaging_context *msg, void *private, - uint32_t msg_type, uint32_t server_id, DATA_BLOB *data); + msg_callback_t fn; }; /* an individual message */ @@ -127,14 +128,22 @@ static void messaging_dispatch(struct messaging_context *msg, struct messaging_rec *rec) { struct dispatch_fn *d, *next; - for (d=msg-dispatch;d;d=next) { + + /* temporary IDs use an idtree, the rest use a array of pointers */ + if (rec-header-msg_type = MSG_TMP_BASE) { + d = idr_find(msg-dispatch_tree, rec-header-msg_type); + } else if (rec-header-msg_type msg-num_types) { + d = msg-dispatch[rec-header-msg_type]; + } else { + d = NULL; + } + + for (; d; d = next) { + DATA_BLOB data; next = d-next; - if (d-msg_type == rec-header-msg_type) { - DATA_BLOB data; - data.data = rec-packet.data + sizeof(*rec-header); - data.length = rec-header-length; - d-fn(msg, d-private, d-msg_type, rec-header-from, data); - } + data.data = rec-packet.data + sizeof(*rec-header); + data.length = rec-header-length; + d-fn(msg, d-private, d-msg_type, rec-header-from, data); } rec-header-length = 0; } @@ -272,34 +281,96 @@ /* Register a dispatch function for a particular message type. */ -void messaging_register(struct messaging_context *msg, void *private, - uint32_t msg_type, -
svn commit: samba r15050 - in branches/SAMBA_4_0/source/lib/messaging: .
Author: tridge Date: 2006-04-12 09:38:07 + (Wed, 12 Apr 2006) New Revision: 15050 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15050 Log: fixed a double free in the new messaging code. Modified: branches/SAMBA_4_0/source/lib/messaging/messaging.c Changeset: Modified: branches/SAMBA_4_0/source/lib/messaging/messaging.c === --- branches/SAMBA_4_0/source/lib/messaging/messaging.c 2006-04-12 06:08:24 UTC (rev 15049) +++ branches/SAMBA_4_0/source/lib/messaging/messaging.c 2006-04-12 09:38:07 UTC (rev 15050) @@ -364,12 +364,12 @@ } /* the list base possibly changed */ - if (list == NULL) { - if (msg_type = msg-num_types) { + if (msg_type = msg-num_types) { + if (list == NULL) { idr_remove(msg-dispatch_tree, msg_type); - } else { - msg-dispatch[msg_type] = NULL; } + } else { + msg-dispatch[msg_type] = list; } }
svn commit: samba r15051 - in branches/SAMBA_4_0/source/heimdal_build: .
Author: ab Date: 2006-04-12 12:28:22 + (Wed, 12 Apr 2006) New Revision: 15051 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15051 Log: Remove directory creation from this rule; we use script/buildtree.pl for external build dir instead Modified: branches/SAMBA_4_0/source/heimdal_build/config.mk Changeset: Modified: branches/SAMBA_4_0/source/heimdal_build/config.mk === --- branches/SAMBA_4_0/source/heimdal_build/config.mk 2006-04-12 09:38:07 UTC (rev 15050) +++ branches/SAMBA_4_0/source/heimdal_build/config.mk 2006-04-12 12:28:22 UTC (rev 15051) @@ -434,7 +434,6 @@ .SUFFIXES: .hin .hin.h: - @mkdir -p $(dir $@) @cp $ $@ $(patsubst heimdal/lib/des/%.h,heimdal/lib/des/hcrypto/%.h,$(wildcard heimdal/lib/des/*.h)): heimdal/lib/des/hcrypto
svn commit: samba r15052 - in branches/SAMBA_4_0/source/build/smb_build: .
Author: ab Date: 2006-04-12 13:02:56 + (Wed, 12 Apr 2006) New Revision: 15052 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15052 Log: Do not add builddir variants into include paths when building in-tree Modified: branches/SAMBA_4_0/source/build/smb_build/makefile.pm Changeset: Modified: branches/SAMBA_4_0/source/build/smb_build/makefile.pm === --- branches/SAMBA_4_0/source/build/smb_build/makefile.pm 2006-04-12 12:28:22 UTC (rev 15051) +++ branches/SAMBA_4_0/source/build/smb_build/makefile.pm 2006-04-12 13:02:56 UTC (rev 15052) @@ -10,6 +10,7 @@ use strict; use base 'smb_build::env'; +use Cwd 'abs_path'; sub new($$$) { @@ -103,6 +104,7 @@ my $devld_local = ; my $devld_install = ; + my $builddir_headers = ; $self-{duplicate_build} = 0; if ($self-{config}-{LIBRARY_OUTPUT_TYPE} eq SHARED_LIBRARY) { @@ -112,6 +114,10 @@ } $devld_install = -Wl,-rpath-link,\$(builddir)/bin; } + + if (!(abs_path($self-{config}-{srcdir}) eq abs_path($self-{config}-{builddir}))) { + $builddir_headers= -I\$(builddir)/include -I\$(builddir) -I\$(builddir)/lib ; + } $self-output( __EOD__ SHELL=$self-{config}-{SHELL} @@ -122,7 +128,7 @@ CPPFLAGS=$self-{config}-{CPPFLAGS} CC=$self-{config}-{CC} -CFLAGS=-I\$(builddir)/include -I\$(builddir) -I\$(builddir)/lib -I\$(srcdir)/include -I\$(srcdir) -I\$(srcdir)/lib -D_SAMBA_BUILD_ -DHAVE_CONFIG_H $self-{config}-{CFLAGS} \$(CPPFLAGS) +CFLAGS=$builddir_headers-I\$(srcdir)/include -I\$(srcdir) -I\$(srcdir)/lib -D_SAMBA_BUILD_ -DHAVE_CONFIG_H $self-{config}-{CFLAGS} \$(CPPFLAGS) PICFLAG=$self-{config}-{PICFLAG} HOSTCC=$self-{config}-{HOSTCC}
svn commit: samba r15053 - in branches/SAMBA_3_0/source: . auth include nsswitch utils
Author: jerry Date: 2006-04-12 14:10:39 + (Wed, 12 Apr 2006) New Revision: 15053 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15053 Log: fix portabilities issues between 32-bit winbind clients and a 64-bit winbindd server Modified: branches/SAMBA_3_0/source/auth/auth_winbind.c branches/SAMBA_3_0/source/configure.in branches/SAMBA_3_0/source/include/includes.h branches/SAMBA_3_0/source/nsswitch/wb_client.c branches/SAMBA_3_0/source/nsswitch/wb_common.c branches/SAMBA_3_0/source/nsswitch/wbinfo.c branches/SAMBA_3_0/source/nsswitch/winbind_nss_aix.c branches/SAMBA_3_0/source/nsswitch/winbind_nss_config.h branches/SAMBA_3_0/source/nsswitch/winbind_nss_irix.c branches/SAMBA_3_0/source/nsswitch/winbind_nss_linux.c branches/SAMBA_3_0/source/nsswitch/winbindd.c branches/SAMBA_3_0/source/nsswitch/winbindd_async.c branches/SAMBA_3_0/source/nsswitch/winbindd_cache.c branches/SAMBA_3_0/source/nsswitch/winbindd_dual.c branches/SAMBA_3_0/source/nsswitch/winbindd_group.c branches/SAMBA_3_0/source/nsswitch/winbindd_misc.c branches/SAMBA_3_0/source/nsswitch/winbindd_nss.h branches/SAMBA_3_0/source/nsswitch/winbindd_pam.c branches/SAMBA_3_0/source/nsswitch/winbindd_user.c branches/SAMBA_3_0/source/nsswitch/winbindd_util.c branches/SAMBA_3_0/source/utils/net_rpc.c branches/SAMBA_3_0/source/utils/ntlm_auth.c Changeset: Sorry, the patch is too large (1129 lines) to include; please use WebSVN to see it! WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15053
svn commit: samba r15054 - in trunk/source: . auth include nsswitch utils
Author: jerry Date: 2006-04-12 14:11:51 + (Wed, 12 Apr 2006) New Revision: 15054 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15054 Log: port fix to trunk - fix portabilities issues between 32-bit winbind clients and a 64-bit winbindd server Modified: trunk/source/auth/auth_winbind.c trunk/source/configure.in trunk/source/include/includes.h trunk/source/nsswitch/wb_client.c trunk/source/nsswitch/wb_common.c trunk/source/nsswitch/wbinfo.c trunk/source/nsswitch/winbind_nss_aix.c trunk/source/nsswitch/winbind_nss_config.h trunk/source/nsswitch/winbind_nss_irix.c trunk/source/nsswitch/winbind_nss_linux.c trunk/source/nsswitch/winbindd.c trunk/source/nsswitch/winbindd_async.c trunk/source/nsswitch/winbindd_cache.c trunk/source/nsswitch/winbindd_dual.c trunk/source/nsswitch/winbindd_group.c trunk/source/nsswitch/winbindd_misc.c trunk/source/nsswitch/winbindd_nss.h trunk/source/nsswitch/winbindd_pam.c trunk/source/nsswitch/winbindd_user.c trunk/source/nsswitch/winbindd_util.c trunk/source/utils/net_rpc.c trunk/source/utils/ntlm_auth.c Changeset: Sorry, the patch is too large (1205 lines) to include; please use WebSVN to see it! WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15054
svn commit: samba r15055 - in branches/SAMBA_4_0/source/lib/messaging: .
Author: metze Date: 2006-04-12 15:52:17 + (Wed, 12 Apr 2006) New Revision: 15055 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15055 Log: this was my version for the crash bug in the messaging code... it also makes the function a bit shorter and clearer, as the tmp msg_types only have one handler and not a list metze Modified: branches/SAMBA_4_0/source/lib/messaging/messaging.c Changeset: Modified: branches/SAMBA_4_0/source/lib/messaging/messaging.c === --- branches/SAMBA_4_0/source/lib/messaging/messaging.c 2006-04-12 14:11:51 UTC (rev 15054) +++ branches/SAMBA_4_0/source/lib/messaging/messaging.c 2006-04-12 15:52:17 UTC (rev 15055) @@ -299,8 +299,7 @@ msg-num_types = msg_type+1; } - - d = talloc(msg-dispatch, struct dispatch_fn); + d = talloc_zero(msg-dispatch, struct dispatch_fn); NT_STATUS_HAVE_NO_MEMORY(d); d-msg_type = msg_type; d-private = private; @@ -343,37 +342,25 @@ */ void messaging_deregister(struct messaging_context *msg, uint32_t msg_type, void *private) { - struct dispatch_fn *d, *list, *next; + struct dispatch_fn *d, *next; if (msg_type = msg-num_types) { - list = idr_find(msg-dispatch_tree, msg_type); - } else { - list = msg-dispatch[msg_type]; - } - - if (list == NULL) { + d = idr_find(msg-dispatch_tree, msg_type); + if (!d) return; + idr_remove(msg-dispatch_tree, msg_type); + talloc_free(d); return; } - for (d = list; d; d = next) { + for (d = msg-dispatch[msg_type]; d; d = next) { next = d-next; if (d-private == private) { - DLIST_REMOVE(list, d); + DLIST_REMOVE(msg-dispatch[msg_type], d); talloc_free(d); } - } - - /* the list base possibly changed */ - if (msg_type = msg-num_types) { - if (list == NULL) { - idr_remove(msg-dispatch_tree, msg_type); - } - } else { - msg-dispatch[msg_type] = list; } } - /* Send a message to a particular server */
svn commit: samba r15056 - in branches/SAMBA_4_0/source/ntvfs/posix: .
Author: metze Date: 2006-04-12 16:19:42 + (Wed, 12 Apr 2006) New Revision: 15056 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15056 Log: w2k3 gives NT_STATUS_ACCESS_DENIED instead of NT_STATUS_ACCESS_VIOLATION metze Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_write.c Changeset: Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_write.c === --- branches/SAMBA_4_0/source/ntvfs/posix/pvfs_write.c 2006-04-12 15:52:17 UTC (rev 15055) +++ branches/SAMBA_4_0/source/ntvfs/posix/pvfs_write.c 2006-04-12 16:19:42 UTC (rev 15056) @@ -50,16 +50,14 @@ } if (!(f-access_mask (SEC_FILE_WRITE_DATA | SEC_FILE_APPEND_DATA))) { - return NT_STATUS_ACCESS_VIOLATION; + return NT_STATUS_ACCESS_DENIED; } status = pvfs_check_lock(pvfs, f, req-smbpid, wr-writex.in.offset, wr-writex.in.count, WRITE_LOCK); - if (!NT_STATUS_IS_OK(status)) { - return status; - } + NT_STATUS_NOT_OK_RETURN(status); if (f-handle-name-stream_name) { ret = pvfs_stream_write(pvfs,
svn commit: samba-web r953 - in trunk/history: .
Author: deryck Date: 2006-04-12 16:26:08 + (Wed, 12 Apr 2006) New Revision: 953 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=samba-webrev=953 Log: Fix release notes links for Jerry: Get the file link right and drop the .html from the display name. deryck Modified: trunk/history/header_history.html Changeset: Modified: trunk/history/header_history.html === --- trunk/history/header_history.html 2006-04-06 17:37:53 UTC (rev 952) +++ trunk/history/header_history.html 2006-04-12 16:26:08 UTC (rev 953) @@ -77,71 +77,71 @@ div class=notes h6Release Notes/h6 ul -lia href=samba-3.0.22samba-3.0.22.html/a/li -lia href=samba-3.0.21csamba-3.0.21c.html/a/li -lia href=samba-3.0.21bsamba-3.0.21b.html/a/li -lia href=samba-3.0.21asamba-3.0.21a.html/a/li -lia href=samba-3.0.21samba-3.0.21.html/a/li -lia href=samba-3.0.20bsamba-3.0.20b.html/a/li -lia href=samba-3.0.20asamba-3.0.20a.html/a/li -lia href=samba-3.0.20samba-3.0.20.html/a/li -lia href=samba-3.0.14asamba-3.0.14a.html/a/li -lia href=samba-3.0.13samba-3.0.13.html/a/li -lia href=samba-3.0.12samba-3.0.12.html/a/li -lia href=samba-3.0.11samba-3.0.11.html/a/li -lia href=samba-3.0.10samba-3.0.10.html/a/li -lia href=samba-3.0.9samba-3.0.9.html/a/li -lia href=samba-3.0.8samba-3.0.8.html/a/li -lia href=samba-3.0.7samba-3.0.7.html/a/li -lia href=samba-3.0.6samba-3.0.6.html/a/li -lia href=samba-3.0.5samba-3.0.5.html/a/li -lia href=samba-3.0.4samba-3.0.4.html/a/li -lia href=samba-3.0.3samba-3.0.3.html/a/li -lia href=samba-3.0.2asamba-3.0.2a.html/a/li -lia href=samba-3.0.2samba-3.0.2.html/a/li -lia href=samba-3.0.1samba-3.0.1.html/a/li -lia href=samba-3.0.0samba-3.0.0.html/a/li -lia href=samba-2.2.12samba-2.2.12.html/a/li -lia href=samba-2.2.11samba-2.2.11.html/a/li -lia href=samba-2.2.10samba-2.2.10.html/a/li -lia href=samba-2.2.9samba-2.2.9.html/a/li -lia href=samba-2.2.8asamba-2.2.8a.html/a/li -lia href=samba-2.2.8samba-2.2.8.html/a/li -lia href=samba-2.2.7asamba-2.2.7a.html/a/li -lia href=samba-2.2.7samba-2.2.7.html/a/li -lia href=samba-2.2.6samba-2.2.6.html/a/li -lia href=samba-2.2.5samba-2.2.5.html/a/li -lia href=samba-2.2.4samba-2.2.4.html/a/li -lia href=samba-2.2.3asamba-2.2.3a.html/a/li -lia href=samba-2.2.3samba-2.2.3.html/a/li -lia href=samba-2.2.2samba-2.2.2.html/a/li -lia href=samba-2.2.1samba-2.2.1.html/a/li -lia href=samba-2.2.0samba-2.2.0.html/a/li -lia href=samba-2.0.7samba-2.0.7.html/a/li -lia href=samba-2.0.6samba-2.0.6.html/a/li -lia href=samba-2.0.5asamba-2.0.5a.html/a/li -lia href=samba-2.0.5samba-2.0.5.html/a/li -lia href=samba-2.0.4samba-2.0.4.html/a/li -lia href=samba-2.0.3samba-2.0.3.html/a/li -lia href=samba-2.0.2samba-2.0.2.html/a/li -lia href=samba-2.0.1samba-2.0.1.html/a/li -lia href=samba-2.0.0samba-2.0.0.html/a/li -lia href=samba1.9.18p10samba1.9.18p10.html/a/li -lia href=samba1.9.18p8samba1.9.18p8.html/a/li -lia href=samba1.9.18p7samba1.9.18p7.html/a/li -lia href=samba1.9.18p6samba1.9.18p6.html/a/li -lia href=samba1.9.18p5samba1.9.18p5.html/a/li -lia href=samba1.9.18p4samba1.9.18p4.html/a/li -lia href=samba1.9.18p3samba1.9.18p3.html/a/li -lia href=samba1.9.18p2samba1.9.18p2.html/a/li -lia href=samba1.9.18p1samba1.9.18p1.html/a/li -lia href=samba1.9.18samba1.9.18.html/a/li -lia href=samba1.9.17p5samba1.9.17p5.html/a/li -lia href=samba1.9.17p4samba1.9.17p4.html/a/li -lia href=samba1.9.17p3samba1.9.17p3.html/a/li -lia href=samba1.9.17p2samba1.9.17p2.html/a/li -lia href=samba1.9.17p1samba1.9.17p1.html/a/li -lia href=samba1.9.17samba1.9.17.html/a/li +lia href=samba-3.0.22.htmlsamba-3.0.22/a/li +lia href=samba-3.0.21c.htmlsamba-3.0.21c/a/li +lia href=samba-3.0.21b.htmlsamba-3.0.21b/a/li +lia href=samba-3.0.21a.htmlsamba-3.0.21a/a/li +lia href=samba-3.0.21.htmlsamba-3.0.21/a/li +lia href=samba-3.0.20b.htmlsamba-3.0.20b/a/li +lia href=samba-3.0.20a.htmlsamba-3.0.20a/a/li +lia href=samba-3.0.20.htmlsamba-3.0.20/a/li +lia href=samba-3.0.14a.htmlsamba-3.0.14a/a/li +lia href=samba-3.0.13.htmlsamba-3.0.13/a/li +lia href=samba-3.0.12.htmlsamba-3.0.12/a/li +lia href=samba-3.0.11.htmlsamba-3.0.11/a/li +lia href=samba-3.0.10.htmlsamba-3.0.10/a/li +lia href=samba-3.0.9.htmlsamba-3.0.9/a/li +lia href=samba-3.0.8.htmlsamba-3.0.8/a/li +lia href=samba-3.0.7.htmlsamba-3.0.7/a/li +lia href=samba-3.0.6.htmlsamba-3.0.6/a/li +lia href=samba-3.0.5.htmlsamba-3.0.5/a/li +lia href=samba-3.0.4.htmlsamba-3.0.4/a/li +lia href=samba-3.0.3.htmlsamba-3.0.3/a/li +lia href=samba-3.0.2a.htmlsamba-3.0.2a/a/li +lia href=samba-3.0.2.htmlsamba-3.0.2/a/li +lia href=samba-3.0.1.htmlsamba-3.0.1/a/li +lia
svn commit: samba r15057 - in branches/SAMBA_4_0/source/ntvfs/posix: .
Author: metze Date: 2006-04-12 16:27:53 + (Wed, 12 Apr 2006) New Revision: 15057 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15057 Log: fix access masks for getting and setting security_descriptors I'll add some torture tests later... metze Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_qfileinfo.c branches/SAMBA_4_0/source/ntvfs/posix/pvfs_setfileinfo.c Changeset: Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_qfileinfo.c === --- branches/SAMBA_4_0/source/ntvfs/posix/pvfs_qfileinfo.c 2006-04-12 16:19:42 UTC (rev 15056) +++ branches/SAMBA_4_0/source/ntvfs/posix/pvfs_qfileinfo.c 2006-04-12 16:27:53 UTC (rev 15057) @@ -28,11 +28,11 @@ /* determine what access bits are needed for a call */ -static uint32_t pvfs_fileinfo_access(enum smb_fileinfo_level level) +static uint32_t pvfs_fileinfo_access(union smb_fileinfo *info) { uint32_t needed; - switch (level) { + switch (info-generic.level) { case RAW_FILEINFO_EA_LIST: case RAW_FILEINFO_ALL_EAS: needed = SEC_FILE_READ_EA; @@ -43,14 +43,24 @@ break; case RAW_FILEINFO_SEC_DESC: - needed = SEC_STD_READ_CONTROL; + needed = 0; + if (info-query_secdesc.in.secinfo_flags (SECINFO_OWNER|SECINFO_GROUP)) { + needed |= SEC_STD_READ_CONTROL; + } + if (info-query_secdesc.in.secinfo_flags SECINFO_DACL) { + needed |= SEC_STD_READ_CONTROL; + } + if (info-query_secdesc.in.secinfo_flags SECINFO_SACL) { + needed |= SEC_FLAG_SYSTEM_SECURITY; + } break; default: needed = SEC_FILE_READ_ATTRIBUTE; break; } - return needed; + + return needed; } /* @@ -304,7 +314,7 @@ } status = pvfs_access_check_simple(pvfs, req, name, - pvfs_fileinfo_access(info-generic.level)); + pvfs_fileinfo_access(info)); if (!NT_STATUS_IS_OK(status)) { return status; } @@ -332,7 +342,7 @@ } h = f-handle; - access_needed = pvfs_fileinfo_access(info-generic.level); + access_needed = pvfs_fileinfo_access(info); if ((f-access_mask access_needed) != access_needed) { return NT_STATUS_ACCESS_DENIED; } Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_setfileinfo.c === --- branches/SAMBA_4_0/source/ntvfs/posix/pvfs_setfileinfo.c2006-04-12 16:19:42 UTC (rev 15056) +++ branches/SAMBA_4_0/source/ntvfs/posix/pvfs_setfileinfo.c2006-04-12 16:27:53 UTC (rev 15057) @@ -53,16 +53,23 @@ case RAW_SFILEINFO_SEC_DESC: needed = 0; - if (info-set_secdesc.in.secinfo_flags (SECINFO_DACL|SECINFO_SACL)) { + if (info-set_secdesc.in.secinfo_flags (SECINFO_OWNER|SECINFO_GROUP)) { + needed |= SEC_STD_WRITE_OWNER; + } + if (info-set_secdesc.in.secinfo_flags SECINFO_DACL) { needed |= SEC_STD_WRITE_DAC; } + if (info-set_secdesc.in.secinfo_flags SECINFO_SACL) { + needed |= SEC_FLAG_SYSTEM_SECURITY; + } break; default: needed = SEC_FILE_WRITE_ATTRIBUTE; break; } - return needed; + + return needed; } /*
svn commit: samba-web r954 - in trunk/news/developers: .
Author: deryck Date: 2006-04-12 17:09:38 + (Wed, 12 Apr 2006) New Revision: 954 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=samba-webrev=954 Log: Add news item about Waider's work on mod_ntlm_winbind. deryck Added: trunk/news/developers/mod_ntlm_winbind_apache2.html Changeset: Added: trunk/news/developers/mod_ntlm_winbind_apache2.html === --- trunk/news/developers/mod_ntlm_winbind_apache2.html 2006-04-12 16:26:08 UTC (rev 953) +++ trunk/news/developers/mod_ntlm_winbind_apache2.html 2006-04-12 17:09:38 UTC (rev 954) @@ -0,0 +1,14 @@ +h3a name=mod_ntlm_winbind_apache2mod_ntlm_winbind Updated for Apache2/a/h3 + +div class=article + pRonan Waide has done some work updating mod_ntlm_winbind for Apache2. + mod_ntlm_winbind is an Apache module that provides NTLM and Basic + authentication via winbind. Support for both plaintext and NTLM auth + in the same module as also been added./p + + pThe + a href=http://download.samba.org/ftp/unpacked/lorikeet/mod_ntlm_winbind/;module + source is available/a for the interested./p +/div + +
svn commit: samba r15058 - branches/SAMBA_3_0/examples branches/SAMBA_3_0/examples/pam_winbind trunk/examples trunk/examples/pam_winbind
Author: gd Date: 2006-04-12 17:36:13 + (Wed, 12 Apr 2006) New Revision: 15058 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15058 Log: Add sample pam_winbind.conf file. Guenther Added: branches/SAMBA_3_0/examples/pam_winbind/ branches/SAMBA_3_0/examples/pam_winbind/pam_winbind.conf trunk/examples/pam_winbind/ trunk/examples/pam_winbind/pam_winbind.conf Changeset: Added: branches/SAMBA_3_0/examples/pam_winbind/pam_winbind.conf === --- branches/SAMBA_3_0/examples/pam_winbind/pam_winbind.conf2006-04-12 16:27:53 UTC (rev 15057) +++ branches/SAMBA_3_0/examples/pam_winbind/pam_winbind.conf2006-04-12 17:36:13 UTC (rev 15058) @@ -0,0 +1,26 @@ +; +; pam_winbind configuration file +; +; /etc/security/pam_winbind.conf +; + +[global] + +; turn on debugging +;debug = no + +; request a cached login if possible +; (needs winbind offline logon = yes in smb.conf) +;cached_login = no + +; authenticate using kerberos +;krb5_auth = no + +; when using kerberos, request a FILE krb5 credential cache type +; (leave empty to just do krb5 authentication but not have a ticket +; afterwards) +;krb5_ccache_type = + +; make successful authentication dependend on membership of one SID +; (can also take a name) +;require_membership_of = Added: trunk/examples/pam_winbind/pam_winbind.conf === --- trunk/examples/pam_winbind/pam_winbind.conf 2006-04-12 16:27:53 UTC (rev 15057) +++ trunk/examples/pam_winbind/pam_winbind.conf 2006-04-12 17:36:13 UTC (rev 15058) @@ -0,0 +1,26 @@ +; +; pam_winbind configuration file +; +; /etc/security/pam_winbind.conf +; + +[global] + +; turn on debugging +;debug = no + +; request a cached login if possible +; (needs winbind offline logon = yes in smb.conf) +;cached_login = no + +; authenticate using kerberos +;krb5_auth = no + +; when using kerberos, request a FILE krb5 credential cache type +; (leave empty to just do krb5 authentication but not have a ticket +; afterwards) +;krb5_ccache_type = + +; make successful authentication dependend on membership of one SID +; (can also take a name) +;require_membership_of =
svn commit: samba r15059 - in trunk/source: include locking
Author: jra Date: 2006-04-12 23:00:55 + (Wed, 12 Apr 2006) New Revision: 15059 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15059 Log: The brlock code gets called a lot. Ensure we keep the key around while we're using it - saves many calls to locking_key() (now deleted). Jeremy. Modified: trunk/source/include/smb.h trunk/source/locking/brlock.c Changeset: Modified: trunk/source/include/smb.h === --- trunk/source/include/smb.h 2006-04-12 17:36:13 UTC (rev 15058) +++ trunk/source/include/smb.h 2006-04-12 23:00:55 UTC (rev 15059) @@ -838,10 +838,18 @@ enum brl_type {READ_LOCK, WRITE_LOCK, PENDING_LOCK, UNLOCK_LOCK}; enum brl_flavour {WINDOWS_LOCK = 0, POSIX_LOCK = 1}; +/* The key used in the brlock database. */ + +struct lock_key { + SMB_DEV_T device; + SMB_INO_T inode; +}; + struct byte_range_lock { files_struct *fsp; unsigned int num_locks; BOOL modified; + struct lock_key key; void *lock_data; }; Modified: trunk/source/locking/brlock.c === --- trunk/source/locking/brlock.c 2006-04-12 17:36:13 UTC (rev 15058) +++ trunk/source/locking/brlock.c 2006-04-12 23:00:55 UTC (rev 15059) @@ -55,13 +55,6 @@ enum brl_flavour lock_flav; }; -/* The key used in the brlock database. */ - -struct lock_key { - SMB_DEV_T device; - SMB_INO_T inode; -}; - /* The open brlock.tdb database. */ static TDB_CONTEXT *tdb; @@ -87,23 +80,6 @@ } / - Create a locking key - ensuring zero filled for pad purposes. -/ - -static TDB_DATA locking_key(SMB_DEV_T dev, SMB_INO_T inode) -{ -static struct lock_key key; -TDB_DATA kbuf; - -memset(key, '\0', sizeof(key)); -key.device = dev; -key.inode = inode; -kbuf.dptr = (char *)key; -kbuf.dsize = sizeof(key); -return kbuf; -} - -/ See if two locking contexts are equal. / @@ -1332,8 +1308,11 @@ { struct byte_range_lock *br_lck = talloc_get_type_abort(p, struct byte_range_lock); - TDB_DATA key = locking_key(br_lck-fsp-dev, br_lck-fsp-inode); + TDB_DATA key; + key.dptr = (char *)br_lck-key; + key.dsize = sizeof(struct lock_key); + if (!br_lck-modified) { goto done; } @@ -1355,8 +1334,8 @@ done: - SAFE_FREE(br_lck-lock_data); tdb_chainunlock(tdb, key); + SAFE_FREE(br_lck-lock_data); return 0; } @@ -1368,11 +1347,10 @@ struct byte_range_lock *brl_get_locks(TALLOC_CTX *mem_ctx, files_struct *fsp) { - TDB_DATA key = locking_key(fsp-dev, fsp-inode); + TDB_DATA key; TDB_DATA data; - struct byte_range_lock *br_lck; + struct byte_range_lock *br_lck = TALLOC_P(mem_ctx, struct byte_range_lock); - br_lck = TALLOC_P(mem_ctx, struct byte_range_lock); if (br_lck == NULL) { return NULL; } @@ -1380,7 +1358,13 @@ br_lck-fsp = fsp; br_lck-num_locks = 0; br_lck-modified = False; + memset(br_lck-key, '\0', sizeof(struct lock_key)); + br_lck-key.device = fsp-dev; + br_lck-key.inode = fsp-inode; + key.dptr = (char *)br_lck-key; + key.dsize = sizeof(struct lock_key); + if (tdb_chainlock(tdb, key) != 0) { DEBUG(3, (Could not lock byte range lock entry\n)); TALLOC_FREE(br_lck);
svn commit: samba r15060 - in branches/SAMBA_3_0/source: include locking
Author: jra Date: 2006-04-12 23:00:58 + (Wed, 12 Apr 2006) New Revision: 15060 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15060 Log: The brlock code gets called a lot. Ensure we keep the key around while we're using it - saves many calls to locking_key() (now deleted). Jeremy. Modified: branches/SAMBA_3_0/source/include/smb.h branches/SAMBA_3_0/source/locking/brlock.c Changeset: Modified: branches/SAMBA_3_0/source/include/smb.h === --- branches/SAMBA_3_0/source/include/smb.h 2006-04-12 23:00:55 UTC (rev 15059) +++ branches/SAMBA_3_0/source/include/smb.h 2006-04-12 23:00:58 UTC (rev 15060) @@ -836,10 +836,18 @@ enum brl_type {READ_LOCK, WRITE_LOCK, PENDING_LOCK, UNLOCK_LOCK}; enum brl_flavour {WINDOWS_LOCK = 0, POSIX_LOCK = 1}; +/* The key used in the brlock database. */ + +struct lock_key { + SMB_DEV_T device; + SMB_INO_T inode; +}; + struct byte_range_lock { files_struct *fsp; unsigned int num_locks; BOOL modified; + struct lock_key key; void *lock_data; }; Modified: branches/SAMBA_3_0/source/locking/brlock.c === --- branches/SAMBA_3_0/source/locking/brlock.c 2006-04-12 23:00:55 UTC (rev 15059) +++ branches/SAMBA_3_0/source/locking/brlock.c 2006-04-12 23:00:58 UTC (rev 15060) @@ -55,13 +55,6 @@ enum brl_flavour lock_flav; }; -/* The key used in the brlock database. */ - -struct lock_key { - SMB_DEV_T device; - SMB_INO_T inode; -}; - /* The open brlock.tdb database. */ static TDB_CONTEXT *tdb; @@ -87,23 +80,6 @@ } / - Create a locking key - ensuring zero filled for pad purposes. -/ - -static TDB_DATA locking_key(SMB_DEV_T dev, SMB_INO_T inode) -{ -static struct lock_key key; -TDB_DATA kbuf; - -memset(key, '\0', sizeof(key)); -key.device = dev; -key.inode = inode; -kbuf.dptr = (char *)key; -kbuf.dsize = sizeof(key); -return kbuf; -} - -/ See if two locking contexts are equal. / @@ -1332,8 +1308,11 @@ { struct byte_range_lock *br_lck = talloc_get_type_abort(p, struct byte_range_lock); - TDB_DATA key = locking_key(br_lck-fsp-dev, br_lck-fsp-inode); + TDB_DATA key; + key.dptr = (char *)br_lck-key; + key.dsize = sizeof(struct lock_key); + if (!br_lck-modified) { goto done; } @@ -1355,8 +1334,8 @@ done: - SAFE_FREE(br_lck-lock_data); tdb_chainunlock(tdb, key); + SAFE_FREE(br_lck-lock_data); return 0; } @@ -1368,11 +1347,10 @@ struct byte_range_lock *brl_get_locks(TALLOC_CTX *mem_ctx, files_struct *fsp) { - TDB_DATA key = locking_key(fsp-dev, fsp-inode); + TDB_DATA key; TDB_DATA data; - struct byte_range_lock *br_lck; + struct byte_range_lock *br_lck = TALLOC_P(mem_ctx, struct byte_range_lock); - br_lck = TALLOC_P(mem_ctx, struct byte_range_lock); if (br_lck == NULL) { return NULL; } @@ -1380,7 +1358,13 @@ br_lck-fsp = fsp; br_lck-num_locks = 0; br_lck-modified = False; + memset(br_lck-key, '\0', sizeof(struct lock_key)); + br_lck-key.device = fsp-dev; + br_lck-key.inode = fsp-inode; + key.dptr = (char *)br_lck-key; + key.dsize = sizeof(struct lock_key); + if (tdb_chainlock(tdb, key) != 0) { DEBUG(3, (Could not lock byte range lock entry\n)); TALLOC_FREE(br_lck);
Build status as of Thu Apr 13 00:00:02 2006
URL: http://build.samba.org/ --- /home/build/master/cache/broken_results.txt.old 2006-04-12 00:00:03.0 + +++ /home/build/master/cache/broken_results.txt 2006-04-13 00:00:03.0 + @@ -1,17 +1,17 @@ -Build status as of Wed Apr 12 00:00:02 2006 +Build status as of Thu Apr 13 00:00:02 2006 Build counts: Tree Total Broken Panic -ccache 9 2 0 +ccache 10 3 0 distcc 11 2 0 -lorikeet-heimdal 17 17 0 -ppp 19 0 0 -rsync35 2 0 +lorikeet-heimdal 19 19 0 +ppp 18 0 0 +rsync36 3 0 samba3 0 0 samba-docs 0 0 0 samba4 40 28 2 -samba_3_037 8 0 -smb-build25 0 0 -talloc 33 17 0 -tdb 33 3 0 +samba_3_038 7 0 +smb-build26 0 0 +talloc 11 8 0 +tdb 9 1 0
svn commit: samba r15061 - in branches/SAMBA_4_0/source: .
Author: ab Date: 2006-04-13 03:09:14 + (Thu, 13 Apr 2006) New Revision: 15061 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15061 Log: Use $(PERL) to run cflags.pl as actual perl binary might not be in /usr/bin Modified: branches/SAMBA_4_0/source/main.mk Changeset: Modified: branches/SAMBA_4_0/source/main.mk === --- branches/SAMBA_4_0/source/main.mk 2006-04-12 23:00:58 UTC (rev 15060) +++ branches/SAMBA_4_0/source/main.mk 2006-04-13 03:09:14 UTC (rev 15061) @@ -311,15 +311,15 @@ .c.ho: @echo Compiling $ with host compiler - @$(HOSTCC) `$(srcdir)/script/cflags.pl [EMAIL PROTECTED] $(CFLAGS) -c $ -o $@ + @$(HOSTCC) `$(PERL) $(srcdir)/script/cflags.pl [EMAIL PROTECTED] $(CFLAGS) -c $ -o $@ .c.d: @echo Generating dependencies for $ - @$(CC) -M -MG -MP -MT $(:.c=.o) `$(srcdir)/script/cflags.pl [EMAIL PROTECTED] $(CFLAGS) $ -o $@ + @$(CC) -M -MG -MP -MT $(:.c=.o) `$(PERL) $(srcdir)/script/cflags.pl [EMAIL PROTECTED] $(CFLAGS) $ -o $@ .c.hd: @echo Generating dependencies for $ - @$(CC) -M -MG -MP -MT $(:.c=.ho) `$(srcdir)/script/cflags.pl [EMAIL PROTECTED] $(CFLAGS) $ -o $@ + @$(CC) -M -MG -MP -MT $(:.c=.ho) `$(PERL) $(srcdir)/script/cflags.pl [EMAIL PROTECTED] $(CFLAGS) $ -o $@ include/includes.d: include/includes.h @echo Generating dependencies for $ @@ -328,14 +328,14 @@ .c.o: @if test -n $(CC_CHECKER); then \ echo Checking $ with '$(CC_CHECKER)'; \ - $(CC_CHECKER) `$(srcdir)/script/cflags.pl [EMAIL PROTECTED] $(CFLAGS) $(PICFLAG) -c $ -o $@; \ + $(CC_CHECKER) `$(PERL) $(srcdir)/script/cflags.pl [EMAIL PROTECTED] $(CFLAGS) $(PICFLAG) -c $ -o $@; \ fi @echo Compiling $ - @$(CC) `$(srcdir)/script/cflags.pl [EMAIL PROTECTED] $(CFLAGS) $(PICFLAG) -c $ -o $@ + @$(CC) `$(PERL) $(srcdir)/script/cflags.pl [EMAIL PROTECTED] $(CFLAGS) $(PICFLAG) -c $ -o $@ .h.h.gch: @echo Precompiling $ - @$(CC) `$(srcdir)/script/cflags.pl [EMAIL PROTECTED] $(CFLAGS) $(PICFLAG) -c $ -o $@ + @$(CC) `$(PERL) $(srcdir)/script/cflags.pl [EMAIL PROTECTED] $(CFLAGS) $(PICFLAG) -c $ -o $@ .y.c: @echo Building $ with $(YACC)
svn commit: samba r15062 - in branches/SAMBA_4_0/source/build/smb_build: .
Author: ab Date: 2006-04-13 04:04:10 + (Thu, 13 Apr 2006) New Revision: 15062 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15062 Log: Theoretically, this should allow NetBSD make to handle VPATH-like lookups Modified: branches/SAMBA_4_0/source/build/smb_build/makefile.pm Changeset: Modified: branches/SAMBA_4_0/source/build/smb_build/makefile.pm === --- branches/SAMBA_4_0/source/build/smb_build/makefile.pm 2006-04-13 03:09:14 UTC (rev 15061) +++ branches/SAMBA_4_0/source/build/smb_build/makefile.pm 2006-04-13 04:04:10 UTC (rev 15062) @@ -156,6 +156,8 @@ DEFAULT_TEST_TARGET=$self-{config}-{DEFAULT_TEST_TARGET} +# For BSD make +.PATH: \$(VPATH) __EOD__ ); }
svn commit: samba r15063 - in branches/SAMBA_4_0/source/build/smb_build: .
Author: ab Date: 2006-04-13 04:10:09 + (Thu, 13 Apr 2006) New Revision: 15063 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15063 Log: Theoretically, this should allow NetBSD make to handle VPATH-like lookups Modified: branches/SAMBA_4_0/source/build/smb_build/makefile.pm Changeset: Modified: branches/SAMBA_4_0/source/build/smb_build/makefile.pm === --- branches/SAMBA_4_0/source/build/smb_build/makefile.pm 2006-04-13 04:04:10 UTC (rev 15062) +++ branches/SAMBA_4_0/source/build/smb_build/makefile.pm 2006-04-13 04:10:09 UTC (rev 15063) @@ -158,6 +158,8 @@ # For BSD make .PATH: \$(VPATH) + [EMAIL PROTECTED] + __EOD__ ); }
svn commit: samba r15064 - in branches/SAMBA_4_0/source/build/smb_build: .
Author: ab Date: 2006-04-13 04:14:18 + (Thu, 13 Apr 2006) New Revision: 15064 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15064 Log: Remove the change until I find proper solution Modified: branches/SAMBA_4_0/source/build/smb_build/makefile.pm Changeset: Modified: branches/SAMBA_4_0/source/build/smb_build/makefile.pm === --- branches/SAMBA_4_0/source/build/smb_build/makefile.pm 2006-04-13 04:10:09 UTC (rev 15063) +++ branches/SAMBA_4_0/source/build/smb_build/makefile.pm 2006-04-13 04:14:18 UTC (rev 15064) @@ -156,10 +156,6 @@ DEFAULT_TEST_TARGET=$self-{config}-{DEFAULT_TEST_TARGET} -# For BSD make -.PATH: \$(VPATH) - [EMAIL PROTECTED] - __EOD__ ); }
svn commit: samba r15065 - in branches/SAMBA_4_0/source/lib/ldb/include: .
Author: tpot Date: 2006-04-13 04:19:27 + (Thu, 13 Apr 2006) New Revision: 15065 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=15065 Log: Remove duplicate prototype. Modified: branches/SAMBA_4_0/source/lib/ldb/include/ldb.h Changeset: Modified: branches/SAMBA_4_0/source/lib/ldb/include/ldb.h === --- branches/SAMBA_4_0/source/lib/ldb/include/ldb.h 2006-04-13 04:14:18 UTC (rev 15064) +++ branches/SAMBA_4_0/source/lib/ldb/include/ldb.h 2006-04-13 04:19:27 UTC (rev 15065) @@ -1055,7 +1055,6 @@ int ldb_attr_cmp(const char *attr1, const char *attr2); char *ldb_attr_casefold(void *mem_ctx, const char *s); int ldb_attr_dn(const char *attr); -char *ldb_dn_escape_value(void *mem_ctx, struct ldb_val value); /** Create an empty message