|
root / base / usr / src / lib / libads / common / ads_priv.x
ads_priv.x Plain Text 108 lines 2.2 KB
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
/*
 * This file and its contents are supplied under the terms of the
 * Common Development and Distribution License ("CDDL"), version 1.0.
 * You may only use this file in accordance with the terms of version
 * 1.0 of the CDDL.
 *
 * A full copy of the text of the CDDL should have accompanied this
 * source.  A copy of the CDDL is also available via the Internet at
 * http://www.illumos.org/license/CDDL.
 */

%/*
% * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
% */

%/*
% * from ads_priv.x
% * Active Directory Services (ADS) Private interface between
% * libads and the ADS deamon.  (RPC over doors)
% */

#ifdef RPC_HDR
%/*
% *  Declarations for the ADS API
% */

#elif RPC_SVC
%
%/*
% *  Server side stubs for the ADS API
% */
%
#elif RPC_CLNT
%
%/*
% *  Client side stubs for the ADS API
% */
%
#elif RPC_XDR
%/*
% * XDR routines for the ADS API
% */
#endif

const ADSPRIV_MAX_XFER = 16384;
const ADSPRIV_GUID_LEN = 16;
const ADSPRIV_SOCKADDR_LEN = 256;
const ADSPRIV_STR_MAX = 256;

typedef opaque	adspriv_guid[ADSPRIV_GUID_LEN];
typedef opaque	adspriv_sockaddr[ADSPRIV_SOCKADDR_LEN];

/*
 * Structure returned from DsGetDcName
 * NB: Keep same as DOMAIN_CONTROLLER_INFO
 */
struct adspriv_dcinfo {
    string dci_DcName<ADSPRIV_STR_MAX>;
    string dci_DcAddr<ADSPRIV_STR_MAX>;
    unsigned int dci_AddrType;
    adspriv_guid dci_guid;
    string dci_DomainName<ADSPRIV_STR_MAX>;
    string dci_DnsForestName<ADSPRIV_STR_MAX>;
    unsigned int dci_Flags;
    string dci_DcSiteName<ADSPRIV_STR_MAX>;
    string dci_ClientSiteName<ADSPRIV_STR_MAX>;
    adspriv_sockaddr dci_sockaddr;
};

/*
 * DsForceRediscovery args
 */
struct DsForceRediscoveryArgs {
	unsigned int Flags;
	string DomainName<ADSPRIV_STR_MAX>;
};

/*
 * DsGetDcName args, result
 */
struct DsGetDcNameArgs {
	string ComputerName<ADSPRIV_STR_MAX>;
	string DomainName<ADSPRIV_STR_MAX>;
	string DomainGuid<ADSPRIV_STR_MAX>;
	string SiteName<ADSPRIV_STR_MAX>;
	unsigned int Flags;
};

union DsGetDcNameRes switch (int status) {
case 0:
	adspriv_dcinfo res0;
default:
	void;
};

program ADSPRIV_PROGRAM {
	version ADSPRIV_V1 {
		void 
		ADSPRIV_NULL(void) = 0;

		int
		ADSPRIV_ForceRediscovery(DsForceRediscoveryArgs) = 1;

		DsGetDcNameRes
		ADSPRIV_GetDcName(DsGetDcNameArgs) = 2;
	} = 1;
} = 100001;