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 "librpc/gen_ndr/ndr_srvsvc.h"
26 #include "rpc_server/common/common.h"
27 #include "param/param.h"
30 wkssvc_NetWkstaGetInfo
32 static WERROR
dcesrv_wkssvc_NetWkstaGetInfo(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
33 struct wkssvc_NetWkstaGetInfo
*r
)
35 struct dcesrv_context
*dce_ctx
= dce_call
->conn
->dce_ctx
;
36 struct dcerpc_server_info
*server_info
= lpcfg_dcerpc_server_info(mem_ctx
, dce_ctx
->lp_ctx
);
38 /* NOTE: win2k3 ignores r->in.server_name completely so we do --metze */
43 struct wkssvc_NetWkstaInfo100
*info100
;
45 info100
= talloc(mem_ctx
, struct wkssvc_NetWkstaInfo100
);
46 W_ERROR_HAVE_NO_MEMORY(info100
);
48 info100
->platform_id
= dcesrv_common_get_platform_id(mem_ctx
, dce_ctx
);
49 info100
->server_name
= dcesrv_common_get_server_name(mem_ctx
, dce_ctx
, NULL
);
50 W_ERROR_HAVE_NO_MEMORY(info100
->server_name
);
51 info100
->domain_name
= server_info
->domain_name
;
52 info100
->version_major
= server_info
->version_major
;
53 info100
->version_minor
= server_info
->version_minor
;
55 r
->out
.info
->info100
= info100
;
60 struct wkssvc_NetWkstaInfo101
*info101
;
62 info101
= talloc(mem_ctx
, struct wkssvc_NetWkstaInfo101
);
63 W_ERROR_HAVE_NO_MEMORY(info101
);
65 info101
->platform_id
= dcesrv_common_get_platform_id(mem_ctx
, dce_ctx
);
66 info101
->server_name
= dcesrv_common_get_server_name(mem_ctx
, dce_ctx
, NULL
);
67 W_ERROR_HAVE_NO_MEMORY(info101
->server_name
);
68 info101
->domain_name
= server_info
->domain_name
;
69 info101
->version_major
= server_info
->version_major
;
70 info101
->version_minor
= server_info
->version_minor
;
71 info101
->lan_root
= dcesrv_common_get_lan_root(mem_ctx
, dce_ctx
);
73 r
->out
.info
->info101
= info101
;
78 return WERR_ACCESS_DENIED
;
82 return WERR_ACCESS_DENIED
;
85 return WERR_INVALID_LEVEL
;
91 wkssvc_NetWkstaSetInfo
93 static WERROR
dcesrv_wkssvc_NetWkstaSetInfo(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
94 struct wkssvc_NetWkstaSetInfo
*r
)
96 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
101 wkssvc_NetWkstaEnumUsers
103 static WERROR
dcesrv_wkssvc_NetWkstaEnumUsers(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
104 struct wkssvc_NetWkstaEnumUsers
*r
)
106 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
111 wkssvc_NetrWkstaUserGetInfo
113 static WERROR
dcesrv_wkssvc_NetrWkstaUserGetInfo(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
114 struct wkssvc_NetrWkstaUserGetInfo
*r
)
116 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
121 wkssvc_NetrWkstaUserSetInfo
123 static WERROR
dcesrv_wkssvc_NetrWkstaUserSetInfo(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
124 struct wkssvc_NetrWkstaUserSetInfo
*r
)
126 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
131 wkssvc_NetWkstaTransportEnum
133 static WERROR
dcesrv_wkssvc_NetWkstaTransportEnum(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
134 struct wkssvc_NetWkstaTransportEnum
*r
)
136 switch (r
->in
.info
->level
) {
138 r
->out
.info
->ctr
.ctr0
= talloc(mem_ctx
, struct wkssvc_NetWkstaTransportCtr0
);
139 W_ERROR_HAVE_NO_MEMORY(r
->out
.info
->ctr
.ctr0
);
141 r
->out
.info
->ctr
.ctr0
->count
= 0;
142 r
->out
.info
->ctr
.ctr0
->array
= NULL
;
144 return WERR_NOT_SUPPORTED
;
147 return WERR_INVALID_LEVEL
;
153 wkssvc_NetrWkstaTransportAdd
155 static WERROR
dcesrv_wkssvc_NetrWkstaTransportAdd(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
156 struct wkssvc_NetrWkstaTransportAdd
*r
)
158 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
163 wkssvc_NetrWkstaTransportDel
165 static WERROR
dcesrv_wkssvc_NetrWkstaTransportDel(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
166 struct wkssvc_NetrWkstaTransportDel
*r
)
168 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
175 static WERROR
dcesrv_wkssvc_NetrUseAdd(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
176 struct wkssvc_NetrUseAdd
*r
)
178 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
183 wkssvc_NetrUseGetInfo
185 static WERROR
dcesrv_wkssvc_NetrUseGetInfo(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
186 struct wkssvc_NetrUseGetInfo
*r
)
188 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
195 static WERROR
dcesrv_wkssvc_NetrUseDel(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
196 struct wkssvc_NetrUseDel
*r
)
198 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
205 static WERROR
dcesrv_wkssvc_NetrUseEnum(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
206 struct wkssvc_NetrUseEnum
*r
)
208 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
213 wkssvc_NetrMessageBufferSend
215 static WERROR
dcesrv_wkssvc_NetrMessageBufferSend(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
216 struct wkssvc_NetrMessageBufferSend
*r
)
218 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
223 wkssvc_NetrWorkstationStatisticsGet
225 static WERROR
dcesrv_wkssvc_NetrWorkstationStatisticsGet(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
226 struct wkssvc_NetrWorkstationStatisticsGet
*r
)
228 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
233 wkssvc_NetrLogonDomainNameAdd
235 static WERROR
dcesrv_wkssvc_NetrLogonDomainNameAdd(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
236 struct wkssvc_NetrLogonDomainNameAdd
*r
)
238 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
243 wkssvc_NetrLogonDomainNameDel
245 static WERROR
dcesrv_wkssvc_NetrLogonDomainNameDel(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
246 struct wkssvc_NetrLogonDomainNameDel
*r
)
248 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
253 wkssvc_NetrJoinDomain
255 static WERROR
dcesrv_wkssvc_NetrJoinDomain(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
256 struct wkssvc_NetrJoinDomain
*r
)
258 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
263 wkssvc_NetrUnjoinDomain
265 static WERROR
dcesrv_wkssvc_NetrUnjoinDomain(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
266 struct wkssvc_NetrUnjoinDomain
*r
)
268 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
273 wkssvc_NetrRenameMachineInDomain
275 static WERROR
dcesrv_wkssvc_NetrRenameMachineInDomain(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
276 struct wkssvc_NetrRenameMachineInDomain
*r
)
278 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
283 wkssvc_NetrValidateName
285 static WERROR
dcesrv_wkssvc_NetrValidateName(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
286 struct wkssvc_NetrValidateName
*r
)
288 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
293 wkssvc_NetrGetJoinInformation
295 static WERROR
dcesrv_wkssvc_NetrGetJoinInformation(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
296 struct wkssvc_NetrGetJoinInformation
*r
)
298 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
303 wkssvc_NetrGetJoinableOus
305 static WERROR
dcesrv_wkssvc_NetrGetJoinableOus(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
306 struct wkssvc_NetrGetJoinableOus
*r
)
308 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
313 WKSSVC_NETRJOINDOMAIN2
315 static WERROR
dcesrv_wkssvc_NetrJoinDomain2(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
316 struct wkssvc_NetrJoinDomain2
*r
)
318 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
323 WKSSVC_NETRUNJOINDOMAIN2
325 static WERROR
dcesrv_wkssvc_NetrUnjoinDomain2(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
326 struct wkssvc_NetrUnjoinDomain2
*r
)
328 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
333 wkssvc_NetrRenameMachineInDomain2
335 static WERROR
dcesrv_wkssvc_NetrRenameMachineInDomain2(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
336 struct wkssvc_NetrRenameMachineInDomain2
*r
)
338 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
343 wkssvc_NetrValidateName2
345 static WERROR
dcesrv_wkssvc_NetrValidateName2(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
346 struct wkssvc_NetrValidateName2
*r
)
348 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
353 wkssvc_NetrGetJoinableOus2
355 static WERROR
dcesrv_wkssvc_NetrGetJoinableOus2(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
356 struct wkssvc_NetrGetJoinableOus2
*r
)
358 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
363 wkssvc_NetrAddAlternateComputername
365 static WERROR
dcesrv_wkssvc_NetrAddAlternateComputerName(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
366 struct wkssvc_NetrAddAlternateComputerName
*r
)
368 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
373 wkssvc_NetrRemoveAlternateComputername
375 static WERROR
dcesrv_wkssvc_NetrRemoveAlternateComputerName(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
376 struct wkssvc_NetrRemoveAlternateComputerName
*r
)
378 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
383 wkssvc_NetrSetPrimaryComputername
385 static WERROR
dcesrv_wkssvc_NetrSetPrimaryComputername(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
386 struct wkssvc_NetrSetPrimaryComputername
*r
)
388 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
393 wkssvc_NetrEnumerateComputerNames
395 static WERROR
dcesrv_wkssvc_NetrEnumerateComputerNames(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
,
396 struct wkssvc_NetrEnumerateComputerNames
*r
)
398 DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR
);
402 /* include the generated boilerplate */
403 #include "librpc/gen_ndr/ndr_wkssvc_s.c"