s3:winbind: remove the method SET_MAPPING from winbind's API
[ira/wip.git] / source3 / winbindd / winbindd_ndr.c
1 /*
2  *  Unix SMB/CIFS implementation.
3  *  winbindd debug helper
4  *  Copyright (C) Guenther Deschner 2008
5  *
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.
10  *
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.
15  *
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/>.
18  */
19
20 #include "includes.h"
21 #include "winbindd.h"
22 #include "../librpc/gen_ndr/ndr_netlogon.h"
23 #include "../librpc/gen_ndr/ndr_security.h"
24
25 #undef DBGC_CLASS
26 #define DBGC_CLASS DBGC_WINBIND
27
28 /****************************************************************
29 ****************************************************************/
30
31 void ndr_print_winbindd_child(struct ndr_print *ndr,
32                               const char *name,
33                               const struct winbindd_child *r)
34 {
35         ndr_print_struct(ndr, name, "winbindd_child");
36         ndr->depth++;
37         ndr_print_ptr(ndr, "next", r->next);
38         ndr_print_ptr(ndr, "prev", r->prev);
39         ndr_print_uint32(ndr, "pid", (uint32_t)r->pid);
40 #if 0
41         ndr_print_winbindd_domain(ndr, "domain", r->domain);
42 #else
43         ndr_print_ptr(ndr, "domain", r->domain);
44 #endif
45         ndr_print_string(ndr, "logfilename", r->logfilename);
46         /* struct fd_event event; */
47         ndr_print_ptr(ndr, "lockout_policy_event", r->lockout_policy_event);
48         ndr_print_ptr(ndr, "table", r->table);
49         ndr->depth--;
50 }
51
52 /****************************************************************
53 ****************************************************************/
54
55 void ndr_print_winbindd_cm_conn(struct ndr_print *ndr,
56                                 const char *name,
57                                 const struct winbindd_cm_conn *r)
58 {
59         ndr_print_struct(ndr, name, "winbindd_cm_conn");
60         ndr->depth++;
61         ndr_print_ptr(ndr, "cli", r->cli);
62         ndr_print_ptr(ndr, "samr_pipe", r->samr_pipe);
63         ndr_print_policy_handle(ndr, "sam_connect_handle", &r->sam_connect_handle);
64         ndr_print_policy_handle(ndr, "sam_domain_handle", &r->sam_domain_handle);
65         ndr_print_ptr(ndr, "lsa_pipe", r->lsa_pipe);
66         ndr_print_policy_handle(ndr, "lsa_policy", &r->lsa_policy);
67         ndr_print_ptr(ndr, "netlogon_pipe", r->netlogon_pipe);
68         ndr->depth--;
69 }
70
71 /****************************************************************
72 ****************************************************************/
73
74 #ifdef HAVE_ADS
75 extern struct winbindd_methods ads_methods;
76 #endif
77 extern struct winbindd_methods msrpc_methods;
78 extern struct winbindd_methods builtin_passdb_methods;
79 extern struct winbindd_methods sam_passdb_methods;
80 extern struct winbindd_methods reconnect_methods;
81 extern struct winbindd_methods cache_methods;
82
83 void ndr_print_winbindd_methods(struct ndr_print *ndr,
84                                 const char *name,
85                                 const struct winbindd_methods *r)
86 {
87         ndr_print_struct(ndr, name, "winbindd_methods");
88         ndr->depth++;
89
90         if (r == NULL) {
91                 ndr_print_string(ndr, name, "(NULL)");
92                 ndr->depth--;
93                 return;
94         }
95
96         if (r == &msrpc_methods) {
97                 ndr_print_string(ndr, name, "msrpc_methods");
98 #ifdef HAVE_ADS
99         } else if (r == &ads_methods) {
100                 ndr_print_string(ndr, name, "ads_methods");
101 #endif
102         } else if (r == &builtin_passdb_methods) {
103                 ndr_print_string(ndr, name, "builtin_passdb_methods");
104         } else if (r == &sam_passdb_methods) {
105                 ndr_print_string(ndr, name, "sam_passdb_methods");
106         } else if (r == &reconnect_methods) {
107                 ndr_print_string(ndr, name, "reconnect_methods");
108         } else if (r == &cache_methods) {
109                 ndr_print_string(ndr, name, "cache_methods");
110         } else {
111                 ndr_print_string(ndr, name, "UNKNOWN");
112         }
113         ndr->depth--;
114 }
115
116 /****************************************************************
117 ****************************************************************/
118
119 void ndr_print_winbindd_domain(struct ndr_print *ndr,
120                                const char *name,
121                                const struct winbindd_domain *r)
122 {
123         if (!r) {
124                 return;
125         }
126
127         ndr_print_struct(ndr, name, "winbindd_domain");
128         ndr->depth++;
129         ndr_print_string(ndr, "name", r->name);
130         ndr_print_string(ndr, "alt_name", r->alt_name);
131         ndr_print_string(ndr, "forest_name", r->forest_name);
132         ndr_print_dom_sid(ndr, "sid", &r->sid);
133         ndr_print_netr_TrustFlags(ndr, "domain_flags", r->domain_flags);
134         ndr_print_netr_TrustType(ndr, "domain_type", r->domain_type);
135         ndr_print_netr_TrustAttributes(ndr, "domain_trust_attribs", r->domain_trust_attribs);
136         ndr_print_bool(ndr, "initialized", r->initialized);
137         ndr_print_bool(ndr, "native_mode", r->native_mode);
138         ndr_print_bool(ndr, "active_directory", r->active_directory);
139         ndr_print_bool(ndr, "primary", r->primary);
140         ndr_print_bool(ndr, "internal", r->internal);
141         ndr_print_bool(ndr, "online", r->online);
142         ndr_print_time_t(ndr, "startup_time", r->startup_time);
143         ndr_print_bool(ndr, "startup", r->startup);
144         ndr_print_winbindd_methods(ndr, "methods", r->methods);
145         ndr_print_winbindd_methods(ndr, "backend", r->backend);
146         ndr_print_ptr(ndr, "private_data", r->private_data);
147         ndr_print_string(ndr, "dcname", r->dcname);
148         ndr_print_sockaddr_storage(ndr, "dcaddr", &r->dcaddr);
149         ndr_print_time_t(ndr, "last_seq_check", r->last_seq_check);
150         ndr_print_uint32(ndr, "sequence_number", r->sequence_number);
151         ndr_print_NTSTATUS(ndr, "last_status", r->last_status);
152         ndr_print_winbindd_cm_conn(ndr, "conn", &r->conn);
153         ndr_print_winbindd_child(ndr, "child", &r->child);
154         ndr_print_uint32(ndr, "check_online_timeout", r->check_online_timeout);
155         ndr_print_ptr(ndr, "check_online_event", r->check_online_event);
156         ndr->depth--;
157 }