LCOV - code coverage report
Current view: top level - source3/lib/netapi - libnetapi.c (source / functions) Hit Total Coverage
Test: coverage report for v4-17-test 1498b464 Lines: 317 1272 24.9 %
Date: 2024-06-13 04:01:37 Functions: 18 56 32.1 %

          Line data    Source code
       1             : /*
       2             :  *  Unix SMB/CIFS implementation.
       3             :  *  NetApi Support
       4             :  *  Copyright (C) Guenther Deschner 2007-2008
       5             :  *
       6             :  *  This program is free software; you can redistribute it and/or modify
       7             :  *  it under the terms of the GNU General Public License as published by
       8             :  *  the Free Software Foundation; either version 3 of the License, or
       9             :  *  (at your option) any later version.
      10             :  *
      11             :  *  This program is distributed in the hope that it will be useful,
      12             :  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
      13             :  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      14             :  *  GNU General Public License for more details.
      15             :  *
      16             :  *  You should have received a copy of the GNU General Public License
      17             :  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
      18             :  */
      19             : 
      20             : #include "includes.h"
      21             : #include "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"
      26             : 
      27             : /****************************************************************
      28             :  NetJoinDomain
      29             : ****************************************************************/
      30             : 
      31           0 : 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] */)
      37             : {
      38             :         struct NetJoinDomain r;
      39           0 :         struct libnetapi_ctx *ctx = NULL;
      40             :         NET_API_STATUS status;
      41             :         WERROR werr;
      42           0 :         TALLOC_CTX *frame = talloc_stackframe();
      43             : 
      44           0 :         ZERO_STRUCT(r);
      45             : 
      46           0 :         status = libnetapi_getctx(&ctx);
      47           0 :         if (status != 0) {
      48           0 :                 TALLOC_FREE(frame);
      49           0 :                 return status;
      50             :         }
      51             : 
      52             :         /* In parameters */
      53           0 :         r.in.server = server;
      54           0 :         r.in.domain = domain;
      55           0 :         r.in.account_ou = account_ou;
      56           0 :         r.in.account = account;
      57           0 :         r.in.password = password;
      58           0 :         r.in.join_flags = join_flags;
      59             : 
      60             :         /* Out parameters */
      61             : 
      62           0 :         if (DEBUGLEVEL >= 10) {
      63           0 :                 NDR_PRINT_IN_DEBUG(NetJoinDomain, &r);
      64             :         }
      65             : 
      66           0 :         if (LIBNETAPI_LOCAL_SERVER(server)) {
      67           0 :                 werr = NetJoinDomain_l(ctx, &r);
      68             :         } else {
      69           0 :                 werr = NetJoinDomain_r(ctx, &r);
      70             :         }
      71             : 
      72           0 :         r.out.result = W_ERROR_V(werr);
      73             : 
      74           0 :         if (DEBUGLEVEL >= 10) {
      75           0 :                 NDR_PRINT_OUT_DEBUG(NetJoinDomain, &r);
      76             :         }
      77             : 
      78           0 :         TALLOC_FREE(frame);
      79           0 :         return (NET_API_STATUS)r.out.result;
      80             : }
      81             : 
      82             : /****************************************************************
      83             :  NetUnjoinDomain
      84             : ****************************************************************/
      85             : 
      86           0 : 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] */)
      90             : {
      91             :         struct NetUnjoinDomain r;
      92           0 :         struct libnetapi_ctx *ctx = NULL;
      93             :         NET_API_STATUS status;
      94             :         WERROR werr;
      95           0 :         TALLOC_CTX *frame = talloc_stackframe();
      96             : 
      97           0 :         ZERO_STRUCT(r);
      98             : 
      99           0 :         status = libnetapi_getctx(&ctx);
     100           0 :         if (status != 0) {
     101           0 :                 TALLOC_FREE(frame);
     102           0 :                 return status;
     103             :         }
     104             : 
     105             :         /* In parameters */
     106           0 :         r.in.server_name = server_name;
     107           0 :         r.in.account = account;
     108           0 :         r.in.password = password;
     109           0 :         r.in.unjoin_flags = unjoin_flags;
     110             : 
     111             :         /* Out parameters */
     112             : 
     113           0 :         if (DEBUGLEVEL >= 10) {
     114           0 :                 NDR_PRINT_IN_DEBUG(NetUnjoinDomain, &r);
     115             :         }
     116             : 
     117           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     118           0 :                 werr = NetUnjoinDomain_l(ctx, &r);
     119             :         } else {
     120           0 :                 werr = NetUnjoinDomain_r(ctx, &r);
     121             :         }
     122             : 
     123           0 :         r.out.result = W_ERROR_V(werr);
     124             : 
     125           0 :         if (DEBUGLEVEL >= 10) {
     126           0 :                 NDR_PRINT_OUT_DEBUG(NetUnjoinDomain, &r);
     127             :         }
     128             : 
     129           0 :         TALLOC_FREE(frame);
     130           0 :         return (NET_API_STATUS)r.out.result;
     131             : }
     132             : 
     133             : /****************************************************************
     134             :  NetGetJoinInformation
     135             : ****************************************************************/
     136             : 
     137           0 : NET_API_STATUS NetGetJoinInformation(const char * server_name /* [in] [unique] */,
     138             :                                      const char * *name_buffer /* [out] [ref] */,
     139             :                                      uint16_t *name_type /* [out] [ref] */)
     140             : {
     141             :         struct NetGetJoinInformation r;
     142           0 :         struct libnetapi_ctx *ctx = NULL;
     143             :         NET_API_STATUS status;
     144             :         WERROR werr;
     145           0 :         TALLOC_CTX *frame = talloc_stackframe();
     146             : 
     147           0 :         ZERO_STRUCT(r);
     148             : 
     149           0 :         status = libnetapi_getctx(&ctx);
     150           0 :         if (status != 0) {
     151           0 :                 TALLOC_FREE(frame);
     152           0 :                 return status;
     153             :         }
     154             : 
     155             :         /* In parameters */
     156           0 :         r.in.server_name = server_name;
     157             : 
     158             :         /* Out parameters */
     159           0 :         r.out.name_buffer = name_buffer;
     160           0 :         r.out.name_type = name_type;
     161             : 
     162           0 :         if (DEBUGLEVEL >= 10) {
     163           0 :                 NDR_PRINT_IN_DEBUG(NetGetJoinInformation, &r);
     164             :         }
     165             : 
     166           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     167           0 :                 werr = NetGetJoinInformation_l(ctx, &r);
     168             :         } else {
     169           0 :                 werr = NetGetJoinInformation_r(ctx, &r);
     170             :         }
     171             : 
     172           0 :         r.out.result = W_ERROR_V(werr);
     173             : 
     174           0 :         if (DEBUGLEVEL >= 10) {
     175           0 :                 NDR_PRINT_OUT_DEBUG(NetGetJoinInformation, &r);
     176             :         }
     177             : 
     178           0 :         TALLOC_FREE(frame);
     179           0 :         return (NET_API_STATUS)r.out.result;
     180             : }
     181             : 
     182             : /****************************************************************
     183             :  NetGetJoinableOUs
     184             : ****************************************************************/
     185             : 
     186           0 : 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] */)
     192             : {
     193             :         struct NetGetJoinableOUs r;
     194           0 :         struct libnetapi_ctx *ctx = NULL;
     195             :         NET_API_STATUS status;
     196             :         WERROR werr;
     197           0 :         TALLOC_CTX *frame = talloc_stackframe();
     198             : 
     199           0 :         ZERO_STRUCT(r);
     200             : 
     201           0 :         status = libnetapi_getctx(&ctx);
     202           0 :         if (status != 0) {
     203           0 :                 TALLOC_FREE(frame);
     204           0 :                 return status;
     205             :         }
     206             : 
     207             :         /* In parameters */
     208           0 :         r.in.server_name = server_name;
     209           0 :         r.in.domain = domain;
     210           0 :         r.in.account = account;
     211           0 :         r.in.password = password;
     212             : 
     213             :         /* Out parameters */
     214           0 :         r.out.ou_count = ou_count;
     215           0 :         r.out.ous = ous;
     216             : 
     217           0 :         if (DEBUGLEVEL >= 10) {
     218           0 :                 NDR_PRINT_IN_DEBUG(NetGetJoinableOUs, &r);
     219             :         }
     220             : 
     221           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     222           0 :                 werr = NetGetJoinableOUs_l(ctx, &r);
     223             :         } else {
     224           0 :                 werr = NetGetJoinableOUs_r(ctx, &r);
     225             :         }
     226             : 
     227           0 :         r.out.result = W_ERROR_V(werr);
     228             : 
     229           0 :         if (DEBUGLEVEL >= 10) {
     230           0 :                 NDR_PRINT_OUT_DEBUG(NetGetJoinableOUs, &r);
     231             :         }
     232             : 
     233           0 :         TALLOC_FREE(frame);
     234           0 :         return (NET_API_STATUS)r.out.result;
     235             : }
     236             : 
     237             : /****************************************************************
     238             :  NetRenameMachineInDomain
     239             : ****************************************************************/
     240             : 
     241           0 : 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] */)
     246             : {
     247             :         struct NetRenameMachineInDomain r;
     248           0 :         struct libnetapi_ctx *ctx = NULL;
     249             :         NET_API_STATUS status;
     250             :         WERROR werr;
     251           0 :         TALLOC_CTX *frame = talloc_stackframe();
     252             : 
     253           0 :         ZERO_STRUCT(r);
     254             : 
     255           0 :         status = libnetapi_getctx(&ctx);
     256           0 :         if (status != 0) {
     257           0 :                 TALLOC_FREE(frame);
     258           0 :                 return status;
     259             :         }
     260             : 
     261             :         /* In parameters */
     262           0 :         r.in.server_name = server_name;
     263           0 :         r.in.new_machine_name = new_machine_name;
     264           0 :         r.in.account = account;
     265           0 :         r.in.password = password;
     266           0 :         r.in.rename_options = rename_options;
     267             : 
     268             :         /* Out parameters */
     269             : 
     270           0 :         if (DEBUGLEVEL >= 10) {
     271           0 :                 NDR_PRINT_IN_DEBUG(NetRenameMachineInDomain, &r);
     272             :         }
     273             : 
     274           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     275           0 :                 werr = NetRenameMachineInDomain_l(ctx, &r);
     276             :         } else {
     277           0 :                 werr = NetRenameMachineInDomain_r(ctx, &r);
     278             :         }
     279             : 
     280           0 :         r.out.result = W_ERROR_V(werr);
     281             : 
     282           0 :         if (DEBUGLEVEL >= 10) {
     283           0 :                 NDR_PRINT_OUT_DEBUG(NetRenameMachineInDomain, &r);
     284             :         }
     285             : 
     286           0 :         TALLOC_FREE(frame);
     287           0 :         return (NET_API_STATUS)r.out.result;
     288             : }
     289             : 
     290             : /****************************************************************
     291             :  NetProvisionComputerAccount
     292             : ****************************************************************/
     293             : 
     294           0 : 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] */)
     302             : {
     303             :         struct NetProvisionComputerAccount r;
     304           0 :         struct libnetapi_ctx *ctx = NULL;
     305             :         NET_API_STATUS status;
     306             :         WERROR werr;
     307           0 :         TALLOC_CTX *frame = talloc_stackframe();
     308             : 
     309           0 :         ZERO_STRUCT(r);
     310             : 
     311           0 :         status = libnetapi_getctx(&ctx);
     312           0 :         if (status != 0) {
     313           0 :                 TALLOC_FREE(frame);
     314           0 :                 return status;
     315             :         }
     316             : 
     317             :         /* In parameters */
     318           0 :         r.in.domain = domain;
     319           0 :         r.in.machine_name = machine_name;
     320           0 :         r.in.machine_account_ou = machine_account_ou;
     321           0 :         r.in.dcname = dcname;
     322           0 :         r.in.options = options;
     323           0 :         r.in.provision_bin_data = provision_bin_data;
     324           0 :         r.in.provision_bin_data_size = provision_bin_data_size;
     325           0 :         r.in.provision_text_data = provision_text_data;
     326             : 
     327             :         /* Out parameters */
     328           0 :         r.out.provision_bin_data = provision_bin_data;
     329           0 :         r.out.provision_bin_data_size = provision_bin_data_size;
     330           0 :         r.out.provision_text_data = provision_text_data;
     331             : 
     332           0 :         if (DEBUGLEVEL >= 10) {
     333           0 :                 NDR_PRINT_IN_DEBUG(NetProvisionComputerAccount, &r);
     334             :         }
     335             : 
     336           0 :         werr = NetProvisionComputerAccount_l(ctx, &r);
     337             : 
     338           0 :         r.out.result = W_ERROR_V(werr);
     339             : 
     340           0 :         if (DEBUGLEVEL >= 10) {
     341           0 :                 NDR_PRINT_OUT_DEBUG(NetProvisionComputerAccount, &r);
     342             :         }
     343             : 
     344           0 :         TALLOC_FREE(frame);
     345           0 :         return (NET_API_STATUS)r.out.result;
     346             : }
     347             : 
     348             : /****************************************************************
     349             :  NetRequestOfflineDomainJoin
     350             : ****************************************************************/
     351             : 
     352           0 : 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] */)
     356             : {
     357             :         struct NetRequestOfflineDomainJoin r;
     358           0 :         struct libnetapi_ctx *ctx = NULL;
     359             :         NET_API_STATUS status;
     360             :         WERROR werr;
     361           0 :         TALLOC_CTX *frame = talloc_stackframe();
     362             : 
     363           0 :         ZERO_STRUCT(r);
     364             : 
     365           0 :         status = libnetapi_getctx(&ctx);
     366           0 :         if (status != 0) {
     367           0 :                 TALLOC_FREE(frame);
     368           0 :                 return status;
     369             :         }
     370             : 
     371             :         /* In parameters */
     372           0 :         r.in.provision_bin_data = provision_bin_data;
     373           0 :         r.in.provision_bin_data_size = provision_bin_data_size;
     374           0 :         r.in.options = options;
     375           0 :         r.in.windows_path = windows_path;
     376             : 
     377             :         /* Out parameters */
     378             : 
     379           0 :         if (DEBUGLEVEL >= 10) {
     380           0 :                 NDR_PRINT_IN_DEBUG(NetRequestOfflineDomainJoin, &r);
     381             :         }
     382             : 
     383           0 :         werr = NetRequestOfflineDomainJoin_l(ctx, &r);
     384             : 
     385           0 :         r.out.result = W_ERROR_V(werr);
     386             : 
     387           0 :         if (DEBUGLEVEL >= 10) {
     388           0 :                 NDR_PRINT_OUT_DEBUG(NetRequestOfflineDomainJoin, &r);
     389             :         }
     390             : 
     391           0 :         TALLOC_FREE(frame);
     392           0 :         return (NET_API_STATUS)r.out.result;
     393             : }
     394             : 
     395             : /****************************************************************
     396             :  NetServerGetInfo
     397             : ****************************************************************/
     398             : 
     399           0 : NET_API_STATUS NetServerGetInfo(const char * server_name /* [in] [unique] */,
     400             :                                 uint32_t level /* [in] */,
     401             :                                 uint8_t **buffer /* [out] [ref] */)
     402             : {
     403             :         struct NetServerGetInfo r;
     404           0 :         struct libnetapi_ctx *ctx = NULL;
     405             :         NET_API_STATUS status;
     406             :         WERROR werr;
     407           0 :         TALLOC_CTX *frame = talloc_stackframe();
     408             : 
     409           0 :         ZERO_STRUCT(r);
     410             : 
     411           0 :         status = libnetapi_getctx(&ctx);
     412           0 :         if (status != 0) {
     413           0 :                 TALLOC_FREE(frame);
     414           0 :                 return status;
     415             :         }
     416             : 
     417             :         /* In parameters */
     418           0 :         r.in.server_name = server_name;
     419           0 :         r.in.level = level;
     420             : 
     421             :         /* Out parameters */
     422           0 :         r.out.buffer = buffer;
     423             : 
     424           0 :         if (DEBUGLEVEL >= 10) {
     425           0 :                 NDR_PRINT_IN_DEBUG(NetServerGetInfo, &r);
     426             :         }
     427             : 
     428           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     429           0 :                 werr = NetServerGetInfo_l(ctx, &r);
     430             :         } else {
     431           0 :                 werr = NetServerGetInfo_r(ctx, &r);
     432             :         }
     433             : 
     434           0 :         r.out.result = W_ERROR_V(werr);
     435             : 
     436           0 :         if (DEBUGLEVEL >= 10) {
     437           0 :                 NDR_PRINT_OUT_DEBUG(NetServerGetInfo, &r);
     438             :         }
     439             : 
     440           0 :         TALLOC_FREE(frame);
     441           0 :         return (NET_API_STATUS)r.out.result;
     442             : }
     443             : 
     444             : /****************************************************************
     445             :  NetServerSetInfo
     446             : ****************************************************************/
     447             : 
     448           0 : 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] */)
     452             : {
     453             :         struct NetServerSetInfo r;
     454           0 :         struct libnetapi_ctx *ctx = NULL;
     455             :         NET_API_STATUS status;
     456             :         WERROR werr;
     457           0 :         TALLOC_CTX *frame = talloc_stackframe();
     458             : 
     459           0 :         ZERO_STRUCT(r);
     460             : 
     461           0 :         status = libnetapi_getctx(&ctx);
     462           0 :         if (status != 0) {
     463           0 :                 TALLOC_FREE(frame);
     464           0 :                 return status;
     465             :         }
     466             : 
     467             :         /* In parameters */
     468           0 :         r.in.server_name = server_name;
     469           0 :         r.in.level = level;
     470           0 :         r.in.buffer = buffer;
     471             : 
     472             :         /* Out parameters */
     473           0 :         r.out.parm_error = parm_error;
     474             : 
     475           0 :         if (DEBUGLEVEL >= 10) {
     476           0 :                 NDR_PRINT_IN_DEBUG(NetServerSetInfo, &r);
     477             :         }
     478             : 
     479           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     480           0 :                 werr = NetServerSetInfo_l(ctx, &r);
     481             :         } else {
     482           0 :                 werr = NetServerSetInfo_r(ctx, &r);
     483             :         }
     484             : 
     485           0 :         r.out.result = W_ERROR_V(werr);
     486             : 
     487           0 :         if (DEBUGLEVEL >= 10) {
     488           0 :                 NDR_PRINT_OUT_DEBUG(NetServerSetInfo, &r);
     489             :         }
     490             : 
     491           0 :         TALLOC_FREE(frame);
     492           0 :         return (NET_API_STATUS)r.out.result;
     493             : }
     494             : 
     495             : /****************************************************************
     496             :  NetWkstaGetInfo
     497             : ****************************************************************/
     498             : 
     499           0 : NET_API_STATUS NetWkstaGetInfo(const char * server_name /* [in] [unique] */,
     500             :                                uint32_t level /* [in] */,
     501             :                                uint8_t **buffer /* [out] [ref] */)
     502             : {
     503             :         struct NetWkstaGetInfo r;
     504           0 :         struct libnetapi_ctx *ctx = NULL;
     505             :         NET_API_STATUS status;
     506             :         WERROR werr;
     507           0 :         TALLOC_CTX *frame = talloc_stackframe();
     508             : 
     509           0 :         ZERO_STRUCT(r);
     510             : 
     511           0 :         status = libnetapi_getctx(&ctx);
     512           0 :         if (status != 0) {
     513           0 :                 TALLOC_FREE(frame);
     514           0 :                 return status;
     515             :         }
     516             : 
     517             :         /* In parameters */
     518           0 :         r.in.server_name = server_name;
     519           0 :         r.in.level = level;
     520             : 
     521             :         /* Out parameters */
     522           0 :         r.out.buffer = buffer;
     523             : 
     524           0 :         if (DEBUGLEVEL >= 10) {
     525           0 :                 NDR_PRINT_IN_DEBUG(NetWkstaGetInfo, &r);
     526             :         }
     527             : 
     528           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     529           0 :                 werr = NetWkstaGetInfo_l(ctx, &r);
     530             :         } else {
     531           0 :                 werr = NetWkstaGetInfo_r(ctx, &r);
     532             :         }
     533             : 
     534           0 :         r.out.result = W_ERROR_V(werr);
     535             : 
     536           0 :         if (DEBUGLEVEL >= 10) {
     537           0 :                 NDR_PRINT_OUT_DEBUG(NetWkstaGetInfo, &r);
     538             :         }
     539             : 
     540           0 :         TALLOC_FREE(frame);
     541           0 :         return (NET_API_STATUS)r.out.result;
     542             : }
     543             : 
     544             : /****************************************************************
     545             :  NetGetDCName
     546             : ****************************************************************/
     547             : 
     548           0 : NET_API_STATUS NetGetDCName(const char * server_name /* [in] [unique] */,
     549             :                             const char * domain_name /* [in] [unique] */,
     550             :                             uint8_t **buffer /* [out] [ref] */)
     551             : {
     552             :         struct NetGetDCName r;
     553           0 :         struct libnetapi_ctx *ctx = NULL;
     554             :         NET_API_STATUS status;
     555             :         WERROR werr;
     556           0 :         TALLOC_CTX *frame = talloc_stackframe();
     557             : 
     558           0 :         ZERO_STRUCT(r);
     559             : 
     560           0 :         status = libnetapi_getctx(&ctx);
     561           0 :         if (status != 0) {
     562           0 :                 TALLOC_FREE(frame);
     563           0 :                 return status;
     564             :         }
     565             : 
     566             :         /* In parameters */
     567           0 :         r.in.server_name = server_name;
     568           0 :         r.in.domain_name = domain_name;
     569             : 
     570             :         /* Out parameters */
     571           0 :         r.out.buffer = buffer;
     572             : 
     573           0 :         if (DEBUGLEVEL >= 10) {
     574           0 :                 NDR_PRINT_IN_DEBUG(NetGetDCName, &r);
     575             :         }
     576             : 
     577           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     578           0 :                 werr = NetGetDCName_l(ctx, &r);
     579             :         } else {
     580           0 :                 werr = NetGetDCName_r(ctx, &r);
     581             :         }
     582             : 
     583           0 :         r.out.result = W_ERROR_V(werr);
     584             : 
     585           0 :         if (DEBUGLEVEL >= 10) {
     586           0 :                 NDR_PRINT_OUT_DEBUG(NetGetDCName, &r);
     587             :         }
     588             : 
     589           0 :         TALLOC_FREE(frame);
     590           0 :         return (NET_API_STATUS)r.out.result;
     591             : }
     592             : 
     593             : /****************************************************************
     594             :  NetGetAnyDCName
     595             : ****************************************************************/
     596             : 
     597           0 : NET_API_STATUS NetGetAnyDCName(const char * server_name /* [in] [unique] */,
     598             :                                const char * domain_name /* [in] [unique] */,
     599             :                                uint8_t **buffer /* [out] [ref] */)
     600             : {
     601             :         struct NetGetAnyDCName r;
     602           0 :         struct libnetapi_ctx *ctx = NULL;
     603             :         NET_API_STATUS status;
     604             :         WERROR werr;
     605           0 :         TALLOC_CTX *frame = talloc_stackframe();
     606             : 
     607           0 :         ZERO_STRUCT(r);
     608             : 
     609           0 :         status = libnetapi_getctx(&ctx);
     610           0 :         if (status != 0) {
     611           0 :                 TALLOC_FREE(frame);
     612           0 :                 return status;
     613             :         }
     614             : 
     615             :         /* In parameters */
     616           0 :         r.in.server_name = server_name;
     617           0 :         r.in.domain_name = domain_name;
     618             : 
     619             :         /* Out parameters */
     620           0 :         r.out.buffer = buffer;
     621             : 
     622           0 :         if (DEBUGLEVEL >= 10) {
     623           0 :                 NDR_PRINT_IN_DEBUG(NetGetAnyDCName, &r);
     624             :         }
     625             : 
     626           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     627           0 :                 werr = NetGetAnyDCName_l(ctx, &r);
     628             :         } else {
     629           0 :                 werr = NetGetAnyDCName_r(ctx, &r);
     630             :         }
     631             : 
     632           0 :         r.out.result = W_ERROR_V(werr);
     633             : 
     634           0 :         if (DEBUGLEVEL >= 10) {
     635           0 :                 NDR_PRINT_OUT_DEBUG(NetGetAnyDCName, &r);
     636             :         }
     637             : 
     638           0 :         TALLOC_FREE(frame);
     639           0 :         return (NET_API_STATUS)r.out.result;
     640             : }
     641             : 
     642             : /****************************************************************
     643             :  DsGetDcName
     644             : ****************************************************************/
     645             : 
     646           0 : 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] */)
     652             : {
     653             :         struct DsGetDcName r;
     654           0 :         struct libnetapi_ctx *ctx = NULL;
     655             :         NET_API_STATUS status;
     656             :         WERROR werr;
     657           0 :         TALLOC_CTX *frame = talloc_stackframe();
     658             : 
     659           0 :         ZERO_STRUCT(r);
     660             : 
     661           0 :         status = libnetapi_getctx(&ctx);
     662           0 :         if (status != 0) {
     663           0 :                 TALLOC_FREE(frame);
     664           0 :                 return status;
     665             :         }
     666             : 
     667             :         /* In parameters */
     668           0 :         r.in.server_name = server_name;
     669           0 :         r.in.domain_name = domain_name;
     670           0 :         r.in.domain_guid = domain_guid;
     671           0 :         r.in.site_name = site_name;
     672           0 :         r.in.flags = flags;
     673             : 
     674             :         /* Out parameters */
     675           0 :         r.out.dc_info = dc_info;
     676             : 
     677           0 :         if (DEBUGLEVEL >= 10) {
     678           0 :                 NDR_PRINT_IN_DEBUG(DsGetDcName, &r);
     679             :         }
     680             : 
     681           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     682           0 :                 werr = DsGetDcName_l(ctx, &r);
     683             :         } else {
     684           0 :                 werr = DsGetDcName_r(ctx, &r);
     685             :         }
     686             : 
     687           0 :         r.out.result = W_ERROR_V(werr);
     688             : 
     689           0 :         if (DEBUGLEVEL >= 10) {
     690           0 :                 NDR_PRINT_OUT_DEBUG(DsGetDcName, &r);
     691             :         }
     692             : 
     693           0 :         TALLOC_FREE(frame);
     694           0 :         return (NET_API_STATUS)r.out.result;
     695             : }
     696             : 
     697             : /****************************************************************
     698             :  NetUserAdd
     699             : ****************************************************************/
     700             : 
     701           4 : 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] */)
     705             : {
     706             :         struct NetUserAdd r;
     707           4 :         struct libnetapi_ctx *ctx = NULL;
     708             :         NET_API_STATUS status;
     709             :         WERROR werr;
     710           4 :         TALLOC_CTX *frame = talloc_stackframe();
     711             : 
     712           4 :         ZERO_STRUCT(r);
     713             : 
     714           4 :         status = libnetapi_getctx(&ctx);
     715           4 :         if (status != 0) {
     716           0 :                 TALLOC_FREE(frame);
     717           0 :                 return status;
     718             :         }
     719             : 
     720             :         /* In parameters */
     721           4 :         r.in.server_name = server_name;
     722           4 :         r.in.level = level;
     723           4 :         r.in.buffer = buffer;
     724             : 
     725             :         /* Out parameters */
     726           4 :         r.out.parm_error = parm_error;
     727             : 
     728           4 :         if (DEBUGLEVEL >= 10) {
     729           0 :                 NDR_PRINT_IN_DEBUG(NetUserAdd, &r);
     730             :         }
     731             : 
     732           4 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     733           0 :                 werr = NetUserAdd_l(ctx, &r);
     734             :         } else {
     735           4 :                 werr = NetUserAdd_r(ctx, &r);
     736             :         }
     737             : 
     738           4 :         r.out.result = W_ERROR_V(werr);
     739             : 
     740           4 :         if (DEBUGLEVEL >= 10) {
     741           0 :                 NDR_PRINT_OUT_DEBUG(NetUserAdd, &r);
     742             :         }
     743             : 
     744           4 :         TALLOC_FREE(frame);
     745           4 :         return (NET_API_STATUS)r.out.result;
     746             : }
     747             : 
     748             : /****************************************************************
     749             :  NetUserDel
     750             : ****************************************************************/
     751             : 
     752           9 : NET_API_STATUS NetUserDel(const char * server_name /* [in] [unique] */,
     753             :                           const char * user_name /* [in] [ref] */)
     754             : {
     755             :         struct NetUserDel r;
     756           9 :         struct libnetapi_ctx *ctx = NULL;
     757             :         NET_API_STATUS status;
     758             :         WERROR werr;
     759           9 :         TALLOC_CTX *frame = talloc_stackframe();
     760             : 
     761           9 :         ZERO_STRUCT(r);
     762             : 
     763           9 :         status = libnetapi_getctx(&ctx);
     764           9 :         if (status != 0) {
     765           0 :                 TALLOC_FREE(frame);
     766           0 :                 return status;
     767             :         }
     768             : 
     769             :         /* In parameters */
     770           9 :         r.in.server_name = server_name;
     771           9 :         r.in.user_name = user_name;
     772             : 
     773             :         /* Out parameters */
     774             : 
     775           9 :         if (DEBUGLEVEL >= 10) {
     776           0 :                 NDR_PRINT_IN_DEBUG(NetUserDel, &r);
     777             :         }
     778             : 
     779           9 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     780           0 :                 werr = NetUserDel_l(ctx, &r);
     781             :         } else {
     782           9 :                 werr = NetUserDel_r(ctx, &r);
     783             :         }
     784             : 
     785           9 :         r.out.result = W_ERROR_V(werr);
     786             : 
     787           9 :         if (DEBUGLEVEL >= 10) {
     788           0 :                 NDR_PRINT_OUT_DEBUG(NetUserDel, &r);
     789             :         }
     790             : 
     791           9 :         TALLOC_FREE(frame);
     792           9 :         return (NET_API_STATUS)r.out.result;
     793             : }
     794             : 
     795             : /****************************************************************
     796             :  NetUserEnum
     797             : ****************************************************************/
     798             : 
     799           9 : 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] */)
     807             : {
     808             :         struct NetUserEnum r;
     809           9 :         struct libnetapi_ctx *ctx = NULL;
     810             :         NET_API_STATUS status;
     811             :         WERROR werr;
     812           9 :         TALLOC_CTX *frame = talloc_stackframe();
     813             : 
     814           9 :         ZERO_STRUCT(r);
     815             : 
     816           9 :         status = libnetapi_getctx(&ctx);
     817           9 :         if (status != 0) {
     818           0 :                 TALLOC_FREE(frame);
     819           0 :                 return status;
     820             :         }
     821             : 
     822             :         /* In parameters */
     823           9 :         r.in.server_name = server_name;
     824           9 :         r.in.level = level;
     825           9 :         r.in.filter = filter;
     826           9 :         r.in.prefmaxlen = prefmaxlen;
     827           9 :         r.in.resume_handle = resume_handle;
     828             : 
     829             :         /* Out parameters */
     830           9 :         r.out.buffer = buffer;
     831           9 :         r.out.entries_read = entries_read;
     832           9 :         r.out.total_entries = total_entries;
     833           9 :         r.out.resume_handle = resume_handle;
     834             : 
     835           9 :         if (DEBUGLEVEL >= 10) {
     836           0 :                 NDR_PRINT_IN_DEBUG(NetUserEnum, &r);
     837             :         }
     838             : 
     839           9 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     840           0 :                 werr = NetUserEnum_l(ctx, &r);
     841             :         } else {
     842           9 :                 werr = NetUserEnum_r(ctx, &r);
     843             :         }
     844             : 
     845           9 :         r.out.result = W_ERROR_V(werr);
     846             : 
     847           9 :         if (DEBUGLEVEL >= 10) {
     848           0 :                 NDR_PRINT_OUT_DEBUG(NetUserEnum, &r);
     849             :         }
     850             : 
     851           9 :         TALLOC_FREE(frame);
     852           9 :         return (NET_API_STATUS)r.out.result;
     853             : }
     854             : 
     855             : /****************************************************************
     856             :  NetUserChangePassword
     857             : ****************************************************************/
     858             : 
     859           0 : 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] */)
     863             : {
     864             :         struct NetUserChangePassword r;
     865           0 :         struct libnetapi_ctx *ctx = NULL;
     866             :         NET_API_STATUS status;
     867             :         WERROR werr;
     868           0 :         TALLOC_CTX *frame = talloc_stackframe();
     869             : 
     870           0 :         ZERO_STRUCT(r);
     871             : 
     872           0 :         status = libnetapi_getctx(&ctx);
     873           0 :         if (status != 0) {
     874           0 :                 TALLOC_FREE(frame);
     875           0 :                 return status;
     876             :         }
     877             : 
     878             :         /* In parameters */
     879           0 :         r.in.domain_name = domain_name;
     880           0 :         r.in.user_name = user_name;
     881           0 :         r.in.old_password = old_password;
     882           0 :         r.in.new_password = new_password;
     883             : 
     884             :         /* Out parameters */
     885             : 
     886           0 :         if (DEBUGLEVEL >= 10) {
     887           0 :                 NDR_PRINT_IN_DEBUG(NetUserChangePassword, &r);
     888             :         }
     889             : 
     890           0 :         werr = NetUserChangePassword_l(ctx, &r);
     891             : 
     892           0 :         r.out.result = W_ERROR_V(werr);
     893             : 
     894           0 :         if (DEBUGLEVEL >= 10) {
     895           0 :                 NDR_PRINT_OUT_DEBUG(NetUserChangePassword, &r);
     896             :         }
     897             : 
     898           0 :         TALLOC_FREE(frame);
     899           0 :         return (NET_API_STATUS)r.out.result;
     900             : }
     901             : 
     902             : /****************************************************************
     903             :  NetUserGetInfo
     904             : ****************************************************************/
     905             : 
     906          19 : 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] */)
     910             : {
     911             :         struct NetUserGetInfo r;
     912          19 :         struct libnetapi_ctx *ctx = NULL;
     913             :         NET_API_STATUS status;
     914             :         WERROR werr;
     915          19 :         TALLOC_CTX *frame = talloc_stackframe();
     916             : 
     917          19 :         ZERO_STRUCT(r);
     918             : 
     919          19 :         status = libnetapi_getctx(&ctx);
     920          19 :         if (status != 0) {
     921           0 :                 TALLOC_FREE(frame);
     922           0 :                 return status;
     923             :         }
     924             : 
     925             :         /* In parameters */
     926          19 :         r.in.server_name = server_name;
     927          19 :         r.in.user_name = user_name;
     928          19 :         r.in.level = level;
     929             : 
     930             :         /* Out parameters */
     931          19 :         r.out.buffer = buffer;
     932             : 
     933          19 :         if (DEBUGLEVEL >= 10) {
     934           0 :                 NDR_PRINT_IN_DEBUG(NetUserGetInfo, &r);
     935             :         }
     936             : 
     937          19 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     938           0 :                 werr = NetUserGetInfo_l(ctx, &r);
     939             :         } else {
     940          19 :                 werr = NetUserGetInfo_r(ctx, &r);
     941             :         }
     942             : 
     943          19 :         r.out.result = W_ERROR_V(werr);
     944             : 
     945          19 :         if (DEBUGLEVEL >= 10) {
     946           0 :                 NDR_PRINT_OUT_DEBUG(NetUserGetInfo, &r);
     947             :         }
     948             : 
     949          19 :         TALLOC_FREE(frame);
     950          19 :         return (NET_API_STATUS)r.out.result;
     951             : }
     952             : 
     953             : /****************************************************************
     954             :  NetUserSetInfo
     955             : ****************************************************************/
     956             : 
     957           2 : 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] */)
     962             : {
     963             :         struct NetUserSetInfo r;
     964           2 :         struct libnetapi_ctx *ctx = NULL;
     965             :         NET_API_STATUS status;
     966             :         WERROR werr;
     967           2 :         TALLOC_CTX *frame = talloc_stackframe();
     968             : 
     969           2 :         ZERO_STRUCT(r);
     970             : 
     971           2 :         status = libnetapi_getctx(&ctx);
     972           2 :         if (status != 0) {
     973           0 :                 TALLOC_FREE(frame);
     974           0 :                 return status;
     975             :         }
     976             : 
     977             :         /* In parameters */
     978           2 :         r.in.server_name = server_name;
     979           2 :         r.in.user_name = user_name;
     980           2 :         r.in.level = level;
     981           2 :         r.in.buffer = buffer;
     982             : 
     983             :         /* Out parameters */
     984           2 :         r.out.parm_err = parm_err;
     985             : 
     986           2 :         if (DEBUGLEVEL >= 10) {
     987           0 :                 NDR_PRINT_IN_DEBUG(NetUserSetInfo, &r);
     988             :         }
     989             : 
     990           2 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
     991           0 :                 werr = NetUserSetInfo_l(ctx, &r);
     992             :         } else {
     993           2 :                 werr = NetUserSetInfo_r(ctx, &r);
     994             :         }
     995             : 
     996           2 :         r.out.result = W_ERROR_V(werr);
     997             : 
     998           2 :         if (DEBUGLEVEL >= 10) {
     999           0 :                 NDR_PRINT_OUT_DEBUG(NetUserSetInfo, &r);
    1000             :         }
    1001             : 
    1002           2 :         TALLOC_FREE(frame);
    1003           2 :         return (NET_API_STATUS)r.out.result;
    1004             : }
    1005             : 
    1006             : /****************************************************************
    1007             :  NetUserGetGroups
    1008             : ****************************************************************/
    1009             : 
    1010           2 : 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] */)
    1017             : {
    1018             :         struct NetUserGetGroups r;
    1019           2 :         struct libnetapi_ctx *ctx = NULL;
    1020             :         NET_API_STATUS status;
    1021             :         WERROR werr;
    1022           2 :         TALLOC_CTX *frame = talloc_stackframe();
    1023             : 
    1024           2 :         ZERO_STRUCT(r);
    1025             : 
    1026           2 :         status = libnetapi_getctx(&ctx);
    1027           2 :         if (status != 0) {
    1028           0 :                 TALLOC_FREE(frame);
    1029           0 :                 return status;
    1030             :         }
    1031             : 
    1032             :         /* In parameters */
    1033           2 :         r.in.server_name = server_name;
    1034           2 :         r.in.user_name = user_name;
    1035           2 :         r.in.level = level;
    1036           2 :         r.in.prefmaxlen = prefmaxlen;
    1037             : 
    1038             :         /* Out parameters */
    1039           2 :         r.out.buffer = buffer;
    1040           2 :         r.out.entries_read = entries_read;
    1041           2 :         r.out.total_entries = total_entries;
    1042             : 
    1043           2 :         if (DEBUGLEVEL >= 10) {
    1044           0 :                 NDR_PRINT_IN_DEBUG(NetUserGetGroups, &r);
    1045             :         }
    1046             : 
    1047           2 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1048           0 :                 werr = NetUserGetGroups_l(ctx, &r);
    1049             :         } else {
    1050           2 :                 werr = NetUserGetGroups_r(ctx, &r);
    1051             :         }
    1052             : 
    1053           2 :         r.out.result = W_ERROR_V(werr);
    1054             : 
    1055           2 :         if (DEBUGLEVEL >= 10) {
    1056           0 :                 NDR_PRINT_OUT_DEBUG(NetUserGetGroups, &r);
    1057             :         }
    1058             : 
    1059           2 :         TALLOC_FREE(frame);
    1060           2 :         return (NET_API_STATUS)r.out.result;
    1061             : }
    1062             : 
    1063             : /****************************************************************
    1064             :  NetUserSetGroups
    1065             : ****************************************************************/
    1066             : 
    1067           0 : 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] */)
    1072             : {
    1073             :         struct NetUserSetGroups r;
    1074           0 :         struct libnetapi_ctx *ctx = NULL;
    1075             :         NET_API_STATUS status;
    1076             :         WERROR werr;
    1077           0 :         TALLOC_CTX *frame = talloc_stackframe();
    1078             : 
    1079           0 :         ZERO_STRUCT(r);
    1080             : 
    1081           0 :         status = libnetapi_getctx(&ctx);
    1082           0 :         if (status != 0) {
    1083           0 :                 TALLOC_FREE(frame);
    1084           0 :                 return status;
    1085             :         }
    1086             : 
    1087             :         /* In parameters */
    1088           0 :         r.in.server_name = server_name;
    1089           0 :         r.in.user_name = user_name;
    1090           0 :         r.in.level = level;
    1091           0 :         r.in.buffer = buffer;
    1092           0 :         r.in.num_entries = num_entries;
    1093             : 
    1094             :         /* Out parameters */
    1095             : 
    1096           0 :         if (DEBUGLEVEL >= 10) {
    1097           0 :                 NDR_PRINT_IN_DEBUG(NetUserSetGroups, &r);
    1098             :         }
    1099             : 
    1100           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1101           0 :                 werr = NetUserSetGroups_l(ctx, &r);
    1102             :         } else {
    1103           0 :                 werr = NetUserSetGroups_r(ctx, &r);
    1104             :         }
    1105             : 
    1106           0 :         r.out.result = W_ERROR_V(werr);
    1107             : 
    1108           0 :         if (DEBUGLEVEL >= 10) {
    1109           0 :                 NDR_PRINT_OUT_DEBUG(NetUserSetGroups, &r);
    1110             :         }
    1111             : 
    1112           0 :         TALLOC_FREE(frame);
    1113           0 :         return (NET_API_STATUS)r.out.result;
    1114             : }
    1115             : 
    1116             : /****************************************************************
    1117             :  NetUserGetLocalGroups
    1118             : ****************************************************************/
    1119             : 
    1120           0 : 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] */)
    1128             : {
    1129             :         struct NetUserGetLocalGroups r;
    1130           0 :         struct libnetapi_ctx *ctx = NULL;
    1131             :         NET_API_STATUS status;
    1132             :         WERROR werr;
    1133           0 :         TALLOC_CTX *frame = talloc_stackframe();
    1134             : 
    1135           0 :         ZERO_STRUCT(r);
    1136             : 
    1137           0 :         status = libnetapi_getctx(&ctx);
    1138           0 :         if (status != 0) {
    1139           0 :                 TALLOC_FREE(frame);
    1140           0 :                 return status;
    1141             :         }
    1142             : 
    1143             :         /* In parameters */
    1144           0 :         r.in.server_name = server_name;
    1145           0 :         r.in.user_name = user_name;
    1146           0 :         r.in.level = level;
    1147           0 :         r.in.flags = flags;
    1148           0 :         r.in.prefmaxlen = prefmaxlen;
    1149             : 
    1150             :         /* Out parameters */
    1151           0 :         r.out.buffer = buffer;
    1152           0 :         r.out.entries_read = entries_read;
    1153           0 :         r.out.total_entries = total_entries;
    1154             : 
    1155           0 :         if (DEBUGLEVEL >= 10) {
    1156           0 :                 NDR_PRINT_IN_DEBUG(NetUserGetLocalGroups, &r);
    1157             :         }
    1158             : 
    1159           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1160           0 :                 werr = NetUserGetLocalGroups_l(ctx, &r);
    1161             :         } else {
    1162           0 :                 werr = NetUserGetLocalGroups_r(ctx, &r);
    1163             :         }
    1164             : 
    1165           0 :         r.out.result = W_ERROR_V(werr);
    1166             : 
    1167           0 :         if (DEBUGLEVEL >= 10) {
    1168           0 :                 NDR_PRINT_OUT_DEBUG(NetUserGetLocalGroups, &r);
    1169             :         }
    1170             : 
    1171           0 :         TALLOC_FREE(frame);
    1172           0 :         return (NET_API_STATUS)r.out.result;
    1173             : }
    1174             : 
    1175             : /****************************************************************
    1176             :  NetUserModalsGet
    1177             : ****************************************************************/
    1178             : 
    1179           6 : NET_API_STATUS NetUserModalsGet(const char * server_name /* [in] */,
    1180             :                                 uint32_t level /* [in] */,
    1181             :                                 uint8_t **buffer /* [out] [ref] */)
    1182             : {
    1183             :         struct NetUserModalsGet r;
    1184           6 :         struct libnetapi_ctx *ctx = NULL;
    1185             :         NET_API_STATUS status;
    1186             :         WERROR werr;
    1187           6 :         TALLOC_CTX *frame = talloc_stackframe();
    1188             : 
    1189           6 :         ZERO_STRUCT(r);
    1190             : 
    1191           6 :         status = libnetapi_getctx(&ctx);
    1192           6 :         if (status != 0) {
    1193           0 :                 TALLOC_FREE(frame);
    1194           0 :                 return status;
    1195             :         }
    1196             : 
    1197             :         /* In parameters */
    1198           6 :         r.in.server_name = server_name;
    1199           6 :         r.in.level = level;
    1200             : 
    1201             :         /* Out parameters */
    1202           6 :         r.out.buffer = buffer;
    1203             : 
    1204           6 :         if (DEBUGLEVEL >= 10) {
    1205           0 :                 NDR_PRINT_IN_DEBUG(NetUserModalsGet, &r);
    1206             :         }
    1207             : 
    1208           6 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1209           0 :                 werr = NetUserModalsGet_l(ctx, &r);
    1210             :         } else {
    1211           6 :                 werr = NetUserModalsGet_r(ctx, &r);
    1212             :         }
    1213             : 
    1214           6 :         r.out.result = W_ERROR_V(werr);
    1215             : 
    1216           6 :         if (DEBUGLEVEL >= 10) {
    1217           0 :                 NDR_PRINT_OUT_DEBUG(NetUserModalsGet, &r);
    1218             :         }
    1219             : 
    1220           6 :         TALLOC_FREE(frame);
    1221           6 :         return (NET_API_STATUS)r.out.result;
    1222             : }
    1223             : 
    1224             : /****************************************************************
    1225             :  NetUserModalsSet
    1226             : ****************************************************************/
    1227             : 
    1228           1 : 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] */)
    1232             : {
    1233             :         struct NetUserModalsSet r;
    1234           1 :         struct libnetapi_ctx *ctx = NULL;
    1235             :         NET_API_STATUS status;
    1236             :         WERROR werr;
    1237           1 :         TALLOC_CTX *frame = talloc_stackframe();
    1238             : 
    1239           1 :         ZERO_STRUCT(r);
    1240             : 
    1241           1 :         status = libnetapi_getctx(&ctx);
    1242           1 :         if (status != 0) {
    1243           0 :                 TALLOC_FREE(frame);
    1244           0 :                 return status;
    1245             :         }
    1246             : 
    1247             :         /* In parameters */
    1248           1 :         r.in.server_name = server_name;
    1249           1 :         r.in.level = level;
    1250           1 :         r.in.buffer = buffer;
    1251             : 
    1252             :         /* Out parameters */
    1253           1 :         r.out.parm_err = parm_err;
    1254             : 
    1255           1 :         if (DEBUGLEVEL >= 10) {
    1256           0 :                 NDR_PRINT_IN_DEBUG(NetUserModalsSet, &r);
    1257             :         }
    1258             : 
    1259           1 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1260           0 :                 werr = NetUserModalsSet_l(ctx, &r);
    1261             :         } else {
    1262           1 :                 werr = NetUserModalsSet_r(ctx, &r);
    1263             :         }
    1264             : 
    1265           1 :         r.out.result = W_ERROR_V(werr);
    1266             : 
    1267           1 :         if (DEBUGLEVEL >= 10) {
    1268           0 :                 NDR_PRINT_OUT_DEBUG(NetUserModalsSet, &r);
    1269             :         }
    1270             : 
    1271           1 :         TALLOC_FREE(frame);
    1272           1 :         return (NET_API_STATUS)r.out.result;
    1273             : }
    1274             : 
    1275             : /****************************************************************
    1276             :  NetQueryDisplayInformation
    1277             : ****************************************************************/
    1278             : 
    1279           0 : 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] */)
    1286             : {
    1287             :         struct NetQueryDisplayInformation r;
    1288           0 :         struct libnetapi_ctx *ctx = NULL;
    1289             :         NET_API_STATUS status;
    1290             :         WERROR werr;
    1291           0 :         TALLOC_CTX *frame = talloc_stackframe();
    1292             : 
    1293           0 :         ZERO_STRUCT(r);
    1294             : 
    1295           0 :         status = libnetapi_getctx(&ctx);
    1296           0 :         if (status != 0) {
    1297           0 :                 TALLOC_FREE(frame);
    1298           0 :                 return status;
    1299             :         }
    1300             : 
    1301             :         /* In parameters */
    1302           0 :         r.in.server_name = server_name;
    1303           0 :         r.in.level = level;
    1304           0 :         r.in.idx = idx;
    1305           0 :         r.in.entries_requested = entries_requested;
    1306           0 :         r.in.prefmaxlen = prefmaxlen;
    1307             : 
    1308             :         /* Out parameters */
    1309           0 :         r.out.entries_read = entries_read;
    1310           0 :         r.out.buffer = buffer;
    1311             : 
    1312           0 :         if (DEBUGLEVEL >= 10) {
    1313           0 :                 NDR_PRINT_IN_DEBUG(NetQueryDisplayInformation, &r);
    1314             :         }
    1315             : 
    1316           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1317           0 :                 werr = NetQueryDisplayInformation_l(ctx, &r);
    1318             :         } else {
    1319           0 :                 werr = NetQueryDisplayInformation_r(ctx, &r);
    1320             :         }
    1321             : 
    1322           0 :         r.out.result = W_ERROR_V(werr);
    1323             : 
    1324           0 :         if (DEBUGLEVEL >= 10) {
    1325           0 :                 NDR_PRINT_OUT_DEBUG(NetQueryDisplayInformation, &r);
    1326             :         }
    1327             : 
    1328           0 :         TALLOC_FREE(frame);
    1329           0 :         return (NET_API_STATUS)r.out.result;
    1330             : }
    1331             : 
    1332             : /****************************************************************
    1333             :  NetGroupAdd
    1334             : ****************************************************************/
    1335             : 
    1336          72 : 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] */)
    1340             : {
    1341             :         struct NetGroupAdd r;
    1342          72 :         struct libnetapi_ctx *ctx = NULL;
    1343             :         NET_API_STATUS status;
    1344             :         WERROR werr;
    1345          72 :         TALLOC_CTX *frame = talloc_stackframe();
    1346             : 
    1347          72 :         ZERO_STRUCT(r);
    1348             : 
    1349          72 :         status = libnetapi_getctx(&ctx);
    1350          72 :         if (status != 0) {
    1351           0 :                 TALLOC_FREE(frame);
    1352           0 :                 return status;
    1353             :         }
    1354             : 
    1355             :         /* In parameters */
    1356          72 :         r.in.server_name = server_name;
    1357          72 :         r.in.level = level;
    1358          72 :         r.in.buffer = buffer;
    1359             : 
    1360             :         /* Out parameters */
    1361          72 :         r.out.parm_err = parm_err;
    1362             : 
    1363          72 :         if (DEBUGLEVEL >= 10) {
    1364           0 :                 NDR_PRINT_IN_DEBUG(NetGroupAdd, &r);
    1365             :         }
    1366             : 
    1367          72 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1368           0 :                 werr = NetGroupAdd_l(ctx, &r);
    1369             :         } else {
    1370          72 :                 werr = NetGroupAdd_r(ctx, &r);
    1371             :         }
    1372             : 
    1373          72 :         r.out.result = W_ERROR_V(werr);
    1374             : 
    1375          72 :         if (DEBUGLEVEL >= 10) {
    1376           0 :                 NDR_PRINT_OUT_DEBUG(NetGroupAdd, &r);
    1377             :         }
    1378             : 
    1379          72 :         TALLOC_FREE(frame);
    1380          72 :         return (NET_API_STATUS)r.out.result;
    1381             : }
    1382             : 
    1383             : /****************************************************************
    1384             :  NetGroupDel
    1385             : ****************************************************************/
    1386             : 
    1387           4 : NET_API_STATUS NetGroupDel(const char * server_name /* [in] */,
    1388             :                            const char * group_name /* [in] */)
    1389             : {
    1390             :         struct NetGroupDel r;
    1391           4 :         struct libnetapi_ctx *ctx = NULL;
    1392             :         NET_API_STATUS status;
    1393             :         WERROR werr;
    1394           4 :         TALLOC_CTX *frame = talloc_stackframe();
    1395             : 
    1396           4 :         ZERO_STRUCT(r);
    1397             : 
    1398           4 :         status = libnetapi_getctx(&ctx);
    1399           4 :         if (status != 0) {
    1400           0 :                 TALLOC_FREE(frame);
    1401           0 :                 return status;
    1402             :         }
    1403             : 
    1404             :         /* In parameters */
    1405           4 :         r.in.server_name = server_name;
    1406           4 :         r.in.group_name = group_name;
    1407             : 
    1408             :         /* Out parameters */
    1409             : 
    1410           4 :         if (DEBUGLEVEL >= 10) {
    1411           0 :                 NDR_PRINT_IN_DEBUG(NetGroupDel, &r);
    1412             :         }
    1413             : 
    1414           4 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1415           0 :                 werr = NetGroupDel_l(ctx, &r);
    1416             :         } else {
    1417           4 :                 werr = NetGroupDel_r(ctx, &r);
    1418             :         }
    1419             : 
    1420           4 :         r.out.result = W_ERROR_V(werr);
    1421             : 
    1422           4 :         if (DEBUGLEVEL >= 10) {
    1423           0 :                 NDR_PRINT_OUT_DEBUG(NetGroupDel, &r);
    1424             :         }
    1425             : 
    1426           4 :         TALLOC_FREE(frame);
    1427           4 :         return (NET_API_STATUS)r.out.result;
    1428             : }
    1429             : 
    1430             : /****************************************************************
    1431             :  NetGroupEnum
    1432             : ****************************************************************/
    1433             : 
    1434           4 : 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] */)
    1441             : {
    1442             :         struct NetGroupEnum r;
    1443           4 :         struct libnetapi_ctx *ctx = NULL;
    1444             :         NET_API_STATUS status;
    1445             :         WERROR werr;
    1446           4 :         TALLOC_CTX *frame = talloc_stackframe();
    1447             : 
    1448           4 :         ZERO_STRUCT(r);
    1449             : 
    1450           4 :         status = libnetapi_getctx(&ctx);
    1451           4 :         if (status != 0) {
    1452           0 :                 TALLOC_FREE(frame);
    1453           0 :                 return status;
    1454             :         }
    1455             : 
    1456             :         /* In parameters */
    1457           4 :         r.in.server_name = server_name;
    1458           4 :         r.in.level = level;
    1459           4 :         r.in.prefmaxlen = prefmaxlen;
    1460           4 :         r.in.resume_handle = resume_handle;
    1461             : 
    1462             :         /* Out parameters */
    1463           4 :         r.out.buffer = buffer;
    1464           4 :         r.out.entries_read = entries_read;
    1465           4 :         r.out.total_entries = total_entries;
    1466           4 :         r.out.resume_handle = resume_handle;
    1467             : 
    1468           4 :         if (DEBUGLEVEL >= 10) {
    1469           0 :                 NDR_PRINT_IN_DEBUG(NetGroupEnum, &r);
    1470             :         }
    1471             : 
    1472           4 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1473           0 :                 werr = NetGroupEnum_l(ctx, &r);
    1474             :         } else {
    1475           4 :                 werr = NetGroupEnum_r(ctx, &r);
    1476             :         }
    1477             : 
    1478           4 :         r.out.result = W_ERROR_V(werr);
    1479             : 
    1480           4 :         if (DEBUGLEVEL >= 10) {
    1481           0 :                 NDR_PRINT_OUT_DEBUG(NetGroupEnum, &r);
    1482             :         }
    1483             : 
    1484           4 :         TALLOC_FREE(frame);
    1485           4 :         return (NET_API_STATUS)r.out.result;
    1486             : }
    1487             : 
    1488             : /****************************************************************
    1489             :  NetGroupSetInfo
    1490             : ****************************************************************/
    1491             : 
    1492           1 : 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] */)
    1497             : {
    1498             :         struct NetGroupSetInfo r;
    1499           1 :         struct libnetapi_ctx *ctx = NULL;
    1500             :         NET_API_STATUS status;
    1501             :         WERROR werr;
    1502           1 :         TALLOC_CTX *frame = talloc_stackframe();
    1503             : 
    1504           1 :         ZERO_STRUCT(r);
    1505             : 
    1506           1 :         status = libnetapi_getctx(&ctx);
    1507           1 :         if (status != 0) {
    1508           0 :                 TALLOC_FREE(frame);
    1509           0 :                 return status;
    1510             :         }
    1511             : 
    1512             :         /* In parameters */
    1513           1 :         r.in.server_name = server_name;
    1514           1 :         r.in.group_name = group_name;
    1515           1 :         r.in.level = level;
    1516           1 :         r.in.buffer = buffer;
    1517             : 
    1518             :         /* Out parameters */
    1519           1 :         r.out.parm_err = parm_err;
    1520             : 
    1521           1 :         if (DEBUGLEVEL >= 10) {
    1522           0 :                 NDR_PRINT_IN_DEBUG(NetGroupSetInfo, &r);
    1523             :         }
    1524             : 
    1525           1 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1526           0 :                 werr = NetGroupSetInfo_l(ctx, &r);
    1527             :         } else {
    1528           1 :                 werr = NetGroupSetInfo_r(ctx, &r);
    1529             :         }
    1530             : 
    1531           1 :         r.out.result = W_ERROR_V(werr);
    1532             : 
    1533           1 :         if (DEBUGLEVEL >= 10) {
    1534           0 :                 NDR_PRINT_OUT_DEBUG(NetGroupSetInfo, &r);
    1535             :         }
    1536             : 
    1537           1 :         TALLOC_FREE(frame);
    1538           1 :         return (NET_API_STATUS)r.out.result;
    1539             : }
    1540             : 
    1541             : /****************************************************************
    1542             :  NetGroupGetInfo
    1543             : ****************************************************************/
    1544             : 
    1545           9 : 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] */)
    1549             : {
    1550             :         struct NetGroupGetInfo r;
    1551           9 :         struct libnetapi_ctx *ctx = NULL;
    1552             :         NET_API_STATUS status;
    1553             :         WERROR werr;
    1554           9 :         TALLOC_CTX *frame = talloc_stackframe();
    1555             : 
    1556           9 :         ZERO_STRUCT(r);
    1557             : 
    1558           9 :         status = libnetapi_getctx(&ctx);
    1559           9 :         if (status != 0) {
    1560           0 :                 TALLOC_FREE(frame);
    1561           0 :                 return status;
    1562             :         }
    1563             : 
    1564             :         /* In parameters */
    1565           9 :         r.in.server_name = server_name;
    1566           9 :         r.in.group_name = group_name;
    1567           9 :         r.in.level = level;
    1568             : 
    1569             :         /* Out parameters */
    1570           9 :         r.out.buffer = buffer;
    1571             : 
    1572           9 :         if (DEBUGLEVEL >= 10) {
    1573           0 :                 NDR_PRINT_IN_DEBUG(NetGroupGetInfo, &r);
    1574             :         }
    1575             : 
    1576           9 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1577           0 :                 werr = NetGroupGetInfo_l(ctx, &r);
    1578             :         } else {
    1579           9 :                 werr = NetGroupGetInfo_r(ctx, &r);
    1580             :         }
    1581             : 
    1582           9 :         r.out.result = W_ERROR_V(werr);
    1583             : 
    1584           9 :         if (DEBUGLEVEL >= 10) {
    1585           0 :                 NDR_PRINT_OUT_DEBUG(NetGroupGetInfo, &r);
    1586             :         }
    1587             : 
    1588           9 :         TALLOC_FREE(frame);
    1589           9 :         return (NET_API_STATUS)r.out.result;
    1590             : }
    1591             : 
    1592             : /****************************************************************
    1593             :  NetGroupAddUser
    1594             : ****************************************************************/
    1595             : 
    1596           1 : NET_API_STATUS NetGroupAddUser(const char * server_name /* [in] */,
    1597             :                                const char * group_name /* [in] */,
    1598             :                                const char * user_name /* [in] */)
    1599             : {
    1600             :         struct NetGroupAddUser r;
    1601           1 :         struct libnetapi_ctx *ctx = NULL;
    1602             :         NET_API_STATUS status;
    1603             :         WERROR werr;
    1604           1 :         TALLOC_CTX *frame = talloc_stackframe();
    1605             : 
    1606           1 :         ZERO_STRUCT(r);
    1607             : 
    1608           1 :         status = libnetapi_getctx(&ctx);
    1609           1 :         if (status != 0) {
    1610           0 :                 TALLOC_FREE(frame);
    1611           0 :                 return status;
    1612             :         }
    1613             : 
    1614             :         /* In parameters */
    1615           1 :         r.in.server_name = server_name;
    1616           1 :         r.in.group_name = group_name;
    1617           1 :         r.in.user_name = user_name;
    1618             : 
    1619             :         /* Out parameters */
    1620             : 
    1621           1 :         if (DEBUGLEVEL >= 10) {
    1622           0 :                 NDR_PRINT_IN_DEBUG(NetGroupAddUser, &r);
    1623             :         }
    1624             : 
    1625           1 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1626           0 :                 werr = NetGroupAddUser_l(ctx, &r);
    1627             :         } else {
    1628           1 :                 werr = NetGroupAddUser_r(ctx, &r);
    1629             :         }
    1630             : 
    1631           1 :         r.out.result = W_ERROR_V(werr);
    1632             : 
    1633           1 :         if (DEBUGLEVEL >= 10) {
    1634           0 :                 NDR_PRINT_OUT_DEBUG(NetGroupAddUser, &r);
    1635             :         }
    1636             : 
    1637           1 :         TALLOC_FREE(frame);
    1638           1 :         return (NET_API_STATUS)r.out.result;
    1639             : }
    1640             : 
    1641             : /****************************************************************
    1642             :  NetGroupDelUser
    1643             : ****************************************************************/
    1644             : 
    1645           1 : NET_API_STATUS NetGroupDelUser(const char * server_name /* [in] */,
    1646             :                                const char * group_name /* [in] */,
    1647             :                                const char * user_name /* [in] */)
    1648             : {
    1649             :         struct NetGroupDelUser r;
    1650           1 :         struct libnetapi_ctx *ctx = NULL;
    1651             :         NET_API_STATUS status;
    1652             :         WERROR werr;
    1653           1 :         TALLOC_CTX *frame = talloc_stackframe();
    1654             : 
    1655           1 :         ZERO_STRUCT(r);
    1656             : 
    1657           1 :         status = libnetapi_getctx(&ctx);
    1658           1 :         if (status != 0) {
    1659           0 :                 TALLOC_FREE(frame);
    1660           0 :                 return status;
    1661             :         }
    1662             : 
    1663             :         /* In parameters */
    1664           1 :         r.in.server_name = server_name;
    1665           1 :         r.in.group_name = group_name;
    1666           1 :         r.in.user_name = user_name;
    1667             : 
    1668             :         /* Out parameters */
    1669             : 
    1670           1 :         if (DEBUGLEVEL >= 10) {
    1671           0 :                 NDR_PRINT_IN_DEBUG(NetGroupDelUser, &r);
    1672             :         }
    1673             : 
    1674           1 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1675           0 :                 werr = NetGroupDelUser_l(ctx, &r);
    1676             :         } else {
    1677           1 :                 werr = NetGroupDelUser_r(ctx, &r);
    1678             :         }
    1679             : 
    1680           1 :         r.out.result = W_ERROR_V(werr);
    1681             : 
    1682           1 :         if (DEBUGLEVEL >= 10) {
    1683           0 :                 NDR_PRINT_OUT_DEBUG(NetGroupDelUser, &r);
    1684             :         }
    1685             : 
    1686           1 :         TALLOC_FREE(frame);
    1687           1 :         return (NET_API_STATUS)r.out.result;
    1688             : }
    1689             : 
    1690             : /****************************************************************
    1691             :  NetGroupGetUsers
    1692             : ****************************************************************/
    1693             : 
    1694           6 : 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] */)
    1702             : {
    1703             :         struct NetGroupGetUsers r;
    1704           6 :         struct libnetapi_ctx *ctx = NULL;
    1705             :         NET_API_STATUS status;
    1706             :         WERROR werr;
    1707           6 :         TALLOC_CTX *frame = talloc_stackframe();
    1708             : 
    1709           6 :         ZERO_STRUCT(r);
    1710             : 
    1711           6 :         status = libnetapi_getctx(&ctx);
    1712           6 :         if (status != 0) {
    1713           0 :                 TALLOC_FREE(frame);
    1714           0 :                 return status;
    1715             :         }
    1716             : 
    1717             :         /* In parameters */
    1718           6 :         r.in.server_name = server_name;
    1719           6 :         r.in.group_name = group_name;
    1720           6 :         r.in.level = level;
    1721           6 :         r.in.prefmaxlen = prefmaxlen;
    1722           6 :         r.in.resume_handle = resume_handle;
    1723             : 
    1724             :         /* Out parameters */
    1725           6 :         r.out.buffer = buffer;
    1726           6 :         r.out.entries_read = entries_read;
    1727           6 :         r.out.total_entries = total_entries;
    1728           6 :         r.out.resume_handle = resume_handle;
    1729             : 
    1730           6 :         if (DEBUGLEVEL >= 10) {
    1731           0 :                 NDR_PRINT_IN_DEBUG(NetGroupGetUsers, &r);
    1732             :         }
    1733             : 
    1734           6 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1735           0 :                 werr = NetGroupGetUsers_l(ctx, &r);
    1736             :         } else {
    1737           6 :                 werr = NetGroupGetUsers_r(ctx, &r);
    1738             :         }
    1739             : 
    1740           6 :         r.out.result = W_ERROR_V(werr);
    1741             : 
    1742           6 :         if (DEBUGLEVEL >= 10) {
    1743           0 :                 NDR_PRINT_OUT_DEBUG(NetGroupGetUsers, &r);
    1744             :         }
    1745             : 
    1746           6 :         TALLOC_FREE(frame);
    1747           6 :         return (NET_API_STATUS)r.out.result;
    1748             : }
    1749             : 
    1750             : /****************************************************************
    1751             :  NetGroupSetUsers
    1752             : ****************************************************************/
    1753             : 
    1754           1 : 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] */)
    1759             : {
    1760             :         struct NetGroupSetUsers r;
    1761           1 :         struct libnetapi_ctx *ctx = NULL;
    1762             :         NET_API_STATUS status;
    1763             :         WERROR werr;
    1764           1 :         TALLOC_CTX *frame = talloc_stackframe();
    1765             : 
    1766           1 :         ZERO_STRUCT(r);
    1767             : 
    1768           1 :         status = libnetapi_getctx(&ctx);
    1769           1 :         if (status != 0) {
    1770           0 :                 TALLOC_FREE(frame);
    1771           0 :                 return status;
    1772             :         }
    1773             : 
    1774             :         /* In parameters */
    1775           1 :         r.in.server_name = server_name;
    1776           1 :         r.in.group_name = group_name;
    1777           1 :         r.in.level = level;
    1778           1 :         r.in.buffer = buffer;
    1779           1 :         r.in.num_entries = num_entries;
    1780             : 
    1781             :         /* Out parameters */
    1782             : 
    1783           1 :         if (DEBUGLEVEL >= 10) {
    1784           0 :                 NDR_PRINT_IN_DEBUG(NetGroupSetUsers, &r);
    1785             :         }
    1786             : 
    1787           1 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1788           0 :                 werr = NetGroupSetUsers_l(ctx, &r);
    1789             :         } else {
    1790           1 :                 werr = NetGroupSetUsers_r(ctx, &r);
    1791             :         }
    1792             : 
    1793           1 :         r.out.result = W_ERROR_V(werr);
    1794             : 
    1795           1 :         if (DEBUGLEVEL >= 10) {
    1796           0 :                 NDR_PRINT_OUT_DEBUG(NetGroupSetUsers, &r);
    1797             :         }
    1798             : 
    1799           1 :         TALLOC_FREE(frame);
    1800           1 :         return (NET_API_STATUS)r.out.result;
    1801             : }
    1802             : 
    1803             : /****************************************************************
    1804             :  NetLocalGroupAdd
    1805             : ****************************************************************/
    1806             : 
    1807           0 : 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] */)
    1811             : {
    1812             :         struct NetLocalGroupAdd r;
    1813           0 :         struct libnetapi_ctx *ctx = NULL;
    1814             :         NET_API_STATUS status;
    1815             :         WERROR werr;
    1816           0 :         TALLOC_CTX *frame = talloc_stackframe();
    1817             : 
    1818           0 :         ZERO_STRUCT(r);
    1819             : 
    1820           0 :         status = libnetapi_getctx(&ctx);
    1821           0 :         if (status != 0) {
    1822           0 :                 TALLOC_FREE(frame);
    1823           0 :                 return status;
    1824             :         }
    1825             : 
    1826             :         /* In parameters */
    1827           0 :         r.in.server_name = server_name;
    1828           0 :         r.in.level = level;
    1829           0 :         r.in.buffer = buffer;
    1830             : 
    1831             :         /* Out parameters */
    1832           0 :         r.out.parm_err = parm_err;
    1833             : 
    1834           0 :         if (DEBUGLEVEL >= 10) {
    1835           0 :                 NDR_PRINT_IN_DEBUG(NetLocalGroupAdd, &r);
    1836             :         }
    1837             : 
    1838           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1839           0 :                 werr = NetLocalGroupAdd_l(ctx, &r);
    1840             :         } else {
    1841           0 :                 werr = NetLocalGroupAdd_r(ctx, &r);
    1842             :         }
    1843             : 
    1844           0 :         r.out.result = W_ERROR_V(werr);
    1845             : 
    1846           0 :         if (DEBUGLEVEL >= 10) {
    1847           0 :                 NDR_PRINT_OUT_DEBUG(NetLocalGroupAdd, &r);
    1848             :         }
    1849             : 
    1850           0 :         TALLOC_FREE(frame);
    1851           0 :         return (NET_API_STATUS)r.out.result;
    1852             : }
    1853             : 
    1854             : /****************************************************************
    1855             :  NetLocalGroupDel
    1856             : ****************************************************************/
    1857             : 
    1858           0 : NET_API_STATUS NetLocalGroupDel(const char * server_name /* [in] */,
    1859             :                                 const char * group_name /* [in] */)
    1860             : {
    1861             :         struct NetLocalGroupDel r;
    1862           0 :         struct libnetapi_ctx *ctx = NULL;
    1863             :         NET_API_STATUS status;
    1864             :         WERROR werr;
    1865           0 :         TALLOC_CTX *frame = talloc_stackframe();
    1866             : 
    1867           0 :         ZERO_STRUCT(r);
    1868             : 
    1869           0 :         status = libnetapi_getctx(&ctx);
    1870           0 :         if (status != 0) {
    1871           0 :                 TALLOC_FREE(frame);
    1872           0 :                 return status;
    1873             :         }
    1874             : 
    1875             :         /* In parameters */
    1876           0 :         r.in.server_name = server_name;
    1877           0 :         r.in.group_name = group_name;
    1878             : 
    1879             :         /* Out parameters */
    1880             : 
    1881           0 :         if (DEBUGLEVEL >= 10) {
    1882           0 :                 NDR_PRINT_IN_DEBUG(NetLocalGroupDel, &r);
    1883             :         }
    1884             : 
    1885           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1886           0 :                 werr = NetLocalGroupDel_l(ctx, &r);
    1887             :         } else {
    1888           0 :                 werr = NetLocalGroupDel_r(ctx, &r);
    1889             :         }
    1890             : 
    1891           0 :         r.out.result = W_ERROR_V(werr);
    1892             : 
    1893           0 :         if (DEBUGLEVEL >= 10) {
    1894           0 :                 NDR_PRINT_OUT_DEBUG(NetLocalGroupDel, &r);
    1895             :         }
    1896             : 
    1897           0 :         TALLOC_FREE(frame);
    1898           0 :         return (NET_API_STATUS)r.out.result;
    1899             : }
    1900             : 
    1901             : /****************************************************************
    1902             :  NetLocalGroupGetInfo
    1903             : ****************************************************************/
    1904             : 
    1905           0 : 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] */)
    1909             : {
    1910             :         struct NetLocalGroupGetInfo r;
    1911           0 :         struct libnetapi_ctx *ctx = NULL;
    1912             :         NET_API_STATUS status;
    1913             :         WERROR werr;
    1914           0 :         TALLOC_CTX *frame = talloc_stackframe();
    1915             : 
    1916           0 :         ZERO_STRUCT(r);
    1917             : 
    1918           0 :         status = libnetapi_getctx(&ctx);
    1919           0 :         if (status != 0) {
    1920           0 :                 TALLOC_FREE(frame);
    1921           0 :                 return status;
    1922             :         }
    1923             : 
    1924             :         /* In parameters */
    1925           0 :         r.in.server_name = server_name;
    1926           0 :         r.in.group_name = group_name;
    1927           0 :         r.in.level = level;
    1928             : 
    1929             :         /* Out parameters */
    1930           0 :         r.out.buffer = buffer;
    1931             : 
    1932           0 :         if (DEBUGLEVEL >= 10) {
    1933           0 :                 NDR_PRINT_IN_DEBUG(NetLocalGroupGetInfo, &r);
    1934             :         }
    1935             : 
    1936           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1937           0 :                 werr = NetLocalGroupGetInfo_l(ctx, &r);
    1938             :         } else {
    1939           0 :                 werr = NetLocalGroupGetInfo_r(ctx, &r);
    1940             :         }
    1941             : 
    1942           0 :         r.out.result = W_ERROR_V(werr);
    1943             : 
    1944           0 :         if (DEBUGLEVEL >= 10) {
    1945           0 :                 NDR_PRINT_OUT_DEBUG(NetLocalGroupGetInfo, &r);
    1946             :         }
    1947             : 
    1948           0 :         TALLOC_FREE(frame);
    1949           0 :         return (NET_API_STATUS)r.out.result;
    1950             : }
    1951             : 
    1952             : /****************************************************************
    1953             :  NetLocalGroupSetInfo
    1954             : ****************************************************************/
    1955             : 
    1956           0 : 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] */)
    1961             : {
    1962             :         struct NetLocalGroupSetInfo r;
    1963           0 :         struct libnetapi_ctx *ctx = NULL;
    1964             :         NET_API_STATUS status;
    1965             :         WERROR werr;
    1966           0 :         TALLOC_CTX *frame = talloc_stackframe();
    1967             : 
    1968           0 :         ZERO_STRUCT(r);
    1969             : 
    1970           0 :         status = libnetapi_getctx(&ctx);
    1971           0 :         if (status != 0) {
    1972           0 :                 TALLOC_FREE(frame);
    1973           0 :                 return status;
    1974             :         }
    1975             : 
    1976             :         /* In parameters */
    1977           0 :         r.in.server_name = server_name;
    1978           0 :         r.in.group_name = group_name;
    1979           0 :         r.in.level = level;
    1980           0 :         r.in.buffer = buffer;
    1981             : 
    1982             :         /* Out parameters */
    1983           0 :         r.out.parm_err = parm_err;
    1984             : 
    1985           0 :         if (DEBUGLEVEL >= 10) {
    1986           0 :                 NDR_PRINT_IN_DEBUG(NetLocalGroupSetInfo, &r);
    1987             :         }
    1988             : 
    1989           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    1990           0 :                 werr = NetLocalGroupSetInfo_l(ctx, &r);
    1991             :         } else {
    1992           0 :                 werr = NetLocalGroupSetInfo_r(ctx, &r);
    1993             :         }
    1994             : 
    1995           0 :         r.out.result = W_ERROR_V(werr);
    1996             : 
    1997           0 :         if (DEBUGLEVEL >= 10) {
    1998           0 :                 NDR_PRINT_OUT_DEBUG(NetLocalGroupSetInfo, &r);
    1999             :         }
    2000             : 
    2001           0 :         TALLOC_FREE(frame);
    2002           0 :         return (NET_API_STATUS)r.out.result;
    2003             : }
    2004             : 
    2005             : /****************************************************************
    2006             :  NetLocalGroupEnum
    2007             : ****************************************************************/
    2008             : 
    2009           0 : 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] */)
    2016             : {
    2017             :         struct NetLocalGroupEnum r;
    2018           0 :         struct libnetapi_ctx *ctx = NULL;
    2019             :         NET_API_STATUS status;
    2020             :         WERROR werr;
    2021           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2022             : 
    2023           0 :         ZERO_STRUCT(r);
    2024             : 
    2025           0 :         status = libnetapi_getctx(&ctx);
    2026           0 :         if (status != 0) {
    2027           0 :                 TALLOC_FREE(frame);
    2028           0 :                 return status;
    2029             :         }
    2030             : 
    2031             :         /* In parameters */
    2032           0 :         r.in.server_name = server_name;
    2033           0 :         r.in.level = level;
    2034           0 :         r.in.prefmaxlen = prefmaxlen;
    2035           0 :         r.in.resume_handle = resume_handle;
    2036             : 
    2037             :         /* Out parameters */
    2038           0 :         r.out.buffer = buffer;
    2039           0 :         r.out.entries_read = entries_read;
    2040           0 :         r.out.total_entries = total_entries;
    2041           0 :         r.out.resume_handle = resume_handle;
    2042             : 
    2043           0 :         if (DEBUGLEVEL >= 10) {
    2044           0 :                 NDR_PRINT_IN_DEBUG(NetLocalGroupEnum, &r);
    2045             :         }
    2046             : 
    2047           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2048           0 :                 werr = NetLocalGroupEnum_l(ctx, &r);
    2049             :         } else {
    2050           0 :                 werr = NetLocalGroupEnum_r(ctx, &r);
    2051             :         }
    2052             : 
    2053           0 :         r.out.result = W_ERROR_V(werr);
    2054             : 
    2055           0 :         if (DEBUGLEVEL >= 10) {
    2056           0 :                 NDR_PRINT_OUT_DEBUG(NetLocalGroupEnum, &r);
    2057             :         }
    2058             : 
    2059           0 :         TALLOC_FREE(frame);
    2060           0 :         return (NET_API_STATUS)r.out.result;
    2061             : }
    2062             : 
    2063             : /****************************************************************
    2064             :  NetLocalGroupAddMembers
    2065             : ****************************************************************/
    2066             : 
    2067           0 : 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] */)
    2072             : {
    2073             :         struct NetLocalGroupAddMembers r;
    2074           0 :         struct libnetapi_ctx *ctx = NULL;
    2075             :         NET_API_STATUS status;
    2076             :         WERROR werr;
    2077           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2078             : 
    2079           0 :         ZERO_STRUCT(r);
    2080             : 
    2081           0 :         status = libnetapi_getctx(&ctx);
    2082           0 :         if (status != 0) {
    2083           0 :                 TALLOC_FREE(frame);
    2084           0 :                 return status;
    2085             :         }
    2086             : 
    2087             :         /* In parameters */
    2088           0 :         r.in.server_name = server_name;
    2089           0 :         r.in.group_name = group_name;
    2090           0 :         r.in.level = level;
    2091           0 :         r.in.buffer = buffer;
    2092           0 :         r.in.total_entries = total_entries;
    2093             : 
    2094             :         /* Out parameters */
    2095             : 
    2096           0 :         if (DEBUGLEVEL >= 10) {
    2097           0 :                 NDR_PRINT_IN_DEBUG(NetLocalGroupAddMembers, &r);
    2098             :         }
    2099             : 
    2100           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2101           0 :                 werr = NetLocalGroupAddMembers_l(ctx, &r);
    2102             :         } else {
    2103           0 :                 werr = NetLocalGroupAddMembers_r(ctx, &r);
    2104             :         }
    2105             : 
    2106           0 :         r.out.result = W_ERROR_V(werr);
    2107             : 
    2108           0 :         if (DEBUGLEVEL >= 10) {
    2109           0 :                 NDR_PRINT_OUT_DEBUG(NetLocalGroupAddMembers, &r);
    2110             :         }
    2111             : 
    2112           0 :         TALLOC_FREE(frame);
    2113           0 :         return (NET_API_STATUS)r.out.result;
    2114             : }
    2115             : 
    2116             : /****************************************************************
    2117             :  NetLocalGroupDelMembers
    2118             : ****************************************************************/
    2119             : 
    2120           0 : 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] */)
    2125             : {
    2126             :         struct NetLocalGroupDelMembers r;
    2127           0 :         struct libnetapi_ctx *ctx = NULL;
    2128             :         NET_API_STATUS status;
    2129             :         WERROR werr;
    2130           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2131             : 
    2132           0 :         ZERO_STRUCT(r);
    2133             : 
    2134           0 :         status = libnetapi_getctx(&ctx);
    2135           0 :         if (status != 0) {
    2136           0 :                 TALLOC_FREE(frame);
    2137           0 :                 return status;
    2138             :         }
    2139             : 
    2140             :         /* In parameters */
    2141           0 :         r.in.server_name = server_name;
    2142           0 :         r.in.group_name = group_name;
    2143           0 :         r.in.level = level;
    2144           0 :         r.in.buffer = buffer;
    2145           0 :         r.in.total_entries = total_entries;
    2146             : 
    2147             :         /* Out parameters */
    2148             : 
    2149           0 :         if (DEBUGLEVEL >= 10) {
    2150           0 :                 NDR_PRINT_IN_DEBUG(NetLocalGroupDelMembers, &r);
    2151             :         }
    2152             : 
    2153           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2154           0 :                 werr = NetLocalGroupDelMembers_l(ctx, &r);
    2155             :         } else {
    2156           0 :                 werr = NetLocalGroupDelMembers_r(ctx, &r);
    2157             :         }
    2158             : 
    2159           0 :         r.out.result = W_ERROR_V(werr);
    2160             : 
    2161           0 :         if (DEBUGLEVEL >= 10) {
    2162           0 :                 NDR_PRINT_OUT_DEBUG(NetLocalGroupDelMembers, &r);
    2163             :         }
    2164             : 
    2165           0 :         TALLOC_FREE(frame);
    2166           0 :         return (NET_API_STATUS)r.out.result;
    2167             : }
    2168             : 
    2169             : /****************************************************************
    2170             :  NetLocalGroupGetMembers
    2171             : ****************************************************************/
    2172             : 
    2173           0 : 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] */)
    2181             : {
    2182             :         struct NetLocalGroupGetMembers r;
    2183           0 :         struct libnetapi_ctx *ctx = NULL;
    2184             :         NET_API_STATUS status;
    2185             :         WERROR werr;
    2186           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2187             : 
    2188           0 :         ZERO_STRUCT(r);
    2189             : 
    2190           0 :         status = libnetapi_getctx(&ctx);
    2191           0 :         if (status != 0) {
    2192           0 :                 TALLOC_FREE(frame);
    2193           0 :                 return status;
    2194             :         }
    2195             : 
    2196             :         /* In parameters */
    2197           0 :         r.in.server_name = server_name;
    2198           0 :         r.in.local_group_name = local_group_name;
    2199           0 :         r.in.level = level;
    2200           0 :         r.in.prefmaxlen = prefmaxlen;
    2201           0 :         r.in.resume_handle = resume_handle;
    2202             : 
    2203             :         /* Out parameters */
    2204           0 :         r.out.buffer = buffer;
    2205           0 :         r.out.entries_read = entries_read;
    2206           0 :         r.out.total_entries = total_entries;
    2207           0 :         r.out.resume_handle = resume_handle;
    2208             : 
    2209           0 :         if (DEBUGLEVEL >= 10) {
    2210           0 :                 NDR_PRINT_IN_DEBUG(NetLocalGroupGetMembers, &r);
    2211             :         }
    2212             : 
    2213           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2214           0 :                 werr = NetLocalGroupGetMembers_l(ctx, &r);
    2215             :         } else {
    2216           0 :                 werr = NetLocalGroupGetMembers_r(ctx, &r);
    2217             :         }
    2218             : 
    2219           0 :         r.out.result = W_ERROR_V(werr);
    2220             : 
    2221           0 :         if (DEBUGLEVEL >= 10) {
    2222           0 :                 NDR_PRINT_OUT_DEBUG(NetLocalGroupGetMembers, &r);
    2223             :         }
    2224             : 
    2225           0 :         TALLOC_FREE(frame);
    2226           0 :         return (NET_API_STATUS)r.out.result;
    2227             : }
    2228             : 
    2229             : /****************************************************************
    2230             :  NetLocalGroupSetMembers
    2231             : ****************************************************************/
    2232             : 
    2233           0 : 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] */)
    2238             : {
    2239             :         struct NetLocalGroupSetMembers r;
    2240           0 :         struct libnetapi_ctx *ctx = NULL;
    2241             :         NET_API_STATUS status;
    2242             :         WERROR werr;
    2243           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2244             : 
    2245           0 :         ZERO_STRUCT(r);
    2246             : 
    2247           0 :         status = libnetapi_getctx(&ctx);
    2248           0 :         if (status != 0) {
    2249           0 :                 TALLOC_FREE(frame);
    2250           0 :                 return status;
    2251             :         }
    2252             : 
    2253             :         /* In parameters */
    2254           0 :         r.in.server_name = server_name;
    2255           0 :         r.in.group_name = group_name;
    2256           0 :         r.in.level = level;
    2257           0 :         r.in.buffer = buffer;
    2258           0 :         r.in.total_entries = total_entries;
    2259             : 
    2260             :         /* Out parameters */
    2261             : 
    2262           0 :         if (DEBUGLEVEL >= 10) {
    2263           0 :                 NDR_PRINT_IN_DEBUG(NetLocalGroupSetMembers, &r);
    2264             :         }
    2265             : 
    2266           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2267           0 :                 werr = NetLocalGroupSetMembers_l(ctx, &r);
    2268             :         } else {
    2269           0 :                 werr = NetLocalGroupSetMembers_r(ctx, &r);
    2270             :         }
    2271             : 
    2272           0 :         r.out.result = W_ERROR_V(werr);
    2273             : 
    2274           0 :         if (DEBUGLEVEL >= 10) {
    2275           0 :                 NDR_PRINT_OUT_DEBUG(NetLocalGroupSetMembers, &r);
    2276             :         }
    2277             : 
    2278           0 :         TALLOC_FREE(frame);
    2279           0 :         return (NET_API_STATUS)r.out.result;
    2280             : }
    2281             : 
    2282             : /****************************************************************
    2283             :  NetRemoteTOD
    2284             : ****************************************************************/
    2285             : 
    2286          11 : NET_API_STATUS NetRemoteTOD(const char * server_name /* [in] */,
    2287             :                             uint8_t **buffer /* [out] [ref] */)
    2288             : {
    2289             :         struct NetRemoteTOD r;
    2290          11 :         struct libnetapi_ctx *ctx = NULL;
    2291             :         NET_API_STATUS status;
    2292             :         WERROR werr;
    2293          11 :         TALLOC_CTX *frame = talloc_stackframe();
    2294             : 
    2295          11 :         ZERO_STRUCT(r);
    2296             : 
    2297          11 :         status = libnetapi_getctx(&ctx);
    2298          11 :         if (status != 0) {
    2299           0 :                 TALLOC_FREE(frame);
    2300           0 :                 return status;
    2301             :         }
    2302             : 
    2303             :         /* In parameters */
    2304          11 :         r.in.server_name = server_name;
    2305             : 
    2306             :         /* Out parameters */
    2307          11 :         r.out.buffer = buffer;
    2308             : 
    2309          11 :         if (DEBUGLEVEL >= 10) {
    2310           0 :                 NDR_PRINT_IN_DEBUG(NetRemoteTOD, &r);
    2311             :         }
    2312             : 
    2313          11 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2314           0 :                 werr = NetRemoteTOD_l(ctx, &r);
    2315             :         } else {
    2316          11 :                 werr = NetRemoteTOD_r(ctx, &r);
    2317             :         }
    2318             : 
    2319          11 :         r.out.result = W_ERROR_V(werr);
    2320             : 
    2321          11 :         if (DEBUGLEVEL >= 10) {
    2322           0 :                 NDR_PRINT_OUT_DEBUG(NetRemoteTOD, &r);
    2323             :         }
    2324             : 
    2325          11 :         TALLOC_FREE(frame);
    2326          11 :         return (NET_API_STATUS)r.out.result;
    2327             : }
    2328             : 
    2329             : /****************************************************************
    2330             :  NetShareAdd
    2331             : ****************************************************************/
    2332             : 
    2333           0 : 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] */)
    2337             : {
    2338             :         struct NetShareAdd r;
    2339           0 :         struct libnetapi_ctx *ctx = NULL;
    2340             :         NET_API_STATUS status;
    2341             :         WERROR werr;
    2342           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2343             : 
    2344           0 :         ZERO_STRUCT(r);
    2345             : 
    2346           0 :         status = libnetapi_getctx(&ctx);
    2347           0 :         if (status != 0) {
    2348           0 :                 TALLOC_FREE(frame);
    2349           0 :                 return status;
    2350             :         }
    2351             : 
    2352             :         /* In parameters */
    2353           0 :         r.in.server_name = server_name;
    2354           0 :         r.in.level = level;
    2355           0 :         r.in.buffer = buffer;
    2356             : 
    2357             :         /* Out parameters */
    2358           0 :         r.out.parm_err = parm_err;
    2359             : 
    2360           0 :         if (DEBUGLEVEL >= 10) {
    2361           0 :                 NDR_PRINT_IN_DEBUG(NetShareAdd, &r);
    2362             :         }
    2363             : 
    2364           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2365           0 :                 werr = NetShareAdd_l(ctx, &r);
    2366             :         } else {
    2367           0 :                 werr = NetShareAdd_r(ctx, &r);
    2368             :         }
    2369             : 
    2370           0 :         r.out.result = W_ERROR_V(werr);
    2371             : 
    2372           0 :         if (DEBUGLEVEL >= 10) {
    2373           0 :                 NDR_PRINT_OUT_DEBUG(NetShareAdd, &r);
    2374             :         }
    2375             : 
    2376           0 :         TALLOC_FREE(frame);
    2377           0 :         return (NET_API_STATUS)r.out.result;
    2378             : }
    2379             : 
    2380             : /****************************************************************
    2381             :  NetShareDel
    2382             : ****************************************************************/
    2383             : 
    2384           0 : NET_API_STATUS NetShareDel(const char * server_name /* [in] */,
    2385             :                            const char * net_name /* [in] */,
    2386             :                            uint32_t reserved /* [in] */)
    2387             : {
    2388             :         struct NetShareDel r;
    2389           0 :         struct libnetapi_ctx *ctx = NULL;
    2390             :         NET_API_STATUS status;
    2391             :         WERROR werr;
    2392           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2393             : 
    2394           0 :         ZERO_STRUCT(r);
    2395             : 
    2396           0 :         status = libnetapi_getctx(&ctx);
    2397           0 :         if (status != 0) {
    2398           0 :                 TALLOC_FREE(frame);
    2399           0 :                 return status;
    2400             :         }
    2401             : 
    2402             :         /* In parameters */
    2403           0 :         r.in.server_name = server_name;
    2404           0 :         r.in.net_name = net_name;
    2405           0 :         r.in.reserved = reserved;
    2406             : 
    2407             :         /* Out parameters */
    2408             : 
    2409           0 :         if (DEBUGLEVEL >= 10) {
    2410           0 :                 NDR_PRINT_IN_DEBUG(NetShareDel, &r);
    2411             :         }
    2412             : 
    2413           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2414           0 :                 werr = NetShareDel_l(ctx, &r);
    2415             :         } else {
    2416           0 :                 werr = NetShareDel_r(ctx, &r);
    2417             :         }
    2418             : 
    2419           0 :         r.out.result = W_ERROR_V(werr);
    2420             : 
    2421           0 :         if (DEBUGLEVEL >= 10) {
    2422           0 :                 NDR_PRINT_OUT_DEBUG(NetShareDel, &r);
    2423             :         }
    2424             : 
    2425           0 :         TALLOC_FREE(frame);
    2426           0 :         return (NET_API_STATUS)r.out.result;
    2427             : }
    2428             : 
    2429             : /****************************************************************
    2430             :  NetShareEnum
    2431             : ****************************************************************/
    2432             : 
    2433           0 : 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] */)
    2440             : {
    2441             :         struct NetShareEnum r;
    2442           0 :         struct libnetapi_ctx *ctx = NULL;
    2443             :         NET_API_STATUS status;
    2444             :         WERROR werr;
    2445           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2446             : 
    2447           0 :         ZERO_STRUCT(r);
    2448             : 
    2449           0 :         status = libnetapi_getctx(&ctx);
    2450           0 :         if (status != 0) {
    2451           0 :                 TALLOC_FREE(frame);
    2452           0 :                 return status;
    2453             :         }
    2454             : 
    2455             :         /* In parameters */
    2456           0 :         r.in.server_name = server_name;
    2457           0 :         r.in.level = level;
    2458           0 :         r.in.prefmaxlen = prefmaxlen;
    2459           0 :         r.in.resume_handle = resume_handle;
    2460             : 
    2461             :         /* Out parameters */
    2462           0 :         r.out.buffer = buffer;
    2463           0 :         r.out.entries_read = entries_read;
    2464           0 :         r.out.total_entries = total_entries;
    2465           0 :         r.out.resume_handle = resume_handle;
    2466             : 
    2467           0 :         if (DEBUGLEVEL >= 10) {
    2468           0 :                 NDR_PRINT_IN_DEBUG(NetShareEnum, &r);
    2469             :         }
    2470             : 
    2471           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2472           0 :                 werr = NetShareEnum_l(ctx, &r);
    2473             :         } else {
    2474           0 :                 werr = NetShareEnum_r(ctx, &r);
    2475             :         }
    2476             : 
    2477           0 :         r.out.result = W_ERROR_V(werr);
    2478             : 
    2479           0 :         if (DEBUGLEVEL >= 10) {
    2480           0 :                 NDR_PRINT_OUT_DEBUG(NetShareEnum, &r);
    2481             :         }
    2482             : 
    2483           0 :         TALLOC_FREE(frame);
    2484           0 :         return (NET_API_STATUS)r.out.result;
    2485             : }
    2486             : 
    2487             : /****************************************************************
    2488             :  NetShareGetInfo
    2489             : ****************************************************************/
    2490             : 
    2491           0 : 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] */)
    2495             : {
    2496             :         struct NetShareGetInfo r;
    2497           0 :         struct libnetapi_ctx *ctx = NULL;
    2498             :         NET_API_STATUS status;
    2499             :         WERROR werr;
    2500           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2501             : 
    2502           0 :         ZERO_STRUCT(r);
    2503             : 
    2504           0 :         status = libnetapi_getctx(&ctx);
    2505           0 :         if (status != 0) {
    2506           0 :                 TALLOC_FREE(frame);
    2507           0 :                 return status;
    2508             :         }
    2509             : 
    2510             :         /* In parameters */
    2511           0 :         r.in.server_name = server_name;
    2512           0 :         r.in.net_name = net_name;
    2513           0 :         r.in.level = level;
    2514             : 
    2515             :         /* Out parameters */
    2516           0 :         r.out.buffer = buffer;
    2517             : 
    2518           0 :         if (DEBUGLEVEL >= 10) {
    2519           0 :                 NDR_PRINT_IN_DEBUG(NetShareGetInfo, &r);
    2520             :         }
    2521             : 
    2522           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2523           0 :                 werr = NetShareGetInfo_l(ctx, &r);
    2524             :         } else {
    2525           0 :                 werr = NetShareGetInfo_r(ctx, &r);
    2526             :         }
    2527             : 
    2528           0 :         r.out.result = W_ERROR_V(werr);
    2529             : 
    2530           0 :         if (DEBUGLEVEL >= 10) {
    2531           0 :                 NDR_PRINT_OUT_DEBUG(NetShareGetInfo, &r);
    2532             :         }
    2533             : 
    2534           0 :         TALLOC_FREE(frame);
    2535           0 :         return (NET_API_STATUS)r.out.result;
    2536             : }
    2537             : 
    2538             : /****************************************************************
    2539             :  NetShareSetInfo
    2540             : ****************************************************************/
    2541             : 
    2542           0 : 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] */)
    2547             : {
    2548             :         struct NetShareSetInfo r;
    2549           0 :         struct libnetapi_ctx *ctx = NULL;
    2550             :         NET_API_STATUS status;
    2551             :         WERROR werr;
    2552           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2553             : 
    2554           0 :         ZERO_STRUCT(r);
    2555             : 
    2556           0 :         status = libnetapi_getctx(&ctx);
    2557           0 :         if (status != 0) {
    2558           0 :                 TALLOC_FREE(frame);
    2559           0 :                 return status;
    2560             :         }
    2561             : 
    2562             :         /* In parameters */
    2563           0 :         r.in.server_name = server_name;
    2564           0 :         r.in.net_name = net_name;
    2565           0 :         r.in.level = level;
    2566           0 :         r.in.buffer = buffer;
    2567             : 
    2568             :         /* Out parameters */
    2569           0 :         r.out.parm_err = parm_err;
    2570             : 
    2571           0 :         if (DEBUGLEVEL >= 10) {
    2572           0 :                 NDR_PRINT_IN_DEBUG(NetShareSetInfo, &r);
    2573             :         }
    2574             : 
    2575           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2576           0 :                 werr = NetShareSetInfo_l(ctx, &r);
    2577             :         } else {
    2578           0 :                 werr = NetShareSetInfo_r(ctx, &r);
    2579             :         }
    2580             : 
    2581           0 :         r.out.result = W_ERROR_V(werr);
    2582             : 
    2583           0 :         if (DEBUGLEVEL >= 10) {
    2584           0 :                 NDR_PRINT_OUT_DEBUG(NetShareSetInfo, &r);
    2585             :         }
    2586             : 
    2587           0 :         TALLOC_FREE(frame);
    2588           0 :         return (NET_API_STATUS)r.out.result;
    2589             : }
    2590             : 
    2591             : /****************************************************************
    2592             :  NetFileClose
    2593             : ****************************************************************/
    2594             : 
    2595           0 : NET_API_STATUS NetFileClose(const char * server_name /* [in] */,
    2596             :                             uint32_t fileid /* [in] */)
    2597             : {
    2598             :         struct NetFileClose r;
    2599           0 :         struct libnetapi_ctx *ctx = NULL;
    2600             :         NET_API_STATUS status;
    2601             :         WERROR werr;
    2602           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2603             : 
    2604           0 :         ZERO_STRUCT(r);
    2605             : 
    2606           0 :         status = libnetapi_getctx(&ctx);
    2607           0 :         if (status != 0) {
    2608           0 :                 TALLOC_FREE(frame);
    2609           0 :                 return status;
    2610             :         }
    2611             : 
    2612             :         /* In parameters */
    2613           0 :         r.in.server_name = server_name;
    2614           0 :         r.in.fileid = fileid;
    2615             : 
    2616             :         /* Out parameters */
    2617             : 
    2618           0 :         if (DEBUGLEVEL >= 10) {
    2619           0 :                 NDR_PRINT_IN_DEBUG(NetFileClose, &r);
    2620             :         }
    2621             : 
    2622           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2623           0 :                 werr = NetFileClose_l(ctx, &r);
    2624             :         } else {
    2625           0 :                 werr = NetFileClose_r(ctx, &r);
    2626             :         }
    2627             : 
    2628           0 :         r.out.result = W_ERROR_V(werr);
    2629             : 
    2630           0 :         if (DEBUGLEVEL >= 10) {
    2631           0 :                 NDR_PRINT_OUT_DEBUG(NetFileClose, &r);
    2632             :         }
    2633             : 
    2634           0 :         TALLOC_FREE(frame);
    2635           0 :         return (NET_API_STATUS)r.out.result;
    2636             : }
    2637             : 
    2638             : /****************************************************************
    2639             :  NetFileGetInfo
    2640             : ****************************************************************/
    2641             : 
    2642           0 : 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] */)
    2646             : {
    2647             :         struct NetFileGetInfo r;
    2648           0 :         struct libnetapi_ctx *ctx = NULL;
    2649             :         NET_API_STATUS status;
    2650             :         WERROR werr;
    2651           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2652             : 
    2653           0 :         ZERO_STRUCT(r);
    2654             : 
    2655           0 :         status = libnetapi_getctx(&ctx);
    2656           0 :         if (status != 0) {
    2657           0 :                 TALLOC_FREE(frame);
    2658           0 :                 return status;
    2659             :         }
    2660             : 
    2661             :         /* In parameters */
    2662           0 :         r.in.server_name = server_name;
    2663           0 :         r.in.fileid = fileid;
    2664           0 :         r.in.level = level;
    2665             : 
    2666             :         /* Out parameters */
    2667           0 :         r.out.buffer = buffer;
    2668             : 
    2669           0 :         if (DEBUGLEVEL >= 10) {
    2670           0 :                 NDR_PRINT_IN_DEBUG(NetFileGetInfo, &r);
    2671             :         }
    2672             : 
    2673           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2674           0 :                 werr = NetFileGetInfo_l(ctx, &r);
    2675             :         } else {
    2676           0 :                 werr = NetFileGetInfo_r(ctx, &r);
    2677             :         }
    2678             : 
    2679           0 :         r.out.result = W_ERROR_V(werr);
    2680             : 
    2681           0 :         if (DEBUGLEVEL >= 10) {
    2682           0 :                 NDR_PRINT_OUT_DEBUG(NetFileGetInfo, &r);
    2683             :         }
    2684             : 
    2685           0 :         TALLOC_FREE(frame);
    2686           0 :         return (NET_API_STATUS)r.out.result;
    2687             : }
    2688             : 
    2689             : /****************************************************************
    2690             :  NetFileEnum
    2691             : ****************************************************************/
    2692             : 
    2693           0 : 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] */)
    2702             : {
    2703             :         struct NetFileEnum r;
    2704           0 :         struct libnetapi_ctx *ctx = NULL;
    2705             :         NET_API_STATUS status;
    2706             :         WERROR werr;
    2707           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2708             : 
    2709           0 :         ZERO_STRUCT(r);
    2710             : 
    2711           0 :         status = libnetapi_getctx(&ctx);
    2712           0 :         if (status != 0) {
    2713           0 :                 TALLOC_FREE(frame);
    2714           0 :                 return status;
    2715             :         }
    2716             : 
    2717             :         /* In parameters */
    2718           0 :         r.in.server_name = server_name;
    2719           0 :         r.in.base_path = base_path;
    2720           0 :         r.in.user_name = user_name;
    2721           0 :         r.in.level = level;
    2722           0 :         r.in.prefmaxlen = prefmaxlen;
    2723           0 :         r.in.resume_handle = resume_handle;
    2724             : 
    2725             :         /* Out parameters */
    2726           0 :         r.out.buffer = buffer;
    2727           0 :         r.out.entries_read = entries_read;
    2728           0 :         r.out.total_entries = total_entries;
    2729           0 :         r.out.resume_handle = resume_handle;
    2730             : 
    2731           0 :         if (DEBUGLEVEL >= 10) {
    2732           0 :                 NDR_PRINT_IN_DEBUG(NetFileEnum, &r);
    2733             :         }
    2734             : 
    2735           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2736           0 :                 werr = NetFileEnum_l(ctx, &r);
    2737             :         } else {
    2738           0 :                 werr = NetFileEnum_r(ctx, &r);
    2739             :         }
    2740             : 
    2741           0 :         r.out.result = W_ERROR_V(werr);
    2742             : 
    2743           0 :         if (DEBUGLEVEL >= 10) {
    2744           0 :                 NDR_PRINT_OUT_DEBUG(NetFileEnum, &r);
    2745             :         }
    2746             : 
    2747           0 :         TALLOC_FREE(frame);
    2748           0 :         return (NET_API_STATUS)r.out.result;
    2749             : }
    2750             : 
    2751             : /****************************************************************
    2752             :  NetShutdownInit
    2753             : ****************************************************************/
    2754             : 
    2755           0 : 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] */)
    2760             : {
    2761             :         struct NetShutdownInit r;
    2762           0 :         struct libnetapi_ctx *ctx = NULL;
    2763             :         NET_API_STATUS status;
    2764             :         WERROR werr;
    2765           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2766             : 
    2767           0 :         ZERO_STRUCT(r);
    2768             : 
    2769           0 :         status = libnetapi_getctx(&ctx);
    2770           0 :         if (status != 0) {
    2771           0 :                 TALLOC_FREE(frame);
    2772           0 :                 return status;
    2773             :         }
    2774             : 
    2775             :         /* In parameters */
    2776           0 :         r.in.server_name = server_name;
    2777           0 :         r.in.message = message;
    2778           0 :         r.in.timeout = timeout;
    2779           0 :         r.in.force_apps = force_apps;
    2780           0 :         r.in.do_reboot = do_reboot;
    2781             : 
    2782             :         /* Out parameters */
    2783             : 
    2784           0 :         if (DEBUGLEVEL >= 10) {
    2785           0 :                 NDR_PRINT_IN_DEBUG(NetShutdownInit, &r);
    2786             :         }
    2787             : 
    2788           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2789           0 :                 werr = NetShutdownInit_l(ctx, &r);
    2790             :         } else {
    2791           0 :                 werr = NetShutdownInit_r(ctx, &r);
    2792             :         }
    2793             : 
    2794           0 :         r.out.result = W_ERROR_V(werr);
    2795             : 
    2796           0 :         if (DEBUGLEVEL >= 10) {
    2797           0 :                 NDR_PRINT_OUT_DEBUG(NetShutdownInit, &r);
    2798             :         }
    2799             : 
    2800           0 :         TALLOC_FREE(frame);
    2801           0 :         return (NET_API_STATUS)r.out.result;
    2802             : }
    2803             : 
    2804             : /****************************************************************
    2805             :  NetShutdownAbort
    2806             : ****************************************************************/
    2807             : 
    2808           0 : NET_API_STATUS NetShutdownAbort(const char * server_name /* [in] */)
    2809             : {
    2810             :         struct NetShutdownAbort r;
    2811           0 :         struct libnetapi_ctx *ctx = NULL;
    2812             :         NET_API_STATUS status;
    2813             :         WERROR werr;
    2814           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2815             : 
    2816           0 :         ZERO_STRUCT(r);
    2817             : 
    2818           0 :         status = libnetapi_getctx(&ctx);
    2819           0 :         if (status != 0) {
    2820           0 :                 TALLOC_FREE(frame);
    2821           0 :                 return status;
    2822             :         }
    2823             : 
    2824             :         /* In parameters */
    2825           0 :         r.in.server_name = server_name;
    2826             : 
    2827             :         /* Out parameters */
    2828             : 
    2829           0 :         if (DEBUGLEVEL >= 10) {
    2830           0 :                 NDR_PRINT_IN_DEBUG(NetShutdownAbort, &r);
    2831             :         }
    2832             : 
    2833           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2834           0 :                 werr = NetShutdownAbort_l(ctx, &r);
    2835             :         } else {
    2836           0 :                 werr = NetShutdownAbort_r(ctx, &r);
    2837             :         }
    2838             : 
    2839           0 :         r.out.result = W_ERROR_V(werr);
    2840             : 
    2841           0 :         if (DEBUGLEVEL >= 10) {
    2842           0 :                 NDR_PRINT_OUT_DEBUG(NetShutdownAbort, &r);
    2843             :         }
    2844             : 
    2845           0 :         TALLOC_FREE(frame);
    2846           0 :         return (NET_API_STATUS)r.out.result;
    2847             : }
    2848             : 
    2849             : /****************************************************************
    2850             :  I_NetLogonControl
    2851             : ****************************************************************/
    2852             : 
    2853           0 : 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] */)
    2857             : {
    2858             :         struct I_NetLogonControl r;
    2859           0 :         struct libnetapi_ctx *ctx = NULL;
    2860             :         NET_API_STATUS status;
    2861             :         WERROR werr;
    2862           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2863             : 
    2864           0 :         ZERO_STRUCT(r);
    2865             : 
    2866           0 :         status = libnetapi_getctx(&ctx);
    2867           0 :         if (status != 0) {
    2868           0 :                 TALLOC_FREE(frame);
    2869           0 :                 return status;
    2870             :         }
    2871             : 
    2872             :         /* In parameters */
    2873           0 :         r.in.server_name = server_name;
    2874           0 :         r.in.function_code = function_code;
    2875           0 :         r.in.query_level = query_level;
    2876             : 
    2877             :         /* Out parameters */
    2878           0 :         r.out.buffer = buffer;
    2879             : 
    2880           0 :         if (DEBUGLEVEL >= 10) {
    2881           0 :                 NDR_PRINT_IN_DEBUG(I_NetLogonControl, &r);
    2882             :         }
    2883             : 
    2884           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2885           0 :                 werr = I_NetLogonControl_l(ctx, &r);
    2886             :         } else {
    2887           0 :                 werr = I_NetLogonControl_r(ctx, &r);
    2888             :         }
    2889             : 
    2890           0 :         r.out.result = W_ERROR_V(werr);
    2891             : 
    2892           0 :         if (DEBUGLEVEL >= 10) {
    2893           0 :                 NDR_PRINT_OUT_DEBUG(I_NetLogonControl, &r);
    2894             :         }
    2895             : 
    2896           0 :         TALLOC_FREE(frame);
    2897           0 :         return (NET_API_STATUS)r.out.result;
    2898             : }
    2899             : 
    2900             : /****************************************************************
    2901             :  I_NetLogonControl2
    2902             : ****************************************************************/
    2903             : 
    2904           0 : 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] */)
    2909             : {
    2910             :         struct I_NetLogonControl2 r;
    2911           0 :         struct libnetapi_ctx *ctx = NULL;
    2912             :         NET_API_STATUS status;
    2913             :         WERROR werr;
    2914           0 :         TALLOC_CTX *frame = talloc_stackframe();
    2915             : 
    2916           0 :         ZERO_STRUCT(r);
    2917             : 
    2918           0 :         status = libnetapi_getctx(&ctx);
    2919           0 :         if (status != 0) {
    2920           0 :                 TALLOC_FREE(frame);
    2921           0 :                 return status;
    2922             :         }
    2923             : 
    2924             :         /* In parameters */
    2925           0 :         r.in.server_name = server_name;
    2926           0 :         r.in.function_code = function_code;
    2927           0 :         r.in.query_level = query_level;
    2928           0 :         r.in.data = data;
    2929             : 
    2930             :         /* Out parameters */
    2931           0 :         r.out.buffer = buffer;
    2932             : 
    2933           0 :         if (DEBUGLEVEL >= 10) {
    2934           0 :                 NDR_PRINT_IN_DEBUG(I_NetLogonControl2, &r);
    2935             :         }
    2936             : 
    2937           0 :         if (LIBNETAPI_LOCAL_SERVER(server_name)) {
    2938           0 :                 werr = I_NetLogonControl2_l(ctx, &r);
    2939             :         } else {
    2940           0 :                 werr = I_NetLogonControl2_r(ctx, &r);
    2941             :         }
    2942             : 
    2943           0 :         r.out.result = W_ERROR_V(werr);
    2944             : 
    2945           0 :         if (DEBUGLEVEL >= 10) {
    2946           0 :                 NDR_PRINT_OUT_DEBUG(I_NetLogonControl2, &r);
    2947             :         }
    2948             : 
    2949           0 :         TALLOC_FREE(frame);
    2950           0 :         return (NET_API_STATUS)r.out.result;
    2951             : }
    2952             : 

Generated by: LCOV version 1.13