1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-26 18:50:30 +03:00

librpc/idl: Merge wbint.idl with winbind.idl so we can forward IRPC requests to internal winbind calls

Change-Id: Iba3913d5a1c7f851b93f37e9beb6dbb20fbf7e55
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
This commit is contained in:
Andrew Bartlett 2014-05-08 12:17:32 +12:00
parent 223fbdaf38
commit f4ab082d2b
46 changed files with 96 additions and 81 deletions

View File

@ -9,8 +9,10 @@ import "lsa.idl", "netlogon.idl", "misc.idl", "security.idl", "idmap.idl";
helpstring("winbind parent-child protocol"),
no_srv_register
]
interface wbint
interface winbind
{
/* Private methods */
void wbint_Ping(
[in] uint32 in_data,
[out] uint32 *out_data
@ -168,9 +170,26 @@ interface wbint
[out,string,charset(UTF8)] char **dcname
);
NTSTATUS wbint_DsrUpdateReadOnlyServerDnsRecords(
/* Public methods available via IRPC */
typedef [switch_type(uint16)] union netr_LogonLevel netr_LogonLevel;
typedef [switch_type(uint16)] union netr_Validation netr_Validation;
/*
* do a netr_LogonSamLogon() against the right DC
*/
NTSTATUS winbind_SamLogon(
[in] uint16 logon_level,
[in] [switch_is(logon_level)] netr_LogonLevel logon,
[in] uint16 validation_level,
[out] [switch_is(validation_level)] netr_Validation validation,
[out] uint8 authoritative
);
NTSTATUS winbind_DsrUpdateReadOnlyServerDnsRecords(
[in,unique] [string,charset(UTF16)] uint16 *site_name,
[in] uint32 dns_ttl,
[in,out,ref] NL_DNS_NAME_INFO_ARRAY *dns_names
);
}

View File

@ -35,3 +35,8 @@ bld.SAMBA_PIDL_LIST('PIDL',
'dnsp.idl nfs4acl.idl',
options='--header --ndr-parser --client --python',
output_dir='../gen_ndr')
bld.SAMBA_PIDL_LIST('PIDL',
'winbind.idl',
options='--header --ndr-parser --samba3-ndr-server --client --python',
output_dir='../gen_ndr')

View File

@ -663,3 +663,18 @@ bld.SAMBA_LIBRARY('dcerpc-binding',
pc_files=[],
public_headers='rpc/rpc_common.h',
vnum='0.0.1')
bld.SAMBA_SUBSYSTEM('NDR_WINBIND',
source='gen_ndr/ndr_winbind.c',
public_deps='ndr'
)
bld.SAMBA_SUBSYSTEM('RPC_NDR_WINBIND',
source='gen_ndr/ndr_winbind_c.c',
public_deps='dcerpc NDR_WINBIND'
)
bld.SAMBA3_SUBSYSTEM('SRV_NDR_WINBIND',
source='gen_ndr/srv_winbind.c',
public_deps='NDR_WINBIND'
)

View File

@ -11,8 +11,3 @@ bld.SAMBA_PIDL_LIST('PIDL',
''',
options='--includedir=%s --header --ndr-parser' % topinclude,
output_dir='../gen_ndr')
bld.SAMBA_PIDL_LIST('PIDL',
'wbint.idl',
options='--includedir=%s --header --ndr-parser --samba3-ndr-server --client' % topinclude,
output_dir='../gen_ndr')

View File

@ -35,17 +35,3 @@ bld.SAMBA3_SUBSYSTEM('NDR_PERFCOUNT',
public_deps='ndr'
)
bld.SAMBA3_SUBSYSTEM('NDR_WBINT',
source='gen_ndr/ndr_wbint.c',
public_deps='ndr'
)
bld.SAMBA3_SUBSYSTEM('RPC_NDR_WBINT',
source='../librpc/gen_ndr/ndr_wbint_c.c',
public_deps='dcerpc NDR_WBINT'
)
bld.SAMBA3_SUBSYSTEM('SRV_NDR_WBINT',
source='../librpc/gen_ndr/srv_wbint.c',
public_deps='NDR_WBINT'
)

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct wb_dsgetdcname_state {
struct netr_DsRGetDCNameInfo *dcinfo;

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct wb_fill_pwent_state {
struct tevent_context *ev;

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "../libcli/security/security.h"
struct wb_getgrsid_state {

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "../libcli/security/security.h"
struct wb_getpwsid_state {

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "../libcli/security/security.h"
#include "passdb/machine_sid.h"

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "idmap_cache.h"
#include "idmap.h"
#include "../libcli/security/security.h"

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "../librpc/gen_ndr/ndr_security.h"
#include "../libcli/security/security.h"

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "../libcli/security/security.h"
struct wb_lookupname_state {

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "../libcli/security/security.h"
struct wb_lookupsid_state {

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "../libcli/security/security.h"
#include "passdb/machine_sid.h"

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct wb_lookupuseraliases_state {
struct tevent_context *ev;

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "../libcli/security/security.h"
struct wb_lookupusergroups_state {

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "passdb/machine_sid.h"
struct wb_next_grent_state {

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "passdb/machine_sid.h"
struct wb_next_pwent_state {

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct wb_query_user_list_state {
struct wbint_userinfos users;

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "../libcli/security/security.h"
struct wb_queryuser_state {

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct wb_seqnum_state {
uint32_t seqnum;

View File

@ -21,7 +21,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct wb_seqnums_state {
int num_domains;

View File

@ -22,7 +22,7 @@
#include "winbindd.h"
#include "../libcli/security/security.h"
#include "idmap_cache.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct wb_sids2xids_state {
struct tevent_context *ev;

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "idmap_cache.h"
#include "idmap.h"
#include "../libcli/security/security.h"

View File

@ -42,7 +42,7 @@
#include "source4/lib/messaging/irpc.h"
#include "source4/lib/messaging/messaging.h"
#include "lib/param/param.h"
#include "source4/librpc/gen_ndr/ndr_winbind.h"
#include "librpc/gen_ndr/ndr_winbind.h"
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_WINBIND

View File

@ -26,7 +26,7 @@
#include "nsswitch/winbind_struct_protocol.h"
#include "nsswitch/libwbclient/wbclient.h"
#include "librpc/gen_ndr/dcerpc.h"
#include "librpc/gen_ndr/wbint.h"
#include "librpc/gen_ndr/winbind.h"
#include "talloc_dict.h"

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct winbindd_allocate_gid_state {
uint64_t gid;

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct winbindd_allocate_uid_state {
uint64_t uid;

View File

@ -28,7 +28,7 @@
#include "winbindd.h"
#include "tdb_validate.h"
#include "../libcli/auth/libcli_auth.h"
#include "../librpc/gen_ndr/ndr_wbint.h"
#include "../librpc/gen_ndr/ndr_winbind.h"
#include "ads.h"
#include "nss_info.h"
#include "../libcli/security/security.h"

View File

@ -20,7 +20,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct winbindd_change_machine_acct_state {
uint8_t dummy;

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct winbindd_check_machine_acct_state {
uint8_t dummy;

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct winbindd_dsgetdcname_state {
struct GUID guid;

View File

@ -30,7 +30,7 @@
#include "winbindd/winbindd.h"
#include "winbindd/winbindd_proto.h"
#include "ntdomain.h"
#include "librpc/gen_ndr/srv_wbint.h"
#include "librpc/gen_ndr/srv_winbind.h"
struct wbint_bh_state {
struct winbindd_domain *domain;
@ -283,7 +283,7 @@ struct dcerpc_binding_handle *wbint_binding_handle(TALLOC_CTX *mem_ctx,
h = dcerpc_binding_handle_create(mem_ctx,
&wbint_bh_ops,
NULL,
&ndr_table_wbint,
&ndr_table_winbind,
&hs,
struct wbint_bh_state,
__location__);
@ -304,7 +304,7 @@ enum winbindd_result winbindd_dual_ndrcmd(struct winbindd_domain *domain,
int num_fns;
bool ret;
wbint_get_pipe_fns(&fns, &num_fns);
winbind_get_pipe_fns(&fns, &num_fns);
if (state->request->data.ndrcmd >= num_fns) {
return WINBINDD_ERROR;

View File

@ -25,7 +25,7 @@
#include "winbindd/winbindd_proto.h"
#include "rpc_client/cli_pipe.h"
#include "ntdomain.h"
#include "librpc/gen_ndr/srv_wbint.h"
#include "librpc/gen_ndr/srv_winbind.h"
#include "../librpc/gen_ndr/ndr_netlogon_c.h"
#include "idmap.h"
#include "../libcli/security/security.h"
@ -719,8 +719,8 @@ NTSTATUS _wbint_PingDc(struct pipes_struct *p, struct wbint_PingDc *r)
return NT_STATUS_OK;
}
NTSTATUS _wbint_DsrUpdateReadOnlyServerDnsRecords(struct pipes_struct *p,
struct wbint_DsrUpdateReadOnlyServerDnsRecords *r)
NTSTATUS _winbind_DsrUpdateReadOnlyServerDnsRecords(struct pipes_struct *p,
struct winbind_DsrUpdateReadOnlyServerDnsRecords *r)
{
struct winbindd_domain *domain;
NTSTATUS status;
@ -756,3 +756,10 @@ NTSTATUS _wbint_DsrUpdateReadOnlyServerDnsRecords(struct pipes_struct *p,
return status;
}
NTSTATUS _winbind_SamLogon(struct pipes_struct *p,
struct winbind_SamLogon *r)
{
p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
return NT_STATUS_NOT_IMPLEMENTED;
}

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct winbindd_getdcname_state {
struct netr_DsRGetDCNameInfo *dcinfo;

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct winbindd_list_groups_domstate {
struct tevent_req *subreq;

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct winbindd_list_users_domstate {
struct tevent_req *subreq;

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "../libcli/security/security.h"
struct winbindd_lookuprids_state {

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
struct winbindd_ping_dc_state {
const char *dcname;

View File

@ -20,7 +20,6 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "source4/lib/messaging/irpc.h"
@ -51,7 +50,7 @@ NTSTATUS wb_irpc_DsrUpdateReadOnlyServerDnsRecords(struct irpc_message *msg,
return NT_STATUS_NO_SUCH_DOMAIN;
}
subreq = dcerpc_wbint_DsrUpdateReadOnlyServerDnsRecords_send(s, winbind_event_context(),
subreq = dcerpc_winbind_DsrUpdateReadOnlyServerDnsRecords_send(s, winbind_event_context(),
dom_child_handle(domain),
req->in.site_name,
req->in.dns_ttl,
@ -77,7 +76,7 @@ static void wb_irpc_DsrUpdateReadOnlyServerDnsRecords_callback(struct tevent_req
DEBUG(5, ("wb_irpc_DsrUpdateReadOnlyServerDnsRecords_callback called\n"));
status = dcerpc_wbint_DsrUpdateReadOnlyServerDnsRecords_recv(subreq, s, &result);
status = dcerpc_winbind_DsrUpdateReadOnlyServerDnsRecords_recv(subreq, s, &result);
any_nt_status_not_ok(status, result, &status);
TALLOC_FREE(subreq);

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "libsmb/nmblib.h"
struct winbindd_wins_byip_state {

View File

@ -19,7 +19,7 @@
#include "includes.h"
#include "winbindd.h"
#include "librpc/gen_ndr/ndr_wbint_c.h"
#include "librpc/gen_ndr/ndr_winbind_c.h"
#include "libsmb/nmblib.h"
#include "lib/util/string_wrappers.h"

View File

@ -964,8 +964,8 @@ bld.SAMBA3_BINARY('winbindd/winbindd',
LIBCLI_SAMR
SLCACHE
RPC_NDR_DSSETUP
RPC_NDR_WBINT
SRV_NDR_WBINT
RPC_NDR_WINBIND
SRV_NDR_WINBIND
RPC_SAMR
RPC_LSARPC
RPC_SERVER

View File

@ -6,7 +6,7 @@ topinclude=os.path.join(bld.srcnode.abspath(), 'librpc/idl')
bld.SAMBA_PIDL_LIST('PIDL',
source='''irpc.idl ntp_signd.idl
opendb.idl sasl_helpers.idl winbind.idl
opendb.idl sasl_helpers.idl
winsif.idl winsrepl.idl winstation.idl''',
options="--includedir=%s --header --ndr-parser --client --python --server" % topinclude,
output_dir='../gen_ndr')

View File

@ -51,11 +51,6 @@ bld.SAMBA_SUBSYSTEM('NDR_WINSREPL',
)
bld.SAMBA_SUBSYSTEM('NDR_WINBIND',
source='gen_ndr/ndr_winbind.c',
public_deps='NDR_IDMAP ndr ndr-standard'
)
# create a grouping library to consolidate our samba4 specific NDR code
bld.SAMBA_LIBRARY('ndr-samba4',
source=[],
@ -87,7 +82,7 @@ bld.SAMBA_SUBSYSTEM('ndr-table',
NDR_SASL_HELPERS NDR_NOTIFY NDR_WINBIND NDR_FRSRPC NDR_FRSAPI
NDR_FRSTRANS NDR_NFS4ACL NDR_NTP_SIGND NDR_DCOM NDR_WMI
NDR_NAMED_PIPE_AUTH NDR_NTLMSSP NDR_DFSBLOBS NDR_DNSP
NDR_NTPRINTING NDR_DNS NDR_BACKUPKEY NDR_PREG NDR_WBINT''',
NDR_NTPRINTING NDR_DNS NDR_BACKUPKEY NDR_PREG''',
depends_on='GEN_NDR_TABLES'
)
@ -97,12 +92,6 @@ bld.SAMBA_SUBSYSTEM('RPC_NDR_IRPC',
public_deps='dcerpc NDR_IRPC'
)
bld.SAMBA_SUBSYSTEM('RPC_NDR_WINBIND',
source='gen_ndr/ndr_winbind_c.c',
public_deps='dcerpc NDR_WINBIND'
)
bld.SAMBA_LIBRARY('dcerpc-samr',
source='',
pc_files='dcerpc_samr.pc',
@ -305,7 +294,7 @@ bld.SAMBA_PYTHON('python_server_id',
)
bld.SAMBA_PYTHON('python_winbind',
source='gen_ndr/py_winbind.c',
source='../../librpc/gen_ndr/py_winbind.c',
deps='RPC_NDR_WINBIND pytalloc-util pyrpc_util python_netlogon',
realname='samba/dcerpc/winbind.so'
)