2 * Unix SMB/CIFS implementation.
3 * winbindd debug helper
4 * Copyright (C) Guenther Deschner 2008
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/>.
22 #include "../librpc/gen_ndr/ndr_netlogon.h"
23 #include "../librpc/gen_ndr/ndr_security.h"
24 #include "librpc/ndr/util.h"
27 #define DBGC_CLASS DBGC_WINBIND
29 /****************************************************************
30 ****************************************************************/
32 void ndr_print_winbindd_child(struct ndr_print
*ndr
,
34 const struct winbindd_child
*r
)
36 ndr_print_struct(ndr
, name
, "winbindd_child");
38 ndr_print_ptr(ndr
, "next", r
->next
);
39 ndr_print_ptr(ndr
, "prev", r
->prev
);
40 ndr_print_uint32(ndr
, "pid", (uint32_t)r
->pid
);
42 ndr_print_winbindd_domain(ndr
, "domain", r
->domain
);
44 ndr_print_ptr(ndr
, "domain", r
->domain
);
46 ndr_print_string(ndr
, "logfilename", r
->logfilename
);
47 /* struct fd_event event; */
48 ndr_print_ptr(ndr
, "lockout_policy_event", r
->lockout_policy_event
);
49 ndr_print_ptr(ndr
, "table", r
->table
);
53 /****************************************************************
54 ****************************************************************/
56 void ndr_print_winbindd_cm_conn(struct ndr_print
*ndr
,
58 const struct winbindd_cm_conn
*r
)
60 ndr_print_struct(ndr
, name
, "winbindd_cm_conn");
62 ndr_print_ptr(ndr
, "cli", r
->cli
);
63 ndr_print_ptr(ndr
, "samr_pipe", r
->samr_pipe
);
64 ndr_print_policy_handle(ndr
, "sam_connect_handle", &r
->sam_connect_handle
);
65 ndr_print_policy_handle(ndr
, "sam_domain_handle", &r
->sam_domain_handle
);
66 ndr_print_ptr(ndr
, "lsa_pipe", r
->lsa_pipe
);
67 ndr_print_policy_handle(ndr
, "lsa_policy", &r
->lsa_policy
);
68 ndr_print_ptr(ndr
, "netlogon_pipe", r
->netlogon_pipe
);
72 /****************************************************************
73 ****************************************************************/
76 extern struct winbindd_methods ads_methods
;
78 extern struct winbindd_methods msrpc_methods
;
79 extern struct winbindd_methods builtin_passdb_methods
;
80 extern struct winbindd_methods sam_passdb_methods
;
81 extern struct winbindd_methods reconnect_methods
;
82 extern struct winbindd_methods cache_methods
;
84 void ndr_print_winbindd_methods(struct ndr_print
*ndr
,
86 const struct winbindd_methods
*r
)
88 ndr_print_struct(ndr
, name
, "winbindd_methods");
92 ndr_print_string(ndr
, name
, "(NULL)");
97 if (r
== &msrpc_methods
) {
98 ndr_print_string(ndr
, name
, "msrpc_methods");
100 } else if (r
== &ads_methods
) {
101 ndr_print_string(ndr
, name
, "ads_methods");
103 } else if (r
== &builtin_passdb_methods
) {
104 ndr_print_string(ndr
, name
, "builtin_passdb_methods");
105 } else if (r
== &sam_passdb_methods
) {
106 ndr_print_string(ndr
, name
, "sam_passdb_methods");
107 } else if (r
== &reconnect_methods
) {
108 ndr_print_string(ndr
, name
, "reconnect_methods");
109 } else if (r
== &cache_methods
) {
110 ndr_print_string(ndr
, name
, "cache_methods");
112 ndr_print_string(ndr
, name
, "UNKNOWN");
117 /****************************************************************
118 ****************************************************************/
120 void ndr_print_winbindd_domain(struct ndr_print
*ndr
,
122 const struct winbindd_domain
*r
)
129 ndr_print_struct(ndr
, name
, "winbindd_domain");
131 ndr_print_string(ndr
, "name", r
->name
);
132 ndr_print_string(ndr
, "alt_name", r
->alt_name
);
133 ndr_print_string(ndr
, "forest_name", r
->forest_name
);
134 ndr_print_dom_sid(ndr
, "sid", &r
->sid
);
135 ndr_print_netr_TrustFlags(ndr
, "domain_flags", r
->domain_flags
);
136 ndr_print_netr_TrustType(ndr
, "domain_type", r
->domain_type
);
137 ndr_print_netr_TrustAttributes(ndr
, "domain_trust_attribs", r
->domain_trust_attribs
);
138 ndr_print_bool(ndr
, "initialized", r
->initialized
);
139 ndr_print_bool(ndr
, "native_mode", r
->native_mode
);
140 ndr_print_bool(ndr
, "active_directory", r
->active_directory
);
141 ndr_print_bool(ndr
, "primary", r
->primary
);
142 ndr_print_bool(ndr
, "internal", r
->internal
);
143 ndr_print_bool(ndr
, "online", r
->online
);
144 ndr_print_time_t(ndr
, "startup_time", r
->startup_time
);
145 ndr_print_bool(ndr
, "startup", r
->startup
);
146 ndr_print_winbindd_methods(ndr
, "methods", r
->methods
);
147 ndr_print_winbindd_methods(ndr
, "backend", r
->backend
);
148 ndr_print_ptr(ndr
, "private_data", r
->private_data
);
149 ndr_print_string(ndr
, "dcname", r
->dcname
);
150 ndr_print_sockaddr_storage(ndr
, "dcaddr", &r
->dcaddr
);
151 ndr_print_time_t(ndr
, "last_seq_check", r
->last_seq_check
);
152 ndr_print_uint32(ndr
, "sequence_number", r
->sequence_number
);
153 ndr_print_NTSTATUS(ndr
, "last_status", r
->last_status
);
154 ndr_print_winbindd_cm_conn(ndr
, "conn", &r
->conn
);
155 for (i
=0; i
<lp_winbind_max_domain_connections(); i
++) {
156 ndr_print_winbindd_child(ndr
, "children", &r
->children
[i
]);
158 ndr_print_uint32(ndr
, "check_online_timeout", r
->check_online_timeout
);
159 ndr_print_ptr(ndr
, "check_online_event", r
->check_online_event
);