[SCM] Samba Shared Repository - branch v4-4-test updated

Karolin Seeger kseeger at samba.org
Tue Mar 15 22:47:09 UTC 2016


The branch, v4-4-test has been updated
       via  40fb6fd selftest: Avoid sorting issues on Ubuntu 10.04 vs 14.04
       via  5184015 pytalloc: Correct description of pytalloc_Get{Base,}ObjectType behaviour
       via  caab62a dbcheck: Check for and remove duplicate values in attributes
       via  017f1db selftest: Allow 4 hours for the test to run (ouch!)
       via  4b29e7b pysmb: Use pytalloc_BaseObject_PyType_Ready()
       via  f7c7cbd pysmb: Do not use pytalloc_Object directly
       via  b784432 pysmb: Rework py_smb_new() to use pytalloc_steal()
       via  2b1ff18 pysmb: Use pytalloc_get_mem_ctx()
       via  7ea3e7f pysmb: Use pytalloc_get_ptr()
       via  5d9eeb5 pyregistry: Use pytalloc_BaseObject_PyType_Ready()
       via  a40c6f9 pyauth: Use pytalloc_BaseObject_PyType_Ready()
       via  914347f pygensec: Use pytalloc_BaseObject_PyType_Ready()
       via  39b05c2 pygensec: Use pytalloc_steal() in gensec_start_{client,server}()
       via  4cc1351 pyparam: Use pytalloc_BaseObject_PyType_Ready()
       via  83aef0a py_passdb: Use pytalloc_BaseObject_PyType_Ready()
       via  d837f8d pycredentials: Use pytalloc_BaseObject_PyType_Ready()
       via  ac3265b pytalloc: Add pytalloc_BaseObject_PyType_Ready() wrapper
       via  819a07a pyparam: Do not use pytalloc_Object directly
       via  1e839dc pypassdb: Do not use pytalloc_Object directly
       via  42dfaa1 pycredentials: Remove PyCredentialCacheContainerObject
       via  ec66fe1 pycredentials: Do not use pytalloc_Object directly
       via  7bb3111 dbcheck: Avoid spurious warnings in dbcheck due to objectclass sorting
       via  d9b2796 dbcheck: Fix incorrect/duplicate attrid in replPropertMetaData
       via  6a89304 selftest: Update release-4-1-0rc3 with more test records
       via  934623f rpc_server/drsuapi: Block replication of incorrect/duplicate attrid in replPropertMetaData
       via  21bf6af repl_meta_data: Correctly use msDS-IntId for custom schema, not the prefixMap value
       via  d3bffda pidl: Use a tmp_ctx helper variable
       via  7391fc8 pidl: Use the $mem_ctx helper variable
       via  22905ce pidl: Fix our python reference handling
       via  1e035b5 pyrpc: Clarify failure mode after pytalloc_reference_ex() improvements
       via  4398286 talloc: Bump version number
       via  ab1bcc3 pytalloc: Add new BaseObject
       via  61ba9bc pytalloc: add a _pytalloc_get_type() helper function and generate PyExc_TypeError on mismatch
       via  e2cd642 talloc: add _pytalloc_get_ptr/_pytalloc_get_mem_ctx helper functions
       via  5a22910 talloc: Improve testsuite by avoiding path issues
       via  058b78c pyrpc: Add warning about abuse of py_return_ndr_struct()
       via  aac2ecc pydsdb: Fix returning of ldb.MessageElement.
       via  6e83a84 pyldb: Add warning about pyldb_MessageElement_AsMessageElement()
       via  b9d924a selftest: specify a maximum runtime for 'make testenv' of 1 year
       via  fbb57a5 s3/passdb/py_passdb.c: free frame before returning
       via  a411046 build: mark explicit dependencies on pytalloc-util
       via  1b08ea3 libsmb/pysmb: add pytalloc-util dependency to fix the build.
       via  9ab767f selftest: mark samba4.winbind.struct.domain_info.ad_member as flapping
       via  36b0b0e build: fix disk-free quota support on Solaris 10
       via  29b44e5 smbd: Only check dev/inode in open_directory, not the full stat()
       via  a44025b s3:winbindd: don't unclude two '
       via  a83a26f s3:libnet:libnet_join: update msDS-SupportedEncryptionTypes (if required) with machine creds.
       via  a35ce5d s3:libnet:libnet_join: fill in output enctypes and only modify when necessary.
       via  60c5909 s3:libnet:libnet_join: define list of desired encryption types only once.
       via  acc8dd2 s3:librpc:idl:libnet_join: add encryption types to libnet_JoinCtx.
       via  e2b8b2c s3:libnet:libnet_join: always try to create machineaccount via LDAP first.
       via  35ecc4d s3:libads:ldap: fix ads_check_ou_dn to deal with account_ou not being initialized
       via  c6f7bbd s3:libads:ndr: add ADS_AUTH_USER_CREDS to ndr_print_ads_auth_flags()
       via  0dc8e31 s3:libads:ldap: print LDAP error message with log level 10.
       via  f74d7f5 s3:libnet:libnet_join: prepare to allow connecting with machine creds.
       via  35ec8ac Partly revert "s3:libads: setup the msDS-SupportedEncryptionTypes attribute on ldap_add"
      from  0268dc2 vfs_glusterfs: Fix use after free in AIO callback.

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


- Log -----------------------------------------------------------------
commit 40fb6fd9d0d726fc28a6c6327968a5f8253186ef
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Mar 9 14:08:41 2016 +1300

    selftest: Avoid sorting issues on Ubuntu 10.04 vs 14.04
    
    The unimportant lines starting with # sorted differently between these
    two platforms.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit ca9bbc8cc5bdf83de532d7afe094e35cdeee788c)
    
    The last 42 patches address
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11789
    Required changes for talloc-2.1.6
    
    Autobuild-User(v4-4-test): Karolin Seeger <kseeger at samba.org>
    Autobuild-Date(v4-4-test): Tue Mar 15 23:46:31 CET 2016 on sn-devel-144

commit 518401551d5ee4222cab977a6b94c919ce989be0
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 8 13:46:16 2016 +1300

    pytalloc: Correct description of pytalloc_Get{Base,}ObjectType behaviour
    
    Thanks to Jelmer for spotting the static variable that causes this odd behaviour
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    
    Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date(master): Tue Mar  8 05:14:15 CET 2016 on sn-devel-144
    
    (cherry picked from commit 20417945fed17a8f6ca2b0fc66c20890dc1f48b8)

commit caab62a2d105b0f9e3b7f8070b13307f18987c25
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Feb 23 14:57:04 2016 +1300

    dbcheck: Check for and remove duplicate values in attributes
    
    This can happen with three DCs and custom schema, but we test
    it by just forcing the values directly into the backing tdb.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit c79c1e405d52c5dc54b8f03cd891e47f7ea04497)

commit 017f1db0f76b198c64f4a3a5c7f3d06adc5ed8dc
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Mar 2 08:54:42 2016 +1300

    selftest: Allow 4 hours for the test to run (ouch!)
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 13e62b2e350a21beefe871de64900fb78c5385f7)

commit 4b29e7bf2ee85df0e2c31116b14983e7490c9d80
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 1 15:17:44 2016 +1300

    pysmb: Use pytalloc_BaseObject_PyType_Ready()
    
    This changes pysmb to use talloc.BaseObject() just like the PIDL output
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 8440dda3cbc747f18148e52e6875055148438267)

commit f7c7cbd68090663c3262aaa24e1d8ca05f5818e7
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 1 15:08:26 2016 +1300

    pysmb: Do not use pytalloc_Object directly
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit c763253f05aa07afc84bc27d2d8387f454edbded)

commit b784432be973d8660788b6663342d83593c89acb
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 1 14:53:00 2016 +1300

    pysmb: Rework py_smb_new() to use pytalloc_steal()
    
    This avoids casting to pytalloc_Object directly
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 05b99bed8cb4bf98de06fbbe19347efc049245c6)

commit 2b1ff1878210f475297e68c751090867ec19caeb
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 1 15:05:28 2016 +1300

    pysmb: Use pytalloc_get_mem_ctx()
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 9a34a1567bb9b9f4f5dc3f28d05845ed13cf31a9)

commit 7ea3e7f3bac123fb10ae4f4626bbb25580e1d4b3
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 1 14:55:59 2016 +1300

    pysmb: Use pytalloc_get_ptr()
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit a2013c3a5ab80283a4b95004e4d1606e0003a4a8)

commit 5d9eeb5b345dac06424fec2cdea90648e5f23899
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 1 09:33:48 2016 +1300

    pyregistry: Use pytalloc_BaseObject_PyType_Ready()
    
    This changes pyregistry to use talloc.BaseObject() just like the PIDL output
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 6d348c443a92dfe9bdad73d36c0303a765468870)

commit a40c6f960bea6f4aa8612bbc8628e0a895a4cbf2
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 1 09:32:56 2016 +1300

    pyauth: Use pytalloc_BaseObject_PyType_Ready()
    
    This changes pyauth to use talloc.BaseObject() just like the PIDL output
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit ffc75363307a25c27dbdd52eb08bd54964416650)

commit 914347f126332b79d613527cbafb7de0ff5202a2
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 1 09:32:06 2016 +1300

    pygensec: Use pytalloc_BaseObject_PyType_Ready()
    
    This changes pygensec to use talloc.BaseObject() just like the PIDL output
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 0f35167d767e4ace2295f3025110470504f160d3)

commit 39b05c29811e6b164874a2d34bd2b23afecb14be
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 1 14:19:33 2016 +1300

    pygensec: Use pytalloc_steal() in gensec_start_{client,server}()
    
    This is better than casting to get to the pytalloc_Object structure directly
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit ec5d63f9edcf311b581df4f37a702a54d659d443)

commit 4cc13510910c8df9eb7619016404d72831717afb
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 1 09:31:00 2016 +1300

    pyparam: Use pytalloc_BaseObject_PyType_Ready()
    
    This changes pyparam to use talloc.BaseObject() just like the PIDL output
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 43af1905d578ec6f374f1f67f72c37428ecd361f)

commit 83aef0ae0ba1d10ec5e64c9c2b128696d60ec2bb
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 1 09:30:03 2016 +1300

    py_passdb: Use pytalloc_BaseObject_PyType_Ready()
    
    This changes py_passdb to use talloc.BaseObject() just like the PIDL output
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 0705aee099aa4961ad521c55f8c344f4e3a338ee)

commit d837f8dc3dcdc93a6e4f6ae3d06367fa679d1f57
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 1 09:27:11 2016 +1300

    pycredentials: Use pytalloc_BaseObject_PyType_Ready()
    
    This changes pycredentials to use talloc.BaseObject() just like the PIDL output
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit fc747539dc1219135face7d6f77c7174a9c978cd)

commit ac3265be5d454e4b5ad99b0fe0b5589562eb4ee2
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 1 09:26:29 2016 +1300

    pytalloc: Add pytalloc_BaseObject_PyType_Ready() wrapper
    
    This avoids the need for the caller to set tp_base and tp_basicsize and
    so removes those as possible errors.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit d850991ee2284050916761ea2f0ccac45df4eb4f)

commit 819a07a312c0bb7dbed53ba8ed3b64d11ac49730
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Feb 29 16:27:31 2016 +1300

    pyparam: Do not use pytalloc_Object directly
    
    This type should not be used directly, it should have been made private
    to pytalloc.  This then allows removal of the (PyCFunction) cast
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit d82b11b21cb3905b112fc49956c98beb1cb79ed9)

commit 1e839dc6dab4078327bb2d192cea78933ec65671
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Feb 29 16:27:12 2016 +1300

    pypassdb: Do not use pytalloc_Object directly
    
    This type should not be used directly, it should have been made private
    to pytalloc.  This then allows removal of the (PyCFunction) cast
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit e622411c488772fd20e94d3e13aff2a0db0ecf13)

commit 42dfaa176e45c18801a941945b02ed6c94f8fdb7
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Feb 29 16:26:08 2016 +1300

    pycredentials: Remove PyCredentialCacheContainerObject
    
    We can call pytalloc_reference() and avoid having this in the header file
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 750632199641ff437585bc3a6835e282ce1d5395)

commit ec66fe17cc72a30f1b7d2240e98295b493dadd9e
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Feb 22 14:10:23 2016 +1300

    pycredentials: Do not use pytalloc_Object directly
    
    This type should not be used directly, it should have been made private
    to pytalloc
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit fe4b990cbaf4c6b204c2d206f2a04ff5cd273f9f)

commit 7bb31113c65436ada65b62fca986cec0dd9bf6fa
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Dec 24 09:43:36 2015 +1300

    dbcheck: Avoid spurious warnings in dbcheck due to objectclass sorting
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11433
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit c36b2d7fb8f10ec229bb8e6be3999ab83a26dc36)

commit d9b2796faefd5a6735117a3a42225d7d845bb7e5
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Dec 22 19:48:38 2015 +1300

    dbcheck: Fix incorrect/duplicate attrid in replPropertMetaData
    
    If custom schema is used in a replicated DC environment, these are created as soon as
    an attribute is modified on more than one DC.  We have to remove these.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11443
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 5fb98a3534a806331307a425d9469164e27d7ee7)

commit 6a893042c596a8b85237002915c71d6a34f8e07a
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Dec 23 13:16:57 2015 +1300

    selftest: Update release-4-1-0rc3 with more test records
    
    CN=ops_run_anything2,OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp
    
    This will be modified during the dbcheck to show that new
    versions of Samba will reset the attid correctly
    
    CN=ops_run_anything3,OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp
    
    This will not be modified, and shows how a 4.1 DC without
    replication would record custom schema objects.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit ac83f729bc80d02f042a337d9a06dfc4ef0632ac)

commit 934623f3fa6beef4a27ee911ed89fbc242a3637b
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Dec 22 19:39:31 2015 +1300

    rpc_server/drsuapi: Block replication of incorrect/duplicate attrid in replPropertMetaData
    
    If custom schema is used in a replicated DC environment, these are created as soon as
    an attribute is modified on more than one DC.  We have to prevent replication
    as otherwise we will corrupt the client replica state.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11443
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 7397aa47fddca43b3b4931a961e6d8e742fdf181)

commit 21bf6af2236bd2c12c979dad971600350f327989
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Dec 22 19:33:39 2015 +1300

    repl_meta_data: Correctly use msDS-IntId for custom schema, not the prefixMap value
    
    We must, when dealing with custom schema, respect the msDC-IntId value recorded
    in the schema.  If we do not, then we will create multiple replPropertyMetaData
    records for the one attribute.  This may cause confusion during replication.
    
    This fixes the issue by always calling dsdb_attribute_get_attid() to obtain
    the correct local (32 bit integer) attribute ID
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11443
    (cherry picked from commit ecf0dd49e07e2c7fad5adf0a82abbc3e301a4e5a)

commit d3bffda2f2b03f2064bbea6c9de09aa3f2fbfd55
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Feb 25 13:57:37 2016 +1300

    pidl: Use a tmp_ctx helper variable
    
    This is so we free the ndr_push_struct_blob() return value after
    we make it into a string
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 90bf114f6370ee837d97e36eb25f38f8234dcd39)

commit 7391fc8956fcd3edc735654143f43039662e4952
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Feb 25 13:57:00 2016 +1300

    pidl: Use the $mem_ctx helper variable
    
    This is already set to pytalloc_get_mem_ctx(py_obj)
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit dffa2dbfabca14f07af12663fc93c8dc3bc837cf)

commit 22905ceaf55f30bab996a583b23bc2eae08615da
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Feb 16 14:06:28 2016 +1300

    pidl: Fix our python reference handling
    
    The new talloc.BaseObject allow us to hold a talloc context per
    python object (there may be many referring to the same C object)
    and the talloc context that the actual object pointer is under.
    
    Another advantage is that talloc.BaseObject(), has less of
    an ABI surface.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 9e07f3a13b41be1f019887581b2a2bd049039a3d)

commit 1e035b5a054cf3709bf10624e91f48cdd59aa86b
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 8 11:18:56 2016 +1300

    pyrpc: Clarify failure mode after pytalloc_reference_ex() improvements
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 627fdf0468e9f575ea1a5de1fd57a87a239a4b96)

commit 4398286c7cb71d47d11097378a32d4625e5cdc03
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Feb 16 16:15:53 2016 +1300

    talloc: Bump version number
    
    The removal of the macros and replacement with proper functions
    is a API, but not ABI break.  Only code that incorrectly
    used the structure either in function signatures or
    to access the members directly will need to be modified
    before being built against this version of talloc.
    
    Andrew Bartlett
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit d7bbcbc510c6ecfcd9db47c15203bbdd13d1c06e)

commit ab1bcc381880418163c2bfc3bb56396445ad58f0
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Feb 22 14:02:28 2016 +1300

    pytalloc: Add new BaseObject
    
    This new object not only avoids the ABI issues of talloc.Object
    it stores one more pointer, being the start of the array, and
    so can be used to fix the PIDL bindings/talloc refcount issue.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 80f2b36efb6380defb646f7612f23c431acf8e1a)

commit 61ba9bca89ea7024d6b069b2c0e00950908990f2
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Feb 22 08:47:07 2016 +0100

    pytalloc: add a _pytalloc_get_type() helper function and generate PyExc_TypeError on mismatch
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 528dce1b5326e00446f5fe233b8af52bcb1990a9)

commit e2cd642bdc3ebb1c576c65c4e8295f1106a9d5f3
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Feb 22 14:29:15 2016 +1300

    talloc: add _pytalloc_get_ptr/_pytalloc_get_mem_ctx helper functions
    
    This allows us to check which type is involved, and dereference
    that type correctly
    
    Pair-Programmed-With: Stefan Metzmacher <metze at samba.org>
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 42eae4dec6209aa5cae0d48f17f33c1ab67b6f03)

commit 5a229104c40ec79d3adc886e0c61ff9f56233fc5
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Feb 23 11:04:51 2016 +1300

    talloc: Improve testsuite by avoiding path issues
    
    We now rely on waf to tell us where the helper binary is.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit cd8d9300213dcdeb5bdfbbb7a71ae4b82e042470)

commit 058b78c2a254672c625262cd5f8de04bc8494ce2
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 8 11:16:27 2016 +1300

    pyrpc: Add warning about abuse of py_return_ndr_struct()
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 623bf4230c3458a266de7759d0ead07d986d6951)

commit aac2ecc9b930c22cf5cb4068f12f262096ec1e1d
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Feb 16 15:15:44 2016 +1300

    pydsdb: Fix returning of ldb.MessageElement.
    
    This object is not based on pytalloc_Object and so this causes
    a segfault (later a failure) when the struct definitions diverge.
    We must also not reuse the incoming ldb_message_element as a talloc
    context and overwrite the values, instead we should create a new
    object and return that.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit b96b1e88f760c92c7d9bb7e732f72d7e73a68907)

commit 6e83a845667f6325fca36760f718c71e021c4034
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Mar 8 10:39:24 2016 +1300

    pyldb: Add warning about pyldb_MessageElement_AsMessageElement()
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Garming Sam <garming at catalyst.net.nz>
    (cherry picked from commit 02de793e013c1905cccc0c760bb64f45d37e3051)

commit b9d924a676733e541055fc9985926062abd99a59
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Jan 22 16:57:15 2016 +0100

    selftest: specify a maximum runtime for 'make testenv' of 1 year
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Volker Lendecke <vl at samba.org>
    (cherry picked from commit 90cb84c9052bbe7c23fa6e58a3041f0c05249821)

commit fbb57a5fc64767804cfa5f2dd3b05ca48ede5d05
Author: Aurelien Aptel <aaptel at suse.com>
Date:   Mon Feb 29 18:23:39 2016 +0100

    s3/passdb/py_passdb.c: free frame before returning
    
    these talloc frames are freed *after* the return instruction and are
    never executed. this fixes potential memory leaks.
    
    Signed-off-by: Aurelien Aptel <aaptel at suse.com>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    
    Autobuild-User(master): Amitay Isaacs <amitay at samba.org>
    Autobuild-Date(master): Tue Mar  1 12:08:40 CET 2016 on sn-devel-144
    
    (cherry picked from commit f2675909d34b1847a889e65023b9f0ed36e6bd52)

commit a411046a9ec947e89afbc4810024ad7094541f8b
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Tue Mar 15 13:29:54 2016 +1300

    build: mark explicit dependencies on pytalloc-util
    
    All subsystems that include pytalloc.h need to link against
    pytalloc-util.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11789
    
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 1b08ea3fa7e7d9b6c0a2ba1d26c24019e1309f23
Author: Günther Deschner <gd at samba.org>
Date:   Mon Feb 1 23:11:13 2016 +0100

    libsmb/pysmb: add pytalloc-util dependency to fix the build.
    
    Guenther
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    
    Autobuild-User(master): Günther Deschner <gd at samba.org>
    Autobuild-Date(master): Tue Feb  2 15:49:14 CET 2016 on sn-devel-144
    
    (cherry picked from commit 943e69ca8fd4491004eafbf29ed2ca748b0b7480)

commit 9ab767f6606ebda77ac92f2ee6d8137bc11fb5fa
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Mar 11 10:49:21 2016 +0100

    selftest: mark samba4.winbind.struct.domain_info.ad_member as flapping
    
    See https://lists.samba.org/archive/samba-technical/2016-March/112861.html
    
      found 517 lines matching '^UNEXPECTED' in 641 files matching 'samba.stdout$'
       175 UNEXPECTED(failure): samba4.winbind.struct.domain_info(ad_member:local)
        19 UNEXPECTED(failure): samba4.winbind.struct.domain_info(s3member:local)
        12 UNEXPECTED(failure): samba4.rpc.backupkey with seal.backupkey.server_wrap_encrypt_decrypt_wrong_key(ad_dc_ntvfs)
        12 UNEXPECTED(failure): samba4.drs.delete_object.python(promoted_dc).delete_object.DrsDeleteObjectTestCase.test_ReplicateDeletedObject1(promoted_dc)
        12 UNEXPECTED(failure): samba4.rpc.backupkey with seal.backupkey.server_wrap_decrypt_wrong_r2(ad_dc_ntvfs)
        11 UNEXPECTED(failure): samba4.ldap.notification.python(ad_dc_ntvfs).__main__.LDAPNotificationTest.test_max_search(ad_dc_ntvfs)
    
    We'll see if we also need to add
    samba4.winbind.struct.domain_info.s3member
    before we're able to identify and fix the problem.
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date(master): Sat Mar 12 02:14:39 CET 2016 on sn-devel-144
    
    (cherry picked from commit 2ef0eed07e494546ba6720a17f00b40d9bafa8ef)

commit 36b0b0ec87bc10df4f1ff681aca3d57fb38fc06c
Author: Uri Simchoni <uri at samba.org>
Date:   Wed Feb 3 06:41:42 2016 +0200

    build: fix disk-free quota support on Solaris 10
    
    Samba has no code to support quota on Solaris 10 (and possibly other
    os's such as AIX) using the new quota interface. The new interface
    serves both disk size/free space reporting (clamping the underlying
    file system numbers with quota), and direct manipulation of the user's
    quota.
    
    However, there's legacy code that supports only disk size/free space on
    Solaris 10. In the waf build, this code is not compiled because there is
    no test for it.
    
    This patch adds a test to see whether the legacy code can be used.
    
    Issue reported and fix tested by Andrew Morgan <morgan at orst.edu>.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11788
    
    Signed-off-by: Uri Simchoni <uri at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Sun Mar 13 01:37:58 CET 2016 on sn-devel-144
    
    (cherry picked from commit 0a9acd445d246c7758e994b0c69cc90bdbbef2fe)

commit 29b44e5bee162443280d06027f2ea2cf7ba280e0
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Fri Mar 11 14:27:53 2016 +1300

    smbd: Only check dev/inode in open_directory, not the full stat()
    
    This is needed because the smb2.create.mkdir-dup test creates a race,
    and against an AD DC this can cause a flapping test if the lstat() and
    stat() calls are made either side of the chown() due to creation of a
    file by administrator.
    
    Fix based on original patches by myself, by Douglas Bagnall
    <douglas.bagnall at catalyst.net.nz>.  and Jeremy Allison <jra at samba.org>
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11780
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Sat Mar 12 09:43:21 CET 2016 on sn-devel-144
    
    (cherry picked from commit 5fc6d2dabdf2aeef74fdefaa67eae0348bbf7a44)

commit a44025b9a41be56fa7a1ae791d4fd72955164c5f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Mar 10 12:17:43 2016 +0100

    s3:winbindd: don't unclude two '\0' at the end of the domain list
    
    This avoids a scary "trustdom_list_done: Got invalid trustdom response" message.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11782
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Günther Deschner <gd at samba.org>
    (cherry picked from commit bb387c5b90e19b5a2f7d65fb8db816e9da51d090)

commit a83a26f8787664b015a297ebdb66590adcb75173
Author: Günther Deschner <gd at samba.org>
Date:   Fri Mar 11 23:15:06 2016 +0100

    s3:libnet:libnet_join: update msDS-SupportedEncryptionTypes (if required) with machine creds.
    
    Guenther
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11755
    
    Pair-Programmed-With: Stefan Metzmacher <metze at samba.org>
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    
    Autobuild-User(master): Stefan Metzmacher <metze at samba.org>
    Autobuild-Date(master): Mon Mar 14 19:38:48 CET 2016 on sn-devel-144
    
    (cherry picked from commit 06aefe4b956ae8748e20ae4c730aa344e81808b6)

commit a35ce5d57bdaa9cb6bdeef9169d770e64e8fee21
Author: Günther Deschner <gd at samba.org>
Date:   Fri Mar 11 16:05:53 2016 +0100

    s3:libnet:libnet_join: fill in output enctypes and only modify when necessary.
    
    Guenther
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11755
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit 5d498d1b4d9b83f179fb7b2841a19ad984eec5f8)

commit 60c5909859e3699322023896835ea1babedad6b0
Author: Günther Deschner <gd at samba.org>
Date:   Fri Mar 11 16:04:52 2016 +0100

    s3:libnet:libnet_join: define list of desired encryption types only once.
    
    Guenther
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11755
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit e0da059b39f9dd5ccb74f32f965e1ced384c77eb)

commit acc8dd2ab2798dd6553b2dbb2c02cf851bc47d3d
Author: Günther Deschner <gd at samba.org>
Date:   Fri Mar 11 16:02:27 2016 +0100

    s3:librpc:idl:libnet_join: add encryption types to libnet_JoinCtx.
    
    Guenther
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11755
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit 4a49f6fac9d6c77d1eedf914308e67eb6e2baa8d)

commit e2b8b2cf5a96921f615055e31d6516d13c76832b
Author: Günther Deschner <gd at samba.org>
Date:   Thu Mar 10 18:03:47 2016 +0100

    s3:libnet:libnet_join: always try to create machineaccount via LDAP first.
    
    Guenther
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11755
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit df8f79cc9d44ad7b2caa6b86b7ebde7bb1fd4c8c)

commit 35ecc4da2b4ba905c068130fb10eaf0b2b83938f
Author: Günther Deschner <gd at samba.org>
Date:   Fri Mar 11 12:15:14 2016 +0100

    s3:libads:ldap: fix ads_check_ou_dn to deal with account_ou not being initialized
    
    Guenther
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11755
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit c61b111e6fa3e138d4d9cf5038b69644248e834a)

commit c6f7bbdc832021ef7824a9d98704a60bb598af92
Author: Günther Deschner <gd at samba.org>
Date:   Fri Mar 11 12:13:24 2016 +0100

    s3:libads:ndr: add ADS_AUTH_USER_CREDS to ndr_print_ads_auth_flags()
    
    Guenther
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11755
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit e8f6acdeece990dc8953d494113dee856d80da45)

commit 0dc8e3120bc16d0d10aa07525a39afee15e156a9
Author: Günther Deschner <gd at samba.org>
Date:   Fri Mar 4 17:42:05 2016 +0100

    s3:libads:ldap: print LDAP error message with log level 10.
    
    Guenther
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11755
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit 34030b025b9e4cd5e7321d6e242f6c03da2a60c0)

commit f74d7f54c0d8ea366a1fd86ab0a0324144fdf7f4
Author: Günther Deschner <gd at samba.org>
Date:   Wed Mar 2 18:07:53 2016 +0100

    s3:libnet:libnet_join: prepare to allow connecting with machine creds.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11755
    
    Guenther
    
    Signed-off-by: Guenther Deschner <gd at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit 71d5634ab58f0ca21db633990231bd01a22c956c)

commit 35ec8ac4b8ca42dd5649c31f088dc9afb5d5fade
Author: Günther Deschner <gd at samba.org>
Date:   Fri Mar 11 23:14:13 2016 +0100

    Partly revert "s3:libads: setup the msDS-SupportedEncryptionTypes attribute on ldap_add"
    
    This partly reverts commit 0c74d62524db376b6a3fac00c688be0cdffcaa80.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11755
    
    Signed-off-by: Günther Deschner <gd at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit 6686f67d2a91146c8bb2fb2a8104fcaa5710b855)

-----------------------------------------------------------------------

Summary of changes:
 auth/credentials/pycredentials.c                   |   164 +-
 auth/credentials/pycredentials.h                   |     5 -
 lib/ldb/pyldb.h                                    |     7 +
 lib/talloc/ABI/pytalloc-util-2.1.6.sigs            |    13 +
 lib/talloc/ABI/pytalloc-util.py3-2.1.6.sigs        |    12 +
 .../ABI/{talloc-2.1.4.sigs => talloc-2.1.6.sigs}   |     0
 lib/talloc/pytalloc.c                              |    86 +
 lib/talloc/pytalloc.h                              |    23 +-
 lib/talloc/pytalloc_guide.txt                      |    40 +-
 .../auth/pyauth.h => lib/talloc/pytalloc_private.h |    25 +-
 lib/talloc/pytalloc_util.c                         |   199 +-
 lib/talloc/test_magic_differs.sh                   |    10 +-
 lib/talloc/test_pytalloc.c                         |    83 +-
 lib/talloc/test_pytalloc.py                        |    73 +-
 lib/talloc/wscript                                 |     7 +-
 pidl/lib/Parse/Pidl/Samba4/Python.pm               |    29 +-
 python/samba/dbchecker.py                          |   160 +-
 python/samba/tests/dcerpc/array.py                 |   171 +
 python/samba/tests/dcerpc/rpc_talloc.py            |    14 +-
 selftest/flapping                                  |     1 +
 selftest/selftest.pl                               |    10 +-
 source3/libads/ads_proto.h                         |     6 +-
 source3/libads/ldap.c                              |    44 +-
 source3/libads/ndr.c                               |     1 +
 source3/libnet/libnet_join.c                       |   220 +-
 source3/librpc/idl/libnet_join.idl                 |     4 +-
 source3/passdb/py_passdb.c                         |   278 +-
 source3/passdb/wscript_build                       |     2 +-
 source3/smbd/open.c                                |    14 +-
 source3/winbindd/winbindd_misc.c                   |     2 +-
 source3/wscript                                    |    24 +
 source3/wscript_build                              |     5 +-
 source4/auth/gensec/pygensec.c                     |    79 +-
 source4/auth/pyauth.c                              |     7 +-
 source4/dns_server/wscript_build                   |     2 +-
 source4/dsdb/pydsdb.c                              |    49 +-
 source4/dsdb/samdb/ldb_modules/repl_meta_data.c    |    55 +-
 source4/dsdb/tests/python/ldap_schema.py           |    31 +-
 source4/lib/messaging/wscript_build                |     2 +-
 source4/lib/registry/pyregistry.c                  |    17 +-
 source4/libcli/pysmb.c                             |   116 +-
 source4/libcli/wscript_build                       |     2 +-
 source4/libnet/wscript_build                       |     2 +-
 source4/librpc/rpc/pyrpc.c                         |     6 +-
 source4/librpc/rpc/pyrpc_util.c                    |     3 +
 source4/param/pyparam.c                            |    81 +-
 source4/param/wscript_build                        |     2 +-
 source4/rpc_server/drsuapi/getncchanges.c          |    10 +
 .../expected-otherphone-after-dbcheck.ldif         |     5 +
 ...xpected-replpropertymetadata-after-dbcheck.ldif |    37 +-
 ...ected-replpropertymetadata-after-dbcheck2.ldif} |   124 +-
 ...ected-replpropertymetadata-after-dbcheck3.ldif} |   136 +-
 ...pected-replpropertymetadata-before-dbcheck.ldif |    22 +-
 ...ected-replpropertymetadata-before-dbcheck2.ldif |   102 +
 ...cted-replpropertymetadata-before-dbcheck3.ldif} |   144 +-
 .../forced-duplicate-value-for-dbcheck.ldif        |     9 +
 ...DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb.dump | 29028 ++++++------
 ...DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb.dump | 43448 +++++++++---------
 ...DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb.dump |   916 +-
 ...DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb.dump |   476 +-
 ...DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb.dump |     8 +-
 .../private/dns/sam.ldb.d/metadata.tdb.dump        |     8 +-
 .../release-4-1-0rc3/private/dns/sam.ldb.dump      |    24 +-
 .../release-4-1-0rc3/private/hklm.ldb.dump         |    68 +-
 .../release-4-1-0rc3/private/idmap.ldb.dump        |    44 +-
 .../release-4-1-0rc3/private/privilege.ldb.dump    |   152 +-
 ...DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb.dump | 29104 ++++++------
 ...DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb.dump | 43772 +++++++++----------
 ...DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb.dump |   916 +-
 ...DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb.dump |   476 +-
 ...DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb.dump |  6040 +--
 .../private/sam.ldb.d/metadata.tdb.dump            |     8 +-
 .../release-4-1-0rc3/private/sam.ldb.dump          |    24 +-
 .../release-4-1-0rc3/private/secrets.ldb.dump      |    32 +-
 .../release-4-1-0rc3/private/share.ldb.dump        |    24 +-
 .../release-4-1-0rc3/steps-to-reproduce.txt        |     3 +
 .../provisions/release-4-1-0rc3/sudoers2-mod.ldif  |     4 +
 .../provisions/release-4-1-0rc3/sudoers2.ldif      |    21 +
 testprogs/blackbox/dbcheck-oldrelease.sh           |    82 +-
 tests/oldquotas.c                                  |   174 +
 80 files changed, 79527 insertions(+), 78100 deletions(-)
 create mode 100644 lib/talloc/ABI/pytalloc-util-2.1.6.sigs
 create mode 100644 lib/talloc/ABI/pytalloc-util.py3-2.1.6.sigs
 copy lib/talloc/ABI/{talloc-2.1.4.sigs => talloc-2.1.6.sigs} (100%)
 copy source4/auth/pyauth.h => lib/talloc/pytalloc_private.h (73%)
 create mode 100644 python/samba/tests/dcerpc/array.py
 create mode 100644 source4/selftest/provisions/release-4-1-0rc3/expected-otherphone-after-dbcheck.ldif
 copy source4/selftest/provisions/release-4-1-0rc3/{expected-replpropertymetadata-after-dbcheck.ldif => expected-replpropertymetadata-after-dbcheck2.ldif} (50%)
 copy source4/selftest/provisions/release-4-1-0rc3/{expected-replpropertymetadata-after-dbcheck.ldif => expected-replpropertymetadata-after-dbcheck3.ldif} (51%)
 create mode 100644 source4/selftest/provisions/release-4-1-0rc3/expected-replpropertymetadata-before-dbcheck2.ldif
 copy source4/selftest/provisions/release-4-1-0rc3/{expected-replpropertymetadata-after-dbcheck.ldif => expected-replpropertymetadata-before-dbcheck3.ldif} (50%)
 create mode 100644 source4/selftest/provisions/release-4-1-0rc3/forced-duplicate-value-for-dbcheck.ldif
 create mode 100644 source4/selftest/provisions/release-4-1-0rc3/sudoers2-mod.ldif
 create mode 100644 source4/selftest/provisions/release-4-1-0rc3/sudoers2.ldif
 create mode 100644 tests/oldquotas.c


Changeset truncated at 500 lines:

diff --git a/auth/credentials/pycredentials.c b/auth/credentials/pycredentials.c
index 5fc2a70..1344391 100644
--- a/auth/credentials/pycredentials.c
+++ b/auth/credentials/pycredentials.c
@@ -37,26 +37,15 @@ static PyObject *PyString_FromStringOrNULL(const char *str)
 
 static PyObject *py_creds_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
 {
-	pytalloc_Object *ret = (pytalloc_Object *)type->tp_alloc(type, 0);
-	if (ret == NULL) {
-		PyErr_NoMemory();
-		return NULL;
-	}
-	ret->talloc_ctx = talloc_new(NULL);
-	if (ret->talloc_ctx == NULL) {
-		PyErr_NoMemory();
-		return NULL;
-	}
-	ret->ptr = cli_credentials_init(ret->talloc_ctx);
-	return (PyObject *)ret;
+	return pytalloc_steal(type, cli_credentials_init(NULL));
 }
 
-static PyObject *py_creds_get_username(pytalloc_Object *self)
+static PyObject *py_creds_get_username(PyObject *self, PyObject *unused)
 {
 	return PyString_FromStringOrNULL(cli_credentials_get_username(PyCredentials_AsCliCredentials(self)));
 }
 
-static PyObject *py_creds_set_username(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_set_username(PyObject *self, PyObject *args)
 {
 	char *newval;
 	enum credentials_obtained obt = CRED_SPECIFIED;
@@ -70,13 +59,13 @@ static PyObject *py_creds_set_username(pytalloc_Object *self, PyObject *args)
 	return PyBool_FromLong(cli_credentials_set_username(PyCredentials_AsCliCredentials(self), newval, obt));
 }
 
-static PyObject *py_creds_get_password(pytalloc_Object *self)
+static PyObject *py_creds_get_password(PyObject *self, PyObject *unused)
 {
 	return PyString_FromStringOrNULL(cli_credentials_get_password(PyCredentials_AsCliCredentials(self)));
 }
 
 
-static PyObject *py_creds_set_password(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_set_password(PyObject *self, PyObject *args)
 {
 	char *newval;
 	enum credentials_obtained obt = CRED_SPECIFIED;
@@ -90,12 +79,12 @@ static PyObject *py_creds_set_password(pytalloc_Object *self, PyObject *args)
 	return PyBool_FromLong(cli_credentials_set_password(PyCredentials_AsCliCredentials(self), newval, obt));
 }
 
-static PyObject *py_creds_get_domain(pytalloc_Object *self)
+static PyObject *py_creds_get_domain(PyObject *self, PyObject *unused)
 {
 	return PyString_FromStringOrNULL(cli_credentials_get_domain(PyCredentials_AsCliCredentials(self)));
 }
 
-static PyObject *py_creds_set_domain(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_set_domain(PyObject *self, PyObject *args)
 {
 	char *newval;
 	enum credentials_obtained obt = CRED_SPECIFIED;
@@ -109,12 +98,12 @@ static PyObject *py_creds_set_domain(pytalloc_Object *self, PyObject *args)
 	return PyBool_FromLong(cli_credentials_set_domain(PyCredentials_AsCliCredentials(self), newval, obt));
 }
 
-static PyObject *py_creds_get_realm(pytalloc_Object *self)
+static PyObject *py_creds_get_realm(PyObject *self, PyObject *unused)
 {
 	return PyString_FromStringOrNULL(cli_credentials_get_realm(PyCredentials_AsCliCredentials(self)));
 }
 
-static PyObject *py_creds_set_realm(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_set_realm(PyObject *self, PyObject *args)
 {
 	char *newval;
 	enum credentials_obtained obt = CRED_SPECIFIED;
@@ -128,12 +117,12 @@ static PyObject *py_creds_set_realm(pytalloc_Object *self, PyObject *args)
 	return PyBool_FromLong(cli_credentials_set_realm(PyCredentials_AsCliCredentials(self), newval, obt));
 }
 
-static PyObject *py_creds_get_bind_dn(pytalloc_Object *self)
+static PyObject *py_creds_get_bind_dn(PyObject *self, PyObject *unused)
 {
 	return PyString_FromStringOrNULL(cli_credentials_get_bind_dn(PyCredentials_AsCliCredentials(self)));
 }
 
-static PyObject *py_creds_set_bind_dn(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_set_bind_dn(PyObject *self, PyObject *args)
 {
 	char *newval;
 	if (!PyArg_ParseTuple(args, "s", &newval))
@@ -142,12 +131,12 @@ static PyObject *py_creds_set_bind_dn(pytalloc_Object *self, PyObject *args)
 	return PyBool_FromLong(cli_credentials_set_bind_dn(PyCredentials_AsCliCredentials(self), newval));
 }
 
-static PyObject *py_creds_get_workstation(pytalloc_Object *self)
+static PyObject *py_creds_get_workstation(PyObject *self, PyObject *unused)
 {
 	return PyString_FromStringOrNULL(cli_credentials_get_workstation(PyCredentials_AsCliCredentials(self)));
 }
 
-static PyObject *py_creds_set_workstation(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_set_workstation(PyObject *self, PyObject *args)
 {
 	char *newval;
 	enum credentials_obtained obt = CRED_SPECIFIED;
@@ -161,33 +150,33 @@ static PyObject *py_creds_set_workstation(pytalloc_Object *self, PyObject *args)
 	return PyBool_FromLong(cli_credentials_set_workstation(PyCredentials_AsCliCredentials(self), newval, obt));
 }
 
-static PyObject *py_creds_is_anonymous(pytalloc_Object *self)
+static PyObject *py_creds_is_anonymous(PyObject *self, PyObject *unused)
 {
 	return PyBool_FromLong(cli_credentials_is_anonymous(PyCredentials_AsCliCredentials(self)));
 }
 
-static PyObject *py_creds_set_anonymous(pytalloc_Object *self)
+static PyObject *py_creds_set_anonymous(PyObject *self, PyObject *unused)
 {
 	cli_credentials_set_anonymous(PyCredentials_AsCliCredentials(self));
 	Py_RETURN_NONE;
 }
 
-static PyObject *py_creds_authentication_requested(pytalloc_Object *self)
+static PyObject *py_creds_authentication_requested(PyObject *self, PyObject *unused)
 {
         return PyBool_FromLong(cli_credentials_authentication_requested(PyCredentials_AsCliCredentials(self)));
 }
 
-static PyObject *py_creds_wrong_password(pytalloc_Object *self)
+static PyObject *py_creds_wrong_password(PyObject *self, PyObject *unused)
 {
         return PyBool_FromLong(cli_credentials_wrong_password(PyCredentials_AsCliCredentials(self)));
 }
 
-static PyObject *py_creds_set_cmdline_callbacks(pytalloc_Object *self)
+static PyObject *py_creds_set_cmdline_callbacks(PyObject *self, PyObject *unused)
 {
         return PyBool_FromLong(cli_credentials_set_cmdline_callbacks(PyCredentials_AsCliCredentials(self)));
 }
 
-static PyObject *py_creds_parse_string(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_parse_string(PyObject *self, PyObject *args)
 {
 	char *newval;
 	enum credentials_obtained obt = CRED_SPECIFIED;
@@ -202,20 +191,24 @@ static PyObject *py_creds_parse_string(pytalloc_Object *self, PyObject *args)
 	Py_RETURN_NONE;
 }
 
-static PyObject *py_creds_get_nt_hash(pytalloc_Object *self)
+static PyObject *py_creds_get_nt_hash(PyObject *self, PyObject *unused)
 {
-	const struct samr_Password *ntpw = cli_credentials_get_nt_hash(PyCredentials_AsCliCredentials(self), self->ptr);
+	PyObject *ret;
+	struct cli_credentials *creds = PyCredentials_AsCliCredentials(self);
+	struct samr_Password *ntpw = cli_credentials_get_nt_hash(creds, creds);
 
-	return PyString_FromStringAndSize(discard_const_p(char, ntpw->hash), 16);
+	ret = PyString_FromStringAndSize(discard_const_p(char, ntpw->hash), 16);
+	TALLOC_FREE(ntpw);
+	return ret;
 }
 
-static PyObject *py_creds_get_kerberos_state(pytalloc_Object *self)
+static PyObject *py_creds_get_kerberos_state(PyObject *self, PyObject *unused)
 {
 	int state = cli_credentials_get_kerberos_state(PyCredentials_AsCliCredentials(self));
 	return PyInt_FromLong(state);
 }
 
-static PyObject *py_creds_set_kerberos_state(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_set_kerberos_state(PyObject *self, PyObject *args)
 {
 	int state;
 	if (!PyArg_ParseTuple(args, "i", &state))
@@ -225,7 +218,7 @@ static PyObject *py_creds_set_kerberos_state(pytalloc_Object *self, PyObject *ar
 	Py_RETURN_NONE;
 }
 
-static PyObject *py_creds_set_krb_forwardable(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_set_krb_forwardable(PyObject *self, PyObject *args)
 {
 	int state;
 	if (!PyArg_ParseTuple(args, "i", &state))
@@ -236,12 +229,12 @@ static PyObject *py_creds_set_krb_forwardable(pytalloc_Object *self, PyObject *a
 }
 
 
-static PyObject *py_creds_get_forced_sasl_mech(pytalloc_Object *self)
+static PyObject *py_creds_get_forced_sasl_mech(PyObject *self, PyObject *unused)
 {
 	return PyString_FromStringOrNULL(cli_credentials_get_forced_sasl_mech(PyCredentials_AsCliCredentials(self)));
 }
 
-static PyObject *py_creds_set_forced_sasl_mech(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_set_forced_sasl_mech(PyObject *self, PyObject *args)
 {
 	char *newval;
 	enum credentials_obtained obt = CRED_SPECIFIED;
@@ -256,7 +249,7 @@ static PyObject *py_creds_set_forced_sasl_mech(pytalloc_Object *self, PyObject *
 	Py_RETURN_NONE;
 }
 
-static PyObject *py_creds_guess(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_guess(PyObject *self, PyObject *args)
 {
 	PyObject *py_lp_ctx = Py_None;
 	struct loadparm_context *lp_ctx;
@@ -287,7 +280,7 @@ static PyObject *py_creds_guess(pytalloc_Object *self, PyObject *args)
 	Py_RETURN_NONE;
 }
 
-static PyObject *py_creds_set_machine_account(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_set_machine_account(PyObject *self, PyObject *args)
 {
 	PyObject *py_lp_ctx = Py_None;
 	struct loadparm_context *lp_ctx;
@@ -322,24 +315,11 @@ static PyObject *py_creds_set_machine_account(pytalloc_Object *self, PyObject *a
 
 static PyObject *PyCredentialCacheContainer_from_ccache_container(struct ccache_container *ccc)
 {
-	PyCredentialCacheContainerObject *py_ret;
-
-	if (ccc == NULL) {
-		Py_RETURN_NONE;
-	}
-
-	py_ret = (PyCredentialCacheContainerObject *)PyCredentialCacheContainer.tp_alloc(&PyCredentialCacheContainer, 0);
-	if (py_ret == NULL) {
-		PyErr_NoMemory();
-		return NULL;
-	}
-	py_ret->mem_ctx = talloc_new(NULL);
-	py_ret->ccc = talloc_reference(py_ret->mem_ctx, ccc);
-	return (PyObject *)py_ret;
+	return pytalloc_reference(&PyCredentialCacheContainer, ccc);
 }
 
 
-static PyObject *py_creds_get_named_ccache(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_get_named_ccache(PyObject *self, PyObject *args)
 {
 	PyObject *py_lp_ctx = Py_None;
 	char *ccache_name;
@@ -385,7 +365,7 @@ static PyObject *py_creds_get_named_ccache(pytalloc_Object *self, PyObject *args
 	return NULL;
 }
 
-static PyObject *py_creds_set_gensec_features(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_set_gensec_features(PyObject *self, PyObject *args)
 {
 	unsigned int gensec_features;
 
@@ -397,7 +377,7 @@ static PyObject *py_creds_set_gensec_features(pytalloc_Object *self, PyObject *a
 	Py_RETURN_NONE;
 }
 
-static PyObject *py_creds_get_gensec_features(pytalloc_Object *self, PyObject *args)
+static PyObject *py_creds_get_gensec_features(PyObject *self, PyObject *args)
 {
 	unsigned int gensec_features;
 
@@ -407,71 +387,71 @@ static PyObject *py_creds_get_gensec_features(pytalloc_Object *self, PyObject *a
 
 
 static PyMethodDef py_creds_methods[] = {
-	{ "get_username", (PyCFunction)py_creds_get_username, METH_NOARGS,
+	{ "get_username", py_creds_get_username, METH_NOARGS,
 		"S.get_username() -> username\nObtain username." },
-	{ "set_username", (PyCFunction)py_creds_set_username, METH_VARARGS,
+	{ "set_username", py_creds_set_username, METH_VARARGS,
 		"S.set_username(name, obtained=CRED_SPECIFIED) -> None\n"
 		"Change username." },
-	{ "get_password", (PyCFunction)py_creds_get_password, METH_NOARGS,
+	{ "get_password", py_creds_get_password, METH_NOARGS,
 		"S.get_password() -> password\n"
 		"Obtain password." },
-	{ "set_password", (PyCFunction)py_creds_set_password, METH_VARARGS,
+	{ "set_password", py_creds_set_password, METH_VARARGS,
 		"S.set_password(password, obtained=CRED_SPECIFIED) -> None\n"
 		"Change password." },
-	{ "get_domain", (PyCFunction)py_creds_get_domain, METH_NOARGS,
+	{ "get_domain", py_creds_get_domain, METH_NOARGS,
 		"S.get_domain() -> domain\n"
 		"Obtain domain name." },
-	{ "set_domain", (PyCFunction)py_creds_set_domain, METH_VARARGS,
+	{ "set_domain", py_creds_set_domain, METH_VARARGS,
 		"S.set_domain(domain, obtained=CRED_SPECIFIED) -> None\n"
 		"Change domain name." },
-	{ "get_realm", (PyCFunction)py_creds_get_realm, METH_NOARGS,
+	{ "get_realm", py_creds_get_realm, METH_NOARGS,
 		"S.get_realm() -> realm\n"
 		"Obtain realm name." },
-	{ "set_realm", (PyCFunction)py_creds_set_realm, METH_VARARGS,
+	{ "set_realm", py_creds_set_realm, METH_VARARGS,
 		"S.set_realm(realm, obtained=CRED_SPECIFIED) -> None\n"
 		"Change realm name." },
-	{ "get_bind_dn", (PyCFunction)py_creds_get_bind_dn, METH_NOARGS,
+	{ "get_bind_dn", py_creds_get_bind_dn, METH_NOARGS,
 		"S.get_bind_dn() -> bind dn\n"
 		"Obtain bind DN." },
-	{ "set_bind_dn", (PyCFunction)py_creds_set_bind_dn, METH_VARARGS,
+	{ "set_bind_dn", py_creds_set_bind_dn, METH_VARARGS,
 		"S.set_bind_dn(bind_dn) -> None\n"
 		"Change bind DN." },
-	{ "is_anonymous", (PyCFunction)py_creds_is_anonymous, METH_NOARGS,
+	{ "is_anonymous", py_creds_is_anonymous, METH_NOARGS,
 		NULL },
-	{ "set_anonymous", (PyCFunction)py_creds_set_anonymous, METH_NOARGS,
+	{ "set_anonymous", py_creds_set_anonymous, METH_NOARGS,
         	"S.set_anonymous() -> None\n"
 		"Use anonymous credentials." },
-	{ "get_workstation", (PyCFunction)py_creds_get_workstation, METH_NOARGS,
+	{ "get_workstation", py_creds_get_workstation, METH_NOARGS,
 		NULL },
-	{ "set_workstation", (PyCFunction)py_creds_set_workstation, METH_VARARGS,
+	{ "set_workstation", py_creds_set_workstation, METH_VARARGS,
 		NULL },
-	{ "authentication_requested", (PyCFunction)py_creds_authentication_requested, METH_NOARGS,
+	{ "authentication_requested", py_creds_authentication_requested, METH_NOARGS,
 		NULL },
-	{ "wrong_password", (PyCFunction)py_creds_wrong_password, METH_NOARGS,
+	{ "wrong_password", py_creds_wrong_password, METH_NOARGS,
 		"S.wrong_password() -> bool\n"
 		"Indicate the returned password was incorrect." },
-	{ "set_cmdline_callbacks", (PyCFunction)py_creds_set_cmdline_callbacks, METH_NOARGS,
+	{ "set_cmdline_callbacks", py_creds_set_cmdline_callbacks, METH_NOARGS,
 		"S.set_cmdline_callbacks() -> bool\n"
 		"Use command-line to obtain credentials not explicitly set." },
-	{ "parse_string", (PyCFunction)py_creds_parse_string, METH_VARARGS,
+	{ "parse_string", py_creds_parse_string, METH_VARARGS,
 		"S.parse_string(text, obtained=CRED_SPECIFIED) -> None\n"
 		"Parse credentials string." },
-	{ "get_nt_hash", (PyCFunction)py_creds_get_nt_hash, METH_NOARGS,
+	{ "get_nt_hash", py_creds_get_nt_hash, METH_NOARGS,
 		NULL },
-	{ "get_kerberos_state", (PyCFunction)py_creds_get_kerberos_state, METH_NOARGS,
+	{ "get_kerberos_state", py_creds_get_kerberos_state, METH_NOARGS,
 		NULL },
-	{ "set_kerberos_state", (PyCFunction)py_creds_set_kerberos_state, METH_VARARGS,
+	{ "set_kerberos_state", py_creds_set_kerberos_state, METH_VARARGS,
 		NULL },
-	{ "set_krb_forwardable", (PyCFunction)py_creds_set_krb_forwardable, METH_VARARGS,
+	{ "set_krb_forwardable", py_creds_set_krb_forwardable, METH_VARARGS,
 		NULL },
-	{ "guess", (PyCFunction)py_creds_guess, METH_VARARGS, NULL },
-	{ "set_machine_account", (PyCFunction)py_creds_set_machine_account, METH_VARARGS, NULL },
-	{ "get_named_ccache", (PyCFunction)py_creds_get_named_ccache, METH_VARARGS, NULL },
-	{ "set_gensec_features", (PyCFunction)py_creds_set_gensec_features, METH_VARARGS, NULL },
-	{ "get_gensec_features", (PyCFunction)py_creds_get_gensec_features, METH_NOARGS, NULL },
-	{ "get_forced_sasl_mech", (PyCFunction)py_creds_get_forced_sasl_mech, METH_NOARGS,
+	{ "guess", py_creds_guess, METH_VARARGS, NULL },
+	{ "set_machine_account", py_creds_set_machine_account, METH_VARARGS, NULL },
+	{ "get_named_ccache", py_creds_get_named_ccache, METH_VARARGS, NULL },
+	{ "set_gensec_features", py_creds_set_gensec_features, METH_VARARGS, NULL },
+	{ "get_gensec_features", py_creds_get_gensec_features, METH_NOARGS, NULL },
+	{ "get_forced_sasl_mech", py_creds_get_forced_sasl_mech, METH_NOARGS,
 		"S.get_forced_sasl_mech() -> SASL mechanism\nObtain forced SASL mechanism." },
-	{ "set_forced_sasl_mech", (PyCFunction)py_creds_set_forced_sasl_mech, METH_VARARGS,
+	{ "set_forced_sasl_mech", py_creds_set_forced_sasl_mech, METH_VARARGS,
 		"S.set_forced_sasl_mech(name) -> None\n"
 		"Set forced SASL mechanism." },
 	{ NULL }
@@ -479,7 +459,6 @@ static PyMethodDef py_creds_methods[] = {
 
 PyTypeObject PyCredentials = {
 	.tp_name = "credentials.Credentials",
-	.tp_basicsize = sizeof(pytalloc_Object),
 	.tp_new = py_creds_new,
 	.tp_flags = Py_TPFLAGS_DEFAULT,
 	.tp_methods = py_creds_methods,
@@ -488,23 +467,16 @@ PyTypeObject PyCredentials = {
 
 PyTypeObject PyCredentialCacheContainer = {
 	.tp_name = "credentials.CredentialCacheContainer",
-	.tp_basicsize = sizeof(pytalloc_Object),
 	.tp_flags = Py_TPFLAGS_DEFAULT,
 };
 
 void initcredentials(void)
 {
 	PyObject *m;
-	PyTypeObject *talloc_type = pytalloc_GetObjectType();
-	if (talloc_type == NULL)
-		return;
-
-	PyCredentials.tp_base = PyCredentialCacheContainer.tp_base = talloc_type;
-
-	if (PyType_Ready(&PyCredentials) < 0)
+	if (pytalloc_BaseObject_PyType_Ready(&PyCredentials) < 0)
 		return;
 
-	if (PyType_Ready(&PyCredentialCacheContainer) < 0)
+	if (pytalloc_BaseObject_PyType_Ready(&PyCredentialCacheContainer) < 0)
 		return;
 
 	m = Py_InitModule3("credentials", NULL, "Credentials management.");
diff --git a/auth/credentials/pycredentials.h b/auth/credentials/pycredentials.h
index 3a110fb..a136a21 100644
--- a/auth/credentials/pycredentials.h
+++ b/auth/credentials/pycredentials.h
@@ -24,11 +24,6 @@
 
 extern PyTypeObject PyCredentials;
 extern PyTypeObject PyCredentialCacheContainer;
-typedef struct {
-	PyObject_HEAD
-	TALLOC_CTX *mem_ctx;
-	struct ccache_container *ccc;
-} PyCredentialCacheContainerObject;
 #define PyCredentials_Check(py_obj) PyObject_TypeCheck(py_obj, &PyCredentials)
 #define PyCredentials_AsCliCredentials(py_obj) pytalloc_get_type(py_obj, struct cli_credentials)
 #define cli_credentials_from_py_object(py_obj) (py_obj == Py_None)?cli_credentials_init_anon(NULL):PyCredentials_AsCliCredentials(py_obj)
diff --git a/lib/ldb/pyldb.h b/lib/ldb/pyldb.h
index f8aea22..e0cce1e 100644
--- a/lib/ldb/pyldb.h
+++ b/lib/ldb/pyldb.h
@@ -60,11 +60,18 @@ typedef struct {
 } PyLdbModuleObject;
 #define pyldb_Module_AsModule(pyobj) ((PyLdbModuleObject *)pyobj)->mod
 
+/*
+ * NOTE: el (and so the return value of
+ * pyldb_MessageElement_AsMessageElement()) may not be a valid talloc
+ * context, it could be part of an array
+ */
+
 typedef struct {
 	PyObject_HEAD
 	TALLOC_CTX *mem_ctx;
 	struct ldb_message_element *el;
 } PyLdbMessageElementObject;
+
 #define pyldb_MessageElement_AsMessageElement(pyobj) ((PyLdbMessageElementObject *)pyobj)->el
 
 typedef struct {
diff --git a/lib/talloc/ABI/pytalloc-util-2.1.6.sigs b/lib/talloc/ABI/pytalloc-util-2.1.6.sigs
new file mode 100644
index 0000000..666fec0
--- /dev/null
+++ b/lib/talloc/ABI/pytalloc-util-2.1.6.sigs
@@ -0,0 +1,13 @@
+_pytalloc_get_mem_ctx: TALLOC_CTX *(PyObject *)
+_pytalloc_get_ptr: void *(PyObject *)
+_pytalloc_get_type: void *(PyObject *, const char *)
+pytalloc_BaseObject_PyType_Ready: int (PyTypeObject *)
+pytalloc_BaseObject_check: int (PyObject *)
+pytalloc_BaseObject_size: size_t (void)
+pytalloc_CObject_FromTallocPtr: PyObject *(void *)
+pytalloc_Check: int (PyObject *)
+pytalloc_GetBaseObjectType: PyTypeObject *(void)
+pytalloc_GetObjectType: PyTypeObject *(void)
+pytalloc_reference_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *)
+pytalloc_steal: PyObject *(PyTypeObject *, void *)
+pytalloc_steal_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *)
diff --git a/lib/talloc/ABI/pytalloc-util.py3-2.1.6.sigs b/lib/talloc/ABI/pytalloc-util.py3-2.1.6.sigs
new file mode 100644
index 0000000..4410f11
--- /dev/null
+++ b/lib/talloc/ABI/pytalloc-util.py3-2.1.6.sigs
@@ -0,0 +1,12 @@
+_pytalloc_get_mem_ctx: TALLOC_CTX *(PyObject *)
+_pytalloc_get_ptr: void *(PyObject *)
+_pytalloc_get_type: void *(PyObject *, const char *)
+pytalloc_BaseObject_PyType_Ready: int (PyTypeObject *)
+pytalloc_BaseObject_check: int (PyObject *)
+pytalloc_BaseObject_size: size_t (void)
+pytalloc_Check: int (PyObject *)
+pytalloc_GetBaseObjectType: PyTypeObject *(void)
+pytalloc_GetObjectType: PyTypeObject *(void)
+pytalloc_reference_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *)
+pytalloc_steal: PyObject *(PyTypeObject *, void *)
+pytalloc_steal_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *)
diff --git a/lib/talloc/ABI/talloc-2.1.4.sigs b/lib/talloc/ABI/talloc-2.1.6.sigs
similarity index 100%
copy from lib/talloc/ABI/talloc-2.1.4.sigs
copy to lib/talloc/ABI/talloc-2.1.6.sigs
diff --git a/lib/talloc/pytalloc.c b/lib/talloc/pytalloc.c
index 3afae9c..74349da 100644
--- a/lib/talloc/pytalloc.c
+++ b/lib/talloc/pytalloc.c
@@ -20,6 +20,7 @@
 #include <Python.h>
 #include <talloc.h>
 #include <pytalloc.h>
+#include "pytalloc_private.h"
 
 static PyTypeObject TallocObject_Type;
 
@@ -157,6 +158,86 @@ static PyTypeObject TallocObject_Type = {
 #endif
 };
 
+/**
+ * Default (but only slightly more useful than the default) implementation of Repr().


-- 
Samba Shared Repository



More information about the samba-cvs mailing list