2 * Unix SMB/CIFS implementation.
4 * Copyright (C) Guenther Deschner 2007-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/>.
21 #include "librpc/gen_ndr/libnetapi.h"
22 #include "lib/netapi/netapi.h"
23 #include "lib/netapi/netapi_private.h"
24 #include "lib/netapi/libnetapi.h"
25 #include "librpc/gen_ndr/ndr_libnetapi.h"
27 /****************************************************************
29 ****************************************************************/
31 NET_API_STATUS NetJoinDomain(const char * server /* [in] [unique] */,
32 const char * domain /* [in] [ref] */,
33 const char * account_ou /* [in] [unique] */,
34 const char * account /* [in] [unique] */,
35 const char * password /* [in] [unique] */,
36 uint32_t join_flags /* [in] */)
38 struct NetJoinDomain r;
39 struct libnetapi_ctx *ctx = NULL;
40 NET_API_STATUS status;
42 TALLOC_CTX *frame = talloc_stackframe();
46 status = libnetapi_getctx(&ctx);
55 r.in.account_ou = account_ou;
56 r.in.account = account;
57 r.in.password = password;
58 r.in.join_flags = join_flags;
62 if (DEBUGLEVEL >= 10) {
63 NDR_PRINT_IN_DEBUG(NetJoinDomain, &r);
66 if (LIBNETAPI_LOCAL_SERVER(server)) {
67 werr = NetJoinDomain_l(ctx, &r);
69 werr = NetJoinDomain_r(ctx, &r);
72 r.out.result = W_ERROR_V(werr);
74 if (DEBUGLEVEL >= 10) {
75 NDR_PRINT_OUT_DEBUG(NetJoinDomain, &r);
79 return (NET_API_STATUS)r.out.result;
82 /****************************************************************
84 ****************************************************************/
86 NET_API_STATUS NetUnjoinDomain(const char * server_name /* [in] [unique] */,
87 const char * account /* [in] [unique] */,
88 const char * password /* [in] [unique] */,
89 uint32_t unjoin_flags /* [in] */)
91 struct NetUnjoinDomain r;
92 struct libnetapi_ctx *ctx = NULL;
93 NET_API_STATUS status;
95 TALLOC_CTX *frame = talloc_stackframe();
99 status = libnetapi_getctx(&ctx);
106 r.in.server_name = server_name;
107 r.in.account = account;
108 r.in.password = password;
109 r.in.unjoin_flags = unjoin_flags;
113 if (DEBUGLEVEL >= 10) {
114 NDR_PRINT_IN_DEBUG(NetUnjoinDomain, &r);
117 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
118 werr = NetUnjoinDomain_l(ctx, &r);
120 werr = NetUnjoinDomain_r(ctx, &r);
123 r.out.result = W_ERROR_V(werr);
125 if (DEBUGLEVEL >= 10) {
126 NDR_PRINT_OUT_DEBUG(NetUnjoinDomain, &r);
130 return (NET_API_STATUS)r.out.result;
133 /****************************************************************
134 NetGetJoinInformation
135 ****************************************************************/
137 NET_API_STATUS NetGetJoinInformation(const char * server_name /* [in] [unique] */,
138 const char * *name_buffer /* [out] [ref] */,
139 uint16_t *name_type /* [out] [ref] */)
141 struct NetGetJoinInformation r;
142 struct libnetapi_ctx *ctx = NULL;
143 NET_API_STATUS status;
145 TALLOC_CTX *frame = talloc_stackframe();
149 status = libnetapi_getctx(&ctx);
156 r.in.server_name = server_name;
159 r.out.name_buffer = name_buffer;
160 r.out.name_type = name_type;
162 if (DEBUGLEVEL >= 10) {
163 NDR_PRINT_IN_DEBUG(NetGetJoinInformation, &r);
166 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
167 werr = NetGetJoinInformation_l(ctx, &r);
169 werr = NetGetJoinInformation_r(ctx, &r);
172 r.out.result = W_ERROR_V(werr);
174 if (DEBUGLEVEL >= 10) {
175 NDR_PRINT_OUT_DEBUG(NetGetJoinInformation, &r);
179 return (NET_API_STATUS)r.out.result;
182 /****************************************************************
184 ****************************************************************/
186 NET_API_STATUS NetGetJoinableOUs(const char * server_name /* [in] [unique] */,
187 const char * domain /* [in] [ref] */,
188 const char * account /* [in] [unique] */,
189 const char * password /* [in] [unique] */,
190 uint32_t *ou_count /* [out] [ref] */,
191 const char * **ous /* [out] [ref] */)
193 struct NetGetJoinableOUs r;
194 struct libnetapi_ctx *ctx = NULL;
195 NET_API_STATUS status;
197 TALLOC_CTX *frame = talloc_stackframe();
201 status = libnetapi_getctx(&ctx);
208 r.in.server_name = server_name;
209 r.in.domain = domain;
210 r.in.account = account;
211 r.in.password = password;
214 r.out.ou_count = ou_count;
217 if (DEBUGLEVEL >= 10) {
218 NDR_PRINT_IN_DEBUG(NetGetJoinableOUs, &r);
221 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
222 werr = NetGetJoinableOUs_l(ctx, &r);
224 werr = NetGetJoinableOUs_r(ctx, &r);
227 r.out.result = W_ERROR_V(werr);
229 if (DEBUGLEVEL >= 10) {
230 NDR_PRINT_OUT_DEBUG(NetGetJoinableOUs, &r);
234 return (NET_API_STATUS)r.out.result;
237 /****************************************************************
238 NetRenameMachineInDomain
239 ****************************************************************/
241 NET_API_STATUS NetRenameMachineInDomain(const char * server_name /* [in] */,
242 const char * new_machine_name /* [in] */,
243 const char * account /* [in] */,
244 const char * password /* [in] */,
245 uint32_t rename_options /* [in] */)
247 struct NetRenameMachineInDomain r;
248 struct libnetapi_ctx *ctx = NULL;
249 NET_API_STATUS status;
251 TALLOC_CTX *frame = talloc_stackframe();
255 status = libnetapi_getctx(&ctx);
262 r.in.server_name = server_name;
263 r.in.new_machine_name = new_machine_name;
264 r.in.account = account;
265 r.in.password = password;
266 r.in.rename_options = rename_options;
270 if (DEBUGLEVEL >= 10) {
271 NDR_PRINT_IN_DEBUG(NetRenameMachineInDomain, &r);
274 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
275 werr = NetRenameMachineInDomain_l(ctx, &r);
277 werr = NetRenameMachineInDomain_r(ctx, &r);
280 r.out.result = W_ERROR_V(werr);
282 if (DEBUGLEVEL >= 10) {
283 NDR_PRINT_OUT_DEBUG(NetRenameMachineInDomain, &r);
287 return (NET_API_STATUS)r.out.result;
290 /****************************************************************
291 NetProvisionComputerAccount
292 ****************************************************************/
294 NET_API_STATUS NetProvisionComputerAccount(const char * domain /* [in] [ref] */,
295 const char * machine_name /* [in] [ref] */,
296 const char * machine_account_ou /* [in] [unique] */,
297 const char * dcname /* [in] [unique] */,
298 uint32_t options /* [in] */,
299 uint8_t **provision_bin_data /* [in,out] [unique] */,
300 uint32_t *provision_bin_data_size /* [in,out] [unique] */,
301 const char * *provision_text_data /* [in,out] [unique] */)
303 struct NetProvisionComputerAccount r;
304 struct libnetapi_ctx *ctx = NULL;
305 NET_API_STATUS status;
307 TALLOC_CTX *frame = talloc_stackframe();
311 status = libnetapi_getctx(&ctx);
318 r.in.domain = domain;
319 r.in.machine_name = machine_name;
320 r.in.machine_account_ou = machine_account_ou;
321 r.in.dcname = dcname;
322 r.in.options = options;
323 r.in.provision_bin_data = provision_bin_data;
324 r.in.provision_bin_data_size = provision_bin_data_size;
325 r.in.provision_text_data = provision_text_data;
328 r.out.provision_bin_data = provision_bin_data;
329 r.out.provision_bin_data_size = provision_bin_data_size;
330 r.out.provision_text_data = provision_text_data;
332 if (DEBUGLEVEL >= 10) {
333 NDR_PRINT_IN_DEBUG(NetProvisionComputerAccount, &r);
336 werr = NetProvisionComputerAccount_l(ctx, &r);
338 r.out.result = W_ERROR_V(werr);
340 if (DEBUGLEVEL >= 10) {
341 NDR_PRINT_OUT_DEBUG(NetProvisionComputerAccount, &r);
345 return (NET_API_STATUS)r.out.result;
348 /****************************************************************
349 NetRequestOfflineDomainJoin
350 ****************************************************************/
352 NET_API_STATUS NetRequestOfflineDomainJoin(uint8_t *provision_bin_data /* [in] [unique] */,
353 uint32_t provision_bin_data_size /* [in] */,
354 uint32_t options /* [in] */,
355 const char * windows_path /* [in] [unique] */)
357 struct NetRequestOfflineDomainJoin r;
358 struct libnetapi_ctx *ctx = NULL;
359 NET_API_STATUS status;
361 TALLOC_CTX *frame = talloc_stackframe();
365 status = libnetapi_getctx(&ctx);
372 r.in.provision_bin_data = provision_bin_data;
373 r.in.provision_bin_data_size = provision_bin_data_size;
374 r.in.options = options;
375 r.in.windows_path = windows_path;
379 if (DEBUGLEVEL >= 10) {
380 NDR_PRINT_IN_DEBUG(NetRequestOfflineDomainJoin, &r);
383 werr = NetRequestOfflineDomainJoin_l(ctx, &r);
385 r.out.result = W_ERROR_V(werr);
387 if (DEBUGLEVEL >= 10) {
388 NDR_PRINT_OUT_DEBUG(NetRequestOfflineDomainJoin, &r);
392 return (NET_API_STATUS)r.out.result;
395 /****************************************************************
396 NetComposeOfflineDomainJoin
397 ****************************************************************/
398 NET_API_STATUS NetComposeOfflineDomainJoin(const char *dns_domain_name /* [in] [ref] */,
399 const char *netbios_domain_name /* [in] [ref] */,
400 struct domsid *domain_sid /* [in] [ref] */,
401 struct GUID *domain_guid /* [in] [ref] */,
402 const char *forest_name /* [in] [ref] */,
403 const char *machine_account_name /* [in] [ref] */,
404 const char *machine_account_password /* [in] [ref] */,
405 const char *dc_name /* [in] [unique] */,
406 const char *dc_address /* [in] [unique] */,
407 int domain_is_ad /* [in] */,
408 uint8_t **compose_bin_data /* [in,out] [unique] */,
409 uint32_t *compose_bin_data_size /* [in,out] [unique] */,
410 const char * *compose_text_data /* [in,out] [unique] */)
412 struct NetComposeOfflineDomainJoin r;
413 struct libnetapi_ctx *ctx = NULL;
414 NET_API_STATUS status;
416 TALLOC_CTX *frame = talloc_stackframe();
420 status = libnetapi_getctx(&ctx);
427 r.in.dns_domain_name = dns_domain_name;
428 r.in.netbios_domain_name = netbios_domain_name;
429 r.in.domain_sid = domain_sid;
430 r.in.domain_guid = domain_guid;
431 r.in.forest_name = forest_name;
432 r.in.machine_account_name = machine_account_name;
433 r.in.machine_account_password = machine_account_password;
434 r.in.dc_name = dc_name;
435 r.in.dc_address = dc_address;
436 r.in.domain_is_ad = domain_is_ad;
437 r.in.compose_bin_data = compose_bin_data;
438 r.in.compose_bin_data_size = compose_bin_data_size;
439 r.in.compose_text_data = compose_text_data;
442 r.out.compose_bin_data = compose_bin_data;
443 r.out.compose_bin_data_size = compose_bin_data_size;
444 r.out.compose_text_data = compose_text_data;
446 if (DEBUGLEVEL >= 10) {
447 NDR_PRINT_IN_DEBUG(NetComposeOfflineDomainJoin, &r);
450 werr = NetComposeOfflineDomainJoin_l(ctx, &r);
452 r.out.result = W_ERROR_V(werr);
454 if (DEBUGLEVEL >= 10) {
455 NDR_PRINT_OUT_DEBUG(NetComposeOfflineDomainJoin, &r);
459 return (NET_API_STATUS)r.out.result;
462 /****************************************************************
464 ****************************************************************/
466 NET_API_STATUS NetServerGetInfo(const char * server_name /* [in] [unique] */,
467 uint32_t level /* [in] */,
468 uint8_t **buffer /* [out] [ref] */)
470 struct NetServerGetInfo r;
471 struct libnetapi_ctx *ctx = NULL;
472 NET_API_STATUS status;
474 TALLOC_CTX *frame = talloc_stackframe();
478 status = libnetapi_getctx(&ctx);
485 r.in.server_name = server_name;
489 r.out.buffer = buffer;
491 if (DEBUGLEVEL >= 10) {
492 NDR_PRINT_IN_DEBUG(NetServerGetInfo, &r);
495 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
496 werr = NetServerGetInfo_l(ctx, &r);
498 werr = NetServerGetInfo_r(ctx, &r);
501 r.out.result = W_ERROR_V(werr);
503 if (DEBUGLEVEL >= 10) {
504 NDR_PRINT_OUT_DEBUG(NetServerGetInfo, &r);
508 return (NET_API_STATUS)r.out.result;
511 /****************************************************************
513 ****************************************************************/
515 NET_API_STATUS NetServerSetInfo(const char * server_name /* [in] [unique] */,
516 uint32_t level /* [in] */,
517 uint8_t *buffer /* [in] [ref] */,
518 uint32_t *parm_error /* [out] [ref] */)
520 struct NetServerSetInfo r;
521 struct libnetapi_ctx *ctx = NULL;
522 NET_API_STATUS status;
524 TALLOC_CTX *frame = talloc_stackframe();
528 status = libnetapi_getctx(&ctx);
535 r.in.server_name = server_name;
537 r.in.buffer = buffer;
540 r.out.parm_error = parm_error;
542 if (DEBUGLEVEL >= 10) {
543 NDR_PRINT_IN_DEBUG(NetServerSetInfo, &r);
546 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
547 werr = NetServerSetInfo_l(ctx, &r);
549 werr = NetServerSetInfo_r(ctx, &r);
552 r.out.result = W_ERROR_V(werr);
554 if (DEBUGLEVEL >= 10) {
555 NDR_PRINT_OUT_DEBUG(NetServerSetInfo, &r);
559 return (NET_API_STATUS)r.out.result;
562 /****************************************************************
564 ****************************************************************/
566 NET_API_STATUS NetWkstaGetInfo(const char * server_name /* [in] [unique] */,
567 uint32_t level /* [in] */,
568 uint8_t **buffer /* [out] [ref] */)
570 struct NetWkstaGetInfo r;
571 struct libnetapi_ctx *ctx = NULL;
572 NET_API_STATUS status;
574 TALLOC_CTX *frame = talloc_stackframe();
578 status = libnetapi_getctx(&ctx);
585 r.in.server_name = server_name;
589 r.out.buffer = buffer;
591 if (DEBUGLEVEL >= 10) {
592 NDR_PRINT_IN_DEBUG(NetWkstaGetInfo, &r);
595 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
596 werr = NetWkstaGetInfo_l(ctx, &r);
598 werr = NetWkstaGetInfo_r(ctx, &r);
601 r.out.result = W_ERROR_V(werr);
603 if (DEBUGLEVEL >= 10) {
604 NDR_PRINT_OUT_DEBUG(NetWkstaGetInfo, &r);
608 return (NET_API_STATUS)r.out.result;
611 /****************************************************************
613 ****************************************************************/
615 NET_API_STATUS NetGetDCName(const char * server_name /* [in] [unique] */,
616 const char * domain_name /* [in] [unique] */,
617 uint8_t **buffer /* [out] [ref] */)
619 struct NetGetDCName r;
620 struct libnetapi_ctx *ctx = NULL;
621 NET_API_STATUS status;
623 TALLOC_CTX *frame = talloc_stackframe();
627 status = libnetapi_getctx(&ctx);
634 r.in.server_name = server_name;
635 r.in.domain_name = domain_name;
638 r.out.buffer = buffer;
640 if (DEBUGLEVEL >= 10) {
641 NDR_PRINT_IN_DEBUG(NetGetDCName, &r);
644 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
645 werr = NetGetDCName_l(ctx, &r);
647 werr = NetGetDCName_r(ctx, &r);
650 r.out.result = W_ERROR_V(werr);
652 if (DEBUGLEVEL >= 10) {
653 NDR_PRINT_OUT_DEBUG(NetGetDCName, &r);
657 return (NET_API_STATUS)r.out.result;
660 /****************************************************************
662 ****************************************************************/
664 NET_API_STATUS NetGetAnyDCName(const char * server_name /* [in] [unique] */,
665 const char * domain_name /* [in] [unique] */,
666 uint8_t **buffer /* [out] [ref] */)
668 struct NetGetAnyDCName r;
669 struct libnetapi_ctx *ctx = NULL;
670 NET_API_STATUS status;
672 TALLOC_CTX *frame = talloc_stackframe();
676 status = libnetapi_getctx(&ctx);
683 r.in.server_name = server_name;
684 r.in.domain_name = domain_name;
687 r.out.buffer = buffer;
689 if (DEBUGLEVEL >= 10) {
690 NDR_PRINT_IN_DEBUG(NetGetAnyDCName, &r);
693 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
694 werr = NetGetAnyDCName_l(ctx, &r);
696 werr = NetGetAnyDCName_r(ctx, &r);
699 r.out.result = W_ERROR_V(werr);
701 if (DEBUGLEVEL >= 10) {
702 NDR_PRINT_OUT_DEBUG(NetGetAnyDCName, &r);
706 return (NET_API_STATUS)r.out.result;
709 /****************************************************************
711 ****************************************************************/
713 NET_API_STATUS DsGetDcName(const char * server_name /* [in] [unique] */,
714 const char * domain_name /* [in] [ref] */,
715 struct GUID *domain_guid /* [in] [unique] */,
716 const char * site_name /* [in] [unique] */,
717 uint32_t flags /* [in] */,
718 struct DOMAIN_CONTROLLER_INFO **dc_info /* [out] [ref] */)
720 struct DsGetDcName r;
721 struct libnetapi_ctx *ctx = NULL;
722 NET_API_STATUS status;
724 TALLOC_CTX *frame = talloc_stackframe();
728 status = libnetapi_getctx(&ctx);
735 r.in.server_name = server_name;
736 r.in.domain_name = domain_name;
737 r.in.domain_guid = domain_guid;
738 r.in.site_name = site_name;
742 r.out.dc_info = dc_info;
744 if (DEBUGLEVEL >= 10) {
745 NDR_PRINT_IN_DEBUG(DsGetDcName, &r);
748 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
749 werr = DsGetDcName_l(ctx, &r);
751 werr = DsGetDcName_r(ctx, &r);
754 r.out.result = W_ERROR_V(werr);
756 if (DEBUGLEVEL >= 10) {
757 NDR_PRINT_OUT_DEBUG(DsGetDcName, &r);
761 return (NET_API_STATUS)r.out.result;
764 /****************************************************************
766 ****************************************************************/
768 NET_API_STATUS NetUserAdd(const char * server_name /* [in] [unique] */,
769 uint32_t level /* [in] */,
770 uint8_t *buffer /* [in] [ref] */,
771 uint32_t *parm_error /* [out] [ref] */)
774 struct libnetapi_ctx *ctx = NULL;
775 NET_API_STATUS status;
777 TALLOC_CTX *frame = talloc_stackframe();
781 status = libnetapi_getctx(&ctx);
788 r.in.server_name = server_name;
790 r.in.buffer = buffer;
793 r.out.parm_error = parm_error;
795 if (DEBUGLEVEL >= 10) {
796 NDR_PRINT_IN_DEBUG(NetUserAdd, &r);
799 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
800 werr = NetUserAdd_l(ctx, &r);
802 werr = NetUserAdd_r(ctx, &r);
805 r.out.result = W_ERROR_V(werr);
807 if (DEBUGLEVEL >= 10) {
808 NDR_PRINT_OUT_DEBUG(NetUserAdd, &r);
812 return (NET_API_STATUS)r.out.result;
815 /****************************************************************
817 ****************************************************************/
819 NET_API_STATUS NetUserDel(const char * server_name /* [in] [unique] */,
820 const char * user_name /* [in] [ref] */)
823 struct libnetapi_ctx *ctx = NULL;
824 NET_API_STATUS status;
826 TALLOC_CTX *frame = talloc_stackframe();
830 status = libnetapi_getctx(&ctx);
837 r.in.server_name = server_name;
838 r.in.user_name = user_name;
842 if (DEBUGLEVEL >= 10) {
843 NDR_PRINT_IN_DEBUG(NetUserDel, &r);
846 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
847 werr = NetUserDel_l(ctx, &r);
849 werr = NetUserDel_r(ctx, &r);
852 r.out.result = W_ERROR_V(werr);
854 if (DEBUGLEVEL >= 10) {
855 NDR_PRINT_OUT_DEBUG(NetUserDel, &r);
859 return (NET_API_STATUS)r.out.result;
862 /****************************************************************
864 ****************************************************************/
866 NET_API_STATUS NetUserEnum(const char * server_name /* [in] [unique] */,
867 uint32_t level /* [in] */,
868 uint32_t filter /* [in] */,
869 uint8_t **buffer /* [out] [ref] */,
870 uint32_t prefmaxlen /* [in] */,
871 uint32_t *entries_read /* [out] [ref] */,
872 uint32_t *total_entries /* [out] [ref] */,
873 uint32_t *resume_handle /* [in,out] [ref] */)
875 struct NetUserEnum r;
876 struct libnetapi_ctx *ctx = NULL;
877 NET_API_STATUS status;
879 TALLOC_CTX *frame = talloc_stackframe();
883 status = libnetapi_getctx(&ctx);
890 r.in.server_name = server_name;
892 r.in.filter = filter;
893 r.in.prefmaxlen = prefmaxlen;
894 r.in.resume_handle = resume_handle;
897 r.out.buffer = buffer;
898 r.out.entries_read = entries_read;
899 r.out.total_entries = total_entries;
900 r.out.resume_handle = resume_handle;
902 if (DEBUGLEVEL >= 10) {
903 NDR_PRINT_IN_DEBUG(NetUserEnum, &r);
906 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
907 werr = NetUserEnum_l(ctx, &r);
909 werr = NetUserEnum_r(ctx, &r);
912 r.out.result = W_ERROR_V(werr);
914 if (DEBUGLEVEL >= 10) {
915 NDR_PRINT_OUT_DEBUG(NetUserEnum, &r);
919 return (NET_API_STATUS)r.out.result;
922 /****************************************************************
923 NetUserChangePassword
924 ****************************************************************/
926 NET_API_STATUS NetUserChangePassword(const char * domain_name /* [in] */,
927 const char * user_name /* [in] */,
928 const char * old_password /* [in] */,
929 const char * new_password /* [in] */)
931 struct NetUserChangePassword r;
932 struct libnetapi_ctx *ctx = NULL;
933 NET_API_STATUS status;
935 TALLOC_CTX *frame = talloc_stackframe();
939 status = libnetapi_getctx(&ctx);
946 r.in.domain_name = domain_name;
947 r.in.user_name = user_name;
948 r.in.old_password = old_password;
949 r.in.new_password = new_password;
953 if (DEBUGLEVEL >= 10) {
954 NDR_PRINT_IN_DEBUG(NetUserChangePassword, &r);
957 werr = NetUserChangePassword_l(ctx, &r);
959 r.out.result = W_ERROR_V(werr);
961 if (DEBUGLEVEL >= 10) {
962 NDR_PRINT_OUT_DEBUG(NetUserChangePassword, &r);
966 return (NET_API_STATUS)r.out.result;
969 /****************************************************************
971 ****************************************************************/
973 NET_API_STATUS NetUserGetInfo(const char * server_name /* [in] */,
974 const char * user_name /* [in] */,
975 uint32_t level /* [in] */,
976 uint8_t **buffer /* [out] [ref] */)
978 struct NetUserGetInfo r;
979 struct libnetapi_ctx *ctx = NULL;
980 NET_API_STATUS status;
982 TALLOC_CTX *frame = talloc_stackframe();
986 status = libnetapi_getctx(&ctx);
993 r.in.server_name = server_name;
994 r.in.user_name = user_name;
998 r.out.buffer = buffer;
1000 if (DEBUGLEVEL >= 10) {
1001 NDR_PRINT_IN_DEBUG(NetUserGetInfo, &r);
1004 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1005 werr = NetUserGetInfo_l(ctx, &r);
1007 werr = NetUserGetInfo_r(ctx, &r);
1010 r.out.result = W_ERROR_V(werr);
1012 if (DEBUGLEVEL >= 10) {
1013 NDR_PRINT_OUT_DEBUG(NetUserGetInfo, &r);
1017 return (NET_API_STATUS)r.out.result;
1020 /****************************************************************
1022 ****************************************************************/
1024 NET_API_STATUS NetUserSetInfo(const char * server_name /* [in] */,
1025 const char * user_name /* [in] */,
1026 uint32_t level /* [in] */,
1027 uint8_t *buffer /* [in] [ref] */,
1028 uint32_t *parm_err /* [out] [ref] */)
1030 struct NetUserSetInfo r;
1031 struct libnetapi_ctx *ctx = NULL;
1032 NET_API_STATUS status;
1034 TALLOC_CTX *frame = talloc_stackframe();
1038 status = libnetapi_getctx(&ctx);
1045 r.in.server_name = server_name;
1046 r.in.user_name = user_name;
1048 r.in.buffer = buffer;
1050 /* Out parameters */
1051 r.out.parm_err = parm_err;
1053 if (DEBUGLEVEL >= 10) {
1054 NDR_PRINT_IN_DEBUG(NetUserSetInfo, &r);
1057 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1058 werr = NetUserSetInfo_l(ctx, &r);
1060 werr = NetUserSetInfo_r(ctx, &r);
1063 r.out.result = W_ERROR_V(werr);
1065 if (DEBUGLEVEL >= 10) {
1066 NDR_PRINT_OUT_DEBUG(NetUserSetInfo, &r);
1070 return (NET_API_STATUS)r.out.result;
1073 /****************************************************************
1075 ****************************************************************/
1077 NET_API_STATUS NetUserGetGroups(const char * server_name /* [in] */,
1078 const char * user_name /* [in] */,
1079 uint32_t level /* [in] */,
1080 uint8_t **buffer /* [out] [ref] */,
1081 uint32_t prefmaxlen /* [in] */,
1082 uint32_t *entries_read /* [out] [ref] */,
1083 uint32_t *total_entries /* [out] [ref] */)
1085 struct NetUserGetGroups r;
1086 struct libnetapi_ctx *ctx = NULL;
1087 NET_API_STATUS status;
1089 TALLOC_CTX *frame = talloc_stackframe();
1093 status = libnetapi_getctx(&ctx);
1100 r.in.server_name = server_name;
1101 r.in.user_name = user_name;
1103 r.in.prefmaxlen = prefmaxlen;
1105 /* Out parameters */
1106 r.out.buffer = buffer;
1107 r.out.entries_read = entries_read;
1108 r.out.total_entries = total_entries;
1110 if (DEBUGLEVEL >= 10) {
1111 NDR_PRINT_IN_DEBUG(NetUserGetGroups, &r);
1114 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1115 werr = NetUserGetGroups_l(ctx, &r);
1117 werr = NetUserGetGroups_r(ctx, &r);
1120 r.out.result = W_ERROR_V(werr);
1122 if (DEBUGLEVEL >= 10) {
1123 NDR_PRINT_OUT_DEBUG(NetUserGetGroups, &r);
1127 return (NET_API_STATUS)r.out.result;
1130 /****************************************************************
1132 ****************************************************************/
1134 NET_API_STATUS NetUserSetGroups(const char * server_name /* [in] */,
1135 const char * user_name /* [in] */,
1136 uint32_t level /* [in] */,
1137 uint8_t *buffer /* [in] [ref] */,
1138 uint32_t num_entries /* [in] */)
1140 struct NetUserSetGroups r;
1141 struct libnetapi_ctx *ctx = NULL;
1142 NET_API_STATUS status;
1144 TALLOC_CTX *frame = talloc_stackframe();
1148 status = libnetapi_getctx(&ctx);
1155 r.in.server_name = server_name;
1156 r.in.user_name = user_name;
1158 r.in.buffer = buffer;
1159 r.in.num_entries = num_entries;
1161 /* Out parameters */
1163 if (DEBUGLEVEL >= 10) {
1164 NDR_PRINT_IN_DEBUG(NetUserSetGroups, &r);
1167 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1168 werr = NetUserSetGroups_l(ctx, &r);
1170 werr = NetUserSetGroups_r(ctx, &r);
1173 r.out.result = W_ERROR_V(werr);
1175 if (DEBUGLEVEL >= 10) {
1176 NDR_PRINT_OUT_DEBUG(NetUserSetGroups, &r);
1180 return (NET_API_STATUS)r.out.result;
1183 /****************************************************************
1184 NetUserGetLocalGroups
1185 ****************************************************************/
1187 NET_API_STATUS NetUserGetLocalGroups(const char * server_name /* [in] */,
1188 const char * user_name /* [in] */,
1189 uint32_t level /* [in] */,
1190 uint32_t flags /* [in] */,
1191 uint8_t **buffer /* [out] [ref] */,
1192 uint32_t prefmaxlen /* [in] */,
1193 uint32_t *entries_read /* [out] [ref] */,
1194 uint32_t *total_entries /* [out] [ref] */)
1196 struct NetUserGetLocalGroups r;
1197 struct libnetapi_ctx *ctx = NULL;
1198 NET_API_STATUS status;
1200 TALLOC_CTX *frame = talloc_stackframe();
1204 status = libnetapi_getctx(&ctx);
1211 r.in.server_name = server_name;
1212 r.in.user_name = user_name;
1215 r.in.prefmaxlen = prefmaxlen;
1217 /* Out parameters */
1218 r.out.buffer = buffer;
1219 r.out.entries_read = entries_read;
1220 r.out.total_entries = total_entries;
1222 if (DEBUGLEVEL >= 10) {
1223 NDR_PRINT_IN_DEBUG(NetUserGetLocalGroups, &r);
1226 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1227 werr = NetUserGetLocalGroups_l(ctx, &r);
1229 werr = NetUserGetLocalGroups_r(ctx, &r);
1232 r.out.result = W_ERROR_V(werr);
1234 if (DEBUGLEVEL >= 10) {
1235 NDR_PRINT_OUT_DEBUG(NetUserGetLocalGroups, &r);
1239 return (NET_API_STATUS)r.out.result;
1242 /****************************************************************
1244 ****************************************************************/
1246 NET_API_STATUS NetUserModalsGet(const char * server_name /* [in] */,
1247 uint32_t level /* [in] */,
1248 uint8_t **buffer /* [out] [ref] */)
1250 struct NetUserModalsGet r;
1251 struct libnetapi_ctx *ctx = NULL;
1252 NET_API_STATUS status;
1254 TALLOC_CTX *frame = talloc_stackframe();
1258 status = libnetapi_getctx(&ctx);
1265 r.in.server_name = server_name;
1268 /* Out parameters */
1269 r.out.buffer = buffer;
1271 if (DEBUGLEVEL >= 10) {
1272 NDR_PRINT_IN_DEBUG(NetUserModalsGet, &r);
1275 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1276 werr = NetUserModalsGet_l(ctx, &r);
1278 werr = NetUserModalsGet_r(ctx, &r);
1281 r.out.result = W_ERROR_V(werr);
1283 if (DEBUGLEVEL >= 10) {
1284 NDR_PRINT_OUT_DEBUG(NetUserModalsGet, &r);
1288 return (NET_API_STATUS)r.out.result;
1291 /****************************************************************
1293 ****************************************************************/
1295 NET_API_STATUS NetUserModalsSet(const char * server_name /* [in] */,
1296 uint32_t level /* [in] */,
1297 uint8_t *buffer /* [in] [ref] */,
1298 uint32_t *parm_err /* [out] [ref] */)
1300 struct NetUserModalsSet r;
1301 struct libnetapi_ctx *ctx = NULL;
1302 NET_API_STATUS status;
1304 TALLOC_CTX *frame = talloc_stackframe();
1308 status = libnetapi_getctx(&ctx);
1315 r.in.server_name = server_name;
1317 r.in.buffer = buffer;
1319 /* Out parameters */
1320 r.out.parm_err = parm_err;
1322 if (DEBUGLEVEL >= 10) {
1323 NDR_PRINT_IN_DEBUG(NetUserModalsSet, &r);
1326 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1327 werr = NetUserModalsSet_l(ctx, &r);
1329 werr = NetUserModalsSet_r(ctx, &r);
1332 r.out.result = W_ERROR_V(werr);
1334 if (DEBUGLEVEL >= 10) {
1335 NDR_PRINT_OUT_DEBUG(NetUserModalsSet, &r);
1339 return (NET_API_STATUS)r.out.result;
1342 /****************************************************************
1343 NetQueryDisplayInformation
1344 ****************************************************************/
1346 NET_API_STATUS NetQueryDisplayInformation(const char * server_name /* [in] [unique] */,
1347 uint32_t level /* [in] */,
1348 uint32_t idx /* [in] */,
1349 uint32_t entries_requested /* [in] */,
1350 uint32_t prefmaxlen /* [in] */,
1351 uint32_t *entries_read /* [out] [ref] */,
1352 void **buffer /* [out] [noprint,ref] */)
1354 struct NetQueryDisplayInformation r;
1355 struct libnetapi_ctx *ctx = NULL;
1356 NET_API_STATUS status;
1358 TALLOC_CTX *frame = talloc_stackframe();
1362 status = libnetapi_getctx(&ctx);
1369 r.in.server_name = server_name;
1372 r.in.entries_requested = entries_requested;
1373 r.in.prefmaxlen = prefmaxlen;
1375 /* Out parameters */
1376 r.out.entries_read = entries_read;
1377 r.out.buffer = buffer;
1379 if (DEBUGLEVEL >= 10) {
1380 NDR_PRINT_IN_DEBUG(NetQueryDisplayInformation, &r);
1383 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1384 werr = NetQueryDisplayInformation_l(ctx, &r);
1386 werr = NetQueryDisplayInformation_r(ctx, &r);
1389 r.out.result = W_ERROR_V(werr);
1391 if (DEBUGLEVEL >= 10) {
1392 NDR_PRINT_OUT_DEBUG(NetQueryDisplayInformation, &r);
1396 return (NET_API_STATUS)r.out.result;
1399 /****************************************************************
1401 ****************************************************************/
1403 NET_API_STATUS NetGroupAdd(const char * server_name /* [in] */,
1404 uint32_t level /* [in] */,
1405 uint8_t *buffer /* [in] [ref] */,
1406 uint32_t *parm_err /* [out] [ref] */)
1408 struct NetGroupAdd r;
1409 struct libnetapi_ctx *ctx = NULL;
1410 NET_API_STATUS status;
1412 TALLOC_CTX *frame = talloc_stackframe();
1416 status = libnetapi_getctx(&ctx);
1423 r.in.server_name = server_name;
1425 r.in.buffer = buffer;
1427 /* Out parameters */
1428 r.out.parm_err = parm_err;
1430 if (DEBUGLEVEL >= 10) {
1431 NDR_PRINT_IN_DEBUG(NetGroupAdd, &r);
1434 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1435 werr = NetGroupAdd_l(ctx, &r);
1437 werr = NetGroupAdd_r(ctx, &r);
1440 r.out.result = W_ERROR_V(werr);
1442 if (DEBUGLEVEL >= 10) {
1443 NDR_PRINT_OUT_DEBUG(NetGroupAdd, &r);
1447 return (NET_API_STATUS)r.out.result;
1450 /****************************************************************
1452 ****************************************************************/
1454 NET_API_STATUS NetGroupDel(const char * server_name /* [in] */,
1455 const char * group_name /* [in] */)
1457 struct NetGroupDel r;
1458 struct libnetapi_ctx *ctx = NULL;
1459 NET_API_STATUS status;
1461 TALLOC_CTX *frame = talloc_stackframe();
1465 status = libnetapi_getctx(&ctx);
1472 r.in.server_name = server_name;
1473 r.in.group_name = group_name;
1475 /* Out parameters */
1477 if (DEBUGLEVEL >= 10) {
1478 NDR_PRINT_IN_DEBUG(NetGroupDel, &r);
1481 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1482 werr = NetGroupDel_l(ctx, &r);
1484 werr = NetGroupDel_r(ctx, &r);
1487 r.out.result = W_ERROR_V(werr);
1489 if (DEBUGLEVEL >= 10) {
1490 NDR_PRINT_OUT_DEBUG(NetGroupDel, &r);
1494 return (NET_API_STATUS)r.out.result;
1497 /****************************************************************
1499 ****************************************************************/
1501 NET_API_STATUS NetGroupEnum(const char * server_name /* [in] */,
1502 uint32_t level /* [in] */,
1503 uint8_t **buffer /* [out] [ref] */,
1504 uint32_t prefmaxlen /* [in] */,
1505 uint32_t *entries_read /* [out] [ref] */,
1506 uint32_t *total_entries /* [out] [ref] */,
1507 uint32_t *resume_handle /* [in,out] [ref] */)
1509 struct NetGroupEnum r;
1510 struct libnetapi_ctx *ctx = NULL;
1511 NET_API_STATUS status;
1513 TALLOC_CTX *frame = talloc_stackframe();
1517 status = libnetapi_getctx(&ctx);
1524 r.in.server_name = server_name;
1526 r.in.prefmaxlen = prefmaxlen;
1527 r.in.resume_handle = resume_handle;
1529 /* Out parameters */
1530 r.out.buffer = buffer;
1531 r.out.entries_read = entries_read;
1532 r.out.total_entries = total_entries;
1533 r.out.resume_handle = resume_handle;
1535 if (DEBUGLEVEL >= 10) {
1536 NDR_PRINT_IN_DEBUG(NetGroupEnum, &r);
1539 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1540 werr = NetGroupEnum_l(ctx, &r);
1542 werr = NetGroupEnum_r(ctx, &r);
1545 r.out.result = W_ERROR_V(werr);
1547 if (DEBUGLEVEL >= 10) {
1548 NDR_PRINT_OUT_DEBUG(NetGroupEnum, &r);
1552 return (NET_API_STATUS)r.out.result;
1555 /****************************************************************
1557 ****************************************************************/
1559 NET_API_STATUS NetGroupSetInfo(const char * server_name /* [in] */,
1560 const char * group_name /* [in] */,
1561 uint32_t level /* [in] */,
1562 uint8_t *buffer /* [in] [ref] */,
1563 uint32_t *parm_err /* [out] [ref] */)
1565 struct NetGroupSetInfo r;
1566 struct libnetapi_ctx *ctx = NULL;
1567 NET_API_STATUS status;
1569 TALLOC_CTX *frame = talloc_stackframe();
1573 status = libnetapi_getctx(&ctx);
1580 r.in.server_name = server_name;
1581 r.in.group_name = group_name;
1583 r.in.buffer = buffer;
1585 /* Out parameters */
1586 r.out.parm_err = parm_err;
1588 if (DEBUGLEVEL >= 10) {
1589 NDR_PRINT_IN_DEBUG(NetGroupSetInfo, &r);
1592 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1593 werr = NetGroupSetInfo_l(ctx, &r);
1595 werr = NetGroupSetInfo_r(ctx, &r);
1598 r.out.result = W_ERROR_V(werr);
1600 if (DEBUGLEVEL >= 10) {
1601 NDR_PRINT_OUT_DEBUG(NetGroupSetInfo, &r);
1605 return (NET_API_STATUS)r.out.result;
1608 /****************************************************************
1610 ****************************************************************/
1612 NET_API_STATUS NetGroupGetInfo(const char * server_name /* [in] */,
1613 const char * group_name /* [in] */,
1614 uint32_t level /* [in] */,
1615 uint8_t **buffer /* [out] [ref] */)
1617 struct NetGroupGetInfo r;
1618 struct libnetapi_ctx *ctx = NULL;
1619 NET_API_STATUS status;
1621 TALLOC_CTX *frame = talloc_stackframe();
1625 status = libnetapi_getctx(&ctx);
1632 r.in.server_name = server_name;
1633 r.in.group_name = group_name;
1636 /* Out parameters */
1637 r.out.buffer = buffer;
1639 if (DEBUGLEVEL >= 10) {
1640 NDR_PRINT_IN_DEBUG(NetGroupGetInfo, &r);
1643 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1644 werr = NetGroupGetInfo_l(ctx, &r);
1646 werr = NetGroupGetInfo_r(ctx, &r);
1649 r.out.result = W_ERROR_V(werr);
1651 if (DEBUGLEVEL >= 10) {
1652 NDR_PRINT_OUT_DEBUG(NetGroupGetInfo, &r);
1656 return (NET_API_STATUS)r.out.result;
1659 /****************************************************************
1661 ****************************************************************/
1663 NET_API_STATUS NetGroupAddUser(const char * server_name /* [in] */,
1664 const char * group_name /* [in] */,
1665 const char * user_name /* [in] */)
1667 struct NetGroupAddUser r;
1668 struct libnetapi_ctx *ctx = NULL;
1669 NET_API_STATUS status;
1671 TALLOC_CTX *frame = talloc_stackframe();
1675 status = libnetapi_getctx(&ctx);
1682 r.in.server_name = server_name;
1683 r.in.group_name = group_name;
1684 r.in.user_name = user_name;
1686 /* Out parameters */
1688 if (DEBUGLEVEL >= 10) {
1689 NDR_PRINT_IN_DEBUG(NetGroupAddUser, &r);
1692 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1693 werr = NetGroupAddUser_l(ctx, &r);
1695 werr = NetGroupAddUser_r(ctx, &r);
1698 r.out.result = W_ERROR_V(werr);
1700 if (DEBUGLEVEL >= 10) {
1701 NDR_PRINT_OUT_DEBUG(NetGroupAddUser, &r);
1705 return (NET_API_STATUS)r.out.result;
1708 /****************************************************************
1710 ****************************************************************/
1712 NET_API_STATUS NetGroupDelUser(const char * server_name /* [in] */,
1713 const char * group_name /* [in] */,
1714 const char * user_name /* [in] */)
1716 struct NetGroupDelUser r;
1717 struct libnetapi_ctx *ctx = NULL;
1718 NET_API_STATUS status;
1720 TALLOC_CTX *frame = talloc_stackframe();
1724 status = libnetapi_getctx(&ctx);
1731 r.in.server_name = server_name;
1732 r.in.group_name = group_name;
1733 r.in.user_name = user_name;
1735 /* Out parameters */
1737 if (DEBUGLEVEL >= 10) {
1738 NDR_PRINT_IN_DEBUG(NetGroupDelUser, &r);
1741 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1742 werr = NetGroupDelUser_l(ctx, &r);
1744 werr = NetGroupDelUser_r(ctx, &r);
1747 r.out.result = W_ERROR_V(werr);
1749 if (DEBUGLEVEL >= 10) {
1750 NDR_PRINT_OUT_DEBUG(NetGroupDelUser, &r);
1754 return (NET_API_STATUS)r.out.result;
1757 /****************************************************************
1759 ****************************************************************/
1761 NET_API_STATUS NetGroupGetUsers(const char * server_name /* [in] */,
1762 const char * group_name /* [in] */,
1763 uint32_t level /* [in] */,
1764 uint8_t **buffer /* [out] [ref] */,
1765 uint32_t prefmaxlen /* [in] */,
1766 uint32_t *entries_read /* [out] [ref] */,
1767 uint32_t *total_entries /* [out] [ref] */,
1768 uint32_t *resume_handle /* [in,out] [ref] */)
1770 struct NetGroupGetUsers r;
1771 struct libnetapi_ctx *ctx = NULL;
1772 NET_API_STATUS status;
1774 TALLOC_CTX *frame = talloc_stackframe();
1778 status = libnetapi_getctx(&ctx);
1785 r.in.server_name = server_name;
1786 r.in.group_name = group_name;
1788 r.in.prefmaxlen = prefmaxlen;
1789 r.in.resume_handle = resume_handle;
1791 /* Out parameters */
1792 r.out.buffer = buffer;
1793 r.out.entries_read = entries_read;
1794 r.out.total_entries = total_entries;
1795 r.out.resume_handle = resume_handle;
1797 if (DEBUGLEVEL >= 10) {
1798 NDR_PRINT_IN_DEBUG(NetGroupGetUsers, &r);
1801 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1802 werr = NetGroupGetUsers_l(ctx, &r);
1804 werr = NetGroupGetUsers_r(ctx, &r);
1807 r.out.result = W_ERROR_V(werr);
1809 if (DEBUGLEVEL >= 10) {
1810 NDR_PRINT_OUT_DEBUG(NetGroupGetUsers, &r);
1814 return (NET_API_STATUS)r.out.result;
1817 /****************************************************************
1819 ****************************************************************/
1821 NET_API_STATUS NetGroupSetUsers(const char * server_name /* [in] */,
1822 const char * group_name /* [in] */,
1823 uint32_t level /* [in] */,
1824 uint8_t *buffer /* [in] [ref] */,
1825 uint32_t num_entries /* [in] */)
1827 struct NetGroupSetUsers r;
1828 struct libnetapi_ctx *ctx = NULL;
1829 NET_API_STATUS status;
1831 TALLOC_CTX *frame = talloc_stackframe();
1835 status = libnetapi_getctx(&ctx);
1842 r.in.server_name = server_name;
1843 r.in.group_name = group_name;
1845 r.in.buffer = buffer;
1846 r.in.num_entries = num_entries;
1848 /* Out parameters */
1850 if (DEBUGLEVEL >= 10) {
1851 NDR_PRINT_IN_DEBUG(NetGroupSetUsers, &r);
1854 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1855 werr = NetGroupSetUsers_l(ctx, &r);
1857 werr = NetGroupSetUsers_r(ctx, &r);
1860 r.out.result = W_ERROR_V(werr);
1862 if (DEBUGLEVEL >= 10) {
1863 NDR_PRINT_OUT_DEBUG(NetGroupSetUsers, &r);
1867 return (NET_API_STATUS)r.out.result;
1870 /****************************************************************
1872 ****************************************************************/
1874 NET_API_STATUS NetLocalGroupAdd(const char * server_name /* [in] */,
1875 uint32_t level /* [in] */,
1876 uint8_t *buffer /* [in] [ref] */,
1877 uint32_t *parm_err /* [out] [ref] */)
1879 struct NetLocalGroupAdd r;
1880 struct libnetapi_ctx *ctx = NULL;
1881 NET_API_STATUS status;
1883 TALLOC_CTX *frame = talloc_stackframe();
1887 status = libnetapi_getctx(&ctx);
1894 r.in.server_name = server_name;
1896 r.in.buffer = buffer;
1898 /* Out parameters */
1899 r.out.parm_err = parm_err;
1901 if (DEBUGLEVEL >= 10) {
1902 NDR_PRINT_IN_DEBUG(NetLocalGroupAdd, &r);
1905 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1906 werr = NetLocalGroupAdd_l(ctx, &r);
1908 werr = NetLocalGroupAdd_r(ctx, &r);
1911 r.out.result = W_ERROR_V(werr);
1913 if (DEBUGLEVEL >= 10) {
1914 NDR_PRINT_OUT_DEBUG(NetLocalGroupAdd, &r);
1918 return (NET_API_STATUS)r.out.result;
1921 /****************************************************************
1923 ****************************************************************/
1925 NET_API_STATUS NetLocalGroupDel(const char * server_name /* [in] */,
1926 const char * group_name /* [in] */)
1928 struct NetLocalGroupDel r;
1929 struct libnetapi_ctx *ctx = NULL;
1930 NET_API_STATUS status;
1932 TALLOC_CTX *frame = talloc_stackframe();
1936 status = libnetapi_getctx(&ctx);
1943 r.in.server_name = server_name;
1944 r.in.group_name = group_name;
1946 /* Out parameters */
1948 if (DEBUGLEVEL >= 10) {
1949 NDR_PRINT_IN_DEBUG(NetLocalGroupDel, &r);
1952 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1953 werr = NetLocalGroupDel_l(ctx, &r);
1955 werr = NetLocalGroupDel_r(ctx, &r);
1958 r.out.result = W_ERROR_V(werr);
1960 if (DEBUGLEVEL >= 10) {
1961 NDR_PRINT_OUT_DEBUG(NetLocalGroupDel, &r);
1965 return (NET_API_STATUS)r.out.result;
1968 /****************************************************************
1969 NetLocalGroupGetInfo
1970 ****************************************************************/
1972 NET_API_STATUS NetLocalGroupGetInfo(const char * server_name /* [in] */,
1973 const char * group_name /* [in] */,
1974 uint32_t level /* [in] */,
1975 uint8_t **buffer /* [out] [ref] */)
1977 struct NetLocalGroupGetInfo r;
1978 struct libnetapi_ctx *ctx = NULL;
1979 NET_API_STATUS status;
1981 TALLOC_CTX *frame = talloc_stackframe();
1985 status = libnetapi_getctx(&ctx);
1992 r.in.server_name = server_name;
1993 r.in.group_name = group_name;
1996 /* Out parameters */
1997 r.out.buffer = buffer;
1999 if (DEBUGLEVEL >= 10) {
2000 NDR_PRINT_IN_DEBUG(NetLocalGroupGetInfo, &r);
2003 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2004 werr = NetLocalGroupGetInfo_l(ctx, &r);
2006 werr = NetLocalGroupGetInfo_r(ctx, &r);
2009 r.out.result = W_ERROR_V(werr);
2011 if (DEBUGLEVEL >= 10) {
2012 NDR_PRINT_OUT_DEBUG(NetLocalGroupGetInfo, &r);
2016 return (NET_API_STATUS)r.out.result;
2019 /****************************************************************
2020 NetLocalGroupSetInfo
2021 ****************************************************************/
2023 NET_API_STATUS NetLocalGroupSetInfo(const char * server_name /* [in] */,
2024 const char * group_name /* [in] */,
2025 uint32_t level /* [in] */,
2026 uint8_t *buffer /* [in] [ref] */,
2027 uint32_t *parm_err /* [out] [ref] */)
2029 struct NetLocalGroupSetInfo r;
2030 struct libnetapi_ctx *ctx = NULL;
2031 NET_API_STATUS status;
2033 TALLOC_CTX *frame = talloc_stackframe();
2037 status = libnetapi_getctx(&ctx);
2044 r.in.server_name = server_name;
2045 r.in.group_name = group_name;
2047 r.in.buffer = buffer;
2049 /* Out parameters */
2050 r.out.parm_err = parm_err;
2052 if (DEBUGLEVEL >= 10) {
2053 NDR_PRINT_IN_DEBUG(NetLocalGroupSetInfo, &r);
2056 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2057 werr = NetLocalGroupSetInfo_l(ctx, &r);
2059 werr = NetLocalGroupSetInfo_r(ctx, &r);
2062 r.out.result = W_ERROR_V(werr);
2064 if (DEBUGLEVEL >= 10) {
2065 NDR_PRINT_OUT_DEBUG(NetLocalGroupSetInfo, &r);
2069 return (NET_API_STATUS)r.out.result;
2072 /****************************************************************
2074 ****************************************************************/
2076 NET_API_STATUS NetLocalGroupEnum(const char * server_name /* [in] */,
2077 uint32_t level /* [in] */,
2078 uint8_t **buffer /* [out] [ref] */,
2079 uint32_t prefmaxlen /* [in] */,
2080 uint32_t *entries_read /* [out] [ref] */,
2081 uint32_t *total_entries /* [out] [ref] */,
2082 uint32_t *resume_handle /* [in,out] [ref] */)
2084 struct NetLocalGroupEnum r;
2085 struct libnetapi_ctx *ctx = NULL;
2086 NET_API_STATUS status;
2088 TALLOC_CTX *frame = talloc_stackframe();
2092 status = libnetapi_getctx(&ctx);
2099 r.in.server_name = server_name;
2101 r.in.prefmaxlen = prefmaxlen;
2102 r.in.resume_handle = resume_handle;
2104 /* Out parameters */
2105 r.out.buffer = buffer;
2106 r.out.entries_read = entries_read;
2107 r.out.total_entries = total_entries;
2108 r.out.resume_handle = resume_handle;
2110 if (DEBUGLEVEL >= 10) {
2111 NDR_PRINT_IN_DEBUG(NetLocalGroupEnum, &r);
2114 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2115 werr = NetLocalGroupEnum_l(ctx, &r);
2117 werr = NetLocalGroupEnum_r(ctx, &r);
2120 r.out.result = W_ERROR_V(werr);
2122 if (DEBUGLEVEL >= 10) {
2123 NDR_PRINT_OUT_DEBUG(NetLocalGroupEnum, &r);
2127 return (NET_API_STATUS)r.out.result;
2130 /****************************************************************
2131 NetLocalGroupAddMembers
2132 ****************************************************************/
2134 NET_API_STATUS NetLocalGroupAddMembers(const char * server_name /* [in] */,
2135 const char * group_name /* [in] */,
2136 uint32_t level /* [in] */,
2137 uint8_t *buffer /* [in] [ref] */,
2138 uint32_t total_entries /* [in] */)
2140 struct NetLocalGroupAddMembers r;
2141 struct libnetapi_ctx *ctx = NULL;
2142 NET_API_STATUS status;
2144 TALLOC_CTX *frame = talloc_stackframe();
2148 status = libnetapi_getctx(&ctx);
2155 r.in.server_name = server_name;
2156 r.in.group_name = group_name;
2158 r.in.buffer = buffer;
2159 r.in.total_entries = total_entries;
2161 /* Out parameters */
2163 if (DEBUGLEVEL >= 10) {
2164 NDR_PRINT_IN_DEBUG(NetLocalGroupAddMembers, &r);
2167 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2168 werr = NetLocalGroupAddMembers_l(ctx, &r);
2170 werr = NetLocalGroupAddMembers_r(ctx, &r);
2173 r.out.result = W_ERROR_V(werr);
2175 if (DEBUGLEVEL >= 10) {
2176 NDR_PRINT_OUT_DEBUG(NetLocalGroupAddMembers, &r);
2180 return (NET_API_STATUS)r.out.result;
2183 /****************************************************************
2184 NetLocalGroupDelMembers
2185 ****************************************************************/
2187 NET_API_STATUS NetLocalGroupDelMembers(const char * server_name /* [in] */,
2188 const char * group_name /* [in] */,
2189 uint32_t level /* [in] */,
2190 uint8_t *buffer /* [in] [ref] */,
2191 uint32_t total_entries /* [in] */)
2193 struct NetLocalGroupDelMembers r;
2194 struct libnetapi_ctx *ctx = NULL;
2195 NET_API_STATUS status;
2197 TALLOC_CTX *frame = talloc_stackframe();
2201 status = libnetapi_getctx(&ctx);
2208 r.in.server_name = server_name;
2209 r.in.group_name = group_name;
2211 r.in.buffer = buffer;
2212 r.in.total_entries = total_entries;
2214 /* Out parameters */
2216 if (DEBUGLEVEL >= 10) {
2217 NDR_PRINT_IN_DEBUG(NetLocalGroupDelMembers, &r);
2220 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2221 werr = NetLocalGroupDelMembers_l(ctx, &r);
2223 werr = NetLocalGroupDelMembers_r(ctx, &r);
2226 r.out.result = W_ERROR_V(werr);
2228 if (DEBUGLEVEL >= 10) {
2229 NDR_PRINT_OUT_DEBUG(NetLocalGroupDelMembers, &r);
2233 return (NET_API_STATUS)r.out.result;
2236 /****************************************************************
2237 NetLocalGroupGetMembers
2238 ****************************************************************/
2240 NET_API_STATUS NetLocalGroupGetMembers(const char * server_name /* [in] */,
2241 const char * local_group_name /* [in] */,
2242 uint32_t level /* [in] */,
2243 uint8_t **buffer /* [out] [ref] */,
2244 uint32_t prefmaxlen /* [in] */,
2245 uint32_t *entries_read /* [out] [ref] */,
2246 uint32_t *total_entries /* [out] [ref] */,
2247 uint32_t *resume_handle /* [in,out] [ref] */)
2249 struct NetLocalGroupGetMembers r;
2250 struct libnetapi_ctx *ctx = NULL;
2251 NET_API_STATUS status;
2253 TALLOC_CTX *frame = talloc_stackframe();
2257 status = libnetapi_getctx(&ctx);
2264 r.in.server_name = server_name;
2265 r.in.local_group_name = local_group_name;
2267 r.in.prefmaxlen = prefmaxlen;
2268 r.in.resume_handle = resume_handle;
2270 /* Out parameters */
2271 r.out.buffer = buffer;
2272 r.out.entries_read = entries_read;
2273 r.out.total_entries = total_entries;
2274 r.out.resume_handle = resume_handle;
2276 if (DEBUGLEVEL >= 10) {
2277 NDR_PRINT_IN_DEBUG(NetLocalGroupGetMembers, &r);
2280 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2281 werr = NetLocalGroupGetMembers_l(ctx, &r);
2283 werr = NetLocalGroupGetMembers_r(ctx, &r);
2286 r.out.result = W_ERROR_V(werr);
2288 if (DEBUGLEVEL >= 10) {
2289 NDR_PRINT_OUT_DEBUG(NetLocalGroupGetMembers, &r);
2293 return (NET_API_STATUS)r.out.result;
2296 /****************************************************************
2297 NetLocalGroupSetMembers
2298 ****************************************************************/
2300 NET_API_STATUS NetLocalGroupSetMembers(const char * server_name /* [in] */,
2301 const char * group_name /* [in] */,
2302 uint32_t level /* [in] */,
2303 uint8_t *buffer /* [in] [ref] */,
2304 uint32_t total_entries /* [in] */)
2306 struct NetLocalGroupSetMembers r;
2307 struct libnetapi_ctx *ctx = NULL;
2308 NET_API_STATUS status;
2310 TALLOC_CTX *frame = talloc_stackframe();
2314 status = libnetapi_getctx(&ctx);
2321 r.in.server_name = server_name;
2322 r.in.group_name = group_name;
2324 r.in.buffer = buffer;
2325 r.in.total_entries = total_entries;
2327 /* Out parameters */
2329 if (DEBUGLEVEL >= 10) {
2330 NDR_PRINT_IN_DEBUG(NetLocalGroupSetMembers, &r);
2333 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2334 werr = NetLocalGroupSetMembers_l(ctx, &r);
2336 werr = NetLocalGroupSetMembers_r(ctx, &r);
2339 r.out.result = W_ERROR_V(werr);
2341 if (DEBUGLEVEL >= 10) {
2342 NDR_PRINT_OUT_DEBUG(NetLocalGroupSetMembers, &r);
2346 return (NET_API_STATUS)r.out.result;
2349 /****************************************************************
2351 ****************************************************************/
2353 NET_API_STATUS NetRemoteTOD(const char * server_name /* [in] */,
2354 uint8_t **buffer /* [out] [ref] */)
2356 struct NetRemoteTOD r;
2357 struct libnetapi_ctx *ctx = NULL;
2358 NET_API_STATUS status;
2360 TALLOC_CTX *frame = talloc_stackframe();
2364 status = libnetapi_getctx(&ctx);
2371 r.in.server_name = server_name;
2373 /* Out parameters */
2374 r.out.buffer = buffer;
2376 if (DEBUGLEVEL >= 10) {
2377 NDR_PRINT_IN_DEBUG(NetRemoteTOD, &r);
2380 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2381 werr = NetRemoteTOD_l(ctx, &r);
2383 werr = NetRemoteTOD_r(ctx, &r);
2386 r.out.result = W_ERROR_V(werr);
2388 if (DEBUGLEVEL >= 10) {
2389 NDR_PRINT_OUT_DEBUG(NetRemoteTOD, &r);
2393 return (NET_API_STATUS)r.out.result;
2396 /****************************************************************
2398 ****************************************************************/
2400 NET_API_STATUS NetShareAdd(const char * server_name /* [in] */,
2401 uint32_t level /* [in] */,
2402 uint8_t *buffer /* [in] [ref] */,
2403 uint32_t *parm_err /* [out] [ref] */)
2405 struct NetShareAdd r;
2406 struct libnetapi_ctx *ctx = NULL;
2407 NET_API_STATUS status;
2409 TALLOC_CTX *frame = talloc_stackframe();
2413 status = libnetapi_getctx(&ctx);
2420 r.in.server_name = server_name;
2422 r.in.buffer = buffer;
2424 /* Out parameters */
2425 r.out.parm_err = parm_err;
2427 if (DEBUGLEVEL >= 10) {
2428 NDR_PRINT_IN_DEBUG(NetShareAdd, &r);
2431 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2432 werr = NetShareAdd_l(ctx, &r);
2434 werr = NetShareAdd_r(ctx, &r);
2437 r.out.result = W_ERROR_V(werr);
2439 if (DEBUGLEVEL >= 10) {
2440 NDR_PRINT_OUT_DEBUG(NetShareAdd, &r);
2444 return (NET_API_STATUS)r.out.result;
2447 /****************************************************************
2449 ****************************************************************/
2451 NET_API_STATUS NetShareDel(const char * server_name /* [in] */,
2452 const char * net_name /* [in] */,
2453 uint32_t reserved /* [in] */)
2455 struct NetShareDel r;
2456 struct libnetapi_ctx *ctx = NULL;
2457 NET_API_STATUS status;
2459 TALLOC_CTX *frame = talloc_stackframe();
2463 status = libnetapi_getctx(&ctx);
2470 r.in.server_name = server_name;
2471 r.in.net_name = net_name;
2472 r.in.reserved = reserved;
2474 /* Out parameters */
2476 if (DEBUGLEVEL >= 10) {
2477 NDR_PRINT_IN_DEBUG(NetShareDel, &r);
2480 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2481 werr = NetShareDel_l(ctx, &r);
2483 werr = NetShareDel_r(ctx, &r);
2486 r.out.result = W_ERROR_V(werr);
2488 if (DEBUGLEVEL >= 10) {
2489 NDR_PRINT_OUT_DEBUG(NetShareDel, &r);
2493 return (NET_API_STATUS)r.out.result;
2496 /****************************************************************
2498 ****************************************************************/
2500 NET_API_STATUS NetShareEnum(const char * server_name /* [in] */,
2501 uint32_t level /* [in] */,
2502 uint8_t **buffer /* [out] [ref] */,
2503 uint32_t prefmaxlen /* [in] */,
2504 uint32_t *entries_read /* [out] [ref] */,
2505 uint32_t *total_entries /* [out] [ref] */,
2506 uint32_t *resume_handle /* [in,out] [ref] */)
2508 struct NetShareEnum r;
2509 struct libnetapi_ctx *ctx = NULL;
2510 NET_API_STATUS status;
2512 TALLOC_CTX *frame = talloc_stackframe();
2516 status = libnetapi_getctx(&ctx);
2523 r.in.server_name = server_name;
2525 r.in.prefmaxlen = prefmaxlen;
2526 r.in.resume_handle = resume_handle;
2528 /* Out parameters */
2529 r.out.buffer = buffer;
2530 r.out.entries_read = entries_read;
2531 r.out.total_entries = total_entries;
2532 r.out.resume_handle = resume_handle;
2534 if (DEBUGLEVEL >= 10) {
2535 NDR_PRINT_IN_DEBUG(NetShareEnum, &r);
2538 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2539 werr = NetShareEnum_l(ctx, &r);
2541 werr = NetShareEnum_r(ctx, &r);
2544 r.out.result = W_ERROR_V(werr);
2546 if (DEBUGLEVEL >= 10) {
2547 NDR_PRINT_OUT_DEBUG(NetShareEnum, &r);
2551 return (NET_API_STATUS)r.out.result;
2554 /****************************************************************
2556 ****************************************************************/
2558 NET_API_STATUS NetShareGetInfo(const char * server_name /* [in] */,
2559 const char * net_name /* [in] */,
2560 uint32_t level /* [in] */,
2561 uint8_t **buffer /* [out] [ref] */)
2563 struct NetShareGetInfo r;
2564 struct libnetapi_ctx *ctx = NULL;
2565 NET_API_STATUS status;
2567 TALLOC_CTX *frame = talloc_stackframe();
2571 status = libnetapi_getctx(&ctx);
2578 r.in.server_name = server_name;
2579 r.in.net_name = net_name;
2582 /* Out parameters */
2583 r.out.buffer = buffer;
2585 if (DEBUGLEVEL >= 10) {
2586 NDR_PRINT_IN_DEBUG(NetShareGetInfo, &r);
2589 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2590 werr = NetShareGetInfo_l(ctx, &r);
2592 werr = NetShareGetInfo_r(ctx, &r);
2595 r.out.result = W_ERROR_V(werr);
2597 if (DEBUGLEVEL >= 10) {
2598 NDR_PRINT_OUT_DEBUG(NetShareGetInfo, &r);
2602 return (NET_API_STATUS)r.out.result;
2605 /****************************************************************
2607 ****************************************************************/
2609 NET_API_STATUS NetShareSetInfo(const char * server_name /* [in] */,
2610 const char * net_name /* [in] */,
2611 uint32_t level /* [in] */,
2612 uint8_t *buffer /* [in] [ref] */,
2613 uint32_t *parm_err /* [out] [ref] */)
2615 struct NetShareSetInfo r;
2616 struct libnetapi_ctx *ctx = NULL;
2617 NET_API_STATUS status;
2619 TALLOC_CTX *frame = talloc_stackframe();
2623 status = libnetapi_getctx(&ctx);
2630 r.in.server_name = server_name;
2631 r.in.net_name = net_name;
2633 r.in.buffer = buffer;
2635 /* Out parameters */
2636 r.out.parm_err = parm_err;
2638 if (DEBUGLEVEL >= 10) {
2639 NDR_PRINT_IN_DEBUG(NetShareSetInfo, &r);
2642 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2643 werr = NetShareSetInfo_l(ctx, &r);
2645 werr = NetShareSetInfo_r(ctx, &r);
2648 r.out.result = W_ERROR_V(werr);
2650 if (DEBUGLEVEL >= 10) {
2651 NDR_PRINT_OUT_DEBUG(NetShareSetInfo, &r);
2655 return (NET_API_STATUS)r.out.result;
2658 /****************************************************************
2660 ****************************************************************/
2662 NET_API_STATUS NetFileClose(const char * server_name /* [in] */,
2663 uint32_t fileid /* [in] */)
2665 struct NetFileClose r;
2666 struct libnetapi_ctx *ctx = NULL;
2667 NET_API_STATUS status;
2669 TALLOC_CTX *frame = talloc_stackframe();
2673 status = libnetapi_getctx(&ctx);
2680 r.in.server_name = server_name;
2681 r.in.fileid = fileid;
2683 /* Out parameters */
2685 if (DEBUGLEVEL >= 10) {
2686 NDR_PRINT_IN_DEBUG(NetFileClose, &r);
2689 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2690 werr = NetFileClose_l(ctx, &r);
2692 werr = NetFileClose_r(ctx, &r);
2695 r.out.result = W_ERROR_V(werr);
2697 if (DEBUGLEVEL >= 10) {
2698 NDR_PRINT_OUT_DEBUG(NetFileClose, &r);
2702 return (NET_API_STATUS)r.out.result;
2705 /****************************************************************
2707 ****************************************************************/
2709 NET_API_STATUS NetFileGetInfo(const char * server_name /* [in] */,
2710 uint32_t fileid /* [in] */,
2711 uint32_t level /* [in] */,
2712 uint8_t **buffer /* [out] [ref] */)
2714 struct NetFileGetInfo r;
2715 struct libnetapi_ctx *ctx = NULL;
2716 NET_API_STATUS status;
2718 TALLOC_CTX *frame = talloc_stackframe();
2722 status = libnetapi_getctx(&ctx);
2729 r.in.server_name = server_name;
2730 r.in.fileid = fileid;
2733 /* Out parameters */
2734 r.out.buffer = buffer;
2736 if (DEBUGLEVEL >= 10) {
2737 NDR_PRINT_IN_DEBUG(NetFileGetInfo, &r);
2740 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2741 werr = NetFileGetInfo_l(ctx, &r);
2743 werr = NetFileGetInfo_r(ctx, &r);
2746 r.out.result = W_ERROR_V(werr);
2748 if (DEBUGLEVEL >= 10) {
2749 NDR_PRINT_OUT_DEBUG(NetFileGetInfo, &r);
2753 return (NET_API_STATUS)r.out.result;
2756 /****************************************************************
2758 ****************************************************************/
2760 NET_API_STATUS NetFileEnum(const char * server_name /* [in] */,
2761 const char * base_path /* [in] */,
2762 const char * user_name /* [in] */,
2763 uint32_t level /* [in] */,
2764 uint8_t **buffer /* [out] [ref] */,
2765 uint32_t prefmaxlen /* [in] */,
2766 uint32_t *entries_read /* [out] [ref] */,
2767 uint32_t *total_entries /* [out] [ref] */,
2768 uint32_t *resume_handle /* [in,out] [ref] */)
2770 struct NetFileEnum r;
2771 struct libnetapi_ctx *ctx = NULL;
2772 NET_API_STATUS status;
2774 TALLOC_CTX *frame = talloc_stackframe();
2778 status = libnetapi_getctx(&ctx);
2785 r.in.server_name = server_name;
2786 r.in.base_path = base_path;
2787 r.in.user_name = user_name;
2789 r.in.prefmaxlen = prefmaxlen;
2790 r.in.resume_handle = resume_handle;
2792 /* Out parameters */
2793 r.out.buffer = buffer;
2794 r.out.entries_read = entries_read;
2795 r.out.total_entries = total_entries;
2796 r.out.resume_handle = resume_handle;
2798 if (DEBUGLEVEL >= 10) {
2799 NDR_PRINT_IN_DEBUG(NetFileEnum, &r);
2802 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2803 werr = NetFileEnum_l(ctx, &r);
2805 werr = NetFileEnum_r(ctx, &r);
2808 r.out.result = W_ERROR_V(werr);
2810 if (DEBUGLEVEL >= 10) {
2811 NDR_PRINT_OUT_DEBUG(NetFileEnum, &r);
2815 return (NET_API_STATUS)r.out.result;
2818 /****************************************************************
2820 ****************************************************************/
2822 NET_API_STATUS NetShutdownInit(const char * server_name /* [in] */,
2823 const char * message /* [in] */,
2824 uint32_t timeout /* [in] */,
2825 uint8_t force_apps /* [in] */,
2826 uint8_t do_reboot /* [in] */)
2828 struct NetShutdownInit r;
2829 struct libnetapi_ctx *ctx = NULL;
2830 NET_API_STATUS status;
2832 TALLOC_CTX *frame = talloc_stackframe();
2836 status = libnetapi_getctx(&ctx);
2843 r.in.server_name = server_name;
2844 r.in.message = message;
2845 r.in.timeout = timeout;
2846 r.in.force_apps = force_apps;
2847 r.in.do_reboot = do_reboot;
2849 /* Out parameters */
2851 if (DEBUGLEVEL >= 10) {
2852 NDR_PRINT_IN_DEBUG(NetShutdownInit, &r);
2855 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2856 werr = NetShutdownInit_l(ctx, &r);
2858 werr = NetShutdownInit_r(ctx, &r);
2861 r.out.result = W_ERROR_V(werr);
2863 if (DEBUGLEVEL >= 10) {
2864 NDR_PRINT_OUT_DEBUG(NetShutdownInit, &r);
2868 return (NET_API_STATUS)r.out.result;
2871 /****************************************************************
2873 ****************************************************************/
2875 NET_API_STATUS NetShutdownAbort(const char * server_name /* [in] */)
2877 struct NetShutdownAbort r;
2878 struct libnetapi_ctx *ctx = NULL;
2879 NET_API_STATUS status;
2881 TALLOC_CTX *frame = talloc_stackframe();
2885 status = libnetapi_getctx(&ctx);
2892 r.in.server_name = server_name;
2894 /* Out parameters */
2896 if (DEBUGLEVEL >= 10) {
2897 NDR_PRINT_IN_DEBUG(NetShutdownAbort, &r);
2900 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2901 werr = NetShutdownAbort_l(ctx, &r);
2903 werr = NetShutdownAbort_r(ctx, &r);
2906 r.out.result = W_ERROR_V(werr);
2908 if (DEBUGLEVEL >= 10) {
2909 NDR_PRINT_OUT_DEBUG(NetShutdownAbort, &r);
2913 return (NET_API_STATUS)r.out.result;
2916 /****************************************************************
2918 ****************************************************************/
2920 NET_API_STATUS I_NetLogonControl(const char * server_name /* [in] */,
2921 uint32_t function_code /* [in] */,
2922 uint32_t query_level /* [in] */,
2923 uint8_t **buffer /* [out] [ref] */)
2925 struct I_NetLogonControl r;
2926 struct libnetapi_ctx *ctx = NULL;
2927 NET_API_STATUS status;
2929 TALLOC_CTX *frame = talloc_stackframe();
2933 status = libnetapi_getctx(&ctx);
2940 r.in.server_name = server_name;
2941 r.in.function_code = function_code;
2942 r.in.query_level = query_level;
2944 /* Out parameters */
2945 r.out.buffer = buffer;
2947 if (DEBUGLEVEL >= 10) {
2948 NDR_PRINT_IN_DEBUG(I_NetLogonControl, &r);
2951 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2952 werr = I_NetLogonControl_l(ctx, &r);
2954 werr = I_NetLogonControl_r(ctx, &r);
2957 r.out.result = W_ERROR_V(werr);
2959 if (DEBUGLEVEL >= 10) {
2960 NDR_PRINT_OUT_DEBUG(I_NetLogonControl, &r);
2964 return (NET_API_STATUS)r.out.result;
2967 /****************************************************************
2969 ****************************************************************/
2971 NET_API_STATUS I_NetLogonControl2(const char * server_name /* [in] */,
2972 uint32_t function_code /* [in] */,
2973 uint32_t query_level /* [in] */,
2974 uint8_t *data /* [in] [unique] */,
2975 uint8_t **buffer /* [out] [ref] */)
2977 struct I_NetLogonControl2 r;
2978 struct libnetapi_ctx *ctx = NULL;
2979 NET_API_STATUS status;
2981 TALLOC_CTX *frame = talloc_stackframe();
2985 status = libnetapi_getctx(&ctx);
2992 r.in.server_name = server_name;
2993 r.in.function_code = function_code;
2994 r.in.query_level = query_level;
2997 /* Out parameters */
2998 r.out.buffer = buffer;
3000 if (DEBUGLEVEL >= 10) {
3001 NDR_PRINT_IN_DEBUG(I_NetLogonControl2, &r);
3004 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
3005 werr = I_NetLogonControl2_l(ctx, &r);
3007 werr = I_NetLogonControl2_r(ctx, &r);
3010 r.out.result = W_ERROR_V(werr);
3012 if (DEBUGLEVEL >= 10) {
3013 NDR_PRINT_OUT_DEBUG(I_NetLogonControl2, &r);
3017 return (NET_API_STATUS)r.out.result;