1/*
2   Unix SMB/CIFS implementation.
3
4   Copyright (C) Stefan Metzmacher	2004
5   Copyright (C) Andrew Bartlett <abartlet@samba.org> 2005
6   Copyright (C) Brad Henry 2005
7
8   This program is free software; you can redistribute it and/or modify
9   it under the terms of the GNU General Public License as published by
10   the Free Software Foundation; either version 3 of the License, or
11   (at your option) any later version.
12
13   This program is distributed in the hope that it will be useful,
14   but WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   GNU General Public License for more details.
17
18   You should have received a copy of the GNU General Public License
19   along with this program.  If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#ifndef __LIBNET_JOIN_H__
23#define __LIBNET_JOIN_H__
24
25#include "librpc/gen_ndr/netlogon.h"
26
27enum libnet_Join_level {
28	LIBNET_JOIN_AUTOMATIC,
29	LIBNET_JOIN_SPECIFIED,
30};
31
32enum libnet_JoinDomain_level {
33	LIBNET_JOINDOMAIN_AUTOMATIC,
34	LIBNET_JOINDOMAIN_SPECIFIED,
35};
36
37struct libnet_JoinDomain {
38	struct {
39		const char *domain_name;
40		const char *account_name;
41		const char *netbios_name;
42		const char *binding;
43		enum libnet_JoinDomain_level level;
44		uint32_t  acct_type;
45		bool recreate_account;
46	} in;
47
48	struct {
49		const char *error_string;
50		const char *join_password;
51		struct dom_sid *domain_sid;
52		const char *domain_name;
53		const char *realm;
54		const char *domain_dn_str;
55		const char *account_dn_str;
56		const char *server_dn_str;
57		uint32_t kvno; /* msDS-KeyVersionNumber */
58		struct dcerpc_pipe *samr_pipe;
59		struct dcerpc_binding *samr_binding;
60		struct policy_handle *user_handle;
61		struct dom_sid *account_sid;
62		struct GUID account_guid;
63	} out;
64};
65
66struct libnet_Join {
67	struct {
68		const char *domain_name;
69		const char *netbios_name;
70		enum netr_SchannelType join_type;
71		enum libnet_Join_level level;
72	} in;
73
74	struct {
75		const char *error_string;
76		const char *join_password;
77		struct dom_sid *domain_sid;
78		const char *domain_name;
79	} out;
80};
81
82struct libnet_set_join_secrets {
83	struct {
84		const char *domain_name;
85		const char *realm;
86		const char *netbios_name;
87		const char *account_name;
88		enum netr_SchannelType join_type;
89		const char *join_password;
90		int kvno;
91		struct dom_sid *domain_sid;
92	} in;
93
94	struct {
95		const char *error_string;
96	} out;
97};
98
99
100#endif /* __LIBNET_JOIN_H__ */
101