s3 torture: Prevent smbcli segfault when running smbtorture3 against an smbd with...
[Samba/bb.git] / source4 / libnet / libnet_passwd.h
blobf9fb5dad7560b935421b08cdbb687ea7877ef35f
1 /*
2 Unix SMB/CIFS implementation.
4 Copyright (C) Stefan Metzmacher 2004
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
20 /* struct and enum for doing a remote password change */
21 enum libnet_ChangePassword_level {
22 LIBNET_CHANGE_PASSWORD_GENERIC,
23 LIBNET_CHANGE_PASSWORD_SAMR,
24 LIBNET_CHANGE_PASSWORD_KRB5,
25 LIBNET_CHANGE_PASSWORD_LDAP,
26 LIBNET_CHANGE_PASSWORD_RAP
29 union libnet_ChangePassword {
30 struct {
31 enum libnet_ChangePassword_level level;
33 struct _libnet_ChangePassword_in {
34 const char *account_name;
35 const char *domain_name;
36 const char *oldpassword;
37 const char *newpassword;
38 } in;
40 struct _libnet_ChangePassword_out {
41 const char *error_string;
42 } out;
43 } generic;
45 struct {
46 enum libnet_ChangePassword_level level;
47 struct _libnet_ChangePassword_in in;
48 struct _libnet_ChangePassword_out out;
49 } samr;
51 struct {
52 enum libnet_ChangePassword_level level;
53 struct _libnet_ChangePassword_in in;
54 struct _libnet_ChangePassword_out out;
55 } krb5;
57 struct {
58 enum libnet_ChangePassword_level level;
59 struct _libnet_ChangePassword_in in;
60 struct _libnet_ChangePassword_out out;
61 } ldap;
63 struct {
64 enum libnet_ChangePassword_level level;
65 struct _libnet_ChangePassword_in in;
66 struct _libnet_ChangePassword_out out;
67 } rap;
70 /* struct and enum for doing a remote password set */
71 enum libnet_SetPassword_level {
72 LIBNET_SET_PASSWORD_GENERIC,
73 LIBNET_SET_PASSWORD_SAMR,
74 LIBNET_SET_PASSWORD_SAMR_HANDLE,
75 LIBNET_SET_PASSWORD_SAMR_HANDLE_26,
76 LIBNET_SET_PASSWORD_SAMR_HANDLE_25,
77 LIBNET_SET_PASSWORD_SAMR_HANDLE_24,
78 LIBNET_SET_PASSWORD_SAMR_HANDLE_23,
79 LIBNET_SET_PASSWORD_KRB5,
80 LIBNET_SET_PASSWORD_LDAP,
81 LIBNET_SET_PASSWORD_RAP
84 union libnet_SetPassword {
85 struct {
86 enum libnet_SetPassword_level level;
88 struct _libnet_SetPassword_in {
89 const char *account_name;
90 const char *domain_name;
91 const char *newpassword;
92 } in;
94 struct _libnet_SetPassword_out {
95 const char *error_string;
96 } out;
97 } generic;
99 struct {
100 enum libnet_SetPassword_level level;
101 struct _libnet_SetPassword_samr_handle_in {
102 const char *account_name; /* for debug only */
103 struct policy_handle *user_handle;
104 struct dcerpc_pipe *dcerpc_pipe;
105 const char *newpassword;
106 struct samr_UserInfo21 *info21; /* can be NULL,
107 * for level 26,24 it must be NULL
108 * for level 25,23 it must be non-NULL
110 } in;
111 struct _libnet_SetPassword_out out;
112 } samr_handle;
114 struct {
115 enum libnet_SetPassword_level level;
116 struct _libnet_SetPassword_in in;
117 struct _libnet_SetPassword_out out;
118 } samr;
120 struct {
121 enum libnet_SetPassword_level level;
122 struct _libnet_SetPassword_in in;
123 struct _libnet_SetPassword_out out;
124 } krb5;
126 struct {
127 enum libnet_SetPassword_level level;
128 struct _libnet_SetPassword_in in;
129 struct _libnet_SetPassword_out out;
130 } ldap;
132 struct {
133 enum libnet_ChangePassword_level level;
134 struct _libnet_SetPassword_in in;
135 struct _libnet_SetPassword_out out;
136 } rap;