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 /****************************************************************
397 ****************************************************************/
399 NET_API_STATUS NetServerGetInfo(const char * server_name /* [in] [unique] */,
400 uint32_t level /* [in] */,
401 uint8_t **buffer /* [out] [ref] */)
403 struct NetServerGetInfo r;
404 struct libnetapi_ctx *ctx = NULL;
405 NET_API_STATUS status;
407 TALLOC_CTX *frame = talloc_stackframe();
411 status = libnetapi_getctx(&ctx);
418 r.in.server_name = server_name;
422 r.out.buffer = buffer;
424 if (DEBUGLEVEL >= 10) {
425 NDR_PRINT_IN_DEBUG(NetServerGetInfo, &r);
428 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
429 werr = NetServerGetInfo_l(ctx, &r);
431 werr = NetServerGetInfo_r(ctx, &r);
434 r.out.result = W_ERROR_V(werr);
436 if (DEBUGLEVEL >= 10) {
437 NDR_PRINT_OUT_DEBUG(NetServerGetInfo, &r);
441 return (NET_API_STATUS)r.out.result;
444 /****************************************************************
446 ****************************************************************/
448 NET_API_STATUS NetServerSetInfo(const char * server_name /* [in] [unique] */,
449 uint32_t level /* [in] */,
450 uint8_t *buffer /* [in] [ref] */,
451 uint32_t *parm_error /* [out] [ref] */)
453 struct NetServerSetInfo r;
454 struct libnetapi_ctx *ctx = NULL;
455 NET_API_STATUS status;
457 TALLOC_CTX *frame = talloc_stackframe();
461 status = libnetapi_getctx(&ctx);
468 r.in.server_name = server_name;
470 r.in.buffer = buffer;
473 r.out.parm_error = parm_error;
475 if (DEBUGLEVEL >= 10) {
476 NDR_PRINT_IN_DEBUG(NetServerSetInfo, &r);
479 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
480 werr = NetServerSetInfo_l(ctx, &r);
482 werr = NetServerSetInfo_r(ctx, &r);
485 r.out.result = W_ERROR_V(werr);
487 if (DEBUGLEVEL >= 10) {
488 NDR_PRINT_OUT_DEBUG(NetServerSetInfo, &r);
492 return (NET_API_STATUS)r.out.result;
495 /****************************************************************
497 ****************************************************************/
499 NET_API_STATUS NetWkstaGetInfo(const char * server_name /* [in] [unique] */,
500 uint32_t level /* [in] */,
501 uint8_t **buffer /* [out] [ref] */)
503 struct NetWkstaGetInfo r;
504 struct libnetapi_ctx *ctx = NULL;
505 NET_API_STATUS status;
507 TALLOC_CTX *frame = talloc_stackframe();
511 status = libnetapi_getctx(&ctx);
518 r.in.server_name = server_name;
522 r.out.buffer = buffer;
524 if (DEBUGLEVEL >= 10) {
525 NDR_PRINT_IN_DEBUG(NetWkstaGetInfo, &r);
528 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
529 werr = NetWkstaGetInfo_l(ctx, &r);
531 werr = NetWkstaGetInfo_r(ctx, &r);
534 r.out.result = W_ERROR_V(werr);
536 if (DEBUGLEVEL >= 10) {
537 NDR_PRINT_OUT_DEBUG(NetWkstaGetInfo, &r);
541 return (NET_API_STATUS)r.out.result;
544 /****************************************************************
546 ****************************************************************/
548 NET_API_STATUS NetGetDCName(const char * server_name /* [in] [unique] */,
549 const char * domain_name /* [in] [unique] */,
550 uint8_t **buffer /* [out] [ref] */)
552 struct NetGetDCName r;
553 struct libnetapi_ctx *ctx = NULL;
554 NET_API_STATUS status;
556 TALLOC_CTX *frame = talloc_stackframe();
560 status = libnetapi_getctx(&ctx);
567 r.in.server_name = server_name;
568 r.in.domain_name = domain_name;
571 r.out.buffer = buffer;
573 if (DEBUGLEVEL >= 10) {
574 NDR_PRINT_IN_DEBUG(NetGetDCName, &r);
577 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
578 werr = NetGetDCName_l(ctx, &r);
580 werr = NetGetDCName_r(ctx, &r);
583 r.out.result = W_ERROR_V(werr);
585 if (DEBUGLEVEL >= 10) {
586 NDR_PRINT_OUT_DEBUG(NetGetDCName, &r);
590 return (NET_API_STATUS)r.out.result;
593 /****************************************************************
595 ****************************************************************/
597 NET_API_STATUS NetGetAnyDCName(const char * server_name /* [in] [unique] */,
598 const char * domain_name /* [in] [unique] */,
599 uint8_t **buffer /* [out] [ref] */)
601 struct NetGetAnyDCName r;
602 struct libnetapi_ctx *ctx = NULL;
603 NET_API_STATUS status;
605 TALLOC_CTX *frame = talloc_stackframe();
609 status = libnetapi_getctx(&ctx);
616 r.in.server_name = server_name;
617 r.in.domain_name = domain_name;
620 r.out.buffer = buffer;
622 if (DEBUGLEVEL >= 10) {
623 NDR_PRINT_IN_DEBUG(NetGetAnyDCName, &r);
626 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
627 werr = NetGetAnyDCName_l(ctx, &r);
629 werr = NetGetAnyDCName_r(ctx, &r);
632 r.out.result = W_ERROR_V(werr);
634 if (DEBUGLEVEL >= 10) {
635 NDR_PRINT_OUT_DEBUG(NetGetAnyDCName, &r);
639 return (NET_API_STATUS)r.out.result;
642 /****************************************************************
644 ****************************************************************/
646 NET_API_STATUS DsGetDcName(const char * server_name /* [in] [unique] */,
647 const char * domain_name /* [in] [ref] */,
648 struct GUID *domain_guid /* [in] [unique] */,
649 const char * site_name /* [in] [unique] */,
650 uint32_t flags /* [in] */,
651 struct DOMAIN_CONTROLLER_INFO **dc_info /* [out] [ref] */)
653 struct DsGetDcName r;
654 struct libnetapi_ctx *ctx = NULL;
655 NET_API_STATUS status;
657 TALLOC_CTX *frame = talloc_stackframe();
661 status = libnetapi_getctx(&ctx);
668 r.in.server_name = server_name;
669 r.in.domain_name = domain_name;
670 r.in.domain_guid = domain_guid;
671 r.in.site_name = site_name;
675 r.out.dc_info = dc_info;
677 if (DEBUGLEVEL >= 10) {
678 NDR_PRINT_IN_DEBUG(DsGetDcName, &r);
681 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
682 werr = DsGetDcName_l(ctx, &r);
684 werr = DsGetDcName_r(ctx, &r);
687 r.out.result = W_ERROR_V(werr);
689 if (DEBUGLEVEL >= 10) {
690 NDR_PRINT_OUT_DEBUG(DsGetDcName, &r);
694 return (NET_API_STATUS)r.out.result;
697 /****************************************************************
699 ****************************************************************/
701 NET_API_STATUS NetUserAdd(const char * server_name /* [in] [unique] */,
702 uint32_t level /* [in] */,
703 uint8_t *buffer /* [in] [ref] */,
704 uint32_t *parm_error /* [out] [ref] */)
707 struct libnetapi_ctx *ctx = NULL;
708 NET_API_STATUS status;
710 TALLOC_CTX *frame = talloc_stackframe();
714 status = libnetapi_getctx(&ctx);
721 r.in.server_name = server_name;
723 r.in.buffer = buffer;
726 r.out.parm_error = parm_error;
728 if (DEBUGLEVEL >= 10) {
729 NDR_PRINT_IN_DEBUG(NetUserAdd, &r);
732 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
733 werr = NetUserAdd_l(ctx, &r);
735 werr = NetUserAdd_r(ctx, &r);
738 r.out.result = W_ERROR_V(werr);
740 if (DEBUGLEVEL >= 10) {
741 NDR_PRINT_OUT_DEBUG(NetUserAdd, &r);
745 return (NET_API_STATUS)r.out.result;
748 /****************************************************************
750 ****************************************************************/
752 NET_API_STATUS NetUserDel(const char * server_name /* [in] [unique] */,
753 const char * user_name /* [in] [ref] */)
756 struct libnetapi_ctx *ctx = NULL;
757 NET_API_STATUS status;
759 TALLOC_CTX *frame = talloc_stackframe();
763 status = libnetapi_getctx(&ctx);
770 r.in.server_name = server_name;
771 r.in.user_name = user_name;
775 if (DEBUGLEVEL >= 10) {
776 NDR_PRINT_IN_DEBUG(NetUserDel, &r);
779 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
780 werr = NetUserDel_l(ctx, &r);
782 werr = NetUserDel_r(ctx, &r);
785 r.out.result = W_ERROR_V(werr);
787 if (DEBUGLEVEL >= 10) {
788 NDR_PRINT_OUT_DEBUG(NetUserDel, &r);
792 return (NET_API_STATUS)r.out.result;
795 /****************************************************************
797 ****************************************************************/
799 NET_API_STATUS NetUserEnum(const char * server_name /* [in] [unique] */,
800 uint32_t level /* [in] */,
801 uint32_t filter /* [in] */,
802 uint8_t **buffer /* [out] [ref] */,
803 uint32_t prefmaxlen /* [in] */,
804 uint32_t *entries_read /* [out] [ref] */,
805 uint32_t *total_entries /* [out] [ref] */,
806 uint32_t *resume_handle /* [in,out] [ref] */)
808 struct NetUserEnum r;
809 struct libnetapi_ctx *ctx = NULL;
810 NET_API_STATUS status;
812 TALLOC_CTX *frame = talloc_stackframe();
816 status = libnetapi_getctx(&ctx);
823 r.in.server_name = server_name;
825 r.in.filter = filter;
826 r.in.prefmaxlen = prefmaxlen;
827 r.in.resume_handle = resume_handle;
830 r.out.buffer = buffer;
831 r.out.entries_read = entries_read;
832 r.out.total_entries = total_entries;
833 r.out.resume_handle = resume_handle;
835 if (DEBUGLEVEL >= 10) {
836 NDR_PRINT_IN_DEBUG(NetUserEnum, &r);
839 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
840 werr = NetUserEnum_l(ctx, &r);
842 werr = NetUserEnum_r(ctx, &r);
845 r.out.result = W_ERROR_V(werr);
847 if (DEBUGLEVEL >= 10) {
848 NDR_PRINT_OUT_DEBUG(NetUserEnum, &r);
852 return (NET_API_STATUS)r.out.result;
855 /****************************************************************
856 NetUserChangePassword
857 ****************************************************************/
859 NET_API_STATUS NetUserChangePassword(const char * domain_name /* [in] */,
860 const char * user_name /* [in] */,
861 const char * old_password /* [in] */,
862 const char * new_password /* [in] */)
864 struct NetUserChangePassword r;
865 struct libnetapi_ctx *ctx = NULL;
866 NET_API_STATUS status;
868 TALLOC_CTX *frame = talloc_stackframe();
872 status = libnetapi_getctx(&ctx);
879 r.in.domain_name = domain_name;
880 r.in.user_name = user_name;
881 r.in.old_password = old_password;
882 r.in.new_password = new_password;
886 if (DEBUGLEVEL >= 10) {
887 NDR_PRINT_IN_DEBUG(NetUserChangePassword, &r);
890 werr = NetUserChangePassword_l(ctx, &r);
892 r.out.result = W_ERROR_V(werr);
894 if (DEBUGLEVEL >= 10) {
895 NDR_PRINT_OUT_DEBUG(NetUserChangePassword, &r);
899 return (NET_API_STATUS)r.out.result;
902 /****************************************************************
904 ****************************************************************/
906 NET_API_STATUS NetUserGetInfo(const char * server_name /* [in] */,
907 const char * user_name /* [in] */,
908 uint32_t level /* [in] */,
909 uint8_t **buffer /* [out] [ref] */)
911 struct NetUserGetInfo r;
912 struct libnetapi_ctx *ctx = NULL;
913 NET_API_STATUS status;
915 TALLOC_CTX *frame = talloc_stackframe();
919 status = libnetapi_getctx(&ctx);
926 r.in.server_name = server_name;
927 r.in.user_name = user_name;
931 r.out.buffer = buffer;
933 if (DEBUGLEVEL >= 10) {
934 NDR_PRINT_IN_DEBUG(NetUserGetInfo, &r);
937 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
938 werr = NetUserGetInfo_l(ctx, &r);
940 werr = NetUserGetInfo_r(ctx, &r);
943 r.out.result = W_ERROR_V(werr);
945 if (DEBUGLEVEL >= 10) {
946 NDR_PRINT_OUT_DEBUG(NetUserGetInfo, &r);
950 return (NET_API_STATUS)r.out.result;
953 /****************************************************************
955 ****************************************************************/
957 NET_API_STATUS NetUserSetInfo(const char * server_name /* [in] */,
958 const char * user_name /* [in] */,
959 uint32_t level /* [in] */,
960 uint8_t *buffer /* [in] [ref] */,
961 uint32_t *parm_err /* [out] [ref] */)
963 struct NetUserSetInfo r;
964 struct libnetapi_ctx *ctx = NULL;
965 NET_API_STATUS status;
967 TALLOC_CTX *frame = talloc_stackframe();
971 status = libnetapi_getctx(&ctx);
978 r.in.server_name = server_name;
979 r.in.user_name = user_name;
981 r.in.buffer = buffer;
984 r.out.parm_err = parm_err;
986 if (DEBUGLEVEL >= 10) {
987 NDR_PRINT_IN_DEBUG(NetUserSetInfo, &r);
990 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
991 werr = NetUserSetInfo_l(ctx, &r);
993 werr = NetUserSetInfo_r(ctx, &r);
996 r.out.result = W_ERROR_V(werr);
998 if (DEBUGLEVEL >= 10) {
999 NDR_PRINT_OUT_DEBUG(NetUserSetInfo, &r);
1003 return (NET_API_STATUS)r.out.result;
1006 /****************************************************************
1008 ****************************************************************/
1010 NET_API_STATUS NetUserGetGroups(const char * server_name /* [in] */,
1011 const char * user_name /* [in] */,
1012 uint32_t level /* [in] */,
1013 uint8_t **buffer /* [out] [ref] */,
1014 uint32_t prefmaxlen /* [in] */,
1015 uint32_t *entries_read /* [out] [ref] */,
1016 uint32_t *total_entries /* [out] [ref] */)
1018 struct NetUserGetGroups r;
1019 struct libnetapi_ctx *ctx = NULL;
1020 NET_API_STATUS status;
1022 TALLOC_CTX *frame = talloc_stackframe();
1026 status = libnetapi_getctx(&ctx);
1033 r.in.server_name = server_name;
1034 r.in.user_name = user_name;
1036 r.in.prefmaxlen = prefmaxlen;
1038 /* Out parameters */
1039 r.out.buffer = buffer;
1040 r.out.entries_read = entries_read;
1041 r.out.total_entries = total_entries;
1043 if (DEBUGLEVEL >= 10) {
1044 NDR_PRINT_IN_DEBUG(NetUserGetGroups, &r);
1047 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1048 werr = NetUserGetGroups_l(ctx, &r);
1050 werr = NetUserGetGroups_r(ctx, &r);
1053 r.out.result = W_ERROR_V(werr);
1055 if (DEBUGLEVEL >= 10) {
1056 NDR_PRINT_OUT_DEBUG(NetUserGetGroups, &r);
1060 return (NET_API_STATUS)r.out.result;
1063 /****************************************************************
1065 ****************************************************************/
1067 NET_API_STATUS NetUserSetGroups(const char * server_name /* [in] */,
1068 const char * user_name /* [in] */,
1069 uint32_t level /* [in] */,
1070 uint8_t *buffer /* [in] [ref] */,
1071 uint32_t num_entries /* [in] */)
1073 struct NetUserSetGroups r;
1074 struct libnetapi_ctx *ctx = NULL;
1075 NET_API_STATUS status;
1077 TALLOC_CTX *frame = talloc_stackframe();
1081 status = libnetapi_getctx(&ctx);
1088 r.in.server_name = server_name;
1089 r.in.user_name = user_name;
1091 r.in.buffer = buffer;
1092 r.in.num_entries = num_entries;
1094 /* Out parameters */
1096 if (DEBUGLEVEL >= 10) {
1097 NDR_PRINT_IN_DEBUG(NetUserSetGroups, &r);
1100 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1101 werr = NetUserSetGroups_l(ctx, &r);
1103 werr = NetUserSetGroups_r(ctx, &r);
1106 r.out.result = W_ERROR_V(werr);
1108 if (DEBUGLEVEL >= 10) {
1109 NDR_PRINT_OUT_DEBUG(NetUserSetGroups, &r);
1113 return (NET_API_STATUS)r.out.result;
1116 /****************************************************************
1117 NetUserGetLocalGroups
1118 ****************************************************************/
1120 NET_API_STATUS NetUserGetLocalGroups(const char * server_name /* [in] */,
1121 const char * user_name /* [in] */,
1122 uint32_t level /* [in] */,
1123 uint32_t flags /* [in] */,
1124 uint8_t **buffer /* [out] [ref] */,
1125 uint32_t prefmaxlen /* [in] */,
1126 uint32_t *entries_read /* [out] [ref] */,
1127 uint32_t *total_entries /* [out] [ref] */)
1129 struct NetUserGetLocalGroups r;
1130 struct libnetapi_ctx *ctx = NULL;
1131 NET_API_STATUS status;
1133 TALLOC_CTX *frame = talloc_stackframe();
1137 status = libnetapi_getctx(&ctx);
1144 r.in.server_name = server_name;
1145 r.in.user_name = user_name;
1148 r.in.prefmaxlen = prefmaxlen;
1150 /* Out parameters */
1151 r.out.buffer = buffer;
1152 r.out.entries_read = entries_read;
1153 r.out.total_entries = total_entries;
1155 if (DEBUGLEVEL >= 10) {
1156 NDR_PRINT_IN_DEBUG(NetUserGetLocalGroups, &r);
1159 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1160 werr = NetUserGetLocalGroups_l(ctx, &r);
1162 werr = NetUserGetLocalGroups_r(ctx, &r);
1165 r.out.result = W_ERROR_V(werr);
1167 if (DEBUGLEVEL >= 10) {
1168 NDR_PRINT_OUT_DEBUG(NetUserGetLocalGroups, &r);
1172 return (NET_API_STATUS)r.out.result;
1175 /****************************************************************
1177 ****************************************************************/
1179 NET_API_STATUS NetUserModalsGet(const char * server_name /* [in] */,
1180 uint32_t level /* [in] */,
1181 uint8_t **buffer /* [out] [ref] */)
1183 struct NetUserModalsGet r;
1184 struct libnetapi_ctx *ctx = NULL;
1185 NET_API_STATUS status;
1187 TALLOC_CTX *frame = talloc_stackframe();
1191 status = libnetapi_getctx(&ctx);
1198 r.in.server_name = server_name;
1201 /* Out parameters */
1202 r.out.buffer = buffer;
1204 if (DEBUGLEVEL >= 10) {
1205 NDR_PRINT_IN_DEBUG(NetUserModalsGet, &r);
1208 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1209 werr = NetUserModalsGet_l(ctx, &r);
1211 werr = NetUserModalsGet_r(ctx, &r);
1214 r.out.result = W_ERROR_V(werr);
1216 if (DEBUGLEVEL >= 10) {
1217 NDR_PRINT_OUT_DEBUG(NetUserModalsGet, &r);
1221 return (NET_API_STATUS)r.out.result;
1224 /****************************************************************
1226 ****************************************************************/
1228 NET_API_STATUS NetUserModalsSet(const char * server_name /* [in] */,
1229 uint32_t level /* [in] */,
1230 uint8_t *buffer /* [in] [ref] */,
1231 uint32_t *parm_err /* [out] [ref] */)
1233 struct NetUserModalsSet r;
1234 struct libnetapi_ctx *ctx = NULL;
1235 NET_API_STATUS status;
1237 TALLOC_CTX *frame = talloc_stackframe();
1241 status = libnetapi_getctx(&ctx);
1248 r.in.server_name = server_name;
1250 r.in.buffer = buffer;
1252 /* Out parameters */
1253 r.out.parm_err = parm_err;
1255 if (DEBUGLEVEL >= 10) {
1256 NDR_PRINT_IN_DEBUG(NetUserModalsSet, &r);
1259 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1260 werr = NetUserModalsSet_l(ctx, &r);
1262 werr = NetUserModalsSet_r(ctx, &r);
1265 r.out.result = W_ERROR_V(werr);
1267 if (DEBUGLEVEL >= 10) {
1268 NDR_PRINT_OUT_DEBUG(NetUserModalsSet, &r);
1272 return (NET_API_STATUS)r.out.result;
1275 /****************************************************************
1276 NetQueryDisplayInformation
1277 ****************************************************************/
1279 NET_API_STATUS NetQueryDisplayInformation(const char * server_name /* [in] [unique] */,
1280 uint32_t level /* [in] */,
1281 uint32_t idx /* [in] */,
1282 uint32_t entries_requested /* [in] */,
1283 uint32_t prefmaxlen /* [in] */,
1284 uint32_t *entries_read /* [out] [ref] */,
1285 void **buffer /* [out] [noprint,ref] */)
1287 struct NetQueryDisplayInformation r;
1288 struct libnetapi_ctx *ctx = NULL;
1289 NET_API_STATUS status;
1291 TALLOC_CTX *frame = talloc_stackframe();
1295 status = libnetapi_getctx(&ctx);
1302 r.in.server_name = server_name;
1305 r.in.entries_requested = entries_requested;
1306 r.in.prefmaxlen = prefmaxlen;
1308 /* Out parameters */
1309 r.out.entries_read = entries_read;
1310 r.out.buffer = buffer;
1312 if (DEBUGLEVEL >= 10) {
1313 NDR_PRINT_IN_DEBUG(NetQueryDisplayInformation, &r);
1316 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1317 werr = NetQueryDisplayInformation_l(ctx, &r);
1319 werr = NetQueryDisplayInformation_r(ctx, &r);
1322 r.out.result = W_ERROR_V(werr);
1324 if (DEBUGLEVEL >= 10) {
1325 NDR_PRINT_OUT_DEBUG(NetQueryDisplayInformation, &r);
1329 return (NET_API_STATUS)r.out.result;
1332 /****************************************************************
1334 ****************************************************************/
1336 NET_API_STATUS NetGroupAdd(const char * server_name /* [in] */,
1337 uint32_t level /* [in] */,
1338 uint8_t *buffer /* [in] [ref] */,
1339 uint32_t *parm_err /* [out] [ref] */)
1341 struct NetGroupAdd r;
1342 struct libnetapi_ctx *ctx = NULL;
1343 NET_API_STATUS status;
1345 TALLOC_CTX *frame = talloc_stackframe();
1349 status = libnetapi_getctx(&ctx);
1356 r.in.server_name = server_name;
1358 r.in.buffer = buffer;
1360 /* Out parameters */
1361 r.out.parm_err = parm_err;
1363 if (DEBUGLEVEL >= 10) {
1364 NDR_PRINT_IN_DEBUG(NetGroupAdd, &r);
1367 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1368 werr = NetGroupAdd_l(ctx, &r);
1370 werr = NetGroupAdd_r(ctx, &r);
1373 r.out.result = W_ERROR_V(werr);
1375 if (DEBUGLEVEL >= 10) {
1376 NDR_PRINT_OUT_DEBUG(NetGroupAdd, &r);
1380 return (NET_API_STATUS)r.out.result;
1383 /****************************************************************
1385 ****************************************************************/
1387 NET_API_STATUS NetGroupDel(const char * server_name /* [in] */,
1388 const char * group_name /* [in] */)
1390 struct NetGroupDel r;
1391 struct libnetapi_ctx *ctx = NULL;
1392 NET_API_STATUS status;
1394 TALLOC_CTX *frame = talloc_stackframe();
1398 status = libnetapi_getctx(&ctx);
1405 r.in.server_name = server_name;
1406 r.in.group_name = group_name;
1408 /* Out parameters */
1410 if (DEBUGLEVEL >= 10) {
1411 NDR_PRINT_IN_DEBUG(NetGroupDel, &r);
1414 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1415 werr = NetGroupDel_l(ctx, &r);
1417 werr = NetGroupDel_r(ctx, &r);
1420 r.out.result = W_ERROR_V(werr);
1422 if (DEBUGLEVEL >= 10) {
1423 NDR_PRINT_OUT_DEBUG(NetGroupDel, &r);
1427 return (NET_API_STATUS)r.out.result;
1430 /****************************************************************
1432 ****************************************************************/
1434 NET_API_STATUS NetGroupEnum(const char * server_name /* [in] */,
1435 uint32_t level /* [in] */,
1436 uint8_t **buffer /* [out] [ref] */,
1437 uint32_t prefmaxlen /* [in] */,
1438 uint32_t *entries_read /* [out] [ref] */,
1439 uint32_t *total_entries /* [out] [ref] */,
1440 uint32_t *resume_handle /* [in,out] [ref] */)
1442 struct NetGroupEnum r;
1443 struct libnetapi_ctx *ctx = NULL;
1444 NET_API_STATUS status;
1446 TALLOC_CTX *frame = talloc_stackframe();
1450 status = libnetapi_getctx(&ctx);
1457 r.in.server_name = server_name;
1459 r.in.prefmaxlen = prefmaxlen;
1460 r.in.resume_handle = resume_handle;
1462 /* Out parameters */
1463 r.out.buffer = buffer;
1464 r.out.entries_read = entries_read;
1465 r.out.total_entries = total_entries;
1466 r.out.resume_handle = resume_handle;
1468 if (DEBUGLEVEL >= 10) {
1469 NDR_PRINT_IN_DEBUG(NetGroupEnum, &r);
1472 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1473 werr = NetGroupEnum_l(ctx, &r);
1475 werr = NetGroupEnum_r(ctx, &r);
1478 r.out.result = W_ERROR_V(werr);
1480 if (DEBUGLEVEL >= 10) {
1481 NDR_PRINT_OUT_DEBUG(NetGroupEnum, &r);
1485 return (NET_API_STATUS)r.out.result;
1488 /****************************************************************
1490 ****************************************************************/
1492 NET_API_STATUS NetGroupSetInfo(const char * server_name /* [in] */,
1493 const char * group_name /* [in] */,
1494 uint32_t level /* [in] */,
1495 uint8_t *buffer /* [in] [ref] */,
1496 uint32_t *parm_err /* [out] [ref] */)
1498 struct NetGroupSetInfo r;
1499 struct libnetapi_ctx *ctx = NULL;
1500 NET_API_STATUS status;
1502 TALLOC_CTX *frame = talloc_stackframe();
1506 status = libnetapi_getctx(&ctx);
1513 r.in.server_name = server_name;
1514 r.in.group_name = group_name;
1516 r.in.buffer = buffer;
1518 /* Out parameters */
1519 r.out.parm_err = parm_err;
1521 if (DEBUGLEVEL >= 10) {
1522 NDR_PRINT_IN_DEBUG(NetGroupSetInfo, &r);
1525 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1526 werr = NetGroupSetInfo_l(ctx, &r);
1528 werr = NetGroupSetInfo_r(ctx, &r);
1531 r.out.result = W_ERROR_V(werr);
1533 if (DEBUGLEVEL >= 10) {
1534 NDR_PRINT_OUT_DEBUG(NetGroupSetInfo, &r);
1538 return (NET_API_STATUS)r.out.result;
1541 /****************************************************************
1543 ****************************************************************/
1545 NET_API_STATUS NetGroupGetInfo(const char * server_name /* [in] */,
1546 const char * group_name /* [in] */,
1547 uint32_t level /* [in] */,
1548 uint8_t **buffer /* [out] [ref] */)
1550 struct NetGroupGetInfo r;
1551 struct libnetapi_ctx *ctx = NULL;
1552 NET_API_STATUS status;
1554 TALLOC_CTX *frame = talloc_stackframe();
1558 status = libnetapi_getctx(&ctx);
1565 r.in.server_name = server_name;
1566 r.in.group_name = group_name;
1569 /* Out parameters */
1570 r.out.buffer = buffer;
1572 if (DEBUGLEVEL >= 10) {
1573 NDR_PRINT_IN_DEBUG(NetGroupGetInfo, &r);
1576 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1577 werr = NetGroupGetInfo_l(ctx, &r);
1579 werr = NetGroupGetInfo_r(ctx, &r);
1582 r.out.result = W_ERROR_V(werr);
1584 if (DEBUGLEVEL >= 10) {
1585 NDR_PRINT_OUT_DEBUG(NetGroupGetInfo, &r);
1589 return (NET_API_STATUS)r.out.result;
1592 /****************************************************************
1594 ****************************************************************/
1596 NET_API_STATUS NetGroupAddUser(const char * server_name /* [in] */,
1597 const char * group_name /* [in] */,
1598 const char * user_name /* [in] */)
1600 struct NetGroupAddUser r;
1601 struct libnetapi_ctx *ctx = NULL;
1602 NET_API_STATUS status;
1604 TALLOC_CTX *frame = talloc_stackframe();
1608 status = libnetapi_getctx(&ctx);
1615 r.in.server_name = server_name;
1616 r.in.group_name = group_name;
1617 r.in.user_name = user_name;
1619 /* Out parameters */
1621 if (DEBUGLEVEL >= 10) {
1622 NDR_PRINT_IN_DEBUG(NetGroupAddUser, &r);
1625 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1626 werr = NetGroupAddUser_l(ctx, &r);
1628 werr = NetGroupAddUser_r(ctx, &r);
1631 r.out.result = W_ERROR_V(werr);
1633 if (DEBUGLEVEL >= 10) {
1634 NDR_PRINT_OUT_DEBUG(NetGroupAddUser, &r);
1638 return (NET_API_STATUS)r.out.result;
1641 /****************************************************************
1643 ****************************************************************/
1645 NET_API_STATUS NetGroupDelUser(const char * server_name /* [in] */,
1646 const char * group_name /* [in] */,
1647 const char * user_name /* [in] */)
1649 struct NetGroupDelUser r;
1650 struct libnetapi_ctx *ctx = NULL;
1651 NET_API_STATUS status;
1653 TALLOC_CTX *frame = talloc_stackframe();
1657 status = libnetapi_getctx(&ctx);
1664 r.in.server_name = server_name;
1665 r.in.group_name = group_name;
1666 r.in.user_name = user_name;
1668 /* Out parameters */
1670 if (DEBUGLEVEL >= 10) {
1671 NDR_PRINT_IN_DEBUG(NetGroupDelUser, &r);
1674 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1675 werr = NetGroupDelUser_l(ctx, &r);
1677 werr = NetGroupDelUser_r(ctx, &r);
1680 r.out.result = W_ERROR_V(werr);
1682 if (DEBUGLEVEL >= 10) {
1683 NDR_PRINT_OUT_DEBUG(NetGroupDelUser, &r);
1687 return (NET_API_STATUS)r.out.result;
1690 /****************************************************************
1692 ****************************************************************/
1694 NET_API_STATUS NetGroupGetUsers(const char * server_name /* [in] */,
1695 const char * group_name /* [in] */,
1696 uint32_t level /* [in] */,
1697 uint8_t **buffer /* [out] [ref] */,
1698 uint32_t prefmaxlen /* [in] */,
1699 uint32_t *entries_read /* [out] [ref] */,
1700 uint32_t *total_entries /* [out] [ref] */,
1701 uint32_t *resume_handle /* [in,out] [ref] */)
1703 struct NetGroupGetUsers r;
1704 struct libnetapi_ctx *ctx = NULL;
1705 NET_API_STATUS status;
1707 TALLOC_CTX *frame = talloc_stackframe();
1711 status = libnetapi_getctx(&ctx);
1718 r.in.server_name = server_name;
1719 r.in.group_name = group_name;
1721 r.in.prefmaxlen = prefmaxlen;
1722 r.in.resume_handle = resume_handle;
1724 /* Out parameters */
1725 r.out.buffer = buffer;
1726 r.out.entries_read = entries_read;
1727 r.out.total_entries = total_entries;
1728 r.out.resume_handle = resume_handle;
1730 if (DEBUGLEVEL >= 10) {
1731 NDR_PRINT_IN_DEBUG(NetGroupGetUsers, &r);
1734 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1735 werr = NetGroupGetUsers_l(ctx, &r);
1737 werr = NetGroupGetUsers_r(ctx, &r);
1740 r.out.result = W_ERROR_V(werr);
1742 if (DEBUGLEVEL >= 10) {
1743 NDR_PRINT_OUT_DEBUG(NetGroupGetUsers, &r);
1747 return (NET_API_STATUS)r.out.result;
1750 /****************************************************************
1752 ****************************************************************/
1754 NET_API_STATUS NetGroupSetUsers(const char * server_name /* [in] */,
1755 const char * group_name /* [in] */,
1756 uint32_t level /* [in] */,
1757 uint8_t *buffer /* [in] [ref] */,
1758 uint32_t num_entries /* [in] */)
1760 struct NetGroupSetUsers r;
1761 struct libnetapi_ctx *ctx = NULL;
1762 NET_API_STATUS status;
1764 TALLOC_CTX *frame = talloc_stackframe();
1768 status = libnetapi_getctx(&ctx);
1775 r.in.server_name = server_name;
1776 r.in.group_name = group_name;
1778 r.in.buffer = buffer;
1779 r.in.num_entries = num_entries;
1781 /* Out parameters */
1783 if (DEBUGLEVEL >= 10) {
1784 NDR_PRINT_IN_DEBUG(NetGroupSetUsers, &r);
1787 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1788 werr = NetGroupSetUsers_l(ctx, &r);
1790 werr = NetGroupSetUsers_r(ctx, &r);
1793 r.out.result = W_ERROR_V(werr);
1795 if (DEBUGLEVEL >= 10) {
1796 NDR_PRINT_OUT_DEBUG(NetGroupSetUsers, &r);
1800 return (NET_API_STATUS)r.out.result;
1803 /****************************************************************
1805 ****************************************************************/
1807 NET_API_STATUS NetLocalGroupAdd(const char * server_name /* [in] */,
1808 uint32_t level /* [in] */,
1809 uint8_t *buffer /* [in] [ref] */,
1810 uint32_t *parm_err /* [out] [ref] */)
1812 struct NetLocalGroupAdd r;
1813 struct libnetapi_ctx *ctx = NULL;
1814 NET_API_STATUS status;
1816 TALLOC_CTX *frame = talloc_stackframe();
1820 status = libnetapi_getctx(&ctx);
1827 r.in.server_name = server_name;
1829 r.in.buffer = buffer;
1831 /* Out parameters */
1832 r.out.parm_err = parm_err;
1834 if (DEBUGLEVEL >= 10) {
1835 NDR_PRINT_IN_DEBUG(NetLocalGroupAdd, &r);
1838 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1839 werr = NetLocalGroupAdd_l(ctx, &r);
1841 werr = NetLocalGroupAdd_r(ctx, &r);
1844 r.out.result = W_ERROR_V(werr);
1846 if (DEBUGLEVEL >= 10) {
1847 NDR_PRINT_OUT_DEBUG(NetLocalGroupAdd, &r);
1851 return (NET_API_STATUS)r.out.result;
1854 /****************************************************************
1856 ****************************************************************/
1858 NET_API_STATUS NetLocalGroupDel(const char * server_name /* [in] */,
1859 const char * group_name /* [in] */)
1861 struct NetLocalGroupDel r;
1862 struct libnetapi_ctx *ctx = NULL;
1863 NET_API_STATUS status;
1865 TALLOC_CTX *frame = talloc_stackframe();
1869 status = libnetapi_getctx(&ctx);
1876 r.in.server_name = server_name;
1877 r.in.group_name = group_name;
1879 /* Out parameters */
1881 if (DEBUGLEVEL >= 10) {
1882 NDR_PRINT_IN_DEBUG(NetLocalGroupDel, &r);
1885 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1886 werr = NetLocalGroupDel_l(ctx, &r);
1888 werr = NetLocalGroupDel_r(ctx, &r);
1891 r.out.result = W_ERROR_V(werr);
1893 if (DEBUGLEVEL >= 10) {
1894 NDR_PRINT_OUT_DEBUG(NetLocalGroupDel, &r);
1898 return (NET_API_STATUS)r.out.result;
1901 /****************************************************************
1902 NetLocalGroupGetInfo
1903 ****************************************************************/
1905 NET_API_STATUS NetLocalGroupGetInfo(const char * server_name /* [in] */,
1906 const char * group_name /* [in] */,
1907 uint32_t level /* [in] */,
1908 uint8_t **buffer /* [out] [ref] */)
1910 struct NetLocalGroupGetInfo r;
1911 struct libnetapi_ctx *ctx = NULL;
1912 NET_API_STATUS status;
1914 TALLOC_CTX *frame = talloc_stackframe();
1918 status = libnetapi_getctx(&ctx);
1925 r.in.server_name = server_name;
1926 r.in.group_name = group_name;
1929 /* Out parameters */
1930 r.out.buffer = buffer;
1932 if (DEBUGLEVEL >= 10) {
1933 NDR_PRINT_IN_DEBUG(NetLocalGroupGetInfo, &r);
1936 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1937 werr = NetLocalGroupGetInfo_l(ctx, &r);
1939 werr = NetLocalGroupGetInfo_r(ctx, &r);
1942 r.out.result = W_ERROR_V(werr);
1944 if (DEBUGLEVEL >= 10) {
1945 NDR_PRINT_OUT_DEBUG(NetLocalGroupGetInfo, &r);
1949 return (NET_API_STATUS)r.out.result;
1952 /****************************************************************
1953 NetLocalGroupSetInfo
1954 ****************************************************************/
1956 NET_API_STATUS NetLocalGroupSetInfo(const char * server_name /* [in] */,
1957 const char * group_name /* [in] */,
1958 uint32_t level /* [in] */,
1959 uint8_t *buffer /* [in] [ref] */,
1960 uint32_t *parm_err /* [out] [ref] */)
1962 struct NetLocalGroupSetInfo r;
1963 struct libnetapi_ctx *ctx = NULL;
1964 NET_API_STATUS status;
1966 TALLOC_CTX *frame = talloc_stackframe();
1970 status = libnetapi_getctx(&ctx);
1977 r.in.server_name = server_name;
1978 r.in.group_name = group_name;
1980 r.in.buffer = buffer;
1982 /* Out parameters */
1983 r.out.parm_err = parm_err;
1985 if (DEBUGLEVEL >= 10) {
1986 NDR_PRINT_IN_DEBUG(NetLocalGroupSetInfo, &r);
1989 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
1990 werr = NetLocalGroupSetInfo_l(ctx, &r);
1992 werr = NetLocalGroupSetInfo_r(ctx, &r);
1995 r.out.result = W_ERROR_V(werr);
1997 if (DEBUGLEVEL >= 10) {
1998 NDR_PRINT_OUT_DEBUG(NetLocalGroupSetInfo, &r);
2002 return (NET_API_STATUS)r.out.result;
2005 /****************************************************************
2007 ****************************************************************/
2009 NET_API_STATUS NetLocalGroupEnum(const char * server_name /* [in] */,
2010 uint32_t level /* [in] */,
2011 uint8_t **buffer /* [out] [ref] */,
2012 uint32_t prefmaxlen /* [in] */,
2013 uint32_t *entries_read /* [out] [ref] */,
2014 uint32_t *total_entries /* [out] [ref] */,
2015 uint32_t *resume_handle /* [in,out] [ref] */)
2017 struct NetLocalGroupEnum r;
2018 struct libnetapi_ctx *ctx = NULL;
2019 NET_API_STATUS status;
2021 TALLOC_CTX *frame = talloc_stackframe();
2025 status = libnetapi_getctx(&ctx);
2032 r.in.server_name = server_name;
2034 r.in.prefmaxlen = prefmaxlen;
2035 r.in.resume_handle = resume_handle;
2037 /* Out parameters */
2038 r.out.buffer = buffer;
2039 r.out.entries_read = entries_read;
2040 r.out.total_entries = total_entries;
2041 r.out.resume_handle = resume_handle;
2043 if (DEBUGLEVEL >= 10) {
2044 NDR_PRINT_IN_DEBUG(NetLocalGroupEnum, &r);
2047 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2048 werr = NetLocalGroupEnum_l(ctx, &r);
2050 werr = NetLocalGroupEnum_r(ctx, &r);
2053 r.out.result = W_ERROR_V(werr);
2055 if (DEBUGLEVEL >= 10) {
2056 NDR_PRINT_OUT_DEBUG(NetLocalGroupEnum, &r);
2060 return (NET_API_STATUS)r.out.result;
2063 /****************************************************************
2064 NetLocalGroupAddMembers
2065 ****************************************************************/
2067 NET_API_STATUS NetLocalGroupAddMembers(const char * server_name /* [in] */,
2068 const char * group_name /* [in] */,
2069 uint32_t level /* [in] */,
2070 uint8_t *buffer /* [in] [ref] */,
2071 uint32_t total_entries /* [in] */)
2073 struct NetLocalGroupAddMembers r;
2074 struct libnetapi_ctx *ctx = NULL;
2075 NET_API_STATUS status;
2077 TALLOC_CTX *frame = talloc_stackframe();
2081 status = libnetapi_getctx(&ctx);
2088 r.in.server_name = server_name;
2089 r.in.group_name = group_name;
2091 r.in.buffer = buffer;
2092 r.in.total_entries = total_entries;
2094 /* Out parameters */
2096 if (DEBUGLEVEL >= 10) {
2097 NDR_PRINT_IN_DEBUG(NetLocalGroupAddMembers, &r);
2100 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2101 werr = NetLocalGroupAddMembers_l(ctx, &r);
2103 werr = NetLocalGroupAddMembers_r(ctx, &r);
2106 r.out.result = W_ERROR_V(werr);
2108 if (DEBUGLEVEL >= 10) {
2109 NDR_PRINT_OUT_DEBUG(NetLocalGroupAddMembers, &r);
2113 return (NET_API_STATUS)r.out.result;
2116 /****************************************************************
2117 NetLocalGroupDelMembers
2118 ****************************************************************/
2120 NET_API_STATUS NetLocalGroupDelMembers(const char * server_name /* [in] */,
2121 const char * group_name /* [in] */,
2122 uint32_t level /* [in] */,
2123 uint8_t *buffer /* [in] [ref] */,
2124 uint32_t total_entries /* [in] */)
2126 struct NetLocalGroupDelMembers r;
2127 struct libnetapi_ctx *ctx = NULL;
2128 NET_API_STATUS status;
2130 TALLOC_CTX *frame = talloc_stackframe();
2134 status = libnetapi_getctx(&ctx);
2141 r.in.server_name = server_name;
2142 r.in.group_name = group_name;
2144 r.in.buffer = buffer;
2145 r.in.total_entries = total_entries;
2147 /* Out parameters */
2149 if (DEBUGLEVEL >= 10) {
2150 NDR_PRINT_IN_DEBUG(NetLocalGroupDelMembers, &r);
2153 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2154 werr = NetLocalGroupDelMembers_l(ctx, &r);
2156 werr = NetLocalGroupDelMembers_r(ctx, &r);
2159 r.out.result = W_ERROR_V(werr);
2161 if (DEBUGLEVEL >= 10) {
2162 NDR_PRINT_OUT_DEBUG(NetLocalGroupDelMembers, &r);
2166 return (NET_API_STATUS)r.out.result;
2169 /****************************************************************
2170 NetLocalGroupGetMembers
2171 ****************************************************************/
2173 NET_API_STATUS NetLocalGroupGetMembers(const char * server_name /* [in] */,
2174 const char * local_group_name /* [in] */,
2175 uint32_t level /* [in] */,
2176 uint8_t **buffer /* [out] [ref] */,
2177 uint32_t prefmaxlen /* [in] */,
2178 uint32_t *entries_read /* [out] [ref] */,
2179 uint32_t *total_entries /* [out] [ref] */,
2180 uint32_t *resume_handle /* [in,out] [ref] */)
2182 struct NetLocalGroupGetMembers r;
2183 struct libnetapi_ctx *ctx = NULL;
2184 NET_API_STATUS status;
2186 TALLOC_CTX *frame = talloc_stackframe();
2190 status = libnetapi_getctx(&ctx);
2197 r.in.server_name = server_name;
2198 r.in.local_group_name = local_group_name;
2200 r.in.prefmaxlen = prefmaxlen;
2201 r.in.resume_handle = resume_handle;
2203 /* Out parameters */
2204 r.out.buffer = buffer;
2205 r.out.entries_read = entries_read;
2206 r.out.total_entries = total_entries;
2207 r.out.resume_handle = resume_handle;
2209 if (DEBUGLEVEL >= 10) {
2210 NDR_PRINT_IN_DEBUG(NetLocalGroupGetMembers, &r);
2213 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2214 werr = NetLocalGroupGetMembers_l(ctx, &r);
2216 werr = NetLocalGroupGetMembers_r(ctx, &r);
2219 r.out.result = W_ERROR_V(werr);
2221 if (DEBUGLEVEL >= 10) {
2222 NDR_PRINT_OUT_DEBUG(NetLocalGroupGetMembers, &r);
2226 return (NET_API_STATUS)r.out.result;
2229 /****************************************************************
2230 NetLocalGroupSetMembers
2231 ****************************************************************/
2233 NET_API_STATUS NetLocalGroupSetMembers(const char * server_name /* [in] */,
2234 const char * group_name /* [in] */,
2235 uint32_t level /* [in] */,
2236 uint8_t *buffer /* [in] [ref] */,
2237 uint32_t total_entries /* [in] */)
2239 struct NetLocalGroupSetMembers r;
2240 struct libnetapi_ctx *ctx = NULL;
2241 NET_API_STATUS status;
2243 TALLOC_CTX *frame = talloc_stackframe();
2247 status = libnetapi_getctx(&ctx);
2254 r.in.server_name = server_name;
2255 r.in.group_name = group_name;
2257 r.in.buffer = buffer;
2258 r.in.total_entries = total_entries;
2260 /* Out parameters */
2262 if (DEBUGLEVEL >= 10) {
2263 NDR_PRINT_IN_DEBUG(NetLocalGroupSetMembers, &r);
2266 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2267 werr = NetLocalGroupSetMembers_l(ctx, &r);
2269 werr = NetLocalGroupSetMembers_r(ctx, &r);
2272 r.out.result = W_ERROR_V(werr);
2274 if (DEBUGLEVEL >= 10) {
2275 NDR_PRINT_OUT_DEBUG(NetLocalGroupSetMembers, &r);
2279 return (NET_API_STATUS)r.out.result;
2282 /****************************************************************
2284 ****************************************************************/
2286 NET_API_STATUS NetRemoteTOD(const char * server_name /* [in] */,
2287 uint8_t **buffer /* [out] [ref] */)
2289 struct NetRemoteTOD r;
2290 struct libnetapi_ctx *ctx = NULL;
2291 NET_API_STATUS status;
2293 TALLOC_CTX *frame = talloc_stackframe();
2297 status = libnetapi_getctx(&ctx);
2304 r.in.server_name = server_name;
2306 /* Out parameters */
2307 r.out.buffer = buffer;
2309 if (DEBUGLEVEL >= 10) {
2310 NDR_PRINT_IN_DEBUG(NetRemoteTOD, &r);
2313 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2314 werr = NetRemoteTOD_l(ctx, &r);
2316 werr = NetRemoteTOD_r(ctx, &r);
2319 r.out.result = W_ERROR_V(werr);
2321 if (DEBUGLEVEL >= 10) {
2322 NDR_PRINT_OUT_DEBUG(NetRemoteTOD, &r);
2326 return (NET_API_STATUS)r.out.result;
2329 /****************************************************************
2331 ****************************************************************/
2333 NET_API_STATUS NetShareAdd(const char * server_name /* [in] */,
2334 uint32_t level /* [in] */,
2335 uint8_t *buffer /* [in] [ref] */,
2336 uint32_t *parm_err /* [out] [ref] */)
2338 struct NetShareAdd r;
2339 struct libnetapi_ctx *ctx = NULL;
2340 NET_API_STATUS status;
2342 TALLOC_CTX *frame = talloc_stackframe();
2346 status = libnetapi_getctx(&ctx);
2353 r.in.server_name = server_name;
2355 r.in.buffer = buffer;
2357 /* Out parameters */
2358 r.out.parm_err = parm_err;
2360 if (DEBUGLEVEL >= 10) {
2361 NDR_PRINT_IN_DEBUG(NetShareAdd, &r);
2364 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2365 werr = NetShareAdd_l(ctx, &r);
2367 werr = NetShareAdd_r(ctx, &r);
2370 r.out.result = W_ERROR_V(werr);
2372 if (DEBUGLEVEL >= 10) {
2373 NDR_PRINT_OUT_DEBUG(NetShareAdd, &r);
2377 return (NET_API_STATUS)r.out.result;
2380 /****************************************************************
2382 ****************************************************************/
2384 NET_API_STATUS NetShareDel(const char * server_name /* [in] */,
2385 const char * net_name /* [in] */,
2386 uint32_t reserved /* [in] */)
2388 struct NetShareDel r;
2389 struct libnetapi_ctx *ctx = NULL;
2390 NET_API_STATUS status;
2392 TALLOC_CTX *frame = talloc_stackframe();
2396 status = libnetapi_getctx(&ctx);
2403 r.in.server_name = server_name;
2404 r.in.net_name = net_name;
2405 r.in.reserved = reserved;
2407 /* Out parameters */
2409 if (DEBUGLEVEL >= 10) {
2410 NDR_PRINT_IN_DEBUG(NetShareDel, &r);
2413 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2414 werr = NetShareDel_l(ctx, &r);
2416 werr = NetShareDel_r(ctx, &r);
2419 r.out.result = W_ERROR_V(werr);
2421 if (DEBUGLEVEL >= 10) {
2422 NDR_PRINT_OUT_DEBUG(NetShareDel, &r);
2426 return (NET_API_STATUS)r.out.result;
2429 /****************************************************************
2431 ****************************************************************/
2433 NET_API_STATUS NetShareEnum(const char * server_name /* [in] */,
2434 uint32_t level /* [in] */,
2435 uint8_t **buffer /* [out] [ref] */,
2436 uint32_t prefmaxlen /* [in] */,
2437 uint32_t *entries_read /* [out] [ref] */,
2438 uint32_t *total_entries /* [out] [ref] */,
2439 uint32_t *resume_handle /* [in,out] [ref] */)
2441 struct NetShareEnum r;
2442 struct libnetapi_ctx *ctx = NULL;
2443 NET_API_STATUS status;
2445 TALLOC_CTX *frame = talloc_stackframe();
2449 status = libnetapi_getctx(&ctx);
2456 r.in.server_name = server_name;
2458 r.in.prefmaxlen = prefmaxlen;
2459 r.in.resume_handle = resume_handle;
2461 /* Out parameters */
2462 r.out.buffer = buffer;
2463 r.out.entries_read = entries_read;
2464 r.out.total_entries = total_entries;
2465 r.out.resume_handle = resume_handle;
2467 if (DEBUGLEVEL >= 10) {
2468 NDR_PRINT_IN_DEBUG(NetShareEnum, &r);
2471 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2472 werr = NetShareEnum_l(ctx, &r);
2474 werr = NetShareEnum_r(ctx, &r);
2477 r.out.result = W_ERROR_V(werr);
2479 if (DEBUGLEVEL >= 10) {
2480 NDR_PRINT_OUT_DEBUG(NetShareEnum, &r);
2484 return (NET_API_STATUS)r.out.result;
2487 /****************************************************************
2489 ****************************************************************/
2491 NET_API_STATUS NetShareGetInfo(const char * server_name /* [in] */,
2492 const char * net_name /* [in] */,
2493 uint32_t level /* [in] */,
2494 uint8_t **buffer /* [out] [ref] */)
2496 struct NetShareGetInfo r;
2497 struct libnetapi_ctx *ctx = NULL;
2498 NET_API_STATUS status;
2500 TALLOC_CTX *frame = talloc_stackframe();
2504 status = libnetapi_getctx(&ctx);
2511 r.in.server_name = server_name;
2512 r.in.net_name = net_name;
2515 /* Out parameters */
2516 r.out.buffer = buffer;
2518 if (DEBUGLEVEL >= 10) {
2519 NDR_PRINT_IN_DEBUG(NetShareGetInfo, &r);
2522 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2523 werr = NetShareGetInfo_l(ctx, &r);
2525 werr = NetShareGetInfo_r(ctx, &r);
2528 r.out.result = W_ERROR_V(werr);
2530 if (DEBUGLEVEL >= 10) {
2531 NDR_PRINT_OUT_DEBUG(NetShareGetInfo, &r);
2535 return (NET_API_STATUS)r.out.result;
2538 /****************************************************************
2540 ****************************************************************/
2542 NET_API_STATUS NetShareSetInfo(const char * server_name /* [in] */,
2543 const char * net_name /* [in] */,
2544 uint32_t level /* [in] */,
2545 uint8_t *buffer /* [in] [ref] */,
2546 uint32_t *parm_err /* [out] [ref] */)
2548 struct NetShareSetInfo r;
2549 struct libnetapi_ctx *ctx = NULL;
2550 NET_API_STATUS status;
2552 TALLOC_CTX *frame = talloc_stackframe();
2556 status = libnetapi_getctx(&ctx);
2563 r.in.server_name = server_name;
2564 r.in.net_name = net_name;
2566 r.in.buffer = buffer;
2568 /* Out parameters */
2569 r.out.parm_err = parm_err;
2571 if (DEBUGLEVEL >= 10) {
2572 NDR_PRINT_IN_DEBUG(NetShareSetInfo, &r);
2575 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2576 werr = NetShareSetInfo_l(ctx, &r);
2578 werr = NetShareSetInfo_r(ctx, &r);
2581 r.out.result = W_ERROR_V(werr);
2583 if (DEBUGLEVEL >= 10) {
2584 NDR_PRINT_OUT_DEBUG(NetShareSetInfo, &r);
2588 return (NET_API_STATUS)r.out.result;
2591 /****************************************************************
2593 ****************************************************************/
2595 NET_API_STATUS NetFileClose(const char * server_name /* [in] */,
2596 uint32_t fileid /* [in] */)
2598 struct NetFileClose r;
2599 struct libnetapi_ctx *ctx = NULL;
2600 NET_API_STATUS status;
2602 TALLOC_CTX *frame = talloc_stackframe();
2606 status = libnetapi_getctx(&ctx);
2613 r.in.server_name = server_name;
2614 r.in.fileid = fileid;
2616 /* Out parameters */
2618 if (DEBUGLEVEL >= 10) {
2619 NDR_PRINT_IN_DEBUG(NetFileClose, &r);
2622 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2623 werr = NetFileClose_l(ctx, &r);
2625 werr = NetFileClose_r(ctx, &r);
2628 r.out.result = W_ERROR_V(werr);
2630 if (DEBUGLEVEL >= 10) {
2631 NDR_PRINT_OUT_DEBUG(NetFileClose, &r);
2635 return (NET_API_STATUS)r.out.result;
2638 /****************************************************************
2640 ****************************************************************/
2642 NET_API_STATUS NetFileGetInfo(const char * server_name /* [in] */,
2643 uint32_t fileid /* [in] */,
2644 uint32_t level /* [in] */,
2645 uint8_t **buffer /* [out] [ref] */)
2647 struct NetFileGetInfo r;
2648 struct libnetapi_ctx *ctx = NULL;
2649 NET_API_STATUS status;
2651 TALLOC_CTX *frame = talloc_stackframe();
2655 status = libnetapi_getctx(&ctx);
2662 r.in.server_name = server_name;
2663 r.in.fileid = fileid;
2666 /* Out parameters */
2667 r.out.buffer = buffer;
2669 if (DEBUGLEVEL >= 10) {
2670 NDR_PRINT_IN_DEBUG(NetFileGetInfo, &r);
2673 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2674 werr = NetFileGetInfo_l(ctx, &r);
2676 werr = NetFileGetInfo_r(ctx, &r);
2679 r.out.result = W_ERROR_V(werr);
2681 if (DEBUGLEVEL >= 10) {
2682 NDR_PRINT_OUT_DEBUG(NetFileGetInfo, &r);
2686 return (NET_API_STATUS)r.out.result;
2689 /****************************************************************
2691 ****************************************************************/
2693 NET_API_STATUS NetFileEnum(const char * server_name /* [in] */,
2694 const char * base_path /* [in] */,
2695 const char * user_name /* [in] */,
2696 uint32_t level /* [in] */,
2697 uint8_t **buffer /* [out] [ref] */,
2698 uint32_t prefmaxlen /* [in] */,
2699 uint32_t *entries_read /* [out] [ref] */,
2700 uint32_t *total_entries /* [out] [ref] */,
2701 uint32_t *resume_handle /* [in,out] [ref] */)
2703 struct NetFileEnum r;
2704 struct libnetapi_ctx *ctx = NULL;
2705 NET_API_STATUS status;
2707 TALLOC_CTX *frame = talloc_stackframe();
2711 status = libnetapi_getctx(&ctx);
2718 r.in.server_name = server_name;
2719 r.in.base_path = base_path;
2720 r.in.user_name = user_name;
2722 r.in.prefmaxlen = prefmaxlen;
2723 r.in.resume_handle = resume_handle;
2725 /* Out parameters */
2726 r.out.buffer = buffer;
2727 r.out.entries_read = entries_read;
2728 r.out.total_entries = total_entries;
2729 r.out.resume_handle = resume_handle;
2731 if (DEBUGLEVEL >= 10) {
2732 NDR_PRINT_IN_DEBUG(NetFileEnum, &r);
2735 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2736 werr = NetFileEnum_l(ctx, &r);
2738 werr = NetFileEnum_r(ctx, &r);
2741 r.out.result = W_ERROR_V(werr);
2743 if (DEBUGLEVEL >= 10) {
2744 NDR_PRINT_OUT_DEBUG(NetFileEnum, &r);
2748 return (NET_API_STATUS)r.out.result;
2751 /****************************************************************
2753 ****************************************************************/
2755 NET_API_STATUS NetShutdownInit(const char * server_name /* [in] */,
2756 const char * message /* [in] */,
2757 uint32_t timeout /* [in] */,
2758 uint8_t force_apps /* [in] */,
2759 uint8_t do_reboot /* [in] */)
2761 struct NetShutdownInit r;
2762 struct libnetapi_ctx *ctx = NULL;
2763 NET_API_STATUS status;
2765 TALLOC_CTX *frame = talloc_stackframe();
2769 status = libnetapi_getctx(&ctx);
2776 r.in.server_name = server_name;
2777 r.in.message = message;
2778 r.in.timeout = timeout;
2779 r.in.force_apps = force_apps;
2780 r.in.do_reboot = do_reboot;
2782 /* Out parameters */
2784 if (DEBUGLEVEL >= 10) {
2785 NDR_PRINT_IN_DEBUG(NetShutdownInit, &r);
2788 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2789 werr = NetShutdownInit_l(ctx, &r);
2791 werr = NetShutdownInit_r(ctx, &r);
2794 r.out.result = W_ERROR_V(werr);
2796 if (DEBUGLEVEL >= 10) {
2797 NDR_PRINT_OUT_DEBUG(NetShutdownInit, &r);
2801 return (NET_API_STATUS)r.out.result;
2804 /****************************************************************
2806 ****************************************************************/
2808 NET_API_STATUS NetShutdownAbort(const char * server_name /* [in] */)
2810 struct NetShutdownAbort r;
2811 struct libnetapi_ctx *ctx = NULL;
2812 NET_API_STATUS status;
2814 TALLOC_CTX *frame = talloc_stackframe();
2818 status = libnetapi_getctx(&ctx);
2825 r.in.server_name = server_name;
2827 /* Out parameters */
2829 if (DEBUGLEVEL >= 10) {
2830 NDR_PRINT_IN_DEBUG(NetShutdownAbort, &r);
2833 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2834 werr = NetShutdownAbort_l(ctx, &r);
2836 werr = NetShutdownAbort_r(ctx, &r);
2839 r.out.result = W_ERROR_V(werr);
2841 if (DEBUGLEVEL >= 10) {
2842 NDR_PRINT_OUT_DEBUG(NetShutdownAbort, &r);
2846 return (NET_API_STATUS)r.out.result;
2849 /****************************************************************
2851 ****************************************************************/
2853 NET_API_STATUS I_NetLogonControl(const char * server_name /* [in] */,
2854 uint32_t function_code /* [in] */,
2855 uint32_t query_level /* [in] */,
2856 uint8_t **buffer /* [out] [ref] */)
2858 struct I_NetLogonControl r;
2859 struct libnetapi_ctx *ctx = NULL;
2860 NET_API_STATUS status;
2862 TALLOC_CTX *frame = talloc_stackframe();
2866 status = libnetapi_getctx(&ctx);
2873 r.in.server_name = server_name;
2874 r.in.function_code = function_code;
2875 r.in.query_level = query_level;
2877 /* Out parameters */
2878 r.out.buffer = buffer;
2880 if (DEBUGLEVEL >= 10) {
2881 NDR_PRINT_IN_DEBUG(I_NetLogonControl, &r);
2884 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2885 werr = I_NetLogonControl_l(ctx, &r);
2887 werr = I_NetLogonControl_r(ctx, &r);
2890 r.out.result = W_ERROR_V(werr);
2892 if (DEBUGLEVEL >= 10) {
2893 NDR_PRINT_OUT_DEBUG(I_NetLogonControl, &r);
2897 return (NET_API_STATUS)r.out.result;
2900 /****************************************************************
2902 ****************************************************************/
2904 NET_API_STATUS I_NetLogonControl2(const char * server_name /* [in] */,
2905 uint32_t function_code /* [in] */,
2906 uint32_t query_level /* [in] */,
2907 uint8_t *data /* [in] [unique] */,
2908 uint8_t **buffer /* [out] [ref] */)
2910 struct I_NetLogonControl2 r;
2911 struct libnetapi_ctx *ctx = NULL;
2912 NET_API_STATUS status;
2914 TALLOC_CTX *frame = talloc_stackframe();
2918 status = libnetapi_getctx(&ctx);
2925 r.in.server_name = server_name;
2926 r.in.function_code = function_code;
2927 r.in.query_level = query_level;
2930 /* Out parameters */
2931 r.out.buffer = buffer;
2933 if (DEBUGLEVEL >= 10) {
2934 NDR_PRINT_IN_DEBUG(I_NetLogonControl2, &r);
2937 if (LIBNETAPI_LOCAL_SERVER(server_name)) {
2938 werr = I_NetLogonControl2_l(ctx, &r);
2940 werr = I_NetLogonControl2_r(ctx, &r);
2943 r.out.result = W_ERROR_V(werr);
2945 if (DEBUGLEVEL >= 10) {
2946 NDR_PRINT_OUT_DEBUG(I_NetLogonControl2, &r);
2950 return (NET_API_STATUS)r.out.result;