2 Unix SMB/CIFS implementation.
4 endpoint server for the wkssvc pipe
6 Copyright (C) Stefan (metze) Metzmacher 2004
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.
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.
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/>.
23 #include "rpc_server/dcerpc_server.h"
24 #include "librpc/gen_ndr/ndr_wkssvc.h"
25 #include "rpc_server/common/common.h"
26 #include "param/param.h"
29 wkssvc_NetWkstaGetInfo
31 static WERROR
dcesrv_wkssvc_NetWkstaGetInfo(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
32 struct wkssvc_NetWkstaGetInfo
*r
)
34 struct dcesrv_context
*dce_ctx
= dce_call
->conn
->dce_ctx
;
35 struct dcerpc_server_info
*server_info
= lpcfg_dcerpc_server_info(mem_ctx
, dce_ctx
->lp_ctx
);
37 /* NOTE: win2k3 ignores r->in.server_name completly so we do --metze */
42 struct wkssvc_NetWkstaInfo100
*info100
;
44 info100
= talloc(mem_ctx
, struct wkssvc_NetWkstaInfo100
);
45 W_ERROR_HAVE_NO_MEMORY(info100
);
47 info100
->platform_id
= dcesrv_common_get_platform_id(mem_ctx
, dce_ctx
);
48 info100
->server_name
= dcesrv_common_get_server_name(mem_ctx
, dce_ctx
, NULL
);
49 W_ERROR_HAVE_NO_MEMORY(info100
->server_name
);
50 info100
->domain_name
= server_info
->domain_name
;
51 info100
->version_major
= server_info
->version_major
;
52 info100
->version_minor
= server_info
->version_minor
;
54 r
->out
.info
->info100
= info100
;
59 struct wkssvc_NetWkstaInfo101
*info101
;
61 info101
= talloc(mem_ctx
, struct wkssvc_NetWkstaInfo101
);
62 W_ERROR_HAVE_NO_MEMORY(info101
);
64 info101
->platform_id
= dcesrv_common_get_platform_id(mem_ctx
, dce_ctx
);
65 info101
->server_name
= dcesrv_common_get_server_name(mem_ctx
, dce_ctx
, NULL
);
66 W_ERROR_HAVE_NO_MEMORY(info101
->server_name
);
67 info101
->domain_name
= server_info
->domain_name
;
68 info101
->version_major
= server_info
->version_major
;
69 info101
->version_minor
= server_info
->version_minor
;
70 info101
->lan_root
= dcesrv_common_get_lan_root(mem_ctx
, dce_ctx
);
72 r
->out
.info
->info101
= info101
;
77 return WERR_ACCESS_DENIED
;
81 return WERR_ACCESS_DENIED
;
84 return WERR_UNKNOWN_LEVEL
;
90 wkssvc_NetWkstaSetInfo
92 static WERROR
dcesrv_wkssvc_NetWkstaSetInfo(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
93 struct wkssvc_NetWkstaSetInfo
*r
)
95 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
100 wkssvc_NetWkstaEnumUsers
102 static WERROR
dcesrv_wkssvc_NetWkstaEnumUsers(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
103 struct wkssvc_NetWkstaEnumUsers
*r
)
105 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
110 wkssvc_NetrWkstaUserGetInfo
112 static WERROR
dcesrv_wkssvc_NetrWkstaUserGetInfo(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
113 struct wkssvc_NetrWkstaUserGetInfo
*r
)
115 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
120 wkssvc_NetrWkstaUserSetInfo
122 static WERROR
dcesrv_wkssvc_NetrWkstaUserSetInfo(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
123 struct wkssvc_NetrWkstaUserSetInfo
*r
)
125 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
130 wkssvc_NetWkstaTransportEnum
132 static WERROR
dcesrv_wkssvc_NetWkstaTransportEnum(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
133 struct wkssvc_NetWkstaTransportEnum
*r
)
135 switch (r
->in
.info
->level
) {
137 r
->out
.info
->ctr
.ctr0
= talloc(mem_ctx
, struct wkssvc_NetWkstaTransportCtr0
);
138 W_ERROR_HAVE_NO_MEMORY(r
->out
.info
->ctr
.ctr0
);
140 r
->out
.info
->ctr
.ctr0
->count
= 0;
141 r
->out
.info
->ctr
.ctr0
->array
= NULL
;
143 return WERR_NOT_SUPPORTED
;
146 return WERR_UNKNOWN_LEVEL
;
152 wkssvc_NetrWkstaTransportAdd
154 static WERROR
dcesrv_wkssvc_NetrWkstaTransportAdd(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
155 struct wkssvc_NetrWkstaTransportAdd
*r
)
157 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
162 wkssvc_NetrWkstaTransportDel
164 static WERROR
dcesrv_wkssvc_NetrWkstaTransportDel(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
165 struct wkssvc_NetrWkstaTransportDel
*r
)
167 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
174 static WERROR
dcesrv_wkssvc_NetrUseAdd(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
175 struct wkssvc_NetrUseAdd
*r
)
177 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
182 wkssvc_NetrUseGetInfo
184 static WERROR
dcesrv_wkssvc_NetrUseGetInfo(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
185 struct wkssvc_NetrUseGetInfo
*r
)
187 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
194 static WERROR
dcesrv_wkssvc_NetrUseDel(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
195 struct wkssvc_NetrUseDel
*r
)
197 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
204 static WERROR
dcesrv_wkssvc_NetrUseEnum(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
205 struct wkssvc_NetrUseEnum
*r
)
207 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
212 wkssvc_NetrMessageBufferSend
214 static WERROR
dcesrv_wkssvc_NetrMessageBufferSend(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
215 struct wkssvc_NetrMessageBufferSend
*r
)
217 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
222 wkssvc_NetrWorkstationStatisticsGet
224 static WERROR
dcesrv_wkssvc_NetrWorkstationStatisticsGet(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
225 struct wkssvc_NetrWorkstationStatisticsGet
*r
)
227 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
232 wkssvc_NetrLogonDomainNameAdd
234 static WERROR
dcesrv_wkssvc_NetrLogonDomainNameAdd(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
235 struct wkssvc_NetrLogonDomainNameAdd
*r
)
237 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
242 wkssvc_NetrLogonDomainNameDel
244 static WERROR
dcesrv_wkssvc_NetrLogonDomainNameDel(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
245 struct wkssvc_NetrLogonDomainNameDel
*r
)
247 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
252 wkssvc_NetrJoinDomain
254 static WERROR
dcesrv_wkssvc_NetrJoinDomain(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
255 struct wkssvc_NetrJoinDomain
*r
)
257 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
262 wkssvc_NetrUnjoinDomain
264 static WERROR
dcesrv_wkssvc_NetrUnjoinDomain(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
265 struct wkssvc_NetrUnjoinDomain
*r
)
267 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
272 wkssvc_NetrRenameMachineInDomain
274 static WERROR
dcesrv_wkssvc_NetrRenameMachineInDomain(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
275 struct wkssvc_NetrRenameMachineInDomain
*r
)
277 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
282 wkssvc_NetrValidateName
284 static WERROR
dcesrv_wkssvc_NetrValidateName(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
285 struct wkssvc_NetrValidateName
*r
)
287 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
292 wkssvc_NetrGetJoinInformation
294 static WERROR
dcesrv_wkssvc_NetrGetJoinInformation(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
295 struct wkssvc_NetrGetJoinInformation
*r
)
297 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
302 wkssvc_NetrGetJoinableOus
304 static WERROR
dcesrv_wkssvc_NetrGetJoinableOus(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
305 struct wkssvc_NetrGetJoinableOus
*r
)
307 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
312 WKSSVC_NETRJOINDOMAIN2
314 static WERROR
dcesrv_wkssvc_NetrJoinDomain2(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
315 struct wkssvc_NetrJoinDomain2
*r
)
317 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
322 WKSSVC_NETRUNJOINDOMAIN2
324 static WERROR
dcesrv_wkssvc_NetrUnjoinDomain2(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
325 struct wkssvc_NetrUnjoinDomain2
*r
)
327 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
332 wkssvc_NetrRenameMachineInDomain2
334 static WERROR
dcesrv_wkssvc_NetrRenameMachineInDomain2(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
335 struct wkssvc_NetrRenameMachineInDomain2
*r
)
337 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
342 wkssvc_NetrValidateName2
344 static WERROR
dcesrv_wkssvc_NetrValidateName2(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
345 struct wkssvc_NetrValidateName2
*r
)
347 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
352 wkssvc_NetrGetJoinableOus2
354 static WERROR
dcesrv_wkssvc_NetrGetJoinableOus2(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
355 struct wkssvc_NetrGetJoinableOus2
*r
)
357 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
362 wkssvc_NetrAddAlternateComputername
364 static WERROR
dcesrv_wkssvc_NetrAddAlternateComputerName(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
365 struct wkssvc_NetrAddAlternateComputerName
*r
)
367 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
372 wkssvc_NetrRemoveAlternateComputername
374 static WERROR
dcesrv_wkssvc_NetrRemoveAlternateComputerName(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
375 struct wkssvc_NetrRemoveAlternateComputerName
*r
)
377 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
382 wkssvc_NetrSetPrimaryComputername
384 static WERROR
dcesrv_wkssvc_NetrSetPrimaryComputername(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
385 struct wkssvc_NetrSetPrimaryComputername
*r
)
387 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
392 wkssvc_NetrEnumerateComputerNames
394 static WERROR
dcesrv_wkssvc_NetrEnumerateComputerNames(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
395 struct wkssvc_NetrEnumerateComputerNames
*r
)
397 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
401 /* include the generated boilerplate */
402 #include "librpc/gen_ndr/ndr_wkssvc_s.c"