[SCM] Samba Shared Repository - branch v4-2-stable updated

Karolin Seeger kseeger at samba.org
Wed Mar 4 12:53:21 MST 2015


The branch, v4-2-stable has been updated
       via  1d4445a VERSION: Disable git snapshot for the 4.2.0 release.
       via  b32bc91 WHATSNEW: Add release notes for Samba 4.2.0.
       via  1309af4 tevent: version 0.9.24
       via  5db8d19 tevent: Ignore unexpected signal events in the same way the epoll backend does.
       via  7ad61f9 backupkey: Explain more why we use GnuTLS here
       via  19796dc torture-backupkey: Check the dcerpc call return code before calling ndr pull
       via  defd635 backupkey: replace heimdal rsa key generation with GnuTLS
       via  b39c155 build: Require GnuTLS if building with Active Directory
       via  3e03d5f torture-backupkey: Add tests that read the secret from the server, and validate
       via  c39dccc backupkey: Better handling for different wrap version headers
       via  a29cf10 backupkey: Add tests for ServerWrap protocol
       via  3b27850 backupkey: Change expected error codes to match Windows 2008R2 and Windows 2012R2
       via  ff5494a backupkey: Implement ServerWrap Decrypt
       via  2533cef backupkey: Handle more clearly the case where we find the secret, but it has no value
       via  b66edeb backupkey: Improve variable names to make clear this is client-provided data
       via  b3dd7ae backupkey: Use the name lsa_secret rather than just secret
       via  9408f0c backupkey: Implement ServerWrap Encrypt protocol
       via  a0bf67d backupkey: Improve function names and comments for clarity
       via  8d45cf5 backupkey: Move SID comparison to inside get_and_verify_access_check()
       via  9372640 backupkey: Improve IDL
       via  c6b61e1 backupkey: begin by factoring out the server wrap functions
       via  9ddd067 torture-backupkey: Assert dcerpc_bkrp_BackupKey_r call was successful
       via  bad22e6 torture-backupkey: Add consistent assertions that createRestoreGUIDStruct() suceeds
       via  3d44076 s4:torture/rpc/backupkey: Require 2048 bit RSA key
       via  2ff5c42 s4-backupkey: consistent naming of werr variable
       via  0168673 s4-backupkey: improve variable name
       via  48a659d s4-backupkey: typo fix
       via  a701eeb s4-backupkey: IDL for ServerWrap subprotocol
       via  87c525d s4-backupkey: fix ndr_pull error on empty input
       via  2ee3031 s4-backupkey: Initialize ndr->switchlist for print
       via  a03df47 s4-backupkey: Comply with [MS-BKRP] 2.2.1
       via  0d6e32f s4-backupkey: Set defined cert serialnumber
       via  0dd6cfa s4-backupkey: de-duplicate error handling
       via  c998e9d s4-backupkey: check for talloc failure
       via  0b75a0c s4-backupkey: Cert lifetime of 365 days, not secs
       via  899f4db s4-backupkey: Ensure RSA modulus is 2048 bits
       via  93fe498 Add link to the Samba User Survey 2015 to WHATSNEW.txt
       via  f158785 doc-xml: Add 'sharesec' reference to 'access based share enum'
       via  f645571 snprintf: Try to support %j
       via  d0a5a6f tevent: version 0.9.23
       via  bc8585b Add Solaris ports as a tevent backend.
       via  2f50cd2 Update the tevent_data.dox tutrial stuff to fix some errors, including white space problems.
       via  3c4e071 ctdb-io: Do not use sys_write to write to client sockets
       via  811fad3 smbd: Stop using vfs_Chdir after SMB_VFS_DISCONNECT.
       via  a8d285f vfs: Add a brief vfs_ceph manpage.
       via  aadfc40 doc:man:vfs_glusterfs: improve the configuration section.
       via  081a730 doc:man:vfs_glusterfs: improve and update description.
       via  9c5e310 doc:man:vfs_glusterfs: remove extra % signs.
       via  38d6d20 debug: Set close-on-exec for the main log file FD
       via  3a1f881 VERSION: Bump version up to 4.2.0...
      from  6c9d254 VERSION: Disable git snapshots for the 4.2.0rc5 release.

https://git.samba.org/?p=samba.git;a=shortlog;h=v4-2-stable


- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 VERSION                                            |    2 +-
 WHATSNEW.txt                                       |   72 +-
 ctdb/common/ctdb_io.c                              |    6 +-
 .../manpages/{vfs_snapper.8.xml => vfs_ceph.8.xml} |   65 +-
 docs-xml/manpages/vfs_glusterfs.8.xml              |   61 +-
 .../smbdotconf/security/accessbasedshareenum.xml   |    5 +-
 docs-xml/wscript_build                             |    1 +
 lib/replace/snprintf.c                             |    4 +
 lib/replace/system/select.h                        |    4 +
 lib/replace/wscript                                |    5 +
 .../ABI/{tevent-0.9.21.sigs => tevent-0.9.23.sigs} |    0
 .../ABI/{tevent-0.9.21.sigs => tevent-0.9.24.sigs} |    0
 lib/tevent/doc/tevent_data.dox                     |   30 +-
 lib/tevent/tevent.c                                |    5 +-
 lib/tevent/tevent_internal.h                       |    3 +
 lib/tevent/tevent_port.c                           |  785 ++++++++++++++
 lib/tevent/wscript                                 |    5 +-
 lib/util/debug.c                                   |    3 +
 lib/util/wscript_build                             |    2 +-
 librpc/idl/backupkey.idl                           |   37 +-
 librpc/ndr/ndr_backupkey.c                         |    5 +
 source3/smbd/service.c                             |    6 +-
 source4/lib/tls/wscript                            |    3 +
 source4/rpc_server/backupkey/dcesrv_backupkey.c    |  984 +++++++++++++-----
 source4/torture/rpc/backupkey.c                    | 1073 +++++++++++++++++++-
 25 files changed, 2848 insertions(+), 318 deletions(-)
 copy docs-xml/manpages/{vfs_snapper.8.xml => vfs_ceph.8.xml} (52%)
 copy lib/tevent/ABI/{tevent-0.9.21.sigs => tevent-0.9.23.sigs} (100%)
 copy lib/tevent/ABI/{tevent-0.9.21.sigs => tevent-0.9.24.sigs} (100%)
 create mode 100644 lib/tevent/tevent_port.c


Changeset truncated at 500 lines:

diff --git a/VERSION b/VERSION
index 6a16ad00..b9bd34a 100644
--- a/VERSION
+++ b/VERSION
@@ -87,7 +87,7 @@ SAMBA_VERSION_PRE_RELEASE=
 # e.g. SAMBA_VERSION_RC_RELEASE=1                      #
 #  ->  "3.0.0rc1"                                      #
 ########################################################
-SAMBA_VERSION_RC_RELEASE=5
+SAMBA_VERSION_RC_RELEASE=
 
 ########################################################
 # To mark SVN snapshots this should be set to 'yes'    #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 49c1cb7..0996044 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,14 +1,26 @@
-Release Announcements
-=====================
+                   =============================
+                   Release Notes for Samba 4.2.0
+                           March 04, 2015
+                   =============================
+
 
-This is the fifth release candidate of Samba 4.2.  This is *not*
-intended for production environments and is designed for testing
-purposes only.  Please report any defects via the Samba bug reporting
-system at https://bugzilla.samba.org/.
+This is is the first stable release of Samba 4.2.
 
 Samba 4.2 will be the next version of the Samba suite.
 
 
+Samba User Survey 2015
+======================
+
+https://www.surveygizmo.com/s3/2020369/Samba-User-Survey-2015
+
+Please take our survey. It will help us improve Samba by understanding
+your knowledge and needs. The survey runs until end of March 2015 and
+won't ask for any personal info. The full results will be shared with
+the Samba Team, and statistical summaries will be shared with the
+Samba community after the SambaXP conference (http://sambaxp.org).
+
+
 IMPORTANT NOTE ABOUT THE SUPPORT END OF SAMBA 3
 =================================================
 
@@ -338,6 +350,54 @@ smb.conf changes
    winbind expand groups                Changed default 0
 
 
+CHANGES SINCE 4.2.0rc5
+======================
+
+o   Michael Adam <obnox at samba.org>
+    * BUG 11117: doc:man:vfs_glusterfs: improve the configuration section.
+
+
+o   Jeremy Allison <jra at samba.org>
+    * BUG 11118: tevent: Ignore unexpected signal events in the same way the
+      epoll backend does.
+
+
+o   Andrew Bartlett <abartlet at samba.org>
+    * BUG 11100: debug: Set close-on-exec for the main log file FD.
+    * BUG 11097: Fix Win8.1 Credentials Manager issue after KB2992611 on Samba
+      domain.
+
+
+o   Ira Cooper <ira at samba.org>
+    * BUG 1115: smbd: Stop using vfs_Chdir after SMB_VFS_DISCONNECT.
+
+
+o   Günther Deschner <gd at samba.org>
+    * BUG 11088: vfs: Add a brief vfs_ceph manpage.
+
+
+o   David Disseldorp <ddiss at samba.org>
+    * BUG 11118: tevent: version 0.9.24.
+
+
+o   Amitay Isaacs <amitay at gmail.com>
+    * BUG 11124: ctdb-io: Do not use sys_write to write to client sockets.
+
+
+o   Volker Lendecke <vl at samba.org>
+    * BUG 11119: snprintf: Try to support %j.
+
+
+o   Garming Sam <garming at catalyst.net.nz>
+    * BUG 11097: Fix Win8.1 Credentials Manager issue after KB2992611 on Samba
+      domain.
+
+
+o   Andreas Schneider <asn at samba.org>
+    * BUG 11127: doc-xml: Add 'sharesec' reference to 'access based share
+      enum'.
+
+
 CHANGES SINCE 4.2.0rc4
 ======================
 
diff --git a/ctdb/common/ctdb_io.c b/ctdb/common/ctdb_io.c
index 467ec9a..53486f4 100644
--- a/ctdb/common/ctdb_io.c
+++ b/ctdb/common/ctdb_io.c
@@ -232,9 +232,9 @@ static void queue_io_write(struct ctdb_queue *queue)
 		struct ctdb_queue_pkt *pkt = queue->out_queue;
 		ssize_t n;
 		if (queue->ctdb->flags & CTDB_FLAG_TORTURE) {
-			n = sys_write(queue->fd, pkt->data, 1);
+			n = write(queue->fd, pkt->data, 1);
 		} else {
-			n = sys_write(queue->fd, pkt->data, pkt->length);
+			n = write(queue->fd, pkt->data, pkt->length);
 		}
 
 		if (n == -1 && errno != EAGAIN && errno != EWOULDBLOCK) {
@@ -310,7 +310,7 @@ int ctdb_queue_send(struct ctdb_queue *queue, uint8_t *data, uint32_t length)
 	   queue overhead. This relies on non-blocking sockets */
 	if (queue->out_queue == NULL && queue->fd != -1 &&
 	    !(queue->ctdb->flags & CTDB_FLAG_TORTURE)) {
-		ssize_t n = sys_write(queue->fd, data, length2);
+		ssize_t n = write(queue->fd, data, length2);
 		if (n == -1 && errno != EAGAIN && errno != EWOULDBLOCK) {
 			talloc_free(queue->fde);
 			queue->fde = NULL;
diff --git a/docs-xml/manpages/vfs_snapper.8.xml b/docs-xml/manpages/vfs_ceph.8.xml
similarity index 52%
copy from docs-xml/manpages/vfs_snapper.8.xml
copy to docs-xml/manpages/vfs_ceph.8.xml
index 0e06ec5..978f6b3 100644
--- a/docs-xml/manpages/vfs_snapper.8.xml
+++ b/docs-xml/manpages/vfs_ceph.8.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 <!DOCTYPE refentry PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
-<refentry id="vfs_snapper.8">
+<refentry id="vfs_ceph.8">
 
 <refmeta>
-	<refentrytitle>vfs_snapper</refentrytitle>
+	<refentrytitle>vfs_ceph</refentrytitle>
 	<manvolnum>8</manvolnum>
 	<refmiscinfo class="source">Samba</refmiscinfo>
 	<refmiscinfo class="manual">System Administration tools</refmiscinfo>
@@ -12,15 +12,15 @@
 
 
 <refnamediv>
-	<refname>vfs_snapper</refname>
+	<refname>vfs_ceph</refname>
 	<refpurpose>
-		Expose snapshots managed by snapper as shadow-copies
+		Utilize features provided by CephFS
 	</refpurpose>
 </refnamediv>
 
 <refsynopsisdiv>
 	<cmdsynopsis>
-		<command>vfs objects = snapper</command>
+		<command>vfs objects = ceph</command>
 	</cmdsynopsis>
 </refsynopsisdiv>
 
@@ -32,14 +32,22 @@
 	<manvolnum>8</manvolnum></citerefentry> suite.</para>
 
 	<para>
-		The <command>vfs_snapper</command> VFS module exposes snapshots
-		managed by snapper for use by Samba. This provides the ability
-		for remote SMB clients to access shadow-copies via Windows
-		Explorer using the "previous versions" dialog.
+		The <command>vfs_ceph</command> VFS module exposes
+		CephFS specific features for use by Samba.
 	</para>
 
 	<para>
-		This module is stackable.
+		Ceph is a distributed network file system designed to provide
+		excellent performance, reliability, and scalability. This is a
+		shared library allowing applications to access a Ceph
+		distributed file system via a POSIX-like interface.
+	</para>
+
+	<para>
+		This module can be combined with other modules, but it
+		should be the last module in the <command>vfs objects</command>
+		list. Modules added to this list to the right of the ceph
+		entry may not have any effect at all.
 	</para>
 </refsect1>
 
@@ -47,29 +55,36 @@
 	<title>CONFIGURATION</title>
 
 	<para>
-		The underlying share path must have a corresponding snapper
-		configuration file. The snapshot directory tree must allow
-		access for relavent users.
+		<command>vfs_ceph</command> requires that the underlying share
+		path is a Ceph filesystem.
 	</para>
 
 	<programlisting>
 		<smbconfsection name="[share]"/>
-		<smbconfoption name="vfs objects">snapper</smbconfoption>
+		<smbconfoption name="vfs objects">ceph</smbconfoption>
 	</programlisting>
 </refsect1>
 
 <refsect1>
-	<title>PERMISSIONS</title>
-	<para>
-		Snapper stores snapshots under a .snapshots subdirectory. This
-		directory must permit traversal for any users wishing to access
-		snapshots via the Windows Explorer previous versions dialog.
-		By default, traversal is forbidden for all non-root users.
-		Additionally, users must be granted permission to list snapshots
-		managed by snapper, via snapper's ALLOW_USERS or ALLOW_GROUPS
-		options. Snapper can grant these users and groups .snapshots
-		traversal access automatically via the SYNC_ACL option.
-	</para>
+	<title>OPTIONS</title>
+
+	<variablelist>
+
+		<varlistentry>
+		<term>ceph:config_file = path</term>
+		<listitem>
+		<para>
+			Allows to define a ceph configfile to use. Empty by default.
+		</para>
+		<para>
+			Example: ceph:config_file =
+			/etc/ceph/ceph.conf
+		</para>
+		</listitem>
+		</varlistentry>
+
+	</variablelist>
+
 </refsect1>
 
 <refsect1>
diff --git a/docs-xml/manpages/vfs_glusterfs.8.xml b/docs-xml/manpages/vfs_glusterfs.8.xml
index 83032cc..c0c320c 100644
--- a/docs-xml/manpages/vfs_glusterfs.8.xml
+++ b/docs-xml/manpages/vfs_glusterfs.8.xml
@@ -32,28 +32,29 @@
 	<manvolnum>8</manvolnum></citerefentry> suite.</para>
 
 	<para>
-		The <command>vfs_glusterfs</command> VFS module exposes
-		GlusterFS specific features for use by Samba.
+		GlusterFS
+		(<ulink url="http://www.gluster.org/">http://www.gluster.org</ulink>)
+		is an Open Source clustered file system capable of scaling to
+		several peta-bytes.  With its FUSE based native client,
+		GlusterFS is available as a POSIX compliant file system and can
+		hence be shared by Samba without additional steps.
 	</para>
 
 	<para>
-		GlusterFS is a clustered file system, capable of scaling
-		to several peta-bytes. It aggregates various storage bricks
-		over Infiniband RDMA or TCP/IP and interconnect into one large
-		parallel network file system. Storage bricks can be made of any
-		commodity hardware, such as x86-64 server with SATA-II RAID and
-		Infiniband HBA.
-
-		GlusterFS is fully POSIX compliant file system. It supports
-		standard clients running standard applications over any standard
-		IP network and also FUSE. It works seemlessly on
-		different operating systems, currently supported on GNU/Linux
-		and Solaris.
+		The <command>vfs_glusterfs</command> VFS module provides an
+		alternative, and superior way to access a Gluster filesystem
+		from Samba for sharing. It does not require a Gluster FUSE mount
+		but directly accesses the GlusterFS daemon through its library
+		<command>libgfapi</command>, thereby omitting the expensive
+		kernel-userspace context switches and taking advantage of some
+		of the more advanced features of GlusterFS.
 	</para>
 
 	<para>
-		This module is stackable, provided glusterfs lies in the bottom
-		of the stack.
+		This module can be combined with other modules, but it
+		should be the last module in the <command>vfs objects</command>
+		list. Modules added to this list to the right of the glusterfs
+		entry may not have any effect at all.
 	</para>
 </refsect1>
 
@@ -61,14 +62,33 @@
 	<title>CONFIGURATION</title>
 
 	<para>
-		<command>vfs_glusterfs</command> requires that the underlying share
-		path is a Gluster filesystem.
+		A basic configuration looks like this.
 	</para>
 
 	<programlisting>
 		<smbconfsection name="[share]"/>
 		<smbconfoption name="vfs objects">glusterfs</smbconfoption>
+		<smbconfoption name="path">/relative/base/path</smbconfoption>
+		<smbconfoption name="glusterfs:volume">gv0</smbconfoption>
+		<smbconfoption name="kernel share modes">no</smbconfoption>
 	</programlisting>
+
+	<para>
+		Note that since <command>vfs_glusterfs</command> does not
+		require a Gluster mount, the share <command>path</command> is
+		treated differently than for other shares: It is interpreted as
+		the base path of the share relative to the gluster volume used.
+		Because this is usually not at the same time a system path, in a
+		ctdb cluster setup where ctdb manages Samba, you need to set
+		<command>CTDB_SAMBA_SKIP_SHARE_CHECK=yes</command> in ctdb's
+		configuration file. Otherwise ctdb will not get healthy.
+	</para>
+
+	<para>
+		Note that currently kernel share modes have to be disabled
+		in a share running with the glusterfs vfs module for file
+		serving to work properly.
+	</para>
 </refsect1>
 
 <refsect1>
@@ -82,12 +102,11 @@
 		<para>
 			Defines whether and where to store a vfs_glusterfs specific
 			logfile. Client variable substitution is supported (i.e.
-			%M, %m, %I), hence per client log file can be
-			%specified.
+			%M, %m, %I), hence per client log file can be specified.
 		</para>
 		<para>
 			Example: glusterfs:logfile =
-			%/var/log/samba/glusterfs-vol2.%M.log
+			/var/log/samba/glusterfs-vol2.%M.log
 		</para>
 		</listitem>
 		</varlistentry>
diff --git a/docs-xml/smbdotconf/security/accessbasedshareenum.xml b/docs-xml/smbdotconf/security/accessbasedshareenum.xml
index 8b94648..66932d0 100644
--- a/docs-xml/smbdotconf/security/accessbasedshareenum.xml
+++ b/docs-xml/smbdotconf/security/accessbasedshareenum.xml
@@ -7,7 +7,10 @@
      <para>If this parameter is <constant>yes</constant> for a
     service, then the share hosted by the service will only be visible
     to users who have read or write access to the share during share
-    enumeration (for example net view \\sambaserver).  This has
+    enumeration (for example net view \\sambaserver). The share ACLs
+    which allow or deny the access to the share can be modified using
+    for example the <command moreinfo="none">sharesec</command> command
+    or using the appropriate Windows tools. This has
     parallels to access based enumeration, the main difference being
     that only share permissions are evaluated, and security
     descriptors on files contained on the share are not used in
diff --git a/docs-xml/wscript_build b/docs-xml/wscript_build
index 0bc3f54..e4a3f5f 100644
--- a/docs-xml/wscript_build
+++ b/docs-xml/wscript_build
@@ -53,6 +53,7 @@ manpages='''
          manpages/vfs_cacheprime.8
          manpages/vfs_cap.8
          manpages/vfs_catia.8
+         manpages/vfs_ceph.8
          manpages/vfs_commit.8
          manpages/vfs_crossrename.8
          manpages/vfs_default_quota.8
diff --git a/lib/replace/snprintf.c b/lib/replace/snprintf.c
index 6b4a711..86ba74c 100644
--- a/lib/replace/snprintf.c
+++ b/lib/replace/snprintf.c
@@ -445,6 +445,10 @@ static int dopr(char *buffer, size_t maxlen, const char *format, va_list args_in
 					ch = *format++;
 				}
 				break;
+			case 'j':
+				cnk->cflags = DP_C_LLONG;
+				ch = *format++;
+				break;
 			case 'L':
 				cnk->cflags = DP_C_LDOUBLE;
 				ch = *format++;
diff --git a/lib/replace/system/select.h b/lib/replace/system/select.h
index 11c5390..9e945c3 100644
--- a/lib/replace/system/select.h
+++ b/lib/replace/system/select.h
@@ -34,6 +34,10 @@
 #include <sys/epoll.h>
 #endif
 
+#ifdef HAVE_SOLARIS_PORTS
+#include <port.h>
+#endif
+
 #ifndef SELECT_CAST
 #define SELECT_CAST
 #endif
diff --git a/lib/replace/wscript b/lib/replace/wscript
index 4d4d182..f8a0179 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
@@ -38,6 +38,7 @@ def configure(conf):
     conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h')
     conf.CHECK_HEADERS('shadow.h sys/acl.h')
     conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
+    conf.CHECK_HEADERS('port.h')
     conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h')
     conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
     conf.CHECK_HEADERS('sys/resource.h sys/security.h sys/shm.h sys/statfs.h sys/statvfs.h sys/termio.h')
@@ -283,6 +284,7 @@ def configure(conf):
     conf.CHECK_FUNCS('timegm getifaddrs freeifaddrs mmap setgroups syscall setsid')
     conf.CHECK_FUNCS('getgrent_r getgrgid_r getgrnam_r getgrouplist getpagesize')
     conf.CHECK_FUNCS('getpwent_r getpwnam_r getpwuid_r epoll_create')
+    conf.CHECK_FUNCS('port_create')
 
     conf.SET_TARGET_TYPE('attr', 'EMPTY')
 
@@ -487,6 +489,9 @@ removeea setea
     if conf.CONFIG_SET('HAVE_EPOLL_CREATE') and conf.CONFIG_SET('HAVE_SYS_EPOLL_H'):
         conf.DEFINE('HAVE_EPOLL', 1)
 
+    if conf.CONFIG_SET('HAVE_PORT_CREATE') and conf.CONFIG_SET('HAVE_PORT_H'):
+        conf.DEFINE('HAVE_SOLARIS_PORTS', 1)
+
     conf.CHECK_HEADERS('poll.h')
     conf.CHECK_FUNCS('poll')
 
diff --git a/lib/tevent/ABI/tevent-0.9.21.sigs b/lib/tevent/ABI/tevent-0.9.23.sigs
similarity index 100%
copy from lib/tevent/ABI/tevent-0.9.21.sigs
copy to lib/tevent/ABI/tevent-0.9.23.sigs
diff --git a/lib/tevent/ABI/tevent-0.9.21.sigs b/lib/tevent/ABI/tevent-0.9.24.sigs
similarity index 100%
copy from lib/tevent/ABI/tevent-0.9.21.sigs
copy to lib/tevent/ABI/tevent-0.9.24.sigs
diff --git a/lib/tevent/doc/tevent_data.dox b/lib/tevent/doc/tevent_data.dox
index 4ee4ac2..dbe7a04 100644
--- a/lib/tevent/doc/tevent_data.dox
+++ b/lib/tevent/doc/tevent_data.dox
@@ -46,18 +46,19 @@ struct testA {
 
 
 static void foo_done(struct tevent_req *req) {
-// a->x contains 9
-struct foo_state *a = tevent_req_data(req, struct foo_state);
+    // a->x contains 10 since it came from foo_send
+    struct foo_state *a = tevent_req_data(req, struct foo_state);
 
-// b->y contains 10
-struct testA *b = tevent_req_callback_data(req, struct testA);
+    // b->y contains 9 since it came from run
+    struct testA *b = tevent_req_callback_data(req, struct testA);
 
-// c->y contains 10
-struct testA *c = (struct testA *)tevent_req_callback_data_void(req);
+    // c->y contains 9 since it came from run we just used a different way
+    // of getting it.
+    struct testA *c = (struct testA *)tevent_req_callback_data_void(req);
 
-printf("a->x: %d\n", a->x);
-printf("b->y: %d\n", b->y);
-printf("c->y: %d\n", c->y);
+    printf("a->x: %d\n", a->x);
+    printf("b->y: %d\n", b->y);
+    printf("c->y: %d\n", c->y);
 }
 
 
@@ -77,6 +78,9 @@ static void run(struct tevent_context *ev, struct tevent_timer *te,
                 struct timeval current_time, void *private_data) {
     struct tevent_req *req;
     struct testA *tmp = talloc(ev, struct testA);
+
+    // Note that we did not use the private data passed in
+
     tmp->y = 9;
     req = foo_send(ev, ev);
 
@@ -101,7 +105,7 @@ int main (int argc, char **argv) {
         return EXIT_FAILURE;
 
     data = talloc(mem_ctx, struct testA);
-    data->y = 10;
+    data->y = 11;
 
     time_event = tevent_add_timer(event_ctx,
                                   mem_ctx,
@@ -125,9 +129,9 @@ int main (int argc, char **argv) {
 Output of this example is:
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list