[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Fri Mar 12 07:26:39 MST 2010


The branch, master has been updated
       via  0f21074... s4:torture/rpc/dfs.c: make use of dcerpc_binding_handle stubs
       via  81ac17d... s4:torture/rpc/echo.c: make use of dcerpc_binding_handle stubs
       via  f163393... s4:torture/libnet: make use of dcerpc_binding_handle stubs
       via  7be154a... s4:torture/ntp: make use of dcerpc_binding_handle stubs
       via  9e0557a... s4:libnet/libnet_time.c: make use of dcerpc_binding_handle stubs
       via  07a28b1... s4:libnet/libnet_share.c: make use of dcerpc_binding_handle stubs
       via  02c61f5... s4:libnet/libnet_samsync.c: make use of dcerpc_binding_handle stubs
       via  19d229a... s4:libnet/libnet_passwd.c: make use of dcerpc_binding_handle stubs
       via  bec3d8e... s4:libnet/libnet_join.c: make use of dcerpc_binding_handle stubs
       via  7807de5... s4:libcli/util/clilsa.c: make use of dcerpc_binding_handle stubs
       via  dea7c4f... s4:client: make use of dcerpc_binding_handle stubs
       via  580d491... s4:rpc_server/spoolss: make use of dcerpc_binding_handle stubs
       via  b6623e3... s4:lib/registry/rpc: convert to use dcerpc_binding_handle stubs
       via  d0662ac... pidl:Samba4/NDR/Client: make the old rpc_request style async functions static
       via  d4f1432... s4:dcom: add a comment about unused code.
       via  6292cb7... s4:libcli/composite: get rid of composite_continue_rpc()
       via  7b76c11... s4:librpc/rpc/dcerpc_util.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  398f477... s4:librpc/rpc/dcerpc_schannel.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  ff54cbe... s4:torture/rpc: make use of use tevent_req based dcerpc_binding_handle stubs
       via  e9cae3b... s4:winbind/wb_sam_logon.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  399cbb6... s4:winbind/wb_init_domain.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  7681260... s4:winbind/wb_dom_info_trusted.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  53bdd25... s4:winbind/wb_connect_sam.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  d836dd9... s4:winbind/wb_connect_lsa.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  6ecae51... s4:winbind/wb_cmd_usersids.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  765d4a5... s4:winbind/wb_cmd_list_trustdom.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  05d6343... s4:winbind/wb_cmd_getdcname: make use of use tevent_req based dcerpc_binding_handle stubs
       via  9e87e6d... s4:winbind/wb_async_helpers.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  a011cbc... s4:libnet/libnet_rpc.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  c190ae1... s4:libnet/usernam.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  a8967c3... s4:libnet/userinfo.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  ccc0ab6... s4:libnet/libnet_user.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  c148405... s4:libnet/libnet_lookup.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  eae3436... s4:libnet/libnet_group.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  3d72524... s4:libnet/libnet_domain.c: make use of use tevent_req based dcerpc_binding_handle stubs
       via  f0a3943... s4:libnet_unbecome_dc: make use of use tevent_req based dcerpc_binding_handle stubs
       via  2c5bbea... s4:libnet_become_dc: make use of use tevent_req based dcerpc_binding_handle stubs
       via  8dc4fd9... s4:libnet/group*: make use of tevent_req based dcerpc_binding_handle stubs
       via  a3ae980... s4:libnet: keep a dcerpc_binding_handle for samr and lsa
       via  77fb700... s4:dsdb/repl: make use of use tevent_req based dcerpc_binding_handle stubs
       via  15d9675... pidl:Samba4/NDR/Client: generate stubs for dcerpc_binding_handle abstraction
       via  d95ca90... s4:librpc/rpc: prepare dcerpc dependecies before pidl changes
       via  6677a54... s4:librpc/rpc: add very basic dcerpc_binding_handle infrastructure
       via  454bedc... pidl:Samba4/NDR/Client: don't generate client stubs for function marked as [todo]
       via  8844acf... pidl:Samba/Python: don't generate methods for functions marked as [todo]
       via  f4c227e... librpc: rerun make idl
       via  f85c825... drsuapi.idl: don't mark drsuapi_DsGetMemberships as [todo]
      from  79100c2... s3: Add "g_lock_do" as a convenience wrapper function

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 0f210749a779249b8f323c2eb2aec38137ae4317
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Mar 11 12:51:46 2010 +0100

    s4:torture/rpc/dfs.c: make use of dcerpc_binding_handle stubs
    
    metze

commit 81ac17d12d28b02e896f9c6c17a3aa441e87f4a7
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Mar 11 12:30:24 2010 +0100

    s4:torture/rpc/echo.c: make use of dcerpc_binding_handle stubs
    
    metze

commit f1633934cd1fc455648230c6e542c2a67f751879
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Mar 11 11:33:10 2010 +0100

    s4:torture/libnet: make use of dcerpc_binding_handle stubs
    
    metze

commit 7be154a6168bd1bb49d776599b9ede0826835c66
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Mar 11 11:31:36 2010 +0100

    s4:torture/ntp: make use of dcerpc_binding_handle stubs
    
    metze

commit 9e0557a14975375596e7ed89c7ed70b85116e7fc
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Mar 11 11:27:58 2010 +0100

    s4:libnet/libnet_time.c: make use of dcerpc_binding_handle stubs
    
    metze

commit 07a28b1923bee35c365972e4c5935de8637d412b
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Mar 11 11:27:40 2010 +0100

    s4:libnet/libnet_share.c: make use of dcerpc_binding_handle stubs
    
    metze

commit 02c61f520cfd5bea83ab18a4877c978f448fa4d3
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Mar 11 11:27:16 2010 +0100

    s4:libnet/libnet_samsync.c: make use of dcerpc_binding_handle stubs
    
    metze

commit 19d229a11b959f4dd841b1a4e851f39271121e10
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Mar 11 07:59:14 2010 +0100

    s4:libnet/libnet_passwd.c: make use of dcerpc_binding_handle stubs
    
    metze

commit bec3d8e7ae84c7adb64bff64529f7838aa45fd9b
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Mar 11 11:26:27 2010 +0100

    s4:libnet/libnet_join.c: make use of dcerpc_binding_handle stubs
    
    metze

commit 7807de5693174ee018561a694c8b6baf292888e2
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Mar 11 11:25:34 2010 +0100

    s4:libcli/util/clilsa.c: make use of dcerpc_binding_handle stubs
    
    metze

commit dea7c4f999c157358338436ce1717ef8bf3f96e0
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Mar 11 11:25:01 2010 +0100

    s4:client: make use of dcerpc_binding_handle stubs
    
    metze

commit 580d491faa8baf35b85262fa84d8c3a0591d9f34
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 18:17:28 2010 +0100

    s4:rpc_server/spoolss: make use of dcerpc_binding_handle stubs
    
    metze

commit b6623e3a264d685c6f271a8f1e2529c3dcd201b8
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 18:13:50 2010 +0100

    s4:lib/registry/rpc: convert to use dcerpc_binding_handle stubs
    
    metze

commit d0662ac4d01a5de34a368504b63f03a5ab43c398
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 11:12:17 2010 +0100

    pidl:Samba4/NDR/Client: make the old rpc_request style async functions static
    
    metze

commit d4f143258b61055864d8bb61ec180284a8b68e71
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 10:36:05 2010 +0100

    s4:dcom: add a comment about unused code.
    
    metze

commit 6292cb7f7f097aba2151d348331700e2b99fe49e
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 10:30:03 2010 +0100

    s4:libcli/composite: get rid of composite_continue_rpc()
    
    metze

commit 7b76c118ad0f5272a2dac679e482f7b1b2440abc
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 10:23:01 2010 +0100

    s4:librpc/rpc/dcerpc_util.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit 398f477941de2fe3010c4f44b5507a9b764c2fd3
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 10:17:25 2010 +0100

    s4:librpc/rpc/dcerpc_schannel.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit ff54cbe3d4c090003720eaef2a7321923404db39
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Mar 9 15:46:55 2010 +0100

    s4:torture/rpc: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit e9cae3b5bc9a59a45973c1671e2d7372d1c32b12
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 10:04:20 2010 +0100

    s4:winbind/wb_sam_logon.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit 399cbb647995d3caee4aba21a7333102a28324ba
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 10:03:56 2010 +0100

    s4:winbind/wb_init_domain.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit 7681260e1eb5fdf168e7e1a35e8b8b0a14e1c2e0
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 10:03:26 2010 +0100

    s4:winbind/wb_dom_info_trusted.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit 53bdd25829b0af13a30b70e503f59702708668a8
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 10:02:50 2010 +0100

    s4:winbind/wb_connect_sam.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit d836dd9ea7e96752e405990521d80242e948a84b
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 10:02:25 2010 +0100

    s4:winbind/wb_connect_lsa.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit 6ecae51e18ef31010ba5cdac845e13108e821c40
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 10:01:57 2010 +0100

    s4:winbind/wb_cmd_usersids.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit 765d4a52cba49ac1c8d30ae825c03f6003acd188
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 10:01:23 2010 +0100

    s4:winbind/wb_cmd_list_trustdom.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit 05d6343ac7a9a1e244ad70c0c24d65f33936e6ad
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Mar 9 13:49:20 2010 +0100

    s4:winbind/wb_cmd_getdcname: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit 9e87e6dc9ae73e1a5ad8bfc1742282ba69202ddd
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Mar 8 20:33:48 2010 +0100

    s4:winbind/wb_async_helpers.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit a011cbccb7956b277657690f2c3070f4eea78092
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 09:53:36 2010 +0100

    s4:libnet/libnet_rpc.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit c190ae1631ae1307116005280fa61dbfac90a19d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 09:43:13 2010 +0100

    s4:libnet/usernam.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit a8967c378c771697760f47996aaae8f3d1e4a98b
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 09:42:07 2010 +0100

    s4:libnet/userinfo.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit ccc0ab681133548d9c8f0b34368b5836374d9947
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 09:39:55 2010 +0100

    s4:libnet/libnet_user.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit c148405a12919ca48163f0cbe337fe30b6c97d92
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Mar 9 16:59:33 2010 +0100

    s4:libnet/libnet_lookup.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit eae3436320fef015f3e2f78ed32aa57cae0aa7f9
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Mar 9 16:48:17 2010 +0100

    s4:libnet/libnet_group.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit 3d72524ab4de8d3fe820c0eb0dcd60c4a2cc3fe2
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Mar 9 16:45:04 2010 +0100

    s4:libnet/libnet_domain.c: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit f0a394315d6adede8e319a60236aca114b1aa362
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Mar 8 17:12:56 2010 +0100

    s4:libnet_unbecome_dc: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit 2c5bbea8cbf1fd95db946ca65893f081b8c392d2
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Mar 8 16:41:43 2010 +0100

    s4:libnet_become_dc: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit 8dc4fd921b3d49d757f382d5546447eed37ea9f2
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Mar 8 16:32:45 2010 +0100

    s4:libnet/group*: make use of tevent_req based dcerpc_binding_handle stubs
    
    metze

commit a3ae9802d47f7a39030be089d15fc42f8e8917e6
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Mar 8 16:27:14 2010 +0100

    s4:libnet: keep a dcerpc_binding_handle for samr and lsa
    
    metze

commit 77fb700e2096a0fbd1ed9361f476898b2b7771c5
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Mar 8 16:23:17 2010 +0100

    s4:dsdb/repl: make use of use tevent_req based dcerpc_binding_handle stubs
    
    metze

commit 15d9675b049ee157037328daa714f79b339c0c73
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Mar 8 12:31:06 2010 +0100

    pidl:Samba4/NDR/Client: generate stubs for dcerpc_binding_handle abstraction
    
    metze

commit d95ca9003044969eacf6b42710a4ce5640084b2d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Mar 8 16:24:19 2010 +0100

    s4:librpc/rpc: prepare dcerpc dependecies before pidl changes
    
    metze

commit 6677a5431cc33d8fba565ee068d4c87050ddbd96
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Mar 8 12:29:52 2010 +0100

    s4:librpc/rpc: add very basic dcerpc_binding_handle infrastructure
    
    metze

commit 454bedcb806ce54dae2e6ecc6650d8972287c87c
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Mar 10 17:52:38 2010 +0100

    pidl:Samba4/NDR/Client: don't generate client stubs for function marked as [todo]
    
    metze

commit 8844acf4248ae8df9293eeff2eed8827ea802211
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Mar 12 00:52:30 2010 +0100

    pidl:Samba/Python: don't generate methods for functions marked as [todo]
    
    metze

commit f4c227e5719abc02d510509a81f2628740b58803
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Mar 12 09:20:23 2010 +0100

    librpc: rerun make idl
    
    metze

commit f85c825ae2e37a2ae744d20ea385a56863daab91
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Mar 12 00:45:56 2010 +0100

    drsuapi.idl: don't mark drsuapi_DsGetMemberships as [todo]
    
    metze

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

Summary of changes:
 librpc/gen_ndr/drsuapi.h                    |    2 +-
 librpc/gen_ndr/ndr_drsuapi.c                |    3 +
 librpc/idl/drsuapi.idl                      |    4 +-
 pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm    |  225 +++++++++++++++++++++++---
 pidl/lib/Parse/Pidl/Samba4/Python.pm        |    1 +
 source4/client/client.c                     |    2 +-
 source4/dsdb/repl/drepl_notify.c            |   25 ++-
 source4/dsdb/repl/drepl_out_helpers.c       |   74 +++++----
 source4/dsdb/repl/drepl_service.h           |    1 +
 source4/lib/com/dcom/main.c                 |    2 +-
 source4/lib/registry/rpc.c                  |   33 ++--
 source4/libcli/composite/composite.c        |   11 --
 source4/libcli/composite/composite.h        |    5 -
 source4/libcli/util/clilsa.c                |   12 +-
 source4/libnet/groupinfo.c                  |   82 ++++++----
 source4/libnet/groupman.c                   |   74 +++++----
 source4/libnet/libnet.h                     |    2 +
 source4/libnet/libnet_become_dc.c           |  133 +++++++++------
 source4/libnet/libnet_domain.c              |  232 +++++++++++++++------------
 source4/libnet/libnet_group.c               |   57 ++++---
 source4/libnet/libnet_join.c                |   26 ++--
 source4/libnet/libnet_lookup.c              |   29 ++--
 source4/libnet/libnet_passwd.c              |   26 ++--
 source4/libnet/libnet_rpc.c                 |   57 ++++---
 source4/libnet/libnet_samsync.c             |    2 +-
 source4/libnet/libnet_share.c               |    6 +-
 source4/libnet/libnet_time.c                |    2 +-
 source4/libnet/libnet_unbecome_dc.c         |   39 +++--
 source4/libnet/libnet_user.c                |   57 ++++---
 source4/libnet/userinfo.c                   |   81 ++++++----
 source4/libnet/userman.c                    |  153 ++++++++++--------
 source4/librpc/config.mk                    |   10 +-
 source4/librpc/rpc/dcerpc.c                 |    8 +
 source4/librpc/rpc/dcerpc.h                 |   11 ++
 source4/librpc/rpc/dcerpc_schannel.c        |   38 +++--
 source4/librpc/rpc/dcerpc_util.c            |   22 ++--
 source4/rpc_server/spoolss/dcesrv_spoolss.c |    2 +-
 source4/torture/libnet/domain.c             |    6 +-
 source4/torture/libnet/libnet_domain.c      |   20 ++--
 source4/torture/libnet/libnet_group.c       |   48 +++---
 source4/torture/libnet/libnet_share.c       |    6 +-
 source4/torture/libnet/libnet_user.c        |   66 ++++----
 source4/torture/libnet/utils.c              |   42 +++---
 source4/torture/ntp/ntp_signd.c             |    4 +-
 source4/torture/rpc/dfs.c                   |  114 +++++++-------
 source4/torture/rpc/echo.c                  |   41 +++--
 source4/torture/rpc/lsa.c                   |   16 +-
 source4/torture/rpc/netlogon.c              |    9 +-
 source4/torture/rpc/samr.c                  |    8 +-
 source4/torture/rpc/schannel.c              |   20 ++-
 source4/winbind/wb_async_helpers.c          |  111 ++++++++------
 source4/winbind/wb_cmd_getdcname.c          |   23 ++--
 source4/winbind/wb_cmd_list_trustdom.c      |   31 +++--
 source4/winbind/wb_cmd_usersids.c           |   22 ++-
 source4/winbind/wb_connect_lsa.c            |   22 ++-
 source4/winbind/wb_connect_sam.c            |   42 +++--
 source4/winbind/wb_dom_info_trusted.c       |   45 +++---
 source4/winbind/wb_init_domain.c            |   43 +++--
 source4/winbind/wb_sam_logon.c              |   19 ++-
 59 files changed, 1387 insertions(+), 920 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/drsuapi.h b/librpc/gen_ndr/drsuapi.h
index 8bd80fd..f542505 100644
--- a/librpc/gen_ndr/drsuapi.h
+++ b/librpc/gen_ndr/drsuapi.h
@@ -787,7 +787,7 @@ struct drsuapi_DsGetMembershipsRequest1 {
 	uint32_t count;/* [range(1,10000)] */
 	struct drsuapi_DsReplicaObjectIdentifier **info_array;/* [unique,size_is(count)] */
 	uint32_t flags;
-	enum drsuapi_DsMembershipType type;
+	enum drsuapi_DsMembershipType type;/* [range(1,7)] */
 	struct drsuapi_DsReplicaObjectIdentifier *domain;/* [unique] */
 };
 
diff --git a/librpc/gen_ndr/ndr_drsuapi.c b/librpc/gen_ndr/ndr_drsuapi.c
index 8aab9e4..2400766 100644
--- a/librpc/gen_ndr/ndr_drsuapi.c
+++ b/librpc/gen_ndr/ndr_drsuapi.c
@@ -4992,6 +4992,9 @@ static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsRequest1(struct ndr_pu
 		}
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
 		NDR_CHECK(ndr_pull_drsuapi_DsMembershipType(ndr, NDR_SCALARS, &r->type));
+		if (r->type < 1 || r->type > 7) {
+			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+		}
 		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
 		if (_ptr_domain) {
 			NDR_PULL_ALLOC(ndr, r->domain);
diff --git a/librpc/idl/drsuapi.idl b/librpc/idl/drsuapi.idl
index 54a7b93..94e527e 100644
--- a/librpc/idl/drsuapi.idl
+++ b/librpc/idl/drsuapi.idl
@@ -855,7 +855,7 @@ interface drsuapi
 		[range(1,10000)] uint32 count;
 		[size_is(count)] drsuapi_DsReplicaObjectIdentifier **info_array;
 		uint32 flags;
-		drsuapi_DsMembershipType type;
+		[range(1,7)] drsuapi_DsMembershipType type;
 		drsuapi_DsReplicaObjectIdentifier *domain;
 	} drsuapi_DsGetMembershipsRequest1;
 
@@ -863,7 +863,7 @@ interface drsuapi
 		[case(1)] drsuapi_DsGetMembershipsRequest1 req1;
 	} drsuapi_DsGetMembershipsRequest;
 
-	[todo] WERROR drsuapi_DsGetMemberships(
+	WERROR drsuapi_DsGetMemberships(
 		[in] policy_handle *bind_handle,
 		[in] uint32 level,
 		[in,ref] [switch_is(level)] drsuapi_DsGetMembershipsRequest *req,
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
index 958f215..aa9dad9 100644
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
@@ -16,21 +16,20 @@ use strict;
 
 my($res,$res_hdr);
 
-sub ParseFunctionSend($$$)
+sub ParseFunctionOldSend($$$)
 {
 	my ($interface, $fn, $name) = @_;
 	my $uname = uc $name;
 
-	my $proto = "struct rpc_request *dcerpc_$name\_send(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct $name *r)";
+	if (has_property($fn, "todo")) {
+		return;
+	}
 
-	$res_hdr .= "\n$proto;\n";
+	my $proto = "static struct rpc_request *dcerpc_$name\_send(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct $name *r)";
 
 	$res .= "$proto\n{\n";
 
-	if (has_property($fn, "todo")) {
-		$res .= "\treturn NULL;\n";
-	} else {
-		$res .= "
+	$res .= "
 	if (p->conn->flags & DCERPC_DEBUG_PRINT_IN) {
 		NDR_PRINT_IN_DEBUG($name, r);
 	}
@@ -38,26 +37,24 @@ sub ParseFunctionSend($$$)
 	return dcerpc_ndr_request_send(p, NULL, &ndr_table_$interface->{NAME},
 				       NDR_$uname, true, mem_ctx, r);
 ";
-	}
 
 	$res .= "}\n\n";
 }
 
-sub ParseFunctionRecv($$$)
+sub ParseFunctionOldRecv($$$)
 {
 	my ($interface, $fn, $name) = @_;
 	my $uname = uc $name;
 
-	my $proto = "NTSTATUS dcerpc_$name\_recv(struct rpc_request *rreq)";
+	if (has_property($fn, "todo")) {
+		return;
+	}
 
-	$res_hdr .= "\n$proto;\n";
+	my $proto = "static NTSTATUS dcerpc_$name\_recv(struct rpc_request *rreq)";
 
 	$res .= "$proto\n{\n";
 
-	if (has_property($fn, "todo")) {
-		$res .= "\treturn NT_STATUS_NOT_IMPLEMENTED;\n";
-	} else {
-		$res .= "NTSTATUS status;
+	$res .= "NTSTATUS status;
 	struct dcerpc_pipe *p = rreq->p;
 	struct $name *r = (struct $name *)rreq->ndr.struct_ptr;
 
@@ -69,7 +66,6 @@ sub ParseFunctionRecv($$$)
 
 	return status;
 ";
-	}
 
 	$res .= "}\n\n";
 }
@@ -79,15 +75,16 @@ sub ParseFunctionSync($$$)
 	my ($interface, $fn, $name) = @_;
 	my $uname = uc $name;
 
+	if (has_property($fn, "todo")) {
+		return;
+	}
+
 	my $proto = "NTSTATUS dcerpc_$name(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct $name *r)";
 
 	$res_hdr .= "\n$proto;\n";
 	$res .= "$proto\n{\n";
 
-	if (has_property($fn, "todo")) {
-		$res .= "\treturn NT_STATUS_NOT_IMPLEMENTED;\n";
-	} else {
-		$res .= "
+	$res .= "
 	NTSTATUS status;
 
 	if (p->conn->flags & DCERPC_DEBUG_PRINT_IN) {
@@ -109,20 +106,200 @@ sub ParseFunctionSync($$$)
 "
 	return status;
 ";
-	}
 
 	$res .= "}\n\n";
 }
 
+sub ParseFunction_r_State($$$)
+{
+	my ($interface, $fn, $name) = @_;
+	my $uname = uc $name;
+
+	if (has_property($fn, "todo")) {
+		return;
+	}
+
+	$res .= "struct dcerpc_$name\_r_state {\n";
+	$res .= "\tTALLOC_CTX *out_mem_ctx;\n";
+	$res .= "};\n";
+	$res .= "\n";
+	$res .= "static void dcerpc_$name\_r_done(struct rpc_request *subreq);\n";
+	$res .= "\n";
+}
+
+sub ParseFunction_r_Send($$$)
+{
+	my ($interface, $fn, $name) = @_;
+	my $uname = uc $name;
+
+	if (has_property($fn, "todo")) {
+		return;
+	}
+
+	my $proto = "struct tevent_req *dcerpc_$name\_r_send(TALLOC_CTX *mem_ctx,\n";
+	$proto   .= "\tstruct tevent_context *ev,\n",
+	$proto   .= "\tstruct dcerpc_binding_handle *h,\n",
+	$proto   .= "\tstruct $name *r)";
+
+	$res_hdr .= "\n$proto;\n";
+
+	$res .= "$proto\n{\n";
+
+	$res .= "\tstruct tevent_req *req;\n";
+	$res .= "\tstruct dcerpc_$name\_r_state *state;\n";
+	$res .= "\tstruct dcerpc_pipe *p =\n";
+	$res .= "\t\ttalloc_get_type_abort(h->private_data,\n";
+	$res .= "\t\tstruct dcerpc_pipe);\n";
+	$res .= "\tstruct rpc_request *subreq;\n";
+	$res .= "\n";
+
+	$res .= "\treq = tevent_req_create(mem_ctx, &state,\n";
+	$res .= "\t\t\t\tstruct dcerpc_$name\_r_state);\n";
+	$res .= "\tif (req == NULL) {\n";
+	$res .= "\t\treturn NULL;\n";
+	$res .= "\t}\n";
+	$res .= "\n";
+
+	my $out_params = 0;
+	foreach (@{$fn->{ELEMENTS}}) {
+		if (grep(/out/, @{$_->{DIRECTION}})) {
+			$out_params++;
+		}
+	}
+
+	my $submem;
+	if ($out_params > 0) {
+		$res .= "\tstate->out_mem_ctx = talloc_new(state);\n";
+		$res .= "\tif (tevent_req_nomem(state->out_mem_ctx, req)) {\n";
+		$res .= "\t\treturn tevent_req_post(req, ev);\n";
+		$res .= "\t}\n";
+		$res .= "\n";
+		$submem = "state->out_mem_ctx";
+	} else {
+		$res .= "\tstate->out_mem_ctx = NULL;\n";
+		$submem = "state";
+	}
+
+	$res .= "\tsubreq = dcerpc_$name\_send(p, $submem, r);\n";
+	$res .= "\tif (tevent_req_nomem(subreq, req)) {\n";
+	$res .= "\t\treturn tevent_req_post(req, ev);\n";
+	$res .= "\t}\n";
+	$res .= "\tsubreq->async.callback = dcerpc_$name\_r_done;\n";
+	$res .= "\tsubreq->async.private_data = req;\n";
+	$res .= "\n";
+
+	$res .= "\treturn req;\n";
+	$res .= "}\n";
+	$res .= "\n";
+}
+
+sub ParseFunction_r_Done($$$)
+{
+	my ($interface, $fn, $name) = @_;
+	my $uname = uc $name;
+
+	if (has_property($fn, "todo")) {
+		return;
+	}
+
+	my $proto = "static void dcerpc_$name\_r_done(struct rpc_request *subreq)";
+
+	$res .= "$proto\n";
+	$res .= "{\n";
+
+	$res .= "\tstruct tevent_req *req =\n";
+	$res .= "\t\ttalloc_get_type_abort(subreq->async.private_data,\n";
+	$res .= "\t\tstruct tevent_req);\n";
+	$res .= "\tNTSTATUS status;\n";
+	$res .= "\n";
+
+	$res .= "\tstatus = dcerpc_$name\_recv(subreq);\n";
+	$res .= "\tif (!NT_STATUS_IS_OK(status)) {\n";
+	$res .= "\t\ttevent_req_nterror(req, status);\n";
+	$res .= "\t\treturn;\n";
+	$res .= "\t}\n";
+	$res .= "\n";
+
+	$res .= "\ttevent_req_done(req);\n";
+	$res .= "}\n";
+	$res .= "\n";
+}
+
+sub ParseFunction_r_Recv($$$)
+{
+	my ($interface, $fn, $name) = @_;
+	my $uname = uc $name;
+
+	if (has_property($fn, "todo")) {
+		return;
+	}
+
+	my $proto = "NTSTATUS dcerpc_$name\_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)";
+
+	$res_hdr .= "\n$proto;\n";
+
+	$res .= "$proto\n{\n";
+
+	$res .= "\tstruct dcerpc_$name\_r_state *state =\n";
+	$res .= "\t\ttevent_req_data(req,\n";
+	$res .= "\t\tstruct dcerpc_$name\_r_state);\n";
+	$res .= "\tNTSTATUS status;\n";
+	$res .= "\n";
+
+	$res .= "\tif (tevent_req_is_nterror(req, &status)) {\n";
+	$res .= "\t\ttevent_req_received(req);\n";
+	$res .= "\t\treturn status;\n";
+	$res .= "\t}\n";
+	$res .= "\n";
+
+	$res .= "\ttalloc_steal(mem_ctx, state->out_mem_ctx);\n";
+	$res .= "\n";
+
+	$res .= "\ttevent_req_received(req);\n";
+	$res .= "\treturn NT_STATUS_OK;\n";
+	$res .= "}\n";
+	$res .= "\n";
+}
+
+sub ParseFunction_r_Sync($$$)
+{
+	my ($interface, $fn, $name) = @_;
+	my $uname = uc $name;
+
+	if (has_property($fn, "todo")) {
+		return;
+	}
+
+	my $proto = "NTSTATUS dcerpc_$name\_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct $name *r)";
+
+	$res_hdr .= "\n$proto;\n";
+	$res .= "$proto\n{\n";
+
+	$res .= "\tstruct dcerpc_pipe *p =\n";
+	$res .= "\t\ttalloc_get_type_abort(h->private_data,\n";
+	$res .= "\t\tstruct dcerpc_pipe);\n";
+	$res .= "\n";
+
+	$res .= "\treturn dcerpc_$name(p, mem_ctx, r);\n";
+	$res .= "}\n";
+	$res .= "\n";
+}
+
 #####################################################################
 # parse a function
 sub ParseFunction($$)
 {
 	my ($interface, $fn) = @_;
 
-	ParseFunctionSend($interface, $fn, $fn->{NAME});
-	ParseFunctionRecv($interface, $fn, $fn->{NAME});
 	ParseFunctionSync($interface, $fn, $fn->{NAME});
+
+	ParseFunctionOldSend($interface, $fn, $fn->{NAME});
+	ParseFunctionOldRecv($interface, $fn, $fn->{NAME});
+	ParseFunction_r_State($interface, $fn, $fn->{NAME});
+	ParseFunction_r_Send($interface, $fn, $fn->{NAME});
+	ParseFunction_r_Done($interface, $fn, $fn->{NAME});
+	ParseFunction_r_Recv($interface, $fn, $fn->{NAME});
+	ParseFunction_r_Sync($interface, $fn, $fn->{NAME});
 }
 
 my %done;
@@ -176,6 +353,8 @@ sub Parse($$$$)
 		$res .= "#include <stdarg.h>\n";
 		$res .= "#include <core/ntstatus.h>\n";
 	}
+	$res .= "#include <tevent.h>\n";
+	$res .= "#include \"lib/util/tevent_ntstatus.h\"\n";
 	$res .= "#include \"$ndr_header\"\n";
 	$res .= "#include \"$client_header\"\n";
 	$res .= "\n";
diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm
index 781d640..a6c2738 100644
--- a/pidl/lib/Parse/Pidl/Samba4/Python.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm
@@ -648,6 +648,7 @@ sub Interface($$$)
 		foreach my $d (@{$interface->{FUNCTIONS}}) {
 			next if not defined($d->{OPNUM});
 			next if has_property($d, "nopython");
+			next if has_property($d, "todo");
 
 			my $prettyname = $d->{NAME};
 
diff --git a/source4/client/client.c b/source4/client/client.c
index 1958dfc..55a2d0c 100644
--- a/source4/client/client.c
+++ b/source4/client/client.c
@@ -2605,7 +2605,7 @@ static bool browse_host(struct loadparm_context *lp_ctx,
 
 	do {
 		ZERO_STRUCT(ctr1);
-		status = dcerpc_srvsvc_NetShareEnumAll(p, mem_ctx, &r);
+		status = dcerpc_srvsvc_NetShareEnumAll_r(p->binding_handle, mem_ctx, &r);
 
 		if (NT_STATUS_IS_OK(status) && 
 		    (W_ERROR_EQUAL(r.out.result, WERR_MORE_DATA) ||
diff --git a/source4/dsdb/repl/drepl_notify.c b/source4/dsdb/repl/drepl_notify.c
index 5047da3..7ae4af7 100644
--- a/source4/dsdb/repl/drepl_notify.c
+++ b/source4/dsdb/repl/drepl_notify.c
@@ -38,6 +38,7 @@
 
 
 struct dreplsrv_op_notify_state {
+	struct tevent_context *ev;
 	struct dreplsrv_notify_operation *op;
 	void *ndr_struct_ptr;
 };
@@ -60,6 +61,7 @@ static struct tevent_req *dreplsrv_op_notify_send(TALLOC_CTX *mem_ctx,
 	if (req == NULL) {
 		return NULL;
 	}
+	state->ev = ev;
 	state->op = op;
 
 	subreq = dreplsrv_out_drsuapi_send(state,
@@ -90,7 +92,7 @@ static void dreplsrv_op_notify_connect_done(struct tevent_req *subreq)
 	dreplsrv_op_notify_replica_sync_trigger(req);
 }
 
-static void dreplsrv_op_notify_replica_sync_done(struct rpc_request *rreq);
+static void dreplsrv_op_notify_replica_sync_done(struct tevent_req *subreq);
 
 static void dreplsrv_op_notify_replica_sync_trigger(struct tevent_req *req)
 {
@@ -99,8 +101,8 @@ static void dreplsrv_op_notify_replica_sync_trigger(struct tevent_req *req)
 		struct dreplsrv_op_notify_state);
 	struct dreplsrv_partition *partition = state->op->source_dsa->partition;
 	struct dreplsrv_drsuapi_connection *drsuapi = state->op->source_dsa->conn->drsuapi;
-	struct rpc_request *rreq;
 	struct drsuapi_DsReplicaSync *r;
+	struct tevent_req *subreq;
 
 	r = talloc_zero(state, struct drsuapi_DsReplicaSync);
 	if (tevent_req_nomem(r, req)) {
@@ -125,17 +127,21 @@ static void dreplsrv_op_notify_replica_sync_trigger(struct tevent_req *req)
 
 	state->ndr_struct_ptr = r;
 
-	rreq = dcerpc_drsuapi_DsReplicaSync_send(drsuapi->pipe, r, r);
-	if (tevent_req_nomem(rreq, req)) {
+	subreq = dcerpc_drsuapi_DsReplicaSync_r_send(state,
+						     state->ev,
+						     drsuapi->drsuapi_handle,
+						     r);
+	if (tevent_req_nomem(subreq, req)) {
 		return;
 	}
-	composite_continue_rpc(NULL, rreq, dreplsrv_op_notify_replica_sync_done, req);
+	tevent_req_set_callback(subreq, dreplsrv_op_notify_replica_sync_done, req);
 }
 
-static void dreplsrv_op_notify_replica_sync_done(struct rpc_request *rreq)
+static void dreplsrv_op_notify_replica_sync_done(struct tevent_req *subreq)
 {
-	struct tevent_req *req = talloc_get_type(rreq->async.private_data,
-						 struct tevent_req);
+	struct tevent_req *req =
+		tevent_req_callback_data(subreq,
+		struct tevent_req);
 	struct dreplsrv_op_notify_state *state =
 		tevent_req_data(req,
 		struct dreplsrv_op_notify_state);
@@ -145,7 +151,8 @@ static void dreplsrv_op_notify_replica_sync_done(struct rpc_request *rreq)
 
 	state->ndr_struct_ptr = NULL;
 
-	status = dcerpc_drsuapi_DsReplicaSync_recv(rreq);
+	status = dcerpc_drsuapi_DsReplicaSync_r_recv(subreq, r);
+	TALLOC_FREE(subreq);
 	if (tevent_req_nterror(req, status)) {
 		return;
 	}
diff --git a/source4/dsdb/repl/drepl_out_helpers.c b/source4/dsdb/repl/drepl_out_helpers.c
index a8a3f80..a12481b 100644
--- a/source4/dsdb/repl/drepl_out_helpers.c
+++ b/source4/dsdb/repl/drepl_out_helpers.c
@@ -37,6 +37,8 @@
 #include "../lib/util/tevent_ntstatus.h"
 
 struct dreplsrv_out_drsuapi_state {
+	struct tevent_context *ev;
+
 	struct dreplsrv_out_connection *conn;
 
 	struct dreplsrv_drsuapi_connection *drsuapi;
@@ -61,6 +63,7 @@ struct tevent_req *dreplsrv_out_drsuapi_send(TALLOC_CTX *mem_ctx,
 		return NULL;
 	}
 
+	state->ev	= ev;
 	state->conn	= conn;
 	state->drsuapi	= conn->drsuapi;
 
@@ -90,7 +93,7 @@ struct tevent_req *dreplsrv_out_drsuapi_send(TALLOC_CTX *mem_ctx,
 	return req;
 }
 
-static void dreplsrv_out_drsuapi_bind_done(struct rpc_request *rreq);
+static void dreplsrv_out_drsuapi_bind_done(struct tevent_req *subreq);
 
 static void dreplsrv_out_drsuapi_connect_done(struct composite_context *creq)
 {
@@ -99,7 +102,7 @@ static void dreplsrv_out_drsuapi_connect_done(struct composite_context *creq)
 	struct dreplsrv_out_drsuapi_state *state = tevent_req_data(req,
 						   struct dreplsrv_out_drsuapi_state);
 	NTSTATUS status;
-	struct rpc_request *rreq;
+	struct tevent_req *subreq;
 
 	status = dcerpc_pipe_connect_b_recv(creq,
 					    state->drsuapi,
@@ -108,6 +111,8 @@ static void dreplsrv_out_drsuapi_connect_done(struct composite_context *creq)
 		return;
 	}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list